feat: migrated adder-library-starter-kit code
Signed-off-by: Jenita <[email protected]>
Signed-off-by: Jenita <[email protected]>
Signed-off-by: Jenita <[email protected]>
Signed-off-by: Jenita <[email protected]>
Move the run/dmtrcli logic out of e2e.yaml into .github/e2e/scripts/ (run-test.sh, setup-dmtr-socket.sh, stop-dmtr-tunnel.sh), invoked from the workflow steps. Scripts read the same env vars the steps already set; committed with the executable bit so they run after checkout. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Replaces the EKS-backed e2e workflow with one that runs entirely on github-hosted runners. Each leg runs the release image via `docker run` + `timeout` and gates on the process exit code; the new WorkStats filter gives each test a finalization policy so oura self-terminates after N blocks (exit 0), the Assert sink panics on a bad block (non-zero), and `timeout` guards a hang (124). - delete the `prepare` job (EKS kubeconfig / namespace / IRSA service account) - extract each config from its k8s ConfigMap into .github/e2e/configs/*.toml, rewritten for the oura v2 schema (peers/socket_path, top-level chain/intersect, LegacyV1 filter for the Assert sink, SplitBlock+ParseCbor for cloud sinks, RollbackBuffer for min_depth, WorkStats for finalization) - AWS creds via aws-actions/configure-aws-credentials (assuming the OuraE2ETest role) injected into the container instead of EKS IRSA - n2c uses a Demeter dmtrcli socket port-forward (placeholder; DMTR_API_KEY secret) and is continue-on-error until that path is finalized Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
The U5C source connects over TLS via tonic/rustls. In builds that pull more than one rustls crypto provider (e.g. the `aws` feature brings in aws-lc-rs alongside ring), rustls has no process-default provider and panics on the first TLS handshake (`no process-level CryptoProvider available`). Install the ring provider once at startup, gated on the `u5c` feature. This only surfaced now because nothing exercised U5C in a multi-provider build; the manual u5c tests built `--features u5c` alone (single provider). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
The three relay.cnode-m1.demeter.run endpoints map to different networks: :3000 = Mainnet, :3001 = PreProd, :3002 = Preview. Mainnet legs use :3000, preview n2n legs use :3002 (replacing the public IOG/world relays). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Move the manual u5c checks into the e2e suite as three `kind: u5c` legs
against the Demeter utxorpc endpoints, using the standard exit-code gate via
a WorkStats finalization policy (3 blocks -> exit 0); a #921-style regression
(reset loop, no apply events) never finalizes -> timeout -> fail.
API keys are parameterized as ${DMTR_UTXORPC_KEY_*} and resolved by envsubst
from GitHub secrets.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Bumps gasket 0.7 -> 0.10, which brings the non-panicking teardown and the new `TetherState::Finished(StagePhase)` (PR construkts/gasket-rs#35). Adapt to the 0.10 API: - `Daemon(tethers)` -> `Daemon::new(tethers)`. - `block`/`teardown` now consume `Daemon`. `dump`/`watch` just call `block` (which tears down on stop). `run_daemon` shares the daemon via `Arc` with the prometheus + tui tasks, so it drives the stop loop over `&self` and reclaims ownership (after the aborted tasks drop their clones) for a graceful teardown. - `console` handles the new `Finished` tether state. Crucially, in 0.10 a crashing stage no longer aborts the process (gasket isolates it per-thread), so `run_daemon` now derives the exit code from the stages' terminal state: a stage that reached `Ended` (a finalization filter completed) or a user termination signal -> exit 0; otherwise a stage crashed or stalled -> non-zero. This is what makes the e2e exit-code gate meaningful: a WorkStats finalize exits 0, an Assert panic exits non-zero. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>