aboutsummaryrefslogtreecommitdiffstats
path: root/dex
diff options
context:
space:
mode:
authorSonic <sonic@dexon.org>2019-01-03 17:18:50 +0800
committerWei-Ning Huang <w@dexon.org>2019-04-09 21:32:55 +0800
commit84f8776bf74bbf525ab5e716d16b4e678c56a7a1 (patch)
tree684fb3e3cea0a24f74f696ae401daee343e09f22 /dex
parentbfa5a27d0034ab25785d80ad20a9e0559ee78dcd (diff)
downloaddexon-84f8776bf74bbf525ab5e716d16b4e678c56a7a1.tar.gz
dexon-84f8776bf74bbf525ab5e716d16b4e678c56a7a1.tar.zst
dexon-84f8776bf74bbf525ab5e716d16b4e678c56a7a1.zip
core, indexer, dex: fix DexconApp block deliver after synced (#122)
When starts a bp node to sync with the network, bc.chainLastHeight map may not be initialized yet. Just return error if we can not get chain last height when preparing payload and verify block.
Diffstat (limited to 'dex')
-rw-r--r--dex/app.go18
1 files changed, 9 insertions, 9 deletions
diff --git a/dex/app.go b/dex/app.go
index d04b2afd6..c52a6c79b 100644
--- a/dex/app.go
+++ b/dex/app.go
@@ -177,11 +177,11 @@ func (d *DexconApp) preparePayload(ctx context.Context, position coreTypes.Posit
if position.Height != 0 {
// Check if chain block height is strictly increamental.
- chainLastHeight := d.blockchain.GetChainLastConfirmedHeight(position.ChainID)
- if chainLastHeight != position.Height-1 {
- log.Error("Check confirmed block height fail",
- "chain", position.ChainID, "height", position.Height-1, "cache height", chainLastHeight)
- return nil, fmt.Errorf("check confirmed block height fail")
+ chainLastHeight, ok := d.blockchain.GetChainLastConfirmedHeight(position.ChainID)
+ if !ok || chainLastHeight != position.Height-1 {
+ log.Debug("Previous confirmed block not exists", "current pos", position.String(),
+ "prev height", chainLastHeight, "ok", ok)
+ return nil, fmt.Errorf("previous block not exists")
}
}
@@ -337,10 +337,10 @@ func (d *DexconApp) VerifyBlock(block *coreTypes.Block) coreTypes.BlockVerifySta
if block.Position.Height != 0 {
// Check if target block is the next height to be verified, we can only
// verify the next block in a given chain.
- chainLastHeight := d.blockchain.GetChainLastConfirmedHeight(block.Position.ChainID)
- if chainLastHeight != block.Position.Height-1 {
- log.Error("Check confirmed block height fail", "chain", block.Position.ChainID,
- "height", block.Position.Height-1, "cache height", chainLastHeight)
+ chainLastHeight, ok := d.blockchain.GetChainLastConfirmedHeight(block.Position.ChainID)
+ if !ok || chainLastHeight != block.Position.Height-1 {
+ log.Debug("Previous confirmed block not exists", "current pos", block.Position.String(),
+ "prev height", chainLastHeight, "ok", ok)
return coreTypes.VerifyRetryLater
}
}