fix: simplify utxo_state validation publication
Signed-off-by: William Hankins <[email protected]>
Signed-off-by: William Hankins <[email protected]>
Signed-off-by: William Hankins <[email protected]>
Signed-off-by: Chris Gianelloni <[email protected]>
After Mithril bootstrap, two bugs prevent block production: 1. EpochNonce() returns nil when the in-memory nonce is empty for the current epoch, even though the DB has the correct value. Fall through to DB lookup instead of returning nil early. 2. CaptureGenesisSnapshot() queries slot 0 for pool registrations, but after Mithril import epochs start at a much later slot. Fall back to the latest epoch's start slot when slot 0 yields no pools. Signed-off-by: wcatz <[email protected]> Signed-off-by: Chris Gianelloni <[email protected]>
Prefer the actually-delivered chainsync tip over the advertised remote tip for chain selection decisions. New peers are checked against the best known peer tip to prevent spoofed block numbers. Simplify TouchPeerActivity to use defer-based locking and direct best-peer assignment. Revert stale tip threshold to 60s and remove the PeerActivityEvent subscription from the constructor. When two peers have delivered the same observed frontier, keep following the incumbent to avoid churn near tip. Co-authored-by: Chris Gianelloni <[email protected]> Signed-off-by: wcatz <[email protected]> Signed-off-by: Chris Gianelloni <[email protected]>
Wrap the prometheus registry with a constant "network" label so every metric carries the network name automatically. Move event bus creation after registry wrapping so event bus metrics also receive the label. Add dingo_build_info gauge (version, commit, goversion labels) and three node-level gauges for dashboard sync tracking: - dingo_tip_gap_slots: wall-clock slot minus chain tip - dingo_shelley_start_time: Shelley genesis start as unix timestamp - dingo_epoch_length_slots: slots per epoch Signed-off-by: wcatz <[email protected]> Signed-off-by: Chris Gianelloni <[email protected]>
Prefer the actually-delivered chainsync tip over the advertised remote tip for chain selection decisions. New peers are checked against the best known peer tip to prevent spoofed block numbers. Simplify TouchPeerActivity to use defer-based locking and direct best-peer assignment. Revert stale tip threshold to 60s and remove the PeerActivityEvent subscription from the constructor. When two peers have delivered the same observed frontier, keep following the incumbent to avoid churn near tip. Co-authored-by: Chris Gianelloni <[email protected]> Signed-off-by: wcatz <[email protected]> Signed-off-by: Chris Gianelloni <[email protected]>
The rollback loop detector (2 rollbacks to same slot within 5 min) blocks all further rollbacks at that slot. This is correct for pathological post-Mithril cascade loops but wrong for block production: when a peer's fork wins over our forged block, rolling back through our slot is normal Ouroboros fork resolution (slot battle). Check ForgedBlockChecker before suppressing the rollback. If we forged a block at the contested slot, allow the rollback so the node can follow the canonical chain. Signed-off-by: wcatz <[email protected]> Signed-off-by: Chris Gianelloni <[email protected]>
After Mithril bootstrap, two bugs prevent block production: 1. EpochNonce() returns nil when the in-memory nonce is empty for the current epoch, even though the DB has the correct value. Fall through to DB lookup instead of returning nil early. 2. CaptureGenesisSnapshot() queries slot 0 for pool registrations, but after Mithril import epochs start at a much later slot. Fall back to the latest epoch's start slot when slot 0 yields no pools. Signed-off-by: wcatz <[email protected]> Signed-off-by: Chris Gianelloni <[email protected]>
fix: missing pagination params in proposals/*/withdrawals
Signed-off-by: William Hankins <[email protected]>