Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
greenlucid opened this issue Oct 14, 2024 · 2 comments
Open

Comments

@greenlucid
Copy link
Contributor

greenlucid commented Oct 14, 2024

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:

  • As of now, all Omen questions use template_id == 2, so they would be compatible with this strategy. But, if in the future new templates want to be used, that would break the proxy.

  • This allows jurors to vote ANSWERED_TOO_SOON, an answer that neither Omen neither Reality v2.1 are supposed to handle. Due to how this interacts with the policy, it just so happens that the previous policy would always ask the jurors to vote Invalid if the result is not known by the date the question was first answered. But, instead of handling it as an INVALID answer, the RealityProxy in use will revert and refuse to rule if the answer is uint(-2).


The way to fix this would be:

@kongzii
Copy link
Contributor

kongzii commented Oct 15, 2024

Thanks for the report!

Do I understand correctly that we need to wait for kleros/zk-cross-chain-realitio-proxy#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
Copy link
Contributor Author

greenlucid commented Oct 15, 2024

  1. Test fix: use more reduced block range to fetch templates kleros/zk-cross-chain-realitio-proxy#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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants