🎉 This repository contains a basic implementation for a fully autonomous deployment of a Geth blockchain network. 🎮
The instructions below will guide you on how to set up and run the project locally.
- Simple generation of docker-compose.yml
- Deploys by default
- one bootnode
- one oracle (rest api)
- three validator nodes (PoA)
- one non-validator node (rpc api)
- Randomly generated accounts(pk, address, password) with each deployment
- Randomly generated ip-addresses and ports (for nodes without API)
- Many templates for oracle and external clients
Before getting started, make sure you have the following prerequisites:
Follow these steps to set up the project:
-
Install dependencies
-
Clone this repository to your local machine:
-
Start Docker-Desktop
-
Clone the repository
git clone https://github.com/Altishofer/GethWizard.git
-
Change into the cloned repository directory:
cd GethWizard
-
Install project dependencies:
pip3 install requirements.txt
-
Start the blockchain:
python3 main
-
Simulate an external service interacting with the chaincode 🎉
python3 external_call_template.py
- see app.py in /oracle and external_service.py to see detailed structure of requests
- Metamask
- Add new blockchain blockchain on Metamask by url: http://localhost:8545
- call http://localhost:8081/faucet with body {"address":} to load any wallet-address with tokens
- Remix
- Connect Metamask
- Set advanced compiler configurations >> EMV version >> Paris
- Compile chaincode.sol with compiler: 0.8.22
- call http://localhost:8081/getContract to get the address of the deployed contract
- provide remix with the contract's address to interact
- Postman
- remote-procedure-calls (rpc) via http://localhost:8545
- representational state transfer (rest) via http://localhost:8081