Skip to content

Commit 6c22202

Browse files
authored
Merge pull request #1316 from ainblockchain/feature/platfowner/feature
Add incremental blockchain deploy scripts for onprem machines
2 parents b71b22a + 525839b commit 6c22202

12 files changed

+785
-61
lines changed

client/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ app.get('/metrics', async (req, res, next) => {
9797
.end();
9898
});
9999

100-
// Used in wait_until_node_sync_gcp.sh
100+
// Used in wait_until_node_sync.sh
101101
app.get('/last_block_number', (req, res, next) => {
102102
const beginTime = Date.now();
103103
const result = node.bc.lastBlockNumber();

deploy_blockchain_genesis_gcp.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ function inject_account() {
225225

226226
# deploy files
227227
FILES_FOR_TRACKER="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ logger/ tracker-server/ traffic/ package.json setup_blockchain_ubuntu_gcp.sh start_tracker_genesis_gcp.sh start_tracker_incremental_gcp.sh"
228-
FILES_FOR_NODE="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ event-handler/ json_rpc/ logger/ node/ p2p/ tools/ traffic/ tx-pool/ package.json setup_blockchain_ubuntu_gcp.sh start_node_genesis_gcp.sh start_node_incremental_gcp.sh wait_until_node_sync_gcp.sh stop_local_blockchain.sh"
228+
FILES_FOR_NODE="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ event-handler/ json_rpc/ logger/ node/ p2p/ tools/ traffic/ tx-pool/ package.json setup_blockchain_ubuntu_gcp.sh start_node_genesis_gcp.sh start_node_incremental_gcp.sh wait_until_node_sync.sh stop_local_blockchain.sh"
229229

230230
TRACKER_TARGET_ADDR="${GCP_USER}@${SEASON}-tracker-taiwan"
231231
NODE_0_TARGET_ADDR="${GCP_USER}@${SEASON}-node-0-taiwan"
@@ -446,9 +446,8 @@ if [[ $begin_index -le $PARENT_NODE_INDEX_END ]] && [[ $PARENT_NODE_INDEX_END -g
446446
printf "REST_FUNC_OPTION=$REST_FUNC_OPTION\n"
447447
printf "EVENT_HANDLER_OPTION=$EVENT_HANDLER_OPTION\n"
448448

449-
printf "\n"
450449
START_NODE_CMD="gcloud compute ssh ${!NODE_TARGET_ADDR} --command '$START_NODE_CMD_BASE $SEASON $GCP_USER 0 $node_index $KEEP_CODE_OPTION $KEEP_DATA_OPTION $SYNC_MODE_OPTION $CHOWN_DATA_OPTION $ACCOUNT_INJECTION_OPTION $JSON_RPC_OPTION $UPDATE_FRONT_DB_OPTION $REST_FUNC_OPTION $EVENT_HANDLER_OPTION' --project $PROJECT_ID --zone ${!NODE_ZONE}"
451-
printf "START_NODE_CMD=$START_NODE_CMD\n"
450+
printf "\nSTART_NODE_CMD=$START_NODE_CMD\n"
452451
eval $START_NODE_CMD
453452
sleep 5
454453
inject_account "$node_index"

deploy_blockchain_genesis_onprem.sh

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ if [[ $# -lt 4 ]] || [[ $# -gt 10 ]]; then
66
printf "Example: bash deploy_blockchain_genesis_onprem.sh dev 0 0 0 --keystore --keep-code\n"
77
printf "Example: bash deploy_blockchain_genesis_onprem.sh dev 0 -1 -1 --setup --keystore --no-keep-code\n"
88
printf "Example: bash deploy_blockchain_genesis_onprem.sh dev 0 0 0 --setup --keystore --no-keep-code\n"
9-
printf "Note: <Parent Node Index Begin> = -1 is for tracker\n"
9+
#printf "Note: <Parent Node Index Begin> = -1 is for tracker\n"
1010
printf "Note: <Parent Node Index End> is inclusive\n"
1111
printf "\n"
1212
exit
@@ -29,8 +29,6 @@ if [[ ! $2 =~ $number_re ]] ; then
2929
printf "Invalid <# of Shards> argument: $2\n"
3030
exit
3131
fi
32-
NUM_SHARDS=$2
33-
printf "NUM_SHARDS=$NUM_SHARDS\n"
3432
PARENT_NODE_INDEX_BEGIN=$3
3533
printf "PARENT_NODE_INDEX_BEGIN=$PARENT_NODE_INDEX_BEGIN\n"
3634
PARENT_NODE_INDEX_END=$4
@@ -221,7 +219,7 @@ function inject_account() {
221219

222220
# deploy files
223221
#FILES_FOR_TRACKER="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ logger/ tracker-server/ traffic/ package.json setup_blockchain_ubuntu_onprem.sh start_tracker_genesis_gcp.sh start_tracker_incremental_gcp.sh"
224-
FILES_FOR_NODE="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ event-handler/ json_rpc/ logger/ node/ p2p/ tools/ traffic/ tx-pool/ package.json setup_blockchain_ubuntu_onprem.sh start_node_genesis_onprem.sh start_node_incremental_gcp.sh wait_until_node_sync_gcp.sh stop_local_blockchain.sh"
222+
FILES_FOR_NODE="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ event-handler/ json_rpc/ logger/ node/ p2p/ tools/ traffic/ tx-pool/ package.json setup_blockchain_ubuntu_onprem.sh start_node_genesis_onprem.sh start_node_incremental_onprem.sh wait_until_node_sync.sh stop_local_blockchain.sh"
225223

226224
printf "###############################################################################\n"
227225
printf "# Deploying parent blockchain #\n"
@@ -244,11 +242,12 @@ if [[ $KEEP_CODE_OPTION = "--no-keep-code" ]]; then
244242
for node_index in `seq $(( $begin_index )) $(( $PARENT_NODE_INDEX_END ))`; do
245243
NODE_TARGET_ADDR="${ONPREM_USER}@${NODE_IP_LIST[${node_index}]}"
246244
NODE_LOGIN_PW="${NODE_PW_LIST[${node_index}]}"
247-
printf "\n"
248-
printf "NODE_TARGET_ADDR=${NODE_TARGET_ADDR}\n"
249245

250-
printf "\n* >> Deploying files for parent node $node_index (${NODE_TARGET_ADDR}) *********************************************************\n\n"
251-
sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) scp -rv $FILES_FOR_NODE ${NODE_TARGET_ADDR}:~/ain-blockchain/
246+
printf "\n\n* >> Deploying files for parent node $node_index (${NODE_TARGET_ADDR}) *********************************************************\n\n"
247+
printf "FILES_FOR_NODE=${FILES_FOR_NODE}\n\n"
248+
249+
echo ${NODE_LOGIN_PW} | sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ssh $NODE_TARGET_ADDR "sudo -S rm -rf ~/ain-blockchain; mkdir ~/ain-blockchain; chmod -R 777 ~/ain-blockchain"
250+
sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) scp -r $FILES_FOR_NODE ${NODE_TARGET_ADDR}:~/ain-blockchain/
252251
done
253252
fi
254253
fi
@@ -269,11 +268,10 @@ if [[ $SETUP_OPTION = "--setup" ]]; then
269268
for node_index in `seq $(( $begin_index )) $(( $PARENT_NODE_INDEX_END ))`; do
270269
NODE_TARGET_ADDR="${ONPREM_USER}@${NODE_IP_LIST[${node_index}]}"
271270
NODE_LOGIN_PW="${NODE_PW_LIST[${node_index}]}"
272-
printf "\n"
273-
printf "NODE_TARGET_ADDR=${NODE_TARGET_ADDR}\n"
274271

275-
printf "\n* >> Setting up parent node $node_index (${NODE_TARGET_ADDR}) *********************************************************\n\n"
276-
echo ${NODE_LOGIN_PW} | sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ssh -v ${NODE_TARGET_ADDR} "cd ./ain-blockchain; . setup_blockchain_ubuntu_onprem.sh"
272+
printf "\n\n* >> Setting up parent node $node_index (${NODE_TARGET_ADDR}) *********************************************************\n\n"
273+
274+
echo ${NODE_LOGIN_PW} | sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ssh ${NODE_TARGET_ADDR} "cd ./ain-blockchain; . setup_blockchain_ubuntu_onprem.sh"
277275
done
278276
fi
279277
fi
@@ -294,20 +292,19 @@ if [[ $KEEP_CODE_OPTION = "--no-keep-code" ]]; then
294292
for node_index in `seq $(( $begin_index )) $(( $PARENT_NODE_INDEX_END ))`; do
295293
NODE_TARGET_ADDR="${ONPREM_USER}@${NODE_IP_LIST[${node_index}]}"
296294
NODE_LOGIN_PW="${NODE_PW_LIST[${node_index}]}"
297-
printf "\n"
298-
printf "NODE_TARGET_ADDR=${NODE_TARGET_ADDR}\n"
299295

300-
printf "\n* >> Installing node modules for parent node $node_index (${NODE_TARGET_ADDR}) *********************************************************\n\n"
301-
sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ssh -v ${NODE_TARGET_ADDR} "cd ./ain-blockchain; yarn install --ignore-engines"
296+
printf "\n\n* >> Installing node modules for parent node $node_index (${NODE_TARGET_ADDR}) *********************************************************\n\n"
297+
298+
sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ssh ${NODE_TARGET_ADDR} "cd ./ain-blockchain; yarn install --ignore-engines"
302299
done
303300
fi
304301
fi
305302

306303
if [[ $KILL_OPTION = "--skip-kill" ]]; then
307-
printf "\nSkipping process kill...\n"
304+
printf "\n\nSkipping process kill...\n"
308305
else
309306
# kill any processes still alive
310-
printf "\nKilling tracker / blockchain node jobs...\n"
307+
printf "\n\nKilling tracker / blockchain node jobs...\n"
311308

312309
# # Tracker server is killed with PARENT_NODE_INDEX_BEGIN = -1
313310
# if [[ $PARENT_NODE_INDEX_BEGIN = -1 ]]; then
@@ -323,11 +320,10 @@ else
323320
for node_index in `seq $(( $begin_index )) $(( $PARENT_NODE_INDEX_END ))`; do
324321
NODE_TARGET_ADDR="${ONPREM_USER}@${NODE_IP_LIST[${node_index}]}"
325322
NODE_LOGIN_PW="${NODE_PW_LIST[${node_index}]}"
326-
printf "\n"
327-
printf "NODE_TARGET_ADDR=${NODE_TARGET_ADDR}\n"
328323

329324
printf "\n* >> Killing node $node_index job (${NODE_TARGET_ADDR}) *********************************************************\n\n"
330-
echo ${NODE_LOGIN_PW} | sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ssh -v ${NODE_TARGET_ADDR} "sudo -S killall node"
325+
326+
echo ${NODE_LOGIN_PW} | sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ssh ${NODE_TARGET_ADDR} "sudo -S pkill -f client/${SEASON}-ain-blockchain-index.js"
331327
done
332328
fi
333329
fi
@@ -337,7 +333,7 @@ if [[ $KILL_OPTION = "--kill-only" ]]; then
337333
exit
338334
fi
339335

340-
printf "\nStarting blockchain servers...\n\n"
336+
printf "\n\nStarting blockchain servers...\n\n"
341337
if [[ $KEEP_CODE_OPTION = "--no-keep-code" ]]; then
342338
GO_TO_PROJECT_ROOT_CMD="cd ./ain-blockchain"
343339
else
@@ -370,19 +366,17 @@ if [[ $begin_index -le $PARENT_NODE_INDEX_END ]] && [[ $PARENT_NODE_INDEX_END -g
370366
for node_index in `seq $(( $begin_index )) $(( $PARENT_NODE_INDEX_END ))`; do
371367
NODE_TARGET_ADDR="${ONPREM_USER}@${NODE_IP_LIST[${node_index}]}"
372368
NODE_LOGIN_PW="${NODE_PW_LIST[${node_index}]}"
373-
printf "\n"
374-
printf "NODE_TARGET_ADDR=${NODE_TARGET_ADDR}\n"
375369

376370
if [[ $KEEP_DATA_OPTION = "--no-keep-data" ]]; then
377-
printf "\n* >> Removing old data for parent node $node_index (${NODE_TARGET_ADDR}) *********************************************************\n\n"
371+
printf "\n\n* >> Removing old data for parent node $node_index (${NODE_TARGET_ADDR}) *********************************************************\n\n"
378372

379373
CHAINS_DIR=/home/${SEASON}/ain_blockchain_data/chains
380374
SNAPSHOTS_DIR=/home/${SEASON}/ain_blockchain_data/snapshots
381375
LOGS_DIR=/home/${SEASON}/ain_blockchain_data/logs
382-
echo ${NODE_LOGIN_PW} | sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ssh -v ${NODE_TARGET_ADDR} "sudo -S rm -rf $CHAINS_DIR $SNAPSHOTS_DIR $LOGS_DIR"
376+
echo ${NODE_LOGIN_PW} | sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ssh ${NODE_TARGET_ADDR} "sudo -S rm -rf $CHAINS_DIR $SNAPSHOTS_DIR $LOGS_DIR"
383377
fi
384378

385-
printf "\n* >> Starting parent node $node_index (${NODE_TARGET_ADDR}) *********************************************************\n\n"
379+
printf "\n\n* >> Starting parent node $node_index (${NODE_TARGET_ADDR}) *********************************************************\n\n"
386380

387381
if [[ $node_index -ge $JSON_RPC_NODE_INDEX_GE ]] && [[ $node_index -le $JSON_RPC_NODE_INDEX_LE ]]; then
388382
JSON_RPC_OPTION="--json-rpc"
@@ -411,9 +405,8 @@ if [[ $begin_index -le $PARENT_NODE_INDEX_END ]] && [[ $PARENT_NODE_INDEX_END -g
411405
printf "REST_FUNC_OPTION=$REST_FUNC_OPTION\n"
412406
printf "EVENT_HANDLER_OPTION=$EVENT_HANDLER_OPTION\n"
413407

414-
printf "\n"
415-
START_NODE_CMD="ssh -v ${NODE_TARGET_ADDR} '$START_NODE_CMD_BASE $SEASON $ONPREM_USER 0 $node_index $KEEP_CODE_OPTION $KEEP_DATA_OPTION $SYNC_MODE_OPTION $CHOWN_DATA_OPTION $ACCOUNT_INJECTION_OPTION $JSON_RPC_OPTION $UPDATE_FRONT_DB_OPTION $REST_FUNC_OPTION $EVENT_HANDLER_OPTION'"
416-
printf "START_NODE_CMD=$START_NODE_CMD\n"
408+
START_NODE_CMD="ssh ${NODE_TARGET_ADDR} '$START_NODE_CMD_BASE $SEASON $ONPREM_USER 0 $node_index $KEEP_CODE_OPTION $KEEP_DATA_OPTION $SYNC_MODE_OPTION $CHOWN_DATA_OPTION $ACCOUNT_INJECTION_OPTION $JSON_RPC_OPTION $UPDATE_FRONT_DB_OPTION $REST_FUNC_OPTION $EVENT_HANDLER_OPTION'"
409+
printf "\nSTART_NODE_CMD=$START_NODE_CMD\n"
417410
eval "echo ${NODE_LOGIN_PW} | sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ${START_NODE_CMD}"
418411
sleep 5
419412
inject_account "$node_index"

deploy_blockchain_incremental_gcp.sh

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ elif [[ $ACCOUNT_INJECTION_OPTION = "--mnemonic" ]]; then
172172
fi
173173

174174
FILES_FOR_TRACKER="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ logger/ tracker-server/ traffic/ package.json setup_blockchain_ubuntu_gcp.sh start_tracker_genesis_gcp.sh start_tracker_incremental_gcp.sh"
175-
FILES_FOR_NODE="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ event-handler/ json_rpc/ logger/ node/ p2p/ tools/ traffic/ tx-pool/ package.json setup_blockchain_ubuntu_gcp.sh start_node_genesis_gcp.sh start_node_incremental_gcp.sh wait_until_node_sync_gcp.sh stop_local_blockchain.sh"
175+
FILES_FOR_NODE="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ event-handler/ json_rpc/ logger/ node/ p2p/ tools/ traffic/ tx-pool/ package.json setup_blockchain_ubuntu_gcp.sh start_node_genesis_gcp.sh start_node_incremental_gcp.sh wait_until_node_sync.sh stop_local_blockchain.sh"
176176

177177
NUM_SHARD_NODES=3
178178

@@ -326,7 +326,7 @@ function deploy_node() {
326326

327327
# 5. Wait until node is synced
328328
printf "\n\n<<< Waiting until node $node_index is synced >>>\n\n"
329-
WAIT_CMD="gcloud compute ssh $node_target_addr --command 'cd \$(find /home/ain-blockchain* -maxdepth 0 -type d); . wait_until_node_sync_gcp.sh' --project $PROJECT_ID --zone $node_zone"
329+
WAIT_CMD="gcloud compute ssh $node_target_addr --command 'cd \$(find /home/ain-blockchain* -maxdepth 0 -type d); . wait_until_node_sync.sh' --project $PROJECT_ID --zone $node_zone"
330330
printf "WAIT_CMD=$WAIT_CMD\n\n"
331331
eval $WAIT_CMD
332332
}
@@ -355,18 +355,8 @@ if [[ $KEEP_CODE_OPTION = "--no-keep-code" ]]; then
355355
else
356356
GO_TO_PROJECT_ROOT_CMD="cd \$(find /home/ain-blockchain* -maxdepth 0 -type d)"
357357
fi
358-
if [[ $KEEP_DATA_OPTION = "--no-keep-data" ]]; then
359-
# restart after removing chains, snapshots, and log files (but keep the keys)
360-
CHAINS_DIR=/home/ain_blockchain_data/chains
361-
SNAPSHOTS_DIR=/home/ain_blockchain_data/snapshots
362-
LOGS_DIR=/home/ain_blockchain_data/logs
363-
START_TRACKER_CMD_BASE="sudo rm -rf /home/ain_blockchain_data/ && $GO_TO_PROJECT_ROOT_CMD && . start_tracker_incremental_gcp.sh"
364-
START_NODE_CMD_BASE="sudo rm -rf $CHAINS_DIR $SNAPSHOTS_DIR $LOGS_DIR && $GO_TO_PROJECT_ROOT_CMD && . start_node_incremental_gcp.sh"
365-
else
366-
# restart with existing chains, snapshots, and log files
367-
START_TRACKER_CMD_BASE="$GO_TO_PROJECT_ROOT_CMD && . start_tracker_incremental_gcp.sh"
368-
START_NODE_CMD_BASE="$GO_TO_PROJECT_ROOT_CMD && . start_node_incremental_gcp.sh"
369-
fi
358+
START_TRACKER_CMD_BASE="$GO_TO_PROJECT_ROOT_CMD && . start_tracker_incremental_gcp.sh"
359+
START_NODE_CMD_BASE="$GO_TO_PROJECT_ROOT_CMD && . start_node_incremental_gcp.sh"
370360

371361
# Tracker server is deployed with PARENT_NODE_INDEX_BEGIN = -1
372362
if [[ $PARENT_NODE_INDEX_BEGIN = -1 ]]; then

0 commit comments

Comments
 (0)