mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-25 06:42:16 +00:00
* not related to linter: remove obsolete constants: - `Insecure` and `Secure` and type `Security` are not used anywhere * not related to linter: update example - NewInsecure was deleted; change example to NewRemoteDB * address: Binds to all network interfaces (gosec): - bind to localhost instead of 0.0.0.0 - regenerate test key and cert for this purpose (was valid for ::) and otherwise we would see: transport: authentication handshake failed: x509: certificate is valid for ::, not 127.0.0.1\" (used https://github.com/google/keytransparency/blob/master/scripts/gen_server_keys.sh to regenerate certs) * use sha256 in tests instead of md5; time difference is negligible * nolint usage of math/rand in test and add comment on its import - crypto/rand is slower and we do not need sth more secure in tests * enable linter in circle-ci * another nolint math/rand in test * replace another occurrence of md5 * consistent comment about importing math/rand
38 lines
1.2 KiB
Go
38 lines
1.2 KiB
Go
/*
|
|
remotedb is a package for connecting to distributed Tendermint db.DB
|
|
instances. The purpose is to detach difficult deployments such as
|
|
CLevelDB that requires gcc or perhaps for databases that require
|
|
custom configurations such as extra disk space. It also eases
|
|
the burden and cost of deployment of dependencies for databases
|
|
to be used by Tendermint developers. Most importantly it is built
|
|
over the high performant gRPC transport.
|
|
|
|
remotedb's RemoteDB implements db.DB so can be used normally
|
|
like other databases. One just has to explicitly connect to the
|
|
remote database with a client setup such as:
|
|
|
|
client, err := remotedb.NewRemoteDB(addr, cert)
|
|
// Make sure to invoke InitRemote!
|
|
if err := client.InitRemote(&remotedb.Init{Name: "test-remote-db", Type: "leveldb"}); err != nil {
|
|
log.Fatalf("Failed to initialize the remote db")
|
|
}
|
|
|
|
client.Set(key1, value)
|
|
gv1 := client.SetSync(k2, v2)
|
|
|
|
client.Delete(k1)
|
|
gv2 := client.Get(k1)
|
|
|
|
for itr := client.Iterator(k1, k9); itr.Valid(); itr.Next() {
|
|
ik, iv := itr.Key(), itr.Value()
|
|
ds, de := itr.Domain()
|
|
}
|
|
|
|
stats := client.Stats()
|
|
|
|
if !client.Has(dk1) {
|
|
client.SetSync(dk1, dv1)
|
|
}
|
|
*/
|
|
package remotedb
|