diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml new file mode 100644 index 000000000..26993168d --- /dev/null +++ b/.github/workflows/action.yml @@ -0,0 +1,10 @@ +name: Check Markdown links + +on: push + +jobs: + markdown-link-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - uses: gaurav-nelson/github-action-markdown-link-check@0.6.0 diff --git a/spec/README.md b/spec/README.md index a0a67f7b5..4ed12aef3 100644 --- a/spec/README.md +++ b/spec/README.md @@ -31,7 +31,7 @@ please submit them to our [bug bounty](https://tendermint.com/security)! - [Consensus Algorithm](./consensus/consensus.md) - [Creating a proposal](./consensus/creating-proposal.md) - [Time](./consensus/bft-time.md) -- [Light-Client](./consensus/light-client.md) +- [Light-Client](./consensus/light-client/README.md) ### P2P and Network Protocols diff --git a/spec/consensus/fork-accountability.md b/spec/consensus/fork-accountability.md deleted file mode 100644 index ea77fe87a..000000000 --- a/spec/consensus/fork-accountability.md +++ /dev/null @@ -1,3 +0,0 @@ -# Fork Accountability - MOVED! - -Fork Accountability has moved to [light-client](./light-client/accountability). diff --git a/spec/consensus/light-client.md b/spec/consensus/light-client.md deleted file mode 100644 index c3da2f79c..000000000 --- a/spec/consensus/light-client.md +++ /dev/null @@ -1,3 +0,0 @@ -# Light Client - MOVED! - -Light Client has moved to [light-client](./light-client). diff --git a/spec/consensus/readme.md b/spec/consensus/readme.md index 85e27074c..8bf4e68bd 100644 --- a/spec/consensus/readme.md +++ b/spec/consensus/readme.md @@ -23,7 +23,7 @@ Specification of the Tendermint consensus protocol. consensus state machine to recover from crashes. The protocol used to gossip consensus messages between peers, which is critical -for liveness, is described in the [reactors section](/spec/reactors/consensus). +for liveness, is described in the [reactors section](../reactors/consensus/consensus.md). There is also a [stale markdown description](consensus.md) of the consensus state machine (TODO update this). diff --git a/spec/p2p/node.md b/spec/p2p/node.md index 6d37eeb78..0bbcf0b5b 100644 --- a/spec/p2p/node.md +++ b/spec/p2p/node.md @@ -12,7 +12,8 @@ Seeds should operate full nodes with the PEX reactor in a "crawler" mode that continuously explores to validate the availability of peers. Seeds should only respond with some top percentile of the best peers it knows about. -See [the peer-exchange docs](https://github.com/tendermint/tendermint/blob/master/docs/spec/reactors/pex/pex.md)for details on peer quality. +See [the peer-exchange docs](https://github.com/tendermint/spec/blob/master/spec/reactors/pex/pex.md) for + details on peer quality. ## New Full Node diff --git a/spec/reactors/consensus/consensus.md b/spec/reactors/consensus/consensus.md index 55960874a..ff15af746 100644 --- a/spec/reactors/consensus/consensus.md +++ b/spec/reactors/consensus/consensus.md @@ -16,7 +16,8 @@ explained in a forthcoming document. For efficiency reasons, validators in Tendermint consensus protocol do not agree directly on the block as the block size is big, i.e., they don't embed the block inside `Proposal` and `VoteMessage`. Instead, they reach agreement on the `BlockID` (see `BlockID` definition in -[Blockchain](https://github.com/tendermint/tendermint/blob/master/docs/spec/blockchain/blockchain.md#blockid) section) that uniquely identifies each block. The block itself is +[Blockchain](https://github.com/tendermint/spec/blob/master/spec/blockchain/blockchain.md#blockid) section) +that uniquely identifies each block. The block itself is disseminated to validator processes using peer-to-peer gossiping protocol. It starts by having a proposer first splitting a block into a number of block parts, that are then gossiped between processes using `BlockPartMessage`. @@ -65,7 +66,9 @@ type Proposal struct { ## VoteMessage VoteMessage is sent to vote for some block (or to inform others that a process does not vote in the -current round). Vote is defined in the [Blockchain](https://github.com/tendermint/tendermint/blob/master/docs/spec/blockchain/blockchain.md#blockid) section and contains validator's +current round). Vote is defined in the +[Blockchain](https://github.com/tendermint/spec/blob/master/spec/blockchain/blockchain.md#blockidd) +section and contains validator's information (validator address and index), height and round for which the vote is sent, vote type, blockID if process vote for some block (`nil` otherwise) and a timestamp when the vote is sent. The message is signed by the validator private key. diff --git a/spec/reactors/mempool/reactor.md b/spec/reactors/mempool/reactor.md index 7e9a2d8fe..66e5d826b 100644 --- a/spec/reactors/mempool/reactor.md +++ b/spec/reactors/mempool/reactor.md @@ -7,7 +7,7 @@ See [this issue](https://github.com/tendermint/tendermint/issues/1503) Mempool maintains a cache of the last 10000 transactions to prevent replaying old transactions (plus transactions coming from other validators, who are continually exchanging transactions). Read [Replay -Protection](../../../app-dev/app-development.md#replay-protection) +Protection](https://github.com/tendermint/tendermint/blob/master/docs/app-dev/app-development.md#replay-protection) for details. Sending incorrectly encoded data or data exceeding `maxMsgSize` will result