Skip to content

Keepword v2.0.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 14:01
· 160 commits to main since this release

Witness is now Keepword. "Witness" is a crowded name, too hard to find
and to tell apart. Keepword turns the problem this project is about, web
pages that don't keep their word, into a promise. "Witness" stays as the
role: you still run a witness, witnesses still testify, and "Keepword is a
network of independent witnesses".

The whole project changes name at once, protocol included, so this is a
clean break: 2.0.0 nodes don't federate with 1.x nodes, and 1.x logs and
bundles don't verify with 2.0.0. Nothing carries over from a 1.x node.

Changed

  • The command is keepword (and keepword-tlsn for the TLSNotary
    tier), and the crates are keepword (the node), keepword-core,
    keepword-normalize, keepword-capture, keepword-store and
    keepword-tlsn. The repository is github.com/keepword-net/keepword.
  • Names on a node: the data directory is /var/lib/keepword (or
    ./keepword-data for a development node, or KEEPWORD_DIR), the config
    file keepword.toml, the service user keepword, the services
    keepword.service, keepword-asn-update.timer and
    keepword-notary.service, and the installer also uses /opt/keepword,
    /usr/local/lib/keepword, /etc/keepword/data-dir and
    /etc/caddy/keepword.caddy. The key file is still witness.key: it is
    the witness's identity.
  • Container: the image is keepword, with a keepword-data volume, and
    it is configured with KEEPWORD_ASN, KEEPWORD_COUNTRY,
    KEEPWORD_RETAIN, KEEPWORD_ENDPOINT, KEEPWORD_PEERS,
    KEEPWORD_SEEDS, KEEPWORD_BEHIND_PROXY, KEEPWORD_CLIENT_IP_HEADER
    and KEEPWORD_ASN_DB.
  • Protocol and evidence formats (incompatible): every signing domain
    and hash tag starts with keepword instead of witness
    (keepword/attestation/v2, keepword/tree-head/v1,
    keepword url-key v1, …), evidence bundles are keepword-bundle/1,
    normalized text starts with keepword-norm/2, so normalized hashes
    change too, and a WARC export's attestation record is
    application/vnd.keepword.attestation+json.
  • The default User-Agent is Mozilla/5.0 (compatible; Keepword/2.0.0; +https://github.com/keepword-net/keepword), and peers see keepword/2.0.0.
  • Release archives are keepword-vX.Y.Z-TARGET.tar.gz. The web UI, the
    banner and the social preview say Keepword.

Upgrading from Witness 1.x

Start every node over. On each one, remove Witness with its own installer
(sudo sh scripts/install.sh --uninstall --purge in a 1.x checkout), then
install Keepword. Upgrade the default seed first: new nodes join through
it.

Install

On a server, the installer builds from source and sets up the service:

git clone https://github.com/keepword-net/keepword.git && cd keepword
sudo sh scripts/install.sh --domain witness.example.org --caddy

The binaries below are static Linux builds of the keepword command
(without headless rendering). Check them against SHA256SUMS.