Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

以太源码照抄 eth/peer

刀与菊滦
59 0 0
peer文件
; O9 G( }6 n! a6 ~) D5 ^7 upeer 结构体记录了p2p网络上节点的相关信息" t# e5 N, g4 v
相关信息指
! W( K8 e" C' V+ J* b1 s0 Zversion 协议版本
3 ]- L+ T4 N8 d$ d1 U2 Q+ ^& Bhead 最新块的hash5 O0 t& p- T) D
td 挖矿困难度
2 r! }/ |. r$ ?- V8 S5 ~- U3 d8 t# IknownTxs 一个存txs的set结构,我们向这个peer广播tx后将其加入这个set
3 o$ g' z0 K) ^0 K" TknownBlocks 存block的 和上面类似queuedTxsqueuedPropsqueuedAnns // 这3个用于异步发送的chan通道
/ B* m* W1 S2 speer 有两个主要方法1. broadcast 用于监听 peer结构体中的queued??? ,有新数据后广播出去! \9 N( b& U' h- b' B$ T) V
2. HandShake 本地主机传自己的genesis hash 和协议版本与peer进行拉手,拉手成功后 根据拉手结果更新peer 的td 和head字段( Z! Q& T, r( J) \" a" w( ?, n$ o/ M. m

4 e* @' U- a2 w  [( R$ n1 qpeersetpeerset主要包含了一个peers的数组,并加了个并发锁
! i; S7 F8 t, z2 c7 Z" R# t2 F方法- Register注册一个peer 到peerset的数组 同时调用peer的broadcast方法监听发送交易和block的请求' n/ g) d( s* G# u$ c) Q
- UnRegister 这个就没什么好说的了
% X  B' h+ `: @9 Q9 g; X( K7 o+ [- PeersWithoutBlock(hash common.Hash) 判断peer的knownBlocks包不包含hash,不包含返回这个peer- PeersWithoutTx 以上- BestPeer 返回难度最大的peer- Close
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

刀与菊滦 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1