Mist
https://github.com/expanse-org/mist
This branch is 41 commits ahead, 968 commits behind ethereum:master.

Mist Browser

The Mist browser is the tool of choice to browse and use Ðapps.
For the Mist API see the MISTAPI.md.

Installation

If you want install the app from a pre-built version on the release page, you can simply run the executable 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).
Config folder
The data folder for Mist is stored in other places:
  • Windows %APPDATA%\Mist
  • macOS ~/Library/Application Support/Mist
  • Linux ~/.config/Mist

Development

For development, a Meteor server will to be started to assist with live reload and CSS injection. Once a Mist version is released the Meteor frontend part is bundled using meteor-build-client npm package to create pure static files.

Dependencies

To run mist in development you need:
  • Node.js v6.x (use the prefered installation method for your OS)
  • Meteor javascript app framework
  • Yarn package manager
  • Electron v1.3.13 cross platform desktop app framework
  • Gulp build and automation system
Install the later ones via:
1
$ curl https://install.meteor.com/ | sh
2
$ curl -o- -L https://yarnpkg.com/install.sh | bash
3
$ yarn global add [email protected]
4
$ yarn global add gulp
Copied!

Initialisation

Now you're ready to initialize Mist for development:
1
$ git clone https://github.com/expanse-org/mist.git
2
$ cd mist
3
$ yarn
Copied!
To update Mist in the future, run:
1
$ cd mist
2
$ git pull
3
$ yarn
Copied!

Run Mist

For development we start the interface with a Meteor server for auto reload etc. Start the interface in a separate terminal window:
1
$ cd mist/interface && meteor --no-release-check
Copied!
In the original window you can then start Mist with:
1
$ cd mist
2
$ electron .
Copied!
NOTE: client-binaries (e.g. geth) 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

Run the Wallet

Start the wallet app for development, in a separate terminal window:
1
$ cd mist/interface && meteor --no-release-check
2
3
// and in another terminal
4
5
$ cd my/path/meteor-dapp-wallet/app && meteor --port 3050
Copied!
In the original window you can then start Mist using wallet mode:
1
$ cd mist
2
$ electron . --mode wallet
Copied!

Connecting to node via HTTP instead of IPC

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.
1
$ electron . --rpc http://localhost:8545
Copied!

Passing options to Gexp

You can pass command-line options directly to Gexp by prefixing them with --node- in the command-line invocation:
1
$ electron . --mode mist --node-rpcport 19343 --node-networkid 2
Copied!
The --rpc Mist option is a special case. If you set this to an IPC socket file path then the --ipcpath option automatically gets set, i.e.:
1
$ electron . --rpc /my/gexp.ipc
Copied!
...is the same as doing...
1
$ electron . --rpc /my/gexp.ipc --node-ipcpath /my/gexp.ipc
Copied!

Using Mist with a privatenet

To run a private network you will need to set the IPC path, network id and data folder:
1
$ electron . --rpc ~/Library/Expanse/gexp.ipc --node-networkid 1234 --node-datadir ~/Library/Expanse/privatenet
Copied!
NOTE: since ipcpath is also a Mist option you do not need to also include a --node-ipcpath option.
You can also run gexp separately yourself with the same options prior to start Mist normally.

Deployment

To create a binaries you need to install electron-builder dependencies:
1
// tools for the windows binaries
2
$ brew install wine --without-x11 mono makensis
3
// tools for the Linux binaries
4
$ brew install gnu-tar libicns graphicsmagick xz
5
// general dependencies
6
$ npm install -g meteor-build-client
Copied!
To generate the binaries simply run:
1
$ cd mist
2
$ gulp
3
4
// Or to generate the wallet (using the https://github.com/expanse-org/meteor-dapp-wallet -> master)
5
$ gulp wallet
Copied!
This will generate the binaries inside the dist_mist/release or dist_wallet/release folder.
Options
platform
Additional you can only build the windows, linux, mac or all binary by using the platform option:
1
$ gulp update-nodes --platform mac
2
3
// And
4
$ gulp mist --platform mac
5
6
// Or
7
$ gulp mist --platform mac,win
Copied!
Options are:
  • mac (Mac OSX)
  • win (Windows)
  • linux (Linux)
  • all (default)
walletSource
With the walletSource you can specify the branch to use, default ist master:
1
$ gulp mist --walletSource develop
Copied!
Options are:
  • master
  • develop
  • local Will try to build the wallet from [mist/]../meteor-dapp-wallet/app
mist-checksums | wallet-checksums
Spits out the SHA256 checksums of distributables.
It expects installer/zip files to be in the generated folders e.g. dist_mist/release
1
$ gulp mist-checksums
2
3
3f726fff186b85c600ea2459413d0bf5ada2dbc98877764efbefa545f96eb975 ./dist_mist/release/Mist-0.8.1-ia32.exe
4
ab4d26d5ebc66e9aba0fa610071266bacbb83faacbb7ed0dd2acb24386190bdb ./dist_mist/release/Mist-0.8.1.exe
5
909b0fb4c7b09b731b2a442c457747e04ffdd9c03b6edc06079ae05a46200d13 ./dist_mist/release/Mist-0.8.1-ia32.deb
6
e114d6188963dfdae0489abf4e8923da58b39ff9cdbaad26e803af27c7ce55d1 ./dist_mist/release/Mist-0.8.1.deb
7
930787dd2f5ed6931068bff9244bccc01f397f552c48ded0f08e515e276dd080 ./dist_mist/release/Mist-0.8.1.dmg
Copied!

Code signing for production

As of #972 we've updated the build process and thus need to redo code-signing.

Testing

First make sure to build Mist with: gulp mist --platform [mac,linux] or gulp wallet --platform [mac,linux].
Then run gulp test-mist or gulp test-wallet, accordingly.