Knuth's 2020 in numbers
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.
We have `4` tools for the end-user: Node executable C++17 API C API C# API https://github.com/k-nuth/kth https://github.com/k-nuth/node https://github.com/k-nuth/c-api https://github.com/k-nuth/cs-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 https://github.com/k-nuth/secp256k1 infrastructure https://github.com/k-nuth/infrastructure domain https://github.com/k-nuth/domain consensus https://github.com/k-nuth/consensus network https://github.com/k-nuth/network database https://github.com/k-nuth/database blockchain https://github.com/k-nuth/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): https://github.com/k-nuth/kth/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): https://github.com/k-nuth/node/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): https://github.com/k-nuth/c-api/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 C# API library (10 releases): https://github.com/k-nuth/cs-api/releases 0.1.0 0.2.0 0.2.1 0.3.0 0.4.0 0.5.0 0.6.0 0.7.0 0.8.0 0.9.0 See also: https://www.nuget.org/packages/kth-bch/ Internal modules: secp256k1 library (5 releases): secp256k1/0.1.0 secp256k1/0.2.0 secp256k1/0.3.0 https://github.com/k-nuth/secp256k1/releases secp256k1/0.3.1 secp256k1/0.4.0 infrastructure library (14 releases) https://github.com/k-nuth/infrastructure/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): https://github.com/k-nuth/domain/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): https://github.com/k-nuth/consensus/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): https://github.com/k-nuth/network/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): https://github.com/k-nuth/database/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): https://github.com/k-nuth/blockchain/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.
2 comments
Well done.
Such an amazing job!