Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

以太源码照抄 eth/peer

刀与菊滦
129 0 0
peer文件9 B; W& T- r; i5 b) T8 ]7 g; y
peer 结构体记录了p2p网络上节点的相关信息
! P; r* g, P0 ~相关信息指
( _  B6 `( g, [: |6 Q# ~* k6 ?version 协议版本
+ \* m0 s6 H6 V* G! W! N- Zhead 最新块的hash( r2 t6 x+ A5 q0 b# N
td 挖矿困难度
9 \/ b1 O& Z6 l+ _" x) w( ]2 OknownTxs 一个存txs的set结构,我们向这个peer广播tx后将其加入这个set! O( e9 A, T2 h9 J9 E: s4 p
knownBlocks 存block的 和上面类似queuedTxsqueuedPropsqueuedAnns // 这3个用于异步发送的chan通道
1 \/ w! [6 g% Q& G' W* Q- q& c& [' Jpeer 有两个主要方法1. broadcast 用于监听 peer结构体中的queued??? ,有新数据后广播出去4 ^+ g4 s7 v8 Z
2. HandShake 本地主机传自己的genesis hash 和协议版本与peer进行拉手,拉手成功后 根据拉手结果更新peer 的td 和head字段
0 L) K" T8 U% U& P8 h! D
) `& l; G5 h8 N+ Q4 hpeersetpeerset主要包含了一个peers的数组,并加了个并发锁
- W' {2 S( m/ h& |方法- Register注册一个peer 到peerset的数组 同时调用peer的broadcast方法监听发送交易和block的请求. ?8 ?5 f; L" i+ h) D9 }( `9 ~- y% p
- UnRegister 这个就没什么好说的了" A0 O" _8 I& c. ^( P+ E; l
- PeersWithoutBlock(hash common.Hash) 判断peer的knownBlocks包不包含hash,不包含返回这个peer- PeersWithoutTx 以上- BestPeer 返回难度最大的peer- Close
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

刀与菊滦 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1