aboutsummaryrefslogtreecommitdiffstats
path: root/core/nonblocking.go
diff options
context:
space:
mode:
authorMission Liao <mission.liao@dexon.org>2018-10-11 19:33:25 +0800
committerGitHub <noreply@github.com>2018-10-11 19:33:25 +0800
commit490fa1e9ce2b661e4c8b612bd53f20123346353b (patch)
tree2ef4a4fabb1e21d46ef3e47538dadfeecdf2cf4d /core/nonblocking.go
parentf3e9eb613c7e8dec6b8c6b1b0a20ddbec4e91a9c (diff)
downloaddexon-consensus-490fa1e9ce2b661e4c8b612bd53f20123346353b.tar.gz
dexon-consensus-490fa1e9ce2b661e4c8b612bd53f20123346353b.tar.zst
dexon-consensus-490fa1e9ce2b661e4c8b612bd53f20123346353b.zip
core: change interface (#193)
* Extract types.FinalizationResult * Change interface: - Application.BlockConfirmed returns whole block. - Application.BlockDelivered returns partial result.
Diffstat (limited to 'core/nonblocking.go')
-rw-r--r--core/nonblocking.go21
1 files changed, 13 insertions, 8 deletions
diff --git a/core/nonblocking.go b/core/nonblocking.go
index 83c2351..9bedb4b 100644
--- a/core/nonblocking.go
+++ b/core/nonblocking.go
@@ -26,7 +26,7 @@ import (
)
type blockConfirmedEvent struct {
- blockHash common.Hash
+ block *types.Block
}
type stronglyAckedEvent struct {
@@ -39,7 +39,8 @@ type totalOrderingDeliveredEvent struct {
}
type blockDeliveredEvent struct {
- block *types.Block
+ blockHash common.Hash
+ result *types.FinalizationResult
}
// nonBlocking implements these interfaces and is a decorator for
@@ -94,11 +95,11 @@ func (nb *nonBlocking) run() {
case stronglyAckedEvent:
nb.debug.StronglyAcked(e.blockHash)
case blockConfirmedEvent:
- nb.app.BlockConfirmed(e.blockHash)
+ nb.app.BlockConfirmed(*e.block)
case totalOrderingDeliveredEvent:
nb.debug.TotalOrderingDelivered(e.blockHashes, e.early)
case blockDeliveredEvent:
- nb.app.BlockDelivered(*e.block)
+ nb.app.BlockDelivered(e.blockHash, *e.result)
default:
fmt.Printf("Unknown event %v.", e)
}
@@ -133,9 +134,9 @@ func (nb *nonBlocking) VerifyBlock(block *types.Block) bool {
}
// BlockConfirmed is called when a block is confirmed and added to lattice.
-func (nb *nonBlocking) BlockConfirmed(blockHash common.Hash) {
+func (nb *nonBlocking) BlockConfirmed(block types.Block) {
if nb.debug != nil {
- nb.addEvent(blockConfirmedEvent{blockHash})
+ nb.addEvent(blockConfirmedEvent{&block})
}
}
@@ -156,6 +157,10 @@ func (nb *nonBlocking) TotalOrderingDelivered(
}
// BlockDelivered is called when a block is add to the compaction chain.
-func (nb *nonBlocking) BlockDelivered(block types.Block) {
- nb.addEvent(blockDeliveredEvent{&block})
+func (nb *nonBlocking) BlockDelivered(
+ blockHash common.Hash, result types.FinalizationResult) {
+ nb.addEvent(blockDeliveredEvent{
+ blockHash: blockHash,
+ result: &result,
+ })
}