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 }