Fantom Technical Update — 8

Lachesis Research and Development


  • Implemented Lachesis prototype from Jiho et al. in go-lachesis and tested its performance on 3–39 nodes and correctness on 25, 35, and 65 nodes
  • Implemented and tested modified DAG-based consensus algorithm to solve one of the major issues with Lachesis
  • Added in Tiny test framework: fake net, fake genesis, and events ASCII-schema parser


  • Development continues, we have many components of the VM working, consensus is completely modular — one can decide between Raft, Lachesis, & more — and cleanly tested
  • Bringing together the Go team to work on Rust exclusively
  • Early Lachesis correctness analysis identifying flaws in the algorithm
  • Implementing Jiho at al. prototype in Rust language to have it as a ballpark in our further R&D of DAG-based consensus
  • Working on DAG-based Consensus to solve remaining issues
  • Migrated the solidity parser into a home grown one, using nom
  • Created a representation of contracts in memory of the VM using LLVM
  • Started the backend of solidity. Have already done translation of most of its AST to LLVM IR, including all the basic data types and declarations


  • Implemented a new project called JOpera, which is a Java-based version of Opera chain. JOpera provides a light-weight prototype as the baseline to experiment with asynchronous event transmission in a DAG-based approach
  • Experimented with the Lachesis protocol in various settings and scenarios. In particular, we have tried with different number of nodes (e.g, 3, 5, up to 65 nodes) and different event creation rates per node (e.g., 0, 0.2, 0.5 and 0.8)
  • Researched in an improved consensus protocol that will work more reliable and more scalable. A new technical report is in preparation

All Lachesis development updates can be found here:




Proof of Stake