摘要: 分析go-ethereum的过程,我希望从依赖比较少的底层技术组件开始,慢慢深入到核心逻辑。 目录 go-ethereum代码阅读环境搭建 以太坊黄皮书 符号索引 rlp源码解析 trie源码分析 ethdb源码分析 rpc源码分析 p2p源码分析 eth协议源码分析 core源码分析 区块链索引 阅读全文
posted @ 2018-04-07 20:55 西门大神 阅读(776) 评论(0) 推荐(0) 编辑
摘要: 以太坊作为一个去中心化的系统,其底层个体相互间的通信显然非常重要,所有数据的同步,各个个体状态的更新,都依赖于整个网络中每个个体相互间的通信机制。以太坊的网络通信基于peer-to-peer(p2p)通信协议,又根据自身传输数据类型(区块,交易,哈希值等),网络节点业务相关性等需求,在各方面做了特别 阅读全文
posted @ 2018-04-07 20:42 西门大神 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 以太坊作为一种数字货币以太币的运行系统,显然它也会有类似于钱包的客户端程序,用来提供管理账户余额等功能。我们知道,存放(或者绑定,挂靠)以太币的账户,在代码中以Address类型变量存在,所以能够管理多个以太坊账户应该属于客户端程序基本功能之一。本文会从管理账户信息的代码包开始,自底向上的介绍以太坊 阅读全文
posted @ 2018-04-07 20:40 西门大神 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 数字签名算法在Ethereum中的应用不少,目前已知至少有两处:一是在生成每个交易(Transaction, tx)对象时,对整个tx对象进行数字签名;二是在共识算法的Clique算法实现中,在针对新区块进行授权/封印的Seal()函数里,对新创建区块做了数字签名。这两处应用的签名算法都是椭圆曲线数 阅读全文
posted @ 2018-04-07 20:39 西门大神 阅读(1904) 评论(0) 推荐(0) 编辑
摘要: 本系列的前两篇分别介绍了以太坊的基本概念,基本环节-交易,区块、区块链的存储方式等,这篇打算介绍一下“挖矿“得到新区块的整个过程,以及不同共识算法的实现细节。 1.待挖掘区块需要组装 在Ethereum 代码中,名为miner的包(package)负责向外提供一个“挖矿”得到的新区块,其主要结构体的 阅读全文
posted @ 2018-04-07 20:38 西门大神 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 在Ethereum的世界里,数据的最终存储形式是[k,v]键值对,目前使用的[k,v]型底层数据库是LevelDB;所有与交易,操作相关的数据,其呈现的集合形式是Block(Header);如果以Block为单位链接起来,则构成更大粒度的BlockChain(HeaderChain);若以Block 阅读全文
posted @ 2018-04-07 20:37 西门大神 阅读(1365) 评论(1) 推荐(0) 编辑
摘要: 最近在看以太坊(Ethereum)的源代码, 初初看出点眉目。 区块链是近年热点之一,面向大众读者介绍概念的文章无数,有兴趣的朋友可自行搜索。我会从源代码实现入手,较系统的介绍一下以太坊的系统设计和协议实现等,希望能提供有一定深度的内容,欢迎有兴趣的朋友多多讨论。 注:1.源代码在github上, 阅读全文
posted @ 2018-04-07 20:33 西门大神 阅读(631) 评论(0) 推荐(0) 编辑