惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
T
Tailwind CSS Blog
Microsoft Azure Blog
Microsoft Azure Blog
The Cloudflare Blog
博客园 - 叶小钗
N
Netflix TechBlog - Medium
罗磊的独立博客
量子位
MyScale Blog
MyScale Blog
A
About on SuperTechFans
Blog — PlanetScale
Blog — PlanetScale
V
Visual Studio Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
B
Blog
腾讯CDC
爱范儿
爱范儿
Recent Announcements
Recent Announcements
有赞技术团队
有赞技术团队
F
Fortinet All Blogs
雷峰网
雷峰网
G
Google Developers Blog
Google DeepMind News
Google DeepMind News

博客园 - 若-飞

电商订单为什么要存「交易快照」 Git Submodule Sync 完整技术文档 企业AI Agent落地的核心逻辑与路径 基于langchain,Function Call的成功率怎么解决? LangChain Checkpoint(检查点)是什么?—— Agent 的"存档机制" RAG 设计:Embedding 如何切分 AI 客服系统设计:RAG 知识库设计 Go 百万连接服务器设计:从网卡到业务的全链路解析 深度解析 sync.Pool:从设计哲学到生产实践 Goroutine 泄漏:原因、检测与防范 Go Channel 关闭与超时机制完全指南 Go Map 无限增长问题解决方案 LangChain 聊天记录压缩:原理、机制与实战 揭开 sklearn 文本分类的核心原理:从词袋到逻辑回归 大模型“胡说八道”怎么办?一张图读懂检测、评估与修复全方案 企业级AI知识库权限隔离设计:让AI“懂规矩”比“懂知识”更重要 RAG系统设计全解析:从架构到多模态的核心知识图谱 RAG召回率提升全攻略:7大核心方法让检索更精准 RAG召回率提升秘籍:Metadata过滤的底层原理与实践 构建更好的RAG系统:深入理解混合搜索 一文搞懂 RAG 中 Retriever 和 Reranker 的区别 一文搞懂 RAG 的召回率(Recall)是什么? LangChain / LangGraph、MCP、Harness Engineer 与 Claude Code 的对应关系 Agent Harness 技术笔记:从 Trajectory 到 Function Calling Loop BLEU 是什么?——从原理到工程实践 一文讲清:Approve / Permit / Permit2 的本质区别 分库分表后跨分页查询的完整方案 ai如何处理私有数据 ai幻觉是啥,以及如何解决 别再让大模型“凭空瞎猜”了!带你认识AI最强外挂:ChromaDB
以太坊节点存储与共识机制全解析
若-飞 · 2026-02-23 · via 博客园 - 若-飞

在区块链系统中,节点不仅是网络参与者,更是分布式状态机执行者。它们在运行过程中产生并维护多种类型的数据,通过共识算法确保全网状态一致。本文梳理节点存储的数据类型、存储位置及其与共识机制的关系,帮助读者全面理解节点运行原理。


一、节点身份与配置数据

节点运行前,需要生成并管理自身的身份信息和配置数据,这是节点安全与网络参与的基础。

1.1 节点密钥数据

存储位置:

主要内容:

  • 节点私钥文件(UTC--timestamp--address)

  • BLS密钥文件(用于共识投票)

  • 用户钱包账户密钥(加密私钥)

示例字段:

1.2 节点配置数据

存储位置:

主要配置项:

  • 网络:网络ID、Bootnode列表

  • 共识:验证者地址、BLS密钥路径

  • P2P:端口、最大连接数、发现协议开关

  • 性能:缓存大小、数据库句柄数


二、区块链核心数据存储

节点是账本和状态机的执行者,其核心存储包括区块数据、交易数据、状态数据和收据日志。

2.1 区块数据

存储位置:

数据库分区示意:

区块头结构示例:

交易数据结构示例:


2.2 状态数据

存储方式:

  • Trie + LevelDB

  • 每个账户和合约状态通过 Merkle Patricia Trie (MPT) 管理,保证状态可验证和不可篡改。

数据类型:

  1. 账户状态

    • 余额(Balance)

    • nonce

    • StorageRoot

    • CodeHash

  2. 合约存储

    • 独立键值Trie

  3. 代码存储

    • 合约字节码,按哈希索引

存储键构造示例:


2.3 收据与日志(Receipts & Logs)

  • 保存交易执行结果、事件日志

  • 支持轻客户端验证和状态回溯


三、节点共识机制核心

节点存储的数据最终通过共识机制得到全网一致性。共识的本质是:

“确保所有节点在相同输入(交易顺序)下执行状态机,生成一致的状态根(stateRoot)。”

3.1 达成共识的流程

  1. 交易顺序确定

    • PoW:矿工竞争出块 → 最长链决定交易顺序

    • PoSA/BSC:验证者轮值出块 → 多数签名形成共识

  2. 执行交易

    • 每个节点按交易顺序在 EVM 或状态机中执行

    • 更新账户余额、合约存储

  3. 生成本地状态根 (stateRoot)

    • 使用 MPT 计算新状态根

  4. 验证区块合法性

    • 对比区块头 stateRoot

    • 一致 → 接收区块,更新状态

    • 不一致 → 拒绝区块


3.2 共识算法示例

链/共识算法 核心机制 特点
PoW(比特币) 算力竞争出块 矿工通过算力竞争生成新区块,最长链原则决定交易顺序,存在短暂分叉,最终性延迟
PoS(以太坊) 验证者轮值 + 投票签名 验证者按持币权重轮流出块,多数签名形成最终性强的区块,几乎不存在分叉
PoSA(BSC) 验证者轮值 + 投票签名 21 个验证者轮流出块,出块快速,状态几乎即时一致

四、数据存储与共识的关系

存储类型 功能 共识作用
区块数据 历史账本 决定有效区块
交易数据 执行输入 保证交易顺序一致
状态数据 账户与合约状态 执行交易生成状态根验证一致性
收据/日志 执行结果和事件 支持轻客户端验证与审计

五、总结

  1. 节点存储 多层次数据:身份与密钥、区块、交易、状态、收据/日志

  2. 共识核心是 状态一致性:节点执行相同交易,生成一致 stateRoot

  3. 状态根验证是 全网一致性的关键,确保每个节点在分布式环境下保持账本一致

总结一句话:节点存储数据是基础,共识决定交易顺序,状态根验证保证全网状态一致。