Creator
Created
Jan 9, 2024 4:04 PM
Name | Tags | Extremely rough guesstimate (days) |
|---|---|---|
Finality Certificate Exchange Protocol | F3networkingOpen Problem | 10 |
Finality Certificate Format | F3Open Problem | 10 |
Power table/State format | F3Open Problem | 10days |
Sync and checkpoint API | Lotusunblocked | 3 |
F3 module | F3unblocked | 8 |
PubSub Integration | LotusF3networking | 5day |
EC notifying F3 about new tipsets | Lotus | 3days |
Create Lotus Module for f3 | Lotusunblocked | 2 |
Passive F3/Granite listener | F3 | 4 |
Message/VRF Signing wiring | LotusF3 | 1day |
Granite outputs a signal when new finalization happens (integrate granite loop with F3 module) | GraniteF3 | 1 |
Certificate Store | F3 | 5days |
Test framework in lotus | Lotus | 10 |
Certificate Export with snapshots | 3days |
High-level overview of components:
- CertStore - chainstore but for certificates, new certs pass through it, maintains a persistent state of last verified state, disseminates certificate information to other components, triggers sync/exchange if new cert cannot be directly verified
- Finality Certificate Exchange Protocol - network protocol facilitating initial sync of certs and resyncs, much simpler than chain sync due to linear nature of finality certs
- F3/PubSub - facilitates communication between remote granite participants as well as the formation of new certificates based on received traffic (passive mode)
Open problems
- State Format
- Finality Certificate Exchange Protocol
- Finality Certificate Format
Open questions
Misc Notes
High level needs:
- Tipsets from EC HEAD to Granite HEAD
- ChainNotify
- Notification when the chain gets finalized
- Lotus might have to change forks given this
- listen only participants
- Broadcast
- libp2p pubsub
- Sign messages
- Power table (which may be beyond 900 epochs)