In this project you will be minting your own tokens to represent your title to the properties. Before you mint a token, you need to verify you own the property. You will use zk-SNARKs to create a verification system which can prove you have title to the property without revealing that specific information on the property. We covered the basics on zk-SNARKs in Privacy lesson in Course 5
Once the token has been verified you will place it on a blockchain market place (OpenSea) for others to purchase. Let's get started!
This repository contains Smart Contract code in Solidity (using Truffle), tests (also using Truffle), dApp scaffolding (using HTML, CSS and JS) and server app scaffolding.
1. For OS environment, you can find my Docker file at Docker File ; Please take a look to see the basic package dependency.
root@b6d633a70f28:/mnt/devroot/src# truffle version
Truffle v5.1.43 (core: 5.1.43)
Solidity v0.5.16 (solc-js)
Node v10.15.3
Web3.js v1.2.1
root@b6d633a70f28:/mnt/devroot/src/udacity-p8-blockchain-capstone/eth-contracts# npm install
...
You can see the runlog: truffle compile & truffle migrate
- NodeJS (The install will also include the npm node package manager)
- ganache-cli Fast Ethereum RPC client for testing and development
- truffle Development environment, testing framework and asset pipeline for Ethereum
- MetaMask extension installed in your browser and few ethers on Rinkeby Test Network.
- Docker Enterprise Container Platform for High-Velocity Innovation
- truffle test: you can run it, all test cases can pass, but test coverage is not good enough. ** the run log of the truffle test is also put at runlog
- Can be found on ./runlog/build-contracts-backup/ folder of current repository
- See Token Mint Script for the script usage
- See Token Mint Log for token minter's runlog
- See zokrates for zokrates setup
- zokrates/code is the source code of the verifier
- zokrates/verifier_square is the workdir for the verifier
- [zokrates/proof_square_*] is the workdir for the all the minter. you can also find the 'proof.json' here.