aboutsummaryrefslogtreecommitdiffstats
path: root/dex/app.go
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/app.go
parentbfa5a27d0034ab25785d80ad20a9e0559ee78dcd (diff)
downloaddexon-84f8776bf74bbf525ab5e716d16b4e678c56a7a1.tar
dexon-84f8776bf74bbf525ab5e716d16b4e678c56a7a1.tar.gz
dexon-84f8776bf74bbf525ab5e716d16b4e678c56a7a1.tar.bz2
dexon-84f8776bf74bbf525ab5e716d16b4e678c56a7a1.tar.lz
dexon-84f8776bf74bbf525ab5e716d16b4e678c56a7a1.tar.xz
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/app.go')
-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
}
}