No description
Find a file
Claude d8eb6c5478
Some checks failed
Security Scan / security (push) Successful in 9s
Test / Test (push) Failing after 30s
docs: archive completed plans, expand history for TUI and difficulty
Move all 21 plan files to docs/plans/completed/ — every phase (0-9) is
implemented. Expand history.md with full writeups for the Difficulty
Computation, V2+ Zarcanum Consensus, and TUI Dashboard sections that
were previously just bullet points.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:47:35 +00:00
.forgejo/workflows ci: add Forgejo Actions test and security scan workflows 2026-02-23 03:28:02 +00:00
chain feat(consensus): V2 Zarcanum signature and proof verification 2026-02-22 00:06:10 +00:00
cmd/chain feat(tui): add cmd/chain binary wiring Frame + P2P sync 2026-02-23 00:03:14 +00:00
config feat(config): add BlockTarget constant (120s) 2026-02-21 21:59:41 +00:00
consensus feat(consensus): V2 Zarcanum signature and proof verification 2026-02-22 00:06:10 +00:00
crypto feat(consensus): V2 Zarcanum signature and proof verification 2026-02-22 00:06:10 +00:00
difficulty fix(difficulty): correct LWMA algorithm and hardfork-aware target 2026-02-21 22:32:57 +00:00
docs docs: archive completed plans, expand history for TUI and difficulty 2026-02-24 13:47:35 +00:00
mining test(mining): integration test against C++ testnet daemon 2026-02-21 02:20:05 +00:00
p2p test(p2p): integration test for chain request and block fetch 2026-02-21 21:17:54 +00:00
rpc fix(difficulty): correct LWMA algorithm and hardfork-aware target 2026-02-21 22:32:57 +00:00
testdata feat(consensus): V2 Zarcanum signature and proof verification 2026-02-22 00:06:10 +00:00
tui test(tui): add ExplorerModel navigation and view tests 2026-02-23 00:05:10 +00:00
types feat(wire): v2+ transaction serialisation with real testnet verification 2026-02-21 19:09:34 +00:00
wallet feat(chain): integrate consensus validation into sync 2026-02-21 01:11:33 +00:00
wire feat(consensus): V2 Zarcanum signature and proof verification 2026-02-22 00:06:10 +00:00
.gitignore feat(crypto): Phase 2a scaffold — vendored C++ and CMake build 2026-02-20 18:21:44 +00:00
CLAUDE.md docs: Phase 2 crypto bridge documentation 2026-02-20 18:49:21 +00:00
go.mod feat(tui): add StatusModel for chain sync header 2026-02-22 23:55:22 +00:00
go.sum feat(tui): add StatusModel for chain sync header 2026-02-22 23:55:22 +00:00
README.md docs: graduate Phase 0 into production documentation 2026-02-20 15:24:38 +00:00

go-blockchain

Pure Go implementation of the Lethean blockchain protocol. Provides chain configuration, core cryptographic data types, CryptoNote wire serialisation, and LWMA difficulty adjustment for the Lethean CryptoNote/Zano-fork chain. Follows ADR-001: protocol logic in Go, cryptographic primitives deferred to a C++ bridge in later phases. Lineage: CryptoNote to IntenseCoin (2017) to Lethean to Zano rebase.

Module: forge.lthn.ai/core/go-blockchain Licence: EUPL-1.2 Language: Go 1.25

Quick Start

import (
    "forge.lthn.ai/core/go-blockchain/config"
    "forge.lthn.ai/core/go-blockchain/types"
    "forge.lthn.ai/core/go-blockchain/wire"
    "forge.lthn.ai/core/go-blockchain/difficulty"
)

// Query the active hardfork version at a given block height
version := config.VersionAtHeight(config.MainnetForks, 10081) // returns HF2

// Check if a specific hardfork is active
active := config.IsHardForkActive(config.MainnetForks, config.HF4Zarcanum, 50000) // false

// Encode and decode a Lethean address
addr := &types.Address{SpendPublicKey: spendKey, ViewPublicKey: viewKey}
encoded := addr.Encode(config.AddressPrefix)
decoded, prefix, err := types.DecodeAddress(encoded)

// Varint encoding for the wire protocol
buf := wire.EncodeVarint(0x1eaf7)
val, n, err := wire.DecodeVarint(buf)

// Calculate next block difficulty
nextDiff := difficulty.NextDifficulty(timestamps, cumulativeDiffs, 120)

Documentation

Build & Test

go test ./...
go test -race ./...
go vet ./...
go build ./...

Licence

European Union Public Licence 1.2 -- see LICENCE for details.