2017-09-15 19:31:37 -04:00
|
|
|
# ADR 3: Must an ABCI-app have an RPC server?
|
2017-06-21 15:28:36 +04:00
|
|
|
|
|
|
|
## 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
|