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