Binary Blobs are essentially collections of node-level blocks.
When fetching a URI over FCP, a special flag can be set that causes the node to write every low-level key involved in fetching that URI to a file (or return them via FCP messages).
This allows you to migrate your favorite freesite from one network to another, or store it and later reinsert it, without having to change its pubkey and its URI.
To fetch the full freesite, rather than just one page, we need support for fetching a whole freesite, But basic binary blobs support was implemented in build 1035.
It is also required for Update Over Mandatory.
Binary blobs unofficially use the extension
Binary blobs unofficially use the MIME type
This is a simple, extensible format.
The file format is as follows:
(As with all Freenet binary formats, Java byte order, aka big-endian, is used.)
64-bit magic value:
6d58 249f 72d6 7ed9
(This uniquely identifies the file as a freenet binary blob container file)
2 bytes - binary blob overall format version number (at present, 0)
A series of blobs:
4 bytes - length of blob data 2 bytes - type of blob 2 bytes - version of blob [ blob data ]
Type of blob = 1
Format: 1 byte - key type 1 byte - key subtype 1 byte - key length 2 bytes - headers length 2 bytes - data length 2 bytes - pubkey length (if a pubkey is required, otherwise 0) key headers data pubkey
Type of blob = 2 No data