Chapter 3: Introducing Mist, a Human-friendly Geth Interface
by Mislav Javor
This article explains how to install and work with and Mist, which allow you to mine or develop Ethereum software, and to control your own node and your own wallets key, thereby signing your own transactions instead of relying on third-party software.
In order to communicate with the Ethereum blockchain, we must use a blockchain client. The client is responsible for broadcasting transactions, mining, signing messages and communicating with smart contracts.
Currently, the most popular clients for Ethereum are Geth and Parity. They both come as command line tools with terminal consoles for blockchain operations.
Since most people arent comfortable using command line tools, client extensions like Mist were created. They wrap the functionality of the client in a user-friendly interface enabling people not proficient in command line usage to participate in the network.
What is Mist?
Mist is a program which connects to Geth in the background, and also serves as an interface for the wallet.
When Geth is running, it synchronizes with the public blockchain by downloading all its data. Mist is just a human-friendly interface for talking to Geth. In other words, Geth is both your node and your wallet, but instead of talking to it through obscure commands (such as web3.fromWei(eth.getBalance(eth.coinbase)
) to get an accounts balance), Mist will provide that same information in the UI without you even having to ask for it.
You can download Mist from this link. Download the version called Mist-installer, not the Ethereum-Wallet one.
The difference between Mist-installer and Ethereum-wallet is that Mist is, by itself, a web and Ethereum browser as well as a wallet interface. Ethereum-wallet has the browser functionality removed for safety, and only a single dapp installed the wallet interface. Hence, they are the same, but the latter is limited in functionality.
The file you pick will depend on your operating system. macOS users will pick the .dmg
file, Windows users will go for the .exe
file, while Linux users will most often go with the .deb
file.
After having downloaded it, run the installation process then run the app. If youre not sure where it got installed, just enter its name into your operating systems search bar:
Mist: First Run
After running for the first time, Mist checks whether or not it has the latest Geth installed on the same machine and then checks for contact with the Ethereum network.
Then, Mist looks for peers nodes it can connect to so it can download blockchain data from them.
Having found them, Mist begins to download the extraordinary amount of required data.
This can take days, depending on the speed of the computer and internet connection. It doesnt have to finish all at once: you can shut it down and come by later or leave it overnight. You can also launch the app outright and wait for sync in the background while actually using the app.
After syncing is finished, Mist will ask which network to use: Main or Test. Pick any of them. Unless you made an address beforehand in Geth via the personal.newAccount
command (you probably didnt and thats fine), itll also ask you for a password. That password additionally secures your wallet, but dont forget it: it cannot be changed and it cannot be restored. Choose wisely. The JSON file that gets generated by this process is then encrypted with this password, and can be imported into various wallet tools like MetaMask, MyEtherWallet, etc. To get to the JSON file(s) (for backup purposes) go to File -> Backup -> Accounts
and Mist will open the folder containing the JSON files of generated addresses.
Mist: Addresses
After these initial steps have been completed, the main screen of the Mist app will appear. Itll only have the main address you just generated shown on the screen. That address is called a coinbase address, and thats the address that gets credited with Ether when its mined if youll be mining it on this machine.
To be able to safely play with Ether and Mists functionality, we need to switch to the test network if youre not already connected to it. In the Develop menu, go to Network -> Ropsten.
For an explanation of testnets, please read this post. The gist of it is that there exist various public test networks for testing Ethereum software, but the Ether on those networks is worthless, so theres no danger in doing reckless things and developing carelessly. Ropsten is one such network.
Feel free to use the Add Account feature to add more addresses. One Geth/Mist can sustain an infinite number of addresses. The picture below shows three generated addresses.
If we click any of them, well see some details.
The part next to the icon above the balance the one starting with 0x90 is the address to which we can send Ether. But how do we get some? If youre connected to the Ropsten network, you can use their faucet site: faucet.ropsten.be:3001/
Enter this address into the first field on that site and request some Ether.
If your node is synced up, the new balance should show up immediately. If it doesnt, turn the app off and on again; it sometimes needs a reset to re-sync properly.
Sending and Receiving Ether
Sending is extremely simple. Open the Send interface in Mist, put the receiving address into To and select the sender under From (use the address you sent Ether to from the faucet).
You can pick the sending speed at the bottom of the screen. Slower is cheaper. Press send to send Ether, and input the password you previously decided on when asked for it.