diff --git a/.github/workflows/linkchecker.yml b/.github/workflows/linkchecker.yml index fb846d6a74..91242e5992 100644 --- a/.github/workflows/linkchecker.yml +++ b/.github/workflows/linkchecker.yml @@ -8,7 +8,7 @@ jobs: - uses: actions/checkout@v3.5.2 # Checks the status of hyperlinks in *.md files in docs/ - - uses: gaurav-nelson/github-action-markdown-link-check@1.0.13 + - uses: gaurav-nelson/github-action-markdown-link-check@1.0.15 with: folder-path: "docs" file-path: './README.md' \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 6f9355be52..0da9141620 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,7 +28,7 @@ RUN go mod tidy RUN make install # Get Hermes build -FROM informalsystems/hermes:1.2.0 AS hermes-builder +FROM ghcr.io/informalsystems/hermes:1.4.1 AS hermes-builder FROM --platform=linux/amd64 fedora:36 RUN dnf update -y diff --git a/Dockerfile.gaia b/Dockerfile.gaia index 47b7f3707f..196f7dfa74 100644 --- a/Dockerfile.gaia +++ b/Dockerfile.gaia @@ -61,7 +61,7 @@ WORKDIR /interchain-security RUN make install # Get Hermes build -FROM informalsystems/hermes:1.2.0 AS hermes-builder +FROM ghcr.io/informalsystems/hermes:1.4.1 AS hermes-builder FROM --platform=linux/amd64 fedora:36 RUN dnf update -y diff --git a/docs/docs/consumer-development/onboarding.md b/docs/docs/consumer-development/onboarding.md index 37c2718e8c..faa2969e63 100644 --- a/docs/docs/consumer-development/onboarding.md +++ b/docs/docs/consumer-development/onboarding.md @@ -11,7 +11,7 @@ Additionally, you can check the [testnet repo](https://github.com/cosmos/testnet ## 1. Complete testing & integration - [ ] test integration with gaia -- [ ] test your protocol with supported relayer versions (minimum hermes 1.3) +- [ ] test your protocol with supported relayer versions (minimum hermes 1.4.1) - [ ] reach out to the ICS team if you are facing issues ## 2. Create an Onboarding Repository diff --git a/docs/docs/frequently-asked-questions.md b/docs/docs/frequently-asked-questions.md index 6e2f4957b5..6cbf364a36 100644 --- a/docs/docs/frequently-asked-questions.md +++ b/docs/docs/frequently-asked-questions.md @@ -5,6 +5,7 @@ slug: /faq --- ## What is the meaning of Validator Set Replication? + VSR simply means that the same validator set is used to secure both the provider and consumer chains. VSR is ensured through ICS protocol which keeps consumers up to date with the validator set of the provider. ## What even is a consumer chain? @@ -14,6 +15,7 @@ Consumer chain is blockchain operated by the same validator operators as the pro Consumer chains are run on infrastructure (virtual or physical machines) distinct from the provider, have their own configurations and operating requirements. ## What happens to consumer if provider is down? + In case the provider chain halts or experiences difficulties the consumer chain will keep operating - the provider chain and consumer chains represent different networks, which only share the validator set. The consumer chain will not halt if the provider halts because they represent distinct networks and distinct infrastructures. Provider chain liveness does not impact consumer chain liveness. @@ -25,31 +27,37 @@ Steps to recover from this scenario and steps to "release" the validators from t At the very least, the consumer chain could replace the validator set, remove the ICS module and perform a genesis restart. The impact of this on the IBC clients and connections is currently under careful consideration. ## What happens to provider if consumer is down? + Consumer chains do not impact the provider chain. The ICS protocol is concerned only with validator set replication and the only communication that the provider requires from the consumer is information about validator activity (essentially keeping the provider informed about slash events). ## Can I run the provider and consumer chains on the same machine? + Yes, but you should favor running them in separate environments so failure of one machine does not impact your whole operation. ## Can the consumer chain have its own token? + As any other cosmos-sdk chain the consumer chain can issue its own token, manage inflation parameters and use them to pay gas fees. ## How are Tx fees paid on consumer? + The consumer chain operates as any other cosmos-sdk chain. The ICS protocol does not impact the normal chain operations. ## Are there any restrictions the consumer chains need to abide by? + No. Consumer chains are free to choose how they wish to operate, which modules to include, use CosmWASM in a permissioned or a permissionless way. The only thing that separates consumer chains from standalone chains is that they share their validator set with the provider chain. ## What's in it for the validators and stakers? + The consumer chains sends a portion of its fees and inflation as reward to the provider chain as defined by `consumer_redistribution_fraction`. The rewards are distributed (sent to the provider) every `blocks_per_distribution_transmission`. :::note `consumer_redistribution_fraction` and `blocks_per_distribution_transmission` are parameters defined in the `ConsumerAdditionProposal` used to create the consumer chain. These parameters can be changed via consumer chain governance. ::: - ## Can the consumer chain have its own governance? + **Yes.** In that case the validators are not necessarily part of the governance structure. Instead, their place in governance is replaced by "representatives" (governors). The representatives do not need to run validators, they simply represent the interests of a particular interest group on the consumer chain. @@ -58,13 +66,14 @@ Validators can also be representatives but representatives are not required to r This feature discerns between validator operators (infrastructure) and governance representatives which further democratizes the ecosystem. This also reduces the pressure on validators to be involved in on-chain governance. - ## Can validators opt-out of replicated security? + At present, the validators cannot opt-out of validating consumer chains. There are multiple opt-out mechanisms under active research. ## How does Equivocation Governance Slashing work? + To avoid potential attacks directed at provider chain validators, a new mechanism was introduced: When a validator double-signs on the consumer chain, a special type of slash packet is relayed to the provider chain. The provider will store information about the double signing validator and allow a governance proposal to be submitted. @@ -75,19 +84,25 @@ An equivocation proposal cannot be submitted for a validator that did not double ::: ## Can Consumer Chains perform Software Upgrades? + Consumer chains are standalone chains, in the sense that they can run arbitrary logic and use any modules they want (ie CosmWASM). Consumer chain upgrades are unlikely to impact the provider chain, as long as there are no changes to the ICS module. ## How can I connect to the testnets? + Check out the [Joining Replicated Security testnet](./validators/joining-testnet.md) section. ## How do I start using ICS? + To become a consumer chain use this [checklist](./consumer-development/onboarding.md) and check the [App integration section](./consumer-development/app-integration.md) ## Which relayers are supported? + Currently supported versions: -- Hermes 1.3 + +- Hermes 1.4.1 ## How does key delegation work in ICS? + You can check the [Key Assignment Guide](./features/key-assignment.md) for specific instructions.