Carthage: changelog and testnet
We are happy to announce a new protocol proposal code-named Carthage,
developed together with Cryptium Labs.
After the feature rich Babylon, Carthage is a much needed housekeeping
Carthage contains exclusively fixes and small improvements across the
board, the more relevant being a corrected formula for rewards.
The only “novelty” is an increase in the gas limit which will allow to
execute more smart contracts.
A testnet called
has already been running Babylon since last week and will amend to
Carthage in the next days to simulate a protocol migration.
We encourage users and developers to join the testnet and the discussion
on the tezos-backing slack.
As usual refer to the protocol documentation
page for more
details and for the full
As promised in our previous post,
in order to give the community time to review and discuss this
proposal, we are not injecting it ourself but we are simply providing
Any baker supportive of this proposal can inject it following the
Getting the source code of the proposals
The source code of this proposal is available in
this tar archive.
To compute the hash, you can use the
follows. The result should be
mkdir proposal && cd proposal
curl https://blog.nomadic-labs.com/files/carthage_006_PtCartha.tar | tar -x
tezos-protocol-compiler -hash-only carthage_006_PtCartha/lib_protocol
If you want to directly investigate how Carthage differs from the current
protocol, you can use
diff against folder
proto_005_PsBabyM1 of the
mainnet source code. All the changes should be the ones detailed in the changes
section, except for the removal of the single use migration code from
the previous upgrade (from
Injecting the proposal
Any active baker can inject the proposal by simply downloading the
code, injecting it in a running mainnet node with
and using the
submit command of
$ tezos-admin-client inject protocol carthage_006_PtCartha/lib_protocol
Injected protocol PtCarthavAMoXqbjBPVgDCRd5LgT7qqKWUPXnYii3xCaHRBMfHH successfully
$ tezos-admin-client list protocols
$ tezos-client submit proposals for <delegate> PtCarthavAMo
Lessons Learned from the Babylon Protocol Upgrade: A Retrospective
Babylon (aka protocol 005), the second Tezos protocol amendment jointly developed by Nomadic Labs and Cryptium Labs, was successfully activated on block 655361. Since then, we’ve continued analysing and monitoring the new features, but have also engaged in a deeper reflection on the upgrade process from its development period, pre-injection, to the period following the activation. This article summarises the lessons learned in five parts: the development of Babylon, the proposal period, continued testing during...
Mainnet release to patch Babylon
During the testing phase of protocol Babylon 005_PsBABY5H, we discovered a bug affecting bigmaps in Michelson smart contracts. The bug is corrected in a new version of Babylon, 005_PsBabyM1. How to proceed The bug is not critical but causes a significant performance degradation for newly created smart contracts and an incorrect behavior for existing ones using big maps. More details on the nature and effects of the bug can be found in the protocol documentation page. During the upcoming promotion vote period, we propose...
Cortez security by using the Spending Limit contract
In this most recent blog post we discuss how to benefit from the secure enclave using the Daily Spending Limit smart contract.
My wallet, my crypto When holding a cryptocurrency, one needs a safe and secure wallet to store it. Wallets are used to store, receive, or spend cryptocurrencies. They work by keeping private keys to themselves and using them to sign transaction from the corresponding public keys. A public key is used to send assets to the corresponding destination, whereas a private key is used to send assets from your corresponding wallet. Addresses are uniquely defined as a...
Babylon update instructions for delegation wallet developers
How to update the delegation feature of your wallet for 005 (aka. Babylon)
Introduction Tezos wallets usually feature management of scriptless originated (aka KT1) accounts used to delegate tokens. This document details the steps needed for wallet developers to update their applications in anticipation to the breaking changes in the Babylon protocol update. See also cryptium’s migration guidelines and Babylon’s documentation for more technical details on the Babylon update. The Babylon protocol update brings two big changes to the way delegation can be implemented. First, implicit (aka tz) accounts can now directly delegate their tokens (see relevant...
Babylon: Proposal Injected!
EDIT (August 2, 2019): The updated Babylon proposal has been injected by Cryptium Labs. Its hash is PsBABY5HQTSkA4297zNHfsZNKtxULfL18y95qb3m53QJiXGmrbU. The instructions contained in this post have been updated accordingly. Cryptium Labs just injected the hash of our new joint proposal: Babylon. This triggers the beginning of the third on-chain vote to amend Tezos. This process could end in the successful migration from current protocol Athens in about three months, if the participants decide so. This update is joint work with Cryptium Labs, with contributions from...
Michelson updates in 005
Changes in Michelson As hinted at in a previous blog post, we’ve been working on improving different parts of the protocol, including our favourite smart contract language: Michelson. The changes made to Michelson in this proposal intend to simplify smart contract development by making the code of complex contracts simpler and cleaner. In particular: smart contracts now support entrypoints contracts can now create, store and transmit as many big_maps as they want comparable types are now closed under products (i.e. the pair constructor) a new instruction, CHAIN_ID, allows...
Analysis of Emmy+
Note: This analysis was done with the help of Arthur Breitman and Bruno Blanchet (Inria). The code used for the analysis can be found at this url. We have recently announced Emmy+ an improvement of Emmy, the current consensus algorithm used by Tezos. In this blog post, we perform a brief analysis of Emmy+. Disclaimer: We emphasize that this is not a complete analysis; in particular, we do not present any security proofs. Also, the...
An indexer for Tezos
We are happy to announce that the indexer for Tezos we have been working on is ready for beta-testing and available here. But first… What is an indexer, and what is it useful for? Mainly, indexers fill a void by providing information that’s not directly available from the node’s RPC interface. But then why don’t nodes provide these RPCs in the first place? That’s simply because when you design and implement your node, you want to provide just what is necessary, focus...
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...