Fantom Technical Update — 2

Fantom Foundation
Fantom Foundation
Published in
4 min readDec 11, 2018

With the deadline for our promise of the testnet in Q4 of 2018 just around the corner, our developers and researchers are working in full gear. Once again, here is some of the things that they’ve been up to:

  1. Fantom Web Wallet Development

Fantom Web Wallet is currently under development and is at around 30% completion. By schedule, the web wallet will be ready very soon.

2. Fantom RBVM

3. Authored specification for the interface layers of the Fantom framework (virtual machine, replicated log)

4. Preliminary specification of the Lachesis protocol (to be implemented by go and rust codebases)

5. Building Rust implementation of the Lachesis Consensus Algorithm

Github repository: https://github.com/Fantom-foundation/lachesis-rs

6. Building rust interfaces for the Fantom virtual machine and replicated log

7. Protocol buffer compiler automation for rust implementation of Lachesis protocol.

Attempts to improve performance testing on AWS servers (led to identification of number of issues preventing completion of the test)

8. Built thread-safe version of LRU cache

9. Identified and fixed issue with peers for tester in multi-node configuration (node.Store.Participants() has no NodeAddr needed for tester)

10. Debugged and solved issue with several gossiping procedures running simultaneously causing host overload

We have heartbeat interval between consecutive call of gossiping function, which are executed in a separate goroutine. With increasing of the node number the average execution time of that gossiping function were exceeding heartbeat interval value, so that lead to ever increasing number of concurrently running gossiping functions progressively slowing down host system. We have identified this issue and implemented a watchdog functionality preventing start of the next gossiping function if the previous one is not completed its execution.

11. Issue with non-zero number of undetermined events even when consensus reached (in progress)

We noticed that we have non-zero value of undetermined events when test node finishes. This is normal situation for lachesis which generated new events until all loaded events are in consensus, thus we need to look at the value of pending_loaded_events and stop test when this value is reduced to 0. As a result we have improved termination procedure for the tester.

12. Improvements to TravisCi

13. Repaired tests for `FunkyPoset`. Found a bug when calculating rounds. Reproduced on four or more nodes. The bug is fixed in this bunch.

14. All methods for the web3 API are located in EVM, WS and HTTP endpoints work

This would allow interaction with the underlying DAG

15. Fixed the test ‘TestExample.’

Changed into categories of examples from tests & changed the level of logging in this PR (https://github.com/Fantom-foundation/go-lachesis/pull/87). There is a problem test in `node` using timeouts -` TestCatchUp` — refactoring of this test.

16. Changed EVM in terms of RPC-server and service for simplicity.

Finished PR (github.com/Fantom-foundation/go-evm/pull/13).

17. PR github.com/Fantom-foundation/go-evm/pull/14; create a detailed plan for geth to Lachesis and make estimation;

… And more to follow!

We will be committing ourselves to deliver more updates in development as they come. Please follow our other channels to keep up with more news about Fantom.

Follow us!

Official E-mail Address: contact@fantom.foundation

Official Website: https://www.fantom.foundation

Official Telegram English Chat: https://t.me/fantom_english

Official Telegram Chinese Chat: https://t.me/fantom_chinese

Official Fantom Reddit: https://www.reddit.com/r/FantomFoundation/

Official Fantom Twitter: https://twitter.com/FantomFDN

Official Github Page: https://github.com/Fantom-foundation

Official Youtube Channel: https://www.youtube.com/c/fantomfoundation

--

--