Mist browser
JavaScript HTML NSIS Other
Latest commit 7825db9 Jan 19, 2017 @tgerring tgerring committed with frozeman NSIS installer (#1499)
* Update travis config to new format

* fixes

* install gulp

* fixes

* tweaks

* use same install & script tasks for all builds

* Expand build matrix

* tweaks

* fixes

* try to fix wine installation

* Enable mac build

* Extend run time to 30 minutes

* see if extra dependencies resolves build issue for linwin

* Install yarn with npm on osx

* linux and windows in one

* Add gulp to Mac

* Bump timeout to 60 minutes

* remove download-signatures from processing / travis tweaks

* cleanup

* enable gitter notifications

* fix bash double ampersand

* try to build nsis script

* fix nsis verbosity flag

* Customized NSIS installer

* Fix order of commands

* Improve uninstaller

* Add logic and movefile plugins

* Enable separate DATADIR location

* Remove INSTDIR and replace with FILEDIR

* Fix compiler warnings about unknown variables

* Enforce UAC admin requirement

* Move NSI to scripts directory and add plugins

* Include version in output filename

* Remove duplicate execution level command

* Move files from nested folder into main folder

* Update shortcut names and params

* initial architecture detection + various cleanup

* More flexible environment vars

* Cleanup

* User-selectable location for Mist's data files

* Include icon in installation directory

* Cleanup

* Improve/fix registry entries

* Show shortcuts after successful installation

* Estimate installation size

* Fix removal of start menu shortcuts

* Open DATADIR and NODEDATADIR on uninstallation

* Handle firewall rules

* Disable firewall updates

* Include multiple architectures into single installer

* Don't allow user to select Mist data directory

* Integrate NSIS build into Gulp

* Cleanup lint suggestions

* Cleanup more lint suggestions

* One more linter fix

* Remove testnet startmenu entry

* Double the estimated installed size

* Create desktop shortcut

* Delete temporary zips

* Store user settings in HKCU for uninstallation

* Remove user registry settings on uninstallation

* Improved uninstallation to not rely on stack variables

* Compute actual program directory size

* Cleanup
Permalink
Failed to load latest commit information.
.github update github's issue-template's node.log upload instructions (#1232) Oct 3, 2016
errorPages Error pages (#1559) Jan 6, 2017
icons Update Master to 0.7.5 (#816) Jun 15, 2016
interface add hash and queries to breadcrumb (#1596) Jan 18, 2017
modules fix offline-startup edge-case (#1571) Jan 18, 2017
nodes/eth fix build Sep 8, 2016
scripts NSIS installer (#1499) Jan 19, 2017
sounds add nodes and sound Oct 15, 2015
tests [mistAPI] add 'mist.solidity.version' (#1586) Jan 13, 2017
.codeclimate.yml [codeclimate] enable GPA rating (#1410) Nov 11, 2016
.editorconfig [editorconfig] change json indent from 2 to 4 spaces (#1444) Nov 21, 2016
.eslintrc.yml [ESLint] update 'scripts' (#1539) Dec 22, 2016
.gitignore update npm-shrinkwrap.json Nov 18, 2016
.gitmodules moved interface back Sep 17, 2015
.mention-bot [mention-bot] stop pinging @hiddentao for reviews (#1480) Nov 30, 2016
.travis.yml NSIS installer (#1499) Jan 19, 2017
AUTHORS added testnet indicator Feb 15, 2016
CONTRIBUTING.md Corrected some nitpicky capitalisation May 9, 2016
LICENSE bumped to 0.5.0 Feb 29, 2016
MISTAPI.md Updating mist api docs (#1508) Dec 12, 2016
README.md [readme] minor typo Jan 7, 2017
Wallet-README.txt merge conflicts May 9, 2016
clientBinaries.json Update geth to 1.5.5 (#1520) Dec 16, 2016
customProtocols.js [ESLint] update customProtocols.js (#1538) Dec 20, 2016
gulpfile.js NSIS installer (#1499) Jan 19, 2017
main.js fixes the immediate startup issue (#1540) Dec 20, 2016
package.json added postinstall step for interface dir (#1546) Dec 22, 2016
yarn.lock Update solc to 0.4.6 locked (#1517) Dec 15, 2016

README.md

Mist Browser

Join the chat at https://gitter.im/ethereum/mist Build Status develop branch Code Climate dependencies Status devDependencies Status

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

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

Requirements:

To run mist in development you need Node.js NPM and Meteor and electron installed:

$ curl https://install.meteor.com/ | sh
$ npm install -g electron@1.3.13
$ npm install -g gulp

And some further tools to help with downloading and unzipping client nodes:

Linux:

$ apt-get install unzip

Installation

Now you're ready to install Mist:

$ git clone https://github.com/ethereum/mist.git
$ cd mist
$ git submodule update --init
$ yarn

To update Mist in the future, run:

$ cd mist
$ git pull && git submodule update
$ yarn

Options

It may be preferable to only download platform-specific nodes by passing the --platform flag, please refer to the options section.

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

$ 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:

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

$ electron . --rpc /my/geth.ipc

...is the same as doing...

$ electron . --rpc /my/geth.ipc --node-ipcpath /my/geth.ipc

Using Mist with a privatenet

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

$ 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 run geth separately yourself with the same options prior to start Mist normally.

Deployment

To create a binaries you need to install electron-builder dependencies:

// tools for the windows binaries
$ brew install wine --without-x11 mono
// tools for the Linux binaries
$ brew install gnu-tar libicns graphicsmagick xz
// general dependencies
$ npm install -g meteor-build-client

To generate the binaries simply run:

$ cd mist
$ gulp

// Or to generate the wallet (using the https://github.com/ethereum/meteor-dapp-wallet -> master)
$ gulp wallet

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:

$ gulp update-nodes --platform mac

// And
$ gulp mist --platform mac

// Or
$ gulp mist --platform mac,win

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:

$ gulp mist --walletSource develop

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

$ gulp mist-checksums

3f726fff186b85c600ea2459413d0bf5ada2dbc98877764efbefa545f96eb975  ./dist_mist/release/Mist-0.8.1-ia32.exe
ab4d26d5ebc66e9aba0fa610071266bacbb83faacbb7ed0dd2acb24386190bdb  ./dist_mist/release/Mist-0.8.1.exe
909b0fb4c7b09b731b2a442c457747e04ffdd9c03b6edc06079ae05a46200d13  ./dist_mist/release/Mist-0.8.1-ia32.deb
e114d6188963dfdae0489abf4e8923da58b39ff9cdbaad26e803af27c7ce55d1  ./dist_mist/release/Mist-0.8.1.deb
930787dd2f5ed6931068bff9244bccc01f397f552c48ded0f08e515e276dd080  ./dist_mist/release/Mist-0.8.1.dmg

Code signing for production

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