ethereum/mist

Name: mist

Owner: ethereum

Description: Mist. Browse and use Šapps on the Ethereum network.

Created: 2015-06-10 14:09:06.0

Updated: 2018-01-17 21:55:43.0

Pushed: 2018-01-17 18:40:32.0

Homepage: http://ethereum.org

Size: 404629

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Mist Browserbeta

Github All Releases Build Status develop branch Join the chat at https://gitter.im/ethereum/mist Code Triagers Badge

The Mist browser is the tool of choice to browse and use Šapps.

For the Mist 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/ethereum/meteor-dapp-wallet.

Help and troubleshooting

In order to get help regarding Mist or Ethereum Wallet, please follow:

  1. Please check the Mist troubleshooting guide.
  2. Go to the Gitter Channel to connect with the community for instant help.
  3. Search for similar issues and potential help.
  4. Or create a new issue.
How to contribute

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.

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.

Installation

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).

Linux .zip installs

In order to install from .zip files, please install libgconf2-4 first:

get install libgconf2-4
Config folder

The data folder for Mist is stored in other places:

Development

For development, a Meteor server will need to be started to assist 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.

Dependencies

To run mist in development you need:

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.7.9
$ yarn global add gulp
Initialisation

Now you're ready to initialise Mist for development:

$ git clone https://github.com/ethereum/mist.git
$ cd mist
$ yarn

To update Mist in the future, run:

$ cd mist
$ git pull
$ yarn
Run Mist

For development we start the interface with a Meteor server for autoreload etc. Start the interface in a separate terminal window:

$ cd mist/interface && meteor --no-release-check

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

Run the Wallet

Start the wallet app for development, in a separate terminal window:

$ cd mist/interface && meteor --no-release-check

// and 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
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.

rn dev:electron --rpc http://localhost:8545
Passing options to Geth

You can pass command-line options directly to Geth by prefixing them with --node- in the command-line invocation:

rn 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.:

rn dev:electron --rpc /my/geth.ipc

…is the same as doing…

rn dev:electron --rpc /my/geth.ipc --node-ipcpath /my/geth.ipc
Creating a local private net

See this guide to quickly set up a local private network on your computer: https://gist.github.com/evertonfraga/9d65a9f3ea399ac138b3e40641accf23

Using Mist with a privatenet

To run a private network you will need to set the IPC path, network id and data folder:

rn dev:electron --rpc ~/Library/Ethereum/geth.ipc --node-networkid 1234 --node-datadir ~/Library/Ethereum/privatenet

NOTE: since ipcpath is also a Mist option you do not need to also include a --node-ipcpath option.

You can also launch geth separately with the same options prior starting Mist.

Deployment

Our build system relies on gulp and electron-builder.

Dependencies

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
Generate packages

To generate the binaries for Mist run:

$ gulp

To generate the Ethereum Wallet (this will pack the one Šapp from https://github.com/ethereum/meteor-dapp-wallet):

$ gulp --wallet

The generated binaries will be under dist_mist/release or dist_wallet/release.

Options platform

To build binaries for specific platforms (default: all available) use the following flags:

// on mac
$ gulp --win --linux --mac

// on linux
$ gulp --win --linux

// on win
$ gulp --win
walletSource

With the walletSource you can specify the Wallet branch to use, default is master:

$ gulp --wallet --walletSource develop

Options are:

Note: applicable only when combined with --wallet

skipTasks

When building a binary, you can optionally skip some tasks ? generally for testing purposes.

$ gulp –mac –skipTasks=bundling-interface,release-dist

Checksums

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]
Testing

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.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.