Commit Graph

6575 Commits

Author SHA1 Message Date
2cca5a7a4c Implement TLS/SSL 2018-05-07 23:16:06 +02:00
bf16d6453c Address PR comments 2018-05-07 22:12:26 +02:00
5d12e1eb46 remotedb: a client package implementing the db.DB interface
Simplified the abstractions to remotedb, a package that
allows clients to use whatever database they can in client
code without having to switch out their code e.g
```go
client, err := remotedb.NewInsecure(":9888")
...
// Just like they'd initialize locally
in := &remotedb.Init{
  Name: "test-remote-db",
  Type: "leveldb",
  Dir: "/tmp/dbs",
}

if err := client.InitRemote(in); err != nil {
    log.Fatalf("Failed to initialize the database")
}

v1 := client.Get(k1)
client.Set(k9, dog)

for itr := client.Iterator(a1, z1); itr.Valid(); itr.Next() {
  k, v := itr.Key(), itr.Value()
  dom := itr.Domain()
  ...
}
```
2018-05-07 22:00:38 +02:00
1260b75f63 grpcdb: Better readability for docs and constructor names
* Added some docs for NewClient, BindServer, *server.Init
* Security level clarified, whether "secure" for https
or "insecure" for non-https gRPC connections.
2018-05-07 22:00:38 +02:00
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)
  }
}
```
2018-05-07 22:00:33 +02:00
aefb6c58b6 Merge pull request #87 from tendermint/bucky/fix-ed-gen
fix ed25519 Generate
2018-05-07 10:52:46 -04:00
ad837a8183 fix ed25519 Generate 2018-05-05 19:17:21 -04:00
ab9881471a [tm-bench] give user ability to change rpc function (#91)
Closes #17
2018-05-04 16:35:39 +04:00
8b5c692a6a different way to get stats (#90)
Refs #62
2018-05-04 16:13:42 +04:00
603d173b87 Changed tm-bench output to json (#83)
* Changed output to json

* Added -output-format parameter (issue #40)

* remove leftover debug message
2018-05-03 13:08:19 +04:00
64408a4041 Merge pull request #1528 from tendermint/release/v0.19.2
Release/v0.19.2
v0.19.2
2018-04-30 18:28:38 -04:00
cae31157b1 fix lint v0.19.2-rc0 2018-04-30 18:23:02 -04:00
66c2b60324 version and changelog 2018-04-30 16:06:45 -04:00
e2e2127365 Merge pull request #1519 from tendermint/bucky/p2p-cleanup
Cleanup P2P
2018-04-30 15:54:04 -04:00
f395b82f73 node: remove commented out trustMetric 2018-04-30 15:59:05 -04:00
47557f868a create addrbook even if pex=false. fixes #1525 2018-04-30 08:31:03 -04:00
b6c062c451 fixes from review 2018-04-30 08:19:19 -04:00
12fc396101 Split CMD's param on space (#1523)
This is to avoid "ERROR: unknown flag: --proxy_app dummy" message when running "docker-compose up"
2018-04-29 17:35:10 +03:00
c195772de1 p2p: small lint 2018-04-28 21:17:28 -04:00
d3c4f746a7 spec: abci notes. closes #1257 2018-04-28 21:12:25 -04:00
fae94a44a2 p2p/pex: some addrbook fixes
* fix before/after in isBad()
* allow multiple IPs per ID even if ID isOld
2018-04-28 20:09:02 -04:00
3a30ee75b9 minor fixes 2018-04-28 17:27:51 -04:00
3498b676a6 update spec and addrbook.go 2018-04-28 17:14:58 -04:00
6157c700dd forgot errors file 2018-04-28 16:15:30 -04:00
c90bf77566 rpc: add n_peers to /net_info 2018-04-28 16:09:18 -04:00
6805ddf1b8 p2p: change some logs from Error to Debug. #1476 2018-04-28 16:00:45 -04:00
2761861b6b p2p: MinNumOutboundPeers. Closes #1501 2018-04-28 15:52:05 -04:00
64569b15e5 fix build and test 2018-04-28 15:39:09 -04:00
0450e35d67 some comments 2018-04-28 15:19:33 -04:00
268055e549 node: remove dup code from rebase 2018-04-28 15:04:37 -04:00
aaa81092e7 p2p: some comments and a log line 2018-04-28 15:01:33 -04:00
3ee1d7909e p2p: explicit netaddress errors 2018-04-28 14:48:51 -04:00
32268a8135 limit maxPexMessageSize based on maxAddressSize 2018-04-28 14:41:36 -04:00
f645187122 spec: pex update 2018-04-28 13:11:32 -04:00
40c79235c0 p2p: dont require minor versions to match in handshake 2018-04-28 13:09:17 -04:00
c23909eecf p2p/pex: minor cleanup and comments 2018-04-28 13:08:44 -04:00
936d1a0e68 some notes about the p2p layer 2018-04-28 11:35:09 -04:00
0cbbb61962 minor cleanup 2018-04-28 01:02:39 -04:00
fa66694f2e Merge branch 'develop' into fix-persistent-first 2018-04-28 00:34:03 -04:00
d92def4b60 version bump 2018-04-28 00:06:05 -04:00
26f633ed48 Merge pull request #1514 from tendermint/release/v0.19.1
Release/v0.19.1
v0.19.1
2018-04-27 23:36:15 -04:00
79bfbebfff rpc: docs/comments 2018-04-27 23:19:40 -04:00
f33da8817a rpc: lower_case peer_round_states, use a list, add the node_address 2018-04-27 23:00:09 -04:00
ffe81a0206 changelog and version 2018-04-27 12:35:21 -04:00
0e00154fcc Merge branch 'master' into develop 2018-04-27 12:23:12 -04:00
1ab89e6cbf update changelog 2018-04-27 12:23:00 -04:00
14cff484f1 Merge pull request #1440 from tendermint/1428-remove-wal-light
[config] remove wal_light setting
2018-04-27 12:06:51 -04:00
25cee8827a Merge branch 'develop' into 1428-remove-wal-light 2018-04-27 12:06:08 -04:00
65ebbccb74 Add GoAmino DeepCopy() benchmark for RoundState 2018-04-27 11:55:45 -04:00
1188dfe7ee Merge pull request #1511 from tendermint/bucky/rpc-fixes
Various RPC fixes
2018-04-27 11:45:46 -04:00