Open Sourcing of the GoShimmer Prototype

At IOTA we strongly support the decentralized and transparent nature of DLTs. Not only within the technology we develop, but also within our own Foundation. Most of us work remotely from all over the world, and we recently opened up our Engineering communication channels on Discord. Now, we are ready to push this approach even further by opening up our Research department’s code on the prototype.

In our previous blog, we laid out our roadmap for getting the Coordicide approach to maturity.

This involves the continued effort of a research phase in which we tackle the main challenges we face. At its heart, Coordicide can be accomplished through a fine clockwork of multiple mechanisms: two consensus mechanisms — the Fast Probabilistic Consensus and Cellular Automata, an autopeering system, node identities, a spam protection, new tip selection, and many more components.

Naturally, new concepts and research should be tested in an experimental manner in order to proceed to the next level of implementation in a protocol. An important step, therefore, was to introduce a code base on which we can experiment and test some of our many hypotheses. This is achieved by implementing our concepts of the Coordicide blueprint into a prototype code, which we call GoShimmer.

Engage with GoShimmer

With this blog post, we invite the community to engage with this Research prototype implementation at the GitHub repository

https://github.com/iotaledger/goshimmer

As a research department, and in order to achieve the goal of Coordicide, we engage with all the involved components in parallel. Hence progress or even solutions come from different fronts and independent of each other. In order to facilitate a seamless conversion of this knowledge to an experimental level, we decided to set the parallelized approach that we work with on a daily basis at the very core of this prototype itself. This is achieved by designing the code in a modular fashion, where each module represents one of the essential components. This also can easily be seen by opening the main.go file of the GoShimmer repository, which comprises of the list of modules that are currently implemented. Through this approach we are enabled to convert our concepts piece-by-piece and more importantly, simultaneous but independent of each other, into our prototype.

By the time of opening up the repository, we have covered most of the fundamental tasks that are necessary to create a modular and performant framework. In the coming days and weeks, we will continue to add the missing building blocks, to make this node a fully functional prototype that uses the new concepts described in our Coordicide blueprint. Even though the development of this code is ongoing and hence not finished, we want to give the community the opportunity to follow the development process closely and take part in the testing of the individual modules.

To give the community an opportunity to test out this initial GoShimmer prototype, we have written a high-level overview of the modules that are included as well as three step-by-step guides, describing how to:

Run a node

Send spam transaction

Subscribe to the transaction event

Over the coming months, the Coordicide team will work on moving this initial prototype forward towards a public alphanet. In particular, we will be adding Ledger state, the consensus modules and the reputation system — all the progress which you can see in the repository in real-time. This will give our research team and the community the perfect opportunity to test out the future of IOTA in an open environment.

We look forward to taking you with us on the exciting journey of Coordicide through the eyes of the prototype and we hope you will enjoy the development on this project as we do. As always, we welcome your comments and questions either here in the comments or in #tanglemath on our Discord. You can also engage in the #goshimmer-discussion on discord.