Openmesh Core

In active development

Openmesh Core is a crucial piece of software that is responsible for maintaining consensus among different validator nodes in the network. Openmesh-core utilizes the Tendermint consensus protocol, which is a Byzantine Fault Tolerant (BFT) consensus algorithm, to ensure secure and reliable blockchain operations. The specific implementation of Tendermint used by Openmesh-core is CometBFT, written in Go.

Responsibilities of Core

  • Block Proposal:

    • Selection of Proposer: The core is responsible for selecting the proposer (validator) for each round in a fair manner, typically using a round-robin or weighted round-robin approach based on stake.

    • Block Creation: The selected proposer creates a new block with valid transactions and broadcasts it to all validators.

  • Voting Process:

    • Pre-vote Collection: The core collects pre-votes from all validators for the proposed block. Each validator votes based on the validity of the block.

    • Pre-commit Collection: After pre-votes are collected, the core collects pre-commits from validators who have received sufficient pre-votes.

    • Final Commit: The core ensures that if a block receives more than two-thirds of the pre-commits, it is added to the blockchain.

  • Transaction Validation:

    • Transaction Verification: The core verifies the validity of transactions included in the proposed block. This includes checking digital signatures, ensuring no double-spending, and validating any other protocol-specific rules.

    • State Transition: The core applies valid transactions to the current state, producing the new state that will be agreed upon.

  • Network Communication:

    • Message Broadcasting: The core handles the broadcasting of proposal, pre-vote, pre-commit, and commit messages to all validators in the network.

    • Synchronizing Nodes: The core ensures that all nodes stay synchronized, resolving any discrepancies in state or blockchain history.

  • Fault Tolerance and Security:

    • Byzantine Fault Tolerance: The core implements mechanisms to handle up to one-third of nodes being malicious or faulty, maintaining consensus despite these issues.

    • Punishment and Slashing: The core is responsible for detecting and punishing misbehavior, such as double-signing or other forms of protocol violations, by slashing the stake of malicious validators.

  • Consensus Finality:

    • Immediate Finality: The core ensures that once a block is committed, it is final and cannot be reverted, providing security and confidence to users and applications relying on the blockchain.

  • State Management:

    • State Updates: The core manages the application of committed transactions to the state, ensuring that all nodes have a consistent view of the blockchain state.

    • Data Integrity: The core ensures the integrity and correctness of the state data, preventing corruption and inconsistencies.

  • Protocol Upgrades:

    • Consensus Upgrades: The core may facilitate upgrades to the consensus protocol, ensuring smooth transitions without disrupting the network.

    • Feature Implementation: The core implements new features and improvements in the consensus mechanism, enhancing performance, security, and functionality.

  • Data Validation and Seeding:

    • Data Submission: At each block each node is assigned a different data source to fetch data from until the next block. The data is than seeded by the core via IPFS and a CID of the data is submitted as a transaction.

    • Data Seeding: The core is responsible for seeding the Data in the network. The core seeds the data via IPFS.

Last updated