add scripts, genesis file, k8s deployment scaffold

This commit is contained in:
bt3gl 2022-02-25 08:12:13 -08:00 committed by GitHub
parent cbfceeb5d4
commit 8e422b2e5d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 311 additions and 0 deletions

View file

@ -0,0 +1,17 @@
#!/usr/bin/env bash
set -ex
PORT=${PORT:-18545}
echo "Building local blockchain container"
docker build -t <docker container alias> .
echo "Starting blockchain network on port $PORT (use rpc URL http://localhost:$PORT)"
docker run -it --rm \
-v $(pwd)/genesis.json:/genesis.json \
-v $(pwd)/data:/data \
-p $PORT:8545 \
<docker container alias>

View file

@ -0,0 +1,69 @@
#!/usr/bin/env bash
set -ex
GETH_DATADIR=${GETH_DATADIR:-"/data"}
geth_init() {
ls -al "$GETH_DATADIR"
if [[ -d "$GETH_DATADIR/keystore" ]]; then
echo "Chain already initialized"
return 0
fi
echo "Initializing using Genesis"
geth init --datadir "$GETH_DATADIR" /genesis.json
}
geth_custom_start() {
echo "Starting node with custom arguments $@"
exec geth $@
}
geth_normal_start() {
echo "Starting node"
local identity=${GETH_IDENTITY:-"<docker container alias>"}
local http_corsdomain=${GETH_HTTP_CORSDOMAIN:-"http://localhost:3000"}
local http_vhosts=${GETH_HTTP_VHOSTS:-"localhost"}
local networkid=${GETH_NETWORKID:-"137"}
local enable_mining=${ENABLING_MINING:-"YES"}
local mining_args=""
if [[ "$enable_mining" == "YES" ]]; then
local miner_etherbase=${GETH_MINER_ETHERBASE:-"<add etherbase>"}
local miner_threads=${GETH_MINER_THREADS:-1}
mining_args="$mining_args --mine"
mining_args="$mining_args --miner.threads $miner_threads"
mining_args="$mining_args --miner.etherbase $miner_etherbase"
fi
exec geth \
--identity "$identity" \
--nodiscover \
--http \
--http.addr 0.0.0.0 \
--http.corsdomain "$http_corsdomain" \
--http.vhosts "$http_vhosts" \
--networkid "$networkid" \
--datadir "$GETH_DATADIR" \
$mining_args \
"$@"
}
main() {
local should_initialize=${SHOULD_INITIALIZE:-"YES"}
local custom_start=${CUSTOM_START:-"NO"}
if [[ "$should_initialize" == "YES" ]]; then
geth_init
fi
if [[ "$custom_start" == "YES" ]]; then
geth_custom_start "$@"
else
geth_normal_start "$@"
fi
}
main "$@"

View file

@ -0,0 +1,8 @@
FROM ethereum/client-go:stable
RUN apk add --no-cache bash
COPY entrypoint.sh /entrypoint.sh
COPY genesis.json /genesis.json
ENTRYPOINT /entrypoint.sh

View file

@ -0,0 +1,29 @@
{
"config": {
"chainId": 137,
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0
},
"difficulty": "0x400",
"gasLimit":"0x2100000",
"nonce": "0x000000000fab0042",
"alloc": {
"3282791d6fd713f1e94f4bfd565eaa78b3a0599d": {
"balance": "1337000000000000000000"
},
"64D2ea7000e831E03e6B930AC348fD90D4ACE2B8": {
"balance": "1337000000000000000000"
},
"2ee8D80de1c389f1254e94bc44D2d1Bc391eD402": {
"balance": "1337000000000000000000"
},
"Ac03BB73b6a9e108530AFf4Df5077c2B3D481e5A": {
"balance": "1337000000000000000000"
}
}
}