aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorSonic <sonic@dexon.org>2018-12-05 15:17:38 +0800
committerWei-Ning Huang <w@dexon.org>2019-04-09 13:49:59 +0800
commite9215a6b296c009f150f29b8881282c5c82b4fca (patch)
tree454515e4980c71a80ce10add40d202d1aa712b4a /core
parenta5ab05bc54d3f257e4cf950a047d97de3a18828d (diff)
downloaddexon-e9215a6b296c009f150f29b8881282c5c82b4fca.tar
dexon-e9215a6b296c009f150f29b8881282c5c82b4fca.tar.gz
dexon-e9215a6b296c009f150f29b8881282c5c82b4fca.tar.bz2
dexon-e9215a6b296c009f150f29b8881282c5c82b4fca.tar.lz
dexon-e9215a6b296c009f150f29b8881282c5c82b4fca.tar.xz
dexon-e9215a6b296c009f150f29b8881282c5c82b4fca.tar.zst
dexon-e9215a6b296c009f150f29b8881282c5c82b4fca.zip
core, dex: polish sync (#75)
- Broadcasting blocks at chain head event is not correct when the full node is not running in block proposer mode. Introduce NewFinalizedBlockEvent, this event is post by the full node which runs in block proposer mode when a block is witnessed and resulting in some blocks are considered finalized. - Non block proposer node will still broadcast blocks at the following moment (same as ethereum): 1. a sync with a peer is terminated successfully 2. a block passes the fetcher's header check during inserting blocks 3. a block is successfully inserted by fetcher - Don't trigger a sync when we are not behind other peers more than acceptable distance. Fetcher is able to cover this.
Diffstat (limited to 'core')
-rw-r--r--core/events.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/core/events.go b/core/events.go
index 1231daa37..e174e8aad 100644
--- a/core/events.go
+++ b/core/events.go
@@ -32,6 +32,9 @@ type PendingLogsEvent struct {
// NewMinedBlockEvent is posted when a block has been imported.
type NewMinedBlockEvent struct{ Block *types.Block }
+// NewFinalizedBlockEvent is posted when a block has been imported.
+type NewFinalizedBlockEvent struct{ Block *types.Block }
+
// RemovedLogsEvent is posted when a reorg happens
type RemovedLogsEvent struct{ Logs []*types.Log }