github.com/tendermint/tmlibs@v0.9.0/db/remotedb/doc.go (about)

     1  /*
     2  remotedb is a package for connecting to distributed Tendermint db.DB
     3  instances. The purpose is to detach difficult deployments such as
     4  CLevelDB that requires gcc or perhaps for databases that require
     5  custom configurations such as extra disk space. It also eases
     6  the burden and cost of deployment of dependencies for databases
     7  to be used by Tendermint developers. Most importantly it is built
     8  over the high performant gRPC transport.
     9  
    10  remotedb's RemoteDB implements db.DB so can be used normally
    11  like other databases. One just has to explicitly connect to the
    12  remote database with a client setup such as:
    13  
    14  	client, err := remotedb.NewInsecure(addr)
    15  	// Make sure to invoke InitRemote!
    16  	if err := client.InitRemote(&remotedb.Init{Name: "test-remote-db", Type: "leveldb"}); err != nil {
    17  	    log.Fatalf("Failed to initialize the remote db")
    18  	}
    19  
    20  	client.Set(key1, value)
    21  	gv1 := client.SetSync(k2, v2)
    22  
    23  	client.Delete(k1)
    24  	gv2 := client.Get(k1)
    25  
    26  	for itr := client.Iterator(k1, k9); itr.Valid(); itr.Next() {
    27  	    ik, iv := itr.Key(), itr.Value()
    28  	    ds, de := itr.Domain()
    29  	}
    30  
    31  	stats := client.Stats()
    32  
    33  	if !client.Has(dk1) {
    34  	      client.SetSync(dk1, dv1)
    35  	}
    36  */
    37  package remotedb