The Mist browser is the tool of choice to browse and use Ðapps.
For the Mist API see MISTAPI.md.
This repository is also the Electron host for the Meteor-based wallet dapp.
In order to get help regarding Mist or Ethereum Wallet:
- Please check the Mist troubleshooting guide.
- Go to our Gitter channel to connect with the community for instant help.
- Search for similar issues and potential help.
- Or create a new issue and provide as much information as you can to recreate your problem.
Contributions via Pull Requests are welcome. You can see where to help looking for issues with the Enhancement or Bug labels. We can help guide you towards the solution.
You can also help by responding to issues. Sign up on CodeTriage and it'll send you gentle notifications with a configurable frequency. It is a nice way to help while learning.
If you want to 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).
In order to install from .zip files, please install libgconf2-4
first:
apt-get install libgconf2-4
The data folder for Mist depends on your operating system:
- Windows
%APPDATA%\Mist
- macOS
~/Library/Application\ Support/Mist
- Linux
~/.config/Mist
For development, a Meteor server assists with live reload and CSS injection.
Once a Mist version is released the Meteor frontend part is bundled using the meteor-build-client
npm package to create pure static files.
To run mist in development you need:
- Node.js
v7.x
(use the preferred installation method for your OS) - Meteor javascript app framework
- Yarn package manager
Install the latter ones via:
$ curl https://install.meteor.com/ | sh
$ curl -o- -L https://yarnpkg.com/install.sh | bash
Now you're ready to initialize Mist for development:
$ git clone https://github.com/ethereum/mist.git
$ cd mist
$ yarn
For development we start the interface with a Meteor server for auto-reload etc.
Start the interface in a separate terminal window:
$ yarn dev:meteor
In the original window you can then start Mist with:
$ cd mist
$ yarn dev:electron
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
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 Mist using wallet mode:
$ cd mist
$ yarn dev:electron --mode wallet
This is useful if you are already running your own node or would like to connect with a private or development network.
$ yarn dev:electron --rpc path/to/geth.ipc
You can pass command-line options directly to Geth by prefixing them with --node-
in
the command-line invocation:
$ yarn dev:electron --mode mist --node-rpcport 19343 --node-networkid 2
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.:
$ yarn dev:electron --rpc path/to/geth.ipc
...is the same as doing...
$ yarn dev:electron --rpc /my/geth.ipc --node-ipcpath /path/to/geth.ipc
If you would like to quickly set up a local private network on your computer, run:
geth --dev
Look for the IPC path in the resulting geth output, then start Mist with:
$ yarn dev:electron --rpc path/to/geth.ipc
Our build system relies on gulp and electron-builder.
Cross-platform builds require additional electron-builder
dependencies.
$ brew install rpm
$ brew install wine --without-x11 mono makensis
$ brew install gnu-tar libicns graphicsmagick xz
To generate the binaries for Mist run:
$ yarn build:mist
To generate the Ethereum Wallet:
$ yarn build:wallet
The generated binaries will be under dist_mist/release
or dist_wallet/release
. From 0.11.0, both Ethereum Wallet and Mist bundle a meteor-dapp-wallet instance (https://github.com/ethereum/meteor-dapp-wallet).
To build binaries for specific platforms (default: all available) use the following flags:
$ yarn build:mist --mac # mac
$ yarn build:mist --linux # linux
$ yarn build:mist --win # windows
When building a binary, you can optionally skip some tasks — generally for testing purposes.
$ yarn build:mist --mac --skipTasks=bundling-interface,release-dist
Prints the SHA-256 checksums of the distributables.
It expects installer/zip files to be in the generated folders e.g. dist_mist/release
$ yarn task checksums [--wallet]
Any other gulp task can be run using yarn task
.
$ yarn task clean-dist
-
Install release globally:
$ yarn global add release
-
Create a git tag and a GitHub release:
$ release <major|minor|patch>
-
A generated release draft will open in the default browser. Edit the information and add assets as necessary.
Tests run using Spectron, a webdriver.io runner built for Electron.
First make sure to build Mist with:
$ yarn build:mist
Then run the tests:
$ yarn test:unit:once
$ yarn test:e2e
Note: Integration tests are not yet supported on Windows.