Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

以太源码照抄 eth/peer

刀与菊滦
55 0 0
peer文件- Z! ^. o3 d% V6 m% ^
peer 结构体记录了p2p网络上节点的相关信息
# y0 U* ]4 s4 m相关信息指
3 ?* y9 j6 ~/ {/ \version 协议版本+ `- e. h) n9 |
head 最新块的hash1 e. j& F% |6 q. C# H9 X; s9 _
td 挖矿困难度
# o" ]- j5 w0 F/ n( oknownTxs 一个存txs的set结构,我们向这个peer广播tx后将其加入这个set$ Q$ S% f+ d5 n0 i
knownBlocks 存block的 和上面类似queuedTxsqueuedPropsqueuedAnns // 这3个用于异步发送的chan通道9 G/ s1 ~; d& s" `
peer 有两个主要方法1. broadcast 用于监听 peer结构体中的queued??? ,有新数据后广播出去% z) u( ^1 O7 A* g7 G
2. HandShake 本地主机传自己的genesis hash 和协议版本与peer进行拉手,拉手成功后 根据拉手结果更新peer 的td 和head字段
: W1 L" c4 s" U8 b1 Q- F0 l  Z9 u9 q  g# b0 Q) C  U
peersetpeerset主要包含了一个peers的数组,并加了个并发锁
! K! S4 Y" m% S$ A$ A; ]方法- Register注册一个peer 到peerset的数组 同时调用peer的broadcast方法监听发送交易和block的请求
: N: S: v8 ]" X& Q" F$ s0 G' X- UnRegister 这个就没什么好说的了: t4 c( p0 D9 [3 V
- PeersWithoutBlock(hash common.Hash) 判断peer的knownBlocks包不包含hash,不包含返回这个peer- PeersWithoutTx 以上- BestPeer 返回难度最大的peer- Close
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

刀与菊滦 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1