aboutsummaryrefslogtreecommitdiffstats
path: root/dex
diff options
context:
space:
mode:
authorSonic <sonic@dexon.org>2019-03-27 14:23:19 +0800
committerWei-Ning Huang <w@dexon.org>2019-04-09 21:32:58 +0800
commit797e5058c6dbfa3c668d6568144431aea03f6256 (patch)
treea11635e659cd5952ab2256c8fc980b475980fe0a /dex
parent4e0fc985b66e584177572481dfe9e21858a7711c (diff)
downloaddexon-797e5058c6dbfa3c668d6568144431aea03f6256.tar
dexon-797e5058c6dbfa3c668d6568144431aea03f6256.tar.gz
dexon-797e5058c6dbfa3c668d6568144431aea03f6256.tar.bz2
dexon-797e5058c6dbfa3c668d6568144431aea03f6256.tar.lz
dexon-797e5058c6dbfa3c668d6568144431aea03f6256.tar.xz
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')
-rw-r--r--dex/handler.go5
-rw-r--r--dex/protocol.go1
2 files changed, 4 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:
diff --git a/dex/protocol.go b/dex/protocol.go
index e09829cc8..639925265 100644
--- a/dex/protocol.go
+++ b/dex/protocol.go
@@ -110,6 +110,7 @@ const (
ErrNoStatusMsg
ErrExtraStatusMsg
ErrSuspendedPeer
+ ErrInvalidGovStateMsg
)
const (