The Ethereum network validates incoming transactions into the blockchain using a proof-of-work scheme, similar to Bitcoin and other proto-currency crypto-ledgers. Mining is the process by which computations are verified and the network is secured, which also leads to the minting of new coins in Bitcoin and a gas market on Ethereum (gas being the internal currency used for paying for computational cycles executed by the EVM).
However, Ethereum’s roadmap includes a gradual transition to a more energy-efficient and higher throughput Proof-of-Stake consensus arrangement, eventually making the mining process obsolete. At present, however, the network operates on an ASIC-resistant memory-hard PoW hash function and Ether is usually mined with a GPU (graphics processing unit) setup.
“GPU friendliness: We try to make it as easy as possible to mine with GPUs.”
Ethash is based around the provision of a large, randomly generated DAG (directed ayclic graph) dataset and working to solve some particular constraint on it, partially derived from the block’s header hash.
A DAG is generated for every epoch (that is 30000 blocks or ~100 hours) and since it only depends on the block number, it can and should be generated in advance to avoid long waits at epoch transitions. To generate a DAG for an arbitrary epoch using the geth client execute:
geth makedag <block number> <outputdir>
For example, “geth makedag 360000 ~/.ethash” — note that ~/.ethash is the path under Linux/Mac, while in Windows it’s usually ~/AppData/Ethash.
The computational difficulty of solving a block is dynamically calibrated so as to produce a block every ~12 seconds — the systo-diastolic rhythm punctuating system state synchronization and assuring that rewriting of history and arbitrary blockchain reorganizations are impossible, unless the attacker controls at least 51% of the network’s hashing power.
The market price of ETH naturally drives the changes in network hashrate (the number of nonces tried per second) and difficulty.
The miner of a winning block receives both a static block reward of 2 Ethers and all of the gas consumed by the execution of the transactions included in the block (compensated for by the senders).
Extra rewards for including “uncles” (stale blocks which were very close to being “correct”) as part of the block is also included as an additional incentive for securing the network. Uncles are rewarded ⅞ of the static block reward and a maximum of two uncles is allowed per block.
Mining Pools and Mining Calculators
As with other PoW crypto-coins that spawned mining as an entire dedicated industry, hashing power is for the most part controlled by large mining pools where resources of different miners from different locations are pooled together and have rewards accordingly divvied up and distributed among miners relative to how much resource they contribute. In both Bitcoin and Ethereum the top 5 mining pools control more than 70% of the market.
Etherscan provides a mining calculator for estimating expected earnings in Ethers and US dollars. It’s a rough approximation which assumes all conditions (difficulty, prices, etc.) remaining the same.
Ethereum block structure. Detailed diagrams illustrating Ethereum’s architecture — transaction and block structure and the workings of the EVM (Ethereum Virtual Machine) as specified in the yellow paper are available at the dedicated stackexchange here.
General step-by-step procedure
Setting up a wallet
MetaMask is the most commonly used Ethereum wallet. It’s a browser plug-in (as Firefox, Chrome or Opera extensions) which provides a convenient gateway to accessing the Ethereum network. Get the MetaMask extension for your respective browser and create an account. Choose a strong alphanumeric password and copy the recovery mnemonic somewhere safe.
Your Ethereum address is automatically generated as the public key from the keypair.
Exodus is another popular option, a multi-currency Desktop and mobile wallet that supports close to a hundred crypto-tokens and digital assets and is easy to use, coming with ShapeShift integration for cross-chain conversions and swaps. It is supported cross-platform and can be downloaded from here.
Other options include the web-based MyEtherWallet (MEW), multi-currency supporting Jaxx (similar to Exodus), Atomic wallet and others. For better security cold storage hardware wallets such as Ledger Nano and Trezor are recommended.
Choosing a suitable GPU
Your graphics processing unit must have at least 3 GB of RAM to be able to mine Ethereum. Radeon and GeForce are the most commonly used and reviewed GPU brands for mining Ethereum. Choose an optimal solution depending on your budget – it must strike some balance between highest number of hashes per second and power efficiency.
Set up your GPU or mining rig of multiple GPUs, corresponding drivers, etc. and proceed with downloading mining software and choosing a pool to plug into.
Download mining software and Ethereum client
Miners also need to install a client that connects to and communicates with the Ethereum network. Geth is the most popular Ethereum client (written in Go). Once installed it can talk to other nodes and propagate gossip, providing an interface for on-chain contract deployment and executing transactions from the command-line.
Join a mining pool
The top Ethereum mining pools by market share are:
– EtherMine – fee of 1%
– F2Pool – fee of 3%
– SparkPool – fee of 1%
– Nanopool – fee of 1%
It’s important to keep in mind that each pool has different payout structures, review the pools available and decide on which one to join based on each one’s specifics.
Using the Claymore miner from the command line, input the pool to connect:
EthDcrMiner64.exe -epool eu1.ethermine.org:4444 -eworker YOUR_RIG_NAME -ewal WALLET_ADDRESS_FOR_PAYOUTS -epsw POOL_PASSWORD
Your rig name could be any and there’s no password associated with Ethermine. Once launching the mining software, block rewards will be automatically paid out to the designated Ethereum address. The miner will generate a DAG file on each of the GPUs and begin hashing away. If everything goes smooth, the output should look something like this:
Notes on Proof-of-Stake
The Etherem Github mining page states:
“Becoming an Ethereum miner is not recommended. Ethereum is going to transition to proof-of-stake, making Ethereum mining obsolescent.”
When deciding to mine Ether, one should consider Ethereum’s transition to proof-of-stake in the major 2.0 upgrade. Once that upgrade takes place all the hardware invested in proof-of-work will immediately become useless. On the other hand, accumulating Ether through mining in anticipation of PoS may also prove a profitable long-term strategy as the rewards earned in a PoS consensus arrangement are proportional to the amount of Ether staked in the system.
Ethstats.net provides a web interface monitoring the current state of the Ethereum network, including average block time and hashrate, difficulty and gas prices and limits, uncles and number of active nodes, etc.
Ethernodes.org is a node explorer showing geographic distribution of live nodes and the client versions of the software they run.
A comprehensive technical documentation and configuration details on how to use Claymore’s Dual AMD+nVidia GPU miner is available in the bitcointalk forum post here.
Geth (Ethereum full node implementation in Go) official documentation is available on the Ethereum Github repository here.
Updates/Developments – 21 Nov 2019
- Be in the lookout for Coinomi giveaways too. Yes, Coinomi takes it up to the next level and introduces giveaways and contests for its users. The last giveaway ended on October 2, and there’s more where that came from.
- As an additional perk, the platform occasionally offers giveaways of different tokens and coins. The volume of the gifts is not much, but it’s worth the wait and participation.
- Coinomi also recently announced support for the conference on blockchain and digital currencies – Decentralized, November 12-13, 2020.
Why is scaling so difficult?
Ethereum and bitcoin use a combination of technical tricks and incentives to ensure that they accurately record who owns what without a central authority. There is difficulty to preserve this balance while also growing the number of users. This is caused by Ethereum depending on a network of “nodes,” each of which stores the entire Ethereum transaction history and the current ‘state’ of account balances, contracts, and storage. The problem arises from this cumbersome task, especially since the total number of transactions is increasing approximately every 10–12 seconds with each new block.
The size of each block must be raised to fit more transactions, and the data that a node will need to store will grow larger – effectively kicking people off the network. If each node grows large enough, only a few large companies will have the resources to run them. Running a full node is the best way for users to take advantage of privacy and security. Making full nodes more difficult to run would further limit the number of people that can verify transactions themselves. In other words, decentralization and scalability are currently at odds, but developers are looking for ways around this.