rusk icon indicating copy to clipboard operation
rusk copied to clipboard

Add Hyperfast Sync-up

Open HDauven opened this issue 1 year ago • 3 comments

Summary

As part of our Economic Model, we aim to implement Hyperfast Sync-ups. This will enable nodes and wallets to synchronize with the blockchain in a fraction of the time it normally would. Clients would no longer need to sync-up every block from the genesis block up to the current block.

The advancements in state management through Crumbles have made it possible to do Proof of Memory Page Inclusion, now the Node needs to expose logic to provide clients with the memory pages, handle verification and sync up from the checkpoint it started the hyperfast sync-up.

Possible solution design or implementation

The core functionality, memory snapshots and proof of memory page inclusion, which facilitates the creation of checkpoints, is implemented within Piecrust. The node needs to tie into this functionality, and be able to handle both hyperfast sync-ups for itself, but also to efficiently transfer memory pages to other clients. Additionally, clients should be able to verify memory pages as part of the block hash for a given checkpoint.

Additional context

It is important to note that in-between the time of hyperfast syncing, and verification being complete, the chain might've advanced. From this checkpoint on, the client will have to sync the diff between the snapshot and the current tip of the chain.

HDauven avatar Sep 25 '23 00:09 HDauven

See also #1094 and #970

herr-seppia avatar Feb 26 '24 09:02 herr-seppia

This is something for archival nodes to offer. Not strictly needed for Mainnet nor part of the protocol

autholykos avatar Jun 10 '24 07:06 autholykos

This is something for archival nodes to offer. Not strictly needed for Mainnet nor part of the protocol

See also https://github.com/dusk-network/rusk/pull/1513#issuecomment-2072269222

herr-seppia avatar Jun 10 '24 07:06 herr-seppia