PIP-32: Paloma Mainnet Upgrade to v1.3.1 and Pigeon v1.2.1

PIP Name: PIP-32: Paloma Messenger Mainnet Upgrade to Paloma v1.3.1 and Pigeon v1.2.1

Status: Proposed

Author(s): @LARRY

Type: Software Upgrade

Discussions-to:

Created: 06/19/2023

Simple Summary

This is a software upgrade for Paloma to v1.3.1 and Pigeon v1.2.1 releases after the completion of the public paloma-testnet-15 deployment with upgraded versions. This software upgrade is a breaking upgrade and comprehensive refactor of pigeon cross-chain message relay performance to ensure that more pigeons relay more messages faster. This upgrade also has the cosmos-sdk barberry security patch and reduces valset updates to monthly messages on quiet chains, further reducing validator costs and enabling more chain deployments.

Abstract

As Paloma mainnet continues to achieve the goal of cross-chain communication functionality, the work of the pigeon module continues to be an area of improvement. Paloma’s original pigeon design was not tested in mainnet production environment. Now that the messenger mainnet is in its fifth month, performance issues in pigeon highlight the need for improvements that also impact Paloma’s clients. This release will address some of the performance bottlenecks that pigeons were experiencing with mainnet test results that didn’t reveal themselves in private or public testnests. We expect that Paloma will see big improvements in message relay volume processing as well as speed from this current upgrade, making the mainnet finally viable for production-level decentralized relay applications.

Motivation

  1. Validator Happiness: Paloma and Pigeon upgrades increase the value of validators as operating a fast relay network
  2. Validator Happiness: Additional security to attract more EVM developers to develop on Paloma so that all submit logic calls now deliver critical sender key and address identification information
  3. Validator Happiness: Continued lowering of valset costs for supporting valset updates to target chains with low communications activity. This will allow Paloma to be launched on more chains that will slowly increase their communications volumes.

Specification Overview

This action requires an upgrade of palomad to the latest tag v1.3.1 and an upgrade of pigeond to v1.2.1. All migrations are included and have been tested live on Paloma’s private and public testnests.

Technical Specification

  1. Download and install the latest Paloma tag v1.3.1: Release v1.3.1 · palomachain/paloma · GitHub

  2. Download and install the latest Pigeon tag v1.2.1: Release v1.2.1 · palomachain/pigeon · GitHub

  3. An upgrade proposal may be submitted by anyone running a node on the network or connected to a governance front-end to Paloma. This proposal should have the correct block height.

  4. Please use the following spreadsheet to calculate the approximate Block Height. https://docs.google.com/spreadsheets/d/1bglxgcFFhPnOdNYVnBcDyZ_UVuIQqGbtIP8l291jRm0/edit#gid=0 5

  5. This upgrade proposal requires 10 GRAIN or 10000000ugrain for deposit for voting.

  6. 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.

  7. The Target block height for chain halt for this proposal is tentatively 2106809 or approximately 6/26/2023 9am PT

    VALIDATOR="$(palomad keys list --list-names | head -n1)"
    palomad tx gov submit-legacy-proposal software-upgrade v1.3.1 \
    	--title "Upgrade to Paloma v1.3.1 and Pigeon v1.2.1 with improved, faster pigeon relay performance and handling of failed messages as well as further reduction in valset update costs for validators" \
    --deposit 10000000ugrain \
    --fees 400ugrain \
    --upgrade-height 2106809 \
    --upgrade-info '{"binaries":{"linux/amd64":"https://github.com/palomachain/paloma/releases/download/v1.3.1/paloma_Linux_x86_64.tar.gz"}}' \
    --description "Paloma and Pigeon upgrades to improve pigeon performance, reduce valset update costs burden on validators and incorporate the latest Comsos SDK security patches." \
    --no-validate \
    --gas 400000 \
    --from="$VALIDATOR" \
    --chain-id **messenger** \
    -b sync \
    --yes
    
    

    How to Vote on the Proposal

palomad tx gov vote 14 yes \
--chain-id messenger \
--from <Your Paloma Address> \
--fees 400ugrain \
-b sync
-y

How to check if 2/3 of the network are online after 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

During production testing of Paloma’s mainnet, a number of messages failed delivery due to precautionary features in the pigeon’s design that aimed to prevent a DDOS of the Paloma network. These features included limiting one message per pigeon, requiring all pigeons to retry all failed messages, and slowing message selection down to at least 1 minute. Additionally, all message processing was done in sequence, ensuring that if there were many messages in the queue, they would complete in an inordinate amount of time.

These features were meant to preserve execution safety in testnet and young message-relay production environment but found to be limiting the network in production and slowing pigeons down on mainnet when many messages were in the queue. This upgrade now allows pigeons to take on more messages for relay faster. Messages are now no longer retried by all pigeons but attempted once so that they message queue. Also, we reduce valset security updates even further to reduce validator support costs for quiet chains that are ready to receive messages but may not have frequent relay volumes.

About Paloma

Paloma Protocol is a Cosmos-SDK blockchain protocol custom-built for omnichain communication that allows permissionless control of any contract on any chain. Built by the teams at Volume, Binary, and Vitwit, Paloma delivers the world’s first intelligently scheduled and automated smart contract transaction execution for the Cosmos ecosystem. The protocol enables developers to remotely control the transmission of value without the need to wrap, bridge tokens, or trust validators with their digital assets.

Learn more at https://palomachain.com

1 Like