BFTKV is a distributed key-value storage which is tolerant to Byzantine fault. See Abstract for details.
- Install Go 1.13.
go get -u github.com/yahoo/bftkv
- Install GnuPG 2.x
- Install Docker (if you want to run BFTKV in a Docker container)
- Run
setup.sh
in scripts (setup.sh -host bftkv
for Docker) - If bftkv runs with KeyTransparency, run
$GOPATH/src/github.com/google/keytranspreancy/scripts/gen_bftkv_keys.sh
# change to the directory where the source code is checked out
cd bftkv
go install -v github.com/yahoo/bftkv/cmd/bftkv
A list of parameters that can be supplied to bftkv is given below:
Flag Purpose Default -home Path to PGP home directory, ~/.gnupg -sec Secret key ring path, $home/secring.gpg -pub Public key ring path, $home/pubring.gpg -rev Revocation list path, $home/revocation.gpg -db Database path, db -api Http api address, localhost:5792 -ws Web socket port, 5001
-
Run a node
bftkv -home gnupg.key
-
Run a BFTKV cluster
cd scripts/run; ../run.sh
-
Run a BFTKV cluster in Docker
docker build -t bftkv .
docker run -d bftkv
BFTKV includes a visualization tool (located in visual/
) for observing the current system state. The tool can display
- Trust graphs for the servers
- Read, write and sign requests sent to the servers
- Revoked and inaccessible servers
To show the graph, run run.sh
and open visual/index.html
.
Copyright 2017, Yahoo Holdings Inc.
Licensed under the terms of the Apache license. See LICENSE file in project root for terms.