# \[PASSED\] OP-PIP32: Upgrade the Pyth Oracle

**URL:** <https://forum.pyth.network/t/passed-op-pip32-upgrade-the-pyth-oracle/1782>\
**Category:** Proposals\
**Tags:** operational-pip\
**Created:** [October 10, 2024, 9:42am UTC](https://forum.pyth.network/t/passed-op-pip32-upgrade-the-pyth-oracle/1782 "2024-10-10T09:42:09Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![KemarTiti](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.pyth.network/kemartiti/32/5_2.png) [@KemarTiti](https://forum.pyth.network/u/KemarTiti)\
**Post date:** [October 10, 2024, 9:42am UTC](https://forum.pyth.network/t/passed-op-pip32-upgrade-the-pyth-oracle/1782/1 "2024-10-10T09:42:09Z")

</div>

**Abstract**  
This proposal upgrades the Pyth oracle program on Pythnet to add a unique index id to each feed that can be used instead of price account key for more space efficiency.

**Rationale**  
There is a tight limit on transaction size in Pythnet and publishers can only send 12 price updates in a single transaction. This proposal is part of a broader effort that changes the way publishers send price updates and allows them to send 47 price updates in a single transaction and increase the parallelism of the oracle computations. In the new design, publishers send prices to their own buffer in a new program called [Price Store](https://github.com/pyth-network/pyth-crosschain/tree/main/target_chains/solana/programs/pyth-price-store) in a compressed way (a list of only required data) and later the validator copies their prices into the price accounts before performing the aggregation ([validator changes](https://github.com/pyth-network/pythnet/releases/tag/v1.14.179)).

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

- Add feed index for batch publish - [PR 416](https://github.com/pyth-network/pyth-client/pull/416)

For the list of all the changes, please see the release notes of the new oracle from [here](https://github.com/pyth-network/pyth-client/releases/tag/oracle-v2.34.0).

**Implementation Plan**  
Proposal id: [9yTbSwTUsp4PDpP6vU4snGDGr7ASwDujH7jtd43WEmZA](https://proposals.pyth.network/?tab=proposals&proposal=9yTbSwTUsp4PDpP6vU4snGDGr7ASwDujH7jtd43WEmZA)

Verify the implementation following the guide below:

1. Make sure you have git, Docker and sha256sum.
2. git: install `git` from [here](https://git-scm.com/downloads)
3. Docker: install it from [here](https://www.docker.com/products/docker-desktop/)
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](https://github.com/pyth-network/pyth-client.git))
6. Go to the `pyth-client` directory and checkout to oracle v2.34.0 release by running `git checkout oracle-v2.34.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:

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

```

1. 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:

```auto
solana -u https://api2.pythnet.pyth.network program dump <BUFFER> temp_file
sha256sum temp_file
rm temp_file

```

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](https://api2.pythnet.pyth.network/) as a custom RPC and check the upgrade authority of the oracle program (`FsJ3A3u2vn5cTVofAjvy6y5kwABJAqYWpe4975bi2epH` ) and the buffer.

---

<div class="post-metadata">

**Author:** ![Pyth-DAO](https://avatars.discourse-cdn.com/v4/letter/p/edb3f5/32.png) [@Pyth-DAO](https://forum.pyth.network/u/Pyth-DAO)\
**Post date:** [October 17, 2024, 9:19am UTC](https://forum.pyth.network/t/passed-op-pip32-upgrade-the-pyth-oracle/1782/2 "2024-10-17T09:19:37Z")

</div>


