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
evm-gateway-demo: clean port from chase + SDK baebbe88 + PR #185 review items
SDK upgrade (relative to chase):
- Bump fabric-x-sdk to baebbe88 (persistent streams + native ArMA Send→Recv ordering)
- Add context.Context arg to NewSubmitter calls (breaking API change)
- Drop custom ArMASubmitter: SDK now handles ordering correctly
- Switch perf test to NewFabricXTestHarnessWithFactory (fabric-x staging)
- Add FABX_CONFIG_PATH env support (Ansible sets per-replica path)
- Add PERF_PROCESSING_WORKERS / PERF_SUBMITTING_WORKERS env vars
Ported from PR #185:
- Dockerfile: mkdir /data && chmod 777 /data (busybox has no /data)
- endorser/versioned_db_wrapper.go: NewSnapshot(0) resolves to latest committed
block (was reading genesis state for "latest")
- gateway/api/models.go: gasPrice nil fix for EIP-1559 receipts
- integration/test_helpers.go: waitUntilSynced in NewFabricXTestHarnessWithFactory
(60s timeout) so tests don't start before gateway is synced
- integration/perf/replay_json_dataset_test.go: require.NoError for harness setup
- endorser/testimpl/balance_priming_statedb.go: SetSender now actually sets
senderAddr and balanceSlot; GetState only intercepts the specific balance slot
(was intercepting ALL contract storage and returning primeValue, which made
_paused/_blacklisted/etc. read as non-zero and revert every transfer)
- endorser/testimpl/balance_priming_executor.go: recover real sender from tx
and pass to SetSender (was passing zero address); convert vm.ErrExecutionReverted
into ExecutionResult{Status:201} so reverts commit and the test can detect them
Code review items addressed:
- replay_json_dataset_test.go: switch polling from TransactionByHash to
TransactionReceipt; check receipt.Status (1=success, 0=EVM revert) for
correct failure accounting — this also exposed the priming bug above
- gateway/app/app.go: default SyncTimeout 5m → 60s
- gateway/storage/store.go + gateway/core/chain.go: parameterize TruncateBlocks
frequency via Store.BlockTruncationInterval (was hardcoded 1000)
Tooling:
- scripts/run-demo.sh: add --submitting-workers, --processing-workers flags;
quiet-mode uses ssh -T instead of -tt (no PTY CR/LF corruption) and surfaces
section headers, replica progress, and demo result lines
Docs:
- integration/perf/USDC_deployment.md: trim stale troubleshooting entries and
duplicate command examples; collapse output-format section to essentials
0 commit comments