Repository navigation
Protocol 30 GA release train #6028
Copy link
Copy link
Open
Labels
release-trainProtocol GA release train trackingProtocol GA release train tracking
Description
Tracking issue for the Protocol 30 GA release train across go-stellar-sdk, stellar-rpc,
stellar-horizon, and stellar-galexie. Driven by the /release-train skill; the yaml block
below is the machine-readable source of truth and is reconciled against live GitHub state on
every invocation. Humans: check items off, but the yaml is what the skill trusts.
Protocol 30 carries CAP-0084, CAP-0087 and CAP-0088. Train tuple: stellar-xdr 4f524bba,
stellar-core 30.0.0-3642.0e49751aa (v30.0.0), soroban-env-host 30.0.0 (29.0.2 for the
previous protocol).
Checklist
- preflight (2026-10-20), report below
- main merged into protocol-next in all four repos before the train, all with merge commits: Merge main into protocol-next #6027, Merge main into protocol-next stellar-rpc#1131, Merge main into protocol-next stellar-horizon#252, Merge main into protocol-next stellar-galexie#99
- decisions 1–3 (2026-10-20): Cargo-only host difference waived; CAP-0084, CAP-0087 and CAP-0088 all ship; xdr, protocols/rpc, clients/stellarcore: read ledger keys, envelopes and topic filters through XDR views #6026 held out of v0.8.0
- SDK flip PR (protocol-next): Protocol 30 GA: cut the 0.8.0 changelog #6029, MERGED (squash
3da70d87). Changelog only ([0.8.0]cut,[0.7.3]backfilled);XDR_COMMITwas already4f524bbawithXDR_FEATURESempty - SDK merge PR: Protocol 30 Support #6030, MERGED as merge commit
921a5b16(parents3cac1010,3da70d87); protocol-next survived - release sdk: v0.8.0, a lightweight tag on
921a5b16(main-reachable), with the GitHub release published; proxy.golang.org serves.infoand.mod - rpc: closed Bump current version of soroban-env to latest tip stellar-rpc#916 (
automation/bump-soroban-env) - rpc: Protocol 30 Support stellar-rpc#1133, MERGED as merge commit
13e53516(parents40277d1c,c24cf16a); protocol-next survived.release/v30.0.0was created at13e53516with no extra commits, so there is no release PR and the tag goes on13e53516 - release rpc: release branch, package and docker builds, staging sign-off, tag, promote to stable, kube deploys
- package build:
soroban-package-builderbuild 220 (BRANCH=release/v30.0.0,VERSION_OVERRIDE=30.0.0), so deb30.0.0-220is built from13e53516and in noble unstable and testing - docker build:
soroban-rpc-docker-builderwith core30.0.0-3642.0e49751aa.noble, rpc30.0.0-220,PUSH_PUBLIC, pushedstellar/stellar-rpc:30.0.0-220(and the short30.0.0), amd64 digestsha256:89c01197…b84b.stellar-rpc versionin the image reports30.0.0-13e53516…with xdr4f524bbaand hosts 29.0.2/30.0.0, and its core reports30.0.0 (0e49751aa) - staging kube PR: stellar/kube#5560 (signed commit
2092bf3e, approved, squash-merged as9a5c40f7at 05:24Z) moves the three dev-ekssoroban-rpc-*-devapps from dev ECR29.0.0-210todocker.io/stellar/stellar-rpc:30.0.0-220 - staging sign-off (human, 2026-10-21): rpc-testnet-dev and rpc-futurenet-dev report
commitHash13e53516, and simulation and history methods match production (evidence comment below). rpc-pubnet-dev has no public route and the cluster API was unreachable without the VPN, so it was signed off unverified - tag
v30.0.0(annotated, tag objectee5a1a3c) on13e53516(main tip), GitHub release published 06:07Z and marked latest;release/v30.0.0deleted - promote-to-stable with
PACKAGE=stellar-rpc_30.0.0-220_amd64:30.0.0-220is in noble and jammy stable, and Docker Hubstable/latestpoint at the release digest (06:33Z) - production kube PR: stellar/kube#5561 (signed commit
9ce8ec5c, approved, squash-merged as645e5b35at 06:22Z) movesfuturenet-rpc(rpc-futurenet.stellar.org,29.0.0) andsoroban-rpc-testnet-prd(29.0.1) to30.0.0-220. Rolled out by 06:33Z: every sampled replica of both endpoints reportscommitHash13e53516and core 30.0.0, and both are healthy
- package build:
- horizon: Protocol 30 Support stellar-horizon#253 (flip and merge in one PR), MERGED as merge commit
b3ff4119(parentsc0e63c2c,23b05778); protocol-next survived. Both legs runstellar/stellar-rpc:30.0.0-220; the P30 leg passed on re-run after aTestReingestDBtiming failure (100 of 101 passed the first time, RPC tests included) - release horizon:
v30.0.0, a lightweight tag onb3ff4119(main tip), release "Horizon v30.0.0" published 08:38Z; theHorizon releaseworkflow (run 39570773663) attached the darwin-amd64, linux-amd64, linux-arm and windows-amd64 binaries- package-builder (Jenkins
Platform/stellar-horizon-package-builder-new) build 566 withBRANCH=refs/tags/v30.0.0andVERSION_OVERRIDE=30.0.0: deb30.0.0-566is in jammy and noble testing, and itsstellar-horizonbinary reports30.0.0-b3ff4119cc99ebcc8048334f5ec64e78c16d1666. The triggeredstellar-horizon-docker-builderbuild 729 passed: it installed core30.0.0-3642.0e49751aa.nobleand pushed ECRdev/stgstellar-horizon:30.0.0-566 - staging deploy (Jenkins
Platform/deployinator,PACKAGE_TESTING=30.0.0-566): stg_pubnet build 852 (20 web nodes, 2 captive-core ingest nodes) and stg_testnet build 854 (3 ingest nodes), every hostfailed=0. Not checked on the hosts themselves, which are only reachable on the internal network. From 29.0.0 the upgrade only swaps the binary: no migrations, ingestCurrentVersionunchanged at 20, no flag changes - futurenet: deployinator
dev_futurenet(build 853) matched no hosts and changed nothing. horizon-futurenet.stellar.org is thefuturenet-horizonArgo app on kube001-dev-eks, so it moved by stellar/kube#5576 (signed commita8266c22, approved, squash-merged as73461329at 18:54Z), which bumpedstg/stellar-horizonfrom29.0.0-563to30.0.0-566. Rolled out by 19:09Z: every sample reports30.0.0-b3ff4119…, supported protocol 30 and stellar-core 30.0.0 (0e49751aa), with ingestion at the core's latest ledger. All requests errored for under a minute during the pod restart - promote-to-stable (Jenkins
Platform/stellar-horizon-promote-to-stable-new,PACKAGE=stellar-horizon_30.0.0-566_amd64, 2026-10-21): deb30.0.0-566is in jammy and noble stable. Docker Hub30.0.0-566,30.0.0,stableandlatestall point atsha256:d0254566…, pushed at 19:21Z. That image is docker-builder build 729's (VERSION=30.0.0-566, core from noble stable), and public ECR30.0.0serves the same image config - production deploy (deployinator,
PACKAGE_STABLE=30.0.0-566): prd_testnet and prd_pubnet, green and blue, each before its network's protocol 30 upgrade. As of 2026-10-22, horizon-testnet and horizon.stellar.org still report Horizon 29.0.0 (supported protocol 29) on stellar-core 30.0.0. Horizon 29 stops ingesting at the first protocol 30 ledger. Testnet, 2026-10-22:prd_testnet_bluewas upgraded, and stellar/terraform#7335 moved the testnet ALB to blue (applied 14:14Z after a re-plan, because Atlantis's Terraform had been upgraded since the first plan). At 14:15Z every sample of horizon-testnet.stellar.org reports30.0.0-b3ff4119…, supported protocol 30 and stellar-core 30.0.0, with ingestion caught up, and the history, state and fee endpoints answer with current data. Green, on 29.0.0, is the standby. Pubnet:prd_pubnet_bluewas upgraded, and stellar/terraform#7336 moved the pubnet ALB to blue (applied 14:34Z). Every sample of horizon.stellar.org then reports30.0.0-b3ff4119…and supported protocol 30, with ingestion caught up. For about two hours after the flip,/trade_aggregationsreturned 503 (database timeouts at about 10.5s) for every pair with trades, while other endpoints answered in about 0.5s. By 16:33Z it answered 200 in about 1.5s; the cause isn't visible from outside. Remaining: upgrade the green standbys (prd_testnet_green,prd_pubnet_green) before each network's vote: testnet 2026-11-03 17:00 UTC, pubnet 2026-11-23 17:00 UTC
- package-builder (Jenkins
- galexie: Protocol 30 Support stellar-galexie#101, MERGED as merge commit
4d89b44e(parents00a8c318,2ccdd50d); protocol-next survived - release galexie:
galexie-v30.0.0, a lightweight tag on4d89b44e(main tip, pinning go-stellar-sdk v0.8.0 and core30.0.0-3642.0e49751aa.noble), released afterPush sha tag container imagepassed. The tag run pushedstellar/stellar-galexie:30.0.0and:latest - re-sync protocol-next in all four repos, all fast-forwards: sdk
921a5b16, rpc13e53516, horizonb3ff4119, galexie4d89b44e - follow-ups done or converted to tracked issues: galexie quickstart re-pin is Move the integration-test quickstart image to the latest track once it supports protocol 30 stellar-galexie#102, unblocked 2026-10-22 when quickstart's latest track published
v682-b1552.1-latest(core v30.0.0), and closed by Run the integration tests on quickstart's latest track stellar-galexie#103 (approved, squash-merged asc650b13bat 13:31Z; all three integration legs passed at protocol 30 on the new image); the stellar-xdr tag needs no follow-up (decision 6) Outside the train, the rpcv2 archive-node beta was rebuilt for protocol 30 in rpcv2: support protocol 30 in the archive node beta stellar-rpc#1155 (tagrpcv2-v0.1.0-beta.2) and published overstellar/unsafe-stellar-rpc:archive-node-beta(sha256:1c02ccbe…, 2026-10-27).
Decisions (resolved 2026-10-20)
- soroban-env-host commit vs core's submodule. The strict preflight check fails: rs-soroban-env
v30.0.0(0c99950e, the crates.io 30.0.0 source) is not core v30.0.0'ssrc/rust/soroban/p30
submodule (6e6c4a87). The only commit between them is Use crates.io soroban-wasmi 29.0.0 rs-soroban-env#1751, which
changesCargo.toml(+1/-1) andCargo.lock(+2/-2) to takesoroban-wasmi29.0.0 from
crates.io instead of0.31.1-soroban.29.0.0, and those two wasmi releases differ only in the
version fields of threeCargo.tomlfiles. The previous-protocol host has the same shape:
v29.0.2(3d565bda) is core'sp29submodule (a721944b) plus Prepare patch 29.0.1 rs-soroban-env#1748
and Prepare patch 29.0.2 rs-soroban-env#1752, which touch onlyCargo.tomlandCargo.lock. The code the
preflight hosts run is identical to the code core applies with. Waived. - CAPs. No feature gates remain on any protocol-next (
XDR_FEATURESis empty; rpc's Cargo.toml
has nonextorcap_*features). Confirm CAP-0084, CAP-0087 and CAP-0088 all ship; core
v30.0.0 enables all three at protocol 30. All three ship. - xdr, protocols/rpc, clients/stellarcore: read ledger keys, envelopes and topic filters through XDR views #6026 targets protocol-next. Ship it in v0.8.0, or hold it until
after the tag? If it ships, the rpc flip also has to adapt to its API changes
(SegmentFilter.ScValandstellarcore.Client.GetLedgerEntries). Held: not in v0.8.0.
Defaults the train will apply unless someone objects:
- CI core images. The GA images
stellar/stellar-core:30.0.0-3642.0e49751aa.{noble,jammy}
already exist (published 2026-10-16), so the flip PRs pin them directly and there is no
separate unsafe→GA swap at release time. - Horizon's P29 leg moves to the same
.nobleflavor as its P30 leg (deb
30.0.0-3642.0e49751aa.noble~buildtests), matching rpc and galexie. - stellar-xdr tag. There is no
v30.0tag yet (tags stop atv28.0).release sdkre-checks
for it; if it is still missing then, the P28 precedent applies (tag the SDK and track the
tag check separately, as in Verify the stellar-xdr v28.0 tag matches the commit v0.7.0 pinned #5986).
Resolved 2026-10-21:v30.0is published as a lightweight tag on4f524bba, the commit v0.8.0
generated from, so there is nothing to track. (v28.0also landed, on v0.7.0's commit, so Verify the stellar-xdr v28.0 tag matches the commit v0.7.0 pinned #5986 is closed.) - RPC is not rebuilt from the tag.
v30.0.0goes on13e53516, the commit build 220 was built from,
so build 220 is promoted as-is (as P28 and 29.0.1 were) instead of a second package/docker build from the tag. - Kube pins the full
30.0.0-220tag on staging and in production, not the floating30.0.0.
Preflight report (2026-10-20)
| Check | Result |
|---|---|
| Default branches (API) | ✅ main in all four repos |
| stellar-xdr ref | 4f524bba; no v30.0 tag yet (tag_pending); not on curr (diverged 10/18), as in past cycles |
| XDR ↔ core | ✅ core 0e49751aa src/protocol-curr/xdr = 4f524bba; no src/protocol-next/xdr |
| env-host ↔ core | ❌ strict check (0c99950e ≠ 6e6c4a87); code-identical, see decision 1 |
| Previous-protocol host ↔ core | same as above (3d565bda ≠ a721944b; Cargo-only) |
| crates.io | ✅ soroban-env-host/soroban-simulation 30.0.0 (2026-10-16) and 29.0.2 (2026-10-13), stellar-xdr 30.0.0 (2026-10-08); none yanked |
| Core debs (apt) | ✅ 30.0.0-3642.0e49751aa.{noble,jammy} in unstable and stable; ~buildtests and ~perftests variants in unstable |
| Core images | ✅ stellar/stellar-core:…{noble,jammy}; stellar/unsafe-stellar-core:….noble (no .jammy in unsafe) |
| SDK next version | v0.8.0 (latest release v0.7.3) |
| Feature gates | ✅ none (SDK XDR_FEATURES empty, XDR_COMMIT = 4f524bba; rpc only has the permanent unstable-next-api) |
replace directives |
✅ none in any protocol-next go.mod |
Images outside stellar/ |
✅ none (only CI-internal local images) |
| rpc automation PR | |
| horizon release workflow | ✅ VERSION=${GITHUB_REF_NAME#v} already fixed |
| galexie quickstart image | stellar/quickstart:v678-b1528.1-nightly: immutable nightly build, P30 leg green; follow-up below |
| rpc image for protocol 30 | none on Docker Hub yet (expected; horizon's merge gate) |
| SDK CHANGELOG | ## Pending includes entries v0.7.3 already shipped; split them out when cutting [0.8.0] |
State
train:
protocol: 30
opened: 2026-10-20
last_reconciled: 2026-10-21
closed: null # reopened 2026-10-21: horizon deb + docker image were never built
votes: {testnet: 2026-11-03T17:00Z, pubnet: 2026-11-23T17:00Z}
stellar_xdr:
ref: 4f524bbac80c781c06e4fb5fc93a2d0d331d6705
commit: 4f524bbac80c781c06e4fb5fc93a2d0d331d6705
tag: v30.0 # lightweight tag on the commit above, published after preflight (checked 2026-10-21)
tag_pending: false
core:
build: 30.0.0-3642.0e49751aa # stellar-core v30.0.0
verified_flavors: [noble, noble~buildtests, jammy, jammy~buildtests]
unsafe_images: [noble] # stellar/unsafe-stellar-core has no .jammy for this build
ga_images: [noble, jammy] # stellar/stellar-core, published 2026-10-16
env_host:
crates_version: 30.0.0
rs_commit: 0c99950e96128beba3319aa96b116646ce974e69
core_submodule: 6e6c4a87f46c7fdab0c2e2be82901b1e32378223 # differs by Cargo-only rs-soroban-env#1751
prev_crates_version: 29.0.2
prev_rs_commit: 3d565bda02c522dce089dc42d5e3a94a05111891
prev_core_submodule: a721944b5a4ea830a4bf5c2dbb8dbe8c1e1354c5 # differs by Cargo-only rs-soroban-env#1748, #1752
mismatch_waived: true # decision 1, 2026-10-20: Cargo-only
gates:
cap_features: [] # no XDR_FEATURES, cap_* or next gates on any protocol-next
caps_confirmed: true # decision 2: CAP-0084, CAP-0087, CAP-0088 all ship
sdk_6026: hold # decision 3: not in v0.8.0
sdk:
next_version: v0.8.0
flip_pr: 6029 # squash-merged 3da70d87
merge_pr: 6030
merge_sha: 921a5b16af9a72d973ab9ba666e96ad8bf2f6ce4
released: true # v0.8.0, lightweight tag on merge_sha
rpc:
flip_pr: 1133 # flip + merge in one PR into main
merge_pr: 1133
merge_sha: 13e53516633c3ce1281c7edbacb607107d3a4e55
release_pr: null # release/v30.0.0 == merge_sha, no release PR needed
rc_deb_build: 220 # soroban-package-builder #220 from release/v30.0.0 @ 13e53516; noble unstable + testing
rc_image: stellar/stellar-rpc:30.0.0-220 # sha256:89c011978756ba1408ae92db336ff1db98aae40f26c22aba3e10a321f7c2b84b (amd64); short tag 30.0.0 is the same digest
kube_staging_pr: 5560 # stellar/kube, signed 2092bf3e; merged 9a5c40f7 2026-10-21T05:24Z
staging_validated: true # user sign-off 2026-10-21; pubnet-dev not verified in-cluster
release_sha: 13e53516633c3ce1281c7edbacb607107d3a4e55
released: true # v30.0.0 annotated tag ee5a1a3c -> 13e53516; release published 2026-10-21T06:07Z
ga_core_image_swapped: true # GA stellar/stellar-core images pinned from the flip (decision 4)
ga_deb_build: 220 # no rebuild from the tag (decision 7)
promoted_stable: true # apt noble+jammy stable 30.0.0-220; docker stable/latest = sha256:89c01197 (06:33Z)
kube_dev_pr: null
kube_prd_pr: 5561 # stellar/kube, signed 9ce8ec5c; merged 645e5b35 2026-10-21T06:22Z (futurenet-rpc + testnet-prd)
ga_image: stellar/stellar-rpc:30.0.0 # same digest as 30.0.0-220
horizon:
flip_pr: 253 # flip + merge in one PR into main
rpc_image_pinned: stellar/stellar-rpc:30.0.0-220 # both legs, 23b05778
merge_pr: 253
merge_sha: b3ff4119cc99ebcc8048334f5ec64e78c16d1666
released: true # v30.0.0 lightweight tag on merge_sha
ga_core_image_swapped: true # GA stellar/stellar-core images pinned from the flip (decision 4)
ga_repin_pr: not_needed # 30.0.0-220 is the released rpc build (same digest as 30.0.0)
deb_build: 566 # package-builder-new build 566 from refs/tags/v30.0.0; jammy+noble testing
docker_built: true # docker-builder build 729: ECR dev/stg 30.0.0-566, core 30.0.0-3642.0e49751aa.noble
promoted_stable: true # apt jammy+noble stable 30.0.0-566; Docker Hub 30.0.0-566/30.0.0/stable/latest = sha256:d0254566 (2026-10-21T19:21Z)
staging_deployed: true # deployinator 852 stg_pubnet, 854 stg_testnet (853 dev_futurenet matched no hosts)
futurenet_kube_pr: 5576 # merged 73461329; horizon-futurenet on 30.0.0-566 since 19:09Z
prd_deployed: false # prd_testnet + prd_pubnet, green + blue; blue live on testnet since 14:14Z (stellar/terraform#7335) and pubnet since 14:34Z (stellar/terraform#7336); green standbys still 29.0.0
galexie:
flip_pr: 101 # flip + merge in one PR into main
merge_pr: 101
merge_sha: 4d89b44ed2677fc639bd4aa8e70f0b8e769bb6ad
sha_image_published: true # stellar/stellar-galexie:4d89b44
released: true # galexie-v30.0.0 -> 4d89b44e
resync:
sdk: true # protocol-next fast-forwarded to 921a5b16
rpc: true # protocol-next fast-forwarded d1916007..13e53516
horizon: true # protocol-next fast-forwarded 17dc53db..b3ff4119
galexie: true # protocol-next fast-forwarded to 4d89b44e
pre_train_syncs: # main → protocol-next, merge commits, 2026-10-20
sdk: stellar/go-stellar-sdk#6027
rpc: stellar/stellar-rpc#1131
horizon: stellar/stellar-horizon#252
galexie: stellar/stellar-galexie#99
followups:
- repo: stellar/stellar-galexie
issue_or_pr: 102
fix_pr: 103 # signed 0b0599b7, merged c650b13b 2026-10-22T13:31Z; v678-b1528.1-nightly -> v682-b1552.1-latest (quickstart dc9a8af1, core v30.0.0)
done: true
note: re-pin GALEXIE_INTEGRATION_TESTS_QUICKSTART_IMAGE from v678-b1528.1-nightly to an immutable latest-track build once quickstart publishes core 30Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
release-trainProtocol GA release train trackingProtocol GA release train tracking
Activity
tamirms commentedon Oct 20, 2026
Decisions recorded (2026-10-20): the Cargo-only soroban-env-host difference from core's submodules is waived; CAP-0084, CAP-0087 and CAP-0088 all ship; #6026 is held out of v0.8.0. Opened the SDK flip PR #6029 (changelog only:
[0.8.0]cut,[0.7.3]backfilled).tamirms commentedon Oct 20, 2026
Dependency check behind decision 1, from
cargo treeon the crates.io hosts compared with core0e49751aa'ssrc/rust/src/dep-trees/p{29,30}-expect.txt:soroban-env-host30.0.0):stellar-xdr30.0.0,stellar-strkey1.0.0,wasmi_core0.13.0 andwasmi_arena0.4.1 are the same crates.io releases core's p30 host uses.soroban-wasmiis 29.0.0 here and0.31.1-soroban.29.0.0in core; the two differ only in version fields.soroban-env-host29.0.2):stellar-xdr28.0.0 andstellar-strkey0.0.13 are the same releases core's p29 host uses. Core builds wasmi from gitstellar/wasmi@ff5aeeb2.soroban-wasmi29.0.0 differs from it only in version fields, and thewasmi_core0.13.0 source is identical.wasmi_arena0.4.1 differs from the fork's 0.4.0 by one line, theSyncbound onComponentVec(where T: Send→where T: Sync). That bound is a compile-time check and changes no runtime code.scripts/check-dependencies.bashpasses on the prepared stellar-rpc pin set.Protocol 30 GA: cut the 0.8.0 changelog (#6029)
tamirms commentedon Oct 20, 2026
Squash-merged #6029 into protocol-next (
3da70d87) after approval with 11/11 checks green. Opened the SDK merge PR #6030 (protocol-next → main), which must be merged with a merge commit.tamirms commentedon Oct 20, 2026
Operator decision (2026-10-20): the train runs every remaining step itself once its conditions are met: the merge-commit merges (
gh pr merge --merge, pinned to the head commit, with two parents checked afterwards), the tags and GitHub releases, and squash-merges of green sub-PRs into protocol-next. RPC's staging sign-off still comes from a person. Reviews are requested from @stellar/platform-eng.tamirms commentedon Oct 20, 2026
SDK done: #6030 merged as merge commit
921a5b16(parents3cac1010,3da70d87), and v0.8.0 is tagged on it with the release published. proxy.golang.org serves v0.8.0.Platform PRs, all on v0.8.0 and all into
main. Each branch is the flip commit on top of protocol-next, so one PR per repo replaces the separate flip and merge PRs. Each still needs a merge commit, so protocol-next stays an ancestor of main:make go-testandscripts/check-dependencies.bashpass locally. Bump current version of soroban-env to latest tip stellar-rpc#916 is closed.go build,go vetandgo test ./...pass locally.tamirms commentedon Oct 20, 2026
Merged stellar/stellar-galexie#101 as merge commit
4d89b44e(parents00a8c318main,2ccdd50drelease commit on protocol-next) after approval with 14/14 checks green; protocol-next survived. Waiting forpublish-sha-tag-imageon4d89b44ebefore tagginggalexie-v30.0.0.tamirms commentedon Oct 20, 2026
Released galexie-v30.0.0: a lightweight tag on
4d89b44e(main tip, pinning go-stellar-sdk v0.8.0 and core30.0.0-3642.0e49751aa.noble). The tag run pushedstellar/stellar-galexie:30.0.0and:latest. Fast-forwarded protocol-next to main in go-stellar-sdk (921a5b16) and stellar-galexie (4d89b44e).tamirms commentedon Oct 20, 2026
Merged stellar/stellar-rpc#1133 as merge commit
13e53516(parents40277d1cmain,c24cf16arelease commit) after approval with 17/17 checks green; the one flaky P30 test passed on re-run. Createdrelease/v30.0.0at13e53516. Next: Jenkinssoroban-package-builder(BRANCH=release/v30.0.0 VERSION_OVERRIDE=30.0.0 PROMOTE_TO_TESTING=true), thensoroban-rpc-docker-builder(STELLAR_CORE_VERSION=30.0.0-3642.0e49751aa.noble,PUSH_PUBLIC=true).tamirms commentedon Oct 21, 2026
rpc:
stellar/stellar-rpc:30.0.0-220is on Docker Hub (sha256:89c01197…b84b; the short30.0.0tag is the same digest). The image reports stellar-rpc30.0.0-13e53516633c3ce1281c7edbacb607107d3a4e55and bundles stellar-core30.0.0 (0e49751aa). Staging deploy is up as stellar/kube#5560. Horizon's two legs moved to that image in stellar/stellar-horizon#253 (23b05778).tamirms commentedon Oct 21, 2026
rpc: stellar/kube#5560 was approved and squash-merged as
9a5c40f7(2026-10-21T05:24Z), so ArgoCD is rolling30.0.0-220out to the three dev-eks apps. rpc protocol-next was fast-forwarded to main (d1916007..13e53516).tamirms commentedon Oct 21, 2026
rpc staging evidence (2026-10-21, after stellar/kube#5560 rolled out at 05:28Z), for the sign-off:
getVersionInfo30.0.0-13e53516…, core30.0.0 (0e49751aa), protocol 29release/v30.0.0head13e53516=13e53516getHealthsimulateTransaction(native SACdecimals,balance)minResourceFee, instructions, disk-read bytes, footprintgetEvents/getTransactions/getLedgers/getFeeStatsover 200 recent ledgersThe simulation row is the main one. On protocol 29 networks the preflight now runs on the previous-protocol host (29.0.2), not the 29.0.1 host the deployed releases use. rpc-pubnet-dev does not resolve publicly, so it was not checked from outside the cluster. The release branch has not moved since build 220.
tamirms commentedon Oct 21, 2026
rpc: staging signed off (2026-10-21), with rpc-pubnet-dev not verified from inside the cluster. Tagged
v30.0.0(annotated) on13e53516and published https://github.com/stellar/stellar-rpc/releases/tag/v30.0.0. Build 220 is promoted without a rebuild (decision 7). Production deploy is up as stellar/kube#5561.release/v30.0.0is deleted.horizon: stellar/stellar-horizon#253's P30 leg failed only
TestReingestDB(100 passed, 0 skipped, so the RPC tests ran against30.0.0-220and passed). The failure is a timing overlap: the reingest range ended at ledger 47, which live ingestion had just reached. Re-running the failed job.tamirms commentedon Oct 21, 2026
horizon: stellar/stellar-horizon#253 merged as merge commit
b3ff4119(parentsc0e63c2c,23b05778) after the P30 re-run passed. Taggedv30.0.0onb3ff4119and published https://github.com/stellar/stellar-horizon/releases/tag/v30.0.0. protocol-next fast-forwarded17dc53db..b3ff4119, so all four repos are re-synced.rpc: stellar/kube#5561 merged as
645e5b35(06:22Z) and rolled out by 06:33Z. Every sampled replica of soroban-testnet.stellar.org and rpc-futurenet.stellar.org reports13e53516with core 30.0.0, and both are healthy.Left: promote-to-stable (
stellar-rpc_30.0.0-220_amd64) and confirming the Horizon release binaries.tamirms commentedon Oct 21, 2026
The Protocol 30 GA train is complete.
921a5b16(merge commit of #6030)4d89b44e(merge commit of stellar/stellar-galexie#101)stellar/stellar-galexie:30.0.0,:latest13e53516(merge commit of stellar/stellar-rpc#1133)30.0.0-220in stable;stellar/stellar-rpc:30.0.0-220=:30.0.0=:stable=:latest; staging (stellar/kube#5560) and soroban-testnet + rpc-futurenet (stellar/kube#5561)b3ff4119(merge commit of stellar/stellar-horizon#253)All tags are on main-reachable merge commits, and protocol-next is fast-forwarded to main in all four repos. The one remaining follow-up is tracked in stellar/stellar-galexie#102. Closing.
tamirms commentedon Oct 21, 2026
Reopening: Horizon v30.0.0 has its GitHub release binaries, but the Jenkins packaging never ran. apt.stellar.org has no
stellar-horizon30.0.0 deb (only30.0.0~vnext-564), and Docker Hub has nostellar/stellar-horizon:30.0.0(the newest tags are29.0.0-563,stableandlatest). The two remaining steps are listed under release horizon in the checklist.