version 0.12



Structure of the journal.

Each node maintains an ordered list of the resources it publishes, as well as all resources published by any trusted node. This ordered list is called the journal. It is unique per node, and is the thing that is kept synchronized between nodes.

An example journal is available here.

Journal Entries

The first line of the node journal is always the key fingerprint of the node, and each following line of the node journal is constructed by concatenating:

View example journal entries here.

Journal Line Identifier

Except for the very first entry of the journal, the journal line identifier is the hash of the previous line's characters, excluding any newline characters, whose octets are unpadded base64url encoded.

When to Write

The node writes to its own journal under the following circumstances:

The ordering of the journal is by knowledge of the resource, not by clock time of resource publication.

For example, if a node receives notice of a published resource several days after the publication, the resource identifier for that resource is still added to the end of the journal.

A node should not write to the journal until it has received the resource, and verified its signature.

First Three Entries

The first line of the journal must be the key fingerprint of the node.

The second line of the journal must be calculated using the resource identifier of theidentity resource of the user authorizing the node.

The third line of the journal must be calculated the resource identifier of the trust resource authorizing the node on behalf of some user.

Example Journal

For a user with a key fingerprint of:


And a node with a key fingerprint of:


And the resource identifier of the trust resource authorizing the node is:


If the node then publishes two resources from that user, and those resource identifiers were:


The complete node journal would look like this (view the raw text file here):