
Geth源码解析
文章平均质量分 97
平平无奇的程序猿
这个作者很懒,什么都没留下…
展开
-
以太坊Geth 共识算法源码解析
共识算法目前以太坊中有两个公式算法的实现,分别为clique和ethash。其中clique是PoA共识的实现,ethash是PoW共识的实现,其相应的代码位于go-ethereum/consensus目录下。PoW (ethash)PoW定义PoW与PoA不同之处在于,PoW是一个人人都可能有出块权的共识机制,而PoA通过“选举专家”来确认出块权。PoW可以被概括为如下:PoW用来对人人可以参与的区块链项目的出块权进行确权。确权的方式是通过计算满足一定的条件。这个计算必须是复杂的、耗时的;而条件原创 2021-09-03 15:24:12 · 2855 阅读 · 1 评论 -
以太坊Geth Trie源码解析
引言Merkle Patricia Trie 是一种经过改良的、融合了默克尔树(Merkle Trie)和前缀树(Patricia Trie)两种树结构优点的数据结构,是以太坊中用来存储键值数据对(Key, Value)的重要树形数据结构。MPT树具有以下几个作用:存储任意长度的 Key-Value 键值对数据;提供了一种快速计算所维护数据集哈希标识的机制;提供了快速状态回滚的机制;提供了一种称为默克尔证明的证明方法,进行轻节点的扩展,实现简单支付验证;由于MPT结合了默克尔树及前缀树的优势原创 2021-08-27 16:25:44 · 9319 阅读 · 3 评论 -
以太坊Geth RLP编码源码解析
RLP编码基本原理RLP (Recursive Length Prefix) 编码唯一的目的是解决结构体编码问题。RLP编码设计的两个结构体分别为:String和List。它们的定义如下:String指的是一串字节,对应Go语言中的 string/[]byte/uint/[]uint/[N]uint 等List指定是由许多String和List组成的一个列表,如 struct/[]interface{} 等比如,"\x11 \x22 \x33" 和 “abc” 为String类型,而 [“ab”原创 2021-07-23 12:19:09 · 4111 阅读 · 0 评论