码迷,mamicode.com
首页 > 其他好文 > 详细

比特币节点收到交易的处理流程

时间:2018-06-02 19:05:39      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:ima   ann   manage   分享   tms   info   one   xms   处理流程   

btcd中对端发送的网络报文都在该处理函数:
func (p *Peer) inHandler() {

技术分享图片

   OnTx是一个函数接口,在初识化的时候注册的,注册代码如下:

技术分享图片

在改函数func (sp *serverPeer) OnTx(_ *peer.Peer, msg *wire.MsgTx)中,把收到的交易消息放入msgchan消息队列

func (sm *SyncManager) QueueTx(tx *btcutil.Tx, peer *peerpkg.Peer, done chan struct{}) {
	// Don‘t accept more transactions if we‘re shutting down.
	if atomic.LoadInt32(&sm.shutdown) != 0 {
		done <- struct{}{}
		return
	}

	sm.msgChan <- &txMsg{tx: tx, peer: peer, reply: done}
}

  从channel读取报文后,对消息的处理函数如下:

func (sm *SyncManager) handleTxMsg(tmsg *txMsg)

  

  

 

比特币节点收到交易的处理流程

标签:ima   ann   manage   分享   tms   info   one   xms   处理流程   

原文地址:https://www.cnblogs.com/xgcode/p/9126231.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!