Repository navigation
Conversation
|
Reviewed at c46fc0d (scanner #12 at e25c2dd13d, health-check #4 at fc79eac192), from the watcher-operator side. Startup failure can affect every chain: Sticky halt, cause discarded: Inspector per transaction: the native inspector is re-hashed and run with Runtime changes for all watchers: Node 20.11 → 22.18, npm 11.6.2 pinned globally, NU7: ZIP 259 invalidates v4, uses branch ID Catch-up gating: the tip in Smaller items: no tests in this PR (gating, config parser, init change); scanner/utils fixtures are regtest v5 only, with no v4/v6 or rollback-at-depth test. The loopback-only RPC restriction and fail-closed genesis/network checks are good choices — thanks for those. |
|
Thanks for the detailed review. The corrections are in 3b52cec, with operator requirements and upgrade boundaries.
Validation: 42 focused tests, TypeScript and Rollup pass on Node 22.18.0 with the retained scanner-compatible The most useful next reviews would be failure/restart with a retained scanner database, pending withdrawals across activation, and the descriptor display in the watcher API/UI. Throughput profiling should guide the bounded inspector batch. |
|
The follow-up implementation is now pushed across the existing PRs:
The most useful next review is the shared-runtime/v1-versus-Service2 decision and the release/operator contract: exact producer versions, node/activation qualification, sustained backlog sizing and reconciliation of downstream liabilities after a deep reorg. |
|
Thanks. Read both updates and checked f478f6c. With the cursor no longer advancing past a failed extraction, and the new process-kill/SQLite regression covering persistent-fault refusal and duplicate-free replay, that covers my concern about restart policies. From the operator side on the open runtime question: I'd prefer the Node 22 / npm / pkg / typeorm-patch changes shipped separately from Zcash and qualified on existing chains first, so an upgrade for everyone else doesn't depend on the Zcash review. |
|
Thanks for confirming that the restart concern is covered, and for the operator view on release scope. I've made the proposed split concrete in 67ff561: Node/npm/pkg, Rollup, the SQLite import patch, scanner-v2 dependency pin and shared release tooling form the runtime contribution; Zcash dependencies, configuration and admission gates follow it. The plan requires a clean runtime-only lock and an existing-chain synthetic path through observation, commitment/reveal and permit return before broader chain-family and packaged-artifact qualification. The committed lock in this PR still reflects the old manifest, so this is not an already-qualified standalone runtime release. Given the maintainer discussion on the temporarily closed #12, the remaining choice is a separate v1 runtime contribution or the watcher-service-2 route. The operator preference for separating the runtime is now recorded; branch extraction should follow that maintainer choice. |
Add transparent Zcash watcher support
Register the Zcash scanner and observation extractor, configure the network and native inspector binding, and preserve fail-closed synchronization. The shared token map can contain Zcash without requiring a Zcash RPC configuration on an existing-chain watcher. Readiness distinguishes catch-up from a halt, preserves the first sanitized error and refuses progress after incomplete extraction.
The operator requirements cover diagnosis, controlled recovery, native builds, upgrade qualification, input references and the proposed runtime split.
Validation
Companion changes and release limits
utils #8 and scanner #12 add bounded native batches and protect rollback during inspection/persistence. The native pin recognizes NU7 with offline parser/v5-signature tests. guard-service #22 rechecks the branch after authorization and before sending; ui #31 renders input references without sender-address links. NU7 node admission and activation remain unqualified.
The operator follow-up accepts restart coverage and favors a shared runtime release qualified on existing chains before Zcash. The documentation maps the runtime/Zcash file split and the required synthetic existing-chain journey and packaging checks. The current committed lock still reflects the old manifest; a runtime-only lock is required first, followed by the Zcash consumer lock after producer releases.
The Node 22 work overlaps temporarily closed #12. Maintainers must choose a separate v1 runtime contribution or watcher-service-2 before extraction. Base #11 shares registration files but implements a different chain. The coordinating review owns producer releases, consumer locks, hosted CI and deployment qualification. No Mainnet readiness is claimed.