#erasure-coding #polkadot #availability #system #root #data #merkle

polkadot-erasure-coding

Erasure coding used for Polkadot's availability system

16 major breaking releases

16.0.0 Sep 26, 2024
15.0.0 Jul 18, 2024
14.0.0 Jun 21, 2024
13.0.0 May 23, 2024
0.0.0 Nov 21, 2022

#7 in #erasure-coding

Download history 461/week @ 2024-07-23 392/week @ 2024-07-30 503/week @ 2024-08-06 689/week @ 2024-08-13 738/week @ 2024-08-20 520/week @ 2024-08-27 501/week @ 2024-09-03 826/week @ 2024-09-10 639/week @ 2024-09-17 1121/week @ 2024-09-24 1046/week @ 2024-10-01 797/week @ 2024-10-08 773/week @ 2024-10-15 1029/week @ 2024-10-22 1004/week @ 2024-10-29 902/week @ 2024-11-05

3,907 downloads per month
Used in 33 crates (9 directly)

GPL-3.0-only

20KB
299 lines

Release

Polkadot SDK stable2409


lib.rs:

As part of Polkadot's availability system, certain pieces of data for each block are required to be kept available.

The way we accomplish this is by erasure coding the data into n pieces and constructing a merkle root of the data.

Each of n validators stores their piece of data. We assume n = 3f + k, 0 < k ≤ 3. f is the maximum number of faulty validators in the system. The data is coded so any f+1 chunks can be used to reconstruct the full data.

Dependencies

~24–34MB
~581K SLoC