美文网首页
比特币学习之-P2P网络

比特币学习之-P2P网络

作者: ttblack | 来源:发表于2017-07-17 19:45 被阅读3279次

    比特币的网络采用了基于国际互联网(Internet)的P2P网络架构。英文是peer to peer,所以也叫对等网络。顾名思义也就是网络中的每台计算机是对等的,各个节点共同提供网络服务,不存在任何“特殊”节点。在 P2P 网络中不存在任何服务端(server)、中央化的服务、以及层级结构。这也是比特币网络或者说区块链的一个重要特征——去中心化。 这样网络中的任何一台机器出现问题都不会影响其他节点,保证网络的正常运行。

    p2p网络

    一。尽管比特币P2P网络中的各个节点相互对等,但是根据所提供的功能不同,各节点可能具有不同的分工。

    1。全结点 

    全结点

    这种结点就是包含了钱包,挖矿,区块链,网络路由功能的一个集合结点。全节点能够独立自主地校验所有交易,而不需借由任何外部参照。

    2。SPV结点


    spv结点

    这种只保留了区块链的一部分(区块头),它们通过一种名为“简易支付验证(SPV)”的方式来完成交易验证。英文是Simplified Payment Verification。这样的节点被称为“SPV节点”,又叫“轻量级节点”。关于什么是SPV验证,简单来说就是通过这个区块头的信息通过网络到区块链里去验证。具体请参考Higher的文章:http://www.jianshu.com/p/39be41dfb5fa 。

    3。挖矿结点。

    这种结点,其实只要有独立矿工功能的结点都可以叫做挖矿结点。全结点其实就是一种挖矿结点。

    带有矿池协议的挖矿结点 独立矿工

    挖矿节点通过运行在特殊硬件设备上的工作量证明(proof-of-work)算法,简称POW。以相互竞争的方式创建新的区块。一些挖矿节点同时也是全节点,保有区块链的完整拷贝;还有一些参与矿池挖矿的节点是轻量级节点,它们必须依赖矿池服务器维护的全节点进行工作。

       如果网络既包含运行比特币P2P协议的网络,又包含运行上面不同协议的结点。这种网络也叫扩展比特币网络。

    扩展比特币网络

    这种网络包括了多种类型的节点、网关服务器、边缘路由器、钱包客户端以及它们相互连接所需的各类协议。

    二。网络发现。

              当我们启动一个机器的时候,这个结点是如何发现其他的结点和被其它结点发现的呢,他们是如何连接的?至少与其它一个结点连接后才能够参与协同运作。

             首先,每个结点通常与其他结点进行通讯的协议是TCP协议。端口号是8333(也可以是其它端口)。

    这个网络发现的过程,我借用了销售行业的一个名词——转介绍。过程是这样的。

              如果你来到一个全是陌生人的屋子里面,大家都不认识你,你很想加入他们这个圈子(网络),你这时先从离自己最近的人开始交换信息(握手),然后这个人开始对他旁边的介绍你,你也和他们进行握手。这样你就加入了他们这个网络。

        这个转介绍的信息内容包括:

    1。PROTOCOL_VERSION

        常量,定义了客户端所“说出”的比特币 P2P 协议所采用的版本(例如:70002)

    2。nLocalServices

        一组该节点支持的本地服务列表,当前仅支持 NODE_NETWORK

    3。nTime

        当前时间

    4。addrYou

        当前节点可见的远程节点的 IP 地址

    5。addrMe

        本地节点所发现的本机 IP 地址

    6。subver

      指示当前节点运行的软件类型的子版本号(例如:”/Satoshi:0.9.2.1/”)

    7。BaseHeight

         当前节点区块链的区块高度

    作者:区块链研习社比特币源码研读班,black

    相关文章

      网友评论

          本文标题:比特币学习之-P2P网络

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