VSkill (VeriSkill) is a decentralized platform for verifying skills. It leverages blockchain technology to create a transparent and trustworthy system for skill verification. The platform involves three key roles:
- Users: Submit evidence to be verified.
- Verifiers: Stake money to become verifiers, review evidence, and decide on skill verification.
- Owner: Can modify submission fees and supported skills for verification.
- Solidity
- OpenZeppelin
- Foundry
- IPFS
- Chainlink (Price Feed, VRF, Automation)
- Staking mechanism for verifiers
- Reputation system for verifiers
- Incentive mechanism to encourage correct verifications
- IPFS integration for evidence submission
- NFT minting for verified skills
- Random assignment of evidence to verifiers using Chainlink VRF
- Automated evidence distribution and status checking using Chainlink Automation
- Real-time USD/ETH price conversion using Chainlink Price Feed
VSkill consists of several key modules that work together to create a decentralized skill verification platform:
-
Staking Module:
- Manages verifier staking and reputation
- Handles incentive distribution
-
User Module:
- Manages user evidence submission
- Tracks evidence status
-
User NFT Module:
- Mints NFTs for verified skills
-
Distribution Module:
- Uses Chainlink VRF for random assignment of evidence to verifiers
-
Verifier Module:
- Manages verifier feedback submission
- Handles evidence re-distribution in case of conflicting opinions
- Foundry
- Git
- CMake
- Clone the repository:
git clone https://github.com/cqlyj/VSkill
- Navigate to the project directory:
cd VSkill
- Install dependencies:
make install
- Build the project:
make build
-
Start a local Ethereum node:
anvil
-
Deploy the contracts you want to interact with(You can find the commands in the
Makefile
):make deploy-/*THE CONTRACT YOU WANT TO INTERACT*/
-
Interact with the contracts using the provided scripts in
Makefile
.
VSkill includes a comprehensive test suite to ensure the reliability and correctness of the smart contracts.
To run the tests:
forge test
For more verbose output:
forge test -vv
To deploy VSkill to a testnet or mainnet:
-
Set up your environment variables:
cp .env.example .env
Edit
.env
and add your RPC URL and private key. -
Run the deployment script:
make deploy-/*THE CONTRACT YOU WANT TO DEPLOY*/
Make sure to configure the Chainlink oracles and other necessary parameters after deployment.
In case you want to deploy to the layer 2 zkSync local network, you can follow the instructions in file zksync-node-instructions.md
.
This project is licensed under the MIT License - see the LICENSE file for details.
Luo Yingjie - [email protected]