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:

Getting Started

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 --update

# For Bitcoin

$ conan install kth/0.X@kth/stable -o currency=BTC --update

# For Litecoin

$ conan install kth/0.X@kth/stable -o currency=LTC --update

# (0.X is an alias for our latest uploaded package)

3. Run the node:

# Initialize the database

$ ./kth -i

# Run the node

$ ./kth

Features

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:

Development platform

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.

Cross-Platform

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.

Build system

Our build system is designed to automatically detect processors’ microarchitecture and optimize the binary generated at build time.

Database modes

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.

Second layer protocols

Knuth provides internal support for second level protocol, including full indexation for related transactions.

Processes and industry standards

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.

Modularization

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.

Multi currency

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.

JSON-RPC

Knuth supports JSON-RPC protocol, which is a de facto standard on the market.