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>
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>
* try to write test for 2 input with nmix
* one of incorrect version
* add test for input old/new
* refactoring and add comments
* delete garbage
* fix from vector variant to unordered_map
* add comment
* using to typedef
* add test for pod array file container
* add tests for pod, clear and is open
* header update
---------
Co-authored-by: sowle <crypto.sowle@gmail.com>
* try check extra nonce in miner_tx
* update c1
* write extra nonces, create pow pos block, checkers for exnonce, bug with HF4
* success check pos block
* correct pos/pos extra nonce validation for hf3+
* clean code, separate to methods, add template test, pos/pow extra nonce check in block
* delete logs
* back normal naming
* fix review comments