aboutsummaryrefslogtreecommitdiffstats
path: root/integration_test
diff options
context:
space:
mode:
authorJimmy Hu <jimmy.hu@dexon.org>2018-10-25 16:59:30 +0800
committerGitHub <noreply@github.com>2018-10-25 16:59:30 +0800
commit04eeac10e6c690e62ae57ef0e2bdf4618b8782d1 (patch)
treee0b95167d1f42a9304fb9e924378464edbb517e9 /integration_test
parent233f1e8de99bf2a0023f05d1c67e48cc770621df (diff)
downloaddexon-consensus-04eeac10e6c690e62ae57ef0e2bdf4618b8782d1.tar
dexon-consensus-04eeac10e6c690e62ae57ef0e2bdf4618b8782d1.tar.gz
dexon-consensus-04eeac10e6c690e62ae57ef0e2bdf4618b8782d1.tar.bz2
dexon-consensus-04eeac10e6c690e62ae57ef0e2bdf4618b8782d1.tar.lz
dexon-consensus-04eeac10e6c690e62ae57ef0e2bdf4618b8782d1.tar.xz
dexon-consensus-04eeac10e6c690e62ae57ef0e2bdf4618b8782d1.tar.zst
dexon-consensus-04eeac10e6c690e62ae57ef0e2bdf4618b8782d1.zip
core: lattice sync (#257)
Diffstat (limited to 'integration_test')
-rw-r--r--integration_test/node.go36
1 files changed, 15 insertions, 21 deletions
diff --git a/integration_test/node.go b/integration_test/node.go
index a26c005..0fb661b 100644
--- a/integration_test/node.go
+++ b/integration_test/node.go
@@ -73,6 +73,7 @@ type Node struct {
broadcastTargets map[types.NodeID]struct{}
networkLatency test.LatencyModel
proposingLatency test.LatencyModel
+ prevFinalHeight uint64
}
// NewNode constructs an instance of Node.
@@ -185,35 +186,28 @@ func (n *Node) processBlock(b *types.Block) (err error) {
// core/lattice_test.go, except the compaction-chain part.
var (
delivered []*types.Block
- verified []*types.Block
- pendings = []*types.Block{b}
)
if err = n.lattice.SanityCheck(b); err != nil {
- if err == core.ErrAckingBlockNotExists {
+ if _, ok := err.(*core.ErrAckingBlockNotExists); ok {
err = nil
+ } else {
+ return
}
+ }
+ if delivered, err = n.lattice.ProcessBlock(b); err != nil {
return
}
- for {
- if len(pendings) == 0 {
- break
- }
- b, pendings = pendings[0], pendings[1:]
- if verified, delivered, err = n.lattice.ProcessBlock(b); err != nil {
- return
- }
- // Deliver blocks.
- for _, b = range delivered {
- if err = n.db.Put(*b); err != nil {
- return
- }
- n.app.BlockDelivered(b.Hash, b.Finalization)
- }
- if err = n.lattice.PurgeBlocks(delivered); err != nil {
+ // Deliver blocks.
+ for _, b = range delivered {
+ if err = n.db.Put(*b); err != nil {
return
}
- // Update pending blocks for verified block (pass sanity check).
- pendings = append(pendings, verified...)
+ b.Finalization.Height = n.prevFinalHeight + 1
+ n.app.BlockDelivered(b.Hash, b.Finalization)
+ n.prevFinalHeight++
+ }
+ if err = n.lattice.PurgeBlocks(delivered); err != nil {
+ return
}
return
}