From 8a95f31de10c085064ba813508bb61bbe10bdfc1 Mon Sep 17 00:00:00 2001 From: tanyuan <1067598718@qq.com> Date: Fri, 29 May 2020 20:44:35 +0800 Subject: [PATCH] fix miss cross chain msg when sync header (#1219) * fix miss cross chain msg when sync header * Add some logs * fixed * gofmt --- p2pserver/protocols/block_sync/block_sync.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/p2pserver/protocols/block_sync/block_sync.go b/p2pserver/protocols/block_sync/block_sync.go index 59f9165a54..8b14fb1d6f 100644 --- a/p2pserver/protocols/block_sync/block_sync.go +++ b/p2pserver/protocols/block_sync/block_sync.go @@ -563,8 +563,14 @@ func (this *BlockSyncMgr) OnHeaderReceive(fromID p2pComm.PeerId, headers []*type curHeaderHeight = this.ledger.GetCurrentHeaderHeight() curBlockHeight := this.ledger.GetCurrentBlockHeight() for _, header := range headers { + prevHeader, err := this.ledger.GetHeaderByHeight(header.Height - 1) + if err != nil { + log.Debugf("[block-sync] OnHeaderReceive GetHeaderByHeight error:%s", err) + continue + } + log.Debugf("[block-sync] OnHeaderReceive GetHeaderByHeight height:%d, prevHeader transaction root:%+v", header.Height-1, prevHeader.TransactionsRoot) //handle empty block - if header.TransactionsRoot == common.UINT256_EMPTY { + if header.TransactionsRoot == common.UINT256_EMPTY && prevHeader.TransactionsRoot == common.UINT256_EMPTY { log.Trace("[block-sync] OnHeaderReceive empty block Height:%d", header.Height) height := header.Height blockHash := header.Hash()