This is a library of p2p clients representing select blockchain and distributed filesystem protocols and related utilities (i.e., blockexplorers and other developer tools). Application containers built from this repository can be configured using a standard set of configuration options.
The following EVM-based clients and protocols are currently supported (in no particular order):
- Parity - Authority Round PoA; a highly-upgradeable Aura implementation lives in this repo;
PoWsupported (parity.sh
) - Geth vanilla Clique PoA & PoW supported (
geth.sh
) - Quorum - IBFT with Constellation;
Raft(quorum.sh
) - ewasm - ewasm testnet PR #50
The following Bcoin protocols are supported:
Hyperledger protocol support is still a work in progress. Documentation forthcoming.
By default, regardless of the client/protocol implementation targeted for execution, the container starts a local IPFS daemon which should be added to a load-balanced IPFS network. Environment support for configuring the IPFS daemon to connect to a private network; documentation forthcoming.
Currently, the Dockerfile builds a very fat image which contains all supported clients and protocols. The reason for this is simply for the sake of convenience when provide.network nodes are being launched via the Provide PaaS. It will make sense in the near future to further parameterize docker build
invocations such that only the desired functionality is built to expedite build times and bandwidth (i.e., when the resulting container is being shipped over the network).
The main.sh
entrypoint uses environment variables supplied at container runtime to invoke the appropriate client binary (or binaries in the case of permissioned networks such as Quorum).