美文网首页
go ethereum 网络架构以及 p2p server启动流

go ethereum 网络架构以及 p2p server启动流

作者: Daemon_Shell | 来源:发表于2018-12-13 14:30 被阅读0次

        一直在学习 go ethereum source code,原因有二:

        (1) Linux之父那句很经典的话:学习软件最好的方法是"read the fucking source code";

        (2)对 Ethereum 一直兴趣比较浓,区块链技术发展个人认为:

            (a) bitcoin 技术发展因为POW不会进一步发展,将来会变成“数字黄金”;

            (b) EOS 越来越不像区块链,11个节点更像集群中心化服务器;

            (c) ethereum 仍然有很好的技术生态,coindesk 报道说 ethereum 八个团队仍然在致力于ethereum 2.0 开发;

            (d) 区块链技术发展才刚刚萌芽,肯定会有其他block chain诞生,并占领市场。

        不扯了,回到今天的话题。

    ethereum 网络架构

        这里就不分析源码了,这种工作网络上很多爱好者做得太多了;分享一篇特别棒的文章:

             Ethereum Network Architecture Analysis

        这篇文章质量还是挺高的,大家可以按照引导逐渐理解go ethereum的网络架构。

        这里谈一下自己的理解,如有错误,欢迎大家指正。

        (1)当 geth 启动,首先 make full node,注册 service(ethereum, les, whisper, ethstatis等);

        (2) service 是通过 protocol 来实现的,每个 service 由 protocol manager 管理各种 protocol;

        (3) full node启动后,p2p server listen and accept 网络连接,握手通过后创建Peer实例,

                通过peer.run方法把protocol run起来;

        (4) p2p server读取底层socket发过来的数据,分发给相应的protocol处理。

    P2P Server 启动流程

        上面的链接已经介绍了P2P server启动的流程,再分享一个链接:

            以太坊Go-ethereum源码分析之启动流程

        大家可以参考以上分析go ethereum源码。

        这里没有和大家分析源码,只是提供了学习go ethereum网络架构的参考,请大家自行学习代码。

    相关文章

      网友评论

          本文标题:go ethereum 网络架构以及 p2p server启动流

          本文链接:https://www.haomeiwen.com/subject/ubzjhqtx.html