Polkadot Native Storage Updates

I saw that you have a ticket for S3 compatibility, that would be nice: S3-compatible API · Issue #692 · eigerco/polka-storage · GitHub
I am using filebase.com currently to archive things, since it integrates with the AWS cli through S3 compat. But I would rather use something Polkadot powered :grin:

Another thing that I think is very useful is mounting it into the file system. I tried Sia coin (storage as well) a few times over the years and was always disappointed at how badly it integrates with Linux or MacOs. They do not offer a simple CLI where you can do sia mount --config-whatever.... --mount-path /mnt/archive. It could be very nice to have this, since it makes it usable for non-tech users as well.
As example, there is the ProtonDrive MacOs UI app which makes it a no-brainer to mount a remote drive.

1 Like

2025-02-11 Update

We’re working on placing multiple pieces in a sector, support was there but there’s more to it than just “adding them”:

We fixed our uploads:

Added support for 512MiB & 1GiB sectors:

And work continues on P2P:

Hey Oliver!

We’re glad you took a look! Yes, S3-compat is up for research & implementation but not the priority right now.

About mounting, that might be trickier due to the way sectors are kept around, research will be needed to decide whether it would be feasible :thinking:

1 Like

2025-02-17 Update

We’re working on finishing up the storage provider crate benchmarks:

We’ve done some work on the P2P side:

We’re working on testing proof GPU support:

The storage provider now takes the deal’s start block into account:

Improved our CAR crate:

Made proofs more efficient:

Finally, we addressed one of the existing test network shortcomings:

2 Likes

2025-02-26 Update

We’ve fixed a bug in our proof pipeline:

As we focus on fetching, we’ve been improving the mater crate:

We’re started work on replication:

And we’re also working on deal parameters:

Behind the scenes, we’re currently running some experiments to gather data on the cost of running a Storage Provider.

2025-03-06 Update

Some small improvements on storagext:

We finished our improvements to polka-fetch:

We’re pushing for 1GiB sector sizes:

The work on deal parameters keeps going:

We’ve implemented DealId-based content retrieval:

We’re working on improving Delia with the aim of adding automatically replicated deals:

Similarly, we have written an example on how a CLI-based deal replication flow could work:

2025-03-12 Update

The new Delia is under review:

We’re finishing the server side:

We’ve done a small QoL improvement:

Some more work on deal parameters:

And implemented Deal ID based retrieval:

2025-03-28 Update

On Delia, we did several improvements:

output

On our main project:

2025-16-04 Update

On Delia, we did several improvements:

On our polka-storage:

1 Like

2025-04-23 Update

We’ve been hard at work, simplifying our end user experience!

You can take a glimpse at the upload experience here:
output

We’ve also drastically reduced the complexity in fetching files, simply:

  • Keep the receipt you got at the end of your deal
  • Upload it to Delia and you’ll have your file back in no time!

output1

On our parachain’s end, we’ve been mostly finishing up benchmarks:

2 Likes

2025-04-30 Update

We’ve been focused on Delia:

2 Likes

2025-05-08 Update

We fixed an issue where the maximum used sector was wrongly calculated:

We keep working in Delia:

2 Likes

2025-06-05 Update

We start by apologizing for the time in between updates, we’ve been keeping our heads down, pushing forwards.

In Delia, we’ve done several improvements to the UI; namely, we did several improvements to the deal toast, replaced the old provider selection with a table listing the final deal price, improved error messages and more behind the scenes, some notable PRs below:

On the testnet, we’ve been working on less visible but equally important work:

We’ve worked on enabling browser-compatible storage providers:

We’ve fixed bugs in the storage provider sector handling:

Simplified the storage provider, removing the CLI options in favor of a single configuration source of truth:

Rolled back our block number to u32, which will enable us to leverage the Omni Node and make development faster and simpler:

2 Likes

FYI, none of these are accessible from the public perspective.

@0xTaylor you’re right! Thanks for noticing, I had extracted the list from GitHub using a template and forgot to re-write the repo name on the second batch of links. It has been fixed now!

1 Like

2025-06-24 Update

We’ve been hard at work squashing bugs and testing and we’re ready to announce that our testnet is currently up and will be until the end of the week (27th of June, 18:00 CEST).

You can upload and retrieve files using our Delia client:

And you can check the README for detailed instructions.

If you find issues, please share them here:

If you’re looking to contribute, you can do so in the following repos:

4 Likes

Sorry if I’ve missed the answers to these –

  1. Will you actually be deploying this as a system chain or just providing the deliverables for the fellowship to implement?
  2. In your grant you’ve stated that it will be payable in DOT. I assume it will also be available in USDT/USDC?
  3. What are the planned tokenomics for this if any exist? It will be a market places for buyers and providers – I assume treasury will have a fee taken from purchases and renewals?
  4. Will there be any initial provider incentives – If so, Have these numbers been crunched already? Can you share them?

Really exciting that we’re finally going to have this – I would like to better understand how it will impact the rest of the network.

Thanks

1 Like

Hey @tom.stakeplus!

Will you actually be deploying this as a system chain or just providing the deliverables for the fellowship to implement?

The final goal is native jam integration, system parachain is just temporary current design for testing.

In your grant you’ve stated that it will be payable in DOT. I assume it will also be available in USDT/USDC?

Is a good question, we can consider it but current plan is just DOT.

What are the planned tokenomics for this if any exist? It will be a market places for buyers and providers – I assume treasury will have a fee taken from purchases and renewals?

Tokenimics will be one of the work streams of phase 4.

Will there be any initial provider incentives – If so, Have these numbers been crunched already? Can you share them?

No provider incentives because we are not creating a new token. Providers earn by selling storage.

2 Likes

Thank you for all the updates so far, the docs, proposals, and well written book. Makes it easy to jump into this!

About JAM integration:

Your claim is that you can

  • Acting as a decentralized storage network for preimages.
  • Guaranteeing that preimages are accessible to validators when required.
  • Tracking availability over time to satisfy JAM’s invariants.

But I think the first two points might be incorrect. Preimages are request by a service via solicit host call. Once requested, they are provided to JAM via E_{p} and are stored onchain, in the main JAM state, until expunged or forgotten. Therefore, all validators are forced to store all preimages anyhow. In that sense, I don’t see how you can act as a “decentralized network for preimages”. Storing historical preimages might be something though, although they are also all present in previous state.

What is actually left blank in the paper is: once a hash is solicited, someone has to give the preimage to the JAM validators to provide the E_{p}, and to me this seems like a potential gap. Have you considered this so far?

personal 2c: While the work for the parachain is mostly set in stone by now, I hope we can tackle storage for JAM from a different perspective. Storage is a low level primitive, so I will look at it from the perspective of the low-level services’ code, hosted on the JAM super-computer/cloud:

As it stands, a service has access to 3 types of storage:

  1. Expensive, long-lasting onchain state (accumulate)
  2. Transient, cheaper, more available, but not infinite DA storage (refine)
  3. Service storage, fully kept offchain (analogous to parachain state). Can be as large as it wants to be, but the issue is that all of this has to be part of the work-package (analogous to PoV in a parachain).

(I define these storage types in this presentation, although the slides might be a bit crude)

I would first ask myself: what storage primitive that a service’s code/coder could use, that the above 3 cannot address? And what use-cases would it enable? Frankly, my imagination ends here, but I would love to discuss this further with you and find a good use-case/gap :slight_smile:

1 Like

I’ve been wondering a bit about long term storage options for the very early stage JAM service I’m brainstorming, the protocol is meant more for realtime p2p collaboration(like a matrix on JAM) that would operate mostly on the DA, light clients send work packages directly to JAM without an intermediary network that persists data like with parachains and at least initially the lack of long term storage would have to be seen as a feature.

The OS layer will abstract the DA as a file system, it could be known to applications they are dealing with temporary data by mounting it as a tempfs on /tmp and asking apps to use mktemp, but I’d like apps to be able to persist documents for longer simply by moving/writing files to a different location(e.g. /archive/*), that action should trigger some kind of preimage pinning that uses a separate storage service.
I imagine an option doing as Kian mentions which requires more work on the client, the app detects it needs to pin the data on an external service(e.g. ipfs) then when it needs to be read on JAM due to a user command/action the WP includes the subset of the data it needs and the OS on the JAM side abstracts the incoming data as a file in the persistent location.
Another interesting option I assume it will be more expensive, for people doing JAM storage services is to allow my service to pay you directly on chain to keep my data alive on the DA, like a touch command, then I just assume the data is always there and I can read it months later from my long running service even without external user interaction.

1 Like