【Netscape Navigator™】
.:: LINKS ::.
.:: ARTICLES ::.


Contact me on Tilde.Chat to exchange banners!

Random Tilde Box Join the Tildeverse Webring

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


  • A bundle is a single file
  • Even ancient computer systems can support zip compression (remember pkzip?)
  • Smaller bundle sizes


  • 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.