kleros/hackathon

Ethereal Virtual Hackathon Submission - Kleros - First Place - 4000$ worth of PNK

Closed this issue · 31 comments

Challenge Description:

  • Build an Arbitrable dapp.
  • An Arbitrable application is an application where users can have disputes which need to resolved. Common examples include:
    • Curated Registries ("Does this item belong to this list?").
    • Escrow systems ("Should this user get paid?").
    • Oracles ("Did this event occur?").
  • You can find Arbitrable dapp ideas on this document or purse your own.
  • You can communicate with the Kleros team in the #hackathon channel of Kleros slack.
  • You can use a centralized arbitrator on Kovan testnet as your Arbitrator. It behaves in a manner similar to Kleros and it does not require specific knowledge of Kleros to be used.

Submission Requirements:

  • It should follow ERC792 and ERC1497 standards making it arbitrable by Kleros (and other Arbitrators fulfilling those standard requirements).
  • Must have an open source license.
  • You can reuse already existing smart contracts (Curated list ones for example) or create your owns.
  • You can focus on the UI (by reusing contracts for a different purpose), focus on the contracts (create a dapp with minimum viable UI) or do both.
  • The submission should run on the Kovan testnet.

Submission Deadline

  • April 30th

Judging Criteria

  • Readiness level of the submission
  • Usefulness of the submission
  • Level of technical implementation

Judging Date

  • Judging will be at the end of the Hackathon on April 30th

Bounty

  • Amount - 4000$ worth of PNK

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 0.001 ETH (0.16 USD @ $159.58/ETH) attached to it as part of the @kleros fund.

@clesaege think you should load $4K in PNK to gitcoin, as your project show 0.16USD bounty price and gain no attention. Hackathon time is running out very quickly.

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 1 week, 5 days from now.
Please review their action plans below:

1) ivanmolto has started work.

Great! Let’s build an arbitrable dapp

Learn more on the Gitcoin Issue Details page.

feel free to use this channel to discuss :) https://discord.gg/BeMDYwy

@gutsal-arsen This is not possible as Gitcoin does not support PNK.

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 3 days, 19 hours ago.
Please review their action plans below:

1) ivanmolto has started work.

Great! Let’s build an arbitrable dapp

Learn more on the Gitcoin Issue Details page.

2) sameer2800 has started work.

I will build dapp and use centralizedarbitrator/kleros for arbitration,

Learn more on the Gitcoin Issue Details page.

3) marsrobertson has started work.

https://forum.kleros.io/t/self-commitment-in-todo-app/87 - working on it as we speak... 🔥🔥🔥

<script>alert(1)</script>

Learn more on the Gitcoin Issue Details page.

4) wasmatic has started work.

Hi Kleros,
I'm glad to see you sponsoring this hackathon!
Yesterday, I started work on a dapp related to curated lists. Let's see where this coding journey brings me, and especially if I get to the finishing line on time with my dapp ;-)
Could you please confirm the submission deadline?

Learn more on the Gitcoin Issue Details page.

@ivanmolto @sameer2800 @currybab did you find a simple example of integrating Kleros?

Video with something: https://youtu.be/W_DjZwBFY4w

image

Live link (Kovan): https://genesis.re/kleros-ethereal-virtual-hackathon/frontend/

Me struggling, need some help: https://docs.google.com/document/d/1rATnMAKhmW2mHuaE1k9cuStJnO4pzKG_c3zg2hK5Fv4/edit?usp=sharing (EDIT: GOOGLE DOC UPDATED WITH COMMENTS)

@clesaege @mtsalenc @n1c01a5 @satello to the rescue!

We advise you to use https://github.com/kleros/kleros-interaction/blob/master/contracts/standard/arbitration/AutoAppealableArbitrator.sol as an arbitrator for your tests. That's the easiest which has full functionalities.

I answered a bit and it seems that @satello too.
@marsrobertson

Some people had issue with deployements.
Some tools (like remix), put a low gas limit (lower than mainnet).
Be sure to set the gas limit to the mainnet value of 8000000.

Thank you @clesaege 

Thank you @satello for the comments in the Google Doc

Some things I've learnt Today

When using Remix cannot use https://github.com/poanetwork/solidity-flattener as there is circular dependency, need to manually copy-paste files into remix.

I did exactly that (manual copy-paste) and exported as gist: https://gist.github.com/marsrobertson/fcfd04ad15fca186008d18838fe84b12

  • need to enable optimisations (otherwise contract too big)
  • need to use 0.4.25 (or something close enough) because some features are too new, some others are too old
  • need to increase gas limit (default is too low)

Deploy AutoAppealableArbitrator (set arbitration price)

Deploy ArbitrableAddressList.sol

Constructor parameters: "arbitrator address (previous step)", [], "", "", "governor address (probably you)", "100000000000000", "100000000000000", 300, 1000, 1000, 2000

Now you can call requestStatusChange (with enough ETH) that either adds or removes address to the list

Then you can call challengeRequest (with enough ETH) that automatically calls the Arbitrator's createDispute

There is a lot of magic happening, including solium-disable-line error-reason to preserve blockchain storage.

I'm yet to figure out fundings, appeals, timeouts, various edge cases. In fact I need simple YES / NO:

Kleros API

wc -l *
      51 Arbitrable.sol
     905 ArbitrableAddressList.sol
      94 Arbitrator.sol
     197 AutoAppealableArbitrator.sol
      50 CappedMath.sol
      55 IArbitrable.sol
      21 PermissionInterface.sol
    1373 total

10x too many for a HelloWorld tutorial hackathon example.

I really want to help with adoption, currently the barrier of entry seems prohibitive.

We'll make a tuto to teach that better.

While I'm working towards the #1 I have also submitted project towards #2

It's a collection of handy utilities:

  • upload to IPFS (via Infura and IpfsCloud)
  • upload to AWS (via FileStack)
  • bundling archon in the browser

💪💪💪 https://genesis.re/kleros-metaevidence-metahash/ 💪💪💪

(no yak shaving, bikeshedding, bikeshaving - focus on essentials)

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 0.001 ETH (0.16 USD @ $158.95/ETH) has been submitted by:

  1. @wasmatic
  2. @marsrobertson

@clesaege please take a look at the submitted work:


Hi everyone planning to make a submission. Just to remind you that it is the last day to make it.
Good luck for those few last hours of hacking.

@wasmatic Can you deploy your submission on Kovan?

I've submitted my work but still some finishing touches.

  • Deploying to Kovan
  • Veryfing on Etherscan
  • Updating readme, including instructions how to run tests
  • Recording the video walkthrough
  • Various usability fixes related to deployment, such as MetaMask notification "ensure you are on Kovan"

My submission is a hackthon quality, it's a hachathon after all.

image

I was checking if the hackathon deadline implements any specific timestamp / timezone. I observe no specificity so I decide to interpret this as "finishing touches OK".


UPDATE: CODE FREEZE

(there is still 30th April somewhere)

https://youtu.be/M_aVCHRCups

youtube

@clesaege - you can find the addresses in the file deployment-addresses.js in the root folder of my submission. BasicCuratedListCreator is deployed on Kovan and used in the app. README.md has instructions on how to run the app.

Hey @marsrobertson and @wasmatic , thanks for participating in the hackathon. If you haven't yet, we'd love it if you could fill out this form to document your project name, team members, and link to your submission 🚀 🖌

Once you fill out the form, there's a prize at the end 😉

https://forms.gle/uxSnqQDbsNfqrUbD8

@wasmatic I'm having trouble running it locally. Can you run an instance?

@clesaege - Yes absolutely, the app is running on http://34.76.17.248/ - Sorry to hear that you had troubles running locally.
Notes:
-Be careful that Chrome does not redirect you to https.
-You will need to have MetaMask set to Kovan and Privacy mode should be turned off.
My deployment code is based off Stephen Grider's Ethereum MOOC, and that code -while great for learning- has a lot of breaking changes with web3 updates. I am currently learning on how to improve on that.

@wasmatic I tested creating a curated list but I don't really see anything else to do (like adding items).

@clesaege - You are right. There is nothing more to do. This work is the honest effort of a beginner and I tried to make that clear in the README file of the project. I only got my final idea for the app as outlined in the README file close to the deadline. To make the app more sophisticated was not possible for me given my capabilities today and the pending deadline.
I get that the app is trivial for you, but for me it has value as (a) work submitted that I committed to and (b) a first deployed app.

Hi Wasmatic,
No problem, just wanting to make sure that I was not missing something.

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 0.001 ETH (0.17 USD @ $168.25/ETH) attached to this issue has been approved & issued to @marsrobertson.

So here is the results:
1st: @marsrobertson, with the Self-Commitment dapp, wins 489 000 PNK (4000$).
2nd: @wasmatic, with the curated list factory, wins 122 000 PNK (1000$).

You can each give your address in this thread for the payment.
You can also send me a mail at clement@kleros.io to discuss your submission and see how it could be be further developed.

Thank you so much @clesaege and Kleros! Congratulations @marsrobertson well-deserved!
Address: 0xba1320dC58A28B7Aaac2a0b4EFfE7aeD18dC9Ce7
@clesaege - You can expect my follow-up email by the end of the weekend.

WOW.

Thank you.

Much appreciated.

The address... Operational security. Here is an encrypted message for you:

U2FsdGVkX1+Dq6b77GT4xsp2iYOfcIgQIFPr2vLfQ6hKy1V+uWdFFNoIHem9A9xnPdBRrv5jpobZc5/dmeXJF+a7Ui2rP49n5pUmwaKKSXEh82fe8qBPqSvvLm5d2dMc

https://genesis.re/encryption/ - it's not a default one, but another one, easily guessable, six lowercase characters starting with "k".

I will also follow up on private channels to confirm 😇


A question to the organizers: https://medium.com/gitcoin/the-ethereal-hackathon-4f5dc2eb56d6

image

It's in a couple of days, shall I book time off at work and flights?

Bit of a logistical challenge... Would like to get more info will follow up on Twitter.


EDIT / UPDATE:

Screenshot 2019-05-04 at 08 07 13

https://discordapp.com/channels/562828676480237578/562829367760125978/573195953671241759

Makes sense.
Flying {{ SOME LARGE AMOUNT }} of people around the world would be excessive.
At the same time it says clearly "will be invited", it wrongly sets the expectations.
I saw ridiculous budgets of EOS hackathon and blockchains.com launch at DEVCON3 - some people in crypto space have pockets deeps enough, especially if we agree that time is the most scarce, most valuable, non-renewable resource.

Congrats @marsrobertson & @wasmatic!
I've sent your prizes!

Awesome!

Received.

Already staking in the Court: https://court.kleros.io/courts

image

(screenshot just before confirming the transaction)