火星链 火星链
Ctrl+D收藏火星链
首页 > 聚币 > 正文

NODE:科普 | 理解以太坊的 P2P 网络

作者:

时间:1900/1/1 0:00:00

作者:LarryHu

翻译&校对:haiki&阿剑

来源:以太坊爱好者

此文旨在帮助你理解P2P网络,并阐述一些以太坊的实现细节。P2P技术利用终端设备的丰富资源,能够缓解中心化系统的短板,而且从九十年代开始,这项技术就已经被eMule,bitTorrent和Skype等知名软件所采用。P2P技术也是比特币或者以太坊区块链系统的核心组件。很多人都听说过P2P,但是不知道它到底是什么。那就让我们从了解什么是P2P网络开始吧。

什么是P2P网络?

点对点网络是一种网络覆盖层——就是说,它是建立在公开互联网之上的。从数学的角度来说,P2P网络可以被视作一个有向图G=(V,E),其中V是网络中的对等节点集合,E?是对等节点所连成的边的集合。每个对等节点p都有一个独一无二的标识号pid。集合E中的边指p可通过直接相连的路径向q发送消息;也就是说,p使用q的pid作为目的地址,在网络之上向q发送消息。尽管在底层的TCP/IP网络中,相似的IP地址可以转译为在地理位置上相互接近,但很少有这么明确的直接关联。

国务院:推进科普与区块链技术深度融合:为贯彻落实党中央、国务院关于科普和科学素质建设的重要部署,依据《中华人民共和国科学技术进步法》、《中华人民共和国科学技术普及法》制定《全民科学素质行动规划纲要(2021-2035年)》,其中要求实施智慧科普建设工程。推进科普与区块链等技术深度融合,强化需求感知、用户分层、情景应用理念,推动传播方式、组织动员、运营服务等创新升级,加强“科普中国”建设,强化科普信息落地应用,与智慧教育、智慧城市、智慧社区等深度融合。(新华社)[2021/7/10 0:40:52]

理想情况下,所有的对等节点间都应该有一条路径相连。但因为每个节点对网络拓扑和其他对等节点只有一个不完整的视图,所以网络覆盖层需要中间节点将消息转发至正确目的。图的结构为每对节点提供了多条中间路径,因此就算对等节点改变,也可通过图的连通性提供网络的恢复能力。对每个对等节点来说,图的连通性通过与其他对等节点的邻接关系来反映。当对等节点加入或者离开网络,邻接的对等节点可能会持有不正确的邻接信息。因此使用网络覆盖层维护机制保存更新的邻接信息,使得所有节点间保持连通性。

人大附中物理老师李永乐科普拜占庭将军问题和区块链:5月14日,人大附中物理老师、科普视频网红李永乐在其公众号发布视频《拜占庭将军问题是什么?区块链如何防范恶意节点?》。李永乐老师在视频中对拜占庭将军问题和区块链进行了讲解,他表示,拜占庭将军问题本质上指的是,在分布式计算机网络中,如果存在故障和恶意节点,是否能够保持正常节点的网络一致性问题。在近40年的时间里,人们提出了许多方案解决这一问题,称为拜占庭容错法。例如兰波特自己提出了口头协议、书面协议法,后来有人提出了实用拜占庭容错PBFT算法,在2008年,中本聪发明比特币后,人们又设想了通过区块链的方法解决这一问题。区块链通过算力证明来保持账本的一致性,也就是必须计算数学题,才能得到记账的权力,其他人对这个记账结果进行验证,如果是对的,就认可你的结果。与拜占庭问题比起来,就增加了叛徒的成本。[2020/5/14]

动态 | 央行官微旧文重发“再科普”:范一飞详解数字货币:据中国经济网消息,今日,央行官微公众号头条重新发布央行副行长范一飞在2018年1月25日题为《关于央行数字货币的几点考虑》的文章,对央行数字货币再次进行科普。同时,微信公众号第二条发布支付司副司长穆长春8月10日在第三届中国金融四十人伊春论坛上的演讲。近年来,各主要国家和地区央行及货币当局均在对发行央行数字货币开展研究,新加坡央行和瑞典央行等已经开始进行相关试验,人民银行也在组织进行积极探索和研究。[2019/8/21]

P2P网络中的参与者向其他网络参与者提供部分资源。不需要中心化的协调者,每个对等节点都可贡献计算周期,磁盘存储和网络带宽。传统的客户端-服务器模型中,服务器提供资源,客户端使用资源;与之相对的,在P2P网络中,对等节点既是网络资源的供应者,也是消费者。因此,P2P网络可以很好地解决客户端-服务器模型下的一些短板,比如可扩展性和单点故障。

动态 | 美国演说家Anthony Robbins开始科普什么是比特币:美国演说家安东尼·罗宾(Anthony Robbins)在自己的网站上发布了一篇比特币的科普文章,并在推特上向自己的粉丝介绍什么是比特币,目前他的推特账户共有粉丝304万人。[2019/1/1]

一般来说,P2P网络会有一个门槛,节点的资源贡献高于这个门槛才能加入网络。度量资源贡献的标准应该是公平的,比如说,要求网络中每个对等节点的平均贡献应该在P2P系统总体平均值的统计范围内等。资源贡献应该是双方互惠的。付出贡献后可得到的利益,吸引着用户加入P2P应用。

以太坊的P2P网络是如何工作的?

以太坊的官方客户端节点软件?Geth,基于一种覆盖层维护机制实现了对等节点发现协议。虽然Kademlia是为了在P2P网络中有效地定位和存储内容而设计的,以太坊的P2P网络只用它来发现新的对等节点。

Kademlia

以太坊网络中,每个客户端节点都配备有一个?

enode?ID,之后将此ID用SHA3算法

中科院自动化研究所将面向大中小学生开展区块链等主题的科普讲座:5月21日,新华网讯,今年,中国科学院自动化研究所将举办第十四届“自动化之光”公众科学开放日活动。届时,自动化所将面向大中小学生分别开展《脑与智能》、《区块链技术与平行智能》、《大数据时代的视觉智能》、《动画真奇妙》等4个主题报告,用实例和生动的演示深入浅出地为大家揭示智能技术的原理和奥妙。[2018/5/21]

散列为一个256位的值。Kademlia使用XOR操作定义距离,因此两个256位的数字之间的距离是他们的按位异或值。每个对等节点都拥有一个包含256个不同的桶的数据结构,每个桶i中存储与本节点距离在2

i-1?到2

i?之间的16个节点。为了发现一个新的对等节点,以太坊节点选择自己作为目标x,从桶中寻找到16个与目标x最近的节点,之后请求这16个节点,让它们从自己的桶中各找出16个与目标x“更近”的节点并返回,这样以来,会得到至多16x16个新发现的节点。之后请求这16x16个新发现的节点中离目标x最近的16个节点,让它们返回与x更近的16个节点。这个过程持续迭代,直到没有新节点被发现。

-异或操作示意图-

-bucket与距离对应的示意图-

对等节点间通信

Geth使用UDP连接交换P2P网络的信息。有4种类型的UDP消息。一条?

*ping*?消息请求一条?

*pong*?消息作为返回。此对消息用来判断相邻节点是否可响应。一条?

*findnode*?消息请求一条?

*neighbors*?消息作为返回。当建立好对等节点的连接之后,Geth节点通过加密和认证的TCP连接来交换区块链信息。

数据结构

Geth客户端用两种数据结构存储其他节点的信息。第一种是称作?

db?的长期数据库,它存储在磁盘内,客户端重启之后数据也是持久存在的。

db?中包含客户端交互过的每个节点信息。db的每条记录包含节点ID,IP地址,TCP端口,UDP端口,最后一次向节点发送ping的时间,最后一次从节点收到pong的时间,节点响应?

findnode?消息的失败次数。如果最后一次从一个节点收到?

pong?消息的时间超过了一天,此节点将会被移出db。

第二种数据结构是称作?table?的短期数据库。当客户端重启时?table?是空的。table?包含256个桶,每个桶存储至多16条记录。每条记录存储其他以太坊节点的信息——节点的ID,IP地址,TCP端口和UDP端口。如果记录中的某个节点对于?findnode?消息连续响应失败,多于4次时将被移出table。

当某个客户端第一次启动时,它的db是空的,只知道6个硬编码的引导节点。随后,当客户端开始发现对等节点,客户端依据上面描述的机制,将节点加入db和table。

如果你想查阅更多关于以太坊P2P网络的内容,可以参见下面一些由以太坊社区成员贡献的文章:

“RLPxNodeDiscoveryProtocol”byFelixLange,Gustav-Simmonsson,andRomanMandeleil

“PeertoPeer”byFelixLange

“KademliaPeerSelection”byJamesRay

参考:

VasiliosDarlagiannis,(2010).P2PSystemsandOverlayNetworks,Retrieved

from:?https://www.iti.gr/iti/files/document/seminars/p2p_eketa_090610_v2.pdf

S.UmamaheswariandDr.V.Leela,(2011,Mar.01).P2POverlayMaintenanceAlgorithm,Retrievedfrom:?http://journals.sagepub.com/doi/pdf/10.1260/1748-3018.6.3.555

?

标签:区块链以太坊NODE比特币区块链专业学什么比特币以太坊再现断崖式暴跌原因MasterNodesME比特币行情最新价格美元miu

聚币热门资讯
COI:印度发布国家区块链战略草案,建议印度央行发行数字卢比

据Cointelegraph1月28日报道,印度一份关于区块链和分布式账本技术的国家战略草案提出了建立央行数字货币(CBDC)、数字卢比和国家区块链的提议.

1900/1/1 0:00:00
稳定币:2019年稳定币研究报告:为什么当前使用场景受到限制,如何适应主流支付环境?

Overview概述我们通常不会将金融资产的稳定性与加密货币联系在一起,毕竟我们在短短几年内看到了很多诸如「百倍币」、「归零币」等盛况.

1900/1/1 0:00:00
COI:疫情信任危机爆发之后:区块链的“抗疫”才刚开始

来源:华夏时报,原题《疫情中信任问题非常突出大概30家企业希望捐赠上链区块链“抗疫”才开始》记者冉学东见习记者安凌飞最近一段时间,全国展开了一场与新型冠状病疫情的防控阻击战.

1900/1/1 0:00:00
OIN:《比特币秘史》(七):比特币警报系统是什么?

来源:哈希派作者:LucyCheng2010年8月22日中本聪在Bitcointalk论坛发帖宣布,他目前正在构建可向比特币网络传播信息的警报系统,并表示只有使用他设定的警报私钥才能启动.

1900/1/1 0:00:00
SOLO:ChainNode测评:WOOKONG Bio&Solo硬件钱包 全体验

哈喽大家好,欢迎收看本期的ChainNode测评。我是巴比特陈小胖。在这个特殊的日子里,小胖先祝大家鼠年大吉、财运滚滚、身体健康、万事如意。体验新鲜好物,吐槽反人类设计.

1900/1/1 0:00:00
COI:最赚钱的加密货币领域是借贷

来源:LongHash在加密货币世界,人们很容易专注于两类最常见的代币:智能合约类代币和货币类代币。但是,若查看过去90日及过去1年加密货币的投资回报率中位数,你会发现脱颖而出的赢家是借贷领域.

1900/1/1 0:00:00