Skip to content

Binary Blobs

Stephen Oliver edited this page Apr 3, 2017 · 1 revision

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.

File extension

Binary blobs unofficially use the extension .fblob

MIME type

Binary blobs unofficially use the MIME type application/x-freenet-binary-blob

File Format

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

Clone this wiki locally
You can’t perform that action at this time.