文章目录
一、账户状态stateTrie
- 一、账户状态stateTrie
-
- 1.2 查询余额代码思路
- 1.3 余额查询流程
- 二、获取账户余额
-
- 2.1 代码解析
- 2.2 完整代码
- 三、获取账户代币余额
Block.Header.Root 就是stateRoot,是一棵PMT树,存储了所有账户的当前最新的状态信息,比如账户余额。
a path is always: sha3(ethereumAddress) and a value is always: rlp(ethereumAccount) Root是一个hash值,通过Root去数据库中可以找到 stateTrie的根节点,然后通过sha3(ethereumAddress)得出要最终查找的path,再根据path可以一步步的找到每个账户rlp(ethereumAccount)
Account账户余额分为账户余额和账户代币余额两种类型
type Account struct {
Nonce uint64 //Nonce:账户发起交易的次数
Balance *big.Int //该账户的余额
Root common.Hash //存储树MPT,它是所有合约数据存储的地方
CodeH