Logo

    F3 integration

    Creator
    Created
    Jan 9, 2024 4:04 PM

    Tasks

    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)

    CryptoNet is a Protocol Labs initiative.