Nomadic Labs
Nomadic Labs
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 release. 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 carthagenet 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 Changelog.

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 the code. Any baker supportive of this proposal can inject it following the instructions below.

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 tezos-protocol-compiler as follows. The result should be PtCarthavAMoXqbjBPVgDCRd5LgT7qqKWUPXnYii3xCaHRBMfHH.

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 004_Pt24m4xi to 005_PsBabyM1).

Injecting the proposal

Any active baker can inject the proposal by simply downloading the code, injecting it in a running mainnet node with tezos-admin-client and using the submit command of tezos-client.

$ tezos-admin-client inject protocol carthage_006_PtCartha/lib_protocol
Injected protocol PtCarthavAMoXqbjBPVgDCRd5LgT7qqKWUPXnYii3xCaHRBMfHH successfully

$ tezos-admin-client list protocols
Ps9mPmXaRzmz
PsddFKi32cMJ
PsYLVpVvgbLh
PtCJ7pwoxe8J
Pt24m4xiPbLD
PsBabyM1eUXZ
PtCarthavAMo         <------

$ 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...

Read More
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...

Read More
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...

Read More
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...

Read More
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...

Read More
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...

Read More
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...

Read More
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...

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

Receive Updates

ATOM

Contacts