Skip to content

Latest commit

 

History

History
59 lines (39 loc) · 2.72 KB

README.md

File metadata and controls

59 lines (39 loc) · 2.72 KB

ChainMe

Description

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.

Installation

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

Quick Start

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

Features

It has so far four solidity's challenges:

Environnement

  • NODE_KEY Define the Key of the Etherum Node used
  • ETHERSCAN_API_KEY Define the Api Key of Etherscan
  • PRIVATE_KEY Define the Private key of the Wallet
  • PUBLIC_KEY Define the Public key of the Wallet

Dependencies

Authors