随笔分类 - ether
以太坊
摘要:// calculateEpochRootHash calculates the root hash of the epoch func (p *Parlia) calculateEpochRootHash(chain consensus.ChainHeaderReader, epoch uint6
阅读全文
摘要:最近遇到一个gasPrice给太低导致无法执行的问题: 获取内存池交易 curl -X POST -H "Content-Type: application/json" --data '{ "jsonrpc":"2.0", "method":"txpool_content", "params":[]
阅读全文
摘要:概述 在运行 Go-Ethereum 节点时,特别是提供公共 RPC 服务的节点,安全配置至关重要。RPCGasCap 和 RPCTxFeeCap 是两个重要的安全参数,用于防止恶意用户通过 RPC 接口消耗过多资源或提交异常交易。 1. 配置文件配置 配置文件位置 在 config.toml 文件
阅读全文
摘要:在以太坊开发中,SendTransaction 和 CallContract 是两种核心的链交互方式,但它们的适用场景和错误处理机制截然不同。本文将深入解析它们的区别并提供错误处理最佳实践。 🚀 核心区别:状态改变 vs 状态查询 特性 SendTransaction CallContract 链
阅读全文
摘要:下载开源项目:https://github.com/blockscout/blockscout docker部署文档:https://docs.blockscout.com/setup/deployment/docker-compose-deployment 这样就可以了: cd ./docker-
阅读全文
摘要:核心流程图总览 图表 代码 1. 关键三步:如何获得“初始邻居” 流程图1:初始节点选择 内置Bootnodes 以太坊客户端预置的12+个可信节点(如Geth的 enode://a979...@18.138.108.67:30303) 随机策略:客户端启动时随机选取3个避免集中连接 本地历史缓存
阅读全文
摘要:1. 同步模式概述 以太坊节点在同步数据时提供两种模式:FullSync(完整同步)和 SnapSync(快照同步)。这两种模式针对不同场景进行了优化。 1.1 配置方式 [Eth] SyncMode = "snap" # 可选值: "full" 或 "snap" 1.2 命令行配置 geth --
阅读全文
摘要:1. 问题背景 当节点重启后出现区块号从头开始的问题,通常与状态存储机制有关。这个问题的典型错误日志是: lvl=warn msg="Head state missing, repairing" number=184 hash=0x8eaadd... diskRoot=0x45cea0... lvl
阅读全文
摘要:以太坊中处理过的的区块链相关的数据最终都会持久化到数据库中,以太坊采用的底层数据库是 LevelDB,LevelDB 是由 Google 开发的基于 key-value 的非关系型数据库存储系统,特别适用于写多读少的场景。在 Geth 启动流程这一节的介绍中提到过,创建 Ethereum 实例时,创
阅读全文
摘要:引言 在以太坊节点的运行过程中,状态数据的持久化是一个核心问题。本文将深入分析以太坊在处理自己产生的区块和同步其他节点区块时,状态存储机制的差异。 状态存储的两种场景 1. 自己产生区块的处理流程 当节点作为验证者产生新区块时,使用 WriteBlockAndSetHead 函数处理: func (
阅读全文
摘要:1. 交易池概述 交易池(TxPool)是以太坊节点中的一个重要组件,主要负责管理和处理待处理的交易。每个节点都维护自己的交易池,用于存储从网络接收或本地提交的交易。 2. 交易池的主要功能 2.1 交易收集和存储 收集来自网络或本地提交的交易 将交易暂时存储在内存中 当交易被打包进区块或因资源限制
阅读全文
摘要:1、什么是权益证明 权益证明是一种机制或者说是一种规则,其用于规范及协调参与网络的验证节点,这些验证节点依照指定规则有条不紊的收集交易、打包区块、验证区块,并维护底层区块链的安全、高效的运行。为了制约验证节点的欺诈行为,该规则要求申请成为验证节点需要抵押32个ETH到指定的以太坊智能合约,当发现有节
阅读全文
摘要:一、Epoch 的基本概念 从 Prysm 的源码实现来看,Epoch 是以太坊 PoS 中的一个基本时间单位: // beacon-chain/core/time/slot_epoch.go func CurrentEpoch(state state.ReadOnlyBeaconState) pr
阅读全文
摘要:一、验证者角色分配 在以太坊 PoS 中,验证者可能承担三种不同的角色: 区块提议者(Proposer) - 负责打包和提议新区块 验证者(Attester) - 对区块进行投票验证 聚合者(Aggregator) - 负责收集和聚合投票 二、角色分配和执行流程 1. 入口监听 // validat
阅读全文
摘要:引言 以太坊作为全球最大的智能合约平台之一,其底层网络通信依赖于一套高度优化的P2P协议栈——devp2p(Development P2P)。这一协议栈负责节点发现、安全通信、数据同步等核心功能,是以太坊去中心化特性的技术基石。本文将深入剖析 devp2p 的设计原理、关键技术及实际应用,帮助开发者
阅读全文
摘要:一、区块基本构成 区块(Block)由三个主要部分组成: 区块头(Header) 交易列表(Transactions) 叔块列表(Uncles) 1.1 区块头(Header)详解 区块头包含区块的元数据信息,主要字段包括: 区块头关键字段: 1. ParentHash:父区块的哈希值 - 用于维护
阅读全文
摘要:引言 以太坊在2022年9月完成了历史性的"合并"(The Merge),从工作量证明(PoW)转向了权益证明(PoS)机制。这个重大升级引入了双层架构设计,让我们深入了解这个创新的系统架构。 架构图解 引言 以太坊在2022年9月完成了历史性的"合并"(The Merge),从工作量证明(PoW)
阅读全文
摘要:什么是 RLP? RLP(Recursive Length Prefix)是以太坊中最重要的数据编码方法之一。它主要用于序列化(编码)数据,设计目标是对任意嵌套的二进制数据数组进行编码。名称中的"Recursive"(递归)表示编码可以嵌套,"Length Prefix"(长度前缀)表示在数据前会加
阅读全文
摘要:什么是区块链重组? 区块链重组(Reorg)是指区块链网络中出现分叉后,需要丢弃一些已经确认的区块,并替换成新的区块的过程。这个过程可以用如下方式表示: 原始链: A -> B -> C -> D 重组后: A -> B -> C' -> D' 在这个过程中,原有的C和D区块被丢弃(drop),新的
阅读全文
摘要:引言 随着以太坊区块链的不断发展,存储空间的需求也在急剧增长。为了使节点更容易运行和维护,以太坊实现了sophisticated的数据修剪机制。本文将深入探讨这一重要特性。 为什么需要数据修剪? 存储压力 以太坊全节点数据量持续增长 完整的历史数据可能需要数TB存储空间 高昂的硬件成本阻碍了去中心化
阅读全文

浙公网安备 33010602011771号