go-blockchain/chain
Claude a803fd1794
feat(consensus): V2 Zarcanum signature and proof verification
Add full V2 transaction verification pipeline: parse SignaturesRaw variant
vector into structured ZC signature data, verify CLSAG GGX ring signatures
per ZC input, verify BPP range proofs, and verify BGE asset surjection
proofs with correct ring construction (mul8 point arithmetic).

Fix three wire format bugs that caused V2 parsing failures:
- RefTypeGlobalIndex (tag 0x1A) uses 8-byte LE, not varint
- Raw uint64_t variant (tagUint64) uses 8-byte LE, not varint
- zarcanum_tx_data_v1 fee uses FIELD() → 8-byte LE, not VARINT_FIELD()

Add cn_point_sub to C++ bridge and Go wrapper for BGE ring construction.
Add GetZCRingOutputs to chain for fetching ZC ring member data.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-22 00:06:10 +00:00
..
chain.go feat(chain): Chain struct with block storage and retrieval 2026-02-20 21:44:57 +00:00
chain_test.go test(chain): boost coverage to >80% with multi-block sync and error paths 2026-02-20 22:02:10 +00:00
difficulty.go fix(difficulty): correct LWMA algorithm and hardfork-aware target 2026-02-21 22:32:57 +00:00
difficulty_test.go fix(difficulty): correct LWMA algorithm and hardfork-aware target 2026-02-21 22:32:57 +00:00
history.go fix(chain): use genesis hash in sparse history for empty chain 2026-02-21 21:31:55 +00:00
history_test.go fix(chain): use genesis hash in sparse history for empty chain 2026-02-21 21:31:55 +00:00
index.go feat(chain): transaction, key image, and output index operations 2026-02-20 21:49:15 +00:00
integration_test.go fix(difficulty): correct LWMA algorithm and hardfork-aware target 2026-02-21 22:32:57 +00:00
levinconn.go feat(chain): add Levin P2P connection adapter and sync integration test 2026-02-21 21:32:05 +00:00
meta.go feat(chain): go-store dependency and metadata types 2026-02-20 21:42:22 +00:00
p2psync.go fix(difficulty): correct LWMA algorithm and hardfork-aware target 2026-02-21 22:32:57 +00:00
p2psync_test.go feat(chain): add P2P sync state machine 2026-02-21 21:00:57 +00:00
ring.go feat(consensus): V2 Zarcanum signature and proof verification 2026-02-22 00:06:10 +00:00
ring_test.go feat(chain): add GetRingOutputs callback for signature verification 2026-02-21 20:28:54 +00:00
store.go feat(chain): add NextDifficulty for local LWMA computation 2026-02-21 22:03:28 +00:00
sync.go feat(consensus): V2 Zarcanum signature and proof verification 2026-02-22 00:06:10 +00:00
sync_test.go fix(chain): mark ZC input key images as spent during sync 2026-02-21 20:36:00 +00:00
validate.go feat(chain): block header validation (linkage, height, size) 2026-02-20 21:50:12 +00:00
validate_test.go feat(chain): block header validation (linkage, height, size) 2026-02-20 21:50:12 +00:00