Expanding Fantom Foundation structure

Ivan Glushenkov
Nov 5 · 2 min read

In this article, we will quickly recap what we, the Serotonin Syndrome team, have done during the hackathons, and as a part of the larger Offscale.io team on GitHub.

  1. Register-based virtual machine

During the Serial Hacking 2018: November, we have developed, a suite consisting of:

* a specification of a register-based VM and bytecode format for it,

* the VM itself,

* a translator from LLVM IR to our bytecode format,

* a disassembler to a human-readable text representation,

* Fantom Smart Contract IDE, a web interface for interactive development experience.

Repository: https://github.com/Serotonin-Syndrome/serial_hacking_fantom_rbvm

2. (We mentored a team that has done) A graph visualization tool for the Fantom network

During the Serial Hacking 2018: December, we mentored a team of Igor Evdokimov, Zeeshan Yousaf and others; they have built a visualizer that shows how a given smart contract changes the network in a very comfortable, user-friendly form. It is useful not only for developers, but also for users, because it enables anyone to check and ensure that everything works correctly and the system is safe.

Repository: https://github.com/Serotonin-Syndrome/smart_contracts_graph

3. (We mentored a team that has done) Resource analyser for LLVM IR & plugin for VS Code.

During the Serial Hacking 2018: December, we mentored a team of Leonid Zharikov and Mikhail Plakhov; they have build a resource analyzer: given a smart contract, it predicts its resource usage (memory and cost). Each instruction has a configurable cost so that a change in VM architecture can be easily accounted for. Also, a plugin for VS Code has been developed.

Repository: https://github.com/Serotonin-Syndrome/resource_analyser

4. Traffic replay tool

During the Serial Hacking: the Grand Finale, we have build a traffic record/replay tool. This is, we believe, the most technologically complex solution of all. It is intended to aid in debugging complex concurrent networks, such as blockchains and blockchain-like systems, consensus protocols, etc. It utilizes Linux namespaces and TUN devices. The more detailed description can be found in the README.

Repository: https://github.com/Fantom-foundation/tun-replay

5. Blomp, a Blockchain Bombarding tool

It can bombard various blockchains with transactions and mearure things such as TPS, CPU usage and memory usage.

Repository: https://github.com/Fantom-foundation/bombarding-tool

6. On-boarding experience

Began to integrate our solutions with the existing Fantom infrastructure: https://github.com/Fantom-foundation/full-cli-rs/tree/tester

Fixed some obscure error in libtransport-tcp: https://github.com/Fantom-foundation/libtransport-tcp/commit/a2db8a0b1b975b91b603c8fe233b378d5b2207df

Done some minor fixes/improvements:

https://github.com/Fantom-foundation/libconsensus-dag/commit/16ae698d010141068630decb195da3283b03aeee

https://github.com/Fantom-foundation/libconsensus-dag/commit/1c0a063759cb562d543bf6b9ddf462870afab7d6

https://github.com/Fantom-foundation/libconsensus-dag/commit/c65180caeb7fe194b8f9ed55e58de1aa475ffebf

https://github.com/Fantom-foundation/libconsensus-dag/commit/eb2686ac5f7865a6978ca4f48e3356121ae84603

https://github.com/Fantom-foundation/libconsensus-dag/commit/69bb21ca9c15f541195554544e664107e1bcf7b6

https://github.com/Fantom-foundation/libconsensus-dag/commit/d4b899eb3132c1f53401e85f598843e53f28b4f1

https://github.com/Fantom-foundation/libconsensus-dag/commit/a580a129331d7f21ab7dc6d80de4a87dacc308cc

https://github.com/Fantom-foundation/libconsensus-dag/commit/a488841b6b28723633935da122d1f8e972baddee

https://github.com/Fantom-foundation/libconsensus-dag/commit/50a0a72390ca38cb41bcdf193aafecae50640140

https://github.com/Fantom-foundation/libconsensus-dag/commit/6b358005d90562ba52b4b481bd81286ed64cf43d

https://github.com/Fantom-foundation/evm-rs/commit/7994efa8a77fe5b03c14cc17ec0503e9e0856ae6

https://github.com/Fantom-foundation/evm-rs/commit/f93ea7d5760c7778ff4f40cedb81bcf11899c42e

https://github.com/Fantom-foundation/evm-rs/commit/484936aea9c507e3c57a2b418f4b7d1df89b903b

https://github.com/Fantom-foundation/libvm/commit/cc284d48a3567322a62d146b14f6abc4b46791cb

https://github.com/Fantom-foundation/libvm/commit/1ff31e5c65a3e2e861eab2080be3f9e47dd67fae

https://github.com/Fantom-foundation/libvm/commit/615778956f1c680098e0977a0b178a880180c140

https://github.com/Fantom-foundation/full-cli-rs/commit/67608558f6bb60ba1d7cc7c42b32150e55daffa5

https://github.com/Fantom-foundation/full-cli-rs/commit/a6dbe767a827639fab88029aac4707938749228f

Ivan Glushenkov
Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade