我真的很困惑 ERC20 代币余额是如何存储在链上的。似乎所有余额数据都存储为成员映射变量:
contract TestCoin is ERC20Interface {
...
mapping(address => uint) balances;
...
我想知道区块链上存储了多少副本。假设balances
包含 10K 条记录,最高区块号为 100。现在我进行了一次代币转账,其中 2 条记录在balances
changed 中,我们得到了一个新的balances
,并且此转账由一个新的区块 101 确认。
<------- [Block 100] <------- [Block 101]
^ ^
| |
balance1 balance2
余额存放在哪里?是否可以检索块 100 中的余额?(我想我们必须能够这样做,因为区块链可以回滚)。
我正在使用 geth/web3/eth,如果您能将我引导到相关文档页面,那就太好了。
非常感激!