Agoric / agoric-sdk

monorepo for the Agoric Javascript smart contract platform
Apache License 2.0
328 stars 207 forks source link

devnet/mainfork process should include all oracles #9924

Open warner opened 3 months ago

warner commented 3 months ago

In https://github.com/Agoric/agoric-private/issues/169 we observed promise growth that we believe is because the devnet fork we created did not have all the same oracles/pricefeeds as the mainnet state from which it was cloned. It seems that when the auction timer fires without a price having been submitted, the code reacted by creating more promises (and not settling the old ones).

9923 is about avoiding that growth, but the most immediate cause was that our "clone" of the mainnet chain was incomplete: it did not provide price feeds for all the denoms that it was expecting. If we had all the right price feeds, we wouldn't have triggered that bug.

The task here is to improve our tooling or playbook for creating a mainnet clone (maybe we call this "refreshing devnet"?) to include a complete set of oracles, without omitting any.

cc @toliaqat as our resident expert on devnet and mainfork cloning.

mhofman commented 3 months ago

I think there's confusion here. devnet and mainfork have no relations. devnet saw the growth because it had some denom price feed not fully wired up. This could theoretically happen on mainnet as well. To avoid the bad state on devnet, we need to somehow complete the wiring.

Mainfork as a clone of mainnet should not experience this issue, unless this is an emergent issue that happens if no oracle price updates are submitted over time. At which point the "solution" there is for the mainfork environment to include oracles, which would be great for other testing purposes.