This article is a translation of the German IOTA Beginner’s Guide by Schmucklos.


GoShimmer is a prototype node software in progress that allows nodes to reach consensus without the coordinator so that IOTA networks can be decentralized.

By running a GoShimmer node, you can test the latest developments in the next stage of the IOTA protocol. GoShimmer is a prototype node software that the research department is developing to test Coordicide. When all modules are available, GoShimmer nodes will become the Coordicide test network, which is a release candidate for the next IOTA protocol.

The code in GoShimmer is modular, with each module being one of the Coordicide components or a basic node function. This approach allows us to develop each module in parallel and test GoShimmer with one or more different versions.

Source: IOTA Einsteiger Guide

Implemented Coordicide Modules

The master branch is the stable version of the GoShimmer software, which includes a minimal set of modules that allow you to send zero-value transactions.

The master branch includes the following coordicide modules:

  • Node-Identities
  • Autopeering

The autopeering module is divided into two submodules:

  • Peer discovery: responsible for operations such as discovering new peers and checking their online status.
  • Neighbor selection: Responsible for searching and managing neighbors.
GoShimmer Autopeering
Source: IOTA Einsteiger Guide

Modules in progress

  • Mana: The Mana branch contains an initial implementation of the Mana module in the package directory.
  • Cellular Consensus: This branch contains a first implementation of the Cellular Consensus module in the package directory.
  • Fast Probabilistic Consensus: The FPC branch contains a first implementation of the Fast Probabilistic Consensus module in the packages directory. We also have a standalone FPC simulator in this repository.
  • Spam protection: you can find the initial rate control simulation source code in this repository and the Adaptive Proof of Work simulator source code here.
  • Ledger state: using the UTXO model.

Original source


Last Updated on 16. February 2021