You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rebases the Andamio dolos patch stack from a v1.0.3 base onto upstream txpipe/dolos v1.2.0, shipping as tag v1.2.0-andamio.2. Decision + rationale: Andamio-Platform/andamio-dev-kit-internal#127 (rebase-now over defer-to-v11).
Supersedes #1 — its tx_hash fix ships here as Patch 4 (byte-clean port onto v1.2.0).
What's in the stack now
Patch
Status on v1.2.0
1 — base_path (minibf)
kept (clean cherry-pick)
2 — fill_input_as_output (grpc watch)
DROPPED — upstream-native since v1.1.0 (txpipe/dolos#962)
3 — validate.rs (testing-only)
kept (clean)
4 — tx_hash from TxoRef (minibf)
kept (clean, byte-clean port)
Reviewing this PR
⚠️ The diff against main is dominated by the upstream v1.0.3 → v1.2.0 delta (the ~45 upstream commits below) — not meaningful to review line-by-line. The actual Andamio re-application is a single commit (3835eb2), 8 files on top of v1.2.0:
Landing: per RELEASING.md, main advances by force-push to this branch after review — not the Merge button (a merge would splice the old v1.0.3 stack and the new one together). See the process question in the comment below.
Patch 2 drop — evidence
Dropping fill_input_as_output was gated on confirming upstream populates as_output natively. Verified on stock v1.2.0 (no fork patches):
WatchTx populates as_output on 100% of inputs — 570 txs / ~2,000 inputs (spent 1165/1165, reference 835/835).
andamioscan parity: fork (v1.0.3-andamio.1, with Patch 2) vs rebased v1.2.0 (without), andamioscan's exact predicates over the recent shared window — 24/24 Andamio txs byte-identical on inputs + reference_inputsas_output; identical tx-set.
andamioscan safely ignores the restored upstream idle action (GetApply() nil-guard).
Validation
Functional:addresses/{addr}/utxos returns non-empty tx_hash, byte-matches the prod fork node.
Sponsored-gateway e2e (gateway + sidecar from source, against this build): a complete on-chain enterprise-sponsored build + reconciler → CONFIRMED passed. The later step failed on a known utxos.dev-side submission bug, not dolos.
⚠️ Deploy requires a resync
Deploying v1.2.0-andamio.2 over a running v1.0.3-andamio.1 node forces a Mithril re-bootstrap, for two reasons:
WAL schema force-reset — upstream v1.1.0 (txpipe/dolos#984) versions the on-disk WAL and force-resets on incompatibility (WAL version is incompatible).
Full-archive switch — the planned max_history removal (full-archive mode) needs the entire chain history re-imported; the node currently keeps only ~36 h.
Operational estimate (@nelsonksh): preprod ~1.5 h, mainnet 12–20 h. Local devkit is exempt (data already migrated to v1.2.0 format).
📝 RELEASING.md may need adjustment to document this deploy-time resync — it currently covers cutting the release but not the upgrade consequence on a running node.
Links
Andamio-Platform/andamio-dev-kit-internal#127 — rebase decision + handoff
@nelsonksh — flagging how to land this, since a rebase-onto-new-upstream doesn't fit the normal PR flow and I'd like your call on the process:
The 46-commit list is just the upstream v1.0.3 → v1.2.0 history; the only Andamio change to review is 3835eb2 — git diff v1.2.0..andamio/v1.2.0-rebase (8 files).
Per RELEASING.md, rebases land by force-pushing main to this branch — not the Merge button (a merge would splice the old v1.0.3 patch stack and the new one together).
How would you like to approach it?
Review 3835eb2 here → approve → force-push main to andamio/v1.2.0-rebase (PR auto-closes). And: who force-pushes — you or me?
A different review/landing flow you'd prefer — open to your call.
Either way the deployable artifact (tag v1.2.0-andamio.2 + GHCR image) is already built and validated; this is just about advancing main and your sign-off before the redeploy (which needs the WAL/full-archive resync noted in the description).
Option 1, please drive the force-push — you authored the rebase and RELEASING.md is your playbook. Just approved 3835eb2; you advance main at your convenience.
Independent of ops/redeploy — image is already on GHCR, so the fork-main advance has no deploy effect. Ops PR Andamio-Platform/andamio-ops#159 (drops max_history, adds max_rollback) lands separately when @workshop-maybe / @xeeban review, which is what actually triggers the staging WAL Mithril resync.
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
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.
Summary
Rebases the Andamio dolos patch stack from a
v1.0.3base onto upstreamtxpipe/dolos v1.2.0, shipping as tagv1.2.0-andamio.2. Decision + rationale: Andamio-Platform/andamio-dev-kit-internal#127 (rebase-now over defer-to-v11).Supersedes #1 — its
tx_hashfix ships here as Patch 4 (byte-clean port onto v1.2.0).What's in the stack now
base_path(minibf)fill_input_as_output(grpc watch)txpipe/dolos#962)tx_hashfromTxoRef(minibf)Reviewing this PR
mainis dominated by the upstream v1.0.3 → v1.2.0 delta (the ~45 upstream commits below) — not meaningful to review line-by-line. The actual Andamio re-application is a single commit (3835eb2), 8 files on top of v1.2.0:→
crates/core/{config,lib}.rs,crates/minibf/src/{lib,mapping}.rs+README.md,crates/cardano/src/validate.rs,src/bin/dolos/minibf.rs,docs/content/apis/minibf.mdx.src/serve/grpc/watch.rsis intentionally untouched (Patch 2 dropped).Landing: per
RELEASING.md,mainadvances by force-push to this branch after review — not the Merge button (a merge would splice the old v1.0.3 stack and the new one together). See the process question in the comment below.Patch 2 drop — evidence
Dropping
fill_input_as_outputwas gated on confirming upstream populatesas_outputnatively. Verified on stock v1.2.0 (no fork patches):WatchTxpopulatesas_outputon 100% of inputs — 570 txs / ~2,000 inputs (spent 1165/1165, reference 835/835).v1.0.3-andamio.1, with Patch 2) vs rebased v1.2.0 (without), andamioscan's exact predicates over the recent shared window — 24/24 Andamio txs byte-identical oninputs+reference_inputsas_output; identical tx-set.idleaction (GetApply()nil-guard).Validation
addresses/{addr}/utxosreturns non-emptytx_hash, byte-matches the prod fork node.Deploying
v1.2.0-andamio.2over a runningv1.0.3-andamio.1node forces a Mithril re-bootstrap, for two reasons:txpipe/dolos#984) versions the on-disk WAL and force-resets on incompatibility (WAL version is incompatible).max_historyremoval (full-archive mode) needs the entire chain history re-imported; the node currently keeps only ~36 h.Operational estimate (@nelsonksh): preprod ~1.5 h, mainnet 12–20 h. Local devkit is exempt (data already migrated to v1.2.0 format).
Links
tx_hashsymptom (closed)cc @nelsonksh