From 23b83d9590bf95a63b09cb6091c5d67c60a03ea7 Mon Sep 17 00:00:00 2001
From: Robert Martin-Legene <robert@nic.ar>
Date: Tue, 27 Aug 2019 18:13:11 -0300
Subject: [PATCH] Better support for containers

---
 bin/singlestart.sh       | 78 +++++++++++++++++++++++++++++++++++
 network/config.toml      | 87 ++++++++++++++++++++++++++++++++++++++++
 test2network/config.toml | 87 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 252 insertions(+)
 create mode 100755 bin/singlestart.sh
 create mode 100644 network/config.toml
 create mode 100644 test2network/config.toml

diff --git a/bin/singlestart.sh b/bin/singlestart.sh
new file mode 100755
index 0000000..a0dda31
--- /dev/null
+++ b/bin/singlestart.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+# 20190816 Robert Martin-Legene
+# GPL2-only
+
+bootnodekeyfile=${BFANETWORKDIR}/bootnode/key
+
+# Bail out if anything fails.
+trap "exit 1" ERR
+
+if [ "$VIRTUALIZATION" = "DOCKER" ]
+then
+    echo "Some log info can be seen with: docker logs bfanode"
+fi
+
+# You can start as:
+# BFAHOME=/home/bfa/bfa singlestart.sh
+# singlestart.sh /home/bfa/bfa
+if [ -z "${BFAHOME}" -a -n "$1" -a -f "$1" ]
+then
+    BFAHOME="$1"
+fi
+if [ -z "${BFAHOME}" ]; then echo "\$BFAHOME not set. Did you source `dirname $0`/env ?" >&2; exit 1; fi
+#
+if [ -r "${BFAHOME}/bin/env" ]
+then
+    source ${BFAHOME}/bin/env
+else
+    if [ "$VIRTUALIZATION" = "DOCKER" ]
+    then
+        # The idea is that the environment already is set by the Docker environment.
+        touch ${BFAHOME}/bin/env
+    else
+        echo "Can't do much without a \$BFAHOME/bin/env file. Maybe you can copy one of these?" >&2
+        ls -1 ${BFAHOME}/*/env >&2
+        exit 1
+    fi
+fi
+source ${BFAHOME}/bin/libbfa.sh
+
+echo "Logging mostly everything to ${BFANODEDIR}/log"
+echo "Consider running: tail -n 1000 -F ${BFANODEDIR}/log"
+if [ "$VIRTUALIZATION" = "DOCKER" ]
+then
+    echo "or: docker exec -i bfanode bfalog.sh"
+fi
+
+unset LOGDIR LOGPIPE PIDLIST
+
+echo "*** Setting up logging."
+# Clean up logging
+LOGDIR=$( mktemp --directory )
+trap "rm -f ${LOGDIR}" EXIT
+LOGPIPE=${LOGDIR}/logpipe
+mknod ${LOGPIPE} p
+${BFAHOME}/bin/log.sh ${BFANODEDIR}/log < ${LOGPIPE} &
+PIDLIST="${PIDLIST} $!"
+
+echo "*** Starting geth."
+geth --config ${BFATOML} --gcmode archive --verbosity ${BFAVERBOSITY:-3} --allow-insecure-unlock > ${LOGPIPE} 2>&1 &
+PIDLIST="${PIDLIST} $!"
+
+# bootnode
+if [ -r "$bootnodekeyfile" ]
+then
+    echo "*** Starting bootnode."
+    bootnode --nodekey $bootnodekeyfile &
+    PIDLIST="${PIDLIST} $!"
+fi
+
+echo "*** Starting monitor.js"
+monitor.js &
+PIDLIST="${PIDLIST} $!"
+
+wait -n             # if one dies
+echo "*** Some process ended, so will shut down other processes too." > ${LOGPIPE}
+sleep 2             # give log.sh time to work on the data written, before we kill it.
+kill ${PIDLIST}     # kill all
+wait                # wait for them all to end
diff --git a/network/config.toml b/network/config.toml
new file mode 100644
index 0000000..235b4db
--- /dev/null
+++ b/network/config.toml
@@ -0,0 +1,87 @@
+[Eth]
+NetworkId = 47525974938
+SyncMode = "full"
+NoPruning = true
+NoPrefetch = false
+LightPeers = 100
+UltraLightFraction = 75
+DatabaseCache = 2048
+DatabaseFreezer = ""
+TrieCleanCache = 1024
+TrieDirtyCache = 1024
+TrieTimeout = 3600000000000
+EnablePreimageRecording = false
+EWASMInterpreter = ""
+EVMInterpreter = ""
+
+[Eth.Miner]
+GasFloor = 8000000
+GasCeil = 8000000
+GasPrice = 1000000000
+Recommit = 3000000000
+Noverify = false
+
+[Eth.Ethash]
+CacheDir = "ethash"
+CachesInMem = 2
+CachesOnDisk = 3
+DatasetDir = "/home/bfa/.ethash"
+DatasetsInMem = 1
+DatasetsOnDisk = 2
+PowMode = 0
+
+[Eth.TxPool]
+Locals = []
+NoLocals = true
+Journal = "transactions.rlp"
+Rejournal = 3600000000000
+PriceLimit = 1
+PriceBump = 10
+AccountSlots = 16
+GlobalSlots = 4096
+AccountQueue = 64
+GlobalQueue = 1024
+Lifetime = 10800000000000
+
+[Eth.GPO]
+Blocks = 20
+Percentile = 60
+
+[Shh]
+MaxMessageSize = 1048576
+MinimumAcceptedPOW = 2e-01
+RestrictConnectionBetweenLightClients = true
+
+[Node]
+DataDir = "/home/bfa/bfa/network/node"
+HTTPHost = "127.0.0.1"
+HTTPCors = ["*"]
+omitempty = ""
+IPCPath = "geth.ipc"
+HTTPPort = 8545
+HTTPVirtualHosts = ["localhost"]
+HTTPModules = ["net", "web3", "eth", "shh", "clique", "admin", "miner", "personal"]
+WSPort = 8546
+WSModules = ["net", "web3", "eth", "shh"]
+GraphQLPort = 8547
+GraphQLVirtualHosts = ["localhost"]
+
+[Node.P2P]
+MaxPeers = 50
+NoDiscovery = false
+BootstrapNodes = ["enode://7ec4dd9d5e1a2b29d6b60aa9f95677c0c3a5f9306e73d65dd3bcbfda3737a8c509b02d1eab763ce39f18cfe96423df7ee544d6c36191ec17f59ade75bc99d358@[2800:110:44:6300::aad2:2db3]:30301", "enode://7ec4dd9d5e1a2b29d6b60aa9f95677c0c3a5f9306e73d65dd3bcbfda3737a8c509b02d1eab763ce39f18cfe96423df7ee544d6c36191ec17f59ade75bc99d358@170.210.45.179:30301", "enode://82b66b13d7addcf9ffe1e4e972a105f6ccf50557161c4a0978a5d9ce595ababde609ea8a49897ae89b1d41e90551cb2e9241363238593e950ca68bd5af7c24d6@200.16.28.28:30301", "enode://59ae768ecdee632e0daceccb6f71b215392eba89230d626573f2fb4e9c0786c9a661027ab7343820ca63d96fe48ffd81ed1bf6e4d512f0ba50ec072c9efd9e4e@200.108.146.100:30301"]
+BootstrapNodesV5 = ["enode://7ec4dd9d5e1a2b29d6b60aa9f95677c0c3a5f9306e73d65dd3bcbfda3737a8c509b02d1eab763ce39f18cfe96423df7ee544d6c36191ec17f59ade75bc99d358@[2800:110:44:6300::aad2:2db3]:30301", "enode://7ec4dd9d5e1a2b29d6b60aa9f95677c0c3a5f9306e73d65dd3bcbfda3737a8c509b02d1eab763ce39f18cfe96423df7ee544d6c36191ec17f59ade75bc99d358@170.210.45.179:30301", "enode://82b66b13d7addcf9ffe1e4e972a105f6ccf50557161c4a0978a5d9ce595ababde609ea8a49897ae89b1d41e90551cb2e9241363238593e950ca68bd5af7c24d6@200.16.28.28:30301", "enode://59ae768ecdee632e0daceccb6f71b215392eba89230d626573f2fb4e9c0786c9a661027ab7343820ca63d96fe48ffd81ed1bf6e4d512f0ba50ec072c9efd9e4e@200.108.146.100:30301"]
+StaticNodes = []
+TrustedNodes = []
+ListenAddr = ":30303"
+EnableMsgEvents = false
+
+[Node.HTTPTimeouts]
+ReadTimeout = 30000000000
+WriteTimeout = 30000000000
+IdleTimeout = 120000000000
+
+[Dashboard]
+Host = "localhost"
+Port = 8080
+Refresh = 5000000000
diff --git a/test2network/config.toml b/test2network/config.toml
new file mode 100644
index 0000000..e31ed59
--- /dev/null
+++ b/test2network/config.toml
@@ -0,0 +1,87 @@
+[Eth]
+NetworkId = 55555000000
+SyncMode = "full"
+NoPruning = true
+NoPrefetch = false
+LightPeers = 100
+UltraLightFraction = 75
+DatabaseCache = 2048
+DatabaseFreezer = ""
+TrieCleanCache = 1024
+TrieDirtyCache = 1024
+TrieTimeout = 3600000000000
+EnablePreimageRecording = false
+EWASMInterpreter = ""
+EVMInterpreter = ""
+
+[Eth.Miner]
+GasFloor = 8000000
+GasCeil = 8000000
+GasPrice = 1000000000
+Recommit = 3000000000
+Noverify = false
+
+[Eth.Ethash]
+CacheDir = "ethash"
+CachesInMem = 2
+CachesOnDisk = 3
+DatasetDir = "/home/bfa/.ethash"
+DatasetsInMem = 1
+DatasetsOnDisk = 2
+PowMode = 0
+
+[Eth.TxPool]
+Locals = []
+NoLocals = true
+Journal = "transactions.rlp"
+Rejournal = 3600000000000
+PriceLimit = 1
+PriceBump = 10
+AccountSlots = 16
+GlobalSlots = 4096
+AccountQueue = 64
+GlobalQueue = 1024
+Lifetime = 10800000000000
+
+[Eth.GPO]
+Blocks = 20
+Percentile = 60
+
+[Shh]
+MaxMessageSize = 1048576
+MinimumAcceptedPOW = 2e-01
+RestrictConnectionBetweenLightClients = true
+
+[Node]
+DataDir = "/home/bfa/bfa/test2network/node"
+HTTPHost = "127.0.0.1"
+HTTPCors = ["*"]
+omitempty = ""
+IPCPath = "geth.ipc"
+HTTPPort = 8545
+HTTPVirtualHosts = ["localhost"]
+HTTPModules = ["net", "web3", "eth", "shh", "clique", "admin", "miner", "personal"]
+WSPort = 8546
+WSModules = ["net", "web3", "eth", "shh"]
+GraphQLPort = 8547
+GraphQLVirtualHosts = ["localhost"]
+
+[Node.P2P]
+MaxPeers = 50
+NoDiscovery = false
+BootstrapNodes = ["enode://7ec4dd9d5e1a2b29d6b60aa9f95677c0c3a5f9306e73d65dd3bcbfda3737a8c509b02d1eab763ce39f18cfe96423df7ee544d6c36191ec17f59ade75bc99d358@[2800:110:44:6300::aad2:2db3]:30301", "enode://7ec4dd9d5e1a2b29d6b60aa9f95677c0c3a5f9306e73d65dd3bcbfda3737a8c509b02d1eab763ce39f18cfe96423df7ee544d6c36191ec17f59ade75bc99d358@170.210.45.179:30301", "enode://82b66b13d7addcf9ffe1e4e972a105f6ccf50557161c4a0978a5d9ce595ababde609ea8a49897ae89b1d41e90551cb2e9241363238593e950ca68bd5af7c24d6@200.16.28.28:30301", "enode://59ae768ecdee632e0daceccb6f71b215392eba89230d626573f2fb4e9c0786c9a661027ab7343820ca63d96fe48ffd81ed1bf6e4d512f0ba50ec072c9efd9e4e@200.108.146.100:30301"]
+BootstrapNodesV5 = ["enode://7ec4dd9d5e1a2b29d6b60aa9f95677c0c3a5f9306e73d65dd3bcbfda3737a8c509b02d1eab763ce39f18cfe96423df7ee544d6c36191ec17f59ade75bc99d358@[2800:110:44:6300::aad2:2db3]:30301", "enode://7ec4dd9d5e1a2b29d6b60aa9f95677c0c3a5f9306e73d65dd3bcbfda3737a8c509b02d1eab763ce39f18cfe96423df7ee544d6c36191ec17f59ade75bc99d358@170.210.45.179:30301", "enode://82b66b13d7addcf9ffe1e4e972a105f6ccf50557161c4a0978a5d9ce595ababde609ea8a49897ae89b1d41e90551cb2e9241363238593e950ca68bd5af7c24d6@200.16.28.28:30301", "enode://59ae768ecdee632e0daceccb6f71b215392eba89230d626573f2fb4e9c0786c9a661027ab7343820ca63d96fe48ffd81ed1bf6e4d512f0ba50ec072c9efd9e4e@200.108.146.100:30301"]
+StaticNodes = []
+TrustedNodes = []
+ListenAddr = ":30303"
+EnableMsgEvents = false
+
+[Node.HTTPTimeouts]
+ReadTimeout = 30000000000
+WriteTimeout = 30000000000
+IdleTimeout = 120000000000
+
+[Dashboard]
+Host = "localhost"
+Port = 8080
+Refresh = 5000000000
-- 
GitLab