Skip to content

Conversation

@AshwinSekar
Copy link
Contributor

@AshwinSekar AshwinSekar commented Oct 2, 2025

will split into PRs, just running full CI

Left todo:

  • Put genesis certificate in the block header/component of any direct child of genesis
  • When replaying this genesis certificate, store in off curve acct + increment tick height
  • Update verify_ticks to read use genesis_certificate from block / snapshot rather than FF
  • Update validator startup process blockstore to read genesis certificate from snapshot rather than FF

Testing

  • Test restarting in migration window and post genesis
  • Test node that's partitioned and misses the migration

Broader question, should we update hard_forks and bump shred version? Conceptually this is a realtime hard fork.

@AshwinSekar AshwinSekar force-pushed the migration branch 5 times, most recently from 653bf75 to 4907b89 Compare October 2, 2025 20:52
@AshwinSekar AshwinSekar force-pushed the migration branch 24 times, most recently from 67b9b4b to eddb626 Compare October 10, 2025 03:46
AshwinSekar added a commit that referenced this pull request Oct 22, 2025
Split from #502 

#### Problem
During the migrationary period it is not safe to set root. We might end
up rooting past the genesis block and clear it.

#### Summary of Changes
Only set root for slots < migration slot. We don't have to reenable this
after genesis, because at that point votor will take over setting roots
and this pathway in replay stage won't even be called.
AshwinSekar added a commit that referenced this pull request Oct 23, 2025
Split from #502 

#### Problem
When we are in the migrationary period we don't want to include user txs
in blocks.

#### Summary of Changes
Change `maybe_start_leader` to make leader banks as VoM. This value is
used by banking stage to only include vote txs in packing. We do not
need to undo this after genesis as replay stage is no longer responsible
for starting leader - block creation loop will create leader banks as
normal.

NOTE: this is best effort, e.g. a malicious guy could comment this out.
Validation will be handled in #566
AshwinSekar added a commit that referenced this pull request Oct 23, 2025
Split from #502 

#### Problem
It's finally time 


#### Summary of Changes
Note this DOES NOT break repair, epoch-slots is only one component of
repair peer selection:

https://github.com/anza-xyz/alpenglow/blob/426b9d075290838e94b6eaaeb24aeac1aeb3e428/core/src/cluster_slots_service/cluster_slots.rs#L489

necromancy of anza-xyz/agave#3246 will clean up
peer selection
AshwinSekar added a commit that referenced this pull request Oct 24, 2025
Split from #502 

#### Problem
Although migrationary period blocks will not contain user transactions,
we would like to not report confirmation during this time as it will be
confusing to users - and we intend to reuse the same slot #s post
migration

#### Summary of Changes
For any slot > migration slot, do not report OC notifications. We don't
need to reenable this post genesis as Votor doesn't have a notion of OC
and instead we set this confirmation level via finalized slots.

No more TowerBFT votes so this thread in CIVL will just idle until it's
deleted in 4.1.
AshwinSekar added a commit that referenced this pull request Oct 24, 2025
Split from #502 

#### Problem
Although we do not engage in TowerBFT duplicate block consensus post AG
genesis, we still respond to TowerBFT duplicate block consensus repair
requests.

#### Summary of Changes
Do not respond to any TowerBFT duplicate block repair requests on slots
post AG genesis.
Do not take action on popular pruned forks post AG genesis.
Just kill the ancestor hashes thread since we're not going to be sending
any requests when alpenglow is active.
Store duplicate shred proofs in blockstore for slashing, but do not
gossip or send them to the duplicate block state machine

4.1 we can delete all tower bft duplicate block consensus
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant