CryptoKernel is a C++ library intended to help create blockchain-based digital currencies. It contains modules for key-value storage with JSON, peer-to-peer networking, ECDSA key generation, signing and verifying, big number operations, logging and a blockchain class for handling a Bitcoin-style write-only log. Designed to be object-oriented and easy to use, it provides transaction scripting with Lua 5.3, custom consensus algorithms (e.g Raft, Proof of Work, Authorised Verifier Round-Robin) and custom transaction types.
./installdeps.sh
make
See the source files in src/client/ for example usage. CryptoKernel ships with a Proof of Work coin built-in called K320 that works out of the box. For more information about the API check the documentation.
To launch CryptoKernel as K320 with its default setup, simply write:
./ckd
To get a list of command line RPC commands use:
./ckd help
To make ckd run in daemon mode use:
./ckd -daemon
There is also a GUI for CryptoKernel that runs client-side in a web browser available here: https://github.com/metalicjames/ckui
Build the documentation with doxyblocks.
make doc
- H -- Hard Fork
- S -- Soft Fork
- L -- Local (No Fork Required)
H -- Transaction Merkle root in block headerH -- Rule change signalling in blockH -- Friedman rule emission scheduleH -- Lyra2REv2 as PoW functionL -- Wallet schema version detectionL -- RPC Server requires password
L -- Improved synchronisation performanceL -- Other various bug fixes, especially around error handlingL -- Wallet tracks unconfirmed transactionsL -- Multicoin support via config files
- S -- Expand Lua contract standard library with more digital currency specific functions
- S -- Load external contract code to avoid duplication for propagating contracts
- L -- Standardised address format (not just public keys)
- L -- BFT consensus module
- L -- Raft consensus module
- L -- Expanded RPC interface for contracts
- L -- HD key generation and recovery with seed
- L -- LN integrated with wallet
- S -- Schnorr signatures
- L -- Seed addresses