diff options
author | Sonic <sonic@dexon.org> | 2019-03-27 14:23:19 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-04-09 21:32:58 +0800 |
commit | 797e5058c6dbfa3c668d6568144431aea03f6256 (patch) | |
tree | a11635e659cd5952ab2256c8fc980b475980fe0a /dex/handler.go | |
parent | 4e0fc985b66e584177572481dfe9e21858a7711c (diff) | |
download | dexon-797e5058c6dbfa3c668d6568144431aea03f6256.tar.gz dexon-797e5058c6dbfa3c668d6568144431aea03f6256.tar.zst dexon-797e5058c6dbfa3c668d6568144431aea03f6256.zip |
dex: fix missing trie node when fast syncing (#301)
* dex: don't panic when we don't have gov state peer requested
* dex: use correct head block
Since we are fast syncing, we probably don't have body, receipt, state
Diffstat (limited to 'dex/handler.go')
-rw-r--r-- | dex/handler.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/dex/handler.go b/dex/handler.go index 84170e54b..ec5704103 100644 --- a/dex/handler.go +++ b/dex/handler.go @@ -361,7 +361,7 @@ func (pm *ProtocolManager) handle(p *peer) error { // Execute the Ethereum handshake var ( genesis = pm.blockchain.Genesis() - head = pm.blockchain.CurrentHeader() + head = pm.blockchain.CurrentBlock().Header() hash = head.Hash() number = head.Number.Uint64() ) @@ -953,7 +953,8 @@ func (pm *ProtocolManager) handleMsg(p *peer) error { } govState, err := pm.blockchain.GetGovStateByHash(hash) if err != nil { - panic(err) + p.Log().Debug("Invalid gov state msg", "hash", hash.String(), "err", err) + return errResp(ErrInvalidGovStateMsg, "hash=%v", hash.String()) } return p.SendGovState(govState) case msg.Code == GovStateMsg: |