lparvinsmith / blockchain-developer-bootcamp-final-project

Final project for Consensus Blockchain Bootcamp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

blockchain-developer-bootcamp-final-project

Final project for Consensus Blockchain Bootcamp

Contents

Retroactive Public Goods Funding

This project provides a template for communities to come together, establish a common problem, and establish an incentive for entrepreneurs to solve the problem.

Inspired by Vitalik Buterin's talk: "Things that matter outside of defi" (Video, July 21, 2021)

Why Retroactive Funding

For a large group of people, retrospective decisions are easier than prospective decisions. This allows a large group to agree only on a shared problem, but does not require agreeing on the best solution until after the fact.

The DAO, or the Community

The decentralized autonomous organization (DAO) is the contract that establishes the problem and formalizes the community members with voting or administrative power. During the formation of the DAO, members will contribute a buyin and receive one vote. At the end of a specified term, the DAO members will vote on which project was the most valuable.

The Creators, or Candidates

Project creators can register their projects in the contract until project submissions are closed. Their project pitch and updates would be communicated in an external service like discord. When the voting is complete, the winner will receive the total contract value collected from the voter buyins.

The Voting Token, or NFT

Voters who pay the appropriate buyin receive an NFT which allows them one vote on a candidate. They can sell this NFT if they lose interest in the DAO, and the buyer can assume voting rights.

Upcoming improvements

The voter NFT minted is currently just a unique token with no metadata. In a future iteration, the contract owner would be able to configure a unique design for the NFT to increase the NFT's value as a collectible.

Directory structure

/contracts : Directory for smart contracts written in Solidity. The Retroactive Funding contract is in contracts/RetroactiveFunding.sol

/migrations : Directory for scriptable deployment files

/test : Directory for unit tests to ensure contract code quality

/client : Directory for React client

Running locally

Contract

Created with Truffle suite. Truffle requires Node v8.9.4 or higher.

Install dependencies with yarn or npm install

Run locally with truffle develop

Run unit tests with truffle test

Client

Created with Create React App

From the /client directory, run the following commands:

Install dependencies with yarn (preferred) or npm install

Run locally with yarn start or npm start

About

Final project for Consensus Blockchain Bootcamp


Languages

Language:JavaScript 72.8%Language:Solidity 18.0%Language:CSS 4.8%Language:HTML 4.4%