├── .gitignore ├── .travis.yml ├── AUTHORS ├── Dockerfile ├── LICENSE.md ├── README.md ├── api ├── api.go └── api_test.go ├── bftkv.go ├── cmd ├── bftkv │ └── main.go └── bftrw │ ├── bftrw.go │ ├── mkca.sh │ └── sign.sh ├── crypto ├── auth │ ├── auth.go │ ├── auth_test.go │ └── gen │ │ ├── dhdump.go │ │ └── gen.sh ├── cert │ └── cert.go ├── crypto.go ├── pgp │ └── crypto_pgp.go ├── sss │ ├── sss.go │ └── sss_test.go └── threshold │ ├── dsa │ ├── dsa.go │ ├── dsa_core.go │ ├── dsa_test.go │ ├── test.pkcs8 │ └── test_utils │ │ └── test_utils.go │ ├── ecdsa │ ├── ecdsa.go │ └── ecdsa_test.go │ ├── rsa │ ├── rsa.go │ ├── rsa_test.go │ └── test.pkcs8 │ └── threhold.go ├── docs ├── bftkv.pdf ├── design.md ├── http_api.md ├── images │ ├── clique.png │ ├── failureDetectionInBFTKV.png │ ├── failureDetectionInQuorum.png │ ├── quorumAccept.png │ ├── quorumNodeStates.png │ ├── revokeOnRead.gif │ ├── trustGraph.png │ └── write.gif ├── notes.md ├── tests.md └── tex │ ├── abstract.tex │ ├── ack.tex │ ├── algo.tex │ ├── analysis.tex │ ├── application.tex │ ├── background.tex │ ├── bftkv.tex │ ├── bftkv_eabs.tex │ ├── conclusion.tex │ ├── intro.tex │ ├── method.tex │ ├── protocol.tex │ ├── ref.tex │ └── tpa.tex ├── go.mod ├── go.sum ├── node ├── graph │ ├── graph.go │ └── graph_test.go └── node.go ├── packet └── packet.go ├── protocol ├── client.go ├── dist_test.go ├── mal_test.go ├── malclient_test.go ├── malserver_test.go ├── malstorage_test.go ├── protocol.go ├── revoke_test.go ├── roaming_test.go ├── rw_test.go ├── server.go ├── server_test.go └── test_utils │ └── test_utils.go ├── quorum ├── quorum.go └── wotqs │ └── wotqs.go ├── scripts ├── check_gpg.sh ├── clique.sh ├── gen.sh ├── run.sh ├── setup.sh ├── sign.sh ├── test.go ├── test.sh └── trust.sh ├── storage ├── leveldb │ └── leveldb.go ├── plain │ └── plain.go └── storage.go ├── transport ├── http-visual │ └── http-visual.go ├── http │ ├── http.go │ └── malhttp.go ├── maltransport.go └── transport.go └── visual ├── README.md ├── css └── style.css ├── index.html └── js ├── cytoscape-dagre.js ├── cytoscape.js ├── dagre.min.js └── displayGraph.js /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/.travis.yml -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/AUTHORS -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/README.md -------------------------------------------------------------------------------- /api/api.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/api/api.go -------------------------------------------------------------------------------- /api/api_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/api/api_test.go -------------------------------------------------------------------------------- /bftkv.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/bftkv.go -------------------------------------------------------------------------------- /cmd/bftkv/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/cmd/bftkv/main.go -------------------------------------------------------------------------------- /cmd/bftrw/bftrw.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/cmd/bftrw/bftrw.go -------------------------------------------------------------------------------- /cmd/bftrw/mkca.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/cmd/bftrw/mkca.sh -------------------------------------------------------------------------------- /cmd/bftrw/sign.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/cmd/bftrw/sign.sh -------------------------------------------------------------------------------- /crypto/auth/auth.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/auth/auth.go -------------------------------------------------------------------------------- /crypto/auth/auth_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/auth/auth_test.go -------------------------------------------------------------------------------- /crypto/auth/gen/dhdump.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/auth/gen/dhdump.go -------------------------------------------------------------------------------- /crypto/auth/gen/gen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | openssl gendh 2048 | ./dhdump 4 | -------------------------------------------------------------------------------- /crypto/cert/cert.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/cert/cert.go -------------------------------------------------------------------------------- /crypto/crypto.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/crypto.go -------------------------------------------------------------------------------- /crypto/pgp/crypto_pgp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/pgp/crypto_pgp.go -------------------------------------------------------------------------------- /crypto/sss/sss.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/sss/sss.go -------------------------------------------------------------------------------- /crypto/sss/sss_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/sss/sss_test.go -------------------------------------------------------------------------------- /crypto/threshold/dsa/dsa.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/threshold/dsa/dsa.go -------------------------------------------------------------------------------- /crypto/threshold/dsa/dsa_core.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/threshold/dsa/dsa_core.go -------------------------------------------------------------------------------- /crypto/threshold/dsa/dsa_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/threshold/dsa/dsa_test.go -------------------------------------------------------------------------------- /crypto/threshold/dsa/test.pkcs8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/threshold/dsa/test.pkcs8 -------------------------------------------------------------------------------- /crypto/threshold/dsa/test_utils/test_utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/threshold/dsa/test_utils/test_utils.go -------------------------------------------------------------------------------- /crypto/threshold/ecdsa/ecdsa.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/threshold/ecdsa/ecdsa.go -------------------------------------------------------------------------------- /crypto/threshold/ecdsa/ecdsa_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/threshold/ecdsa/ecdsa_test.go -------------------------------------------------------------------------------- /crypto/threshold/rsa/rsa.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/threshold/rsa/rsa.go -------------------------------------------------------------------------------- /crypto/threshold/rsa/rsa_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/threshold/rsa/rsa_test.go -------------------------------------------------------------------------------- /crypto/threshold/rsa/test.pkcs8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/threshold/rsa/test.pkcs8 -------------------------------------------------------------------------------- /crypto/threshold/threhold.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/crypto/threshold/threhold.go -------------------------------------------------------------------------------- /docs/bftkv.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/bftkv.pdf -------------------------------------------------------------------------------- /docs/design.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/design.md -------------------------------------------------------------------------------- /docs/http_api.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/http_api.md -------------------------------------------------------------------------------- /docs/images/clique.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/images/clique.png -------------------------------------------------------------------------------- /docs/images/failureDetectionInBFTKV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/images/failureDetectionInBFTKV.png -------------------------------------------------------------------------------- /docs/images/failureDetectionInQuorum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/images/failureDetectionInQuorum.png -------------------------------------------------------------------------------- /docs/images/quorumAccept.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/images/quorumAccept.png -------------------------------------------------------------------------------- /docs/images/quorumNodeStates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/images/quorumNodeStates.png -------------------------------------------------------------------------------- /docs/images/revokeOnRead.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/images/revokeOnRead.gif -------------------------------------------------------------------------------- /docs/images/trustGraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/images/trustGraph.png -------------------------------------------------------------------------------- /docs/images/write.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/images/write.gif -------------------------------------------------------------------------------- /docs/notes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/notes.md -------------------------------------------------------------------------------- /docs/tests.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tests.md -------------------------------------------------------------------------------- /docs/tex/abstract.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/abstract.tex -------------------------------------------------------------------------------- /docs/tex/ack.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/ack.tex -------------------------------------------------------------------------------- /docs/tex/algo.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/algo.tex -------------------------------------------------------------------------------- /docs/tex/analysis.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/analysis.tex -------------------------------------------------------------------------------- /docs/tex/application.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/application.tex -------------------------------------------------------------------------------- /docs/tex/background.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/background.tex -------------------------------------------------------------------------------- /docs/tex/bftkv.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/bftkv.tex -------------------------------------------------------------------------------- /docs/tex/bftkv_eabs.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/bftkv_eabs.tex -------------------------------------------------------------------------------- /docs/tex/conclusion.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/conclusion.tex -------------------------------------------------------------------------------- /docs/tex/intro.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/intro.tex -------------------------------------------------------------------------------- /docs/tex/method.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/method.tex -------------------------------------------------------------------------------- /docs/tex/protocol.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/protocol.tex -------------------------------------------------------------------------------- /docs/tex/ref.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/ref.tex -------------------------------------------------------------------------------- /docs/tex/tpa.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/docs/tex/tpa.tex -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/go.sum -------------------------------------------------------------------------------- /node/graph/graph.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/node/graph/graph.go -------------------------------------------------------------------------------- /node/graph/graph_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/node/graph/graph_test.go -------------------------------------------------------------------------------- /node/node.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/node/node.go -------------------------------------------------------------------------------- /packet/packet.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/packet/packet.go -------------------------------------------------------------------------------- /protocol/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/client.go -------------------------------------------------------------------------------- /protocol/dist_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/dist_test.go -------------------------------------------------------------------------------- /protocol/mal_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/mal_test.go -------------------------------------------------------------------------------- /protocol/malclient_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/malclient_test.go -------------------------------------------------------------------------------- /protocol/malserver_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/malserver_test.go -------------------------------------------------------------------------------- /protocol/malstorage_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/malstorage_test.go -------------------------------------------------------------------------------- /protocol/protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/protocol.go -------------------------------------------------------------------------------- /protocol/revoke_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/revoke_test.go -------------------------------------------------------------------------------- /protocol/roaming_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/roaming_test.go -------------------------------------------------------------------------------- /protocol/rw_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/rw_test.go -------------------------------------------------------------------------------- /protocol/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/server.go -------------------------------------------------------------------------------- /protocol/server_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/server_test.go -------------------------------------------------------------------------------- /protocol/test_utils/test_utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/protocol/test_utils/test_utils.go -------------------------------------------------------------------------------- /quorum/quorum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/quorum/quorum.go -------------------------------------------------------------------------------- /quorum/wotqs/wotqs.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/quorum/wotqs/wotqs.go -------------------------------------------------------------------------------- /scripts/check_gpg.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/scripts/check_gpg.sh -------------------------------------------------------------------------------- /scripts/clique.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/scripts/clique.sh -------------------------------------------------------------------------------- /scripts/gen.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/scripts/gen.sh -------------------------------------------------------------------------------- /scripts/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/scripts/run.sh -------------------------------------------------------------------------------- /scripts/setup.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/scripts/setup.sh -------------------------------------------------------------------------------- /scripts/sign.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/scripts/sign.sh -------------------------------------------------------------------------------- /scripts/test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/scripts/test.go -------------------------------------------------------------------------------- /scripts/test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/scripts/test.sh -------------------------------------------------------------------------------- /scripts/trust.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/scripts/trust.sh -------------------------------------------------------------------------------- /storage/leveldb/leveldb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/storage/leveldb/leveldb.go -------------------------------------------------------------------------------- /storage/plain/plain.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/storage/plain/plain.go -------------------------------------------------------------------------------- /storage/storage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/storage/storage.go -------------------------------------------------------------------------------- /transport/http-visual/http-visual.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/transport/http-visual/http-visual.go -------------------------------------------------------------------------------- /transport/http/http.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/transport/http/http.go -------------------------------------------------------------------------------- /transport/http/malhttp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/transport/http/malhttp.go -------------------------------------------------------------------------------- /transport/maltransport.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/transport/maltransport.go -------------------------------------------------------------------------------- /transport/transport.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/transport/transport.go -------------------------------------------------------------------------------- /visual/README.md: -------------------------------------------------------------------------------- 1 | # BFTKV-visual 2 | -------------------------------------------------------------------------------- /visual/css/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/visual/css/style.css -------------------------------------------------------------------------------- /visual/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/visual/index.html -------------------------------------------------------------------------------- /visual/js/cytoscape-dagre.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/visual/js/cytoscape-dagre.js -------------------------------------------------------------------------------- /visual/js/cytoscape.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/visual/js/cytoscape.js -------------------------------------------------------------------------------- /visual/js/dagre.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/visual/js/dagre.min.js -------------------------------------------------------------------------------- /visual/js/displayGraph.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yahoo/bftkv/HEAD/visual/js/displayGraph.js --------------------------------------------------------------------------------