Skip to content

Harden wallet errors, solver watchdogs, and Tari consensus tests - #19

Merged
JustAResearcher merged 1 commit into
mainfrom
agent/reliability-wallet-watchdog-kats
Jul 29, 2026
Merged

Harden wallet errors, solver watchdogs, and Tari consensus tests#19
JustAResearcher merged 1 commit into
mainfrom
agent/reliability-wallet-watchdog-kats

Conversation

@JustAResearcher

Copy link
Copy Markdown
Owner

Closes #9
Closes #12
Closes #13

What changed

  • Reject wallet values containing whitespace/control bytes before connecting, while preserving Tari's multiple valid address/login formats.
  • Track unique submit request IDs so login errors cannot inflate rejected-share telemetry, tolerate valid JSON whitespace, retain nonterminal submits, sanitize pool diagnostics, and exit 4 after three explicit login rejections.
  • Propagate CUDA setup, trim, copy, synchronization, and recovery failures through both standalone and pool-miner paths.
  • Add a per-context watchdog that exits 5 after three consecutive zero-edge trims, including pending work drained during pool disconnect/reconnect.
  • Fix the pipelined same-context recovery race by completing recovery and consuming solutions before relaunching that context.
  • Pin Tari key derivation, edge construction, proof packing/hash, and structural verifier behavior with 22 offline assertions.
  • Enforce LF for HiveOS .conf files so the shell wrapper can source the manifest and preserve miner exit codes.
  • Add Windows/Linux reliability tests and a CUDA 12.8 CI compile matrix for every shipped solver/pool architecture (sm_86, sm_89, sm_120).

Why

Invalid wallet replies were treated as network timeouts and share rejects. Runtime CUDA failures could collapse into an endless zero-yield loop that stayed connected and exited 0. The self-test also checked round trips/determinism without pinning Tari consensus outputs. During review, the release prelaunch path was additionally found to overwrite recovery state before a rare cycle was recovered.

Validation

  • Windows MSVC and Linux g++ protocol/reliability suites: pass.
  • Tari wrapper self-test: 22/22 on Windows and Linux.
  • Windows CUDA 13.2: solver and pool miner build for sm_86, sm_89, and sm_120.
  • Linux CUDA 12.8 / Ubuntu 18 compatibility build: all six binaries build, launch, contain the intended cubin, and remain compatible with GLIBC 2.14.
  • RTX 5090: deterministic 128-graph pipeline 1/4 runs produce the same four verified cycles with zero verification failures; compact and whitespace-formatted loopback pools accept shares; forced zero-yield and a real CUDA API error exit 5 without orphaned miners; repeated spaced result: false login replies exit 4 without no job received noise.
  • mini17 / RTX 4070 Ti SUPER Linux: healthy 128-graph pipeline 2 run reproduces the same four cycles with zero verification failures; forced zero-yield and real CUDA API error exit 5; GPU returns idle and Vast services remain running.
  • No verified idle sm_86 hardware was available, so that profile is compile-gated but not live-run in this PR.

The CUDA CI container is a compile gate only. Release assets must continue to come from the Ubuntu 18 compatibility build path.

@JustAResearcher
JustAResearcher marked this pull request as ready for review July 29, 2026 22:50
@JustAResearcher
JustAResearcher merged commit 6c5e7b2 into main Jul 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants