Introducing LabNet, a rapid iteration testnet for Tezos

TL;DR: LabNet is a new Tezos testnet aimed at Layer-2 experimentation and rapid iteration driven by user feedback. LabNet complements the Tezos amendment process, aspiring to test protocol changes against the entire stack. LabNet is a petri dish, not a place to deploy production-grade applications.

What is LabNet?

LabNet is a new testnet for Tezos designed to facilitate rapid iteration and user-centric experimentation, especially for Layer-2 (e.g. the OVM).

LabNet aims to complement the Tezos amendment process and runs alongside existing testnets (i.e. Babylonnet, Carthagenet, and Zeronet), upgrading to include experimental new features as they become available.

But LabNet is not simply about playing around with experimental protocol features. The effort is animated and inspired by user-centricity, incorporating feedback about cross-cutting features. Such functionality touches every piece of stack, ultimately reaching end users: from wallets and SDKs to smart contract languages and layer-two projects. This is a tall task for an experimental testnet, but we hope to start small (e.g. with one SDK).

We plan to discuss experimental feature ideas and user requests using Tezos Agora. And most importantly, we urge anyone with ideas for improving Tezos to reach out on this thread or via this initial feedback form.

We hope the Tezos community will come to think of LabNet or other derivative testnets as feeders to the Tezos amendment process. It aims to be a great place to try out exciting new ideas and provide user feedback, complementing the amendment process.

Early LabNet Experiments (planned)

OVM: Optimistic Virtual Machine (Plasma/Layer-2)

  • LabNet will add the keccak256 hash function and some minor features enabling experimentation with the OVM on Tezos
  • For background on the OVM as a layer-2 scalability solution, check out this introductory piece by Plasma Group or check out this popular Uniswap demo from Devcon based on optimistic rollup

Read-only calls

Event Logging

  • Inspired by Ethereum’s contract event logging, a frequently requested feature by developers considering Tezos

Tooling synchronization with experimental features

  • Experimentation with upgrading the tooling layer based on core features (e.g. smart contract languages, SDKs, etc.)

Labnet also uses the new Multinetwork Node from the tezos/tezos core team.

Who is LabNet for?

  • Developers and users who want to play around with an experimental version of Tezos! Anyone is welcome.

How does LabNet differ from existing testnets, such as Zeronet, Babylonnet, or Carthagenet?

  • LabNet is focused on rapid iteration based on user/developer feedback and not tied to a specific amendment proposal.

Who bakes LabNet?

  • Initially, LabNet will be validated by the following 4 entities:

    • Tezos Commons
    • ECAD Labs
    • Cryptoeconomics Lab
    • TQTezos
  • User-activated upgrades to new versions will be used to ensure rapid iteration

  • As with views, we intend to present and explain future features for discussion on Tezos Agora.

Should I run production applications on LabNet?

No. LabNet is an experimental testnet for rapid iteration. Think of LabNet as you would a petri dish. Great for experimentation, but not a place for real applications.

Where can I find LabNet?

On GitLab: https://gitlab.com/labnet/tezos

How to start a node on Labnet?

We use a fork of the multinetwork-branch: labnet/tezos:labnet-1-babylon, you may build it and use a configuration file similar to this one:

{ "data-dir": "/data/node", "rpc": { "listen-addrs": [ ":9000" ] },
  "p2p":
    { "bootstrap-peers": [ "3.17.110.29:9001", "18.224.57.45:9001" ],
      "listen-addr": "[::]:9001" },
  "network":
    { "genesis":
        { "timestamp": "2019-12-17T21:00:00Z",
          "block": "BLockGenesisGenesisGenesisGenesisGenesisd1f7bcGMoXy",
          "protocol": "PtBMwNZT94N7gXKw4i273CKcSaBrrBnqnt3RATExNKr9KNX2USV" },
      "chain_name": "TEZOS_LABNET_1_2019-12-17T20:14:32Z",
      "sandboxed_chain_name": "SANDBOXED_TEZOS" } }

We also made Docker images for convenience:

 $ docker pull registry.gitlab.com/labnet/tezos:labnet-1-babylon

How to get lab-ꜩ?

The same faucet as babylonnet and carthagenet simply works with labnet, see https://tezos.gitlab.io/introduction/howtouse.html#faucet.

What’s next?

In upcoming Agora posts, we’ll propose and discuss new, experimental features for LabNet. As mentioned above, we urge developers with ideas for improving Tezos to reach out on this thread or via this feedback form.

14 Likes

Any chance that LabNet could get keccak512 as well? It’s useful for Ethereum interoperability

3 Likes

Hi @prestwich

Yes, we can!

Xavier Leroy (OCaml guru) has been building cryptokit and it has keccak256/512 support.

Technically Tezos is currently using ocaml-hacl (=F*-lang implemented hash functions) and keccak series aren’t there.

4 Likes