|
|
@ -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 |