cosmos-sdk/client/rest/README.md
Emmanuel Odeke d4ab79ece0
client/rest, cmd/baseserver: started a basecoin REST client
```shell
$ go get -u -v github.com/tendermint/basecoin/cmd/baseserver
$ baseserver init
$ baseserver serve
```
A server that can be ran by default on port 8998
otherwise one can specify the port using flag `--port` like this:
```shell
$ baseserver serve --port 9999
```
to serve it on port 9999, accessible at http://localhost:9999

Implemented:
- [X] /keys POST -- generate a new key
- [X] /keys GET  -- list all keys
- [X] /keys/{name}  DELETE-- delete a named key
- [X] /keys/{name}  GET -- get a named key
- [X] /keys/{name}  POST, PUT -- update a named key
- [X] /sign POST -- sign a transaction
- [X] /build/send POST -- send money from one actor to another. However,
  still needs testing and verification of output
- [X] /tx POST -- post a transaction to the blockchain. However, still
  needs testing and verification of output

This base code to get the handlers starters was adapted from:
* https://github.com/tendermint/go-crypto/blob/master/keys/server
* https://github.com/tendermint/basecoin/blob/unstable/client/commands/proxy/root.go

Updates #186
2017-07-29 04:12:24 -06:00

1011 B

basecoin-server

Proxy server

This package exposes access to key management i.e

  • creating
  • listing
  • updating
  • deleting

The HTTP handlers can be embedded in a larger server that does things like signing transactions and posting them to a Tendermint chain (which requires domain-knowledge of the transaction types and is out of scope of this generic app).

Key Management

We expose a couple of methods for safely managing your keychain. If you are embedding this in a larger server, you will typically want to mount all these paths /keys.

HTTP Method Route Description
POST / Requires a name and passphrase to create a brand new key
GET / Retrieves the list of all available key names, along with their public key and address
GET /{name} Updates the passphrase for the given key. It requires you to correctly provide the current passphrase, as well as a new one.
DELETE /{name} Permanently delete this private key. It requires you to correctly provide the current passphrase.