No description
Find a file
Claude 8a4a9c0cb7
Some checks are pending
Security Scan / security (push) Waiting to run
Test / Test (push) Waiting to run
feat(chain): add BlockCallback fired after every block stored
Chain.SetBlockCallback(func(height, hash, aliasName)) enables
event-driven architecture — the EventBus subscribes to block
storage and emits events without coupling chain to events.

Callback fires in processBlockBlobs after PutBlock succeeds.
Includes alias name if the block contains an alias registration.

Co-Authored-By: Charon <charon@lethean.io>
2026-04-02 04:43:02 +01:00
.core feat(build): add .core/build.yaml for go-build integration 2026-04-02 03:08:56 +01:00
.forgejo/workflows ci: add Forgejo Actions test and security scan workflows 2026-02-23 03:28:02 +00:00
chain feat(chain): add BlockCallback fired after every block stored 2026-04-02 04:43:02 +01:00
cmd/core-chain feat(asset): add RPC client + CLI for confidential assets (HF5) 2026-04-02 00:59:18 +01:00
config fix(config): replace os.Getenv with core.Env 2026-04-02 04:07:33 +01:00
consensus fix(blockchain): complete AX v0.8.0 polish pass 2026-03-26 16:58:23 +00:00
crypto feat: complete all 10 RFC request items 2026-04-02 01:48:31 +01:00
daemon refactor(daemon): extract 842 lines into http_handlers.go 2026-04-02 04:27:51 +01:00
difficulty fix(blockchain): complete AX v0.8.0 polish pass 2026-03-26 16:58:23 +00:00
docs docs: add quickstart guide for developers 2026-04-02 04:33:15 +01:00
hsd test: close audit gaps — HSD client, config, genesis, daemon tests 2026-04-02 03:18:36 +01:00
locales/en feat(i18n): add English locale for all blockchain commands 2026-04-02 03:11:37 +01:00
mining fix(blockchain): complete AX v0.8.0 polish pass 2026-03-26 16:58:23 +00:00
p2p feat(p2p): add missing response encoders for P2P listener 2026-04-02 00:42:30 +01:00
rpc feat: register 16 Core actions for CLI/MCP/API auto-exposure 2026-04-02 04:13:36 +01:00
testdata feat(consensus): V2 Zarcanum signature and proof verification 2026-02-22 00:06:10 +00:00
tui fix(blockchain): complete AX v0.8.0 polish pass 2026-03-26 16:58:23 +00:00
types fix(blockchain): complete AX v0.8.0 polish pass 2026-03-26 16:58:23 +00:00
wallet feat: register 16 Core actions for CLI/MCP/API auto-exposure 2026-04-02 04:13:36 +01:00
wire feat(blockchain): full testnet sync, RPC daemon, wallet CLI, alias extraction 2026-04-02 00:33:12 +01:00
.gitignore feat(blockchain): full testnet sync, RPC daemon, wallet CLI, alias extraction 2026-04-02 00:33:12 +01:00
actions.go feat: wire HardforkMonitor into serve command + monitoring action 2026-04-02 04:39:03 +01:00
actions_coverage_test.go test: comprehensive action coverage — 36 registered, chain/wallet/crypto/supply verified 2026-04-02 04:24:17 +01:00
actions_integration_test.go test(integration): verify 6 actions against live chain data 2026-04-02 04:24:56 +01:00
actions_test.go feat: RegisterAllActions now wires all 36 actions including HSD+DNS 2026-04-02 04:22:09 +01:00
CLAUDE.md refactor: migrate module path to dappco.re/go/core/blockchain 2026-03-22 01:49:26 +00:00
cmd_deploy_itns.go refactor: extract 33 magic numbers to named constants 2026-04-02 03:58:59 +01:00
cmd_explorer.go fix(blockchain): upgrade to core v0.8.0-alpha.1 + replace banned imports 2026-03-26 14:10:18 +00:00
cmd_serve.go feat(serve): wire HardforkMonitor into daemon — auto-detect HF5 2026-04-02 04:39:58 +01:00
cmd_status.go feat: chain status command + wallet info + core/api SSE tracking 2026-04-02 03:04:05 +01:00
cmd_sync.go refactor(logging): migrate commands to core.Print(nil, ...) 2026-04-02 01:18:37 +01:00
cmd_wallet.go feat: register 16 Core actions for CLI/MCP/API auto-exposure 2026-04-02 04:13:36 +01:00
commands.go feat: chain status command + wallet info + core/api SSE tracking 2026-04-02 03:04:05 +01:00
commands_test.go fix(blockchain): complete AX v0.8.0 polish pass 2026-03-26 16:58:23 +00:00
constants.go refactor: extract 33 magic numbers to named constants 2026-04-02 03:58:59 +01:00
dns.go feat: complete all 10 RFC request items 2026-04-02 01:48:31 +01:00
dns_test.go test: add tests for service, dns, forge, alias, blockdata (6 files) 2026-04-02 03:54:45 +01:00
entitlement.go feat: complete all 10 RFC request items 2026-04-02 01:48:31 +01:00
entitlement_test.go test: entitlement stubs, sync task progress, middleware 2026-04-02 03:21:46 +01:00
events.go feat: EventBus for blockchain event distribution 2026-04-02 04:41:28 +01:00
events_test.go feat: EventBus for blockchain event distribution 2026-04-02 04:41:28 +01:00
forge.go feat: forge integration actions + RPC endpoint 2026-04-02 03:11:02 +01:00
forge_test.go test: add tests for service, dns, forge, alias, blockdata (6 files) 2026-04-02 03:54:45 +01:00
go.mod fix(blockchain): upgrade to core v0.8.0-alpha.1 + replace banned imports 2026-03-26 14:10:18 +00:00
go.sum fix(blockchain): upgrade to core v0.8.0-alpha.1 + replace banned imports 2026-03-26 14:10:18 +00:00
hf_monitor.go feat: HardforkMonitor — watches chain and fires on HF activation 2026-04-02 04:36:34 +01:00
hf_monitor_test.go feat: HardforkMonitor — watches chain and fires on HF activation 2026-04-02 04:36:34 +01:00
README.md refactor: migrate module path to dappco.re/go/core/blockchain 2026-03-22 01:49:26 +00:00
service.go fix(config): replace os.Getenv with core.Env 2026-04-02 04:07:33 +01:00
service_process.go feat: add go-process daemon wrapper for blockchain service 2026-04-02 04:16:34 +01:00
service_test.go test: add tests for service, dns, forge, alias, blockdata (6 files) 2026-04-02 03:54:45 +01:00
sync_service.go refactor(logging): migrate commands to core.Print(nil, ...) 2026-04-02 01:18:37 +01:00
variant.go feat(wallet): add transfer command, build tags for CoreIDE 2026-04-02 01:22:19 +01: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: dappco.re/go/core/blockchain Licence: EUPL-1.2 Language: Go 1.25

Quick Start

import (
    "dappco.re/go/core/blockchain/config"
    "dappco.re/go/core/blockchain/types"
    "dappco.re/go/core/blockchain/wire"
    "dappco.re/go/core/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.