ChaineMe is a project aiming to create a cybersecurity platform with blockchain challenges.
It's going to be only not only for Solidity (Etherum's smart contract language) like most of the others platforms but there is going to be challenges in a wide range of blockchain languages.
Through the challenges, you're going to learn the basics of blockchain's cybersecurity to secure the smart contracts you may have to create.
With this project, we started by learning a lot of general knowledge about P2P / blockchain. Then we learnt how to use IPFS (a distributed system for storing and accessing files, websites, applications, and data), Solidity and the main thing was to solve challenges on platforms like Ethernaut and Damn Vulnerable DEFI. Once this was done, we started by creating the challenges.
To install this project, you're going to need NodeJS and NPM
You just need to execute the command bellow at the root of the repository:
npm install
Or you can simply build the docker image with:
docker image build -t IMAGE_NAME
To start using the challenges, you need two etherum wallet like metamask (one to host the challenges and one to attack the challenges), then set the environment variables listed bellow in the .env file and you can just launch the project in a docker container with docker run -it IMAGE_NAME COMMAND
with as usage of the COMMAND:
npm run [init CHALLENGE] [test CHALLENGE ADDRESS]
Options:
init CHALLENGE: init a challenge by its name stored in CHALLENGE variable\n
test CHALLENGE ADDRESS: test a challenge by its name stored in CHALLENGE variable and from the instance address withen by ADDRESS argument\n
It has so far four solidity's challenges:
NODE_KEY
Define the Key of the Etherum Node usedETHERSCAN_API_KEY
Define the Api Key of EtherscanPRIVATE_KEY
Define the Private key of the WalletPUBLIC_KEY
Define the Public key of the Wallet