Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(malachite): Tendermint consensus support #477

Draft
wants to merge 85 commits into
base: main
Choose a base branch
from

Conversation

Trantorian1
Copy link
Collaborator

@Trantorian1 Trantorian1 commented Jan 24, 2025

Pull Request type

Please add the labels corresponding to the type of changes your PR introduces:

  • Feature

What is the current behavior?

Resolves: #475

Madara currently does not implement any consensus mechanism related to the upcoming Starknet p2p update.

What is the new behavior?

This PR aims to explore the functionality of Malachite and its integration into the codebase in anticipation of #463.

Warning

#463 is required in order for this pr to be merged as it depends on p2p capabilities being added to Madara.

Progress and future timeline (projected)

Progress so far and work left. Deadlines will be updated as further progress is made.

  • ✔️ Message streaming (week 1 and 2)
    • Implementation
    • Testing
  • ✔️ Service update (week 3 and 4)
    • Concurrent status updates ordering and general bugfixes
    • Refactor & type safety
    • Testing
  • 📆 Update Sync service (week 4 to 6) (will be on holidays for a week, this is not taken into account)
    • L1 sync child service
    • L2 Sync child service
    • Consensus child service (in progress)
    • Consensus message processing (in progress)
    • Child service failure recovery
  • 📆 Testing (projected week 7)
    • Unit testing known edge cases
    • Proptesting consensus messages
    • Proptesting malicous behavior

Documentation

Progress so far in writing documentation on each component.

cargo doc --offline --no-deps --target-dir ./docs
  • 📃 message streaming
  • 📃 service
  • 📃 P2P
  • 📃 consensus

Stretch goals

Complex tasks which might fall out of scope.

  • 📆 Update RPC service
    • RPC user child service
    • RPC admin child service
  • 📆 Further testing
    • Making consensus fully deterministic
    • Simulation testing
  • 📆 Further resilience (ie: implementing some of @cchudant's cool ideas 🤪)
    • isolating consensus logic into a separate process
    • isolating signing to separate process

Does this introduce a breaking change?

Yes. Block sync and proposal will be undergoing radical changes.

Other information

Please do not hesitate to give feedback on the early decisions and architecture choices made in this PR. All feedback is welcome!

@Trantorian1 Trantorian1 added feature Request for new feature or enhancement sequencer Related to the sequencing logic and implementation node Related to the full node implementation research Research and exploration required before implementation labels Jan 24, 2025
@Trantorian1 Trantorian1 self-assigned this Jan 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Request for new feature or enhancement node Related to the full node implementation research Research and exploration required before implementation sequencer Related to the sequencing logic and implementation
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

feat(malachite): tendermint concensus
2 participants