Knuth is a high performance implementation of the Bitcoin protocol focused on users requiring extra capacity and resilience. It is a full node software client, but also a development platform. It is designed for:
Install and run Knuth is very easy, you must follow these instructions.
1. Install and configure the Knuth build helper:
$ pip install kthbuild --user --upgrade
$ conan config install https://github.com/k-nuth/ci-utils/raw/master/conan/config.zip
2. Install the appropriate node executable:
# For Bitcoin Cash (default)
$ conan install kth/0.X@kth/stable -o currency=BCH
# For Bitcoin
$ conan install kth/0.X@kth/stable -o currency=BTC
# For Litecoin
$ conan install kth/0.X@kth/stable -o currency=LTC
# (0.X is an alias for our latest uploaded package)
3. Run the node:
# Initialize the database
$ ./kth -i
# Run the node
Knuth is characterized by its modular architecture and beautiful code. It has the intention to facilitate adoption and collaboration in the evolution of a diverse ecosystem. We want our code to be interactive, reusable and reliable, easy to read and easy to debug. Some of our features are:
Knuth is a full node implementation, but also a development platform. Its core is written in C++. On top of it, several libraries and modules, written in several programming languages, are provided and can be used as a basis for building applications.
Knuth is a cross-platform solution. It can be used in any computer architecture and operating system. It only requires a 64-bit machine. Its code can be compiled and natively used on Linux, Windows, macOS, FreeBSD, and others with no fuzz.
Our build system is designed to automatically detect processors’ microarchitecture and optimize the binary generated at build time.
Designed to offer a high level of specialization for particular use cases, Knuth node can be initialized under 3 different database modes at installation time: normal, pruned and full-indexed. An orthogonal read-only mode is provided for scaling capabilities.
Knuth provides internal support for second level protocol, including full indexation for related transactions.
Knuth has the best processes and standards available. It is written in C++ and uses libraries such as Abseil, Boost, GMP, ICU, among others. In terms of toolchains, Knuth uses GCC, Clang, MSVC, CMake, Conan, clang-tidy, and clang-format.
Knuth is built following a completely modular architecture. Each module is a library that can be used independently or together with other libraries. This adds a neat and readable code organization that follows the single-responsibility principle. Any protocol change can be introduced in Knuth much faster and efficiently.
Knuth supports Bitcoin Cash, Bitcoin and Litecoin in the same code base. Choosing a cryptocurrency is just as simple as changing a switch in our build system.
Knuth supports JSON-RPC protocol, which is a de facto standard on the market.
Our team is formed by people with two main backgrounds: software development and corporate business. Our team is both lean and functional, with the explicit intention of gaining speed and expedition without compromising robustness.