Skip to content

🥇 ETHTurin 2020 Hackathon Project (Team: MetaBounty) 🐜

License

Notifications You must be signed in to change notification settings

Clearwood/ants-review

 
 

Repository files navigation

#ubuntu 18.04 #npm 12.16.2 #built_with_Truffle #solc v0.6.6 #testnet rinkeby

ETH Turin 2020 DOI

Ants-Review

Bounty-like system for Open Anonymous Scientific Peer-Reviews
🥇 1st Place at ETHTurin Hackathon (open with MetaMask disabled)

The Project implements a basic Bounty-like contract called AntsReview to allow anyone to issue an antReview in ETH, a bounty for peer-review in scientific publication, linked to requirements stored on ipfs which anyone can fufill by submitting the ipfs hash which contains evidence of their fufillment.
After the submission of successful peer-reviews, they will be audited by an external Editor and payed by the Issuer.
To incentivise ethical behaviour the system will implement a quadratic funding on AntsReview.

The Project is intended to be used as a template for developing the idea presented in the white paper, extending its functionality via the following steps:

  • Quadratic Funding Gitcoin-like for AntsReview.
  • ERC20 token, name Ant, symbol ANT.
  • zkANT, allowing private ANT transactions on Ethereum using ZK-SNARKs via AZTEC Protocol.
  • Timestamped on Ethereum via PoE (Proof of Existence).
  • Storing on IPFS.
  • ENS, allowing human-readable Ethereum addresses
  • Upgradability, to allow the logic to be extended and improved.
  • ...

White Paper
Presentation
Demo

Project Setup

Clone this GitHub repository.

Steps to compile and deploy

  • Global dependencies
    • Truffle:
    $ npm install -g truffle
    • Ganache:
    $ npm install -g ganache-cli
    • OpenZeppelin Library v3.0:
    $ npm install -g @openzeppelin/contracts
    • MythX for Truffle (optional):
    $ npm install -g truffle-security

Running the project with local test network (ganache-cli)

  • Start ganache-cli with the following command:
    $ ganache-cli
  • Compile the smart contract using Truffle with the following command:
    $ truffle compile
  • Deploy the smart contracts using Truffle & Ganache with the following command:
    $ truffle migrate
  • Test the smart contracts using Truffle & Ganache with the following command:
    $ truffle test
  • Analyze the smart contracts using MythX for Truffle with the following command (optional):
    $ truffle run verify

Deploying on Rinkeby's Testnet

  • Get an Ethereum Account on Metamask.

  • On the landing page, click “Get Chrome Extension.”

  • Create a .secret file cointaining the menomic.

  • Get some test ether from a Rinkeby's faucet.

  • Signup Infura.

  • Create new project.

  • Copy the rinkeby URL into truffle-config.js.

  • Uncomment the following lines in truffle-config.js:

    // const HDWalletProvider = require("@truffle/hdwallet-provider");
    // const infuraKey = '...';
    // const infuraURL = 'https://rinkeby.infura.io/...';
    
    // const fs = require('fs');
    // const mnemonic = fs.readFileSync(".secret").toString().trim();
    
  • Install Truffle HD Wallet Provider:

    $ npm install @truffle/hdwallet-provider
  • Deploy the smart contract using Truffle & Infura with the following command:

    $ truffle migrate --network rinkeby

    The Project's smart contract have been deployed on Rinkeby.
    The ABIs are available to test the project on Rinkeby's Network.

Using the DApp

  • Install Ganache GUI.
  • Change Ganache GUI port to 8545.
  • Import Ganache GUI mnemonic into MetaMask.
  • Connect MetaMask to Ganache GUI, adding a custom RPC specifing the Ganache GUI's RPC server URL.
  • Deploy the smart contracts to Ganache GUI:
    $ truffle migrate
    
  • Move to client directory on the project:
    $ cd client
    
  • Install dependencies:
    $ npm install
    
  • Start the Local Web Server:
    $ npm run start
  • Interacting with the User Interface (Proof of Concept):
    • Anyone can add an AntReview specifying IPFS Has of requirements, Deadline Timestamp, Ether value of the AntReview reward.

The DApp (PoC) has been deployed on IPFS via Fleek: https://antsreview.on.fleek.co

Inspiration & References

About

Project created by Team MetaBounty for ETHTurin 2020 Hackathon.
Conception & design by Bianca Trovò
Implementation & code development by Nazzareno Massari
Pixel Art by Marcelo Colmenero

About

🥇 ETHTurin 2020 Hackathon Project (Team: MetaBounty) 🐜

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 66.1%
  • Solidity 24.7%
  • HTML 6.6%
  • CSS 2.6%