Skip to content

Protocol 28 Support - #915

Merged
Shaptic merged 9 commits into
mainfrom
protocol-next
Aug 3, 2026
Merged

Shaptic merged 9 commits into
mainfrom
protocol-next

Conversation

@Shaptic

@Shaptic Shaptic commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Merges protocol-next into main for the Protocol 28 GA. Part of the release train (stellar/go-stellar-sdk#5967).

Contents

  • Protocol 28 support (CAP-0083 Protocol 28 (CAP-0083) #789/Protocol 28 (CAP-0085) #891 lineage) finalized by the GA flip (Protocol 28 GA: crates.io host pins, GA core legs, SDK P28 #913): crates.io soroban-env-host 28.0.1 / 27.0.1 (prev), stellar-xdr 28.0.0, go-stellar-sdk v0.7.0, CI legs on the 28.0.0 core build, MaxSupportedProtocolVersion 28, CHANGELOG v28.0.0
  • main merged back into protocol-next pre-merge, including two semantic conflict resolutions worth reviewer attention:
    • prev::make_recording_auth_mode now passes use_upgraded_auth through — prev is env-host 27.x which supports AddressV2 credentials; neither parent's version was correct for the rotated prev
    • the UseUpgradedAuth prev-protocol test updated accordingly (old one hardcoded protocol 26, which no longer has a bundled host)

Merge instructions

Merge commit please (train convention — keeps protocol-next an ancestor of main; the v28.0.0 tag later lands on a main-reachable commit).

Notes

  • CI legs pin stellar/unsafe-stellar-core (GA-repo images still unpublished); the swap to stellar/stellar-core happens in the release PR, gated on the image existing.
  • build-libs, preflight/methods/xdr2json suites, and check-dependencies.bash green locally on the merged tree.

🤖 Generated with Claude Code

sisuresh and others added 9 commits June 22, 2026 17:15
…w-list

go-stellar-sdk#5965 (Protocol 28 / CAP-0085) merged to protocol-next as
82df7643786e0f8e4f82f4d36e522af8c45bf101. Drop the sisuresh/go fork replace,
pin the merged commit (v0.6.1-0.20260722220414-82df7643786e), and remove the
paired .golangci.yml gomoddirectives replace-allow-list (now-empty stanza
deleted). Rust preflight pins (merged rs-soroban-env / rs-stellar-xdr) unchanged.
The merged CAP-0085 rs-soroban-env commit (88cadc3) advanced its baseline:
the default (non-next) build now declares protocol 28, while 'next' declares
protocol 29. The preflight dispatches by exact protocol number
(proto == curr::PROTOCOL), so with 'next' enabled curr::PROTOCOL was 29 and
ledgers at protocol 28 were rejected ('unsupported protocol version: 28',
TestGetPreflight/protocol_28). Drop the 'next' feature so curr::PROTOCOL == 28.
CAP-0085 XDR types are unaffected — the host pins stellar-xdr with
cap_0085_executable_ref in its own workspace, independent of 'next'.
Verified locally: make build-libs + go test ./.../preflight TestGetPreflight* pass.
…host

The P28 integration leg was failing with ScecExceededLimit ('operation
instructions exceeds amount specified') because the previous core image
(27.0.1-3367.3589a696b) predated rs-soroban-env#1702's cost-model update, so
apply-time metering diverged from the preflight's simulation. Repin to
27.1.1-3444.0e3d3d955.jammy-vnext: a vnext build of stellar-core master that
includes CAP-85 core support (stellar-core#5358) and whose src/rust/soroban/p28
submodule is 88cadc32 — the exact rs-soroban-env commit soroban-env-host-curr
pins. Host commit now matches on both sides, so the cost models agree.
Docker manifest + jammy~vnext deb both verified present in the registry/apt pool.
* Protocol 28 GA: crates.io host/xdr pins, GA core CI legs, SDK P28

One commit for the coupled pin set (check-dependencies.bash cross-validates
Cargo.toml, go.mod, and the workflow core pins):

- soroban-env-host/simulation-curr: git 88cadc32 → crates.io =28.0.0 (cut
  from rs-soroban-env v28.0.0/ba37ea5f, the exact commit core 28.0.0 bundles
  as src/rust/soroban/p28); -prev → =27.0.1 (final P27 patch)
- stellar-xdr: git a90de0c → =28.0.0; cap_0083/cap_0085_executable_ref
  feature gates dropped (both CAPs ship ungated); serde+type_enum kept
- CI legs: P27+P28 both on stellar/stellar-core:28.0.0-3486.2332980a1.jammy
  (vnext/unsafe pins retired)
- go.mod: go-stellar-sdk → v0.6.1-0.20260803175255-2b16db0ecd45 (P28 GA
  merge commit)
- MaxSupportedProtocolVersion 27 → 28; CHANGELOG v28.0.0

* flip: SDK v0.7.0 (released), CI images via unsafe-stellar-core

v0.7.0 was cut on the GA merge commit, so the pseudo-version pin becomes the
real tag. CI legs pin stellar/unsafe-stellar-core for the GA build — the
stellar/stellar-core repo lags the release; the swap back happens in the
release PR once the GA-repo image exists.

* flip: soroban-env-host/simulation-curr → =28.0.1

Patch release over v28.0.0: same host commit core 28.0.0 bundles (ba37ea5f)
plus an ed25519-dalek version-constraint fix (rs-soroban-env#1706). No
metering change — simulation/apply coherence unaffected.

* CHANGELOG: match repo entry style

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Conflict resolutions:
- CHANGELOG.md: v28.0.0 section interleaved above main's v27.1.x entries
- go.mod/go.sum: main's dependency bumps + go-stellar-sdk v0.7.0, re-tidied
- preflight lib.rs: prev::make_recording_auth_mode now PASSES THROUGH
  use_upgraded_auth — prev rotated to soroban-env-host 27.x, which supports
  AddressV2 credentials (main's version targeted the 26-era single-arg API
  and would not compile; protocol-next's hardcoded false, which would have
  silently broken UseUpgradedAuth simulation on protocol-27 ledgers)
- preflight_test.go: the 'silently ignored on prev' test encoded the
  26-era-prev contract and hardcoded protocol 26 (no bundled host anymore);
  updated to assert the flag is honored on the prev (27) host

Train: stellar/go-stellar-sdk#5967

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 3, 2026 20:30
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedgolang/​github.com/​stellar/​go-stellar-sdk@​v0.6.1-0.20260625225930-6181cdf8bda5 ⏵ v0.7.075 +1100100100100
Updatedcargo/​anyhow@​1.0.100 ⏵ 1.0.10481 +110093100100
Updatedcargo/​stellar-xdr@​26.0.0 ⏵ 28.0.093100100100100

View full report

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds GA support for Protocol 28 across dependencies, preflight simulation, integration infrastructure, and release documentation.

Changes:

  • Rotates Rust/Go dependencies to Protocol 28 releases.
  • Updates preflight behavior and tests for Protocol 27/28 hosts.
  • Adds Protocol 28 integration fixtures and CI coverage.

Reviewed changes

Copilot reviewed 8 out of 14 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.github/workflows/stellar-rpc.yml Adds P28 and updates P27 integration legs.
CHANGELOG.md Documents the v28.0.0 release.
Cargo.lock Locks updated Protocol 27/28 Rust dependencies.
Cargo.toml Pins P28 current and P27 previous hosts/XDR.
cmd/stellar-rpc/internal/integrationtest/infrastructure/docker/upgrades/testnet.p28.json Renames the testnet configuration fixture for P28.
cmd/stellar-rpc/internal/integrationtest/infrastructure/docker/upgrades/testnet.p28.xdr Renames the encoded testnet fixture for P28.
cmd/stellar-rpc/internal/integrationtest/infrastructure/docker/upgrades/unlimited.p28.json Renames the unlimited configuration fixture for P28.
cmd/stellar-rpc/internal/integrationtest/infrastructure/docker/upgrades/unlimited.p28.xdr Renames the encoded unlimited fixture for P28.
cmd/stellar-rpc/internal/integrationtest/infrastructure/test.go Raises the maximum supported protocol to 28.
cmd/stellar-rpc/internal/preflight/preflight_test.go Updates host coverage and upgraded-auth testing.
cmd/stellar-rpc/lib/preflight/src/lib.rs Passes upgraded-auth mode through the P27 host.
go.mod Upgrades go-stellar-sdk to v0.7.0.
go.sum Updates Go dependency checksums.
scripts/check-dependencies.bash Supports old and new XDR revision-file layouts.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Shaptic
Shaptic merged commit e6bb90b into main Aug 3, 2026
25 of 26 checks passed
@Shaptic
Shaptic deleted the protocol-next branch August 3, 2026 21:22
@Shaptic
Shaptic restored the protocol-next branch August 3, 2026 21:32
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.

4 participants