Skip to content

Fully autonomous deployment of a private Ethereum network (Geth) network using PoA with preconfigured smart contracts and an oracle.

Notifications You must be signed in to change notification settings

Altishofer/GethWizard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GethWizard

🎉 This repository contains a basic implementation for a fully autonomous deployment of a Geth blockchain network. 🎮

GitHub issues GitHub pull requests

The instructions below will guide you on how to set up and run the project locally.

Features

  • 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

Prerequisites

Before getting started, make sure you have the following prerequisites:

Installation

Follow these steps to set up the project:

  1. Install dependencies

  2. Clone this repository to your local machine:

  3. Start Docker-Desktop

  4. Clone the repository

    git clone https://github.com/Altishofer/GethWizard.git
  5. Change into the cloned repository directory:

    cd GethWizard
  6. Install project dependencies:

    pip3 install requirements.txt
  7. Start the blockchain:

    python3 main
  8. Simulate an external service interacting with the chaincode 🎉

    python3 external_call_template.py

Interaction & Debugging

  • see app.py in /oracle and external_service.py to see detailed structure of requests
  • Metamask
  • 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

About

Fully autonomous deployment of a private Ethereum network (Geth) network using PoA with preconfigured smart contracts and an oracle.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published