Claude
b506c9c0a1
docs: Phase 6 wallet core implementation plan
...
11 tasks covering mnemonic seeds, TX extra parsing, account management,
transfer storage, scanning, signing, ring selection, tx building, and
wallet orchestration. TDD with complete code for every step.
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 22:51:19 +00:00
Claude
4a07e6ca70
docs: Phase 6 wallet core design
...
Interface-driven wallet with Scanner, Signer, Builder, RingSelector
abstractions. v1 NLSAG ships first, v2+ Zarcanum architecture ready.
Full send+receive: key management, output scanning, tx construction,
ring selection via RPC, encrypted key storage in go-store.
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 22:29:01 +00:00
Claude
28e3da63cb
test(chain): boost coverage to >80% with multi-block sync and error paths
...
Add comprehensive tests exercising regular transaction processing through
the sync pipeline (key image marking, output indexing, cumulative
difficulty) and not-found error paths for all query methods. Coverage
rises from 65.8% to 80.1%.
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 22:02:10 +00:00
Claude
c2e6b165e7
docs: Phase 5 chain storage and sync client documentation
...
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 21:56:05 +00:00
Claude
ef4edd669a
test(chain): integration test syncing first 10 blocks from testnet
...
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 21:55:19 +00:00
Claude
23d337e397
feat(chain): RPC sync loop with block processing and indexing
...
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 21:53:49 +00:00
Claude
f5822e7222
feat(chain): block header validation (linkage, height, size)
...
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 21:50:12 +00:00
Claude
89f5f0ebdf
feat(chain): transaction, key image, and output index operations
...
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 21:49:15 +00:00
Claude
d5976d33c3
feat(chain): Chain struct with block storage and retrieval
...
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 21:44:57 +00:00
Claude
8cb5cb4ad2
feat(chain): go-store dependency and metadata types
...
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 21:42:22 +00:00
Claude
46cf1a747a
docs: Phase 5 chain storage implementation plan
...
7-task plan covering chain/ package: meta types, block storage,
transaction/output indexing, header validation, sync loop,
integration test, and documentation updates.
Co-Authored-By: Charon <charon@lethean.io>
2026-02-20 21:37:27 +00:00
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