FreenetWiki : BinaryBlobs

HomePage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

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 favourite freesite from one network to another, or store it and later reinsert it, without having to change its pubkey and its url. 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 UpdateOverMandatory.

File Format


MIME type etc

Binary blobs unofficially use the extension .fblob and application/x-freenet-binary-blob. This is a simple, extensible format.

Overall format

The file format is as follows:

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
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.2
Page was generated in 5.0374 seconds