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:
- Make sure you have git, Docker and sha256sum.
- git: install
git
from here - Docker: install it from here
- sha256sum: if on Mac you can install it as a part of coreutils with
brew install coreutils
- Clone the
pyth-client
repo (git clone) - Go to the
pyth-client
directory and checkout to oracle v2.35.0 release by runninggit checkout oracle-v2.35.0
command. - run the following command:
docker build -f docker/Dockerfile --platform=linux/x86_64 --progress=plain .
- 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:
- Make sure the hash from step 8 and from step 9 match
- 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.