By Michael Kong

Fantom is proud to announce the recent technical accomplishments made in our Golang implementation of Lachesis consensus — Go-Lachesis.

Much work has gone into launching an open-source, permission-less, and leaderless network with full smart contract support, each of those terms above mean the following:

Open source: The code is released under the MIT-License, meaning it can be freely used for commercial and non-commercial purposes. It’s development is also transparent , so anyone can audit the code themselves.

The code is released under the MIT-License, meaning it can be freely used for commercial and non-commercial purposes. It’s development is also , so anyone can audit the code themselves. Permission-less: Anyone from anywhere can freely join and leave the network without breaking consensus

Anyone from anywhere can freely join and leave the network without breaking consensus Leaderless: All validating nodes participate in consensus equally, based on the same rules. There are no “masternodes”. This is not delegated Proof of Stake, but leaderless Proof of Stake

All validating nodes participate in consensus equally, based on the same rules. There are no “masternodes”. This is not delegated Proof of Stake, but Full smart contract support: With Go-lachesis, you can currently write, compile, deploy, and run smart contracts using the full Web3JS specification, just like how it works on Ethereum

Achievements

So far, the teams working on Go-Lachesis have achieved the following:

Full native Ethereum Virtual Machine integration (this will be switched over to our own virtual machine once it is ready: This allows developers to write, deploy, and run smart contract applications.

(this will be switched over to our own virtual machine once it is ready: This allows developers to write, deploy, and run smart contract applications. Full Web3JS API integration : The full Web3JS specification has been integrated, so all the calls can be used to communicate with the network and smart contracts, exactly like how you do it for Ethereum.

: The full Web3JS specification has been integrated, so all the calls can be used to communicate with the network and smart contracts, exactly like how you do it for Ethereum. Lachesis Consensus: Our own consensus engine, Lachesis, has been completed and integrated into Go-Lachesis. Documentation on how it works can be found here.

Our own consensus engine, Lachesis, has been completed and integrated into Go-Lachesis. Documentation on how it works can be found here. Dynamic Participation: Validating nodes that freely join and leave the network, without breaking consensus, at any time. The network does not need to know the number of participants in advance to operate.

Running Demos

Instructions on how to deploy your own network can be found in the README. A network can be run locally on your own machine, or in a docker container.

There is also a video demonstrating a variety of Web3JS calls to the network, showing you how to deploy and run smart contracts.

What remains to be completed

A few tasks remain to be completed, they include the following:

Writing scripts to demonstrate network performance

Integrating Proof of Stake rules, including the distribution of rewards

Integrating a new indexing algorithm to make contract log searches much faster than in Ethereum

New and improved designs and implementations of desktop, mobile, and web-based wallets, along with a new explorer

The current schedule is for these tasks to be completed in December 2019. From there, Fantom will be able to launch Go-lachesis as its first mainnet with full smart contract support.