[PASSED] OP-PIP-7: Improve Pyth Solana Receiver compute cost

Abstract

Upgrade the Pyth Solana Receiver on Solana to reduce compute cost on posting price updates.

Rationale

Posting price update uses a lot of compute units because it uses an expensive hash function.

Description

This upgrade will employ Solana SDK’s hashv function which uses much less compute units.

Implementation Plan

  1. Make sure you have the Solana CLI tools, Docker and sha256sum.
    solana: install solana from here.
    Docker: install it from here
    sha256sum: if on Mac you can install it as a part of coreutils with brew install coreutils
  2. Clone the pyth-crosschain repo (git clone https://github.com/pyth-network/pyth-crosschain.git (or if you have already cloned it pull the latest changes with git pull).
  3. Go to pyth-crosschain/target_chains/solana/
  4. Run ./scripts/build_verifiable_program.sh. This will compile the code in a reproducible way and output a hash of the bytecode obtained from the code.
  5. In the proposal page, look at the following two important keys:
    The program field should match the program we’re trying to upgrade.
    The buffer field is the account that contains the proposed new implementation for the program. Copy the address.
  6. Get the hash of the proposed buffer solana -u m program dump <buffer> temp_file && sha256sum temp_file && rm temp_file
  7. Make sure the hash from step 4 and from step 6 match.
12 Likes