spacemeshos / pm

Project management. Meta-tasks related to research, dev, and specs for the Spacemesh protocol and infrastructure.
http://spacemesh.io/
Creative Commons Zero v1.0 Universal
2 stars 0 forks source link

Delta based quicksync - client side #335

Open pigmej opened 1 month ago

pigmej commented 1 month ago

After a few experiments, we can introduce delta-based quicksync.

From the client side, the process of quicksync would look like:

Process of batch downloading:

The server side publishes partials in predefined sizes OR times so do not hardcode the start-end span. All values in metadata.csv are sorted by start_layer.

  1. Restoring same partial twice should be noop and is considered safe. BE WARNED that there are NO deletes during the restore process (that's why absolutely make sure that you compare the layer_hash).
  2. It is safe to stop / restart / retry at any stage after restoring from any number of partials

Objects that are not tied to time or layer are remembered on the server side and added to the first batch when they appeared in the DB.

The process should be integrated into quicksync-rs and the initial integration was provided in https://github.com/spacemeshos/quicksync-rs/pull/49