limenka

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.

Fork

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.

Prebuilt binaries

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.

Testnet

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.

Automated Testing

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.

Manual Quality Assurance (QA) Testing

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.

files