Commit graph

182 commits

Author SHA1 Message Date
Claude
f5add3c73f
docs: Phase 5 chain storage and sync client design
Co-Authored-By: Charon <charon@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:31:55 +00:00
Claude
4e1dd85f8d
docs: Phase 4 RPC client documentation
Co-Authored-By: Charon <charon@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:14:41 +00:00
Claude
7d6e67f07d
test(rpc): integration test against C++ testnet daemon
Co-Authored-By: Charon <charon@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:14:36 +00:00
Claude
04fcf75ae5
feat(rpc): SubmitBlock endpoint
Co-Authored-By: Charon <charon@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:11:44 +00:00
Claude
91e124bc94
feat(rpc): transaction detail and bulk fetch endpoints
Co-Authored-By: Charon <charon@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:11:40 +00:00
Claude
e008dc5cfe
feat(rpc): block header and block details endpoints
Co-Authored-By: Charon <charon@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:09:40 +00:00
Claude
efbace75a8
feat(rpc): GetInfo, GetHeight, GetBlockCount endpoints
Co-Authored-By: Charon <charon@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:09:34 +00:00
Claude
03c11b3bbd
feat(rpc): JSON-RPC 2.0 client transport and response types
Co-Authored-By: Charon <charon@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:07:16 +00:00
Claude
1fdd8d47d7
docs: Phase 4 RPC client implementation plan
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 21:02:24 +00:00
Claude
c08d5a24b6
docs: Phase 4 RPC client design
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 20:52:30 +00:00
Claude
d33397e6b6
docs: Phase 3 P2P Levin protocol documentation
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 19:45:28 +00:00
Claude
412272b342
test(p2p): integration test against C++ testnet daemon
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 19:45:24 +00:00
Claude
074a7333aa
feat(p2p): timed sync and block/tx relay command types
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 19:41:30 +00:00
Claude
0e5ac70eef
feat(p2p): handshake command with NodeData and peerlist decoding
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 19:41:25 +00:00
Claude
b3d60948c6
feat(p2p): ping command encode/decode
Add EncodePingRequest (empty section) and DecodePingResponse
(status + peer_id) for the Levin ping command (1003).

Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 19:34:36 +00:00
Claude
3474a98f97
feat(p2p): CORE_SYNC_DATA type and command ID constants
Add CoreSyncData with MarshalSection/UnmarshalSection for portable
storage roundtrip. Re-export Levin command IDs for the CryptoNote
P2P protocol layer.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 19:34:12 +00:00
Claude
888a0b6fff
feat(config): P2P network IDs and go-p2p dependency
Add NetworkIDMainnet and NetworkIDTestnet 16-byte UUIDs for P2P
handshake, ClientVersion constant, and NetworkID field to ChainConfig.
Add local replace directive for forge.lthn.ai/core/go-p2p.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 19:33:24 +00:00
Claude
d20fcb39cc
docs: Phase 3 P2P Levin protocol implementation plan
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 19:20:44 +00:00
Claude
9db3090f89
docs: Phase 3 P2P Levin protocol design
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 19:10:56 +00:00
Claude
8af95d457a
docs: Phase 2 crypto bridge documentation
Updated architecture.md with crypto/ package details (CGo bridge pattern,
build flow, exposed operations, 1/8 premultiplication semantics).
Updated history.md with Phase 2 completion (files, findings, tests).
Updated CLAUDE.md with CMake build prerequisite.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 18:49:21 +00:00
Claude
1c763a8c31
feat(crypto): CLSAG ring signatures (GG/GGX/GGXXG) and proof verification stubs
CLSAG_GG generation and verification with flat-buffer ring marshalling.
Cofactor helpers (PointMul8/PointDiv8) for 1/8 premultiplication handling.
CLSAG_GGX and CLSAG_GGXXG verify-only bindings (GGX sig size tests).
Bulletproofs+, BGE, and Zarcanum verification stubs — implementation
deferred to Phase 4 when RPC provides real on-chain proof data.

19 tests pass, 3 skipped (proof stubs), all clean with -race.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 18:47:08 +00:00
Claude
f022e61da9
feat(crypto): standard and ring signature (NLSAG) generation/verification
Standard signature sign/verify round-trip with negative tests (wrong key,
wrong message). Ring signature (NLSAG) uses flat buffer C API to avoid
double-pointer indirection across CGo boundary. Round-trip with 4-member
ring and wrong-message negative test. All 15 tests pass with race detector.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 18:30:53 +00:00
Claude
9821ea4d21
feat(crypto): key derivation, one-time addresses, and key images
Add ECDH shared secret, ephemeral key derivation (DerivePublicKey,
DeriveSecretKey), and key image generation/validation to the CGo bridge.
Tests verify ECDH commutativity, output scanning round-trip, and key
image determinism.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 18:28:43 +00:00
Claude
a68926c45c
feat(crypto): key generation, validation, and secret-to-public derivation
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 18:24:06 +00:00
Claude
b759645724
feat(crypto): CGo bridge smoke test — FastHash via Keccak-256
Verify CGo link to libcryptonote.a works with a known-vector hash test.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 18:22:25 +00:00
Claude
1416a6714a
feat(crypto): Phase 2a scaffold — vendored C++ and CMake build
Extract CryptoNote crypto sources from upstream (fa1608cf).
Build as static libcryptonote.a via CMake with compat stubs for
external dependencies (warnings, logging, varint, profiling).

37 upstream files, 10 compat stubs, 680KB static library.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 18:21:44 +00:00
Claude
65080123bc
docs: archive CryptoNote+ whitepaper (Aldanov, 2018)
Original founding document for the Zano protocol extensions.
Contains raw math for return addresses, key derivation, shared
secret encryption, hybrid mining, and tiny addresses — the
cryptographic foundations that Phase 2 bridge implements.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 18:03:50 +00:00
Claude
225822a14c
docs: Phase 2 crypto bridge implementation plan
12 tasks covering sub-phases 2a-2d: CMake build, CGo scaffold,
key generation, derivation, key images, signatures (standard, NLSAG,
CLSAG), range proofs, BGE, Zarcanum. TDD throughout.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 17:50:38 +00:00
Claude
b136b7317f
docs: Phase 2 crypto bridge design
CGo bridge to vendored upstream C++ crypto library following the MLX
pattern. Thin C API (bridge.h) as the stable contract between Go and
C++. Provenance tracking for easy upstream Zano updates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 17:43:51 +00:00
Claude
6a3f8829cb
feat(wire): Phase 1 wire serialisation — bit-identical to C++ daemon
Add consensus-critical binary serialisation for blocks and transactions,
verified by computing the testnet genesis block hash and matching the C++
daemon output (cb9d5455...4963). Fixes Phase 0 type mismatches (variant
tags, field widths, missing fields) and adds encoder/decoder, tree hash,
and block/transaction hashing.

Key discovery: CryptoNote's get_object_hash(blobdata) prepends
varint(length) before hashing, so BlockHash = Keccak256(varint(len) || blob).

Co-Authored-By: Charon <charon@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 17:16:08 +00:00
Claude
37cc3d7342
docs: graduate Phase 0 into production documentation
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 15:24:38 +00:00
Claude
4c0b7f290e
feat: Phase 0 scaffold -- config, types, wire, difficulty
Chain parameters from Lethean C++ source. Base58 address encoding with
Keccak-256 checksum. CryptoNote varint. LWMA difficulty skeleton.

Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 15:10:33 +00:00