Add dev setup of 4 nodes with docker-compose

This commit is contained in:
Sylvain Bellemare 2017-11-14 22:36:29 +01:00
parent 67c8bba17b
commit b7ef4caa26
15 changed files with 414 additions and 2 deletions

1
.gitignore vendored
View File

@ -87,3 +87,4 @@ terraform.tfstate.backup
# tendermint data
tmdata/data
network/*/data

View File

@ -8,8 +8,12 @@ RUN apt-get update \
&& apt-get autoremove \
&& apt-get clean
ENV PYTHONUNBUFFERED=0
ARG backend
ENV PYTHONUNBUFFERED 0
ENV BIGCHAINDB_DATABASE_PORT 27017
ENV BIGCHAINDB_DATABASE_BACKEND $backend
ENV BIGCHAINDB_SERVER_BIND 0.0.0.0:9984
ENV BIGCHAINDB_WSSERVER_HOST 0.0.0.0
ENV BIGCHAINDB_WSSERVER_SCHEME ws
@ -17,7 +21,9 @@ ENV BIGCHAINDB_WSSERVER_SCHEME ws
ENV BIGCHAINDB_WSSERVER_ADVERTISED_HOST 0.0.0.0
ENV BIGCHAINDB_WSSERVER_ADVERTISED_SCHEME ws
ARG backend
ENV BIGCHAINDB_START_TENDERMINT 0
ENV TENDERMINT_PORT 46657
RUN mkdir -p /usr/src/app
COPY . /usr/src/app/

170
docker-compose.network.yml Normal file
View File

@ -0,0 +1,170 @@
version: '3'
services:
#############################################################################
# #
# NODE 1 #
# #
#############################################################################
mdb-one:
image: mongo:3.4.3
ports:
- "27017"
command: mongod
bdb-one:
depends_on:
- mdb-one
- tendermint-one
build:
context: .
dockerfile: ./compose/bigchaindb-server/Dockerfile
args:
backend: localmongodb
volumes:
- ./bigchaindb:/usr/src/app/bigchaindb
- ./tests:/usr/src/app/tests
environment:
BIGCHAINDB_DATABASE_BACKEND: localmongodb
BIGCHAINDB_DATABASE_HOST: mdb-one
TENDERMINT_HOST: tendermint-one
ports:
- "9984"
command: bigchaindb -l DEBUG start --init
tendermint-one:
image: tendermint/tendermint
volumes:
- ./network/node1:/tendermint
entrypoint: ''
command: bash -c "tendermint unsafe_reset_all && tendermint --log_level debug node"
#############################################################################
# #
# NODE 2 #
# #
#############################################################################
mdb-two:
image: mongo:3.4.3
ports:
- "27017"
command: mongod
bdb-two:
depends_on:
- mdb-two
- tendermint-two
build:
context: .
dockerfile: ./compose/bigchaindb-server/Dockerfile
args:
backend: localmongodb
volumes:
- ./bigchaindb:/usr/src/app/bigchaindb
- ./tests:/usr/src/app/tests
environment:
BIGCHAINDB_DATABASE_BACKEND: localmongodb
BIGCHAINDB_DATABASE_HOST: mdb-two
TENDERMINT_HOST: tendermint-two
ports:
- "9984"
command: bigchaindb -l DEBUG start --init
tendermint-two:
image: tendermint/tendermint
volumes:
- ./network/node2:/tendermint
entrypoint: ''
command: bash -c "tendermint unsafe_reset_all && tendermint --log_level debug node"
#############################################################################
# #
# NODE 3 #
# #
#############################################################################
mdb-three:
image: mongo:3.4.3
ports:
- "27017"
command: mongod
bdb-three:
depends_on:
- mdb-three
- tendermint-three
build:
context: .
dockerfile: ./compose/bigchaindb-server/Dockerfile
args:
backend: localmongodb
volumes:
- ./bigchaindb:/usr/src/app/bigchaindb
- ./tests:/usr/src/app/tests
environment:
BIGCHAINDB_DATABASE_BACKEND: localmongodb
BIGCHAINDB_DATABASE_HOST: mdb-three
TENDERMINT_HOST: tendermint-three
ports:
- "9984"
command: bigchaindb -l DEBUG start --init
tendermint-three:
image: tendermint/tendermint
volumes:
- ./network/node3:/tendermint
entrypoint: ''
command: bash -c "tendermint unsafe_reset_all && tendermint --log_level debug node"
#############################################################################
# #
# NODE 4 #
# #
#############################################################################
mdb-four:
image: mongo:3.4.3
ports:
- "27017"
command: mongod
bdb-four:
depends_on:
- mdb-four
- tendermint-four
build:
context: .
dockerfile: ./compose/bigchaindb-server/Dockerfile
args:
backend: localmongodb
volumes:
- ./bigchaindb:/usr/src/app/bigchaindb
- ./tests:/usr/src/app/tests
environment:
BIGCHAINDB_DATABASE_BACKEND: localmongodb
BIGCHAINDB_DATABASE_HOST: mdb-four
TENDERMINT_HOST: tendermint-four
ports:
- "9984"
command: bigchaindb -l DEBUG start --init
tendermint-four:
image: tendermint/tendermint
volumes:
- ./network/node4:/tendermint
entrypoint: ''
command: bash -c "tendermint unsafe_reset_all && tendermint --log_level debug node"
#############################################################################
#############################################################################
#############################################################################
#
# clients
#
#############################################################################
#############################################################################
#############################################################################
curl-client:
image: appropriate/curl
volumes:
- ./network/health-check.sh:/health-check.sh
command: /bin/sh health-check.sh
driver:
build:
context: .
dockerfile: ./compose/bigchaindb-driver/Dockerfile

18
network/node1/config.toml Normal file
View File

@ -0,0 +1,18 @@
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml
proxy_app = "tcp://bdb-one:46658"
moniker = "anonymous"
fast_sync = true
db_backend = "leveldb"
log_level = "state:info,*:error"
[consensus]
create_empty_blocks = false
[rpc]
laddr = "tcp://0.0.0.0:46657"
[p2p]
laddr = "tcp://0.0.0.0:46656"
seeds = ""

View File

@ -0,0 +1,39 @@
{
"genesis_time": "0001-01-01T00:00:00Z",
"chain_id": "test-chain-KPI1Ud",
"validators": [
{
"pub_key": {
"type":"ed25519",
"data":"60C55D531F87D9AA0DFA3AE2DC1842FBFB531DA2161BE3B8D6CC03948CFC39C8"
},
"power": 10,
"name": "node1"
},
{
"pub_key": {
"type": "ed25519",
"data": "981B3879F24CAC4833AFC7EBB71AAEBE79C61E717D7791295B253E7A8E454518"
},
"power": 10,
"name": "node2"
},
{
"pub_key": {
"type": "ed25519",
"data": "E8C4FEE10BA60982CBD9C41614CF42E31E3DF9FE50124BA4C0A5E3CEA897DA9F"
},
"power": 10,
"name": "node3"
},
{
"pub_key": {
"type": "ed25519",
"data": "531248E1D7E35EDB26F0C19F3211FA5CFDA818B226F1F9206D0D2047B48B20B9"
},
"power": 10,
"name": "node4"
}
],
"app_hash":""
}

View File

@ -0,0 +1 @@
{"address":"F81B79DE3F8D8455F76BA1D2FCB62726D69B1253","pub_key":{"type":"ed25519","data":"60C55D531F87D9AA0DFA3AE2DC1842FBFB531DA2161BE3B8D6CC03948CFC39C8"},"last_height":0,"last_round":0,"last_step":0,"last_signature":null,"priv_key":{"type":"ed25519","data":"CD6BAD1433AA62AD9B384C49FD83507829FE39306FC0475903CCF0BA114FCCCB60C55D531F87D9AA0DFA3AE2DC1842FBFB531DA2161BE3B8D6CC03948CFC39C8"}}

19
network/node2/config.toml Normal file
View File

@ -0,0 +1,19 @@
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml
proxy_app = "tcp://bdb-two:46658"
moniker = "anonymous"
fast_sync = true
db_backend = "leveldb"
log_level = "state:info,*:error"
[consensus]
create_empty_blocks = false
[rpc]
laddr = "tcp://0.0.0.0:46657"
# TODO peers
[p2p]
laddr = "tcp://0.0.0.0:46656"
seeds = "tendermint-one:46656"

View File

@ -0,0 +1,39 @@
{
"genesis_time": "0001-01-01T00:00:00Z",
"chain_id": "test-chain-KPI1Ud",
"validators": [
{
"pub_key": {
"type":"ed25519",
"data":"60C55D531F87D9AA0DFA3AE2DC1842FBFB531DA2161BE3B8D6CC03948CFC39C8"
},
"power": 10,
"name": "node1"
},
{
"pub_key": {
"type": "ed25519",
"data": "981B3879F24CAC4833AFC7EBB71AAEBE79C61E717D7791295B253E7A8E454518"
},
"power": 10,
"name": "node2"
},
{
"pub_key": {
"type": "ed25519",
"data": "E8C4FEE10BA60982CBD9C41614CF42E31E3DF9FE50124BA4C0A5E3CEA897DA9F"
},
"power": 10,
"name": "node3"
},
{
"pub_key": {
"type": "ed25519",
"data": "531248E1D7E35EDB26F0C19F3211FA5CFDA818B226F1F9206D0D2047B48B20B9"
},
"power": 10,
"name": "node4"
}
],
"app_hash":""
}

View File

@ -0,0 +1 @@
{"address":"0DDAB4527921A5E36C099A3260900E8B49F55096","pub_key":{"type":"ed25519","data":"981B3879F24CAC4833AFC7EBB71AAEBE79C61E717D7791295B253E7A8E454518"},"last_height":0,"last_round":0,"last_step":0,"last_signature":null,"priv_key":{"type":"ed25519","data":"BE14C56DA02B1FEBD101EF6EF986F3F2984C0ABE96FEE9FEC9616384CC4F71FF981B3879F24CAC4833AFC7EBB71AAEBE79C61E717D7791295B253E7A8E454518"}}

18
network/node3/config.toml Normal file
View File

@ -0,0 +1,18 @@
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml
proxy_app = "tcp://bdb-three:46658"
moniker = "anonymous"
fast_sync = true
db_backend = "leveldb"
log_level = "state:info,*:error"
[consensus]
create_empty_blocks = false
[rpc]
laddr = "tcp://0.0.0.0:46657"
[p2p]
laddr = "tcp://0.0.0.0:46656"
seeds = "tendermint-two:46656"

View File

@ -0,0 +1,39 @@
{
"genesis_time": "0001-01-01T00:00:00Z",
"chain_id": "test-chain-KPI1Ud",
"validators": [
{
"pub_key": {
"type":"ed25519",
"data":"60C55D531F87D9AA0DFA3AE2DC1842FBFB531DA2161BE3B8D6CC03948CFC39C8"
},
"power": 10,
"name": "node1"
},
{
"pub_key": {
"type": "ed25519",
"data": "981B3879F24CAC4833AFC7EBB71AAEBE79C61E717D7791295B253E7A8E454518"
},
"power": 10,
"name": "node2"
},
{
"pub_key": {
"type": "ed25519",
"data": "E8C4FEE10BA60982CBD9C41614CF42E31E3DF9FE50124BA4C0A5E3CEA897DA9F"
},
"power": 10,
"name": "node3"
},
{
"pub_key": {
"type": "ed25519",
"data": "531248E1D7E35EDB26F0C19F3211FA5CFDA818B226F1F9206D0D2047B48B20B9"
},
"power": 10,
"name": "node4"
}
],
"app_hash":""
}

View File

@ -0,0 +1 @@
{"address":"F51FD23581F3FA49C68BBDC229461F24EBE202BE","pub_key":{"type":"ed25519","data":"E8C4FEE10BA60982CBD9C41614CF42E31E3DF9FE50124BA4C0A5E3CEA897DA9F"},"last_height":0,"last_round":0,"last_step":0,"last_signature":null,"priv_key":{"type":"ed25519","data":"E9849DEE8A524F00530EF1A486AD8E93A3AD2FCE4BD59F2F08282AD2BE3AE183E8C4FEE10BA60982CBD9C41614CF42E31E3DF9FE50124BA4C0A5E3CEA897DA9F"}}

20
network/node4/config.toml Normal file
View File

@ -0,0 +1,20 @@
# This is a TOML config file.
# This is a TOML config file.
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml
proxy_app = "tcp://bdb-four:46658"
moniker = "anonymous"
fast_sync = true
db_backend = "leveldb"
log_level = "state:info,*:error"
[consensus]
create_empty_blocks = false
[rpc]
laddr = "tcp://0.0.0.0:46657"
[p2p]
laddr = "tcp://0.0.0.0:46656"
seeds = "tendermint-one:46656,tendermint-three:46656"

View File

@ -0,0 +1,39 @@
{
"genesis_time": "0001-01-01T00:00:00Z",
"chain_id": "test-chain-KPI1Ud",
"validators": [
{
"pub_key": {
"type":"ed25519",
"data":"60C55D531F87D9AA0DFA3AE2DC1842FBFB531DA2161BE3B8D6CC03948CFC39C8"
},
"power": 10,
"name": "node1"
},
{
"pub_key": {
"type": "ed25519",
"data": "981B3879F24CAC4833AFC7EBB71AAEBE79C61E717D7791295B253E7A8E454518"
},
"power": 10,
"name": "node2"
},
{
"pub_key": {
"type": "ed25519",
"data": "E8C4FEE10BA60982CBD9C41614CF42E31E3DF9FE50124BA4C0A5E3CEA897DA9F"
},
"power": 10,
"name": "node3"
},
{
"pub_key": {
"type": "ed25519",
"data": "531248E1D7E35EDB26F0C19F3211FA5CFDA818B226F1F9206D0D2047B48B20B9"
},
"power": 10,
"name": "node4"
}
],
"app_hash":""
}

View File

@ -0,0 +1 @@
{"address":"EB1E972D69E212E928CD98B581E50233E9C43F51","pub_key":{"type":"ed25519","data":"531248E1D7E35EDB26F0C19F3211FA5CFDA818B226F1F9206D0D2047B48B20B9"},"last_height":0,"last_round":0,"last_step":0,"last_signature":null,"priv_key":{"type":"ed25519","data":"864CA8AB5B2F3CBD42994381648D6F75E827E0D53C3B28872E03D7AEB2E10F14531248E1D7E35EDB26F0C19F3211FA5CFDA818B226F1F9206D0D2047B48B20B9"}}