diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index d85b3d86e..21adde0b0 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -46,7 +46,7 @@ jobs: - 'go.mod' - 'go.sum' src: - - '!((**.md)|(**/*.md)|(.github/**))' + - '!((**.md)|(**/*.md)|(.github/**)|(docs/**)|(vue/**))' docs: - '**.md' - '**/*.md' diff --git a/README-DEV.md b/README-DEV.md index 869ca5fed..adef63a11 100644 --- a/README-DEV.md +++ b/README-DEV.md @@ -130,7 +130,7 @@ Have a look at [How To](docs/how-to.md) and [transactions](docs/transactions.md) Start a local pool as described above. -Every node exposes a REST API at `http://:1317` (see ). +Every node exposes a REST API at `http://:1317` (see ). Have a look at [transactions](docs/transactions.md) for a full list of REST endpoints. diff --git a/README.md b/README.md index 18a51495d..55b28bc9e 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ In order to send write transactions to the ledger you need: - A network of Tendermint-based validator nodes (Validators and Observers) maintaining the ledger. - Every validator node (`dcld` binary) runs DC Ledger application code (based on Cosmos SDK) implementing the use cases. - See the proposed deployment in [deployment](docs/deployment.png) and [deployment-detailed](docs/deployment-detailed.png). +- See recommended design for DCL MainNet deployment on AWS in [aws deployment](./docs/deployment-design-aws.md) ### Node Types @@ -52,9 +53,9 @@ In order to send write transactions to the ledger you need: - **Validator Node (VN)**: a full node participating in consensus protocol (ordering transactions). - **Sentry Node:** a full nodes that doesn't participate in consensus and wraps the validator node representing it for the rest of the network as one of the ways for DDoS protection. - - **Private Sentry Node:** connected to other Validators or Sentry nodes only; should not be accessed by clients. - - **Public Sentry Node:** clients and other nodes can access it; basically the same as an Observer node. - - **Observer Node (ON):** a full node that doesn't participate in consensus. Should be used to receive read/write requests from the clients. Technically can be a Public Sentry node. + - **Private Sentry Node:** a full node to connect other Validator or Sentry nodes only; should not be accessed by clients. + - **Public Sentry Node:** a full node to connect other external full nodes (possibly observer nodes). + - **Observer Node (ON):** a full node that doesn't participate in consensus. Should be used to receive read/write requests from the clients. - **Light Client Proxy Node**: doesn't contain a full replication of data. Can be used as a proxy to untrusted Full nodes for single-value query requests sent via CLI or Tendermint RPC. It will verify all state proofs automatically. - **Seed Node**: provides a list of peers which a node can connect to. @@ -64,6 +65,7 @@ See - [Deployment](docs/deployment.png) - [Deployment-detailed](docs/deployment-detailed.png). - [Deployment Recommendations](https://github.com/zigbee-alliance/distributed-compliance-ledger/wiki/DCL-MainNet-Deployment) +- [Deployment Recommendations for AWS](./docs/deployment-design-aws.md) - - [Run Light Client Proxy](docs/running-light-client-proxy.md) @@ -121,7 +123,7 @@ See [Run Light Client Proxy](docs/running-light-client-proxy.md) for details how - **There are no state proofs in REST, so REST queries should be sent to trusted Validator or Observer nodes only.** - OpenAPI specification: . -- Any running node exposes a REST API at port `1317`. See . +- Any running node exposes a REST API at port `1317`. See . - See [transactions](docs/transactions.md) for a full list of endpoints. - REST HTTP(S) queries can be directly used for read requests. See [How to read from the Ledger](docs/transactions.md#how-to-read-from-the-ledger). @@ -132,14 +134,14 @@ See [Run Light Client Proxy](docs/running-light-client-proxy.md) for details how ### gRPC - **There are no state proofs in gRPC, so gRPC queries should be sent to trusted Validator or Observer nodes only.** -- Any running node exposes a REST API at port `9090`. See . +- Any running node exposes a REST API at port `9090`. See . - A client code can be generated for all popular languages from the proto files [proto](proto), see . - The generated client code can be used for read and write requests, i.e. generation and signing of transactions See [How to read from the Ledger](docs/transactions.md#how-to-read-from-the-ledger) and [How to write to the Ledger](docs/transactions.md#how-to-write-to-the-ledger) for details. ### Tendermint RPC and Light Client -- Tendermint RPC is exposed by every running node at port `26657`. See . +- Tendermint RPC is exposed by every running node at port `26657`. See . - Tendermint RPC supports state proofs. Tendermint's Light Client library can be used to verify the state proofs. So, if Light Client API is used, then it's possible to communicate with non-trusted nodes. - Please note, that multi-value queries don't have state proofs support and should be sent to trusted nodes only. @@ -194,7 +196,7 @@ See [Run local pool](README-DEV.md#run-local-pool) section in [README-DEV.md](RE ### Deploy a persistent pool of nodes -A recommended way for deployment and client connection: [diagram](docs/deployment.png) and [diagram-detailed](docs/deployment-detailed.png). +A recommended way for deployment and client connection: [diagram](docs/deployment.png), [diagram-detailed](docs/deployment-detailed.png) and [diagram-aws](docs/deployment-aws.png). One can either deploy its own network of validator nodes or join one of the persistent DC Ledger Networks. @@ -237,6 +239,7 @@ See [Pool Upgrade](docs/pool-upgrade.md) and [Pool Upgrade How To](docs/pool-upg - [Deployment Pattern](docs/deployment.png) - [Deployment Pattern Detailed](docs/deployment-detailed.png) - [Deployment Recommendations](https://github.com/zigbee-alliance/distributed-compliance-ledger/wiki/DCL-MainNet-Deployment) +- [Deployment Recommendations for AWS](./docs/deployment-design-aws.md) - [Running Node in a new network](docs/running-node.md) - [Running Genesis Validator Node](docs/advanced/running-genesis-node.md) - [Running Validator Node](docs/advanced/running-validator-node.md) diff --git a/docs/deployment-aws.png b/docs/deployment-aws.png new file mode 100644 index 000000000..102869644 Binary files /dev/null and b/docs/deployment-aws.png differ diff --git a/docs/deployment-design-aws.md b/docs/deployment-design-aws.md new file mode 100644 index 000000000..6bce3926f --- /dev/null +++ b/docs/deployment-design-aws.md @@ -0,0 +1,210 @@ +# Recommended design for DCL MainNet deployment on AWS +## AWS deployment diagram +![AWS deployment diagram](./deployment-aws.png) + +## Recommended IaC structure and frameworks + +- [Ansible](https://www.ansible.com) - provision of the following node types: + - `Genesis Validator` - Validator Node created at the beginning of a network + - `Non-genesis Validator` - Validator Node joined a network after a significant time period + - `Private Sentry` - Full Node to connect other(external) Validator Nodes ([Sentry Node Architecture](https://forum.cosmos.network/t/sentry-node-architecture-overview/454)) + - `Public Sentry` - Full Node to connect other(external) Full Nodes + - `Observer` - Full Node for serving gRPC / REST / RPC clients + - `Seed` - Full Node for sharing IP addresses of `Public Sentry` Nodes ([Seed Node](https://docs.tendermint.com/master/nodes/#seed-nodes)) + + > **_Note:_** Most of the nodes should enable `state sync` to avoid catching up with a network from scratch. Refer to [running-node-in-existing-netwrok.md](./running-node-in-existing-network.md) for details. + +- [Terraform](https://www.terraform.io) - deploy an AWS infrastructure from one or more of the following modules: + - Validator - `Validator` node instance + - Private Sentries - Cluster of `Private Sentry` node instances + - Public Sentries - Cluster of `Public Sentry` node instances with a collocated `Seed` node + - Observers - Cluster of `Observer` node instances + - Load Balancers - AWS Network Load Balancers for load balancing between `Observer` clusters + + +## Node specific AWS and DCL configurations + +### Validator Node: +- Tendermint: + - [config.toml] + - [p2p] + - `pex` = false + - `persistent_peers` = [`Private Sentry` nodes with private IPs] + - `addr_book_strict` = false + - [statesync] (only for `Non-genesis Validator` nodes) + - `enable` = true + - `rpc_servers` = [existing `Genesis Validator` / `Sentry` nodes' RPC endpoints] + - `trust_height` = trust-height + - `trust_hash` = trust-hash + - [app.toml] + - [state-sync] + - `snapshot-interval` = snapshot-interval + - `snapshot-keep-recent` = snapshot-keep-recent + +- AWS: + - Instance type = EC2 instance + - Network: + - Private IPv4 = IPv4 address + - Public IPv4 = not assigned + - Security: + - inbound: + - allow `Tendermint p2p` port from `Private Sentry` Nodes' VPC CIDR + - allow `RPC` port from `Private Sentry` Nodes' VPC CIDR + - outbound: + - all + + +### Private Sentry Node: +- Tendermint: + - [config.toml] + - [p2p] + - `pex` = true + - `persistent_peers` = [`Validator` node with private IP + other orgs' validator/sentry nodes with public IPs] + - `private_peer_ids` = [`Validator` node id] + - `unconditional_peers` = [`Validator` node id] + - `addr_book_strict` = false + - [statesync] + - `enable` = true + - `rpc_servers` = [`Validator` node's RPC endpoint] + - `trust_height` = trust-height + - `trust_hash` = trust-hash + - [app.toml] + - [state-sync] + - `snapshot-interval` = snapshot-interval + - `snapshot-keep-recent` = snapshot-keep-recent +- AWS: + - Instance type = EC2 instance + - Network: + - Private IPv4 = IPv4 address + - Public IPv4 = Elastic IP + - Security: + - inbound: + - allow `Tendermint p2p` port for whitelist IPs + - allow `RPC` port from `Observer` Nodes' VPC CIDR + - allow `RPC` port from `Public Sentry` Nodes' VPC CIDR + - outbound: + - all + +### Observer Node: +- Tendermint: + - [config.toml] + - [p2p] + - `pex` = true + - `persistent_peers` = [`Private Sentry` nodes with private IPs] + - `addr_book_strict` = false + - [statesync] + - `enable` = true + - `rpc_servers` = [`Private Sentry` nodes' RPC endpoints] + - `trust_height` = trust-height + - `trust_hash` = trust-hash + - [app.toml] + - [api] + - `enable` = true +- AWS: + - Instance type = EC2 instance + - Network: + - Private IPv4 = IPv4 address + - Public IPv4 = not assigned + - Security: + - inbound: + - allow gRPC / REST / RPC ports from the same VPC CIDR + - outbound: + - all + +### Public Sentry Node: +- Tendermint: + - [config.toml] + - [p2p] + - `pex` = true + - `persistent_peers` = [`Private Sentry` nodes with private IPs] + - [statesync] + - `enable` = true + - `rpc_servers` = [`Private Sentry` nodes' RPC endpoints] + - `trust_height` = trust-height + - `trust_hash` = trust-hash + - [app.toml] + - [state-sync] + - `snapshot-interval` = snapshot-interval + - `snapshot-keep-recent` = snapshot-keep-recent +- AWS: + - Instance type = EC2 instance + - Network: + - Private IPv4 = IPv4 address + - Public IPv4 = Elastic IP + - Security: + - inbound: + - allow `Tendermint p2p` port from anywhere + - allow `Tendermint RPC` port from anywhere + - outbound: + - all + + +### Seed Node: +- Tendermint: + - [config.toml] + - [p2p] + - `pex` = true + - `seed_mode` = true + - `persistent_peers` = [`Public Sentry` nodes with public IP] + - [statesync] + - `enable` = true + - `rpc_servers` = [`Private Sentry` nodes' RPC endpoints] + - `trust_height` = trust-height + - `trust_hash` = trust-hash +- AWS: + - Instance type = EC2 instance + - Network: + - Private IPv4 = IPv4 address + - Public IPv4 = Elastic IP + - Public DNS = optional + - Security: + - inbound: + - allow `Tendermint p2p` port from everywhere + - outbound: + - all + +### Load Balancer: +- AWS: + - Instance type = Elastic Network Load Balancer + - Availability Zones = [availability zones of observer nodes from the same region] + - Network: + - Private IPv4 = IPv4 address + - Public IPv4 = not assigned + - Public DNS = assigned by AWS + + - Target groups: + - gRPC + - Registered targets = [observer nodes from all availability zones in the same region] + - Attributes: + - `Preserve client IP addresses` = disabled + - Health checks: + - protocol = TCP + - REST + - Registered targets = [observer nodes from all availability zones in the same region] + - Attributes: + - `Preserve client IP addresses` = disabled + - Health checks: + - protocol = TCP + - RPC + - Registered targets = [observer nodes from all availability zones the same region] + - Attributes: + - `Preserve client IP addresses` = disabled + - Health checks: + - protocol = TCP + + - Listeners: + - gRPC + - Protocol = TLS + - Forward to = gRPC target group + - Security policy = ELBSecurityPolicy-TLS13-1-2-2021-06 + - Default SSL/TLS certificate = CA signed TLS certificate + - REST + - Protocol = TLS + - Forward to = REST target group + - Security policy = ELBSecurityPolicy-TLS13-1-2-2021-06 + - Default SSL/TLS certificate = CA signed TLS certificate + - RPC + - Protocol = TLS + - Forward to = RPC target group + - Security policy = ELBSecurityPolicy-TLS13-1-2-2021-06 + - Default SSL/TLS certificate = CA signed TLS certificate \ No newline at end of file diff --git a/docs/design/benchmarking.md b/docs/design/benchmarking.md index f701074b5..207955e13 100644 --- a/docs/design/benchmarking.md +++ b/docs/design/benchmarking.md @@ -42,9 +42,9 @@ The following ones makes sense to track: ### Cosmos SDK metrics -Starting from `v0.40.0` Cosmos SDK provides [telemetry](https://docs.cosmos.network/master/core/telemetry.html) package as a server-side support for application performance and behavior explorations. +Starting from `v0.40.0` Cosmos SDK provides [telemetry](https://docs.cosmos.network/v0.44/core/telemetry.html) package as a server-side support for application performance and behavior explorations. -The following [metrics](https://docs.cosmos.network/master/core/telemetry.html#supported-metrics) make sense to track: +The following [metrics](https://docs.cosmos.network/v0.44/core/telemetry.html#supported-metrics) make sense to track: - `tx_count`: Total number of txs processed via DeliverTx (tx) - `tx_successful`: Total number of successful txs processed via DeliverTx  (tx) @@ -67,7 +67,7 @@ Notes: - For the moment it's not clear enough what production setup will look like, in particular: - number of validators - - type of external endpoints, options are [Cosmos SDK / Tendermint endpoints](https://docs.cosmos.network/master/core/grpc_rest.html) + - type of external endpoints, options are [Cosmos SDK / Tendermint endpoints](https://docs.cosmos.network/v0.44/core/grpc_rest.html) - type and number of proxies for validator-validator and client-validator connections Current assumptions for production: @@ -94,7 +94,7 @@ Current assumptions for production: **ToDo** define which client endpoints are considered in production -As long as CosmosSDK (Tendermint) provides multiple client [endpoints](https://docs.cosmos.network/master/core/grpc_rest.html) makes sense to benchmark all of them (separately and in a combination), in particular: +As long as CosmosSDK (Tendermint) provides multiple client [endpoints](https://docs.cosmos.network/v0.44/core/grpc_rest.html) makes sense to benchmark all of them (separately and in a combination), in particular: - http RPC - websocket RPC @@ -114,7 +114,7 @@ As long as CosmosSDK (Tendermint) provides multiple client [endpoints](https://d ## Load Generation Framework -As long as DCledger based on Cosmos SDK and Tendermint which provide standard HTTP/websocket RPC and REST [endpoints](https://docs.cosmos.network/master/core/grpc_rest.html) to perform both read & write txns generic production ready tools like [jMeter](https://jmeter.apache.org/), [Locust](https://locust.io/), [K6](https://k6.io/) may be used. +As long as DCledger based on Cosmos SDK and Tendermint which provide standard HTTP/websocket RPC and REST [endpoints](https://docs.cosmos.network/v0.44/core/grpc_rest.html) to perform both read & write txns generic production ready tools like [jMeter](https://jmeter.apache.org/), [Locust](https://locust.io/), [K6](https://k6.io/) may be used. [Locust](https://locust.io/) looks like the most easy-to-go option: diff --git a/docs/design/deployment-aws.drawio b/docs/design/deployment-aws.drawio new file mode 100644 index 000000000..a39809421 --- /dev/null +++ b/docs/design/deployment-aws.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/monitoring.md b/docs/monitoring.md index 03da22b30..4b3c5b1f0 100644 --- a/docs/monitoring.md +++ b/docs/monitoring.md @@ -5,7 +5,7 @@ As long as DCLedger is built on top of Cosmos SDK and Tendermint their monitoring abilities can be considered for DCLedger as well. * Starting from `v0.21.0` Tendermint provides Prometheus compatible [metrics](https://docs.tendermint.com/v0.34/tendermint-core/metrics.html). -* Starting from `v0.40.0` Cosmos SDK provides [telemetry](https://docs.cosmos.network/master/core/telemetry.html) package as a server-side support for application performance and behavior explorations. +* Starting from `v0.40.0` Cosmos SDK provides [telemetry](https://docs.cosmos.network/v0.44/core/telemetry.html) package as a server-side support for application performance and behavior explorations. ## Installation & Configuration diff --git a/docs/running-node-in-existing-network.md b/docs/running-node-in-existing-network.md index 0ba4c3cb0..b9e21437e 100644 --- a/docs/running-node-in-existing-network.md +++ b/docs/running-node-in-existing-network.md @@ -104,4 +104,4 @@ Possible options when adding Validator, Observer, Sentry or Seed nodes to existi - Probably error-prone (if at least one migration has a bug, catchup fails) * References: - - https://docs.cosmos.network/master/core/upgrade.html#syncing-a-full-node-to-an-upgraded-blockchain \ No newline at end of file + - https://docs.cosmos.network/v0.44/core/upgrade.html#syncing-a-full-node-to-an-upgraded-blockchain \ No newline at end of file diff --git a/docs/transactions.md b/docs/transactions.md index 9fe66aac6..86081b925 100644 --- a/docs/transactions.md +++ b/docs/transactions.md @@ -68,18 +68,18 @@ Please make sure that TLS is enabled in gRPC, REST or Light Client Proxy for sec - If there are no trusted Observer or Validator nodes to connect a CLI, then a [Light Client Proxy](running-light-client-proxy.md) can be used. - REST API - OpenAPI specification: . - - Any running node exposes a REST API at port `1317`. See . + - Any running node exposes a REST API at port `1317`. See . - See `REST API` section for every read request. - See [grpc/rest integration tests](../integration_tests/grpc_rest) as an example. - There are no state proofs in REST, so REST queries should be sent to trusted Validator or Observer nodes only. - gRPC - - Any running node exposes a REST API at port `9090`. See . + - Any running node exposes a REST API at port `9090`. See . - Generate a client code from the proto files [proto](../proto) for the client language (see ). - See [grpc/rest integration tests](../integration_tests/grpc_rest) as an example. - There are no state proofs in gRPC, so gRPC queries should be sent to trusted Validator or Observer nodes only. - Tendermint RPC - Tendermint RPC OpenAPI specification can be found in . - - Tendermint RPC is exposed by every running node at port `26657`. See . + - Tendermint RPC is exposed by every running node at port `26657`. See . - Tendermint RPC supports state proofs. Tendermint's Light Client library can be used to verify the state proofs. So, if Light Client API is used, then it's possible to communicate with non-trusted nodes. - Please note, that multi-value queries don't have state proofs support and should be sent to trusted nodes only. diff --git a/vue/README.md b/vue/README.md index b978c285d..42c9791e1 100644 --- a/vue/README.md +++ b/vue/README.md @@ -1,6 +1,6 @@ # App UI Template -[Vue.js](https://vuejs.org/)-based web app template for your Cosmos SDK blockchain. Use the template to quickly bootstrap your app. To learn more, check out the components in `@starport/vue` and the [Starport documentation](https://docs.starport.network/). +[Vue.js](https://vuejs.org/)-based web app template for your Cosmos SDK blockchain. Use the template to quickly bootstrap your app. To learn more, check out the components in `@starport/vue` and the [Starport documentation](https://docs.starport.com). ## Project setup