今日实时汇率
持有
美元 USD 人民币 CNY 欧元 EUR 英镑 GBP 澳元 AUD 加元 CAD 日元 JPY 港币 HKD 印度卢比 INR 澳门元 MOP 韩元 KRW 墨西哥比索 MXN 阿联酋迪拉姆 AED 阿富汗尼 AFN 阿尔巴尼列克 ALL 亚美尼亚德拉姆 AMD 荷兰盾 ANG 安哥拉宽扎 AOA 阿根廷比索 ARS 阿鲁巴弗罗林 AWG 阿塞拜疆马纳特 AZN 波黑可兑换马克 BAM 巴巴多斯元 BBD 孟加拉国塔卡 BDT 保加利亚列弗 BGN 巴林第纳尔 BHD 布隆迪法郎 BIF 百慕达元 BMD 文莱元 BND 玻利维亚诺 BOB 巴西雷亚尔 BRL 巴哈马元 BSD 不丹努尔特鲁姆 BTN 博茨瓦纳普拉 BWP 白俄罗斯卢布 BYN 伯利兹元 BZD 刚果法郎 CDF 瑞士法郎 CHF 智利比索 CLP 哥伦比亚比索 COP 哥斯达黎加科朗 CRC 古巴比索 CUP 佛得角埃斯库多 CVE 捷克克朗 CZK 吉布提法郎 DJF 丹麦克朗 DKK 多米尼加比索 DOP 阿尔及利亚第纳尔 DZD 埃及镑 EGP 厄立特里亚纳克法 ERN 埃塞俄比亚比尔 ETB 斐济元 FJD 福克兰镑 FKP FOK募集币 FOK 格鲁吉亚拉里 GEL 格恩西岛磅 GGP 加纳塞地 GHS 直布罗陀镑 GIP 冈比亚达拉西 GMD 几内亚法郎 GNF 危地马拉格查尔 GTQ 圭亚那元 GYD 洪都拉斯伦皮拉 HNL 克罗地亚库纳 HRK 海地古德 HTG 匈牙利福林 HUF 印度尼西亚卢比 IDR 以色列新谢克尔 ILS 马恩磅 IMP 伊拉克第纳尔 IQD 伊朗里亚尔 IRR 冰岛克郎 ISK 新泽西岛磅 JEP 牙买加元 JMD 约旦第纳尔 JOD 肯尼亚先令 KES 吉尔吉斯斯坦索姆 KGS 柬埔寨瑞尔 KHR 基里巴斯 KID 科摩罗法郎 KMF 科威特第纳尔 KWD 开曼群岛元 KYD 哈萨克斯坦坚戈 KZT 老挝基普 LAK 黎巴嫩镑 LBP 斯里兰卡卢比 LKR 利比里亚元 LRD 莱索托洛蒂 LSL 利比亚第纳尔 LYD 摩洛哥迪拉姆 MAD 摩尔多瓦列伊 MDL 马达加斯加阿里亚里 MGA 马其顿代纳尔 MKD 缅甸元 MMK 蒙古货币 MNT 毛塔币 MRU 毛里求斯卢比 MUR 马尔代夫拉菲亚 MVR 马拉维克瓦查 MWK 林吉特 MYR 莫桑比克新梅蒂卡尔 MZN 纳米比亚元 NAD 尼日利亚奈拉 NGN 尼加拉瓜新科多巴 NIO 挪威克朗 NOK 尼泊尔卢比 NPR 新西兰元 NZD 阿曼里亚尔 OMR 巴拿马巴波亚 PAB 秘鲁新索尔 PEN 巴布亚新几内亚基那 PGK 菲律宾比索 PHP 巴基斯坦卢比 PKR 波兰兹罗提 PLN 巴拉圭瓜拉尼 PYG 卡塔尔里亚尔 QAR 罗马尼亚列伊 RON 塞尔维亚第纳尔 RSD 俄罗斯卢布 RUB 卢旺达法郎 RWF 沙特里亚尔 SAR 所罗门群岛元 SBD 塞舌尔卢比 SCR 苏丹镑 SDG 瑞典克朗 SEK 新加坡元 SGD 圣赫勒拿镑 SHP 英镑SLE SLE 塞拉利昂利昂 SLL 索马里先令 SOS 苏里南元 SRD 南苏丹币 SSP 圣多美多布拉 STN 叙利亚镑 SYP 斯威士兰里兰吉尼 SZL 泰铢 THB 塔吉克斯坦索莫尼 TJS 土库曼斯坦马纳特 TMT 突尼斯第纳尔 TND 汤加潘加 TOP 土耳其里拉 TRY 特立尼达多巴哥元 TTD 图瓦卢元 TVD 新台币 TWD 坦桑尼亚先令 TZS 乌克兰格里夫纳 UAH 乌干达先令 UGX 乌拉圭比索 UYU 乌兹别克斯坦苏姆 UZS 委内瑞拉玻利瓦尔 VES 越南盾 VND 瓦努阿图瓦图 VUV 萨摩亚塔拉 WST 中非法郎 XAF 东加勒比元 XCD 特别提款权 XDR 西非法郎 XOF 太平洋法郎 XPF 也门里亚尔 YER 南非兰特 ZAR 赞比亚克瓦查 ZMW 津巴布韦币 ZWL
交换
兑换
美元 USD 人民币 CNY 欧元 EUR 英镑 GBP 澳元 AUD 加元 CAD 日元 JPY 港币 HKD 印度卢比 INR 澳门元 MOP 韩元 KRW 墨西哥比索 MXN 阿联酋迪拉姆 AED 阿富汗尼 AFN 阿尔巴尼列克 ALL 亚美尼亚德拉姆 AMD 荷兰盾 ANG 安哥拉宽扎 AOA 阿根廷比索 ARS 阿鲁巴弗罗林 AWG 阿塞拜疆马纳特 AZN 波黑可兑换马克 BAM 巴巴多斯元 BBD 孟加拉国塔卡 BDT 保加利亚列弗 BGN 巴林第纳尔 BHD 布隆迪法郎 BIF 百慕达元 BMD 文莱元 BND 玻利维亚诺 BOB 巴西雷亚尔 BRL 巴哈马元 BSD 不丹努尔特鲁姆 BTN 博茨瓦纳普拉 BWP 白俄罗斯卢布 BYN 伯利兹元 BZD 刚果法郎 CDF 瑞士法郎 CHF 智利比索 CLP 哥伦比亚比索 COP 哥斯达黎加科朗 CRC 古巴比索 CUP 佛得角埃斯库多 CVE 捷克克朗 CZK 吉布提法郎 DJF 丹麦克朗 DKK 多米尼加比索 DOP 阿尔及利亚第纳尔 DZD 埃及镑 EGP 厄立特里亚纳克法 ERN 埃塞俄比亚比尔 ETB 斐济元 FJD 福克兰镑 FKP FOK募集币 FOK 格鲁吉亚拉里 GEL 格恩西岛磅 GGP 加纳塞地 GHS 直布罗陀镑 GIP 冈比亚达拉西 GMD 几内亚法郎 GNF 危地马拉格查尔 GTQ 圭亚那元 GYD 洪都拉斯伦皮拉 HNL 克罗地亚库纳 HRK 海地古德 HTG 匈牙利福林 HUF 印度尼西亚卢比 IDR 以色列新谢克尔 ILS 马恩磅 IMP 伊拉克第纳尔 IQD 伊朗里亚尔 IRR 冰岛克郎 ISK 新泽西岛磅 JEP 牙买加元 JMD 约旦第纳尔 JOD 肯尼亚先令 KES 吉尔吉斯斯坦索姆 KGS 柬埔寨瑞尔 KHR 基里巴斯 KID 科摩罗法郎 KMF 科威特第纳尔 KWD 开曼群岛元 KYD 哈萨克斯坦坚戈 KZT 老挝基普 LAK 黎巴嫩镑 LBP 斯里兰卡卢比 LKR 利比里亚元 LRD 莱索托洛蒂 LSL 利比亚第纳尔 LYD 摩洛哥迪拉姆 MAD 摩尔多瓦列伊 MDL 马达加斯加阿里亚里 MGA 马其顿代纳尔 MKD 缅甸元 MMK 蒙古货币 MNT 毛塔币 MRU 毛里求斯卢比 MUR 马尔代夫拉菲亚 MVR 马拉维克瓦查 MWK 林吉特 MYR 莫桑比克新梅蒂卡尔 MZN 纳米比亚元 NAD 尼日利亚奈拉 NGN 尼加拉瓜新科多巴 NIO 挪威克朗 NOK 尼泊尔卢比 NPR 新西兰元 NZD 阿曼里亚尔 OMR 巴拿马巴波亚 PAB 秘鲁新索尔 PEN 巴布亚新几内亚基那 PGK 菲律宾比索 PHP 巴基斯坦卢比 PKR 波兰兹罗提 PLN 巴拉圭瓜拉尼 PYG 卡塔尔里亚尔 QAR 罗马尼亚列伊 RON 塞尔维亚第纳尔 RSD 俄罗斯卢布 RUB 卢旺达法郎 RWF 沙特里亚尔 SAR 所罗门群岛元 SBD 塞舌尔卢比 SCR 苏丹镑 SDG 瑞典克朗 SEK 新加坡元 SGD 圣赫勒拿镑 SHP 英镑SLE SLE 塞拉利昂利昂 SLL 索马里先令 SOS 苏里南元 SRD 南苏丹币 SSP 圣多美多布拉 STN 叙利亚镑 SYP 斯威士兰里兰吉尼 SZL 泰铢 THB 塔吉克斯坦索莫尼 TJS 土库曼斯坦马纳特 TMT 突尼斯第纳尔 TND 汤加潘加 TOP 土耳其里拉 TRY 特立尼达多巴哥元 TTD 图瓦卢元 TVD 新台币 TWD 坦桑尼亚先令 TZS 乌克兰格里夫纳 UAH 乌干达先令 UGX 乌拉圭比索 UYU 乌兹别克斯坦苏姆 UZS 委内瑞拉玻利瓦尔 VES 越南盾 VND 瓦努阿图瓦图 VUV 萨摩亚塔拉 WST 中非法郎 XAF 东加勒比元 XCD 特别提款权 XDR 西非法郎 XOF 太平洋法郎 XPF 也门里亚尔 YER 南非兰特 ZAR 赞比亚克瓦查 ZMW 津巴布韦币 ZWL
1 美元(USD)=
7.3043 人民币(CNY)
反向汇率:1 CNY = 0.1369 USD
更新时间:2025-04-19 08:02:31
立即换算
作者: 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 以太坊网络中,每个客户端节点都配备有一个
enode ID,之后将此 ID 用 SHA3 算法
散列 为一个 256 位的值。Kademlia 使用 XOR 操作定义距离,因此两个 256 位的数字之间的距离是他们的按位异或值(bitwise exclusive OR)。每个对等节点都拥有一个包含 256 个不同的桶(buckets)的数据结构,每个桶 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* 消息(其中包含 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
(完)