diff --git a/.github/workflows/linuxpackage.yml b/.github/workflows/linuxpackage.yml index f41bc311ad2a62f6d46222fa38fc7688a7c2a5bc..c6ff23f770c3f04a0a66e9988d85ee70f4309484 100644 --- a/.github/workflows/linuxpackage.yml +++ b/.github/workflows/linuxpackage.yml @@ -31,7 +31,7 @@ jobs: gem install --no-document fpm fpm --version - make bor + make all cat > bor.service <<- "EOF" [Unit] @@ -39,7 +39,8 @@ jobs: [Service] WorkingDirectory=/etc/bor/ EnvironmentFile=/etc/bor/metadata - ExecStart=/bin/bash -c "/usr/bin/bor --datadir /etc/bor/dataDir --port '30303' --rpc --rpcaddr '0.0.0.0' --rpcvhosts '*' --rpccorsdomain '*' --rpcport '8545' --ipcpath /etc/bor/bor.ipc --rpcapi 'db,eth,net,web3,txpool,bor' --networkid ${NETWORK_ID} --miner.gaslimit '20000000' --txpool.nolocals --txpool.accountslots '128' --txpool.globalslots '20000' --txpool.lifetime '0h16m0s' --keystore /etc/bor/dataDir/keystore --unlock ${VALIDATOR_ADDRESS} --password /etc/bor/dataDir/password.txt --allow-insecure-unlock --maxpeers 150 --mine" + ExecStartPre=/bin/chmod +x /etc/bor/start.sh + ExecStart=/bin/bash /etc/bor/start.sh ${NETWORK_ID} ${VALIDATOR_ADDRESS} ${NODE_TYPE} Type=simple User=root EOF @@ -47,18 +48,61 @@ jobs: cat > after_install.sh <<- "EOF" #!/bin/bash touch /etc/bor/metadata + touch /etc/bor/start.sh EOF cat > metadata <<- "EOF" NETWORK_ID= VALIDATOR_ADDRESS= + NODE_TYPE=sentry + EOF + + cat > start.sh <<- "EOF" + #!/usr/bin/env sh + + NETWORK_ID=$1 + VALIDATOR_ADDRESS=$2 + NODE_TYPE=$3 + + DATA_DIR=/etc/bor/dataDir + + args="/usr/bin/bor --datadir $DATA_DIR --port '30303' --rpc --rpcaddr '0.0.0.0' --rpcvhosts '*' --rpccorsdomain '*' --rpcport '8545' --ipcpath /etc/bor/bor.ipc --rpcapi 'db,eth,net,web3,txpool,bor' --networkid $NETWORK_ID --miner.gaslimit '200000000' --miner.gastarget '20000000' --txpool.nolocals --txpool.accountslots '128' --txpool.globalslots '20000' --txpool.lifetime '0h16m0s' " + + if [[ $NODE_TYPE == 'validator' ]]; then + args+="--keystore $DATA_DIR/keystore \ + --unlock $VALIDATOR_ADDRESS \ + --password $DATA_DIR/password.txt \ + --allow-insecure-unlock \ + --nodiscover --maxpeers 1 \ + --mine + " + fi + + if [[ $NODE_TYPE == 'sentry' ]]; then + args+="--maxpeers 200 + " + fi + + if [[ $NODE_TYPE == 'validator-without-sentry' ]]; then + args+="--keystore $DATA_DIR/keystore \ + --unlock $VALIDATOR_ADDRESS \ + --password $DATA_DIR/password.txt \ + --allow-insecure-unlock \ + --maxpeers 200 \ + --mine + " + fi + + eval $args EOF fpm -s dir -t deb --deb-user root --deb-group root -n matic-bor -v ${{ env.RELEASE_VERSION }} \ --after-install after_install.sh \ bor.service=/etc/systemd/system/ \ build/bin/bor=/usr/bin/ \ - metadata=/etc/bor/ + build/bin/bootnode=/usr/bin/ \ + metadata=/etc/bor/ \ + start.sh=/etc/bor/ mkdir packages-v${{ env.RELEASE_VERSION }}