当前位置: 首页 > web >正文

学习笔记《区块链技术与应用》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字节数组

http://www.xdnf.cn/news/17773.html

相关文章:

  • 云原生作业(nginx)
  • Neo4j Cypher语句
  • 【数据分享】2020-2022年我国乡镇的逐日最高气温数据(Shp/Excel格式)
  • Go 语言中的结构体、切片与映射:构建高效数据模型的基石
  • 超详细基于stm32hal库的esp8266WiFi模块驱动程序(可直接移植)
  • 嵌入式技术公开课精华笔记:CSDN专版
  • 如何将新建的Anaconda虚拟环境导入Juputer内核中?
  • C++11新增可变参数模板
  • 如何区分类的关系是关联和聚合?
  • 什么是 Spring MVC?
  • unity shader ——屏幕故障
  • Spring Boot项目通过RestTemplate调用三方接口详细教程
  • 网络协议组成要素
  • 数据结构:链表栈的操作实现( Implementation os Stack using List)
  • 飞算JavaAI 2.0.0深度测评:自然语言编程如何重塑Java开发范式
  • 六、SpringBoot多环境开发
  • MP8128GQ-Z转换器 MPS 电子元器件IC
  • 有限元方法中的数值技术:行列式、求逆、矩阵方程
  • 15_基于深度学习的苹果病害检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • 自己动手造个球平衡机器人
  • NWD-RKA论文阅读
  • C++Linux八股
  • 【完美解决】在 Ubuntu 24.04 上为小米 CyberDog 2 刷机/交叉编译:终极 Docker 环境搭建指南
  • Web前端小游戏轮盘。
  • VisionPro——1.VP与C#联合
  • 派聪明RAG知识库----关于elasticsearch报错,重置密码的解决方案
  • 基于 Easy Rules 的电商订单智能决策系统:构建可扩展的业务规则引擎实践
  • 计算机网络摘星题库800题笔记 第2章 物理层
  • 【Redis在远程控制指令传递中的设计】
  • mysql参数调优之 sync_binlog (二)