When I build a private chain setup, what is the maximum Geth ethereum I can have for the life of the network. Another way of asking the question would be: What is the maximum ethereum one account can have? What is the maximum ethereum all accounts collectively can have? On the same note, what is the maximum number of blocks I can have?
2 Answers
This is an interesting question! Let's look at each question in particular:
Max number of blocks
Theoretically there should be no upper limit since the chain of blocks must be able to continually grow over time. However, since the block number is stored as a finite integer, there is a limit to how high this number can be. See the full discussion in this related question.
Max number of ETH
I ran a little experiment using ganache-cli
locally, which is a good proxy for geth
since it is governed by the same rules of the game. See what was allowed by ganache
:
ganache-cli --defaultBalanceEther 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
And it can go on like this for a long time. You can query the balance of the accounts with web3 for example:
> web3.eth.getBalance(web3.eth.accounts[0])
BigNumber { s: 1, e: 619, c: [ 1000 ] }
BigNumber can get you a long way. But I'm curious to know what the Ethereum protocol itself specifies for maximum balance / transaction amount.
Just tested with parity ethereum client 2.5.10: maximum possible value was
0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
being 64 hexadecimal signs -> 256 bit long. Anything exceeding it leads to a node panic