Florence, no BA (PsFLorena)

Improvements to contract operation size, gas optimizations, execution order for intercontract calls, and the elimination of the test chain activation. Full changelog here.


The Florence proposal, a joint effort from Nomadic Labs, Marigold, DaiLambda, and Tarides is a protocol upgrade proposal focused on implementing new bug fixes and small improvements such as increasing maximum operation size, gas optimizations, depth first execution order, and the elimination of the test chain activation.

With regards to operation size, the previous maximum size was 16kB. In Florence, we propose to increase it to 32kB. Among other things, this has the effect of slightly more than doubling the maximum size of a smart contract, which should be of interest to some developers with particularly complicated applications.

In addition, we have again reduced gas consumption in smart contract execution by increasing the efficiency of gas computation inside the Michelson interpreter, allowing for smart contracts with more complicated functionality to operate economically.

Florence also changes intercontract calls to a depth first ordering, as opposed to breadth first.

Finally, ongoing testing and review of Baking Accounts has uncovered some important and previously undocumented breaking changes in the Baking Account proposal. We believe Baking Accounts should be postponed until a thorough audit of functionality is complete, or an alternative implementation produced. The version of Florence without baking accounts is a safer choice.

Amendment Process Updates

Previously, during the voting process, a test chain would be spun up during the “testing period” which took place between the exploration and promotion voting periods. The intent was that this test chain be used to assure that the new proposal worked correctly, but in practice, the test chain has never been used in this manner, and has caused significant operational problems to node operators.

This new proposal eliminates the test chain activation; the testing period has been retained but is now named the “cooldown period”. Instead, we will continue to test the protocol using test chains that operate outside of the mainnet voting process.

Explanation Posts

Source Code


This protocol amendment has been developed by Nomadic Labs, Metastate, DaiLambda, Marigold, Tarides and the following external contributor: - Keefer Taylor, rewarded ꜩ100 for his contribution on increasing the maximal operation size.


This amendment do contain an invoice as written here: Protocol 009_PsFLoren Florence — Tezos (master branch, 2021/03/29 11:18) documentation