Fantom Status

Andre Cronje
Fantom Foundation
Published in
6 min readOct 5, 2019

By Andre Cronje

Snapshot

Fantom has completed it’s consensus implementation of both lachesis and txflow. Both are currently available and ready for usage via github.

Lachesis and txflow have been integrated into Cosmos SDK

A non Fantom related entity Zar Network has been building on top of Fantom SDK.

Fantom is a technology provider that will gladly support third parties in developing tools and building products that leverage lachesis consensus.

You can launch lachesis today and build your own blockchain solution.

Here are the instructions to build and run;

If you are a web3 dev and simply want to play around with smart contracts and EVM support using lachesis consensus, you can use one of the following nodes

To access the web3.js console, use one of the servers:

Regarding transaction latency:

The nodes are configured to emit 1 event per minute if there’s no txs to post or confirm, and they’ll try to emit 1 event per second (if gas power is too low to emit this much events, then the behavior is more complex) if there’s at least one transaction to post/confirm. It means that if you don’t send any transactions, then the block rate is ~2–3 minutes, but when you send at least 1 tx — the next block will be after 2–3 seconds.

Personal comments;

Fantom is a consensus provider, much like RAFT is to the traditional distributed world

The goal has been and will be to focus on building the best decentralized consensus available. Not to be the best blockchain available. A blockchain is part of the product, consensus is one of the modules, just like you have modular EVM support, or NFT, or Issuance. You choose the modules for your network and deploy the one you prefer to work with, that is why Fantom has spent additional hours to integrate Lachesis into go-ethereum and cosmos-sdk.

Zar Network

Zar Network has shared the following status update, please note Zar Network is an independent entity not related to Fantom, Fantom has been working closely with Zar to help them understand and advance the technology stack

Blockchain

https://github.com/zar-network/zar-network

Zar-network is the chain implementation. The key value here is from the issue module

Documentation on how to use the issue module available here;

https://github.com/zar-network/zar-network/blob/master/docs/cli/zarcli/issue/README.md

Install instructions available here;

https://github.com/zar-network/zar-network/blob/master/docs/deploy-testnet.md

The zar chain runs ontop of cosmos sdk

https://github.com/cosmos/cosmos-sdk

Which has been modified to use txflow and lachesis

https://github.com/Fantom-foundation/go-txflow

https://github.com/Fantom-foundation/go-lachesis

Core features of this chain;

~50k+ Transactions per second, (Personal comment, this is not part of an official audit and is the current internal environment numbers, do not quote this as literature, since there are not standardized tests for TPS), once completed the following standardized tools will be used and then the results will be released;

https://github.com/raid-7/tun-example
https://github.com/salamantos/bombarding-tool

The above tools were part of the CryptoBazar hackathon and specific tasks requested by Fantom to create standardized blockchain tests.)

Transaction Responsiveness

Transaction Finality

Core features of zar-network

Issue

Mint

Mint to

Burn

Burn from

Freeze transfer in

Freeze transfer out

Freeze transfers

Approve allowance for

Increase allowance for

Decrease allowance for

The testnet is currently running on the following endpoints;

http://34.244.179.123:1317/node_info (zar-chain-panda)

http://34.244.179.123:26657/status (consensus — lachesis)

Available endpoints for consensus are listed here

http://34.244.179.123:26657/

Available endpoints for zar-chain-panda are described here;

http://34.244.179.123:1317/swagger-ui/

Javascript / NodeJS SDK code is available with examples;

https://github.com/zar-network/javascript-sdk

https://github.com/zar-network/javascript-sdk/blob/master/__tests__/client.test.js

It has also been published on NPM

https://www.npmjs.com/package/@zar-network/javascript-sdk

Stack as follows;

Web UI (not disclosed)-> API (not disclosed)-> http://34.244.179.123:1317 -> http://34.244.179.123:26657

Web UI (React / NodeJS) interacts with EB API (NodeJS / PostgreSQL)

EB API uses javascript-sdk (NPM)

javascript-sdk wraps calls to zar-network (Golang RPC)

zar-network uses ABCI to interact with consensus (Golang TxFlow and Lachesis)

Fantom core product features update and roadmap

Go-Lachesis

  • Scope2 (Consensus + communication layer + EVM): Complete
  • Scope3(Staking rewards distributions + ecosystem tools): End of December.
  • Implementation differs in a few ways to “StairDag” paper, as discussed with Andre.
  • Modifications by Quan to be consistent with “StairDag” paper: November / December.

Rust Implementation

  • EVM Rust implementation by Augustin completed as of writing.
  • All other modules / parts of the stack are completed (pending some error handling by Ayreh and Alex Jones). This includes TCP, and full-cli. Last piece of work in Consensus.
  • Consensus preliminary formal specification by Vlad on Maxim’s consensus work to be completed.
  • https://github.com/Fantom-foundation/libconsensus-dag
  • Discussed with Sam FIP-2 staking proposal

Internal View

Lachesis — Scope 1

Fast Gossip Protocol

Fork Rules

Summary of Algorithms

Lachesis-rs:

Closing remarks

Fantom will continue to focus on Lachesis consensus, while we are happy with the current results, there is much room for improvement and we are constantly advancing the consensus. For that reason we encourage people to run and host their own blockchains which Fantom will support in any capacity they can.

--

--