Skip to content

Protocol 27 (CAP-0071) support#753

Closed
sisuresh wants to merge 4 commits into
stellar:protocol-nextfrom
sisuresh:cap-0083-xdr
Closed

Protocol 27 (CAP-0071) support#753
sisuresh wants to merge 4 commits into
stellar:protocol-nextfrom
sisuresh:cap-0083-xdr

Conversation

@sisuresh

Copy link
Copy Markdown
Contributor

SPIKE — exploratory, not intended to merge as-is.

This branch was used to stand up an end-to-end Stellar Quickstart test of CAP-0083 ("Allow validators to vote to skip the current ledger", stellar-core PR #5209), together with CAP-0071. It carries the downstream changes required so a custom quickstart image (CAP-83 stellar-core + this component) runs at protocol 27 and handles CAP-83 skip ledgers (STELLAR_VALUE_EMPTY_TX_SET).

Rebased on main; opened against protocol-next.

stellar-rpc

  • Pin go-stellar-sdk to the CAP-71/CAP-83 Go XDR build (so RPC ingests CAP-83 skip-ledger meta).
  • Point the preflight -curr soroban-env-host/soroban-simulation at the CAP-71 host rs-soroban-env@7fb0a840 via the pre-release git-ref pattern. Note: the released soroban-env-host 26.1.2 predates CAP-71 (#1607), so a git ref is required until a CAP-71 release exists (swap back to a version pin then). Matching rs-stellar-xdr@a749b69b (cap_0071); xdr2json adapted to its single-module layout.

Comment thread Cargo.toml Outdated
@sisuresh sisuresh changed the title SPIKE: Protocol 27 (CAP-0071 + CAP-0083) support Protocol 27 (CAP-0071) support Jun 3, 2026
@sisuresh

sisuresh commented Jun 3, 2026

Copy link
Copy Markdown
Contributor Author

Update (CAP-71-only for p27 release)

P27 ships with CAP-0071 only — CAP-0083 deferred. Pushed the dep bumps:

  • go-stellar-sdk130456cc9b69 (regenerated from stellar-xdr@68fa1ac, post-stellar/stellar-xdr#303 CAP-0071 ungate, with XDR_FEATURES empty so CAP-0083 is stripped). Transitively pulls go-xdr@0bf8f49 (raises DecodeDefaultMaxDepth 250 → 1500 and adds DecodeUnlimitedDepth per decoder: raise default max depth to 1500 and add DecodeUnlimitedDepth go-xdr#32).
  • rs-soroban-env46424999 (#1688 merge, post-#1687 which ungated cap_0071/cap_0083 at the host).
  • rs-stellar-xdr5262803470 (v27.0.0). Dropped cap_0071 feature (ungated); added type_enum to satisfy xdr2json's xdr::Type/xdr::TypeVariant usage.
  • Pinned just before b03d2563 ("Add a recording auth parameter...") on rs-soroban-env so the existing RecordingInvocationAuthMode::Recording(bool) API in preflight/src/shared.rs still compiles without a separate adaptation pass.
  • cargo check --workspace --release and go build ./... both green.

sisuresh added 3 commits June 5, 2026 11:36
The released SDK v0.4.0 predates CAP-0071: it lacks the new XDR
(SorobanCredentialsAddressWithDelegates, SorobanDelegateSignature, etc.)
and the ledgerbackend GetLedgerRaw API. Pin the protocol-27 XDR build
via the sisuresh/go replace until go-stellar-sdk#5945 is released.

Also transitively bumps stellar/go-xdr to 0bf8f49 (stellar#32), raising
DecodeDefaultMaxDepth 250 -> 1500 so deep CAP-71 delegate chains decode.
The SDK's ledgerbackend.LedgerBackend interface gained GetLedgerRaw;
fixes the golangci-lint typecheck failure.
The Go/Rust XDR revision comparison fetched xdr_commit_generated.txt
from stellar/go-stellar-sdk at the required version, ignoring any
replace directive. With the SDK replaced by the CAP-71 fork build, the
check compared the stale v0.4.0 XDR (cff714a5) instead of the actual
one (68fa1ac, matching rust stellar-xdr 27.0.0) and failed spuriously —
the same mismatch that was already failing on protocol-next (stellar#761).
Resolve the module through the replace so the check validates what is
actually built.
gomoddirectives rejects all replace directives by default; allow the
CAP-71 Go XDR pin until go-stellar-sdk#5945 is released.
@Shaptic Shaptic deleted the branch stellar:protocol-next June 9, 2026 23:27
@Shaptic Shaptic closed this Jun 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants