Add p28 host with CAP-85 support - #5358
Merged
Merged
Conversation
dmkozh
force-pushed
the
cap85
branch
3 times, most recently
from
July 21, 2026 20:58
5805fa3 to
a6f155c
Compare
dmkozh
marked this pull request as ready for review
July 21, 2026 22:58
Contributor
There was a problem hiding this comment.
Pull request overview
Adds the protocol-28 Soroban host, lazy ledger-entry decoding interface, and CAP-85 executable-reference support.
Changes:
- Adds p28 host dispatch and v2 invocation/rent APIs.
- Refactors Core ledger-input preparation for lazy decoding.
- Adds CAP-85 configuration, smoke coverage, and metadata baselines.
Reviewed changes
Copilot reviewed 22 out of 23 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
.gitmodules |
Adds p28 submodule declaration. |
Cargo.lock |
Updates p28 Rust dependencies. |
common.mk |
Defines CAP-85 for C++. |
configure.ac |
Adds CAP-85 conditional. |
src/Makefile.am |
Enables p28 WIP build. |
src/herder/test/TransactionQueueTests.cpp |
Removes host-function filtering tests. |
src/ledger/LedgerTypeUtils.cpp |
Adds p28 rent sizing path. |
src/main/main.cpp |
Temporarily disables XDR identity checks. |
src/rust/Cargo.toml |
Upgrades the p28 host dependency. |
src/rust/src/bridge.rs |
Exposes v2 bridge interfaces. |
src/rust/src/dep-trees/p28-expect.txt |
Updates expected p28 dependencies. |
src/rust/src/lib.rs |
Imports v2 ledger metadata. |
src/rust/src/soroban_invoke.rs |
Dispatches v2 host invocation. |
src/rust/src/soroban_module_cache.rs |
Dispatches v2 rent sizing. |
src/rust/src/soroban_proto_all.rs |
Adapts protocol-specific host APIs. |
src/rust/src/soroban_proto_any.rs |
Implements shared v2 invocation handling. |
src/transactions/InvokeHostFunctionOpFrame.cpp |
Builds ordered lazy-decoding inputs. |
src/transactions/TransactionFrame.cpp |
Removes host-function filtering. |
src/transactions/test/InvokeHostFunctionTests.cpp |
Adds CAP-85 smoke coverage. |
src/util/ProtocolVersion.h |
Adds p28 activation constants. |
test-tx-meta-baseline-next/InvokeHostFunctionTests.json |
Registers the new test baseline. |
These always happen on the host side now.
XDR 'diverged' from p27 host because we've moved the definitions around. Instead of trying to fix it, we disable the check until p28 ungate (which should come very soon anyway).
sisuresh
approved these changes
Jul 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
The bulk of the change is the necessary plumbing to adapt Core to the breaking host e2e interface changes (for lazy storage entry decoding).
For CAP-85 itself we don't need any Core changes, so this just has an e2e smoke test.
Checklist
clang-formatv8.0.0 (viamake formator the Visual Studio extension)