Follow

Another package into debian experimental thanks to @vagrantc of @reproducible_builds . 🎉🙏

lcrq provides Forward Error Correction via raptorq fountain codes.
tracker.debian.org/news/134761

@dentangle @librecast @vagrantc @reproducible_builds wow, that’s awesome news! We might finally have an avenue to optimize the FEC code in Freenet! (ideal would be 200% redundancy, not 100%,¹ but the patents on raptor codes prevented that and I did not notice the waiver)

¹: draketo.de/light/english/freen

@ArneBab @dentangle thanks to @vagrantc we also have a couple of libraries and tools in debian experimental. We want to make some useful tool for everyone to play with it and you need FEC with Multicast.

We did some experiments with the IOT updater coder with Fed4fire+ and those experiments highlighted the need for us to finish the FEC milestone.

@librecast (small sidenote: did you note that Freenet nowadays provides decentralized video on demand — with much lower quality than Librecast, but fully decentralized and with strong privacy: freenetproject.org/freenet-bui )

@ArneBab @librecast @vagrantc @reproducible_builds See the "IPR declarations" section on the RFC.

RaptorQ will recover the data with a very high degree of probability with just a couple of overhead symbols.

See en.wikipedia.org/wiki/Raptor_c

@ArneBab @librecast @vagrantc @reproducible_builds You can generate a a more or less limitless set of unique encoding symbols (UINT32_MAX, so ~4 billion), distribute them how you wish, and the recover the data from *any* K' symbols.

@ArneBab @librecast @vagrantc @reproducible_builds there's a pair of programs in examples/ (scatter + gather) that will take a file, encode it and write random symbols to disk, then reassemble the file from those.

@ArneBab @librecast @vagrantc @reproducible_builds just bear in mind for large files it will be slow, so generally best to split it yourself into more managable chunks before encoding. Block sizes make a huge difference to performance.

@ArneBab @librecast @vagrantc @reproducible_builds Java? Haven't noticed, but also haven't looked. There are competent ones in Rust and so on. I'll probably port LCRQ to webassembly so it's useable from js, but I don't do Java.

@dentangle @librecast @vagrantc @reproducible_builds Since Freenet is written in Java, we need libs in Java — any step to native code creates lots of maintenance nightmares (been there …).

@emacsen forward error correction: not replacing a broken chunk by uploading exactly that, but uploading parity information so missing blocks can be reconstructed.

Sign in to participate in the conversation
chaos.social

chaos.social – a Fediverse instance for & by the Chaos community