Author | SHA1 | Message | Date |
---|---|---|---|
Callum Waters |
a620e5fd96
|
evidence: cap evidence to an absolute number (#4780)
The number of evidence that can be committed in a single block is capped by a new evidence parameter called MaxNum |
5 years ago |
Marko |
3fedc43c0a
|
proto: regenerate proto (#4730)
- regenerate proto using docker image - on proto breakage a different compiler is used to generate some more helper functions, on master the same one os not used, reverting back to the one used on master to undo further confusion till proto-breakage is merged Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> |
5 years ago |
Marko |
af887adad9
|
proto: bring over proto types & msgs (#4718)
Signed-off-by: Marko Baricevic <marbar3778@yahoo.com> |
5 years ago |
Ethan Buchman | 468be0f8d6 | mv remotedb, proto, grpcdb all under db/remotedb | 7 years ago |
Christopher Goes |
0b6d101c77
|
Implement batch operations | 7 years ago |
Christopher Goes |
bf16d6453c
|
Address PR comments | 7 years ago |
Emmanuel T Odeke |
11bee6194a
|
DB as a service
Fixes https://github.com/tendermint/tendermint/issues/1162 Databases as a service! Can now access Databases as a remote service via gRPC for performance and easy deployment. The caveat is that each service is stateful in regards to the DB i.e. each unique service uses only one unique DB but nonetheless multiple clients can access it. A full standalone example ```go package main import ( "bytes" "context" "log" grpcdb "github.com/tendermint/tmlibs/grpcdb" protodb "github.com/tendermint/tmlibs/proto" ) func main() { addr := ":8998" go func() { if err := grpcdb.BindRemoteDBServer(addr); err != nil { log.Fatalf("BindRemoteDBServer: %v", err) } }() client, err := grpcdb.NewClient(addr, false) if err != nil { log.Fatalf("Failed to create grpcDB client: %v", err) } ctx := context.Background() // 1. Initialize the DB in := &protodb.Init{ Type: "leveldb", Name: "grpc-uno-test", Dir: ".", } if _, err := client.Init(ctx, in); err != nil { log.Fatalf("Init error: %v", err) } // 2. Now it can be used! query1 := &protodb.Entity{Key: []byte("Project"), Value: []byte("Tmlibs-on-gRPC")} if _, err := client.SetSync(ctx, query1); err != nil { log.Fatalf("SetSync err: %v", err) } query2 := &protodb.Entity{Key: []byte("Project")} read, err := client.Get(ctx, query2) if err != nil { log.Fatalf("Get err: %v", err) } if g, w := read.Value, []byte("Tmlibs-on-gRPC"); !bytes.Equal(g, w) { log.Fatalf("got= (%q ==> % X)\nwant=(%q ==> % X)", g, g, w, w) } } ``` |
7 years ago |