Repository navigation
Keepword v2.0.0
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(andkeepword-tlsnfor the TLSNotary
tier), and the crates arekeepword(the node),keepword-core,
keepword-normalize,keepword-capture,keepword-storeand
keepword-tlsn. The repository is github.com/keepword-net/keepword. - Names on a node: the data directory is
/var/lib/keepword(or
./keepword-datafor a development node, orKEEPWORD_DIR), the config
filekeepword.toml, the service userkeepword, the services
keepword.service,keepword-asn-update.timerand
keepword-notary.service, and the installer also uses/opt/keepword,
/usr/local/lib/keepword,/etc/keepword/data-dirand
/etc/caddy/keepword.caddy. The key file is stillwitness.key: it is
the witness's identity. - Container: the image is
keepword, with akeepword-datavolume, and
it is configured withKEEPWORD_ASN,KEEPWORD_COUNTRY,
KEEPWORD_RETAIN,KEEPWORD_ENDPOINT,KEEPWORD_PEERS,
KEEPWORD_SEEDS,KEEPWORD_BEHIND_PROXY,KEEPWORD_CLIENT_IP_HEADER
andKEEPWORD_ASN_DB. - Protocol and evidence formats (incompatible): every signing domain
and hash tag starts withkeepwordinstead ofwitness
(keepword/attestation/v2,keepword/tree-head/v1,
keepword url-key v1, …), evidence bundles arekeepword-bundle/1,
normalized text starts withkeepword-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 seekeepword/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 --caddyThe binaries below are static Linux builds of the keepword command
(without headless rendering). Check them against SHA256SUMS.