Knuth's 2020 in numbers

2 461
Avatar for kth
Written by
3 years ago
Sponsors of kth
empty
empty
empty

The end of the year is approaching and in this article we want to summarize how 2020 has been for us, in numbers.

  • We maintain more than 24 repositories, see https://github.com/k-nuth.

  • More than 5177 commits/contributions have been made during this year.

https://github.com/fpelliccioni?tab=overview&from=2020-12-01&to=2020-12-23
  • We have 4 tools for the end-user:
    Node executable
    C++17 API
    C API
    C# API

  • ... and due to the Knuth modular architecture, we have 7 modules/libraries for internal use (although they can be used in a stand-alone manner).

    secp256k1

    infrastructure

    domain

    consensus

    network

    database

    blockchain

  • We have made 183 releases this year. 103 internal modules and 80 end-user modules. See the details below.

  • We have other repositories in which we maintain packages that correspond to the external dependencies of the project, such as Boost, GMP, ICU, MPIR, LMDB, etc.

  • During this year we designed a package management system that makes it easier for us to build our projects. Using this tool the Knuth code is compiled locally according to the user's preferences and is optimized for the specific type of computer. Precompiled binaries are available for the most popular platforms: Linux, macOS and Windows; to avoid the user having to wait for long compilation times. It works similarly to the FreeBSD ports and Gentoo packages.
    See https://github.com/k-nuth/kthbuild.

Contributions to projects external to Knuth, but related to Bitcoin Cash:

  • We created a Python wrapper for the Bitcoin Cash Node ASERT implementation to allow it to be used in Jonathan Toomim's Difficulty Adjustment Algorithm Simulator. See https://github.com/fpelliccioni/bch_daa_2020nov.

  • We have made some code reviews for Bitcoin Cash Node, related to the ASERT difficulty adjustment algorithm and the implementation of GetBlockTemplateLight.

Contributions to other projects:

  • We are also contributing to projects that are outside the realm of Bitcoin Cash, but which we intend to make use of in the near future, for example:

    https://github.com/stlab/libraries/

    Using this library we plan to improve the performance and scalability of Knuth for the coming years in which we expect a considerable increase in the adoption of Bitcoin Cash.


Our achievements in 2020

We ...

  • ... have released the first version of the C# API and then several releases of it.

  • ... have made a complete refactoring of the C API. This achievement made it easier for us to build the C# API and the new APIs that will come in the future.

  • ... have actively participated in the research, coding, and testing of the new difficulty adjustment algorithm that was launched on November 15, 2020: aserti3-2d.

  • ... added support for the Scalenet network. This led us to make several improvements to our code to support it and we are still working on it.

  • ... added support for the Testnet4 network.

  • ... have incorporated the consensus rule changes for the May 15, 2020 network update: SigChecks and OP_REVERSEBYTES.

  • ... have incorporated the consensus rule changes for the Nov 15, 2020 network update: aserti3-2d.

  • ... have modernized the node internal code and our C++ API to make it more readable, maintainable and more C++17.

  • ... have considerably improved our battery of tests, adding new tests and completely changing the testing suite.


Our plan for 2021

Although we have worked a lot during this year, we feel that there is a lot to do.

By 2021 we would like to improve our tools so that they allow other developers to create applications that increase adoption and attract more and more users to Bitcoin Cash.

  • Create new APIs: Javascript, Python, Rust, Golang, Java, etc ...

  • Create a new block explorer (or adapt an existing one) using our new Javascript API to demonstrate the power and flexibility of it.

  • Improve the performance and scalability of the node for future block sizes (256 MB).

  • Improve Initial Block Download times.

  • Implement fast synchronization mechanism.

  • Implement Double-Spend Proofs.


Release Details

End-user modules:

  • Knuth node executable (18 releases):

    kth/0.1.0

    kth/0.2.0

    kth/0.3.0

    kth/0.3.1

    kth/0.3.2

    kth/0.4.0

    kth/0.4.1

    kth/0.4.2

    kth/0.4.3

    kth/0.4.4

    kth/0.4.5

    kth/0.5.0

    kth/0.5.1

    kth/0.5.2

    kth/0.5.3

    kth/0.6.0

    kth/0.7.0

    kth/0.8.0

  • C++ API library, called node (24 releases):

    node/0.1.0

    node/0.2.0

    node/0.3.0

    node/0.3.1

    node/0.3.2

    node/0.4.0

    node/0.4.1

    node/0.4.2

    node/0.4.3

    node/0.4.4

    node/0.4.5

    node/0.4.6

    node/0.4.7

    node/0.4.8

    node/0.4.9

    node/0.4.10

    node/0.4.11

    node/0.5.0

    node/0.5.1

    node/0.5.2

    node/0.5.3

    node/0.6.0

    node/0.7.0

    node/0.8.0

  • C API library (28 releases):

    c-api/0.1.0

    c-api/0.2.0

    c-api/0.3.0

    c-api/0.3.1

    c-api/0.3.2

    c-api/0.4.0

    c-api/0.4.1

    c-api/0.4.2

    c-api/0.4.3

    c-api/0.4.4

    c-api/0.4.5

    c-api/0.4.6

    c-api/0.4.7

    c-api/0.4.8

    c-api/0.4.9

    c-api/0.4.10

    c-api/0.4.11

    c-api/0.4.12

    c-api/0.4.13

    c-api/0.4.14

    c-api/0.4.15

    c-api/0.5.0

    c-api/0.5.1

    c-api/0.5.2

    c-api/0.5.3

    c-api/0.6.0

    c-api/0.7.0

    c-api/0.8.0

Internal modules:

  • infrastructure library (14 releases)

    infrastructure/0.1.0

    infrastructure/0.2.0

    infrastructure/0.3.0

    infrastructure/0.3.1

    infrastructure/0.3.2

    infrastructure/0.3.3

    infrastructure/0.4.0

    infrastructure/0.4.1

    infrastructure/0.4.2

    infrastructure/0.5.0

    infrastructure/0.5.1

    infrastructure/0.6.0

    infrastructure/0.7.0
    infrastructure/0.8.0

  • domain library (19 releases):

    domain/0.1.0

    domain/0.2.0

    domain/0.3.0

    domain/0.3.1

    domain/0.3.2

    domain/0.3.3

    domain/0.3.4

    domain/0.3.5

    domain/0.4.0

    domain/0.4.1

    domain/0.4.2

    domain/0.4.3

    domain/0.4.4

    domain/0.4.5

    domain/0.5.0

    domain/0.5.1

    domain/0.6.0

    domain/0.7.0

    domain/0.8.0

  • consensus library (9 releases):

    consensus/0.1.0

    consensus/0.2.0

    consensus/0.3.0

    consensus/0.3.1

    consensus/0.4.0

    consensus/0.4.1

    consensus/0.5.0

    consensus/0.6.0
    consensus/0.7.0

  • network library (17 releases):

    network/0.1.0

    network/0.2.0

    network/0.3.0

    network/0.3.1

    network/0.3.2

    network/0.4.0

    network/0.4.1

    network/0.4.2

    network/0.4.3

    network/0.4.4

    network/0.4.5

    network/0.4.6

    network/0.5.0

    network/0.5.1

    network/0.6.0

    network/0.7.0

    network/0.8.0

  • database library (20 releases):

    database/0.1.0

    database/0.2.0

    database/0.3.0

    database/0.3.1

    database/0.3.2

    database/0.3.3

    database/0.3.4

    database/0.4.0

    database/0.4.1

    database/0.4.2

    database/0.4.3

    database/0.4.4

    database/0.4.5

    database/0.4.6

    database/0.4.7

    database/0.5.0

    database/0.5.1

    database/0.6.0

    database/0.7.0

    database/0.8.0

  • blockchain library (19 releases):

    blockchain/0.1.0

    blockchain/0.2.0

    blockchain/0.3.0

    blockchain/0.3.1

    blockchain/0.3.2

    blockchain/0.3.3

    blockchain/0.4.0

    blockchain/0.4.1

    blockchain/0.4.2

    blockchain/0.4.3

    blockchain/0.4.4

    blockchain/0.4.5

    blockchain/0.4.6

    blockchain/0.4.7

    blockchain/0.5.0

    blockchain/0.5.1

    blockchain/0.6.0

    blockchain/0.7.0

    blockchain/0.8.0


We thank Bitcoin Cash ecosystem for its warm support and constant feedback.
Have a very good end of the year and an excellent start to 2021.

Sincerely,
The Knuth team.

17
$ 124.78
$ 100.00 from @MarcDeMesel
$ 13.62 from @TheRandomRewarder
$ 5.00 from @JonathanSilverblood
+ 12
Sponsors of kth
empty
empty
empty
Avatar for kth
Written by
3 years ago

Comments

Such an amazing job!

$ 0.00
3 years ago

Well done.

$ 100.00
3 years ago