PIP-68: Paloma Mainnet Upgrade to Paloma v1.15.2 and Pigeon v1.12.1

PIP-68: Paloma Mainnet Upgrade to Paloma v1.15.2 and Pigeon v1.12.1

Status: Proposed

Author(s): @LARRY

Type: Software Upgrade

Discussions-to: PIP-68: Paloma Mainnet Upgrade to Paloma v1.15.2 and Pigeon v1.12.1

Created: 07/04/2024

Simple Summary

This is a software upgrade for Paloma to v1.15.2 and Pigeon to v1.12.1 for Paloma MAINNEST tumbler network. This release mainly includes the renaming of the Gravity module to Skyway as Paloma now has surpassed Gravity support features beyond Ethereum. This update also requires the minimum pigeon version to join the network to be Pigeon v1.12.1. There will be a separate vote to enforce the new version of Pigeon.

Abstract

This is a software upgrade for Paloma to v1.15.2 for MAINNEST tumbler network. This update also sets the minimum pigeon version to join the network as Pigeon v1.12.1. This release mainly includes the renaming of our bridge module to Skyway as Paloma now has surpassed Gravity support features beyond Ethereum. This release also provides increased security features for transaction attestation.

Motivation

The motivations for this Paloma upgrade include the following:

  1. Upgrade the Gravity module to new name: Skyway
  2. Add VerifyAgainstTx implementation

Specification Overview

Upgrade Paloma to v1.15.2; Upgrade Pigeon and set minimum pigeon version for Paloma from governance. Rename the Gravity Module to Skyway and implement VerifyAgainstTX.

Technical Specification

Rename the Gravity Module to Skyway

Rename the Gravity module to Skyway as Paloma is now multichain and bi-directional.

VerifyAgainstTX implementation

Each message type attested by Paloma needs to implement VerifyAgainstTX to ensure the reported evidence actually matches the expected evidence.

For each message type - UploadSmartContract, UpdateValset and SubmitLogicCall we implement the VerifyAgainstTX method. It reconstructs the transaction data from the original message in the same way as Pigeon does and compares the resulting bytecode against what’s reported in the evidence.

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 20088791 or approximately 07/08/2024, 13:28UTC See (Block height: 20088791)
palomad tx upgrade software-upgrade v1.15.2 \
--upgrade-height 20088791 \
--upgrade-info '{"binaries":{"linux/amd64":"https://github.com/palomachain/paloma/releases/download/v1.15.2/paloma_Linux_x86_64.tar.gz"}}' \
--title "PIP-68: Paloma  Mainnet Upgrade to Paloma v1.15.2" \
--summary "PIP-68: Paloma  Mainnet Upgrade to Paloma v1.15.2" \
--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.1 \
	--target-block-height 20088793 \
	--title "Update to Pigeon v1.12.1" \
  --summary "Increase the minimum version of Pigeon to v1.12.1, introducing support for bridging tokens." \
  --chain-id tumbler
  --deposit 10000000ugrain \
  --fees 10000ugrain \
  --gas auto \
  --node <Your node> \
	--from <Your Paloma Address>  \
  --yes

How to Vote on the Proposals

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

palomad tx gov vote 62 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. Add Bridge Risk Management and Security Features to launch the GRAIN token
  2. Deliver more enhancements for Paloma Gravity Bridge Batches
  3. Fix any current bugs

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