Introduction
Welcome to the Polka Storage project book. This document is a work in progress and will be constantly updated.
This project aims to build a native storage network for Polkadot.
We've now completed Phase 2 and have started work on Phase 3.
During Phase 2, we have implemented:
- Storage Provider Pallet
terminate_sectors
process_early_terminations
(internal)- Batch support
- Storage Provider Server
- File upload
- Proving Pipeline
- Pre-commit
- PoRep
- On-chain proof validation
- Proof of Replication
- Proof of Spacetime
We also present a complete real-world scenario in which a Storage Provider and a Storage User negotiate a deal, perform all the steps necessary to start the storage and then receive rewards (or punishments) for making it happen.
The Polka Storage project currently provides:
Dedicated CLIs
- Polka Storage Provider CLI
polka-storage-provider-server
to launch the Storage Provider server.polka-storage-provider-client
to manage the wallet, propose & publish deals and do proof demos.
mater-cli
to convert or extract CARv2 files.storagext-cli
to interact directly with the parachain — watch out, this is a low-level tool!
Pallets:
During Phase 1, we implemented the following:
- Keeping track of Storage Providers,
- Publishing Market Deals on-chain,
- Investing tokens into the Storage Market,
- Receiving funds after completing a deal,
- Committing to the Storage and Proving the storage,
- Declaring failures to deliver committed storage and Recovering from it,
- Continuously proving that the promise of storage has been kept up PoSt proof,
- Terminating sectors by the storage provider,
- Punishing for failing to provide storage.
We present a demo on how to store a file, where a Storage Provider and a Storage User negotiate a deal and perform all the steps necessary to start the file storage. We cover the details behind proving a file in a separate demo.
More information available about the project's genesis in:
- OpenGov Referendum - Part 1 — https://polkadot.polkassembly.io/referenda/494
- OpenGov Referendum - Part 2 — https://polkadot.polkassembly.io/referenda/1150
- Research Report — https://github.com/eigerco/polkadot-native-storage/blob/main/doc/report/polkadot-native-storage-v1.0.0.pdf
- Weekly dev updates https://forum.polkadot.network/t/polkadot-native-storage-updates/7021