You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
950 B

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