存档

文章标签 ‘以太坊’

geth以太坊源码分析-连接其他以太坊peer节点流程

2018年7月15日 2 条评论 34406次阅读    

之前的文章讲过P2P模块的UDP节点发现机制以及TCP连接池机制,接下来讲一下连接池后面,连接到一个新的节点后,接下来的流程是什么样的,怎么开始的区块同步,交易同步等。
阅读全文...

Share
分类: geth, geth 标签: , ,

geth以太坊源码分析-P2P模块TCP连接池网络通信机制原理

2018年7月1日 2 条评论 29897次阅读    

geth的P2P模块有2个重要的部分:基于UDP的节点发现模块 以及 TCP数据传输连接池模块。
之前讲过节点发现部分,用来根据设置的少了BootstrapNodes节点来发现更多全网的其他节点,这部分只是发现节点并找出其中可以ping通的节点,但是还没有进行使用,还没建立TCP连接进行数据传输,协议处理等。
这里分析一下P2P系统的TCP连接池是怎么建立的,以及是怎么跟其他节点通信的。

阅读全文...

Share
分类: geth, GO 标签: , ,

geth以太坊源码分析-P2P服务发现 UDP协议存在死循环没有优雅退出

2018年6月23日 没有评论 28591次阅读    

geth代码时, 到p2p/discover/udp.go readLoop()函数的处理的时候,直接一个死循环没有监听closing管道,所以基本上是不能优雅退出的。
可能是作者觉得这个不重要,所以没管它?

阅读全文...

Share
分类: C/C++ 标签: ,

geth以太坊源码分析-启动服务2

2018年6月23日 没有评论 29147次阅读    

上一篇geth以太坊源码学习-启动服务1写到geth()入口函数,这里继续后面看看以太坊是怎么创建一个节点,并且启动服务的。
再看下geth函数,主要是节点创建函数makeFullNode 和启动函数 startNode , 后者会创建协程启动节点,然后进入等待状态。

阅读全文...

Share
分类: geth, GO 标签: , , ,

geth以太坊源码分析-启动服务1

2018年6月23日 没有评论 30271次阅读    

最近区块链这么火,出于好奇想看看源码实现,比较著名的就是比特币和以太坊了,前者是始祖,后者因为有智能合约的存在,所以大量不会写区块链底层的人可以利用以太坊实现自己的链,实际上,就是ICO, token了。
找了两者的官方源码:比特币以太坊, 由于之前对C,C++源码看的多一些,所以这回趁这机会再了解一下go怎么实现以太坊的。

阅读全文...

Share
分类: geth, GO 标签: , , ,