xx network Code First Public Debut
All xx BetaNet source code will be available to the public by the launch of the BetaNet on July 1st.
Posted on: May 19, 2020
Today we released the first source code for the xx BetaNet. All source code (roughly 60k lines of code written primarily in Go) required to run a BetaNet node will be available by the BetaNet launch on July 1st to allow for community input, verification, and trust in the BetaNet. We believe the codebase represents a new level of cryptographic sophistication and is the first time this type of mix network has been released to the public.
This initial release includes two repositories: our core Elixxir Primitives libraries, which contains network definitions, message formats, and data structures, and our core Elixxir Cryptography libraries, which comprises implementations of modular arithmetic, wrapping of core cryptographic functions, and various other cryptographic implementations.
In mid June we are planning to release the source code for the remaining repositories necessary to run a node. These are the Comms libraries, GPU Accelerated Cryptography libraries, the implementation of the Node software and Gateway software, and a set of utilities to help run a node.
The xx network team has maintained industry best practices for testing and integration, as well as good style and what we hope is adequate documentation, to ensure the source code is easy to read and understand. Across the project, test code coverage is at minimum 75% but often closer to 90%. Furthermore, all changes to the codebase trigger and are required to pass a robust multi-repo integration test. We strive to constantly improve our process and will continue to do so.
We’ve made great strides in building the core Elixxir codebase to be robust, extensible, and understandable. But the xx network software has a way to go before it is complete. We are anxious for the community to get their hands on it, deploy it, scrutinize it, criticize it, and test it. It also includes the telltale signs of a codebase which has not yet finished its journey. There are more than a few TODOs followed by lengthy comments on proper code structure or future work. There are documented vulnerabilities that need to be addressed and it has yet to undergo crucial security audits. To put it bluntly, the code is in beta.
The BetaNet source code is being released under a beta license. The xx network is committed to open access to source code, facilitating community contribution, execution, and audit. This is as fundamental to “blockchain” as the blockchain itself and must be a cornerstone of the xx MainNet for true decentralization. We look forward to working with the community on more standard licensing as we get to MainNet.
We are excited to invite the community to take part in the software development process of the xx network. Community contribution, whether it be running a node, finding flaws and critiques, or code commits, will be instrumental in bringing the software to completion. Please join us in building this software to bring the vision of data ownership, privacy, and a trustless internet to reality.