๐Ÿƒ Lilypad Project Report: July 3

๐Ÿƒ Lilypad Project Report: July 3

Join us in Paris (& apply to join AugmentHack!), Benchmarking EVM-compatible chains, starting the litepaper and getting to testnet.

ยท

6 min read

๐ŸŒ Overview

We're going to be in Paris - come and hang out or hack with us!
CODwg Live Jam Series is back- tune in this week to hear from the HackFS winners!

We're also heads down on building out a minimal testnet in time for ETHCC Paris & from the academic trenches, we're starting the Lilypad Whitepaper!

โš’๏ธ Lilypad Engineering Update

We're rushing towards the testnet in time for Paris in two weeks, the main items under development are dockerizing the entire stack so we can ship it to compute nodes and clients (now working) and replacing the hardcoded jobs with templated jobs with input parameters for our use cases, e.g AI modules and Filecoin data prep.

The latter has required a complete rewrite of the way the codebase interacts with smart contracts, which we expect to have completed in the next few days. After that, deploying the test net and refining the use case modules, docs & DX will be the top priority

A major upgrade to support external blockchains has also been added to Lilypad v1 (Modicum) here

๐Ÿš… Benchmarking Chain Transaction Times

Aim:

This experiment aimed to get a rough idea of transaction speed to finalisation for several alternate EVM-compatible chains.

Background:

Only chains that were fully EVM-compatible were tested in this experiment as the code is written in solidity. This is not an exhaustive list of EVM-compatible chains, however, these are a good sampling of the ecosystem.

Some of the measurements usually used for chain performance include:

  • transaction throughput (scalability measure)

  • transaction finality (time to finality - inclusion in a block)

  • block time

  • transaction fee

Caveats:

This test is by no means an accurate or definitive picture of the performance of the different chains. Several of the issues in benchmarking networks include

  • Purpose of the chain - some chains are optimised for different requirements - such as storage or security, rather than speed of transactions (& offer other advantages to speed).

  • Only using testnets which are not exact mirrors of the main chain performance

  • Time of the run - there may be congestion on a chain at any one time which interferes with a fair comparison.

  • Speed/Latency of the different RPC endpoints is likely to vary

Methodology:

A basic solidity Greeter script was used as the basis of this experiment.

//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;

import "hardhat/console.sol";

contract Greeter {
    string private greeting;

    constructor() {
        console.log("Deploying a Greeter with no greeting:");
    }

    function greet() public view returns (string memory) {
        return greeting;
    }

    function setGreeting(string memory _greeting) public {
        console.log("Changing greeting from '%s' to '%s'", greeting, _greeting);
        greeting = _greeting;
    }
}

The script was deployed to the EVM-compatible chain and then the contract setGreeting() and greet functions() were called in a loop 10 times.

  for (let i = 0; i < iterations; i++) {
    const startTimestamp = Date.now(); //start the timer
    const txRes = await contract.setGreeting(network.name);
    const txReceipt = await txRes.wait(); // Wait for transaction confirmation and get gas used
    const gasUsed = txReceipt.gasUsed;
    const greet = await contract.greet();
    //console.log(greet.toString());
    const endTimestamp = Date.now();
    const executionTime = endTimestamp - startTimestamp;
    executionTimes.push(executionTime);
    gasUsages.push(gasUsed.toString());

    results.push({
      run: i + 1,
      executionTime,
      gasUsed: gasUsed.toString(),
    });
  }
//average all results and write to file.

Date() was used to time how long it took for each call to reach finality and then the average of the 10 run loop was computed and written to a file as seen below. Gas performance was also tested, however results are not included in the below summary.

Results:

Chain

Avg Time (ms) / 10 iterations

Avg Time (ms) / 10 iterations

Avg Time (ms) / 10 iterations

Average Time - All runs (ms)

Arbitrum Goerli

2706

2899.4

2894.9

2833.44

BNB Testnet

3025.8

3316.7

2996.8

3113.1

Klaytn Testnet

3425.3

3872

3601.8

3633.04

Fantom Testnet

3823.2

3883

3807

3837.74

Mantle Testnet*

4123.8

4109.4

4098.8

4110.67

Optimism Goerli Testnet

4106.7

4274

4274

4218.24

Celo Testnet

4998.1

5013.1

4997.9

5003.04

Avax C Testnet

8389.9

8080.4

7577.4

8015.9

Polygon Mumbai Testnet

7995.2

11269.2

6221.3

8495.24

NEAR Aurora Testnet

10332.5

9542.8

10038.1

9971.14

Polygon zkEVM Testnet

11274.5

12071.8

10672.2

11339.5

Eth Sepolia Testnet

15550

15561.3

14464.8

15192.04

Moonbase Testnet

28185.8

24002.2

26363.1

26183.7

Filecoin Calibration Testnet*

63110.7

60176.9

60201.1

61162.9

Calibration needed custom gas params for deployment and had to remove the call to greet function for this to run successfully.

*Run issues- not all runs completed on Optimism

Mantle needed custom gas params set to deploy & run

Next Steps

The next steps will be running a version of the modicum contract on these chains.

๐ŸŽ“ Lilypad Research Update

This week was spent doing further research into solving the complex problems of distributed compute consensus. We've also started on the whitepaper, so stay tuned for more robust news when that's released!

While our Head of Research is busy on this... have you caught up with his talk on Game Theory in Distributed Compute at Boston CODSummit^3 ?

๐ŸŒŸ Lilypad "All the Things" Update

This week, Alison Haire & Compute over Data WG Community member Silent Spring are also rebooting the CODwg series - aiming to help create a space for collaboration between decentralised compute over data projects in the web3 space, share best practices and co-create composable, re-suable standards.

We've also confirmed our schedule for ETHCC Paris - and we'd love to meet you there! We're especially excited to be joining AugmentHack๐Ÿง‘โ€๐Ÿ’ป and the FIL:Paris๐Ÿ‡ซ๐Ÿ‡ทNetwork Base events!

๐Ÿ“บ Join CODwg with special guests - HackFS Winners for our rebooted CODwg series!

Tune in on YouTube on July 7 at 6pm EST!

๐Ÿง‘โ€๐Ÿ’ป๐Ÿ‡ซ๐Ÿ‡ท Hack with Lilypad in Paris! Oh lร  lร !

July 18 - 19 AugmentHack - a Decentralized AI Hackathon

๐Ÿ’ƒ **$3000 bounty!**๐Ÿ•บ

AugmentHack is bringing together a variety of communities - including Open Source AI and AI x Web3 - that are fundamentally aligned with the principles of decentralization & autonomy.
Sponsors and organizers include Algovera.ai, Lilypad/Bacalhau, StabilityAI, HuggingFace, Llama Index, Gensyn, Ceramic, Ocean, Nevermind, Valory.xyz, Gnosis and more.

July 21-23 ETHGlobal Paris Hackathon

๐Ÿฅ Rendez-vous with Lilypad at these Paris Events!

The Lilypad Team will be in Paris for ETHCC! You can catch us at the following events:

July 18 - Filecoin Unleashed

๐Ÿ‘‰ Sign up here!

July 20 - FIL:Paris Network Base

๐Ÿ‘‰ Sign up here!

๐Ÿ“– Decentralist's Blog Post (On decentralised Compute & AI + Waterlily.ai)

The Dencentralist's Twitter Spaces Podcast is now a blog!

๐Ÿ‘‰ Read the post here!

๐Ÿ”ฎ What's Next?

Next week we'll be frantically preparing to launch the minimal testnet by Paris, as well as building out accompanying talks and examples for developers to play around with. Wish us luck! XD

โ˜Ž๏ธ Contact Us

๐Ÿ—ž๏ธ Subscribe to the newsletter: https://lilypad.tech/newsletter

Did you find this article valuable?

Support Lilypad Network by becoming a sponsor. Any amount is appreciated!

ย