-
Notifications
You must be signed in to change notification settings - Fork 2
Binary Blobs
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 would include every key in a splitfile, and it includes keys such as SSKs where the user doesn't know the private key. It is then possible to reinsert this binary package on another node.
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 .fblob
Binary blobs unofficially use the MIME type application/x-freenet-binary-blob
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 ]
Block blob
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
End blob
Type of blob = 2 No data