Development

GitHub metrics:

Development is ongoing. Commits on public GitHub appears regularly, several times a day.

Developer activity (from Coinlib.io):

Coordicide: The Road Ahead

With the help of IOTA vibrant community and industry partners working towards real-world adoption, the IOTA project has come a long way in the past three years. While the Coordinator has been an essential component thus far for securing the network, it is often described as “training wheels for the network while it is still in its infancy.” The team has been hard at work understanding how to safely remove those training wheels.

They recently published their Coordicide blueprint, which outlines the progress they have made so far, as well as the challenges left to tackle. But solving those problems is just the first step; the solutions still need to be implemented, tested, and ultimately ready to support the IOTA network in the real world.

Removing the Coordinator is the number one priority for the IOTA Foundation’s Research & Development teams. The Coordicide project is a joint effort between both the Research and Engineering teams, and they also welcome those in the IOTA community who would like to get involved.

At a high level, the strategy looks like this:

This strategy can be understood in two distinct phases: the Research and Implementation phase, and the Testnet phase. The final goal, then, is to perform a Mainnet Transition, where the current state of the ledger is brought into the new network.

Phase 1. Research and Implementation

During this phase, the team has three specific goals:

Solve the open research questions around each Coordicide module Write a comprehensive technical specification, which can be used by both the IOTA Foundation and any others who may wish to implement an IOTA-compatible node Implement the specification as the IOTA Foundation’s future reference node software; for now, the working title of this node software is “Bee”

As each module is fully developed, work on the specification and implementation will be started in parallel. By following this strategy, ideally, the reference node software will be available without much delay after the last research questions have been solved.

Coordicide Prototype: Go-Shimmer

As a further speed-boost towards the production node software, the team is also working on a rapid prototype called “Go-Shimmer”, which aims to test the consensus algorithm and some of the other Coordicide modules. This will allow them to have a simplified “Alpha Net” for development, feedback, and to simply provide a sanity-check against their Coordicide implementation without first formalizing the specification or writing production-ready code.

In the meantime, preliminary work on Bee has already begun. The modular, plug-in based architecture is being defined, and many modules are already well-known or do not have any significant open research questions. These modules include:

Ternary

Hash function

Networking

Gossip

Transaction layout

Tangle graph structure

Ledger state & balance calculator

Generic HTTP API

Client API built on HTTP API

Local snapshots

Further research into the remaining modules is well underway. These include mainly those listed on the Coordicide website, namely:

Shimmer (consensus algorithm)

Mana (Sybil protection)

Auto-peering

Tip selection

Node identifiers

Rate control

Timestamps

Node bootstrapping & syncing

In addition to these Coordicide node-specific modules, many existing projects such as the client libraries and the IOTA Hub will be updated as the new specification is defined.

Phase 2. Coordicide Network Launch: Testnet

Unlike the rapid prototype, the Coordicide Testnet is what they consider the first Release Candidate for the Coordinator-free network. The most difficult obstacle to overcome during this phase is to answer the question: “when are the IOTA Foundation and the IOTA community confident enough to entrust the entire valuation of the IOTA network to the IOTA new node software?”

New projects starting from scratch do not have to worry as much about this question since the amount of money at stake may be small by comparison. For IOTA, however, it is imperative that the Testnet mimics as closely as possible the real-world network, including both:

Enough honest actors to meet the required security assumptions, and;

Enough highly-skilled malicious actors and security experts doing their best to find any and all breaking points

In any cryptocurrency network, the real test of security and resilience is done over time as the network grows and attracts users and provides a strong economic incentive for both types of users to participate.

In a Testnet, as tokens do not typically have any real dollar value associated with them, the team, therefore, needs alternative solutions to incentivize this kind of use. They are currently planning two bug-bounty programs, which will run in parallel:

A standard bug-bounty program, for finding errors or bugs in the code or on the running network An “integrated” bug-bounty program, where they insert Testnet tokens that are redeemable 1-to-1 with mainnet IOTA tokens, in the event a malicious actor is able to move them onto an address he/she controls

Both bug-bounty programs will be graduated, starting with a relatively small amount of value and increasing the bounty over time. Initially, IOTA Foundation will provide these bounties, but they may set up a bounty pool for community members to “stake” their own IOTA tokens against Testnet tokens. This provides an excellent mechanism for people who trust the new system to prove it, by putting their own tokens on the Testnet before the full ledger is copied over.

Phase 3. Mainnet Transition

The final step is to transition the ledger balances from the existing network to the new network, which at that point becomes the new, Coordinator-free Mainnet.

Once the community reaches consensus that the Testnet is stable and will support the IOTA Mainnet in full, the team will be able to specify the exact time of the transition, which will be performed by snapshot. This time will be the final period during which exchanges and all other network participants should prepare their applications for the upgrade.

Planning for Change

The team plans to maintain backward compatibility for users of IOTA Foundation supported libraries and software as far as possible. This includes the Trinity wallet, client libraries, IOTA Hub, and more.

Since they anticipate that the hash function and signature scheme, and thus wallet addresses, will change during this upgrade, the Trinity wallet will include a fully automated transition process. Users who open their wallet for the first time after the network transition will see their funds moved to a new address. Funds received at old addresses would also be automatically sent to a new address.

Additionally, historic data already written into the Tangle will remain available through permanodes. These will enable querying for historical transactions, independent of snapshots or other protocol changes.

And of course, it is important to mention: work to improve the current node software — IRI — is an ongoing effort and will not be affected by the Coordicide project. Current IOTA users can expect to see ongoing progress and network improvements, even before Coordicide is complete.

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

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

This involves the continued effort of a research phase in which they tackle the main challenges they 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 they can experiment and test some of their many hypotheses. This is achieved by implementing the concepts of the Coordicide blueprint into a prototype code, which the team calls GoShimmer.

Engage with GoShimmer

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

As a research department, and in order to achieve the goal of Coordicide, they 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, they decided to set the parallelized approach that they 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 the team is enabled to convert their concepts piece-by-piece and more importantly, simultaneous but independent of each other, into their prototype.

By the time of opening up the repository, the team has covered most of the fundamental tasks that are necessary to create a modular and performant framework. In the coming days and weeks, they will continue to add the missing building blocks, to make this node a fully functional prototype that uses the new concepts described in their Coordicide blueprint. Even though the development of this code is ongoing and hence not finished, they 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, they 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, they 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 IOTA research team and the community the perfect opportunity to test out the future of IOTA in an open environment.

Empowering Machines with Wallets: 2nd IOTA Development Contest on Hackster.io

The team announced their second IOTA development contest focused around machines with wallets. The contest has thousands of dollars worth of prizes up for grabs, including a drone, VR headset and 3D printer. They want developers to flex their creative muscle and build something completely new.

Up until now devices were only able to send data to each other. This means that if a device wanted to sell something, to another device or a human, it would have to involve a payment system to collect the money. This adds fees, contracts and complexity to something that should be easy to do.

In this contest, they invite you to integrate hardware and the IOTA protocol to create a device that can send or receive payments in exchange for goods or services. They want you to create something that wouldn’t be possible using standard technology.

This could be something as simple as a light bulb that turns on when you send tokens to it or as complex as a set of devices that are generating electricity and selling it to other devices which are consuming.

To get more info on the contest and what is up for grabs, follow the link.

As IOTA grows into an international organization and technical standard, it’s important that the world inside and outside of the blockchain industry understand the IOTA story, what they are focused on, and how they plan to evolve in the coming months and years. Without a platform to explore the many components that make up their story, the world may find it difficult to grasp the full scope of IOTA in a sea of technologies and digital assets.

In order to share the IOTA story with you all, they’ve developed IOTA Insights, a series for organizations and individuals to learn about IOTA’s key focus areas on a quarterly basis.

They’ve even put together a handy website specifically for updates and content related to the Insights Series. You can sign up here to receive information, learn more about the program, the schedule for future insights calls, and how to participate.

The first ‘episode’ is scheduled for July 30th at 2 PM EST/8 PM CEST, and will cover the following:

Insight 1: Digital Infrastructure, Hosted by Dan Simerman

Insight 2: Smart Cities, Hosted by Mathew Yarger

Insight 3: Standardization, Hosted by Richard Soley

Insight 4: The Future, Hosted by Dominik Schiener

Q/A

For more information visit: insights.iota.org