From c3304eebf84fe063db05eb619b1a821dc8726eec Mon Sep 17 00:00:00 2001 From: Andy Nogueira Date: Mon, 25 Mar 2024 14:04:44 -0400 Subject: [PATCH] docs: ADR-102 - RPC Companion (#658) [Rendered](https://github.com/cometbft/cometbft/blob/andy/adr-102-standalone-rpc/docs/architecture/adr-102-rpc-companion.md) closes: #592 This is a WIP document for the RPC Companion ADR --------- Co-authored-by: Jasmina Malicevic Co-authored-by: Lasaro Co-authored-by: Daniel Co-authored-by: Sergio Mena --- .../improvements/658-adr-102-rpc-companion.md | 2 + docs/references/architecture/README.md | 6 +- .../architecture/adr-102-rpc-companion.md | 352 ++++++++++++++++++ .../images/adr-102-architecture.jpeg | Bin 0 -> 123506 bytes 4 files changed, 357 insertions(+), 3 deletions(-) create mode 100644 .changelog/unreleased/improvements/658-adr-102-rpc-companion.md create mode 100644 docs/references/architecture/adr-102-rpc-companion.md create mode 100644 docs/references/architecture/images/adr-102-architecture.jpeg diff --git a/.changelog/unreleased/improvements/658-adr-102-rpc-companion.md b/.changelog/unreleased/improvements/658-adr-102-rpc-companion.md new file mode 100644 index 00000000000..d75828fa662 --- /dev/null +++ b/.changelog/unreleased/improvements/658-adr-102-rpc-companion.md @@ -0,0 +1,2 @@ +- `[docs/references]` Added ADR-102: RPC Companion. + ([\#658](https://github.com/cometbft/cometbft/pull/658)) diff --git a/docs/references/architecture/README.md b/docs/references/architecture/README.md index b82bc5b1d1e..343cf866f12 100644 --- a/docs/references/architecture/README.md +++ b/docs/references/architecture/README.md @@ -42,13 +42,13 @@ numbering our ADRs from 100 onwards. ### Proposed -- [ADR-103: Protobuf definition versioning](adr-103-proto-versioning.md) -- [ADR-105: Refactor list of senders in mempool](adr-105-refactor-mempool-senders.md) - ### Accepted - [ADR-101: Data companion pull API](adr-101-data-companion-pull-api.md) +- [ADR-102: RPC Companion](adr-102-rpc-companion.md) +- [ADR-103: Protobuf definition versioning](adr-103-proto-versioning.md) - [ADR-104: State sync from local snapshot](adr-104-out-of-band-state-sync.md) +- [ADR-105: Refactor list of senders in mempool](adr-105-refactor-mempool-senders.md) - [ADR-107: Rename protobuf versions of 0.x releases to pre-v1 betas](adr-107-betaize-proto-versions.md) - [ADR-109: Reduce CometBFT Go API Surface Area](adr-109-reduce-go-api-surface.md) - [ADR-111: `nop` Mempool](adr-111-nop-mempool.md) diff --git a/docs/references/architecture/adr-102-rpc-companion.md b/docs/references/architecture/adr-102-rpc-companion.md new file mode 100644 index 00000000000..866cd64501c --- /dev/null +++ b/docs/references/architecture/adr-102-rpc-companion.md @@ -0,0 +1,352 @@ +# ADR-102: RPC Companion + +## Changelog + +- 2022-03-27: First draft (@andynog) +- 2024-03-19: Update ADR information (@andynog) +- 2024-03-25: Final updates before publishing (@andynog) + +## Status + +Accepted + +[Tracking issue](https://github.com/cometbft/cometbft/issues/707) + +## Context + +This solution can run as a sidecar, a separate process that runs concurrently with the full node. However, the RPC +Companion is optional, meaning that the full node will still provide RPC services that can be queried if operators +don't want to run an RPC Companion service. + +This ADR provides a reference implementation of a system that can be used to offload queryable data from a CometBFT +full node to a database and offer a service exposing the same JSON-RPC methods on an endpoint as the regular JSON-RPC +methods of a CometBFT node endpoint. This makes it easier for integrators of RPC clients, such as client libraries and +applications, to switch to this RPC Companion with as little effort as possible. + +This architecture also makes it possible to scale horizontally the querying capacity of a full node by running multiple +copies of the RPC Companion server instances that can be behind a scalable load-balancer (e.g., Cloudflare), which makes +it possible to serve the data in a more scalable way. + +One of the benefits of utilizing an RPC Companion is that it enables data indexing on external storage, leading to +improved performance compared to the internal indexer of CometBFT. The internal indexer of CometBFT has certain +limitations and might not be suitable for specific application use cases. + +## Alternative Approaches + +The Data Companion Pull API concept, identified as [[ADR-101]](adr-101-data-companion-pull-api.md), is a novel idea. As it gains popularity and acceptance, +users are expected to develop their own versions of it to meet their specific requirements. The RPC Companion is the +initial implementation of a Data Companion that can serve as a model for others to follow. + +## Decision + +TBD + +## Detailed Design + +### Requirements + +The target audience for this solution are operators and integrators that want to alleviate the load on their nodes by offloading +the queryable data requests to the **RPC Companion**. + +This solution shall meet the following requirements in order to provide real benefits to these users. + +The **RPC Companion** solution shall: + +1. Provide an **[Ingest Service](#ingest-service)** implemented as a data companion that can pull data from a CometBFT node and store it on +its own storage (database) +2. Provide a storage ([Database](#database)) that can persist the data using a [database schema](#database-schema) that +can store information that was fetched from the full node. +3. Do not force breaking changes to the existing RPC. +4. Ensure the responses returned by the RPC Companion v1 endpoint is wire compatible with the existing CometBFT +JSON-RPC endpoint. +5. Implement tests to verify backwards compatibility. + +### [RPC Endpoint](#rpc-endpoint) + +The RPC Companion endpoint will be the same as the CometBFT JSON-RPC endpoint but with a `/v1` appended to it. The RPC +Companion endpoint can be hosted on a different URL and might also use a different port than the default CometBFT RPC +port (e.g. `26657`) as shown below. + +For example, suppose these are the URLs for each RPC endpoint: + +CometBFT RPC -> `http://cosmos.host:26657` + +RPC Companion -> `http://rpc-companion.host:8080/v1` + +To make a request for a `block` at height `5` using the CometBFT JSON-RPC endpoint: + + curl --header "Content-Type: application/json" --request POST --data '{"method": "block", "params": ["5"], "id": 1}' http://cosmos.host:26657 + +To make the same request to the RPC Companion endpoint: + + curl --header "Content-Type: application/json" --request POST --data '{"method": "block", "params": ["5"], "id": 1}' http://rpc-companion.host:8080/v1 + +> Note that only the URL and port changes between these two `curl` commands + +The RPC Companion will accept JSON-RPC requests, the same way as the CometBFT JSON-RPC endpoint does. + +The RPC Companion endpoint methods listed in the following table should be implemented first as they are straightforward +and less complex. + +| **JSON-RPC method** | **JSON-RPC Parameters** | **Description** | **Notes** | +|---------------------|----------------------------------------|-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `abci_info` | | Get information about the application | This method will return the same response structure as the equivalent CometBFT method. It will return the latest information stored in its database that was retrieved from the full node. | +| `block` | * height | Get block at a specified height | This method will return the same response structure as the equivalent CometBFT method. The data retrieved from the companion database for a particular block will have to be properly serialized into the `block` struct in order to be returned as a response. | +| `block_by_hash` | * hash | Get block by its hash | This method will return the same response structure as the equivalent CometBFT method. | +| `block_results` | * height | Get block results at a specified height | This method will return the same response structure as the equivalent CometBFT method. The data retrieved from the companion database for a particular block result will have to be properly serialized into the `ResultsBlockResults` struct in order to be returned as a response. | +| `blockchain` | * minHeight
* maxHeight | Get blocks in a specified height range | This method will return the same response structure as the equivalent CometBFT method. The data retrieved from the companion database will include one or more blocks. | +| `commit` | * height | Get commit results at a specified height | This method will return the same response structure as the equivalent CometBFT method. | +| `consensus_params` | * height | Get consensus parameters at a specified height | This method will return the same response structure as the equivalent CometBFT method. | +| `header` | * height | Get header at a specified height | This method will return the same response structure as the equivalent CometBFT method. | +| `header_by_hash` | * hash | Get header by its hash | This method will return the same response structure as the equivalent CometBFT method. | +| `health` | | Get node health | This method basically only returns an empty response. This can be used to test if the server RPC is up. While this on CometBFT is used to return a response if the full node is up, when using the companion service this will return an `OK` status if the companion service is up. | +| `tx` | * hash
* prove | Get a transaction by its hash | This method will return the same response structure as the equivalent CometBFT method. | +| `validators` | * height
* page
* per_page | Get validator set at a specified height | This method will return the same response structure as the equivalent CometBFT method. | + +The following methods can also be implemented, but might require some additional effort and complexity to be implemented. +These are mostly the ones that provide `search` and `query` functionalities. These methods will proxy the request to the +full node. Since they are not dependent on data retrieval from the RPC Companion database they should just act as proxies +to the full node. In the future, it might be possible to implement these methods in the RPC Companion if the database +stores all the information required to be indexed and the queries specified in the JSON-RPC methods can be translated into +SQL statements to return the queried data from the database. + +| **JSON-RPC method** | **JSON-RPC Parameters** | **Description** | **Notes** | +|---------------------|----------------------------------------------------------------------|----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `abci_query` | * path
* data
* height
* prove | Query information from the application | This method will return the same response structure as the equivalent CometBFT method. The RPC companion service will have to implement a proper abci parameter to sql query translation. | +| `block_search` | * query
* page
* per_page
* order_by | Query information about a block | This method will return the same response structure as the equivalent CometBFT method. The RPC companion service will have to implement a proper query parameter to sql query translation. | +| `tx_search` | * query
* page
* per_page
* prove
* order_by | Query information about transactions | This method will return the same response structure as the equivalent CometBFT method. The RPC companion service will have to implement a proper query parameter to sql query translation. | + +The following methods will proxy the requests through the RPC Companion endpoint to the full node to ensure that clients don't need to implement a routing logic for methods that would not be available in the RPC Companion endpoint. + +> The `/broadcast_tx_*` methods might need some additional logic for proxying since some of them have different asynchronicity patterns. + +| **JSON-RPC method** | *JSON-RPC Parameters** | **Description** | **Notes** | Proxy | +|------------------------|------------------------|-------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------| +| `broadcast_evidence` | * evidence | Broadcast evidence of the misbehavior | The evidence parameter is in JSON format | yes | +| `broadcast_tx_async` | * tx | Broadcast a transaction | Returns right away with no response | yes | +| `broadcast_tx_sync` | * tx | Broadcast a transaction | Returns with the response from CheckTx | yes | +| `broadcast_tx_commit` | * tx | Broadcast a transaction | Returns with the responses from CheckTx and DeliverTx | yes | +| `check_tx` | * tx | Check a transaction | Checks a transaction without executing it | yes | +| `consensus_state` | | Gets consensus state | The consensus state will not be stored in the RPC companion database so it should proxy the request to the full node | yes | +| `dump_consensus_state` | | Gets the full consensus state | The consensus state will not be stored in the RPC companion database so it should proxy the request to the full node | yes | +| `genesis` | | Gets the genesis information | The RPC companion service can proxy the genesis request to the full node. If there are use cases that serving the genesis from the RPC companion service (no proxy) is desirable then it can be implemented as method | yes | +| `net_info` | | Gets network information | The request should proxy to the full node since the RPC companion database will not store network information | yes | +| `unconfirmed_txs` | * limit | Gets the list of unconfirmed transactions | The request should proxy to the full node since the RPC companion database will not store unconfirmed transactions information | yes | +| `num_unconfirmed_txs` | | Gets data about unconfirmed transactions | The request should proxy to the full node since the RPC companion database will not store unconfirmed transactions information | yes | +| `status` | | Gets node status | The request should proxy to the full node since the RPC companion database will not store node status information | yes | + +> NOTE: The RPC Companion should not implement logic to store data in its database that can modify state in the blockchain such as +the `broadcast_tx_*` methods. These requests will proxy to the full node as outlined above. + +### High-level architecture + +![High-level architecture](images/adr-102-architecture.jpeg) + +This diagram shows all the required components for a full RPC Companion solution. The solution implementation contains +many parts and each one is described below: + +### [Ingest Service](#ingest-service) + +The **Ingest Service** pulls the data from the full node JSON-RPC endpoint and stores the information retrieved in +the RPC Companion database. + +The **Ingest Service** should run as a "singleton" which means only one instance of this service +should be fetching the information from the CometBFT full node. + +Currently, the Data Companion Pull APIs offer gRPC services to retrieve `Block` and `BlockResults`. These can be used +to pull the data from the server. + +The **Ingest Service** can influence the pruning of `Blocks` and `BlockResults` on the full node via a [pruning service](https://docs.cometbft.com/v1.0/explanation/data-companion/pruning). +Once the Ingest Service pulls the data from the full node and is able to process it, and it gets an acknowledgement from +the database that the data was inserted, the **Ingest Service** can communicate with the full node notifying it that +a specific height has been processed and set the processed height as the `retain height` on the full node signaling +this way to the node that this height can be pruned. + +If the **Ingest Service** becomes unavailable (e.g. stops), then it should resume synchronization with the full node when it is back online. +The **Ingest Service** should query the full node for the last `retain height` and the **Ingest Service** should request +and process all the heights missing on the database until it catches up with the full node latest height. + +In case the **Ingest Service** becomes unavailable for a long time and there are several heights to be synchronized, it is +important for the **Ingest Service** to do it in a throttled way (in short intervals) to prevent the server to become overloaded. + +### [Database](#database) + +The database stores the data retrieved from the full node and provides this data for the RPC server instance. + +It is proposed that the relational database [PostgreSQL](https://www.postgresql.org/) be used in order to support +the [RPC server instance](#rpc-instance) scalability + +Also, using a relational database will also provide more flexibility when implementing a future RPC Companion `/v2` +endpoint that can return data in different forms and database indexes might also be leveraged in order to boost the +query responses performance. + +The data needs to be available both for the Ingest Service (database writes) and the RPC server instance (database reads) +and these services might be running from different machines so an embedded database is not recommended in this case +since accessing the data remotely might not be optimal for an embedded key-value database. Also since the RPC might have +many server instances (or processes) running that will need to retrieve data concurrently it is recommended to use +a well-known robust database engine that can support such a load. + +Also, PostgreSQL supports ACID transactions, which is important to provide more guarantees that the data was successfully +inserted in the database and that an acknowledgement can be sent back to the Ingest Service to notify the +full node to prune the inserted data. Supporting ACID transactions can also ensure that there are no partial reads +(return data that was partially written to the database), avoiding that readers access incomplete or inconsistent data. + +#### [Database Schema](#database-schema) + +Implementing this solution comes with a challenge - designing a database schema that can facilitate return responses +equivalent to the existing CometBFT JSON-RPC endpoint. However, the schema should also be flexible enough to return +customized responses in the future. + +Since the RPC Companion stores the information in a relational database, there are opportunities to better structure and +normalize the data in the future. For example, here is the schema definition for a table to persist a `Block` data +structure in the PostgreSQL database: + +```sql +-- TABLE: comet.v1.block + +DROP TABLE IF EXISTS comet.v1.block CASCADE; + +CREATE TABLE comet.v1.block +( + height comet.uint64 NOT NULL, + data bytea NOT NULL, + CONSTRAINT block_pkey PRIMARY KEY (height) +); +``` + +It's important to add a version to the table (e.g `v1`) to ensure schema changes can be supported + +> Note that only the height is stored as structure data. More data field can be normalized and stored in individual fields, +but trying to normalize the CometBFT data structures into a database schema should be only performed if there's a need to +do so (e.g. search for information and using the field as a query parameter). + +##### Data types + +This solution utilizes PostgreSQL's built-in data types to implement a data schema in the database. By using a relational +database, it is possible to normalize the data structures, which can lead to significant storage savings. However, +it's important to note that normalizing the schema too much can make it complex to retrieve a specific dataset due to +the need for data joins. As a result, it's crucial to exercise caution when over-normalizing the schema. + +Also, when normalizing, it is important to ensure the referential integrity is not violated since this can cause issues +to the clients consuming the data. + +In order to accurately ensure the database is storing the full node data types properly, the database implements +custom data types (`domains` in PostgreSQL). + +For example, PostgreSQL doesn't have an unsigned `uint8`, `uint32`, `uint64` datatype, therefore in order to support +this in the database, you can use a `domain`, which is a base type with additional constraints: + +```sql +-- DOMAIN: comet.uint8 + +DO $$ BEGIN +CREATE DOMAIN comet.uint8 AS numeric; + +ALTER DOMAIN comet.uint8 + ADD CONSTRAINT value_max CHECK (VALUE <= '255'::numeric); + +ALTER DOMAIN comet.uint8 + ADD CONSTRAINT value_positive CHECK (VALUE >= 0::numeric); +EXCEPTION + WHEN duplicate_object THEN null; +END $$; + +-- DOMAIN: comet.uint32 + +DO $$ BEGIN +CREATE DOMAIN comet.uint32 AS numeric; + +ALTER DOMAIN comet.uint32 + ADD CONSTRAINT value_max CHECK (VALUE <= '4294967295'::numeric); + +ALTER DOMAIN comet.uint32 + ADD CONSTRAINT value_positive CHECK (VALUE >= 0::numeric); +EXCEPTION + WHEN duplicate_object THEN null; +END $$; + +-- DOMAIN: comet.uint64 + +DO $$ BEGIN +CREATE DOMAIN comet.uint64 + AS numeric; + +ALTER DOMAIN comet.uint64 OWNER TO postgres; + +ALTER DOMAIN comet.uint64 + ADD CONSTRAINT value_max CHECK (VALUE <= '18446744073709551615'::numeric); + +ALTER DOMAIN comet.uint64 + ADD CONSTRAINT value_positive CHECK (VALUE >= 0::numeric); +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +``` + +##### Schema migration + +Another point to consider is when the data structures change across CometBFT releases. + +A potential solution for this scenario is to find a way in the database that can support "versioning" of data structures. +For example, let's assume there's a `Block` structure, let's call it `v1`. If in the future there's a need to modify +this structure that is not compatible with the previous data structure, then the database would support a `v2` schema +for `ResultBlock` and an `index` table could determine the criteria on which data structure should be used for inserting +or querying data. + +### [RPC server instance](#rpc-instance) + +The **RPC server instance** is a node that runs the RPC API process for the data companion. This server instance provides +an RPC API (`/v1`) with the same JSON-RPC methods of the full node JSON-RPC endpoint. The RPC Companion service will expose +the same JSON-RPC methods and will accept the same request types and return wire compatible responses (should match the +same response as the equivalent full node JSON-RPC endpoint). + +The **RPC server instance**, when serving a particular request, retrieves the required data from the database in order to +fulfill the request. The data should be serialized in a way that makes it wire compatible with the CometBFT JSON-RPC endpoint. + +It is possible to integrate a caching layer as part of the RPC server instance solution. Caching can be useful for queries +that are idempotent, which means they produce the same result regardless of how many times they are executed. There are +various caching solutions available, either off-the-shelf or custom-built, that can be added to the RPC server instance +logic. However, implementing a caching solution is not within the scope of this ADR. + +The RPC service endpoints from the server instances should be exposed through an external load-balancer service such +as Cloudflare or AWS ELB, or a server running its own load balancer mechanism (e.g. nginx). + +The RPC clients should make requests to the **RPC Companion** server instances through this load balancer for scalability +reasons. + +The **RPC server instance** will also implement logic to proxy requests to the full node. It should properly handle +the proxy requests and responses from the full node. + +The **RPC Companion** endpoint should support the `https` protocol in order to support a secure endpoint access. It's recommended that +the `https` support is provided by the load balancer. + +## Consequences + +### Positive + +- The **RPC Companion** can be more scalable and and consequently provide a higher query throughput. +- Less backpressure on the full node that is running consensus. +- Possibility for future additional custom endpoints (e.g a `/v2`) with additional methods not available in the `/v1` endpoint. +- Can act as a basis for users to create better and faster indexers solutions. +- Possibility to turn off indexing on the full node if the data can be offloaded to an external data storage that supports +indexing. + +### Negative + +- Additional infrastructure complexity to set up and maintain. +- Additional infrastructure costs if using a load balanced setup for the RPC service endpoint (multiple nodes) and a fail-over +database setup (master/replica) + +### Neutral + +- Optional feature, users will only use it if their use case requires such solution +- No privacy / security issues should arise since the data returned by the **RPC Companion** will be the same +as the current RPC. + +## References + +- [ADR-101: Data Companions Pull API](adr-101-data-companion-pull-api.md) +- [Data Companion Guide - CometBFT documentation](https://docs.cometbft.com/v1.0/explanation/data-companion/) +- [RPC Companion - Reference Implementation](https://github.com/cometbft/rpc-companion) + + diff --git a/docs/references/architecture/images/adr-102-architecture.jpeg b/docs/references/architecture/images/adr-102-architecture.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..dd664f45c3c08cac7839a735e12bb3a606f20d52 GIT binary patch literal 123506 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