• 简体版 | 繁體版
  • 联系我们
  • 加入我们
  • 关于我们
  •  
  • 首页
  • 快讯
  • 价值号
  • 视频
  • 专题
  • 科普区块链
  • 入驻价值号
  • 碳链APP
    微信公众号

    扫码下载App

  • 登录
  • 微信公众号

    微信公众号

导航
  • 首页
  • 快讯
  • 区块链+
  • 价值号
  • 视频
  • 专题
  • DeFi优选
碳链价值APP
专注服务于金融科技和区块链
立即打开

一文了解以太坊的「 P2P 网络」

以太坊爱好者以太坊爱好者  •  2020-01-23
此文旨在帮助你理解 P2P 网络,并阐述一些以太坊的实现细节。

作者: Larry Hu;翻译 & 校对: haiki 、阿剑

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

什么是 P2P网络?

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

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

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

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

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

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

Kademlia

以太坊网络中,每个客户端节点都配备有一个 enodeID,之后将此 ID 用 SHA3 算法散列为一个 256 位的值。Kademlia 使用 XOR 操作定义距离,因此两个 256 位的数字之间的距离是他们的按位异或值(bitwise exclusive OR)。每个对等节点都拥有一个包含 256 个不同的桶(buckets)的数据结构,每个桶 i 中存储与本节点距离在 2i-1 到 2i 之间的 16 个节点。为了发现一个新的对等节点,以太坊节点选择自己作为目标 x,从桶中寻找到 16 个与目标 x 最近的节点,之后请求这 16 个节点,让它们从自己的桶中各找出 16 个与目标 x “更近” 的节点并返回,这样以来,会得到至多 16x16 个新发现的节点。之后请求这 16x16 个新发现的节点中离目标 x 最近的 16 个节点,让它们返回与 x 更近的 16 个节点。这个过程持续迭代,直到没有新节点被发现。

-异或操作示意图--异或操作示意图-

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

对等节点间通信

Geth 使用 UDP 连接交换 P2P 网络的信息。有 4 种类型的 UDP 消息。一条 *ping*消息请求一条 *pong*消息作为返回。此对消息用来判断相邻节点是否可响应。一条 *findnode*消息请求一条 *neighbors*消息(其中包含 16 个已经被响应节点知晓的节点列表)作为返回。当建立好对等节点的连接之后,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 网络的内容,可以参见下面一些由以太坊社区成员贡献的文章:

  • “RLPx Node Discovery Protocol” by Felix Lange, Gustav-Simmonsson, and Roman Mandeleil

  • “Peer to Peer” by Felix Lange

  • “Kademlia Peer Selection” by James Ray

参考:

Vasilios Darlagiannis, (2010). P2P Systems and Overlay Networks, [PDF file] Retrieved

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

S. Umamaheswari and Dr. V. Leela, (2011, Mar.01). P2P Overlay Maintenance Algorithm, [PDF file] Retrieved from:http://journals.sagepub.com/doi/pdf/10.1260/1748-3018.6.3.555

(完)

展开全文
打开碳链价值APP  查看更多精彩资讯
声明:本文内容为作者独立观点,不代表碳链价值立场,且不构成任何投资理财建议。
1 0
以太坊P2P 网络Geth Kademlia TCP

扫一扫,分享到微信

相关推荐

ChatGPT怎么看「以太坊上海升级」 价值号

ChatGPT怎么看「以太坊上海升级」

区块链骑士 2023-03-27 价值号
区块链以太坊AIChatGPT
AI有能力改善区块链生态系统。
数据解析:以太坊能否平稳迎接4月12日的“上海升级”? 价值号

数据解析:以太坊能否平稳迎接4月12日的“上海升级”?

Ebunker 2023-03-20 价值号
以太坊上海升级
“上海升级”实际是以太坊从PoW转向PoS破茧成蝶的最后一步。
ETHDenver 2023 盛会中的重点趋势一览 价值号

ETHDenver 2023 盛会中的重点趋势一览

TinTinLand 2023-03-17 价值号
以太坊
ETHDenver 创新节上的加密趋势。

碳链快讯更多 ›

2023-03-28

慢雾:批准未知来源的代币时请仔细检查交易的 gas limit

2023-03-28

蚂蚁集团:于隽曾是外派至A&T Capital的工作人员,目前已办结离职手续

2023-03-28

香港金管局和证监会将于 4 月 28 日联合举办加密企业和银行家之间的圆桌会议

2023-03-28

英国财政部取消由政府支持的 NFT 计划

2023-03-28

欧盟将于 3 月 28 日投票表决是否禁止匿名自托管钱包转账大额加密资产

2023-03-28

日经亚洲:美 SEC 对孙宇晨的指控或将影响 Huobi 香港牌照申请及扩张计划

2023-03-28

CFTC提起诉讼后价值近15亿美元的加密资产从币安相关钱包流出

2023-03-27

CFTC 诉币安及其 CEO 违法以寻求民事货币罚款和其他衡平救济

2023-03-27

CFTC指控Binance概述:涉及向美国投资者提供的交易服务及其合规性问题

2023-03-27

Polygon zkEVM 主网 Beta 版本即将上线,Vitalik 将于 22:30 执行首笔象征性交易

2023-03-27

Microstrategy 购入价值约 1.5 亿美元的比特币,均价为 23238 美元

2023-03-27

马云谈ChatGPT:要用人工智能去解决问题

2023-03-27

Gucci 与 Yuga Labs 达成合作,并计划于本周参与 Otherside

2023-03-27

知情人士:交通银行、中国银行、浦发银行香港分行或向加密公司提供银行服务

2023-03-27

上周有将近1.9亿美元投入加密行业初创公司

2023-03-26

马斯克对推特最新估值仅为 200 亿美元,不及收购价的一半

2023-03-25

美财长耶伦主持召开紧急金融稳定会议

2023-03-25

94岁的英特尔联合创始人戈登·摩尔去世,为「摩尔定律」提出者

2023-03-24

欧盟反洗钱法案对加密货币支付的限制恢复到最初版本

2023-03-24

Tether CTO:Tether Q1 利润约 7 亿美元,超额储备将达 16.6 亿美元

2023-03-24

CNBC 披露币安员工及志愿者引导用户规避 KYC 限制,币安回应会对违规人员采取行动

2023-03-24

Do Kwon 在塞尔维亚成立加密公司,检方正调查该公司是否用于洗钱

2023-03-24

OpenAI正为ChatGPT添加插件支持,允许使用第三方服务

2023-03-24

Cathie Wood 旗下方舟基金购买 1780 万美元 Coinbase 股票

2023-03-24

Character.AI完成1.5亿美元融资,a16z领投

2023-03-23

Do Kwon 已在黑山被逮捕

2023-03-23

美众议院:工作量证明挖矿是美国实现能源独立和持续国家安全能力的重要组成部分

2023-03-23

美国银行:区块链软件的下一步发展才刚刚开始

2023-03-23

中办、国办:加快推进区块链等在医疗卫生领域中的应用

2023-03-23

马斯克:需支付3 DOGE来参观飞船发射

2023-03-23

做市商Wintermute Trading已收到4000万枚ARB,并少量转入到交易所测试

2023-03-23

Coinbase首席法务官:美国SEC仍没有关于加密货币的明确规则手册

2023-03-23

美CFTC技术咨询委员会已在今日会议中听取加密公司对DeFi领域关键问题的介绍

2023-03-23

胜利证券获香港证监会同意可管理投资虚拟资产的投资组合

2023-03-23

Coinbase、Justin Sun今日均遭美SEC指控,希望寻求更透明的监管准则

2023-03-23

香港特区政府委任Nano Labs创始人孔剑平为香港数码港管理有限公司董事

2023-03-23

高盛正用ChatGPT风格的AI工具来协助编写代码

2023-03-23

币安恢复收取比特币交易手续费

2023-03-23

Coinbase 已收到美 SEC 的韦尔斯通知,称其可能违反证券法

2023-03-23

美 SEC 指控孙宇晨及其三家全资公司,称其涉嫌非法销售证券和操控市场

2023-03-23

美联储宣布加息25个基点

2023-03-23

Uniswap 推出 Mini Portfolio 功能,用户可以查看和管理自己资产

2023-03-22

Telegram 支持用户在聊天中发送 USDT

2023-03-22

英媒:硅谷银行首席风险官空缺长达8个月

2023-03-22

BitRock Capital 拟于第三季度完成 1 亿美元新基金募集,将投资 SaaS 及 Web3 领域

2023-03-22

俄罗斯加密交易所 Bitzlato 现允许用户最多提取 50% 比特币

2023-03-22

Race Capital 完成 1.81 亿美元二期基金募资,已投资 10 个项目

2023-03-22

OneCoin 前合规负责人被引渡美国受审,恐面临 40 年监禁

2023-03-22

韩国游戏巨头 Nexon 宣布在 Polygon 上推出 NFT 游戏 MapleStory Universe

2023-03-22

富士通提交涵盖数种加密货币服务的商标申请

推荐文章

  • 传统与数字金融行业如何共存?

    2023-03-28

  • 不只OpenAI,这些公司手上也握着AIGC下个十年的船票

    2023-03-28

  • 疯狂三月:一场ChatGPT引发的千亿“钞”能力竞赛

    2023-03-27

  • 麻省理工科技评论:生成式 AI 与生产力再思考

    2023-03-27

  • ChatGPT怎么看「以太坊上海升级」

    2023-03-27

价值号更多 ›

达瓴智库
达瓴智库
文章: 155
  • 如何通过MVRV判断加密牛市还是熊市?
  • ETH在上海升级期间表现如何?
  • 熊末牛初:Ordinals是福是祸?
区块链骑士
区块链骑士
文章: 1299
  • 传统与数字金融行业如何共存?
  • ChatGPT怎么看「以太坊上海升级」
  • 数据翻两番,第一季度NFT的交易量达3.11亿美元,强势的背后是否有迹可循?
TinTinLand
TinTinLand
文章: 35
  • 一家银行倒闭后,加密市场发生了什么?
  • 打破科研困境的 DeSci 是什么?
  • 上海升级的机遇,值得关注的 Layer2 与 LSD 赛道
换一批

热门标签

新基建 比特币 以太坊 矿业 DeFi 共识对话 区块链+ 研报 美联储 央行数字货币 无限QE 加密衍生品 AI 云计算 大数据 5G 政策 交易所 稳定币 电子支付 Libra 算力产业 联盟链 公链 区块链 加密货币 Nervos Cosmos EOS STO

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

App内打开

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

Moshou

碳链价值是集资讯、行情、数据于一身的区块链信息服务平台,我们追求及时、全面、专业、精确的资讯与数据,致力于为区块链创新者和数字货币投资者提供优质的服务。

关于我们 加入我们 联系我们 隐私条款
微信公众号

扫一扫关注微信公众号

Copyright © 2018-2020 碳链价值 京ICP备18046423号
下载碳链App

下载碳链App

微信公众号

微信公众号

微信公众号

微信公众号

打赏文章作者

支付宝打赏二维码 支付宝扫一扫打赏
微信打赏二维码 微信扫一扫打赏

# 热门搜索 #

CBDC 比特币 DeFi 以太坊 区块链