malachite-integrate initial commit #15
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Malachite Consensus Implementation Review
This document summarizes the Malachite consensus layer components that have been implemented so far.
Implemented Components
1. Context Creation Helper
create_context()-crates/consensus/src/engine.rsConvenience function to create a CipherBFT context.
2. ConsensusParams Creation Helper
default_consensus_params()-crates/consensus/src/engine.rsCreates Malachite's
ConsensusParamsfrom a CipherBFT context. Setsvalue_payloadtoProposalOnly(for single-part Cut support).3. EngineConfig Creation Helper
default_engine_config_single_part()-crates/consensus/src/engine.rsCreates a Malachite engine configuration for single-part proposals.
4. SigningProvider Implementation
ConsensusSigningProvider-crates/consensus/src/signing.rsBridges CipherBFT's Ed25519 keys with Malachite's
SigningProvidertrait. Implements signing and verification methods for Vote, Proposal, and ProposalPart.Architecture Overview
Component Status for MalachiteEngineBuilder
CipherBftContextcreate_context()ConsensusParamsdefault_consensus_params()EngineConsensusConfigdefault_engine_config_single_part()SigningProviderConsensusSigningProvider::new()NetworkRefHostRefWalRefUsage Flow
Next Steps
AppMsgevents (Cut fetch, execute, etc.)