摘要:死磕以太坊源码分析之Fetcher同步 Fetcher 功能概述 区块数据同步分为被动同步和主动同步: 被动同步是指本地节点收到其他节点的一些广播的消息,然后请求区块信息。 主动同步是指节点主动向其他节点请求区块数据,比如geth刚启动时的syning,以及运行时定时和相邻节点同步 Fetcher负 阅读全文
posted @ 2020-12-03 08:56 mindcarver 阅读(80) 评论(0) 推荐(0) 编辑
摘要:死磕以太坊源码分析之区块和交易广播 ProtocolManager详解 ProtocolManager,从字面上看是协议管理器,负责着p2p通信协议的管理。它连接了p2p的逻辑层peer与顶层peer之间的调用,从顶层将协议传递至逻辑层,再从逻辑层得到message传递到顶层。 fastSync规定 阅读全文
posted @ 2020-12-02 15:04 mindcarver 阅读(49) 评论(0) 推荐(1) 编辑
摘要:死磕以太坊源码分析之rlpx协议 本文主要参考自eth官方文档:rlpx协议 符号 X || Y:表示X和Y的串联 X ^ Y: X和Y按位异或 X[:N]:X的前N个字节 [X, Y, Z, ...]:[X, Y, Z, ...]的RLP递归编码 keccak256(MESSAGE):以太坊使用的 阅读全文
posted @ 2020-11-24 16:53 mindcarver 阅读(117) 评论(0) 推荐(1) 编辑
摘要:死磕以太坊源码分析之p2p节点发现 在阅读节点发现源码之前必须要理解kadmilia算法,可以参考:KAD算法详解。 节点发现概述 节点发现,使本地节点得知其他节点的信息,进而加入到p2p网络中。 以太坊的节点发现基于类似的kademlia算法,源码中有两个版本,v4和v5。v4适用于全节点,通过d 阅读全文
posted @ 2020-11-23 21:25 mindcarver 阅读(124) 评论(0) 推荐(0) 编辑
摘要:死磕以太坊源码分析之Kademlia算法 KAD 算法概述 Kademlia是一种点对点分布式哈希表(DHT),它在容易出错的环境中也具有可证明的一致性和性能。使用一种基于异或指标的拓扑结构来路由查询和定位节点,这简化了算法并有助于证明。该拓扑结构有一个特点:每次消息交换都能够传递或强化有效信息。系 阅读全文
posted @ 2020-11-22 15:11 mindcarver 阅读(96) 评论(0) 推荐(0) 编辑
摘要:p2p源码目录 discover/ 基于UDP的节点发现V4协议 discv5/ 节点发现V5协议 enode/ 节点信息 enr/ 以太坊节点记录(ethereum node records) nat/ 网络地址转换,用于内网穿透 netutil/ protocol/ simulations/ 本 阅读全文
posted @ 2020-11-21 15:14 mindcarver 阅读(22) 评论(0) 推荐(0) 编辑
摘要:blockchain关键元素 db:持久化到底层数据储存,即leveldb; genesisBlock:创始区块 currentBlock:当前区块,blockchain中并不是储存链所有的block,而是通过currentBlock向前回溯直到genesisBlock,这样就构成了区块链 body 阅读全文
posted @ 2020-10-16 16:30 mindcarver 阅读(70) 评论(0) 推荐(0) 编辑
摘要:交易池概念原理 交易池工作概况: 交易池的数据来源主要来自: 本地提交,也就是第三方应用通过调用本地以太坊节点的RPC服务所提交的交易; 远程同步,是指通过广播同步的形式,将其他以太坊节点的交易数据同步至本地节点; 交易池中交易去向:被Miner模块获取并验证,用于挖矿;挖矿成功后写进区块并被广播 阅读全文
posted @ 2020-10-15 19:20 mindcarver 阅读(137) 评论(0) 推荐(0) 编辑
摘要:启动参数 以太坊是如何启动一个网络节点的呢? ./geth --datadir "../data0" --nodekeyhex "27aa615f5fa5430845e4e97229def5f23e9525a20640cc49304f40f3b43824dc" --bootnodes $enodei 阅读全文
posted @ 2020-10-13 15:32 mindcarver 阅读(132) 评论(0) 推荐(1) 编辑
摘要:文章以及资料(开源):github地址 命令 account 管理账户 attach 启动交互式JavaScript环境(连接到节点) bug 上报bug Issues console 启动交互式JavaScript环境 copydb 从文件夹创建本地链 dump Dump(分析)一个特定的块存储 阅读全文
posted @ 2020-10-12 14:34 mindcarver 阅读(86) 评论(0) 推荐(0) 编辑