The Mist browser is a robust application for users to browse and use dApps on the PUFFScoin blockchain.
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 PUFFScoin
- Please check the Mist troubleshooting guide.
- Search for similar issues and potential help.
- Or create a new issue and provide as much information as you can to recreate your problem.
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/puffscoin/mist.git
$ cd mist
$ git submodule update --init --recursive
$ 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. [gpuffs] (https://github.com/puffscoin/go-puffscoin)) 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/gpuffs.ipc
You can pass command-line options directly to Gpuffs by prefixing them with --node-
in
the command-line invocation:
$ yarn dev:electron --mode mist --node-rpcport 11364 --node-networkid 420
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/gpuffs.ipc
...is the same as doing...
$ yarn dev:electron --rpc /my/gpuffs.ipc --node-ipcpath /path/to/gpuffs.ipc
If you would like to quickly set up a local private network on your computer, run:
gpuffs --dev
Look for the IPC path in the resulting gpuffs output, then start Mist with:
$ yarn dev:electron --rpc path/to/gpuffs.ipc
Our build system relies on gulp and electron-builder.
Cross-platform builds require additional dependencies needed by Electron Builder. Please follow their instructions for up to date dependency information.
To generate the binaries for Mist run:
$ yarn build:mist
To generate the PUFFScoin Wallet:
$ yarn build:wallet
The generated binaries will be under dist_mist/release
or dist_wallet/release
. Both PUFFScoin Wallet and Mist ships with a meteor-dapp-wallet instance (https://github.com/puffscoin/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=build-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
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.