PIP-69: Paloma Mainnet Upgrade to Paloma v1.15.3 and Pigeon 1.12.3

PIP-69: Paloma Mainnet Upgrade to Paloma v1.15.3 and Pigeon 1.12.3

Status: Proposed

Author(s): @LARRY

Type: Software Upgrade

Discussions-to:

Created: 07/09/2024

Simple Summary

This is a software upgrade for Paloma to v1.15.3 and Pigeon v1.12.3for Paloma’s TESTNEST and MAINNEST tumbler networks. This release includes upgrades to fix the recent chain-halt due to outdated iavl versions as well as updates to paloma and pigeon tx message attestation. The gravity module is also renamed to Skyway to reflect Paloma’s multi-evm messaging capabilities.

Abstract

This is a software upgrade for Paloma to v1.15.3 and Pigeon v1.12.3for Paloma’s TESTNEST and MAINNEST tumbler networks. This release includes upgrades to fix the recent chain-halt due to outdated iavl versions as well as updates to paloma and pigeon tx message attestation. The gravity module is also renamed to Skyway to reflect Paloma’s multi-evm messaging capabilities. With this release, we are now preparing to upgrade Paloma and Compass-EVM light client again as necessary steps towards Pigeon Feed’s release.

Motivation

The motivations for this Paloma upgrade include the following:

  1. Rename the Gravity module to Skyway
  2. Upgrade IAVL from v1.1.2 to v1.1.4
  3. Fix Paloma tx message attestation during high valset update volume so that valsets do not get out of sync

Specification Overview

  • Skyway Module: The original params from gravity are superseded
    by skyway’s module storage on multiple remote chains instead of one.
  • IAVL: Upgrade IAVL from v1.1.2 to v1.1.4
  • Tx attestation: Get the valset ID from the message public access data, set by pigeon. Paloma uses this public access data when verifying the TX and get the same valset as pigeon.

Technical Specification

The technical specification for this release is contained in the following tag: Release v1.15.3 · palomachain/paloma · GitHub. This includes the following:

  1. Rename the Gravity module to Skyway
  2. Upgrade IAVL from v1.1.2 to v1.1.x
  3. Fix Paloma tx message attestation during high valset update volume so that valsets do not get out of sync

Prior to upgrade

  1. An upgrade proposal that must be submitted by anyone running a node on the network. This proposal should have the correct block height.
  2. Please use the following spreadsheet to calculate the approximate Block Height. https://docs.google.com/spreadsheets/d/1eoXoDWWYHIOYbdPiv8B6vfwDUUkelZgeifnX4foa7yw/edit#gid=0
  3. This upgrade proposal requires 10 GRAIN or 10000000ugrain for deposit for voting.
  4. IMPORTANT: The upgrade height is the block height where the chain halts and requires the upgrade. Allow at least one (1) day AFTER voting end time and upgrade-height for 2/3 of the network to have downloaded the new binary and prepped for the switch over to avoid/minimize downtime of the Paloma chain.
  5. The Target block height for chain halt for this proposal is tentative 20420000 or approximately 07/15/2024, 16:24UTC See (Block height: 20420000)
palomad tx upgrade software-upgrade v1.15.3 \
--upgrade-height 20420000 \
--upgrade-info '{"binaries":{"linux/amd64":"https://github.com/palomachain/paloma/releases/download/v1.15.3/paloma_Linux_x86_64.tar.gz"}}' \
--title "PIP-69: Paloma  Mainnet Upgrade to Paloma v1.15.3" \
--summary "PIP-69: Paloma  Mainnet Upgrade to Paloma v1.15.3" \
--chain-id tumbler \
--deposit 10000000ugrain \
--fees 400ugrain \
--gas auto \
--node <Your node> \
--from <Your Paloma Address>  \
--no-validate \
-y
palomad tx gov submit-legacy-proposal valset \
	propose-pigeon-requirements \
	v1.12.3 \
	--target-block-height  \
	--title "Update to Pigeon v1.12.3" \
  --summary "Increase the minimum version of Pigeon to v1.12.3, updating tx valset attestation." \
  --chain-id tumbler
  --deposit 10000000ugrain \
  --fees 10000ugrain \
  --gas auto \
  --node <Your node> \
	--from <Your Paloma Address>  \
  --yes

How to Vote on the Proposals 64 and 65

palomad tx gov vote 64 yes \
--chain-id tumbler \
--from <Your Paloma Address> \
--fees 400ugrain \
--node <Your node> \
-y

palomad tx gov vote 65 yes \
--chain-id tumbler \
--from <Your Paloma Address> \
--fees 400ugrain \
--node <Your node> \
-y

How to check if 2/3 of the network is online after the vote is complete

curl -s localhost:26657/consensus_state | jq -r ".result.round_state.height_vote_set[0].prevotes_bit_array"

—> needs to return ≥ ~0.67 for the chain to start up again

To see which validators are online with the new binary, use GitHub - blockpane/pvtop: top-like tui for watching validator pre-votes on Tendermint chains

Rationale

We are upgrading Paloma to achieve the following objectives:

  1. Upgrade Gravity to Skyway Module
  2. Fix Tx attestation issues for high volume valsets
  3. Upgrade the IAVL version to prevent happhash and chain halts.

About Paloma

Paloma wants to be the fastest relay chain in the world with the most decentralized network of validators that can attest to any transaction with the fastest possible execution. Paloma aims to make it easy for developers to control smart contracts on any Solana, Ethereum L1, L2, and L3 chain.

To learn more about Paloma, please visit https://palomachain.com

To follow the project on Github, please star the project GitHub - palomachain/paloma: The fast blockchain messenger protocol

To participate in the community, please join the Paloma Discord: Paloma