v6.0.1 — RandomX PoW, new genesis, multi-platform CI #1

Merged
Snider merged 10 commits from Charon/blockchain:dev into dev 2026-02-14 20:19:14 +00:00
Member

Summary

  • RandomX PoW with LWMA difficulty algorithm and stratum mining protocol
  • Fresh genesis block with auditable 10M LTHN premine wallet (iThN prefix)
  • Conan 2 + CMake build system with cross-platform profiles (Linux, macOS, Windows)
  • oatpp REST API server with Swagger UI
  • Forgejo Actions CI pipeline — native builds on Linux x86_64 (snider-linux) and macOS ARM64 (M3 Ultra)
  • CPack packaging — DEB, RPM, TXZ, ZIP (Linux), PKG (macOS), NSIS (Windows)

Genesis

  • Hash: 7ec85d0f0fe4e51d5490912cbae9a1c2904bb7624dc5c271eba30de51d11a714
  • Premine: 10,000,000 LTHN (auditable address)
  • Block 1 timestamp: 2026-02-15 00:35:36 UTC

CI Pipeline

3-job Forgejo Actions workflow:

  1. build-linux — native on snider-linux (AMD Ryzen 9 9950X)
  2. build-macos — native on M3 Ultra (Apple Silicon)
  3. release — aggregate artifacts, create Forgejo release

Test plan

  • Genesis block mines with 10M premine
  • Nodes sync and produce blocks (3 lab nodes + Clotho AU)
  • View-only governance wallet from tracking seed
  • Production seed node peering
  • CI runners registered and picking up jobs
## Summary - **RandomX PoW** with LWMA difficulty algorithm and stratum mining protocol - **Fresh genesis block** with auditable 10M LTHN premine wallet (`iThN` prefix) - **Conan 2 + CMake build system** with cross-platform profiles (Linux, macOS, Windows) - **oatpp REST API server** with Swagger UI - **Forgejo Actions CI pipeline** — native builds on Linux x86_64 (snider-linux) and macOS ARM64 (M3 Ultra) - **CPack packaging** — DEB, RPM, TXZ, ZIP (Linux), PKG (macOS), NSIS (Windows) ## Genesis - Hash: `7ec85d0f0fe4e51d5490912cbae9a1c2904bb7624dc5c271eba30de51d11a714` - Premine: 10,000,000 LTHN (auditable address) - Block 1 timestamp: 2026-02-15 00:35:36 UTC ## CI Pipeline 3-job Forgejo Actions workflow: 1. `build-linux` — native on snider-linux (AMD Ryzen 9 9950X) 2. `build-macos` — native on M3 Ultra (Apple Silicon) 3. `release` — aggregate artifacts, create Forgejo release ## Test plan - [x] Genesis block mines with 10M premine - [x] Nodes sync and produce blocks (3 lab nodes + Clotho AU) - [x] View-only governance wallet from tracking seed - [x] Production seed node peering - [x] CI runners registered and picking up jobs
Charon added 10 commits 2026-02-14 20:08:49 +00:00
Build system extracted to host-uk/build and wired in as a git
submodule following the core CLI convention (.core/<tool>/).

- CMake modules, cross-compilation profiles now from .core/build/cmake/
- Conan credentials read from environment instead of hardcoded
- Removed cmake/ directory (14 files) — all now in submodule
- Makefile, CMakeLists.txt, CMakePresets.json updated for new paths

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
C++ build configuration for core CLI project detection and future
`core compile` command. Defines Conan dependencies, CMake settings,
cross-compilation targets, and packaging options.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file was wrongly extracted to the .core/build submodule during the
build system extraction. It's a project-specific compile test used by
CMakeLists.txt:185 and must remain in the project tree.

Verified: make configure && make build && make package all pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update .core/build.yaml description: SASE infrastructure chain
- cmake/test-static-assert.c already committed separately

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The crypto test PRNG was non-deterministic because setup_random() seeded
the state but grant_random_initialize_no_lock() overwrote it with
/dev/urandom on the first random call. Calling it before memset ensures
the initialized flag is set, preventing the overwrite.

Also adds --generate mode to crypto-tests for future vector regeneration,
updates checkpoint hashes for multisig_and_checkpoints (height 15) and
gen_no_attchments_in_coinbase (height 12), and replaces hardcoded Zano
addresses/URLs with Lethean equivalents in manual test scaffolding.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace ProgPowZ with RandomX for ASIC-resistant proof-of-work. The
full dataset is initialized multi-threaded at startup with the key
"LetheanRandomXv1". Thread-local VMs are created on demand.

Switch difficulty algorithm from Zano's 720-block window to LWMA-1
(zawy12) with a 60-block window for much faster convergence after
hashrate changes. Target block time set to 10s for PoW.

Add standard stratum mining.* protocol handlers (subscribe, authorize,
submit, extranonce.subscribe) alongside existing EthProxy eth_*
handlers, with automatic protocol detection and mining.notify
translation for XMRig-based miners.

Generate fresh Lethean genesis block and premine wallet. Replace all
remaining hardcoded Zano addresses in tests with runtime-generated
keys to avoid prefix mismatches. Link RandomX library across all
build targets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add .forgejo/workflows/build.yml that builds the Lethean blockchain
on push to dev/main with workflow_dispatch support. Builds testnet
on dev, mainnet on main, creates Forgejo releases with RPM/tar.xz/zip
packages and SHA256 checksums.

- CPU limited to 3 cores (~10% of 32-thread host) via Docker --cpus cap
- Private submodule auth via git credential store with RELEASE_TOKEN
- SDK caching with actions/cache for Conan build artifacts
- CMake installed via pip for preset version 8 support
- Tags fetched for libmdbx git describe version detection
- Fix missing contrib/randomx entry in .gitmodules

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
After uploading new release assets, delete older beta releases (dev)
or older stable releases (main) to conserve disk. Only the latest
build per branch is kept on the Forgejo instance; older builds are
available on mirrored free hosting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pull pre-built dependencies from the Forgejo package registry
(conan_build remote) instead of caching the SDK locally. Removes
the 570MB actions/cache overhead since all packages are already
available as pre-compiled binaries on the registry.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Build Linux x86_64 (snider-linux) and macOS ARM64 (M3 Ultra) natively
via self-hosted forgejo-runner, aggregate into single release.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Snider approved these changes 2026-02-14 20:19:05 +00:00
Snider merged commit b61d773a0f into dev 2026-02-14 20:19:14 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lthn/blockchain#1
No description provided.