# Polkadot Native Storage Updates

**URL:** <https://forum.polkadot.network/t/polkadot-native-storage-updates/7021>\
**Category:** Tech Talk\
**Created:** [March 26, 2024, 1:40am UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021 "2024-03-26T01:40:36Z")\
**Posts on this page:** 20\
**Page:** 4

<div class="post-metadata">

**Author:** ![OliverTY](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/oliverty/32/2986_2.png) [@OliverTY](https://forum.polkadot.network/u/OliverTY)\
**Post date:** [February 5, 2025, 12:14pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/61 "2025-02-05T12:14:10Z")

</div>

I saw that you have a ticket for S3 compatibility, that would be nice: [S3-compatible API · Issue #692 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/issues/692)  
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 😁

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.

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [February 11, 2025, 5:07pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/62 "2025-02-11T17:07:16Z")

</div>

**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”:

- [feat(storage-provider): add size-based multi sector by jmg-duarte · Pull Request #732 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/732)
- [feat(storage-provider): add sealing configuration by jmg-duarte · Pull Request #735 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/735)
- [https://github.com/eigerco/polka-storage/pull/737](https://github.com/eigerco/polka-storage/pull/737)
- [feat(storage-provider): add time-based sector sealing by jmg-duarte · Pull Request #733 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/733)

We fixed our uploads:

- [https://github.com/eigerco/polka-storage/pull/736](https://github.com/eigerco/polka-storage/pull/736)

Added support for 512MiB & 1GiB sectors:

- [feat: support 512 & 1GiB with huge refactors by th7nder · Pull Request #717 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/717)

And work continues on P2P:

- [feat: Move bootstrap node into collator by aidan46 · Pull Request #727 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/727)

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [February 11, 2025, 5:10pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/63 "2025-02-11T17:10:04Z")

</div>

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 🤔

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [February 18, 2025, 7:50pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/64 "2025-02-18T19:50:08Z")

</div>

**2025-02-17 Update**

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

- [feat(storage-provider): benchmark register & pre\_commit by Jinxit · Pull Request #740 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/740)

We’ve done some work on the P2P side:

- [feat: Implement p2p bootstrap improvement by aidan46 · Pull Request #744 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/744)

We’re working on testing proof GPU support:

- [feat: configure feature flags for OpenCL and CUDA by th7nder · Pull Request #745 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/745)

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

- [feat(sp-server): start\_block based sealing by jmg-duarte · Pull Request #749 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/749)

Improved our CAR crate:

- [feat(mater-cli): allow overwrite on extract by jmg-duarte · Pull Request #750 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/750)
- [feat(mater): tree-aware content extraction by jmg-duarte · Pull Request #753 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/753)
- [feat(mater-cli): add support for stdin input by jmg-duarte · Pull Request #761 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/761)

Made proofs more efficient:

- [fix: support multiple partitions in PoRep by th7nder · Pull Request #752 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/752)
- [fix: post proof batching by cernicc · Pull Request #748 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/748)

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

- [fix: add support for multiple proof types at the network level by jmg-duarte · Pull Request #762 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/762)

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [February 26, 2025, 4:56pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/65 "2025-02-26T16:56:15Z")

</div>

**2025-02-26 Update**

We’ve fixed a bug in our proof pipeline:

- [fix(pipeline): precommit scheduling by cernicc · Pull Request #764 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/764)

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

- [fix(mater): add tests to the extractor by jmg-duarte · Pull Request #767 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/767)
- [feat(mater): replace blockstore with a more general abstraction by jmg-duarte · Pull Request #772 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/772)
- [fix(mater): remove the bounds on get\_inner\_mut by jmg-duarte · Pull Request #775 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/775)
- [feat(mater): remove filestore abstraction in favor of blockwriter by jmg-duarte · Pull Request #773 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/773)
- [feat(mater): add mater::ReadOnlyBlockstore by jmg-duarte · Pull Request #774 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/774)
- [feat(mater): replace the Reader/Writer structs with traits by jmg-duarte · Pull Request #777 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/777)
- [feat(mater/fetch): add ReadWriteBlockstore by jmg-duarte · Pull Request #779 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/779)
- [feat(fetch): add support for multiple providers by jmg-duarte · Pull Request #784 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/784)

We’re started work on replication:

- [rfc: delia replication by pete-eiger · Pull Request #776 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/776)

And we’re also working on deal parameters:

- [rfc: Add deal parameters by aidan46 · Pull Request #763 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/763)
- [feat: Add deal parameters by aidan46 · Pull Request #778 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/778)

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

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [March 6, 2025, 4:26pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/66 "2025-03-06T16:26:52Z")

</div>

**2025-03-06 Update**

Some small improvements on `storagext`:

- [fix(storagext): track nonces per-account by jmg-duarte · Pull Request #780 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/780)

We finished our improvements to `polka-fetch`:

- [feat(mater/fetch): add ReadWriteBlockstore by jmg-duarte · Pull Request #779 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/779)
- [feat(fetch): add support for multiple providers by jmg-duarte · Pull Request #784 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/784)

We’re pushing for 1GiB sector sizes:

- [fix: 1GiB sectors porep & post key by th7nder · Pull Request #791 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/791)
- [fix: set 1GiB verifying keys in Genesis Config by th7nder · Pull Request #794 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/794)

The work on deal parameters keeps going:

- [fix: Storagext deal param types by aidan46 · Pull Request #792 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/792)
- [feat(sp-server): Add deal param validation by aidan46 · Pull Request #797 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/797)

We’ve implemented DealId-based content retrieval:

- [https://github.com/eigerco/polka-storage/pull/796](https://github.com/eigerco/polka-storage/pull/796)

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

- [GitHub - eigerco/delia at new\_delia](https://github.com/eigerco/delia/tree/new_delia)

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

- [feat: add replicated file examples by jmg-duarte · Pull Request #786 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/786)

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [March 12, 2025, 6:31pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/67 "2025-03-12T18:31:03Z")

</div>

**2025-03-12 Update**

The new Delia is under review:

- [feat: refactor Delia by jmg-duarte · Pull Request #10 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/10)

We’re finishing the server side:

- [fix(sp-server): remove delia-specific APIs by jmg-duarte · Pull Request #803 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/803)
- [fix(node): multiaddr default & validation by jmg-duarte · Pull Request #804 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/804)
- [feat(node): implement libp2p ws support by jmg-duarte · Pull Request #805 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/805)

We’ve done a small QoL improvement:

- [refactor: add genesis config to market and proofs pallet by th7nder · Pull Request #802 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/802)

Some more work on deal parameters:

- [feat(sp-server): Add deal param validation by aidan46 · Pull Request #797 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/797)
- [feat: Add deal param RPC endpoints by aidan46 · Pull Request #800 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/800)

And implemented Deal ID based retrieval:

- [feat: deal\_id content retrieval by cernicc · Pull Request #796 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/796)

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [March 28, 2025, 3:30pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/68 "2025-03-28T15:30:15Z")

</div>

**2025-03-28 Update**

On Delia, we did several improvements:

- Added retrieval - [feat: content retrieval by cernicc · Pull Request #11 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/11)
- Tooltips - [feat: tooltips by cernicc · Pull Request #12 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/12)
- Simplified the UX - [feat: merge account selection by cernicc · Pull Request #17 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/17)
- Improved page routing - [feat: setup react-router by cernicc · Pull Request #18 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/18)
- Fixed some linting issues - [fix: linter by cernicc · Pull Request #19 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/19)

![output](https://europe1.discourse-cdn.com/flex005/uploads/polkadot2/original/2X/8/813c7b5e765d12ffb011a9904ab69ec57e4aa9b6.gif)

On our main project:

- Removed old APIs - [fix(sp-server): remove delia-specific APIs by jmg-duarte · Pull Request #803 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/803)
- Improved the node CLI with validations - [fix(node): multiaddr default & validation by jmg-duarte · Pull Request #804 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/804)
- Added libp2p WebSocket support
  - [feat(node): implement libp2p ws support by jmg-duarte · Pull Request #805 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/805)
  - [feat(storage\_provider\_server): add ws libp2p support by cernicc · Pull Request #806 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/806)

- Made our request/response protocols compatible with Libp2p-JS - [feat(node/sp/fetch): make req/resp protocol length-prefixed by jmg-duarte · Pull Request #807 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/807)
- And other smaller improvements - [Commits · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/commits/develop/?since=2025-03-12&until=2025-03-28)

---

<div class="post-metadata">

**Author:** ![th7nder](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/th7nder/32/4924_2.png) [@th7nder](https://forum.polkadot.network/u/th7nder)\
**Post date:** [April 16, 2025, 12:24pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/69 "2025-04-16T12:24:00Z")

</div>

2025-16-04 Update

On Delia, we did several improvements:

- Fetch deal form runtime parameters from chain - [feat: make form parameters runtime dependant by th7nder · Pull Request #22 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/22)
- Add CommP and piece size computation - [feat: Add CommP and piece size computation by aidan46 · Pull Request #26 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/26)
- Add support for WS API - [feat: add support for the extra ws API by jmg-duarte · Pull Request #30 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/30)
- Fix delia chunking issue on larger files - [fix: replace CarWriter with CarBufferWriter to avoid chunking issues by jmg-duarte · Pull Request #36 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/36)

On our polka-storage:

- Several documentation improvements:
  - Delia docs - [feat: delia docs by cernicc · Pull Request #820 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/820)
  - CLI commands - [docs(book): book auto formatting & update cli commands docs by cernicc · Pull Request #817 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/817)

- Proper PeerID to multiaddr resolving - [feat(sp/node): resolve PeerId -\> Multiaddr by jmg-duarte · Pull Request #821 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/821)
- Add services request response libp2p protocol - [feat(sp): add services req/resp protocol by jmg-duarte · Pull Request #823 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/823)
- Benchmark improvements - [test(primitives): Extract commonalities from market and storage-provider pallet benchmarks, and use real proof data by Jinxit · Pull Request #818 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/818)

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [April 23, 2025, 1:09pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/70 "2025-04-23T13:09:39Z")

</div>

**2025-04-23 Update**

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

- [feat: add support for multiple SP addrs on retrieval by jmg-duarte · Pull Request #31 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/31)
- [feat: download deal information on completion by jmg-duarte · Pull Request #46 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/46)
- [feat: receipt-based deal retrieval by jmg-duarte · Pull Request #50 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/50)
- [feat: add validation to the deal proposal form by th7nder · Pull Request #40 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/40)
- [feat: Add market balance under account selection by aidan46 · Pull Request #49 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/49)
- [feat: calculate collateral and price per block based on SP by th7nder · Pull Request #47 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/47)

You can take a glimpse at the upload experience here:  
 ![output](https://europe1.discourse-cdn.com/flex005/uploads/polkadot2/original/2X/2/239786f91958b1cf72e49cf616f1d85a586bf8a1.gif)

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](https://europe1.discourse-cdn.com/flex005/uploads/polkadot2/original/2X/f/f9adeadb9e6e51892ea2dcbd099dffa8bb8408f7.gif)

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

- [test(sp): Benchmark `declare_faults_recovered` by Jinxit · Pull Request #834 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/834)
- [test(sp): Benchmark `declare_faults` by Jinxit · Pull Request #828 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/828)
- [test(sp): Refactor benchmarks by Jinxit · Pull Request #826 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/826)
- [test(sp): Use assert\_ok\_sp in all benchmarks by Jinxit · Pull Request #833 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/833)

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [April 30, 2025, 2:12pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/71 "2025-04-30T14:12:26Z")

</div>

2025-04-30 Update

We’ve been focused on Delia:

- [feat: Add market balance under account selection by aidan46 · Pull Request #49 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/49)
- [fix: accept raw codec by jmg-duarte · Pull Request #60 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/60)
- [fix: simplify deal duration by th7nder · Pull Request #58 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/58)
- [feat: Add market top up to account page by aidan46 · Pull Request #65 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/65)
- [feat: Add market balance withdrawal by aidan46 · Pull Request #73 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/73)

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [May 8, 2025, 3:53pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/72 "2025-05-08T15:53:41Z")

</div>

2025-05-08 Update

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

- [fix(pipeline): Set correct sector\_number at startup by cernicc · Pull Request #845 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/845)

We keep working in Delia:

- [feat: Add market balance withdrawal by aidan46 · Pull Request #73 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/73)
- [feat: check deal status on drop into retrieval by jmg-duarte · Pull Request #77 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/77)

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [June 5, 2025, 3:36pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/73 "2025-06-05T15:36:01Z")

</div>

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:

- [feat: check deal status on drop into retrieval by jmg-duarte · Pull Request #77 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/77)
- [fix: duration validation by jmg-duarte · Pull Request #85 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/85)
- [feat: replace provider button with table by jmg-duarte · Pull Request #89 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/89)
- [fix: retrieval storage providers dialing by cernicc · Pull Request #91 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/91)
- [feat: provide more info on deal duration by jmg-duarte · Pull Request #92 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/92)
- [fix: return an error if retrieval providers not accessible by cernicc · Pull Request #95 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/95)
- [fix: replace price table with a summary row by jmg-duarte · Pull Request #96 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/96)
- [feat: add max button to the market withdrawal by cernicc · Pull Request #101 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/101)
- [test: Add tests and improve error handling for CommP generation by aidan46 · Pull Request #102 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/102)
- [fix: unify buttons by cernicc · Pull Request #104 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/104)
- [feat: remove collateral calculation from the frontend by cernicc · Pull Request #105 · eigerco/delia · GitHub](https://github.com/eigerco/delia/pull/105)

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

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

- [feat(sp): add support for multiple multiaddrs by jmg-duarte · Pull Request #838 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/838)
- [fix: public p2p addreses by th7nder · Pull Request #839 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/839)
- [feat(sp): add external addresses manually by jmg-duarte · Pull Request #862 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/862)

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

- [fix(pipeline): Set correct sector\_number at startup by cernicc · Pull Request #845 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/845)
- [fix: sector sealing and piece adding by cernicc · Pull Request #857 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/857)

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

- [fix(sp): remove cli args by jmg-duarte · Pull Request #861 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/861)
- [feat: log config on server sturtup by cernicc · Pull Request #867 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/867)

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

- [fix(storagext): replace u64 with BlockNumber by jmg-duarte · Pull Request #875 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/875)
- [fix: replace DealDuration u64 with BlockNumber by jmg-duarte · Pull Request #876 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/876)
- [fix(pallet-sp): replace u64 with BlockNumber by jmg-duarte · Pull Request #877 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/877)
- [fix(pallet-faucet): replace u64 with BlockNumber by jmg-duarte · Pull Request #878 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/878)
- [fix(pallet-market): replace u64 with BlockNumber by jmg-duarte · Pull Request #879 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/879)
- [feat: BlockNumber = u32 by jmg-duarte · Pull Request #880 · eigerco/polka-storage · GitHub](https://github.com/eigerco/polka-storage/pull/880)

---

<div class="post-metadata">

**Author:** ![0xTaylor](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/0xtaylor/32/4242_2.png) [@0xTaylor](https://forum.polkadot.network/u/0xTaylor)\
**Post date:** [June 6, 2025, 8:01am UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/74 "2025-06-06T08:01:45Z")

</div>

> [@jmg-duarte](#):
>
> We’ve worked on enabling browser-compatible storage providers:
> 
> - [https://github.com/eigerco/delia/pull/838](https://github.com/eigerco/delia/pull/838)
> - [https://github.com/eigerco/delia/pull/839](https://github.com/eigerco/delia/pull/839)
> - [https://github.com/eigerco/delia/pull/862](https://github.com/eigerco/delia/pull/862)
> 
> We’ve fixed bugs in the storage provider sector handling:
> 
> - [https://github.com/eigerco/delia/pull/845](https://github.com/eigerco/delia/pull/845)
> - [https://github.com/eigerco/delia/pull/857](https://github.com/eigerco/delia/pull/857)
> 
> Simplified the storage provider, removing the CLI options in favor of a single configuration source of truth:
> 
> - [https://github.com/eigerco/delia/pull/861](https://github.com/eigerco/delia/pull/861)
> - [https://github.com/eigerco/delia/pull/867](https://github.com/eigerco/delia/pull/867)
> 
> Rolled back our block number to u32, which will enable us to leverage the Omni Node and make development faster and simpler:
> 
> - [https://github.com/eigerco/delia/pull/875](https://github.com/eigerco/delia/pull/875)
> - [https://github.com/eigerco/delia/pull/876](https://github.com/eigerco/delia/pull/876)
> - [https://github.com/eigerco/delia/pull/877](https://github.com/eigerco/delia/pull/877)
> - [https://github.com/eigerco/delia/pull/878](https://github.com/eigerco/delia/pull/878)
> - [https://github.com/eigerco/delia/pull/879](https://github.com/eigerco/delia/pull/879)
> - [https://github.com/eigerco/delia/pull/880](https://github.com/eigerco/delia/pull/880)

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

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [June 6, 2025, 8:18am UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/75 "2025-06-06T08:18:21Z")

</div>

@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!

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [June 24, 2025, 8:50am UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/76 "2025-06-24T08:50:23Z")

</div>

**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:

> **[Delia](https://eigerco.github.io/delia/#/?rpc=wss%3A%2F%2Fcollator.polka-storage.eiger.co)**

And you can check the [README](https://github.com/eigerco/delia/blob/3cc71e1cb9619c5bed7f93e7efd4eb89d955b0ad/README.md) for detailed instructions.

If you find issues, please share them here:

- [GitHub · Where software is built](https://github.com/eigerco/delia/issues)

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

- [GitHub - eigerco/delia: Web application for proposing and publishing deals with providers on the Polka Storage System Parachain.](https://github.com/eigerco/delia)
- [GitHub - eigerco/polka-storage: The Polka Storage Parachain Project](https://github.com/eigerco/polka-storage)

---

<div class="post-metadata">

**Author:** ![tom.stakeplus](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/tom.stakeplus/32/2639_2.png) [@tom.stakeplus](https://forum.polkadot.network/u/tom.stakeplus)\
**Post date:** [June 25, 2025, 11:28pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/77 "2025-06-25T23:28:53Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![jmg-duarte](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/jmg-duarte/32/7112_2.png) [@jmg-duarte](https://forum.polkadot.network/u/jmg-duarte)\
**Post date:** [June 30, 2025, 8:44am UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/78 "2025-06-30T08:44:12Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![kianenigma](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/kianenigma/32/6153_2.png) [@kianenigma](https://forum.polkadot.network/u/kianenigma)\
**Post date:** [June 30, 2025, 9:19pm UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/79 "2025-06-30T21:19:25Z")

</div>

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](https://docs.google.com/document/d/1L1jlMI9-KOfxMYUMQVeq0tPNtz1fitxTXlg6gKwjXnM/edit?tab=t.0#heading=h.lv1hxo49xe4z):

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](https://blog.kianenigma.com/posts/tech/demystifying-jam/presentation-pba/#jam-supercomputer), 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 🙂

---

<div class="post-metadata">

**Author:** ![olanod](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/olanod/32/804_2.png) [@olanod](https://forum.polkadot.network/u/olanod)\
**Post date:** [July 1, 2025, 9:03am UTC](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021/80 "2025-07-01T09:03:58Z")

</div>

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.

[Previous page](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021.md?page=3)

[Next page](https://forum.polkadot.network/t/polkadot-native-storage-updates/7021.md?page=5)
