Skip to content

Commit 7b41b72

Browse files
authored
Merge pull request #1295 from ainblockchain/release/v1.4.0
Release/v1.4.0
2 parents 8723666 + fbc3226 commit 7b41b72

38 files changed

+1248
-125
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ bash deploy_blockchain_incremental_gcp.sh [dev|staging|sandbox|exp|spring|summer
5353
```
5454
- Set up Ubuntu machine (if it's on a new VM)
5555
```
56-
bash setup_blockchain_ubuntu.sh
56+
bash setup_blockchain_ubuntu_gcp.sh
5757
```
5858
- Start tracker server job
5959
```
@@ -136,7 +136,7 @@ bash deploy_blockchain_incremental_gcp.sh [dev|staging|sandbox|exp|spring|summer
136136
```
137137
- Set up Ubuntu machine (if it's on a new VM)
138138
```
139-
bash setup_blockchain_ubuntu.sh
139+
bash setup_blockchain_ubuntu_gcp.sh
140140
```
141141
- Start Node server job (set shard index to 0 if you're running a root chain node)
142142
```

blockchain-configs/afan-shard/node_params.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"ENABLE_REST_FUNCTION_CALL": false,
2929
"ENABLE_STATUS_REPORT_TO_TRACKER": true,
3030
"ENABLE_TX_SIG_VERIF_WORKAROUND": false,
31+
"EVENT_HANDLER_CHANNEL_IDLE_CHECK_INTERVAL_MS": 10000,
32+
"EVENT_HANDLER_CHANNEL_IDLE_TIME_LIMIT_SECS": 600,
33+
"EVENT_HANDLER_CHANNEL_LIFE_TIME_LIMIT_SECS": 3600,
3134
"EVENT_HANDLER_FILTER_DELETION_TIMEOUT_MS": 15000,
3235
"EVENT_HANDLER_HEARTBEAT_INTERVAL_MS": 15000,
3336
"EVENT_HANDLER_PORT": 5100,
@@ -43,8 +46,8 @@
4346
"MAX_FINALIZED_BLOCK_INFO_ON_MEM": 1000,
4447
"MAX_JSON_RPC_API_READ_RATE_LIMIT": 10,
4548
"MAX_JSON_RPC_API_WRITE_RATE_LIMIT": 1,
46-
"MAX_NUM_EVENT_CHANNELS": 10,
47-
"MAX_NUM_EVENT_FILTERS": 20,
49+
"MAX_NUM_EVENT_CHANNELS": 20,
50+
"MAX_NUM_EVENT_FILTERS": 40,
4851
"MAX_NUM_EVENT_FILTERS_PER_CHANNEL": 5,
4952
"MAX_NUM_INBOUND_CONNECTION": 3,
5053
"MAX_NUM_SNAPSHOTS": 10,

blockchain-configs/base/node_params.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"ENABLE_REST_FUNCTION_CALL": false,
2929
"ENABLE_STATUS_REPORT_TO_TRACKER": true,
3030
"ENABLE_TX_SIG_VERIF_WORKAROUND": false,
31+
"EVENT_HANDLER_CHANNEL_IDLE_CHECK_INTERVAL_MS": 10000,
32+
"EVENT_HANDLER_CHANNEL_IDLE_TIME_LIMIT_SECS": 600,
33+
"EVENT_HANDLER_CHANNEL_LIFE_TIME_LIMIT_SECS": 3600,
3134
"EVENT_HANDLER_FILTER_DELETION_TIMEOUT_MS": 100000,
3235
"EVENT_HANDLER_HEARTBEAT_INTERVAL_MS": 15000,
3336
"EVENT_HANDLER_PORT": 5100,
@@ -43,8 +46,8 @@
4346
"MAX_FINALIZED_BLOCK_INFO_ON_MEM": 1000,
4447
"MAX_JSON_RPC_API_READ_RATE_LIMIT": 10,
4548
"MAX_JSON_RPC_API_WRITE_RATE_LIMIT": 1,
46-
"MAX_NUM_EVENT_CHANNELS": 10,
47-
"MAX_NUM_EVENT_FILTERS": 20,
49+
"MAX_NUM_EVENT_CHANNELS": 20,
50+
"MAX_NUM_EVENT_FILTERS": 40,
4851
"MAX_NUM_EVENT_FILTERS_PER_CHANNEL": 5,
4952
"MAX_NUM_INBOUND_CONNECTION": 6,
5053
"MAX_NUM_SNAPSHOTS": 10,

blockchain-configs/he-shard/node_params.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"ENABLE_REST_FUNCTION_CALL": false,
2929
"ENABLE_STATUS_REPORT_TO_TRACKER": true,
3030
"ENABLE_TX_SIG_VERIF_WORKAROUND": false,
31+
"EVENT_HANDLER_CHANNEL_IDLE_CHECK_INTERVAL_MS": 10000,
32+
"EVENT_HANDLER_CHANNEL_IDLE_TIME_LIMIT_SECS": 600,
33+
"EVENT_HANDLER_CHANNEL_LIFE_TIME_LIMIT_SECS": 3600,
3134
"EVENT_HANDLER_FILTER_DELETION_TIMEOUT_MS": 15000,
3235
"EVENT_HANDLER_HEARTBEAT_INTERVAL_MS": 15000,
3336
"EVENT_HANDLER_PORT": 5100,
@@ -43,8 +46,8 @@
4346
"MAX_FINALIZED_BLOCK_INFO_ON_MEM": 1000,
4447
"MAX_JSON_RPC_API_READ_RATE_LIMIT": 10,
4548
"MAX_JSON_RPC_API_WRITE_RATE_LIMIT": 1,
46-
"MAX_NUM_EVENT_CHANNELS": 10,
47-
"MAX_NUM_EVENT_FILTERS": 20,
49+
"MAX_NUM_EVENT_CHANNELS": 20,
50+
"MAX_NUM_EVENT_FILTERS": 40,
4851
"MAX_NUM_EVENT_FILTERS_PER_CHANNEL": 5,
4952
"MAX_NUM_INBOUND_CONNECTION": 6,
5053
"MAX_NUM_SNAPSHOTS": 10,

blockchain-configs/mainnet-prod/node_params.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
"ENABLE_REST_FUNCTION_CALL": false,
2828
"ENABLE_STATUS_REPORT_TO_TRACKER": true,
2929
"ENABLE_TX_SIG_VERIF_WORKAROUND": false,
30+
"EVENT_HANDLER_CHANNEL_IDLE_CHECK_INTERVAL_MS": 10000,
31+
"EVENT_HANDLER_CHANNEL_IDLE_TIME_LIMIT_SECS": 600,
32+
"EVENT_HANDLER_CHANNEL_LIFE_TIME_LIMIT_SECS": 3600,
3033
"EVENT_HANDLER_FILTER_DELETION_TIMEOUT_MS": 100000,
3134
"EVENT_HANDLER_HEARTBEAT_INTERVAL_MS": 15000,
3235
"EVENT_HANDLER_PORT": 5100,
@@ -42,8 +45,8 @@
4245
"MAX_FINALIZED_BLOCK_INFO_ON_MEM": 1000,
4346
"MAX_JSON_RPC_API_READ_RATE_LIMIT": 10,
4447
"MAX_JSON_RPC_API_WRITE_RATE_LIMIT": 1,
45-
"MAX_NUM_EVENT_CHANNELS": 10,
46-
"MAX_NUM_EVENT_FILTERS": 20,
48+
"MAX_NUM_EVENT_CHANNELS": 20,
49+
"MAX_NUM_EVENT_FILTERS": 40,
4750
"MAX_NUM_EVENT_FILTERS_PER_CHANNEL": 5,
4851
"MAX_NUM_INBOUND_CONNECTION": 6,
4952
"MAX_NUM_SNAPSHOTS": 10,

blockchain-configs/sim-shard/node_params.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"ENABLE_REST_FUNCTION_CALL": false,
2929
"ENABLE_STATUS_REPORT_TO_TRACKER": true,
3030
"ENABLE_TX_SIG_VERIF_WORKAROUND": false,
31+
"EVENT_HANDLER_CHANNEL_IDLE_CHECK_INTERVAL_MS": 10000,
32+
"EVENT_HANDLER_CHANNEL_IDLE_TIME_LIMIT_SECS": 600,
33+
"EVENT_HANDLER_CHANNEL_LIFE_TIME_LIMIT_SECS": 3600,
3134
"EVENT_HANDLER_FILTER_DELETION_TIMEOUT_MS": 100000,
3235
"EVENT_HANDLER_HEARTBEAT_INTERVAL_MS": 15000,
3336
"EVENT_HANDLER_PORT": 5100,
@@ -43,8 +46,8 @@
4346
"MAX_FINALIZED_BLOCK_INFO_ON_MEM": 1000,
4447
"MAX_JSON_RPC_API_READ_RATE_LIMIT": 10,
4548
"MAX_JSON_RPC_API_WRITE_RATE_LIMIT": 1,
46-
"MAX_NUM_EVENT_CHANNELS": 10,
47-
"MAX_NUM_EVENT_FILTERS": 20,
49+
"MAX_NUM_EVENT_CHANNELS": 20,
50+
"MAX_NUM_EVENT_FILTERS": 40,
4851
"MAX_NUM_EVENT_FILTERS_PER_CHANNEL": 5,
4952
"MAX_NUM_INBOUND_CONNECTION": 6,
5053
"MAX_NUM_SNAPSHOTS": 10,

blockchain-configs/testnet-dev/node_params.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"ENABLE_REST_FUNCTION_CALL": false,
2929
"ENABLE_STATUS_REPORT_TO_TRACKER": true,
3030
"ENABLE_TX_SIG_VERIF_WORKAROUND": false,
31+
"EVENT_HANDLER_CHANNEL_IDLE_CHECK_INTERVAL_MS": 10000,
32+
"EVENT_HANDLER_CHANNEL_IDLE_TIME_LIMIT_SECS": 600,
33+
"EVENT_HANDLER_CHANNEL_LIFE_TIME_LIMIT_SECS": 3600,
3134
"EVENT_HANDLER_FILTER_DELETION_TIMEOUT_MS": 100000,
3235
"EVENT_HANDLER_HEARTBEAT_INTERVAL_MS": 15000,
3336
"EVENT_HANDLER_PORT": 5100,
@@ -43,8 +46,8 @@
4346
"MAX_FINALIZED_BLOCK_INFO_ON_MEM": 1000,
4447
"MAX_JSON_RPC_API_READ_RATE_LIMIT": 10,
4548
"MAX_JSON_RPC_API_WRITE_RATE_LIMIT": 1,
46-
"MAX_NUM_EVENT_CHANNELS": 10,
47-
"MAX_NUM_EVENT_FILTERS": 20,
49+
"MAX_NUM_EVENT_CHANNELS": 20,
50+
"MAX_NUM_EVENT_FILTERS": 40,
4851
"MAX_NUM_EVENT_FILTERS_PER_CHANNEL": 5,
4952
"MAX_NUM_INBOUND_CONNECTION": 6,
5053
"MAX_NUM_SNAPSHOTS": 10,

blockchain-configs/testnet-exp/node_params.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"ENABLE_REST_FUNCTION_CALL": false,
2929
"ENABLE_STATUS_REPORT_TO_TRACKER": true,
3030
"ENABLE_TX_SIG_VERIF_WORKAROUND": false,
31+
"EVENT_HANDLER_CHANNEL_IDLE_CHECK_INTERVAL_MS": 10000,
32+
"EVENT_HANDLER_CHANNEL_IDLE_TIME_LIMIT_SECS": 600,
33+
"EVENT_HANDLER_CHANNEL_LIFE_TIME_LIMIT_SECS": 3600,
3134
"EVENT_HANDLER_FILTER_DELETION_TIMEOUT_MS": 100000,
3235
"EVENT_HANDLER_HEARTBEAT_INTERVAL_MS": 15000,
3336
"EVENT_HANDLER_PORT": 5100,
@@ -43,8 +46,8 @@
4346
"MAX_FINALIZED_BLOCK_INFO_ON_MEM": 1000,
4447
"MAX_JSON_RPC_API_READ_RATE_LIMIT": 10,
4548
"MAX_JSON_RPC_API_WRITE_RATE_LIMIT": 1,
46-
"MAX_NUM_EVENT_CHANNELS": 10,
47-
"MAX_NUM_EVENT_FILTERS": 20,
49+
"MAX_NUM_EVENT_CHANNELS": 20,
50+
"MAX_NUM_EVENT_FILTERS": 40,
4851
"MAX_NUM_EVENT_FILTERS_PER_CHANNEL": 5,
4952
"MAX_NUM_INBOUND_CONNECTION": 6,
5053
"MAX_NUM_SNAPSHOTS": 10,

blockchain-configs/testnet-prod/node_params.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"ENABLE_REST_FUNCTION_CALL": false,
2929
"ENABLE_STATUS_REPORT_TO_TRACKER": true,
3030
"ENABLE_TX_SIG_VERIF_WORKAROUND": false,
31+
"EVENT_HANDLER_CHANNEL_IDLE_CHECK_INTERVAL_MS": 10000,
32+
"EVENT_HANDLER_CHANNEL_IDLE_TIME_LIMIT_SECS": 600,
33+
"EVENT_HANDLER_CHANNEL_LIFE_TIME_LIMIT_SECS": 3600,
3134
"EVENT_HANDLER_FILTER_DELETION_TIMEOUT_MS": 100000,
3235
"EVENT_HANDLER_HEARTBEAT_INTERVAL_MS": 15000,
3336
"EVENT_HANDLER_PORT": 5100,
@@ -43,8 +46,8 @@
4346
"MAX_FINALIZED_BLOCK_INFO_ON_MEM": 1000,
4447
"MAX_JSON_RPC_API_READ_RATE_LIMIT": 10,
4548
"MAX_JSON_RPC_API_WRITE_RATE_LIMIT": 1,
46-
"MAX_NUM_EVENT_CHANNELS": 10,
47-
"MAX_NUM_EVENT_FILTERS": 20,
49+
"MAX_NUM_EVENT_CHANNELS": 20,
50+
"MAX_NUM_EVENT_FILTERS": 40,
4851
"MAX_NUM_EVENT_FILTERS_PER_CHANNEL": 5,
4952
"MAX_NUM_INBOUND_CONNECTION": 6,
5053
"MAX_NUM_SNAPSHOTS": 10,

blockchain-configs/testnet-sandbox/node_params.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"ENABLE_REST_FUNCTION_CALL": false,
2929
"ENABLE_STATUS_REPORT_TO_TRACKER": true,
3030
"ENABLE_TX_SIG_VERIF_WORKAROUND": false,
31+
"EVENT_HANDLER_CHANNEL_IDLE_CHECK_INTERVAL_MS": 10000,
32+
"EVENT_HANDLER_CHANNEL_IDLE_TIME_LIMIT_SECS": 600,
33+
"EVENT_HANDLER_CHANNEL_LIFE_TIME_LIMIT_SECS": 3600,
3134
"EVENT_HANDLER_FILTER_DELETION_TIMEOUT_MS": 100000,
3235
"EVENT_HANDLER_HEARTBEAT_INTERVAL_MS": 15000,
3336
"EVENT_HANDLER_PORT": 5100,
@@ -43,8 +46,8 @@
4346
"MAX_FINALIZED_BLOCK_INFO_ON_MEM": 1000,
4447
"MAX_JSON_RPC_API_READ_RATE_LIMIT": 10,
4548
"MAX_JSON_RPC_API_WRITE_RATE_LIMIT": 1,
46-
"MAX_NUM_EVENT_CHANNELS": 10,
47-
"MAX_NUM_EVENT_FILTERS": 20,
49+
"MAX_NUM_EVENT_CHANNELS": 20,
50+
"MAX_NUM_EVENT_FILTERS": 40,
4851
"MAX_NUM_EVENT_FILTERS_PER_CHANNEL": 5,
4952
"MAX_NUM_INBOUND_CONNECTION": 6,
5053
"MAX_NUM_SNAPSHOTS": 10,

blockchain-configs/testnet-staging/node_params.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"ENABLE_REST_FUNCTION_CALL": false,
2929
"ENABLE_STATUS_REPORT_TO_TRACKER": true,
3030
"ENABLE_TX_SIG_VERIF_WORKAROUND": false,
31+
"EVENT_HANDLER_CHANNEL_IDLE_CHECK_INTERVAL_MS": 10000,
32+
"EVENT_HANDLER_CHANNEL_IDLE_TIME_LIMIT_SECS": 600,
33+
"EVENT_HANDLER_CHANNEL_LIFE_TIME_LIMIT_SECS": 3600,
3134
"EVENT_HANDLER_FILTER_DELETION_TIMEOUT_MS": 100000,
3235
"EVENT_HANDLER_HEARTBEAT_INTERVAL_MS": 15000,
3336
"EVENT_HANDLER_PORT": 5100,
@@ -43,8 +46,8 @@
4346
"MAX_FINALIZED_BLOCK_INFO_ON_MEM": 1000,
4447
"MAX_JSON_RPC_API_READ_RATE_LIMIT": 10,
4548
"MAX_JSON_RPC_API_WRITE_RATE_LIMIT": 1,
46-
"MAX_NUM_EVENT_CHANNELS": 10,
47-
"MAX_NUM_EVENT_FILTERS": 20,
49+
"MAX_NUM_EVENT_CHANNELS": 20,
50+
"MAX_NUM_EVENT_FILTERS": 40,
4851
"MAX_NUM_EVENT_FILTERS_PER_CHANNEL": 5,
4952
"MAX_NUM_INBOUND_CONNECTION": 6,
5053
"MAX_NUM_SNAPSHOTS": 10,

client/protocol_versions.json

+3
Original file line numberDiff line numberDiff line change
@@ -146,5 +146,8 @@
146146
},
147147
"1.3.1": {
148148
"min": "1.0.0"
149+
},
150+
"1.4.0": {
151+
"min": "1.0.0"
149152
}
150153
}

common/network-util.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,18 @@ function getIpAddress(internal = false) {
143143
});
144144
}
145145

146+
// NOTE(minsulee2): This builds the URL using a client socket in the server side.
147+
function buildRemoteUrlFromSocket(socket) {
148+
const remoteAddress = _.get(socket, '_socket.remoteAddress', '');
149+
const remotePort = _.get(socket, '_socket.remotePort', '');
150+
return `${remoteAddress}:${remotePort}`;
151+
}
152+
146153
module.exports = {
147154
sendTxAndWaitForFinalization,
148155
sendSignedTx,
149156
signAndSendTx,
150157
sendGetRequest,
151-
getIpAddress
158+
getIpAddress,
159+
buildRemoteUrlFromSocket,
152160
};

config_client_api_ip_whitelist.sh

+8-8
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ else
6464
fi
6565
fi
6666

67-
# Read node ip addresses
68-
IFS=$'\n' read -d '' -r -a IP_ADDR_LIST < ./ip_addresses/$SEASON.txt
67+
# Read node urls
68+
IFS=$'\n' read -d '' -r -a NODE_URL_LIST < ./ip_addresses/$SEASON.txt
6969

7070
# Get keystore password
71-
printf "Enter password: "
72-
read -s PASSWORD
71+
printf "Enter keystore password: "
72+
read -s KEYSTORE_PW
7373
printf "\n\n"
7474
if [[ $SEASON = "mainnet" ]]; then
7575
CHAIN_ID="1"
@@ -96,19 +96,19 @@ printf "COMMAND_NODE_JS_FILE=$COMMAND_NODE_JS_FILE\n"
9696

9797
function config_node() {
9898
local node_index="$1"
99-
local node_ip_addr=${IP_ADDR_LIST[${node_index}]}
99+
local node_url=${NODE_URL_LIST[${node_index}]}
100100

101-
printf "\n\n<<< Configuring ip whitelist of node $node_index ($node_ip_addr) >>>\n\n"
101+
printf "\n\n<<< Configuring ip whitelist of node $node_index ($node_url) >>>\n\n"
102102

103103
KEYSTORE_FILE_PATH="$KEYSTORE_DIR/keystore_node_$node_index.json"
104-
CONFIG_NODE_CMD="node tools/api-access/$COMMAND_NODE_JS_FILE $node_ip_addr $CHAIN_ID keystore $KEYSTORE_FILE_PATH"
104+
CONFIG_NODE_CMD="node tools/api-access/$COMMAND_NODE_JS_FILE $node_url $CHAIN_ID keystore $KEYSTORE_FILE_PATH"
105105
if [[ ! $COMMAND = "get" ]]; then
106106
CONFIG_NODE_CMD="$CONFIG_NODE_CMD '$IP_ADDR'"
107107
fi
108108

109109
printf "\n"
110110
printf "CONFIG_NODE_CMD=$CONFIG_NODE_CMD\n\n"
111-
eval "echo $PASSWORD | $CONFIG_NODE_CMD"
111+
eval "echo $KEYSTORE_PW | $CONFIG_NODE_CMD"
112112
}
113113

114114
for j in `seq $(( 0 )) $(( 9 ))`; do

config_node_param.sh

+8-8
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,12 @@ else
7373
fi
7474
fi
7575

76-
# Read node ip addresses
77-
IFS=$'\n' read -d '' -r -a IP_ADDR_LIST < ./ip_addresses/$SEASON.txt
76+
# Read node urls
77+
IFS=$'\n' read -d '' -r -a NODE_URL_LIST < ./ip_addresses/$SEASON.txt
7878

7979
# Get keystore password
80-
printf "Enter password: "
81-
read -s PASSWORD
80+
printf "Enter keystore password: "
81+
read -s KEYSTORE_PW
8282
printf "\n\n"
8383
if [[ $SEASON = "mainnet" ]]; then
8484
CHAIN_ID="1"
@@ -107,19 +107,19 @@ printf "COMMAND_NODE_JS_FILE=$COMMAND_NODE_JS_FILE\n"
107107

108108
function config_node() {
109109
local node_index="$1"
110-
local node_ip_addr=${IP_ADDR_LIST[${node_index}]}
110+
local node_url=${NODE_URL_LIST[${node_index}]}
111111

112-
printf "\n\n<<< Configuring ip whitelist of node $node_index ($node_ip_addr) >>>\n\n"
112+
printf "\n\n<<< Configuring ip whitelist of node $node_index ($node_url) >>>\n\n"
113113

114114
KEYSTORE_FILE_PATH="$KEYSTORE_DIR/keystore_node_$node_index.json"
115-
CONFIG_NODE_CMD="node tools/api-access/$COMMAND_NODE_JS_FILE $node_ip_addr $CHAIN_ID keystore $KEYSTORE_FILE_PATH $PARAM"
115+
CONFIG_NODE_CMD="node tools/api-access/$COMMAND_NODE_JS_FILE $node_url $CHAIN_ID keystore $KEYSTORE_FILE_PATH $PARAM"
116116
if [[ ! $COMMAND = "get" ]]; then
117117
CONFIG_NODE_CMD="$CONFIG_NODE_CMD '$VALUE'"
118118
fi
119119

120120
printf "\n"
121121
printf "CONFIG_NODE_CMD=$CONFIG_NODE_CMD\n\n"
122-
eval "echo $PASSWORD | $CONFIG_NODE_CMD"
122+
eval "echo $KEYSTORE_PW | $CONFIG_NODE_CMD"
123123
}
124124

125125
for j in `seq $(( 0 )) $(( 9 ))`; do

0 commit comments

Comments
 (0)