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(abci): ABCI shim for running against a standalone ABCI app #463

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

Conversation

jmalicevic
Copy link

@jmalicevic jmalicevic commented Oct 14, 2024

See: #479

TODO

  • Vote extensions
    • Add support for ExtendVote
    • Add support for VerifyVoteExtension

The changes below allow Malachite to call into a standalone ABCI based app running on a socket whose address is defined below.

The application used can be found in the following repo:

Instructions to run for a two node setup:

  1. Start two instances of the app with different socket addresses:
    • /tmp/kvstoreplusplus0.sock
    • /tmp/kvstoreplusplus1.sock
  2. In a separate window start Malachite
    • ./scripts/spawn.bash --home x --nodes 2

In the log files of malachite you should be seeing transactions showing up (the printf from the actor).
The application is setup to send transactions in PrepareProposal, stores them in a local variable within ProcessProposal and checks whether they are received again in FinalizeBlock.

Malachite takes the transactions from the decided block in Decide and sends them to the app in FinalizeBlock.

If there is any mismatch the app will panic.


PR author checklist

@jmalicevic jmalicevic self-assigned this Oct 14, 2024
@jmalicevic jmalicevic changed the title Jasmina/tmp abci app feat(app): ABCI shim app that connects to a standalone ABCI app Oct 14, 2024
Copy link

codecov bot commented Oct 14, 2024

Codecov Report

Attention: Patch coverage is 3.95683% with 1335 lines in your changes missing coverage. Please review.

Project coverage is 71.26%. Comparing base (01111d2) to head (0626c86).
Report is 232 commits behind head on main.

Files with missing lines Patch % Lines
code/crates/abci/host/src/actor.rs 0.00% 257 Missing ⚠️
code/crates/abci/app/src/spawn.rs 0.00% 129 Missing ⚠️
code/crates/abci/host/src/streaming.rs 0.00% 104 Missing ⚠️
code/crates/abci/host/src/context.rs 0.00% 93 Missing ⚠️
code/crates/abci/host/src/build_proposal.rs 0.00% 88 Missing ⚠️
code/crates/abci/host/src/abci/app.rs 0.00% 82 Missing ⚠️
code/crates/abci/p2p-types/src/transaction.rs 0.00% 79 Missing ⚠️
code/crates/abci/host/src/abci/client.rs 0.00% 77 Missing ⚠️
code/crates/abci/host/src/impls.rs 0.00% 69 Missing ⚠️
code/crates/abci/app/src/codec.rs 0.00% 48 Missing ⚠️
... and 15 more
Additional details and impacted files
@@             Coverage Diff             @@
##             main     #463       +/-   ##
===========================================
- Coverage   83.87%   71.26%   -12.61%     
===========================================
  Files         111      135       +24     
  Lines        7570     8948     +1378     
===========================================
+ Hits         6349     6376       +27     
- Misses       1221     2572     +1351     
Flag Coverage Δ
integration 71.28% <3.96%> (-12.77%) ⬇️
mbt 22.09% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@romac romac changed the title feat(app): ABCI shim app that connects to a standalone ABCI app feat(abci): ABCI shim app that connects to a standalone ABCI app Oct 17, 2024
@romac romac added feature code Code/implementation related abci ABCI Interface labels Oct 17, 2024
@romac romac changed the title feat(abci): ABCI shim app that connects to a standalone ABCI app feat(abci): ABCI shim for running against a standalone ABCI app Oct 22, 2024
@romac romac removed the phase4 label Dec 19, 2024
@romac romac added the P: low Priority: low label Jan 20, 2025
@adizere adizere removed the feature label Jan 27, 2025
@romac romac added the work in progress Work in progress label Jan 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
abci ABCI Interface code Code/implementation related P: low Priority: low work in progress Work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants