Learn how to run and interact with an Ethereum node. In the process, you will learn critical concepts behind the design, implementation, and operation of the Ethereum blockchain. Those concepts also apply to Ethereum-compatible blockchains.
Save 35% off the list price* of the related book or multi-format eBook (EPUB + MOBI + PDF) with discount code ARTICLE.
* See informit.com/terms
In the previous chapter, I showed you how to build, deploy, and interact with an Ethereum smart contract. However, by focusing on graphical user interface (GUI) tools, we have also left many concepts and points unexplained.
In this chapter, I will explain how to run and interact with an Ethereum node. In the process, you will learn critical concepts behind the design, implementation, and operation of the Ethereum blockchain. Those concepts also apply to Ethereum-compatible blockchains.
Ethereum Wallet and Basic Concepts
To use Ethereum, you first need an Ethereum wallet to hold your ETH coins. Like Bitcoin, anyone can create an “account” on the Ethereum blockchain to hold and transact ETH coins. An account is uniquely identified by a pair of public and private keys. A key is a long string of seemingly random numbers and characters. The key pair can be randomly generated on your own computer.
The Ethereum account number is directly derived from the public key. If someone wants to send you some ETHs, all they need is the account number.
The private key is used to identify the owner of this account. When you need to move ETH out of the account (i.e., to spend it or transfer to another account), you will need the private key. Without the private key, the Ethereum miners will deem the transaction invalid and refuse to include it in the blockchain.
Now you see that it is critical to safeguard your private key. If someone else gets hold of it, that person will have full authority over the ETHs in that account. And if you somehow lose the private key, you will forever lose control over the ETHs in your account—the ETHs will remain in the account for the world to see, but no one can move or spend them without the private key.
All the wallet does is store and manage your public/private key pair. It often also provides a UI for you to manage ETHs in your account using the underlying public/private key pair. The wallet can be a completely stand-alone piece of software (or even hardware). Or, it can be a web application that stores your keys on their servers. Here are some notable wallets for Ethereum:
Mist is the official wallet software from the Ethereum development team. You can install and run it on your own computer. It is more than just a wallet, though; it is a “blockchain browser” that includes a full Ethereum node. For example, you can upload smart contract code using Mist. That also means Mist requires more than 4GB of RAM and more than 100GB of hard drive space to run. It takes 24 to 48 hours for Mist to start the first time as it needs to download the entire blockchain history.
Parity is another fully featured GUI Ethereum client. It competes against Mist. It is supposed to be faster than Mist. But still, it needs to download the entire blockchain to run a full Ethereum node.
Metamask, covered in Chapter 4, is a Chrome-based wallet. It stores the private keys on your computer with the Chrome browser. Hence, physical security of your computer is important for Metamask wallets.
The imToken mobile app is a wallet for your smartphone. You can create key pairs (accounts) in the app and use the app to send and receive ETH to and from your accounts in the wallet. The imToken app does not download the blockchain itself. It starts instantly and is ready for use.
Tezer and Ledger are USB key-sized hardware devices that store and manage your keys. They typically work in tandem with a computer program. The computer program provides the UI to check balances and create transactions. When it needs to sign a transaction, it passes to the USB device to complete it. The private key never leaves the USB device.
Coinbase is a web-based wallet, which also provides banking services to convert your ETHs to and from U.S. dollars. Almost all crypto exchanges have wallets for you to deposit and withdraw coins.
If the wallet manages only the public/private key pairs, what about the coins and tokens stored in those accounts? Are your coins in your wallet? The answer is no, your tokens or coins are not in your wallet. Remember that the blockchain is a ledger system. It records all the transactions and balances associated with all accounts in the system. So, the wallet needs to manage only your account credentials, and the tokens or coins in your account can be found on the blockchain itself.