Skip to content

BPChain/private-ethereum

Repository files navigation

Private ethereum

Master-Branch: Build Status
Dev-Branch: Build Status

Structure

Run Ethereum in docker. We have three different docker images. eth_node for running a blockchain node. eth_contract_deployer for running the scenario simulation and eth_bootstrap for initializing the blockchain and interconnecting all eth_nodes.

eth_node files

  1. data_collection which sends the runtime data of the chain to a server
  2. scenario_slave which runs a websocket receiving transaction commands from the contract_deployer
  3. scenario_execution_scripts which implements the ethereum specific execution of a transaction. They are connected with the scenario_slave

eth_contract_deployer files

  1. data_collection which sends the runtime data of the chain to a server.
  2. contract_migration which deploys the smart contract to run transactions with a specific payload. It also opens a websocket connection for retrieving the smart contract address, so the nodes are able to use the same smart contract instance.
  3. master contains the main entry point to start the scenario-orchestration-service which listens for input from the private-chain-controller at port 22000.

eth_bootstrap files

  1. blockchain genesis file which includes the genesis.json to initialize the blockchain

Docker Setup

All nodes use the same Dockerfile but have different entrypoints defined in the docker-compose.yml. To run the blockchain just start it by running docker-compose up. Please note that scaling is allowed only on the eth_node.