Nomadic Labs
Nomadic Labs
Meanwhile at Nomadic Labs #12

A summary of Nomadic Labs activities in Q2 2021

Meanwhile...

Welcome to our meanwhile series, the ongoing story of Nomadic Labs’ amazing adventures in the Tezos blockchain space. This post is a recap of our activities in the second quarter of 2021, following on from our 2020 recap and our 2021 first-quarter Meanwhile. As always, you can find out more about us here:

Twitter @LabosNomades ~ Website ~ LinkedIn ~ Technical blog ~ GitLab repo

So here’s what we’ve been up to these past three months:

Octez

We are pleased to announce Octez. Octez is a new name for a veteran implementation of Tezos which had previously been known just by its version number and by a GitLab repo.

At time of writing, the latest version of Octez is Octez Version 9.4, and the latest release candidate is Octez Version 10.0~rc1.

Here is the Octez GitLab repo. Feel free to get the Octez Tezos implementation and join the Tezos blockchain!

Adoption and Support

Our adoption and support teams1 have been hard at work developing relationships, and thanks to their dilligence we are proud to announce that:

Training

Training is key to uptake and adoption and in May/June 2021 Nomadic Labs, in collaboration with colleagues from the SmartPy, Ligo and Archetype language teams, organised two online training sessions on Smart Contract programming (in French: “Développer des Smart Contrats sur Tezos”) for a total of just over thirty developers from various French companies interested in doing projects based on the Tezos blockchain.

The courses were well-received and we plan to continue to run training courses in both French and English. If you’re interested, please just send us an e-mail at training@nomadic-labs.com.

Umami

The Umami Team at Nomadic Labs released the Beta version of the Umami wallet in April 2021. This Tezos cryptocurrency wallet is designed as a power tool, built by OCaml developers for OCaml developers using ReasonML, and supporting all the native features of the Tezos protocol, including multiple accounts, tokens, batch transactions, and delegation — with more features in the pipeline.

You can download Umami here. For more information see:

Announcing: a new logo and website

Nomadic Labs is happy to introduce to the world its new logo and its new modern and accessible website.

Since our team formed in 2018, the Tezos project has grown considerably, and our own identity has grown along with it. While we remain primarily an OCaml programming house, we have seen our activities diversify with the addition of teams dedicated to adoption, support, and training. Our new image encapsulates our dedication to technical excellence, community and commitment, which are the core values for our activities.

Our 2018 look Our new 2021 look
2018 logo New logo

Culture and growth

Since April 2021 we are delighted to have been joined by five new hires and four interns (see next item), bringing our count of full-time employees to 67.

Announcing: PhD student, Intern, and apprentice interviews

It’s the people in a workplace that make it a good place for people to work in.

Thus we are extremely pleased at Nomadic Labs to host interns (stagiaires) and apprentices (apprentis), and to supervise some PhD students in collaboration with the local universities in Paris: our contribution to educating the next generation and to getting fresh perspectives on our own work.

Our interns, apprentices, and PhD students come from many backgrounds, and each has their own unique story to tell, so we’ve introduced a ‘people’ category to the Nomadic Labs blog to host interviews with our valued guests. Interviews so far have included:

Protocol upgrade: Florence activated, Granada proposed

On 11 May 2021 Florence was activated, and on 25 May 2021 Granada was proposed.

The Tezos protocol environment enjoys regular performance and security upgrades.3 How this happens concretely is that a self-amendment mechanism is activated to propose an upgrade the protocol — and because Tezos is an open community, protocol upgrades are approved by community vote. This means that upgrades can only happen when you, the Tezos community, vote that it be so; which is why you’ll notice we only ever talk about us making upgrade proposals.

Most recently,

We are pleased to announce of 2021 Quarter 2 that:

The Florence upgrade

You can find out more about the Florence upgrade here:

Substantive Florence upgrades include:

For more reading see:

The Granada upgrade proposal

As per a detailed blogpost on the Granada upgrade proposal, Granada proposes the following changes:

  • A switch from Emmy+ consensus to Emmy*. Emmy* halves block time from 60 to 30 seconds (doubling transactions per second), increases the number of endorsement slots from 32 to 256 (increasing stability and participation), and provides a special fast consensus path for when the network is operating normally. All this makes Emmy* significantly faster than Emmy+.

  • Liquidity Baking promotes low-slippage exchange between tez and other currencies using wrapped tokens.

  • The improvements to gas consumption continue. Empirically, we observed gas consumption decrease by a factor of three to six in the execution of already-deployed contracts.

  • Regrettably, Granada also contains a non-critical bug. We expect this to be corrected in the following “H”-named upgrade proposal. In the meantime, we will provide a linting tool to help developers detect the bug-affected pattern in any new smart-contract code.

For further reading, see:

Tenderbakenet

We plan to upgrade our consensus algorithm to Tenderbake in the near future. To this end, we are pleased to announce Tenderbakenet, an experimental Tezos blockchain based on Tenderbake.

Further information is in an article on “Rapid Innovation: Tezos Tenderbake Testnet Spawned”.

Testing

We continue to improve our home-grown Tezt framework. One substantive new feature is the ability to run tests on remote hosts (see merge request).

How is this substantive? Tezt was originally a tool for running a test suite of local unit and integration tests on your local machine. This new functionality makes it convenient to run tests on remote hosts; Tezt-ing by remote control, so to speak. This opens up possibilities to administer unit and integration Tezts at scale on clusters of remote nodes.

We’re also investing heavily in property-based testing (see also our previous blog post). For example:

  • We have completed a migration from crowbar property-based testing framework to the more mature QCheck framework. In particular, our friends at Tweag have developed a new version QCheck2, which includes integrated shrinking, which means that QCheck2 automatically searches for minimal counterexamples,4 without requiring the programmer to write a shrinker by hand.5

  • In March 2021 Valentin Chaboche started an internship on enabling large-scale light-weight specification and testing using QCheck. His development consists of

    ppx is an OCaml metaprogramming framework, and a generator is a program to generate test cases e.g. for QCheck or QCheck2; so that makes a ppx to derive generators an “OCaml metaprogram for a programmer to programmatically generate generators to test code the programmer generated”. Similarly a ppx to transform specifications to property-based tests means more metaprogramming, for even more automatic test generation. All in all, this means: lots and lots of new tests, many of which are generated by the computer itself with minimal or no further programmer input.

To most effectively take advantage of these advances in tooling, we’re refactoring our code to expose and thus test interfaces in the codebase (more details in our official “better testing through refactoring” milestone). We’re concentrating on hardening a set of critical code layers in the shell: the peer-to-peer layer, the distributed database, and the mempool.

This effort is complemented by the development of an adversarial testing tool by Functori. The tool, currently in design, is intended to enable the specification and execution of network attack scenarios, thus enabling early detection of security issues in Octez (an implementation of the Tezos blockchain in OCaml).6

Finally, the better to check the coverage of our test suite, we’re working on improving our usage of test coverage reports. This happens mainly through the switch to a newer version of bisect_ppx and forthcoming usability and automation improvements in our continuous integration environment.

Interviews and Papers

We are delighted to report that:

We commissioned a report by INRIA on “Possible evolutions of the voting system in Tezos”, which was released on April 14. See also the discussion on Tezos Agora.

We are also delighted to announce that:

NL research seminars

Our series of Nomadic Labs research seminars continues apace. In Q2 we saw:

  1. Helmholtz - A Verifier for Tezos Smart Contracts Based on Refinement Types (20 April 2021)
  2. Information Extraction from Graphs and the TezQuery Tool (13 April 2021)
  3. Verifiable Delay Functions and Groups of Unknown Order (27 April 2021)
  4. On Oracles and Contract Modules (11 May 2021)
  5. TLA+ Formal Specification of Bootstrapping (25 May 2021)
  6. Package Tezos as a MirageOS Unikernel (08 June 2021)
  7. Prototype of a Typical Smart Contract Agency (22 June 2021)

Click here for full list of talks.

Tezos is 3

Tezos is three years old! Specifically, June 30 2021 — just at the end of Q2 2021 — was the three-year anniversary of the Tezos genesis block, which was baked on June 30 2018. See the video on Twitter.

À la prochaine

And that’s what we’ve been up to in Quarter 2 of 2021: three months of Nomadic Labs building and testing software and extending public understanding and adoption of blockchain technology. Thanks for reading, and do check in again for the next Meanwhile for Quarter 3 of 2021.


  1. We have two teams: adoption cultivates relationships with new users; support helps existing users to implement solutions. A third team focusses on training

  2. A baker is a block validator on the Tezos blockchain. An institutional baker is a corporate institution that sets up one or more validating nodes on the Tezos blockchain. More information on bakers here

  3. Technically it’s a library of cryptographic primitives and other functions, packaged as an OCaml module

  4. Inputs that break correctness assertions, i.e. inputs that suggest errors either in the program, or in the programmer’s understanding of their program’s correctness. Also see next footnote. 

  5. Some context: in property-based testing, the programmer states desired correctness properties and then leverages the computer itself to generate (thousands, tens of thousands, or even millions of) test cases for their code with respect to their desired correctness properties.

    In practice this is very effective — but it is important for subsequent debugging that counterexamples be small and so easy to understand; for a given bug, a small and precise counterexample to trigger it is far easier to trace than a large and redundant one. Thus, while a property-based testing tool may find a counterexample, it is the job of a shrinker to input a possibly large counterexample and find a small one that a programmer can quickly dispatch.

    It’s suboptimal if a programmer has to write shrinkers by hand, since then we may just be replacing the problem of writing bug-free code with the problem of writing bug-free shrinkers for code! This might still be a worthwhile tradeoff, but it would be better and also safer if it could happen automagically. This is the burden of which QCheck2 relieves the programmer, relative to QCheck, and doing this is possible because shrinking tends to be a heuristic process: an “integrated shrinker” is a bundle of heuristics which, in practice, tends to automatically generate effective shrinkers that find small counterexamples from large ones. 

  6. Think: a penetration testing tool, applied to give us efficient white-hat hacker testing of our releases. 


Meanwhile at Nomadic Labs #11

A summary of Nomadic Labs activities in the first quarter of 2021

Welcome to our meanwhile series, the ongoing story of Nomadic Labs’ amazing adventures in the Tezos blockchain space. This post is a recap of our activities in the first quarter of 2021, following on from our 2020 recap. As always, you can find out more about us here: Twitter @LabosNomades ~ Website ~ LinkedIn ~ Technical blog ~ GitLab repo So here’s what we’ve been up to these past three months: Edo protocol upgrade and Florence...

Read More
A review of Nomadic Labs in 2020

Nomadic Labs’ activities in 2020

2020 is over and in spite of the difficulties which the year presented, we at Nomadic Labs got a lot done. So here’s who we are, and what we accomplished in 2020: Nomadic Labs in a nutshell Nomadic Labs is an international technical company dedicated to evolving the Tezos ecosystem. Tezos is a community-driven proof-of-stake self-evolving blockchain platform that adapts and adopts new features and enables borderless global cooperation. Let’s unpack that: Community-driven: The Tezos community is a...

Read More
Meanwhile at Nomadic Labs #9

It’s been a while since we published a post in our meanwhile series, and as always we’ve been working hard behind the scenes to improve the Tezos ecosystem. August marked a milestone: we launched Dalphanet, a dedicated test network designed to examine features from all developers involved in submitting the more extensive and long-awaited protocol proposal, including Sapling, a new protocol environment, among other improvements. For more information on Dalphanet see: Agora Forum Reddit On...

Read More
Meanwhile at Nomadic Labs #8

Let’s talk about what’s been going on at Nomadic Labs for the past two months. Despite the global pandemic, we’ve stayed hard at work for the Tezos Community. We published an in-depth look on how we use regression testing to catch bugs in Tezos: Catching sneaky regressions with pytest-regtest. Marco Stronati gave a speech about the integration of Sapling in Tezos for privacy and compliance at the Ready Layer One conference. May was a big...

Read More
Meanwhile at Nomadic Labs #7

It’s time to talk about what has been going on at Nomadic Labs for the past two months. Many of you might know that a lot of us at Nomadic Labs already work remotely on a regular basis. That being said, the situation with the coronavirus hasn’t had a chance to disrupt our work. Some Conferences were rescheduled, others are held remotely and our work at Nomadic Labs continues as usual. The month of February was packed...

Read More
Meanwhile at Nomadic Labs #6

It’s time for yet another post in the “meanwhile at Nomadic Labs” series, and we have a lot to talk about. Dive in to find out what you might have missed in January! Nomadic Labs partnered with the IMDEA Software Institute, a leading research institute in Madrid. You can read more about the partnership here or in our press release. A new research program dedicated...

Read More
Meanwhile at Nomadic Labs #5

In this fifth series of ‘’Meanwhile at Nomadic Labs’’, we discuss recent achievements including some projects we have been working on. December was a demanding month with a lot of ongoing development. Like we briefly mentioned last month, Arvid Jakobsson and Zaynah Dargaye worked on formally verifying the spending limit contract within the Cortez Wallet. We are proud announce that the contract has been formally verified and an updated version of Cortez has gone live...

Read More
Meanwhile at Nomadic Labs #4

This is the fourth blog post of our ‘’Meanwhile at Nomadic Labs’’ series. We will discuss what we have been working on the past month, in particular about events that we organized or participated in. Babylon successfully activated around one month ago. A more detailed list of changes can be found in our recent Babylon Blogpost. With all of these new features, Babylon was a way larger protocol change than Athens which was mostly...

Read More
Meanwhile at Nomadic Labs #3

Another update on the many projects we have been busy working on. Most of the following topics will be subject of more in-depth posts of their own. Protocol The consensus team is finishing their analysis of selfish baking on Emmy+ and tweaking the constants of the protocol accordingly. At the same time work on our version of Tendermint is progressing to the point of having a proof of concept protocol to play with. The protocol team has been steadily reviewing and testing...

Read More
  • 1
  • 2