学习笔记《区块链技术与应用》ETH 第二天 状态树
账户地址到账户状态的映射
addr -> state
160 bits [ 40 16 0~f ] 40个16进制数表示
如何为账户构建merkle tree?
比特币系统基于交易总是newly的更新不需要全局查找
以太坊需要考虑查找,排序,更新等场景
数据结构:trie
Patricia tree 压缩前缀树
misunderstanding - 分歧
decentralization - 分散化
disintermediation - 去中心化
键值分布稀疏用Patricia tree效果更好。
21602^1602160 地址位数 及其稀疏 避免碰撞 账户冲突的概率比地球爆炸概率还小
MPT Merkle Patricia tree
状态树举例:
以太坊的结构是大的MPT包含小的MPT,每一个合约结构都是MPT
ParentHash 父节点 block hearder hash
UncleHash 叔叔 block header hash
Coinbase 矿工地址
Root 状态树根hash
TxHash 交易树根hash
ReceipHash 收集树
Bloom 根据收集树 高校查询 某种条件查询
Difficulty 挖矿难度
number 难度
GasLitmit 交易费
GasUsed 交易费相关
Time 产生时间
MixDigest
Nonce 猜的随机数 符合难度要求
transactions 交易列表
状态树中保存的k-v,k是地址,v是账户状态。
经过序列化RLP,Recursive Length Prefix。
protocol buffer 简称protobuf,是一个系列化库
nested array of bytes字节数组