View Source Baobab (Baobab v0.6.0)

Baobab is a pure Elixir implementation of the Bamboo append-only log.

It is fairly opinionated about the DETS persistence of the logs. They are considered to be a spool of the logs as retreived.

Consumers of this library may wish to place a local copy of the logs in a store with better indexing and query properties.

configuration

Configuration

config :baobab, spool_dir: "/tmp"

options

Options

  • format: :entry or :binary, default: :entry
  • log_id: the author's log identifier, default 0
  • revalidate: confirm the store contents are unchanged, default: false
  • replace: rewrite log contents even if it exists, default: false

Link to this section Summary

Functions

Retrieve the list of sequence numbers on a particular log identified by the author key and log number

Create and store a new log entry for a stored identity

Resolve an identity to its Base62 representation

Compact log contents to only items in the certificate pool for the latest entry. This allows validation while reducing space used

Create and store a new identity

Retrieve all available entries in a particular log

Retrieve the key for a stored identity.

Import and store a list of log entries from their binary format.

Retrieve the latest entry.

Retrieve an author log at a particular sequence number.

Retrieve the latest entry on a particular log identified by the author key and log number

Retrieve the latest sequence number on a particular log identified by the author key and log number

A list of {author, log_id, max_seqnum} tuples in the configured store

Link to this section Functions

Link to this function

all_seqnum(author, options \\ [])

View Source

Retrieve the list of sequence numbers on a particular log identified by the author key and log number

Link to this function

append_log(payload, identity, options \\ [])

View Source

Create and store a new log entry for a stored identity

Resolve an identity to its Base62 representation

Link to this function

compact(author, options \\ [])

View Source

Compact log contents to only items in the certificate pool for the latest entry. This allows validation while reducing space used

Link to this function

create_identity(identity)

View Source

Create and store a new identity

Link to this function

full_log(author, options \\ [])

View Source

Retrieve all available entries in a particular log

Link to this function

identity_key(identity, which)

View Source

Retrieve the key for a stored identity.

Can be either the :public or :secret key

Link to this function

import(binaries, opts \\ [])

View Source

Import and store a list of log entries from their binary format.

Link to this function

latest_log(author, options \\ [])

View Source

Retrieve the latest entry.

Includes the available certificate pool for its verification.

Link to this function

log_at(author, seq, options \\ [])

View Source

Retrieve an author log at a particular sequence number.

Includes the available certificate pool for its verification.

Link to this function

max_entry(author, options \\ [])

View Source

Retrieve the latest entry on a particular log identified by the author key and log number

Link to this function

max_seqnum(author, options \\ [])

View Source

Retrieve the latest sequence number on a particular log identified by the author key and log number

A list of {author, log_id, max_seqnum} tuples in the configured store