add rpc server proposal [ci skip]

This commit is contained in:
Anton Kaliaev 2017-06-21 15:28:36 +04:00
parent 742b5b705f
commit b893df3348
No known key found for this signature in database
GPG Key ID: 7B6881D965918214

34
docs/hidden/adr-003.md Normal file
View File

@ -0,0 +1,34 @@
# ADR 1: Must an ABCI-app have an RPC server?
## Context
ABCI-server could expose its own RPC-server and act as a proxy to Tendermint.
The idea was for the Tendermint RPC to just be a transparent proxy to the app.
Clients need to talk to Tendermint for proofs, unless we burden all app devs
with exposing Tendermint proof stuff. Also seems less complex to lock down one
server than two, but granted it makes querying a bit more kludgy since it needs
to be passed as a `Query`. Also, **having a very standard rpc interface means
the light-client can work with all apps and handle proofs**. The only
app-specific logic is decoding the binary data to a more readable form (eg.
json). This is a huge advantage for code-reuse and standardization.
## Decision
We dont expose an RPC server on any of our ABCI-apps.
## Status
accepted
## Consequences
### Positive
- Unified interface for all apps
### Negative
- `Query` interface
### Neutral