Open questions
- Execution domains and their influence on block archiving and object mappings.
- Object mappings archival storage.
Peer types to store L2. Will it be only farmers?
Block importing via DSN
Node announcement changes
Intro
This document presents the DSN v2 overview for the Subspace Consensus v2 and contains the best current design from the multiple possible solutions. DSN v2 is the successor of DSN v1.
This is the initial DSN version for the Consensus v2 and is primarily designed to be a working solution and Proof-of-Concept. Security concerns are left to the next revision.
Concepts
- DSN - distributed storage network
- Client - DSN client, a peer that uses DSN for external purposes via API. In the scope of this document, we could treat Subspace.js library as a synonym.
- Object - a BLOB stored in the DSN, objects will be put and retrieved from DSN by clients. Its size is limited by the transaction size (a few MBs).
- Object ID - object hash combined with object mappings descriptor (not a finalized solution)
- Segment (archived segment) - nodes produce segments as part of the archiving history. Contains multiple pieces. Could be reconstructed using 50% of containing pieces.
- Object mapping - defines a connection between pieces and objects. Object mappings are crucial for object reconstruction from pieces. Nodes produce object mappings during the archiving process.
- Piece - part of the archiving segment. Sourced by nodes during the archiving process. We will reconstruct objects from pieces.
- Sector - farmers store pieces in form of sectors. They are chosen by random-based algorithm.
- DHT - distributed hash table. We use Kademlia version implemented by libp2p project.