Fusion has been deprecated. See the announcement and view the migration guide.
The Fusion browser is the tool of choice to browse and use Ðapps.
For the Fusion API see the MISTAPI.md.
Please note that this repository is the Electron host for the Meteor based wallet dapp whose repository is located here: https://github.com/ubiq/meteor-dapp-wallet.
In order to get help regarding Fusion or Ubiq Wallet, please follow:
- Please check the Fusion troubleshooting guide.
- Go to the Ubiq Discord to connect with the community for instant help.
- Search for similar issues and potential help.
- Or create a new issue.
Contributions via Pull Requests are so welcome. You can see where to help looking for issues with the Enhancement or Bug labels. We can help guiding you towards the solution.
If you want to install the app from a pre-built version on the release page,
you can simply run the executeable after download.
For updating simply download the new version and copy it over the old one (keep a backup of the old one if you want to be sure).
In order to install from .zip files, please install libgconf2-4
first:
apt-get install libgconf2-4
The data folder for Mist is stored in other places:
- Windows
%APPDATA%\Fusion
- macOS
~/Library/Application\ Support/Fusion
- Linux
~/.config/Fusion
For development, a Meteor server will need to be started to assist with live reload and CSS injection.
Once a Fusion version is released the Meteor frontend part is bundled using the meteor-build-client
npm package to create pure static files.
To run fusion in development you need:
- Node.js
v7.x
(use the prefered installation method for your OS) - Meteor javascript app framework
- Yarn package manager
- Electron
v1.8.4
cross platform desktop app framework - Gulp build and automation system
Install the latter ones via:
$ curl https://install.meteor.com/ | sh
$ curl -o- -L https://yarnpkg.com/install.sh | bash
$ yarn global add electron@1.8.4
$ yarn global add gulp
Now you're ready to initialise Fusion for development:
$ git clone https://github.com/ubiq/fusion.git
$ cd fusion
$ yarn
To update Fusion in the future, run:
$ cd fusion
$ git pull
$ yarn
For development we start the interface with a Meteor server for autoreload etc. Start the interface in a separate terminal window:
$ yarn dev:meteor
In the original window you can then start Fusion with:
$ cd fusion
$ yarn dev:electron
NOTE: client-binaries (e.g. gubiq) specified in clientBinaries.json will be checked during every startup and downloaded if out-of-date, binaries are stored in the config folder
NOTE: use --help
to display available options, e.g. --loglevel debug
(or trace
) for verbose output
Start the wallet app for development, in a separate terminal window:
$ yarn dev:meteor
In another terminal:
$ cd my/path/meteor-dapp-wallet/app && meteor --port 3050
In the original window you can then start Fusion using wallet mode:
$ cd fusion
$ yarn dev:electron --mode wallet
This is useful if you have a node running on another machine, though note that it's less secure than using the default IPC method.
$ yarn dev:electron --rpc http://localhost:8588
You can pass command-line options directly to Gubiq by prefixing them with --node-
in
the command-line invocation:
$ yarn dev:electron --mode mist --node-rpcport 19343 --node-networkid 2
The --rpc
Fusion option is a special case. If you set this to an IPC socket file
path then the --ipcpath
option automatically gets set, i.e.:
$ yarn dev:electron --rpc /my/gubiq.ipc
...is the same as doing...
$ yarn dev:electron --rpc /my/gubiq.ipc --node-ipcpath /my/gubiq.ipc
See this guide to quickly set up a local private network on your computer: https://gist.github.com/evertonfraga/9d65a9f3ea399ac138b3e40641accf23
To run a private network you will need to set the IPC path, network id and data folder:
$ yarn dev:electron --rpc ~/Library/Ubiq/gubiq.ipc --node-networkid 1234 --node-datadir ~/Library/Ubiq/privatenet
NOTE: since ipcpath
is also a Fusion option you do not need to also include a
--node-ipcpath
option.
You can also launch gubiq
separately with the same options prior starting
Fusion.
Our build system relies on gulp and electron-builder.
meteor-build-client bundles the meteor-based interface. Install it via:
$ npm install -g meteor-build-client
Furthermore cross-platform builds require additional electron-builder
dependencies. On macOS those are:
Windows deps:
$ brew install wine --without-x11 mono makensis
Linux deps:
$ brew install gnu-tar libicns graphicsmagick xz
To generate the binaries for Fusion run:
$ gulp
To generate the Ubiq Wallet (this will pack the one Ðapp from https://github.com/ubiq/meteor-dapp-wallet):
$ gulp --wallet
The generated binaries will be under dist_mist/release
or dist_wallet/release
.
To build binaries for specific platforms (default: all available) use the following flags:
$ gulp --mac # mac
$ gulp --linux # linux
$ gulp --win # windows
With the walletSource
you can specify the Wallet branch to use, default is develop
:
$ gulp --wallet --walletSource develop
Options are:
develop
local
Will try to build the wallet from [mist/]../meteor-dapp-wallet/app
Note: applicable only when combined with --wallet
When building a binary, you can optionally skip some tasks — generally for testing purposes.
$ gulp --mac --skipTasks=bundling-interface,release-dist
Spits out the MD5 checksums of distributables.
It expects installer/zip files to be in the generated folders e.g. dist_mist/release
$ gulp checksums [--wallet]
Tests are ran using Spectron, a webdriver.io runner built for Electron.
First make sure to build Mist with:
$ gulp
Then run the tests:
$ gulp test
Note: Integration tests are not yet supported on Windows.