Splitfiles
Freenet 0.7
keys each specify a maximum size for the data block. SSKs are 1024 bytes maximum, and CHKs are 32,768 bytes maximum. If a file (data or metadata) is larger than this then it must be distributed across a number of keys. A metadata document called a splitfile is created which lists all the CHKs that the file has been divided into. 2/3rds of these keys are just the data divided into 32kB blocks; these are called "data blocks". The other third are "check blocks". These are created by using Vandermonde Forward Error Correction codes using the
onion FEC codec∞. When requesting, the node will request the data blocks and check blocks in random order until it has enough blocks to reconstruct the original data. Then it will reconstruct the original data and return it to the requestor, and at the same time it will re-encode (if necessary) and re-insert any blocks that it could not fetch (this is called splitfile healing).