Avalanche announced today the implementation of a significant upgrade. The upgrade code was released at 16:00 Turkey time. In the statement made by Avalanche, details on how to run the code were also provided. The Durango Upgrade includes protocol optimizations that are not compatible with AvalancheGo versions < v1.11.0. Let’s look at the details.
The Durango Upgrade
Avalanche validators, who have been awaiting the successful activation of all applicable Avalanche Consensus Protocols on the Fuji Testnet, will be able to update their nodes to the production version of Durango that supports ACPs on the Avalanche Mainnet. The upgrade also brings interoperability across subnetworks.
This upgrade also addressed some common requests from developers to improve the developer experience. These include the addition of P-Chain native transfers, enabling the transfer of subnetwork ownership, maintaining smart contract compatibility with Ethereum by supporting the Ethereum Shanghai Upgrade, and the addition of VM implementation errors.
Significant Changes
Currently, users who want to transfer assets between P-Chain addresses need to either leave the P-Chain or use a transaction type not designed for local transfers. ACP-23 proposes to support native transfers on the P-Chain with ‘BaseTx’. By supporting native transfers on the P-Chain, users will be able to manage their assets more efficiently and securely.
Another challenge for developers is changing the owner of a Subnetwork, as currently, when new Subnetworks are created on the P-Chain, the owner does not change. Subnetwork operators may want to transfer the ownership of the Subnetwork to a new owner for various reasons, such as performing periodic rotation of the control key(s) of the Subnetwork. ACP-31 proposes to allow the current owner of a Subnetwork to transfer ownership to a new owner through ‘TransferSubnetOwnershipTx’.
Lastly, Durango will activate ACP-24, which includes changes from the Ethereum Shanghai Upgrade to ensure that the C-Chain maintains smart contract compatibility with Ethereum. In particular, EIP-3855 will add the PUSH0 opcode to the C-Chain, maintaining compatibility with Solidity versions >= v0.8.20.