diff --git a/specs/README.md b/specs/README.md index e12959d126..a22e9928e6 100644 --- a/specs/README.md +++ b/specs/README.md @@ -2,7 +2,12 @@ ## Building From Source -Prerequisite: [install mdBook](https://rust-lang.github.io/mdBook/guide/installation.html). +Install [mdbook](https://rust-lang.github.io/mdBook/guide/installation.html) and [mdbook-toc](https://github.com/badboy/mdbook-toc): + +```sh +cargo install mdbook +cargo install mdbook-toc +``` To build book: diff --git a/specs/book.toml b/specs/book.toml index 694ba1019b..bce95681cd 100644 --- a/specs/book.toml +++ b/specs/book.toml @@ -10,3 +10,7 @@ git-repository-url = "https://github.com/celestiaorg/celestia-app" [rust] edition = "2021" + +[preprocessor.toc] +command = "mdbook-toc" +renderer = ["html"] diff --git a/specs/src/rationale/message_block_layout.md b/specs/src/rationale/message_block_layout.md index 2b24b73c8a..684df859e4 100644 --- a/specs/src/rationale/message_block_layout.md +++ b/specs/src/rationale/message_block_layout.md @@ -1,9 +1,6 @@ # Message Layout -- [Preamble](#preamble) -- [Message Layout Rationale](#message-layout-rationale) - - [Non-Interactive Default Rules](#non-interactive-default-rules) - - [Caveats](#caveats) + ## Preamble diff --git a/specs/src/specs/block_proposer.md b/specs/src/specs/block_proposer.md index 948a5ecb78..d4afa7269f 100644 --- a/specs/src/specs/block_proposer.md +++ b/specs/src/specs/block_proposer.md @@ -1,7 +1,6 @@ # Honest Block Proposer -- [Deciding on a Block Size](#deciding-on-a-block-size) -- [Laying out Transactions and Messages](#laying-out-transactions-and-messages) + This document describes the tasks of an honest block proposer to assemble a new block. Performing these actions is not enforced by the [consensus rules](./consensus.md), so long as a valid block is produced. diff --git a/specs/src/specs/consensus.md b/specs/src/specs/consensus.md index 1400d316fe..db45405cc0 100644 --- a/specs/src/specs/consensus.md +++ b/specs/src/specs/consensus.md @@ -1,34 +1,6 @@ # Consensus Rules -- [System Parameters](#system-parameters) - - [Units](#units) - - [Constants](#constants) - - [Reserved Namespace IDs](#reserved-namespace-ids) - - [Reserved State Subtree IDs](#reserved-state-subtree-ids) - - [Rewards and Penalties](#rewards-and-penalties) -- [Leader Selection](#leader-selection) -- [Fork Choice](#fork-choice) -- [Block Validity](#block-validity) -- [Block Structure](#block-structure) - - [`block.header`](#blockheader) - - [`block.availableDataHeader`](#blockavailabledataheader) - - [`block.lastCommit`](#blocklastcommit) - - [`block.availableData`](#blockavailabledata) -- [State Transitions](#state-transitions) - - [`block.availableData.transactionData`](#blockavailabledatatransactiondata) - - [SignedTransactionDataTransfer](#signedtransactiondatatransfer) - - [SignedTransactionDataMsgPayForData](#signedtransactiondatamsgpayfordata) - - [SignedTransactionDataCreateValidator](#signedtransactiondatacreatevalidator) - - [SignedTransactionDataBeginUnbondingValidator](#signedtransactiondatabeginunbondingvalidator) - - [SignedTransactionDataUnbondValidator](#signedtransactiondataunbondvalidator) - - [SignedTransactionDataCreateDelegation](#signedtransactiondatacreatedelegation) - - [SignedTransactionDataBeginUnbondingDelegation](#signedtransactiondatabeginunbondingdelegation) - - [SignedTransactionDataUnbondDelegation](#signedtransactiondataunbonddelegation) - - [SignedTransactionDataBurn](#signedtransactiondataburn) - - [SignedTransactionRedelegateCommission](#signedtransactionredelegatecommission) - - [SignedTransactionRedelegateReward](#signedtransactionredelegatereward) - - [Begin Block](#begin-block) - - [End Block](#end-block) + ## System Parameters diff --git a/specs/src/specs/data_structures.md b/specs/src/specs/data_structures.md index 87d4d92c1c..1e0feddf6f 100644 --- a/specs/src/specs/data_structures.md +++ b/specs/src/specs/data_structures.md @@ -1,77 +1,6 @@ # Data Structures -- [Data Structures Overview](#data-structures-overview) -- [Type Aliases](#type-aliases) -- [Blockchain Data Structures](#blockchain-data-structures) - - [Block](#block) - - [Header](#header) - - [AvailableDataHeader](#availabledataheader) - - [AvailableData](#availabledata) - - [Commit](#commit) - - [Timestamp](#timestamp) - - [HashDigest](#hashdigest) - - [TransactionFee](#transactionfee) - - [Address](#address) - - [CommitSig](#commitsig) - - [Signature](#signature) -- [ConsensusVersion](#consensusversion) -- [Serialization](#serialization) -- [Hashing](#hashing) -- [Public-Key Cryptography](#public-key-cryptography) -- [Merkle Trees](#merkle-trees) - - [Binary Merkle Tree](#binary-merkle-tree) - - [BinaryMerkleTreeInclusionProof](#binarymerkletreeinclusionproof) - - [Namespace Merkle Tree](#namespace-merkle-tree) - - [NamespaceMerkleTreeInclusionProof](#namespacemerkletreeinclusionproof) - - [Sparse Merkle Tree](#sparse-merkle-tree) - - [SparseMerkleTreeInclusionProof](#sparsemerkletreeinclusionproof) -- [Erasure Coding](#erasure-coding) - - [Reed-Solomon Erasure Coding](#reed-solomon-erasure-coding) - - [2D Reed-Solomon Encoding Scheme](#2d-reed-solomon-encoding-scheme) - - [Share](#share) - - [Compact Share](#compact-share) - - [Sparse Share](#sparse-share) - - [Parity Share](#parity-share) - - [Namespace Padding Share](#namespace-padding-share) - - [Tail Padding Share](#tail-padding-share) - - [Arranging Available Data Into Shares](#arranging-available-data-into-shares) -- [Available Data](#available-data) - - [TransactionData](#transactiondata) - - [WrappedTransaction](#wrappedtransaction) - - [Transaction](#transaction) - - [SignedTransactionData](#signedtransactiondata) - - [SignedTransactionDataTransfer](#signedtransactiondatatransfer) - - [SignedTransactionDataMsgPayForData](#signedtransactiondatamsgpayfordata) - - [SignedTransactionDataCreateValidator](#signedtransactiondatacreatevalidator) - - [SignedTransactionDataBeginUnbondingValidator](#signedtransactiondatabeginunbondingvalidator) - - [SignedTransactionDataUnbondValidator](#signedtransactiondataunbondvalidator) - - [SignedTransactionDataCreateDelegation](#signedtransactiondatacreatedelegation) - - [SignedTransactionDataBeginUnbondingDelegation](#signedtransactiondatabeginunbondingdelegation) - - [SignedTransactionDataUnbondDelegation](#signedtransactiondataunbonddelegation) - - [SignedTransactionDataBurn](#signedtransactiondataburn) - - [SignedTransactionRedelegateCommission](#signedtransactionredelegatecommission) - - [SignedTransactionRedelegateReward](#signedtransactionredelegatereward) - - [PayForBlobData](#payforblobdata) - - [IntermediateStateRootData](#intermediatestaterootdata) - - [WrappedIntermediateStateRoot](#wrappedintermediatestateroot) - - [IntermediateStateRoot](#intermediatestateroot) - - [MessageData](#messagedata) - - [Message](#message) -- [State](#state) - - [StateElement](#stateelement) - - [Account](#account) - - [Delegation](#delegation) - - [Validator](#validator) - - [ActiveValidatorCount](#activevalidatorcount) - - [ActiveVotingPower](#activevotingpower) - - [ProposerBlockReward](#proposerblockreward) - - [ProposerInitialVotingPower](#proposerinitialvotingpower) - - [ValidatorQueueHead](#validatorqueuehead) - - [PeriodEntry](#periodentry) - - [Decimal](#decimal) - - [MessagePaid](#messagepaid) - - [MessagePaidHead](#messagepaidhead) -- [Consensus Parameters](#consensus-parameters) + ## Data Structures Overview diff --git a/specs/src/specs/networking.md b/specs/src/specs/networking.md index e7b82c7120..3c455a7455 100644 --- a/specs/src/specs/networking.md +++ b/specs/src/specs/networking.md @@ -1,15 +1,6 @@ # Networking -- [Wire Format](#wire-format) - - [AvailableData](#availabledata) - - [AvailableDataRow](#availabledatarow) - - [ConsensusProposal](#consensusproposal) - - [MsgWirePayForData](#msgwirepayfordata) -- [Invalid Erasure Coding](#invalid-erasure-coding) - - [ShareProof](#shareproof) - - [BadEncodingFraudProof](#badencodingfraudproof) -- [Invalid State Update](#invalid-state-update) - - [StateFraudProof](#statefraudproof) + ## Wire Format