On the Carthage Proposal and the Carthagenet Test Network

Awa Sun Yin
METASTATE
Published in
5 min readNov 14, 2019

Many of you might have seen the announcements of the carthagenet test network a Tezos testnet which currently is equivalent to the protocol version 005 or Babylon. This article starts with a broader context around the carthagenet test network and its purpose. It also aims to explain the current plans from Nomadic and Cryptium Labs regarding the next protocol proposal, Carthage. Finally, the article describes a more planned testnets release and a more gradual protocol amendments schedule.

Ruins of the Phoenician metropolis of Carthage — The Vintage News

The Carthagenet Test Network

What is it?

carthagenet is a test network launched on the 7th of November. At the time of writing contains the same features as Tezos mainnet (005 or Babylon). It is currently being operated by willing community bakers from the baking Slack group.

Why?

Less rush, more testing, more documentation, more community involvement
Lessons Learned from Babylon

The purpose of the carthagenet test network is driven by some of the lessons learned from the Babylon protocol upgrade process, in particular:

  • Allowing developers to test properly, before the injection
  • Publishing the code and changelog, before the injection

carthagenet is the test network dedicated to not only deploy the features from the upcoming Carthage protocol proposal, but also to test all transitions from injection, governance phases, activation, and migrations — in order to provide a more holistic testing process before injecting a proposal on Tezos mainnet.

What is the timeline?

  1. The carthagenet test network was launched on the 7th of November 2019
  2. The Carthage proposal to be injected to the carthagenet test network on the afternoon of 14th of November 2019, Paris/Zug time
  3. The Carthage proposal to be subject to a sped up governance process on the carthagenet test network and will be activated on the carthagenet test network in 2–3 days*
  4. The carthagenet test network, now containing all the new features of the Carthage proposal, will be maintained and dedicated to developers and the broader ecosystem that wishes to test and interact with it

*For testing purposes, the governance parameters have been tweaked and the assumption of the protocol successfully passing has been made. However, these parameters and assumption are only valid on the carthagenet test network, which is a testnet created for this purpose.

How to Interact with the Carthagenet Test Network

In order to test the Carthage proposal on the carthagenet test network as thoroughly as possible, we encourage bakers, developers, and the rest of the community to actively interact with the testnet.

Bakers

The carthagenet test network is currently operated by willing bakers. In order to simulate real baker participation as much as possible, we encourage bakers to join the carthagenet test network following one of the sources of documentation: http://tezos.gitlab.io/introduction/test_networks.html#carthagenet

Developers

At the moment, the most accessible way of interacting with the carthagenet test network is via the tezos-client or command line. One source of documentation on how to install and use tezos-client are applicable to the carthagenet test network. When running the commands, make sure you include the flag -A carthagenet.tezos.cryptium.ch, which allows you to interact with one of Cryptium Labs’ synched carthagenet test network full nodes:

$ tezos-client -A carthagenet.tezos.cryptium.ch [...]

Community

In addition to the command line tools, the Tezos community can also interact with the carthagenet test network in other ways, such as through transfers or common day-to-day interactions. To do so, you can use many services supporting the carthagenet test network:

Carthage: the Housekeeping Proposal

What is it?

The Carthage proposal (aka 006) is a Tezos protocol upgrade proposal developed by Nomadic and Cryptium Labs. Albeit the features that it contains are ready (see below), this proposal has not yet been injected on mainnet. Following the lessons learned from the Babylon protocol upgrade process, the core developers wish to publish the code and changelog and, with the carthagenet test network, allow developers to test properly, before the injection.

The Carthage proposal is referred to as a housekeeping proposal as it does not include large features, but rather focuses on code clean-up, adding optimisations, and fixing small issues on the existing protocol version — this is in alignment with the lessons learnt and the goal of soothing the frequency of large scale feature releases.

Gas Limit Increases

Carthage includes Gas Limit Increases, specifically:

  • hard_gas_limit_per_operation is increased from 800_000 to 1_040_000
  • hard_gas_limit_per_block is increased from 8_000_000 to 10_400_000

If you are a smart contract developer, wallet or client implementer, we strongly suggest testing this feature as soon as the Carthage proposal is active on the carthagenet test network.

Housekeeping Features

In addition to the increase in Gas Limits, it contains several housekeeping changes that focus on code clean-up, adding optimisations, and fixing small issues. For more details on each of these features, find the changelog and links to the implementations here: http://tezos.gitlab.io/protocols/006_carthage.html

Who can inject it?

The Carthage proposal is ready and you can find the source files on this Gitlab branch. By open-sourcing the proposal, the core developers hope to encourage even more community involvement by enabling the community to not only assess the features in advance, but also, if the community wishes to, to inject the proposal on mainnet through their bakers.

How to inject it?

Injecting a new proposal is generally straight-forward and any baker, no matter how many rolls, can do it. In order to inject the proposal:

  1. Download the branch with the protocol to a machine with a running mainnet node and the tezos-admin-client installed.
  2. Then run tezos-admin-client inject protocol src/proto_006_PsXXXX/lib_protocol*. Now your node is aware of the new protocol.
  3. The last step is to submit a proposal to the on-chain governance mechanism. In order to do that please run tezos-client submit proposal for <delegate> <PsXXXX>*.

*Remember to replace <PsXXXX> with the canonical hash: PtCarthavAMoXqbjBPVgDCRd5LgT7qqKWUPXnYii3xCaHRBMfHH

The Path Forward

Testnets

One source of testnets developer documentation has been updated with the carthagenet test network. To strengthen the habit of allowing developers to test properly and publishing the code and changelog before the injection, the following testnets timeline will be maintained:

  • babylonnet (005), currently mirrors mainnet. Should the Carthage proposal be adopted on mainnet, babylonnet will cease to exist.
  • The carthagenet test network, to undergo the timeline described above (see Carthagenet: What is the timeline?). If the Carthage proposal is adopted on mainnet, the carthagenet test network will be maintained until the following proposal Dxxxxx is adopted on mainnet. Should the Carthage proposal not succeed through mainnet governance, the carthagenet test network will cease to exist.
Example Testnets Schedule with Assumptions

Gradually Evolving Tezos

In addition to more planning for testnet versions and releases of possible proposals, from now onwards, Cryptium Labs and Nomadic Labs intend to release possible protocol proposals at a more gradual pace, aiming at 1–2 feature proposals a year combined with 2–3 housekeeping proposals.

Follow us on Medium and Twitter to Stay Tuned! 🐫

--

--