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.
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?
- The
carthagenet
test network was launched on the 7th of November 2019 - The Carthage proposal to be injected to the
carthagenet
test network on the afternoon of 14th of November 2019, Paris/Zug time - The Carthage proposal to be subject to a sped up governance process on the
carthagenet
test network and will be activated on thecarthagenet
test network in 2–3 days* - 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.
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 the 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. The official 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:
- The
carthagenet
test network faucet: https://faucet.tzalpha.net - The block explorer Tezos ID: https://carthagenet.tezos.id
- The block explorer TzStats: https://carthagenet.tzstats.com
- The AirGap’s block explorer TezBlocks: https://carthagenet.tezblock.io/
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 from800_000
to1_040_000
hard_gas_limit_per_block
is increased from8_000_000
to10_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:
- Download the branch with the protocol to a machine with a running
mainnet
node and thetezos-admin-client
installed. - Then run
tezos-admin-client inject protocol src/proto_006_PsXXXX/lib_protocol
*. Now your node is aware of the new protocol. - 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
Testnets
The official 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, thecarthagenet
test network will be maintained until the following proposal Dxxxxx is adopted on mainnet. Should the Carthage proposal not succeed through mainnet governance, thecarthagenet
test network will cease to exist.
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.