Celo All-Core Dev Call 2

Introduction

The transcript is from the second Celo All-Core Dev Call. The agenda for this call was to discuss a proposed hard fork called “Churito” that aims to fix a bug in the Celo blockchain codebase related to the EIP211 specification. The bug caused a consensus failure on Ethereum, but it is not expected to impact contract security or cause loss of funds.

Bug Description

The bug in the current version of the Celo blockchain was introduced in geth version 1.9.6 and affects how return data is handled by a contract in specific situations. The risk lies in the potential consensus failure if different nodes handle the same transaction differently. To fix the bug, a hard fork called “Churito” is being proposed.

Churito Hard Fork

The Churito hard fork aims to correctly specify the EIP211 and implement it in the Celo blockchain. The goal is to schedule the hard fork within a month to address the bug in a risk-free manner. The proposed changes for Churito are minor and won’t impact the planned Donut hard fork scheduled for six months later.

Coordination and Consensus

The Celo team emphasizes the importance of coordination with validators and node operators. While there is no extremely compelling reason to fix the bug, it is essential to correct the incorrect behavior and avoid maintaining it permanently. The team seeks rough consensus on the proposal during the call.

Go Vulnerability and Sequential Updates

There is discussion about a Go vulnerability that hasn’t been disclosed yet, making it uncertain whether waiting two weeks for a Go update is advisable. The plan is to bundle the bug fix for Churito with other updates in a single node update. The question arises whether updates for versions 1.1 and 1.2 should be rolled out sequentially.

Rough Consensus Reached

After discussions and clarifications, rough consensus is reached to move forward with Churito and assign block numbers for the hard fork. The team plans to follow up on milestones, coordinate through various channels like Discord and mailing lists, and maintain a single source of information for the hard fork.

Additional CIPs and Feedback

During the call, there are discussions about additional CIPs (Celo Improvement Proposals) related to validator sets and BLS public keys. The team aims to make authorization of signers more accessible and maintain compatibility with Ethereum’s specifications. Feedback and comments on these proposals are encouraged, and they will be reviewed and discussed further.

Conclusion

The call concludes with agreements on the Churito hard fork and the need to gather more feedback on specific proposals before moving them to the last call stage. The team discusses the process of specification and implementation, highlighting the need for alignment and evidence that a proposal is ready before including it in the client. The importance of coordination with validators and the advantages of being a small network are acknowledged and appreciated.