gnosis / prediction-market-agent-tooling

Tools to benchmark, deploy and monitor prediction market agents.
GNU Lesser General Public License v3.0
22 stars 4 forks source link

Current 31 Juror Kleros Arbitrator won't properly load MetaEvidence #495

Open greenlucid opened 1 month ago

greenlucid commented 1 month ago

Due to the way the dynamic script and the evidence display was setup, it cannot load the template needed. This is because the templates were logged long ago, and the script doesn't fetch the template logs efficiently, so Gnosis Chain RPCs eventually fail at returning the data.

Here's an old dispute that used to load, but doesn't load anymore.

This is the fix PR that hardcoded the template data for templates 0, 1, 2, 3 and 4, since they're part of the reality spec.

MetaEvidence is immutable, so this arbitrator proxy will always be unusable since patching the scripts is not possible. They also cannot be modified by a governor. In Seer's instance, they were redeployed since it was spotted before launch:

Home Arbitrator: https://gnosisscan.io/address/0x68154ea682f95bf582b80dd6453fa401737491dc Foreign Proxy: https://etherscan.io/address/0xFe0eb5fC686f929Eb26D541D75Bb59F816c0Aa68

This is the test tx that created a dispute in Kleros with the new patched evidence display and dynamic script, showing it worked: https://etherscan.io/tx/0x91a369d41b919f9d338745a256b2b63dec9dd25d65d8fa71559b077e7ed43879

And this is the resultant dispute which loads properly.


The reason this is relevant, is that, as a workaround, it might sound like Seer new proxy could be setup as Omen's new proxy as well. It will also use 31 jurors in General Court. But, two considerations make this not possible:


The way to fix this would be:

kongzii commented 1 month ago

Thanks for the report!

Do I understand correctly that we need to wait for https://github.com/kleros/zk-cross-chain-realitio-proxy/pull/30 and then all is good?

Personally, I wouldn't be updating policies too much at the moment, as it requires changes between Olas, Gnosis, and Presagio and introduces even more variety into the resolution process. (Everyone is free to create markets with any arbitrator in place, feels like we should have some way on frontend to let users know what they are betting on, right now it's hard to get to it.)

greenlucid commented 1 month ago
  1. Test https://github.com/kleros/zk-cross-chain-realitio-proxy/pull/30
  2. (Optional) Make a new Policy for Omen?
  3. If it's fine, gets built and published over IPFS. Then a MetaEvidence consuming that dynamicScript and evidenceDisplayURI is published over IPFS.
  4. (Optional) Merge that PR.
  5. New set of arbitrator proxies is deployed, using the new MetaEvidence.
  6. (Optional) A live test is made to verify the Dispute loads properly.
  7. A PR is made here to use the new Arbitrator

Also, it's not like the current Arbitrator is completely broken, just that most RPCs don't allow it to load, or do so unreliably, so maybe this is not a priority.

Only the last step concerns this repo, except maybe step 2.

alcercu commented 2 weeks ago

So, to continue with @greenlucid 's message:

  1. Was tested and merged, and further improvements were made.
  2. We kept the original policy.
  3. The new metaevidence was published on IPFS: https://ipfs.io/ipfs/QmRo7BtewG421ZgkYfkDakQhEK9rwsdueLWvRyoYRZS8qx
  4. Merged
  5. The new set of proxies have been deployed:
  6. Test dispute: https://court.kleros.io/cases/1654
  7. PR #550