github.com/tendermint/tmlibs@v0.9.0/db/remotedb/grpcdb/example_test.go (about) 1 package grpcdb_test 2 3 import ( 4 "bytes" 5 "context" 6 "log" 7 8 grpcdb "github.com/tendermint/tmlibs/db/remotedb/grpcdb" 9 protodb "github.com/tendermint/tmlibs/db/remotedb/proto" 10 ) 11 12 func Example() { 13 addr := ":8998" 14 cert := "server.crt" 15 key := "server.key" 16 go func() { 17 if err := grpcdb.ListenAndServe(addr, cert, key); err != nil { 18 log.Fatalf("BindServer: %v", err) 19 } 20 }() 21 22 client, err := grpcdb.NewClient(addr, cert) 23 if err != nil { 24 log.Fatalf("Failed to create grpcDB client: %v", err) 25 } 26 27 ctx := context.Background() 28 // 1. Initialize the DB 29 in := &protodb.Init{ 30 Type: "leveldb", 31 Name: "grpc-uno-test", 32 Dir: ".", 33 } 34 if _, err := client.Init(ctx, in); err != nil { 35 log.Fatalf("Init error: %v", err) 36 } 37 38 // 2. Now it can be used! 39 query1 := &protodb.Entity{Key: []byte("Project"), Value: []byte("Tmlibs-on-gRPC")} 40 if _, err := client.SetSync(ctx, query1); err != nil { 41 log.Fatalf("SetSync err: %v", err) 42 } 43 44 query2 := &protodb.Entity{Key: []byte("Project")} 45 read, err := client.Get(ctx, query2) 46 if err != nil { 47 log.Fatalf("Get err: %v", err) 48 } 49 if g, w := read.Value, []byte("Tmlibs-on-gRPC"); !bytes.Equal(g, w) { 50 log.Fatalf("got= (%q ==> % X)\nwant=(%q ==> % X)", g, g, w, w) 51 } 52 }