Open vlad9486 opened 1 year ago
Setup rust-libp2p and redux. Implemented libp2p service (with gossipsub and rpc) and send get_best_tip
from the redux state machine.
Next steps:
answer_sync_ledger_query
to fetch the ledger.Rpc messages are parsed in state machine. Synchronize epoch ledger works in state machine.
Next steps:
get_transition_chain
and get_transition_chain_proof
.Use mina-tree
Sebastian's crate as a representation and storage for the ledger. Obtain correct epoch ledger hash. Receive some blocks from the peer using get_transition_chain
.
Next steps:
Implemented a state machine to download and apply blocks. Customized mina-tree
crate for this.
Still struggling to get the correct snarked ledger hash after applying the block. Need to download the correct block for the ledger.
Create correct staged ledger and scan state using get_staged_ledger_aux_and_pending_coinbases_at_hash
RPC. Implement cache and persistence for snarked ledger and blocks.
Have correct staged ledger hash. Have applied few blocks without errors and found a block 17414
hash is 3NKd84VTAYDsPpnkqziEzSrQgJFXrnuTTZxoiy3iYvkiNnEAxd7i
which cause staged ledger hash mismatch.
Most problems are fixed. A few things left:
nil
best tip. Must to wait some time for peer to be able to respond. This will be fixed when we have multiple peers.Done big refactoring of the redux state machine. Now it correctly retries canceled requests when peer resets the RPC stream.
TODO: documentation.
Explore mina node bootstrap consensus. Implement simple application that synchronize epoch ledgers from the network.
Use
get_best_tip
to determine staking epoch ledger and next epoch ledger.Use
answer_sync_ledger_query
to query the ledger tree.