richardschneider / net-ipfs-engine

IPFS Core API implementation in .Net
MIT License
105 stars 48 forks source link

Block Error Detection and Correction #10

Open richardschneider opened 6 years ago

richardschneider commented 6 years ago

Inter Planetary File System data can be easily corrupted by solar flares or quantum effects and don't forget about malicious attackers and man in the middle attacks. At the fundamental level, data is an IPFS block. Blocks are persisted in a local cache and are exchanged via the Bitswap protocol. IPFS is content-addressable so error detection should be simple; however error correction has not yet been specified.

Serving a block from the local cache

Bitswap accepting a block from a peer

Bitwwap 1.0 messages do not use a CID and should always be IGNORED!

Error correction

Error correction can be cheaper than requiring a re-transmission; light from the Sun takes about 5.5 hours to reach Pluto at its average distance (39.5 AU).

No good ideas yet (please help), See background information on wikipedia

richardschneider commented 5 years ago

IBlockRepository.VerifyAsync can be used to verify all blocks.