git clone https://git.smesh.lol/limenka.git
Limenka =======
Limenka is a fork of the spamchain (bitcoin mainnet). Prebuilt Linux binaries are published in versioned folders in the limenka-releases repository.
Limenka and the spamchain share the same genesis and the same pre-fork history; at the fork point Limenka switches to its own consensus (cadence DAA, time-proportional reward, sequential delay commitment) while the parent continues on mainnet rules. The two chains share one mempool: transactions valid on either are valid on both (SIGHASH_FORKID was removed), so they propagate freely between the networks.
Height-based nLockTime contracts (Lightning HTLCs, swaps, any time-locked
spend) on the fork resolve at the parent chain's ~600s block cadence, not
the fork's literal height - the fork counts locktime by actual timestamps,
so a lock resolves at the same real time whether the fork chain is mining
faster or slower than the parent.
Linux binaries (limenkad, limenka-cli, limenka-qt) are published in
versioned folders in the limenka-releases
repository, with SHA256 checksums. Each release folder also documents how to
stand up a testnet node and CPU miner in a few minutes.
A Limenka testnet is a fresh fork-chain: mainnet genesis, trivial PoW, no
seeds. Run one node (chain=limenka, -forkstandalone, -forkmineondemand,
-forkactivationheight=100) and the included CPU miner and you have a live
chain to test against - including the fork's time-locked contract handling.
Full instructions are in the releases README.
What is Limenka?
Limenka connects to the Limenka peer-to-peer network to download and fully validate blocks and transactions. It also includes a wallet and graphical user interface, which can be optionally built.
Further information about Limenka is available in the doc folder.
License
Limenka is released under the terms of the MIT license. See COPYING for more information or see https://opensource.org/licenses/MIT.
Community
Discussion and development of Limenka takes place on Nostr:
npub125uw9znxawyrvrc4lraf2ertm5k652ve4t87f74v7s7scp2qk2qswmlek0
The repository is hosted at git.smesh.lol/limenka.
Testing
Testing and code review is the bottleneck for development; we get more pull requests than we can review and test on short notice. Please be patient and help out by testing other people's pull requests, and remember this is a security-critical project where any mistake might cost people lots of money.
Developers are strongly encouraged to write unit tests for new code, and to
submit new unit tests for old code. Unit tests can be compiled and run
(assuming they weren't disabled during the generation of the build system) with: ctest. Further details on running
and extending unit tests can be found in /src/test/README.md.
There are also regression and integration tests, written
in Python.
These tests can be run (if the test dependencies are installed) with: build/test/functional/test_runner.py
(assuming build is your build directory).
The CI (Continuous Integration) systems make sure that every pull request is built for Windows, Linux, and macOS, and that unit/sanity tests are run automatically.
Changes should be tested by somebody other than the developer who wrote the code. This is especially important for large or high-risk changes. It is useful to add a test plan to the pull request description if testing the changes is not straightforward.
Translations
Translations can be produced and submitted through the normal contribution process; machine translation with an LLM is a practical option, and string changes follow the translation strings policy.