github.com/Finschia/ostracon@v1.1.5/spec/README.md (about) 1 # Ostracon Spec 2 3 This document is a specification of the Ostracon. Ostracon is designed to have many compatibilities with CometBFT. As such, the Ostracon spec is based on the [CometBFT v0.34.x Spec](https://github.com/cometbft/cometbft/tree/v0.34.x/spec). The Ostracon also has many unique improvements to improve security and performance. This specification clarifies the differences between CometBFT and defines the base data structures, how they are validated, and how they are communicated over the network. 4 5 ## Contents 6 7 > **Note** 8 >  represents items with Ostracon-specific improvements added. It also describes the major changes. 9 10 > **Note** 11 >  represents items with specifications equivalent to CometBFT. As such, the article links directly to CometBFT's repository. 12 13 ### Introduction 14 15 - [Overview](./introduction/overview.md) 16 17 ### Core 18 19 - [Data Structure](./core/data_structures.md): Ostracon uses a more secure proposer election algorithm. Add definitions for the data structures required for this election algorithm. 20 - [Encoding](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/core/encoding.md) 21 - [Genesis](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/core/genesis.md) 22 - [State](./core/state.md): Ostracon uses a more secure proposer election algorithm. Add the data required for this election algorithm to the state. 23 24 ### Consensus Protocol 25 26 - [Consensus Algorithm](https://github.com/cometbft/cometbft/blob/v0.34.x/spec//consensus/consensus.md) 27 - [BFT Time](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/consensus/bft-time.md) 28 - [Proposer Selection](./consensus/proposer-selection.md): Ostracon adopts a proposer selection algorithm using VRF. Using VRF makes the election unpredictable and makes the Proposer election more secure. 29 - [Creating a proposal](https://github.com/cometbft/cometbft/blob/v0.34.x/spec//consensus/creating-proposal.md) 30 - [Siging](https://github.com/cometbft/cometbft/blob/v0.34.x/spec//consensus/signing.md) 31 - [Write-Ahead Log](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/consensus/wal.md) 32 33 #### Proposer-Based Timestamps 34 35 - [Overview](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/consensus/proposer-based-timestamp/pbts_001_draft.md) 36 - [System Model and Properties](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/consensus/proposer-based-timestamp/pbts-sysmodel_001_draft.md) 37 - [Protocol Specification](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/consensus/proposer-based-timestamp/pbts-algorithm_001_draft.md) 38 39 ### Light-Client 40 41 - [Spec](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/light-client/README.md) 42 43 ### P2P and Network Protocols 44 45 - [Node](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/node.md) 46 - [Peer](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/peer.md) 47 - [Connection](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/connection.md) 48 - [Config](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/config.md) 49 #### Messages Type 50 51 - [Block Sync](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/messages/block-sync.md) 52 - [Mempool](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/messages/mempool.md) 53 - [Evidence](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/messages/evidence.md) 54 - [State Sync](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/messages/state-sync.md) 55 - [Peer Exchange (PEX)](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/messages/pex.md) 56 - [Consensus](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/messages/consensus.md) 57 58 #### v0.34 59 60 - [Transport](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/v0.34/transport.md) 61 - [Switch](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/v0.34/switch.md) 62 - [PEX Reactor](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/v0.34/pex.md) 63 - [Peer Exchange protocol](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/v0.34/pex-protocol.md) 64 - [Address Book](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/v0.34/addressbook.md) 65 - [Peer Manager](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/v0.34/peer_manager.md) 66 - [Type](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/p2p/v0.34/types.md) 67 - [Configuration](./p2p/v0.34/configuration.md): Ostracon allows each reactor to process messages asynchronously in separate threads. Ostracon adds parameters related to that. 68 69 ### RPC 70 71 - [Spec](./rpc/README.md): Add a entropy to the Block and BlockByHash API response. 72 73 ### ABCI 74 75 - [Overview](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/abci/README.md) 76 - [Methods and Types](./abci/abci.md): Ostracon adds new ABCI Methods. 77 - [Applications](./abci/apps.md): Ostracon improves the mempool connection cycle to reduce the time the mempool is locked. 78 - [Client and Server](https://github.com/cometbft/cometbft/blob/v0.34.x/spec/abci/client-server.md)