[PASSED] OP-PIP-44: Upgrade Pyth Oracle to support more price feeds

Abstract
This proposal upgrades the Pyth oracle program on Pythnet to resize the mapping account to support 5000 feeds.

Rationale
Due to some implementation details the number of price feeds that the oracle can support is capped to 640 and this limit is already reached. This upgrade fixes the problem by resizing the mapping account.

Description
This proposal upgrades the Pyth oracle program with the following major change:

  • Resize mapping account - PR 419

For the list of all the changes, please see the release notes of the new oracle from here.

Implementation Plan
Proposal id: 68JSf7CjQKUnXivDrYkTE1pspQQw8GvAi87VFSPyGdop

Verify the implementation following the guide below.

Install prereqs and build the binary:

  1. Make sure you have git, Docker and sha256sum.
  2. git: install git from here
  3. Docker: install it from here
  4. sha256sum: if on Mac you can install it as a part of coreutils with brew install coreutils
  5. Clone the pyth-client repo (git clone)
  6. Go to the pyth-client directory and checkout to oracle v2.35.0 release by running git checkout oracle-v2.35.0 command.
  7. run the following command: docker build -f docker/Dockerfile --platform=linux/x86_64 --progress=plain .
  8. Upon a successful build, you should see the following messages containing the hash digest of the program: `

sha256sum ./target/deploy/pyth_oracle.so <hash-digest> ./target/deploy/pyth_oracle.so

Check that the hash digest matches the hash digest of the buffer deployed on Pythnet. Get the buffer account from the proposal and fetch the digest of the program in the buffer account by running the following command:

solana -u [https://api2.pythnet.pyth.network](https://api2.pythnet.pyth.network/) program dump <BUFFER> temp_file sha256sum temp_file rm temp_file

Verify:

  1. Make sure the hash from step 8 and from step 9 match
  2. Make sure the buffer authority is the oracle authority. You can verify the authority by going to the solana explorer with https://api2.pythnet.pyth.network as a custom RPC and check the upgrade authority of the oracle program (FsJ3A3u2vn5cTVofAjvy6y5kwABJAqYWpe4975bi2epH ) and the buffer.
1 Like