Author: Sanchay Mittal
Consensys Bootcamp 2019 Final Project
- Leveraging crowd wisdom to hit schelling point and find the TRUTH.
- Story of bitcoin and cyberpunk
Prescience is aimed to become a DAO (Decentralized Autonomous Organisation) for researchers, Students and Investors. It will provide a decentralized market research platform where everyone can get 100% objectively fair reviews, voting for their next multi-million dollar idea.
Since the aim is complex, and scope of project is much bigger and ask for bigger commitments. For this program, I have build basic functionalities and specifications with SCRATCH.
Ensure you have Truffle, Ganache, and NPM installed on your machine. Use Google Chrome as your browser, and ensure you have the MetaMask extension installed in it.
- Clone the project locally
git clone https://github.com/sanchaymittal/Prescience
cd Prescience
- Start local development blockchain and copy the mnemonic to be used later
ganache-cli
- Compile contracts and migrate them to the blockchain
npm install
truffle compile
truffle migrate
The frontend is a lite-server app to interact with the contract.
npm run dev
truffle test
- Goto localhost:3000 and login into metamask using the mnemonic obtained from ganache.
- Allow connecting the app to web3
- Owner's account will be already created and will be the one who initiated the contract.
- You can then switch to a different metamask account and create Proposal and interact with it. etc.
IPFS has been used to store the content of a specefic course. IPFS provides with a distributed file storage capability and easily fits into the platform. However, a non-IPFS based course content is also allowed in the platform.
Frameworks/Tools
- Truffle
- Ganache
- Metamask
- Web3.js
- Oraclize
- npm
- Git
Programming Languages
- Solidity
- Javascript
- HTML
- CSS
- README.md
- Screen recording [!!]
- Truffle project - compile, migrate, test
- Smart Contract Commented
- Library use
- Local development interface
- Displays the current ETH Account
- Can sign transactions using MetaMask
- App interface reflects contract state
- 5 tests in Js or Sol
- Structured tests
- All pass
- Circuit breaker/Emergency stop
- Project includes a file called design_pattern_desicions.md / at least 2 implemented
- avoiding_common_attacks.md and explains at least 3 attacks and how it mitigates
- deployed_addresses.txt that indicates contract address on testnet
- upgradeable design pattern
- One contract written in Vyper or LLL
- IPFS
- uPort
- ENS
- Oracle
- Reputation Model
- User Authentication Verification
- Investment Scheme (Stake or CrowdFunding)
- System Token
- Community Currators Rights Distribution.
- Code of Conduct (Writing Reviews).
- Open Discussion Forum (After Proposal Reveal Period).
- Zksnarks Proposal Setting.
- ERC721 Token Update Scheme.