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 "conan>=2.0" --user --upgrade

$ pip install kthbuild --user --upgrade

$ conan remote add kth https://packages.kth.cash/api

$ conan config install https://github.com/k-nuth/ci-utils/raw/master/conan/config2023.zip

2. Install the node executable:

$ conan install --requires=kth/0.36.0 --update --deployer=direct_deploy

3. Run the node:

# Run the node

$ ./kth/bin/kth

Libraries

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.