Rust quorum intersection checker integration #4629
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.
Description
This is the implementation of a new quorum intersection checker that leverages a SAT-solver. It contains
stellar/stellar-quorum-analyzer
, the underneath Rust library.RustQuorumCheckerAdaptor
that wraps the Rust calls in C++ that provides some basic metrics.USE_QUORUM_INTERSECTION_CHECKER_V2
to toggle between old and new solver.Rust side: stellar/stellar-quorum-analyzer#1
Preliminary benchmark results look very good. This is run with the stellar-core
check-quorum-intersection
command line locally, sample test cases can be found here. A 16-org configuration which previously won't finish, now takes only fraction of a second.Marking draft for now since it needs to be merged after the Rust side PR (and update the commit hash in cargo.toml). However, this it is now ready for review.
Checklist
clang-format
v8.0.0 (viamake format
or the Visual Studio extension)