diff --git a/.github/workflows/linkchecker.yml b/.github/workflows/linkchecker.yml new file mode 100644 index 000000000000..c78daa396f45 --- /dev/null +++ b/.github/workflows/linkchecker.yml @@ -0,0 +1,11 @@ +name: Check links +on: [pull_request] +jobs: + link-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Link Checker + uses: peter-evans/link-checker@v1 + with: + args: -v -r * \ No newline at end of file diff --git a/docs/architecture/adr-009-evidence-module.md b/docs/architecture/adr-009-evidence-module.md index b7d0fdc49a5f..8ef5d6e5cdd6 100644 --- a/docs/architecture/adr-009-evidence-module.md +++ b/docs/architecture/adr-009-evidence-module.md @@ -179,4 +179,4 @@ due to the inability to introduce the new evidence type's corresponding handler - [ICS](https://github.com/cosmos/ics) - [IBC Architecture](https://github.com/cosmos/ics/blob/master/ibc/1_IBC_ARCHITECTURE.md) -- [Tendermint Fork Accountability](https://github.com/tendermint/tendermint/blob/master/docs/spec/consensus/fork-accountability.md) +- [Tendermint Fork Accountability](https://github.com/tendermint/spec/blob/7b3138e69490f410768d9b1ffc7a17abc23ea397/spec/consensus/fork-accountability.md) diff --git a/docs/core/store.md b/docs/core/store.md index ee93f49e9332..35b3d0f2a2e1 100644 --- a/docs/core/store.md +++ b/docs/core/store.md @@ -150,6 +150,8 @@ The default implementation of `KVStore` and `CommitKVStore` used in `baseapp` is - Iteration efficiently returns the sorted elements within the range. - Each tree version is immutable and can be retrieved even after a commit (depending on the pruning settings). +The documentation on the IAVL Tree is located [here](https://github.com/tendermint/iavl/blob/f9d4b446a226948ed19286354f0d433a887cc4a3/docs/overview.md). + ### `DbAdapter` Store `dbadapter.Store` is a adapter for `dbm.DB` making it fulfilling the `KVStore` interface. diff --git a/docs/spec/README.md b/docs/spec/README.md index 2dd2321be23c..b66a024ab196 100644 --- a/docs/spec/README.md +++ b/docs/spec/README.md @@ -23,4 +23,4 @@ Go the [module directory](../../x/README.md) ## Tendermint For details on the underlying blockchain and p2p protocols, see -the [Tendermint specification](https://github.com/tendermint/tendermint/tree/master/docs/spec). +the [Tendermint specification](https://github.com/tendermint/spec/tree/master/spec). diff --git a/go.sum b/go.sum index e83a49d31f82..cc5d9b873f77 100644 --- a/go.sum +++ b/go.sum @@ -107,6 +107,7 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= @@ -132,6 +133,7 @@ github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d h1:Z+RDyXzjKE0i2sTjZ/b1uxiGtPhFy34Ou/Tk0qwN0kM= @@ -154,8 +156,6 @@ github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDe github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mattn/go-isatty v0.0.10 h1:qxFzApOv4WsAL965uUPIsXzAKCZxN2p9UqdhFS4ZW10= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11 h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGeM= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= @@ -206,7 +206,9 @@ github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -316,8 +318,6 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be h1:QAcqgptGM8IQBC9K/RC4o+O9YmqEm0diQn9QmZw/0mU= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= diff --git a/x/README.md b/x/README.md index a37fcfc31cf5..e123223f4a80 100644 --- a/x/README.md +++ b/x/README.md @@ -7,15 +7,15 @@ parent: Here are some production-grade modules that can be used in Cosmos SDK applications, along with their respective documentation: -- [Auth](./x/auth/spec/README.md) - Authentication of accounts and transactions for Cosmos SDK application. -- [Bank](./x/bank/spec/README.md) - Token transfer functionalities. -- [Governance](./x/gov/spec/README.md) - On-chain proposals and voting. -- [Staking](./x/staking/spec/README.md) - Proof-of-stake layer for public blockchains. -- [Slashing](./x/slashing/spec/README.md) - Validator punishment mechanisms. -- [Distribution](./x/distribution/spec/README.md) - Fee distribution, and staking token provision distribution. -- [Crisis](./x/crisis/spec/README.md) - Halting the blockchain under certain circumstances (e.g. if an invariant is broken). -- [Mint](./x/mint/spec/README.md) - Creation of new units of staking token. -- [Params](./x/params/spec/README.md) - Globally available parameter store. -- [Supply](./x/supply/spec/README.md) - Total token supply of the chain. +- [Auth](auth/spec/README.md) - Authentication of accounts and transactions for Cosmos SDK application. +- [Bank](bank/spec/README.md) - Token transfer functionalities. +- [Governance](gov/spec/README.md) - On-chain proposals and voting. +- [Staking](staking/spec/README.md) - Proof-of-stake layer for public blockchains. +- [Slashing](slashing/spec/README.md) - Validator punishment mechanisms. +- [Distribution](distribution/spec/README.md) - Fee distribution, and staking token provision distribution. +- [Crisis](crisis/spec/README.md) - Halting the blockchain under certain circumstances (e.g. if an invariant is broken). +- [Mint](mint/spec/README.md) - Creation of new units of staking token. +- [Params](params/spec/README.md) - Globally available parameter store. +- [Supply](supply/spec/README.md) - Total token supply of the chain. To learn more about the process of building modules, visit the [building modules reference documentation](../docs/building-modules/README.md). diff --git a/x/auth/spec/03_types.md b/x/auth/spec/03_types.md index 62c1d186c4e1..e71be190733f 100644 --- a/x/auth/spec/03_types.md +++ b/x/auth/spec/03_types.md @@ -4,7 +4,7 @@ order: 4 # Types -Besides accounts (specified in [State](state.md)), the types exposed by the auth module +Besides accounts (specified in [State](02_state.md)), the types exposed by the auth module are `StdFee`, the combination of an amount and gas limit, `StdSignature`, the combination of an optional public key and a cryptographic signature as a byte array, `StdTx`, a struct which implements the `sdk.Tx` interface using `StdFee` and `StdSignature`, and diff --git a/x/staking/spec/01_state.md b/x/staking/spec/01_state.md index 11b63d8dfc32..3ee6c7992ebf 100644 --- a/x/staking/spec/01_state.md +++ b/x/staking/spec/01_state.md @@ -33,7 +33,7 @@ Validators can have one of three statuses - `Unbonded`: The validator is not in the active set. They cannot sign blocks and do not earn rewards. They can receive delegations. - `Bonded`": Once the validator receives sufficient bonded tokens they automtically join the - active set during [`EndBlock`](./04_end_block.md#validator-set-changes) and their status is updated to `Bonded`. + active set during [`EndBlock`](./05_end_block.md#validator-set-changes) and their status is updated to `Bonded`. They are signing blocks and receiving rewards. They can receive further delegations. They can be slashed for misbehavior. Delegators to this validator who unbond their delegation must wait the duration of the UnbondingTime, a chain-specific param. during which time @@ -73,7 +73,7 @@ ConsensusPower is validator.Tokens/10^6. Note that all validators where `LastValidatorsPower` is a special index that provides a historical list of the last-block's bonded validators. This index remains constant during a block but -is updated during the validator set update process which takes place in [`EndBlock`](./04_end_block.md). +is updated during the validator set update process which takes place in [`EndBlock`](./05_end_block.md). Each validator's state is stored in a `Validator` struct: diff --git a/x/staking/spec/02_state_transitions.md b/x/staking/spec/02_state_transitions.md index 8aaa9c36443a..c2766aa43b79 100644 --- a/x/staking/spec/02_state_transitions.md +++ b/x/staking/spec/02_state_transitions.md @@ -11,7 +11,7 @@ This document describes the state transition operations pertaining to: 3. [Slashing](./02_state_transitions.md#slashing) ## Validators -State transitions in validators are performed on every [`EndBlock`](./04_end_block.md#validator-set-changes) +State transitions in validators are performed on every [`EndBlock`](./05_end_block.md#validator-set-changes) in order to check for changes in the active `ValidatorSet`. ### Unbonded to Bonded diff --git a/x/staking/spec/03_messages.md b/x/staking/spec/03_messages.md index d7b98b1aabab..bd9f21e2ceb0 100644 --- a/x/staking/spec/03_messages.md +++ b/x/staking/spec/03_messages.md @@ -4,7 +4,7 @@ order: 3 # Messages -In this section we describe the processing of the staking messages and the corresponding updates to the state. All created/modified state objects specified by each message are defined within the [state](./02_state.md) section. +In this section we describe the processing of the staking messages and the corresponding updates to the state. All created/modified state objects specified by each message are defined within the [state](./02_state_transitions.md) section. ## MsgCreateValidator