账户结构
// core/state/state_object.go
type stateObject struct {
address common.Address
addrHash common.Hash // hash(address)
// account state
data types.StateAccount
// 指向stateDB: 真正存储数据的地方
// 方便调用 StateDB 相关的API对Account所对应的stateObject进行CRUD操作
db *StateDB
// DB error.
// State objects are used by the consensus core and VM which are
// unable to deal with database-level errors. Any error that occurs
// during a database read is memoized here and will eventually be returned
// by StateDB.Commit.
dbErr error
// 内存缓存相关逻辑
trie Trie // storage trie
code Code // contract bytecode, 缓存代码当代码被从DB storage中加载出来
// 在执行 Transaction 的时候缓存合约修改的持久化数据
// EOA账户为空
originStorage Storage
pendingStorage Storage
dirtyStorage Storage
fakeStorage Storage
dirtyCode bool // true: 当code被更新
suicided bool
deleted bool
}1)EOA账户


2)CA账户
Last updated