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

学习笔记《区块链技术与应用》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.dtcms.com/a/327565.html

相关文章:

  • 解决 HTTP 请求 RequestBody 只能被读取一次的问题
  • 敏捷开发的关键点是什么?深入探索!
  • Windows server服务器上部署python项目域名访问(超详细教程)
  • Vue 3 + Elementui + TypeScript 实现左侧菜单定位右侧内容
  • 【实时Linux实战系列】实时智能监控与异常检测
  • 什么是 DispatcherServlet?
  • 【Java项目与数据库、Maven的关系详解】
  • 部署一个开源的证件照系统
  • Notepad++ 插件开发实战技术
  • 3.8 vue2 devServer配置和 CDN 加载外部资源
  • code-inspector-plugin插件
  • 服务端配置 CORS解决跨域问题的原理
  • 从阶段演进到智能跃迁:企业合同管理的发展与趋势
  • 高性能web服务器nginx
  • Work【3】:TRIG —— 解码多维度权衡,重塑生成模型评测与优化新范式!
  • 无人机影像的像素坐标转大地坐标
  • 2025年中科院2区红杉优化算法Sequoia Optimization Algorithm-附Matlab免费代码
  • 数字气压传感器,筑牢汽车TPMS胎压监测系统的精准感知基石
  • 吉利汽车7月销量超23.7万辆 同比增长58%
  • Spring Boot 整合MongoDB
  • 【数据分析与挖掘实战】金融风控之贷款违约预测
  • Rust 泛型和 C++ 模板语法对比
  • 云原生高级---TOMCAT
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.2 验证安装(`node -v`、`npm -v`命令使用)
  • centos 7 如何安装 ZipArchive 扩展
  • 前端性能优化:实战经验与深度解析
  • 基于深度学习的股票分析和预测系统
  • 基于知识图谱增强的RAG系统阅读笔记(五)Agentic RAG:基于代理的RAG
  • 99、【OS】【Nuttx】【构建】cmake 配置实操:问题解决
  • SSH浅析