Run Xain in docker. We have three different docker images. xain_node for running a blockchain node. xain_contract_deployer for running the scenario simulation and xain_bootstrap for initializing the blockchain and interconnecting all xain_nodes.
blockchain_accountsare required for each blockchain node to start mining and participate in smart contracts. The XAIN implementation requires specific accounts which cannot be created by geth automatically. Therefore these accounts are fixed for each blockchain nodedata_collectionwhich sends the runtime data of the chain to a server.scenario_slavewhich runs a websocket receiving transaction commands from thecontract_deployerscenario_execution_scriptswhich implements the xain specific execution of a transaction. They are connected with thescenario_slave- We are not allowed to upload the geth client to github. If you are interested in running the XAIN implementation, please contact us.
data_collectionwhich sends the runtime data of the chain to a server.contract_migrationwhich deploys the smart contract to run transaction 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.mastercontains the main entry point to start thescenario-orchestration-servicewhich listens for input from theprivate-chain-controllerat port 22000.
blockchain genesis filewhich includes the genesis.json to initialize the blockchain
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 xain_node.