Skip to content

ChainSideEvent

Source (upstream pre-purge) Current
File core/events.go events_pow.go
Symbol ChainSideEvent ChainSideEvent
Ref 368e16f39~1 etc/v1.17.3-full-node

Side-block notification used as the uncle-candidate source; carries the header instead of the full block. Upstream's chainSideFeed (emitted from blockchain.go) is NOT revived. Instead ForkChoice.ReorgNeeded (core/forkchoice_pow.go) feeds a sideBlockFeed whenever a header is not adopted as canonical, exposed via BlockChain.SubscribeChainSideEvent (core/blockchain_pow.go), so core/blockchain.go stays identical to upstream.

3-way merge — purge → getc ← upstream

fork-only
// ChainSideEvent carries the header of a block that lost the fork choice (a
// side block), delivered to the PoW miner as an uncle candidate.
type ChainSideEvent struct{ Header *types.Header }
core-geth validation — +3 -3 | | | |---|---| | File | [`events.go`](https://github.com/etclabscore/core-geth/blob/v1.12.20/core/events.go) | | Symbol | `ChainSideEvent` | | Ref | `v1.12.20` |
--- a/core-geth/core/events.go
+++ b/etc/core/events_pow.go
@@ -1,3 +1,3 @@
-type ChainSideEvent struct {
-   Block *types.Block
-}
+// ChainSideEvent carries the header of a block that lost the fork choice (a
+// side block), delivered to the PoW miner as an uncle candidate.
+type ChainSideEvent struct{ Header *types.Header }

← Total Difficulty (TD)