We are excited to release version 0.1.0 of our Coordicide alphanet. The alphanet was initially planned to be released on our Rust-based node (Bee) in Q2. However given the success of the Hornet team and their close cooperation with the GoShimmer team, we decided to adapt our approach.
GoShimmer is our Go implementation of Coordicide, and today’s release marks an important step forward towards reaching a coordinator-free IOTA mainnet.
The main features released with this version are:
- Autopeering: automatic peer discovery and distance-based neighbor selection
- Gossip: network layer for sending and receiving new transactions
- Rate control: a temporary non-mana based rate control to limit transaction issuance
- API: interface to send data (0 value) transactions and query the Tangle
You can download the new release and see the full changelog here. We encourage you to try setting up your own node, connecting to the network, and using the API to query the network or send data (0 value) transactions.
Expediting the Development of Current Mainnet and Coordicide
A key part of the effort was building the hive.go library. This library contains a number of core node components used by both GoShimmer and Hornet. This streamlines the development of both projects and will significantly speed up development both on the Coordicide alphanet and the current IOTA mainnet.
The Hornet team has already started experimenting with the Autopeering module from GoShimmer. Users will soon be able to seamlessly connect their nodes on IOTA’s mainnet.
In our tests,a new node joining the network takes only a few seconds to discover and connect to neighbors. Similarly, when a node goes offline, its neighbors find an alternative within a few seconds. This responsiveness of the network is particularly important for the dynamic environments we are designing IOTA for, where nodes can join and become active at any time, for any period of time — especially important with sporadic connections. In our tests, a fresh network of close to 200 nodes converged in less than 30 seconds. You can see the process in the following visualization:
We are currently building the following modules in accordance with the roadmap:
- Initial FPC implementation
- Tip selection
- Mana-based rate control
The future versions of GoShimmer will also include a number of performance enhancements.
GoShimmer is an ongoing joint effort of the IOTA Foundation engineering and research departments. We encourage community involvement in the development of GoShimmer. Please join us on the #goshimmer-discussion Discord channel if you have questions and feedback.