fix: unblock real attestation generation (op2 issues 1-3) - #40
Conversation
bitzic
commented
Jun 22, 2026
- Attestation() now named -> non-empty NRAS GPU token (nv-sdk 2.7.3)
- gpu_sdk_nonce(): strip 0x/lowercase for the SDK + token-nonce compare
- TDX quote: pre-provisioned RALPH_TSM_REPORT_PATH for non-root runs
- actionable error + trustauthority fallback on configfs perm denial
- TDX keeps the full nonce for report_data binding (GPU uses 64-hex)
- verify path stays fail-closed on mainnet (Issue 4 verify is separate)
- reported by external miner on real Intel TDX + H100-CC hardware
- Attestation() now named -> non-empty NRAS GPU token (nv-sdk 2.7.3) - gpu_sdk_nonce(): strip 0x/lowercase for the SDK + token-nonce compare - TDX quote: pre-provisioned RALPH_TSM_REPORT_PATH for non-root runs - actionable error + trustauthority fallback on configfs perm denial - TDX keeps the full nonce for report_data binding (GPU uses 64-hex) - verify path stays fail-closed on mainnet (Issue 4 verify is separate) - reported by external miner on real Intel TDX + H100-CC hardware Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
89a1b8b to
46db1b3
Compare
|
op2 still REJECTS all 3 — two remaining causes Issue (known, NOT in PR #40). On mainnet |
get_token() returns the detached-EAT bundle [["JWT",<outer>],{detached}],
not a bare JWT, so the testnet-stub verify_gpu_token fed the whole bundle
to jwt.decode -> "Invalid header string" (miner report on real CC H100).
- add _extract_gpu_jwt: pull the outer JWT (handles bundle / json-str / bare)
- decode the inner JWT in the stub path; prefer the eat_nonce claim
- lets miners validate generation -> stub-verify end-to-end on testnet
- (full bundle + detached + JWKS verify is Part B)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Confirmed — thank you @gho11123 , this is exactly the signal we needed. Part A works as intended. Your mainnet result ("GPU token signature verification not implemented") means generation now succeeds and reaches the verifier. That's Issue 4 (the verify stub), deliberately out of scope for this PR. Your testnet-stub error was a real bug — great catch, and it's now fixed (pushed to this PR, 0b42b34). get_token() returns the detached-EAT bundle, the stub was decoding the whole bundle. It now parses out the inner JWT. The real mainnet gate is Part B (NRAS JWKS + Intel DCAP verification). To build + test it offline we need one golden fixture from your CC H100 — you're now generating a real token, so you're perfectly placed. After a run, please send: the attestation.json, a snapshot of https://nras.attestation.nvidia.com/.well-known/jwks.json, and (if handy) the Intel collateral for the quote's FMSPC + GPU driver/VBIOS versions. That unblocks Part B. Thank you — you've moved this further than anyone. |