interchain-security

module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 25, 2023 License: Apache-2.0

README

Interchain Security

Go Report Card Security Rating Vulnerabilities Bugs Lines of Code Coverage

interchain-security houses the code for implementing Interchain Security. The repo is currently a WIP and targetting v1 of Interchain Security. For more details on the Interchain Security protocol, take a look at the specification.

CCV stands for cross chain validation and refers to the subset of Interchain Security related to the staking and slashing communication between the provider and consumer blockchains. The provider blockchain communicates staking changes to consumer blockchain(s), while the consumer blockchain may communicate slashing evidence to the provider blockchain.

The code for CCV is housed under x/ccv. The types folder contains types and related functions that are used by both provider and consumer chains, while the consumer module contains the code run by consumer chains and the provider module contains the code run by provider chain.

Instructions

Prerequisites

## For OSX or Linux

# go 1.18 (https://formulae.brew.sh/formula/go)
brew install go@1.18
# jq (optional, for testnet) (https://formulae.brew.sh/formula/jq)
brew install jq
# docker (optional, for integration tests, testnet) (https://docs.docker.com/get-docker/)

Installing and running binaries

# install interchain-security-pd and interchain-security-cd binaries
make install
# run provider
interchain-security-pd
# run consumer
interchain-security-cd
# (if the above fail, ensure ~/go/bin on $PATH)
export PATH=$PATH:$(go env GOPATH)/bin

Inspect the Makefile if curious.

Testing

See testing docs.

Learn more

Directories

Path Synopsis
app
params
Package params defines the simulation parameters in the gaia.
Package params defines the simulation parameters in the gaia.
cmd
legacy_ibc_testing
tests
e2e
testutil
e2e
keeper
Package keeper is a generated GoMock package.
Package keeper is a generated GoMock package.
simibc
simibc is a collection of utilities wrapping the ibc-go testing framework which make is easier to write test scenarios involving precise orders of packet and ack delivery and calls to BeginBlock and EndBlock.
simibc is a collection of utilities wrapping the ibc-go testing framework which make is easier to write test scenarios involving precise orders of packet and ack delivery and calls to BeginBlock and EndBlock.
x
ccv/consumer/types
Package types is a reverse proxy.
Package types is a reverse proxy.
ccv/democracy/distribution
Package distribution defines a "wrapper" module around the Cosmos SDK's native x/distribution module.
Package distribution defines a "wrapper" module around the Cosmos SDK's native x/distribution module.
ccv/democracy/governance
Package governance defines a "wrapper" module around the Cosmos SDK's native x/governance module.
Package governance defines a "wrapper" module around the Cosmos SDK's native x/governance module.
ccv/democracy/staking
Package staking defines a "wrapper" module around the Cosmos SDK's native x/staking module.
Package staking defines a "wrapper" module around the Cosmos SDK's native x/staking module.
ccv/provider/types
Package types is a reverse proxy.
Package types is a reverse proxy.
types Module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL