Giter Site home page Giter Site logo

heyjonbray / ants-review Goto Github PK

View Code? Open in Web Editor NEW

This project forked from clearwood/ants-review

0.0 1.0 0.0 676 KB

:1st_place_medal: ETHTurin 2020 Hackathon Project (Team: MetaBounty) :ant:

Home Page: https://antsreview.on.fleek.co

License: GNU General Public License v3.0

JavaScript 66.12% Solidity 24.74% HTML 6.55% CSS 2.58%

ants-review's Introduction

#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

ants-review's People

Contributors

naszam avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.