SSB Log Entry 1084
Another short #pigeon-protocol update:
Realize a Huge Flaw in Blob Bundles
I've been thinking about the way the spec handles blob transmissions in bundles. Currently, the sender is required to pack blobs into a bundle and name the file after the blob's hash.
That makes zero sense, the more I think about it:
- I want to support FAT16 filesystems (a big goal of the project), which meant I needed to create a strange hierarchy of nested directories that are 8 chars long to be compatible with 8.3 naming conventions seen on legacy systems.
- The code required to create this hierarchy is very complicated.
- It's useless from a security perspective- the receiver must still check the validity of a blob's hash or else Bad Stuff:tm: could happen.
I am going to make a breaking change to the spec: all files added to blobs must be placed in the root directory, next to the messages.pgn file. All blobs must end in a .blb file extension. It is the responsibility of the recipient to determine the hash of a blob (or if it cares to keep a local copy at all).
First Class *.zip Support?
I think I might require zip compression for bundle files
GOOD:
- A bundle is a single file
- Even ancient computer systems can support zip compression (remember
pkzip ?)
- Smaller bundle sizes
BAD:
- Forcing third party implementors to add a
zip library might make it harder to build new implementations.
- Adds an extra step to ingest a bundle.
|