diff --git a/icon-node/maintenance/node-operation-and-configuration.md b/icon-node/maintenance/node-operation-and-configuration.md index 45bc1dd..2cd3da5 100644 --- a/icon-node/maintenance/node-operation-and-configuration.md +++ b/icon-node/maintenance/node-operation-and-configuration.md @@ -49,7 +49,7 @@ loopchain 2.4.16 ### **Entrypoint.sh Diagram** -![](../../.gitbook/assets/639df0d-0623407-entrypoint_diagram.jpg) +![](../../.gitbook/assets/639df0d-0623407-entrypoint\_diagram.jpg) @@ -112,7 +112,7 @@ $ curl localhost:9000/api/v1/status/peer } ``` -* `/api/v1/avail/peer` returns HTTP response 503 when the service is unavailable +* `/api/v1/avail/peer` returns HTTP response 503 when the service is unavailable This is useful when performing a health check based on the HTTP response code of the load balancer. @@ -228,30 +228,30 @@ Content-Type: application/json ## Node Status Detail -| value name | Description | Reason or allowed value | -| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| made_block_count | number of block generated by node | Reset when node became a leader after a rotation or reorerated. | -| status | service on / off status |

"Service is online: 1" : Working (leader status)
"Service is online: 0" : Working (not a leader status)
"Service is offline: block height sync" : block sync condition
"Service is offline: mq down" ": channel mq issue

| -| state | node condition | detailed information (display at bottom) | -| service_available | service condition | \[ true / false ] | -| peer_type | classify leader node and verifying node |

"0" : verifying node
"1" : leader node

| -| audience_count | `DEPRECATION`, It will be remove | | -| consensus | consensus algorithm |

"siever" : current consensus algorithm
"LFT" : consensus algorithm that will adapt in the future

| -| peer_id | unique address of node | 40 digit HEX string | -| block_height | Current block height of node | | -| round | number of counts for current block consensus process | The count increases by one when leader node fails to process transaction and leader complaint is occured or consensus is failed. The count reset when block generation is complete | -| epoch_height | block heights of processing block. In case of citizen nodes, their block heights stop at SubscribeNetwork block heights because they don’t participate in consensus. | | -| unconfirmed_block_height | block heights of unprocessed block | same as epoch_height | -| total_tx | Total number of tx until current block | | -| unconfirmed_tx |

number of unprocessed tx that hold by queue
if it holds by leader more than one minute leader complaint will occur

| | -| peer_target | IP address and port of node | "IP:PORT" | -| leader_complaint | `DEPRECATION`, It will be remove | | -| peer_count | total number of nodes in blockchain network | | -| leader | Unique address of a leader node | 40 digit HEX string | -| epoch_leader | Unique address of a leader node in consensus process | 40 digit HEX string | -| mq.peer.message_count | Accumulated number of messages in pier MQ | Presents ‘-1’ when an error occurs and details can be found in "error" | -| mq.channel.message_count | Accumulated number of messages in channel MQ | Presents ‘-1’ when an error occurs and details can be found in "error" | -| mq.score.message_count | Accumulated number of messages in SCORE MQ | Presents ‘-1’ when an error occurs and details can be found in "error" | +| value name | Description | Reason or allowed value | +| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| made\_block\_count | number of block generated by node | Reset when node became a leader after a rotation or reorerated. | +| status | service on / off status |

"Service is online: 1" : Working (leader status)
"Service is online: 0" : Working (not a leader status)
"Service is offline: block height sync" : block sync condition
"Service is offline: mq down" ": channel mq issue

| +| state | node condition | detailed information (display at bottom) | +| service\_available | service condition | \[ true / false ] | +| peer\_type | classify leader node and verifying node |

"0" : verifying node
"1" : leader node

| +| audience\_count | `DEPRECATION`, It will be remove | | +| consensus | consensus algorithm |

"siever" : current consensus algorithm
"LFT" : consensus algorithm that will adapt in the future

| +| peer\_id | unique address of node | 40 digit HEX string | +| block\_height | Current block height of node | | +| round | number of counts for current block consensus process | The count increases by one when leader node fails to process transaction and leader complaint is occured or consensus is failed. The count reset when block generation is complete | +| epoch\_height | block heights of processing block. In case of citizen nodes, their block heights stop at SubscribeNetwork block heights because they don’t participate in consensus. | | +| unconfirmed\_block\_height | block heights of unprocessed block | same as epoch\_height | +| total\_tx | Total number of tx until current block | | +| unconfirmed\_tx |

number of unprocessed tx that hold by queue
if it holds by leader more than one minute leader complaint will occur

| | +| peer\_target | IP address and port of node | "IP:PORT" | +| leader\_complaint | `DEPRECATION`, It will be remove | | +| peer\_count | total number of nodes in blockchain network | | +| leader | Unique address of a leader node | 40 digit HEX string | +| epoch\_leader | Unique address of a leader node in consensus process | 40 digit HEX string | +| mq.peer.message\_count | Accumulated number of messages in pier MQ | Presents ‘-1’ when an error occurs and details can be found in "error" | +| mq.channel.message\_count | Accumulated number of messages in channel MQ | Presents ‘-1’ when an error occurs and details can be found in "error" | +| mq.score.message\_count | Accumulated number of messages in SCORE MQ | Presents ‘-1’ when an error occurs and details can be found in "error" | ## State Detail @@ -271,99 +271,95 @@ Content-Type: application/json ### **Docker Environment Variables** -If you want to change the TimeZone, open `docker-compose.yml` in a text editor and add the following content: - ``` -version: "3" +version: '3' services: - prep-node: - image: "iconloop/prep-node:1910261021xc97f33" - container_name: "prep-mainnet" - network_mode: host - restart: "always" - environment: - NETWORK_ENV: "mainnet" - SWITCH_BH_VERSION3: "10324749" - CERT_PATH: "/cert" - LOOPCHAIN_LOG_LEVEL: "DEBUG" - ICON_LOG_LEVEL: "DEBUG" - FASTEST_START: "yes" # Restore from lastest snapshot DB - PRIVATE_KEY_FILENAME: "{YOUR_KEYSTORE or YOUR_CERTKEY FILENAME}" # only file name - PRIVATE_PASSWORD: "{YOUR_KEY_PASSWORD}" - TZ: "America/Los_Angeles" # Added content to change the TimeZone - cap_add: - - SYS_TIME - volumes: - - ./data:/data # mount a data volumes - - ./cert:/cert # Automatically generate cert key files here - ports: - - 9000:9000 - - 7100:7100 + icon2-node: + image: 'iconloop/icon2-node' + restart: "on-failure" + container_name: "icon2-node" + network_mode: "host" + stdin_open: true + environment: + SERVICE: "MainNet" # MainNet, SeJong + #IS_AUTOGEN_CERT: "true" + GOLOOP_LOG_LEVEL: "debug" # trace, debug, info, warn, error, fatal, panic + KEY_STORE_FILENAME: "INPUT_YOUR_KEY_STORE_FILENAME" # e.g. keystore.json read a config/keystore.json + KEY_PASSWORD: "INPUT_YOUR_KEY_PASSWORD" # e.g. "/goloop/config/keystore.json" read a "config/keystore.json" of host machine + FASTEST_START: "true" # It can be restored from latest Snapshot DB. + ROLE: 3 # preps = 3, citizen = 0 + + cap_add: + - SYS_TIME + + volumes: + - ./config:/goloop/config + - ./data:/goloop/data + - ./logs:/goloop/logs ``` The P-Rep Node image supports the following environment variables: -| Environment variable | Description | Default value | Allowed value | | -| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | - | -| IPADDR | Setting the IP address | $EXT_IPADDR | | | -| LOCAL_TEST | false | false | | | -| TZ | Setting the TimeZone Environment | Asia/Seoul | [List of TZ name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) | | -| NETWORK_ENV | Network Environment name | PREP-TestNet | mainnet, PREP-TestNet | | -| SERVICE | Service Name | default | | | -| SERVICE_API | SERVICE_API URI | [https://${SERVICE}.net.solidwallet.io/api/v3](https://${service}.net.solidwallet.io/api/v3) | URI | | -| ENDPOINT_URL | ENDPOINT API URI | [https://${SERVICE}.net.solidwallet.io](https://${service}.net.solidwallet.io) | URI | | -| NTP_SERVER | NTP SERVER ADDRESS | time.google.com | | | -| NTP_REFRESH_TIME | NTP refresh time | 21600 | | | -| FIND_NEIGHBOR | Find fastest neighborhood PRrep | false | | | -| DEFAULT_PATH | Setting the Default Root PATH | /data/${NETWORK_ENV} | | | -| DEFAULT_LOG_PATH | Setting the logging path | ${DEFAULT_PATH}/log | | | -| DEFAULT_STORAGE_PATH | block DB will be stored | ${DEFAULT_PATH}/.storage | | | -| USE_NAT | if you want to use NAT Network | no | | | -| NETWORK_NAME | | | | | -| VIEW_CONFIG | for check deployment state | false | boolean (true/false) | | -| USE_MQ_ADMIN | Enable RabbitMQ management Web interface.The management UI can be accessed using a Web browser at [http://{node-hostname}:15672/](http://{node-hostname}:15672) | false | boolean (true/false) | | -| MQ_ADMIN | RabbitMQ management username | admin | | | -| MQ_PASSWORD | RabbitMQ management password | iamicon | | | -| LOOPCHAIN_LOG_LEVEL | loopchain log level | INFO | DEBUG, INFO, WARNING, ERROR | | -| ICON_LOG_LEVEL | iconservice log level | INFO | DEBUG, INFO, WARNING, ERROR | | -| LOG_OUTPUT_TYPE | loopchain's output log type | file | file, console | | -| outputType | iconservice's output log type | $LOG_OUTPUT_TYPE | file, console | | -| CONF_PATH | Setting the configure file path | /${APP_DIR}/conf | | | -| CERT_PATH | Setting the certificate key file path | /${APP_DIR}/cert | | | -| REDIRECT_PROTOCOL | http | http | | | -| SUBSCRIBE_USE_HTTPS | false | false | | | -| ICON_NID | Setting the ICON Network ID number | 0x50 | | | -| ALLOW_MAKE_EMPTY_BLOCK | false | false | | | -| score_fee | true | true | | | -| score_audit | false | false | | | -| scoreRootPath | ${DEFAULT_PATH}/.score_data/score | ${DEFAULT_PATH}/.score_data/score | | | -| stateDbRootPath | ${DEFAULT_PATH}/.score_data/db | ${DEFAULT_PATH}/.score_data/db | | | -| iissDbRootPath | ${DEFAULT_PATH}/.iissDb | ${DEFAULT_PATH}/.iissDb | | | -| CHANNEL_BUILTIN | boolean (true/false) | true | | | -| PEER_NAME | `uname` | `uname` | | | -| PUBLIC_PATH | public cert key location | ${CERT_PATH}/${IPADDR}\_public.der | | | -| PRIVATE_PATH | private cert key location | ${CERT_PATH}/${IPADDR}\_private.der | | | -| PRIVATE_PASSWORD | private cert key password | test | | | -| LOAD_PEERS_FROM_IISS | true | true | | | -| CHANNEL_MANAGE_DATA_PATH | ${CONF_PATH}/channel_manange_data.json | ${CONF_PATH}/channel_manange_data.json | | | -| CONFIG_API_SERVER | [https://download.solidwallet.io](https://download.solidwallet.io) | [https://download.solidwallet.io](https://download.solidwallet.io) | | | -| GENESIS_DATA_PATH | ${CONF_PATH}/genesis.json | ${CONF_PATH}/genesis.json | | | -| BLOCK_VERSIONS | | | | | -| NEXT_BLOCK_VERSION_HEIGHT | | | | | -| FORCE_RUN_MODE | Setting the loopchain running parameter e.g. if FORCE_RUN_MODE is | | | | -| configure_json | ${CONF_PATH}/configure.json | ${CONF_PATH}/configure.json | | | -| iconservice_json | ${CONF_PATH}/iconservice.json | ${CONF_PATH}/iconservice.json | | | -| iconrpcserver_json | ${CONF_PATH}/iconrpcserver.json | ${CONF_PATH}/iconrpcserver.json | | | -| ICON_REVISION | 4 | 4 | | | -| ROLE_SWITCH_BLOCK_HEIGHT | 1 | 1 | | | -| mainPRepCount | 22 | 22 | | | -| mainAndSubPRepCount | 100 | 100 | | | -| decentralizeTrigger | 0.002 | 0.002 | | | -| RPC_PORT | Choose a RPC service port | 9000 | | | -| RPC_WORKER | Setting the number of RPC workers | 3 | | | -| RPC_GRACEFUL_TIMEOUT | rpc graceful timeout | 0 | | | -| PRIVATE_KEY_FILENAME | YOUR_KEYSTORE or YOUR_CERTKEY FILENAME | | FileName | | -| PRIVATE_PASSWORD | YOUR_KEY_PASSWORD | | String | | +| Environment variable | Description | Default value | Allowed value | | +| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------- | - | +| IPADDR | Setting the IP address | $EXT\_IPADDR | | | +| LOCAL\_TEST | false | false | | | +| NETWORK\_ENV | Network Environment name | PREP-TestNet | mainnet, PREP-TestNet | | +| SERVICE | Service Name | default | | | +| SERVICE\_API | SERVICE\_API URI | [https://${SERVICE}.net.solidwallet.io/api/v3](https://${service}.net.solidwallet.io/api/v3) | URI | | +| ENDPOINT\_URL | ENDPOINT API URI | [https://${SERVICE}.net.solidwallet.io](https://${service}.net.solidwallet.io) | URI | | +| NTP\_SERVER | NTP SERVER ADDRESS | time.google.com | | | +| NTP\_REFRESH\_TIME | NTP refresh time | 21600 | | | +| FIND\_NEIGHBOR | Find fastest neighborhood PRrep | false | | | +| DEFAULT\_PATH | Setting the Default Root PATH | /data/${NETWORK\_ENV} | | | +| DEFAULT\_LOG\_PATH | Setting the logging path | ${DEFAULT\_PATH}/log | | | +| DEFAULT\_STORAGE\_PATH | block DB will be stored | ${DEFAULT\_PATH}/.storage | | | +| USE\_NAT | if you want to use NAT Network | no | | | +| NETWORK\_NAME | | | | | +| VIEW\_CONFIG | for check deployment state | false | boolean (true/false) | | +| USE\_MQ\_ADMIN | Enable RabbitMQ management Web interface.The management UI can be accessed using a Web browser at [http://{node-hostname}:15672/](http://{node-hostname}:15672) | false | boolean (true/false) | | +| MQ\_ADMIN | RabbitMQ management username | admin | | | +| MQ\_PASSWORD | RabbitMQ management password | iamicon | | | +| LOOPCHAIN\_LOG\_LEVEL | loopchain log level | INFO | DEBUG, INFO, WARNING, ERROR | | +| ICON\_LOG\_LEVEL | iconservice log level | INFO | DEBUG, INFO, WARNING, ERROR | | +| LOG\_OUTPUT\_TYPE | loopchain's output log type | file | file, console | | +| outputType | iconservice's output log type | $LOG\_OUTPUT\_TYPE | file, console | | +| CONF\_PATH | Setting the configure file path | /${APP\_DIR}/conf | | | +| CERT\_PATH | Setting the certificate key file path | /${APP\_DIR}/cert | | | +| REDIRECT\_PROTOCOL | http | http | | | +| SUBSCRIBE\_USE\_HTTPS | false | false | | | +| ICON\_NID | Setting the ICON Network ID number | 0x50 | | | +| ALLOW\_MAKE\_EMPTY\_BLOCK | false | false | | | +| score\_fee | true | true | | | +| score\_audit | false | false | | | +| scoreRootPath | ${DEFAULT\_PATH}/.score\_data/score | ${DEFAULT\_PATH}/.score\_data/score | | | +| stateDbRootPath | ${DEFAULT\_PATH}/.score\_data/db | ${DEFAULT\_PATH}/.score\_data/db | | | +| iissDbRootPath | ${DEFAULT\_PATH}/.iissDb | ${DEFAULT\_PATH}/.iissDb | | | +| CHANNEL\_BUILTIN | boolean (true/false) | true | | | +| PEER\_NAME | `uname` | `uname` | | | +| PUBLIC\_PATH | public cert key location | ${CERT\_PATH}/${IPADDR}\_public.der | | | +| PRIVATE\_PATH | private cert key location | ${CERT\_PATH}/${IPADDR}\_private.der | | | +| PRIVATE\_PASSWORD | private cert key password | test | | | +| LOAD\_PEERS\_FROM\_IISS | true | true | | | +| CHANNEL\_MANAGE\_DATA\_PATH | ${CONF\_PATH}/channel\_manange\_data.json | ${CONF\_PATH}/channel\_manange\_data.json | | | +| CONFIG\_API\_SERVER | [https://download.solidwallet.io](https://download.solidwallet.io) | [https://download.solidwallet.io](https://download.solidwallet.io) | | | +| GENESIS\_DATA\_PATH | ${CONF\_PATH}/genesis.json | ${CONF\_PATH}/genesis.json | | | +| BLOCK\_VERSIONS | | | | | +| NEXT\_BLOCK\_VERSION\_HEIGHT | | | | | +| FORCE\_RUN\_MODE | Setting the loopchain running parameter e.g. if FORCE\_RUN\_MODE is | | | | +| configure\_json | ${CONF\_PATH}/configure.json | ${CONF\_PATH}/configure.json | | | +| iconservice\_json | ${CONF\_PATH}/iconservice.json | ${CONF\_PATH}/iconservice.json | | | +| iconrpcserver\_json | ${CONF\_PATH}/iconrpcserver.json | ${CONF\_PATH}/iconrpcserver.json | | | +| ICON\_REVISION | 4 | 4 | | | +| ROLE\_SWITCH\_BLOCK\_HEIGHT | 1 | 1 | | | +| mainPRepCount | 22 | 22 | | | +| mainAndSubPRepCount | 100 | 100 | | | +| decentralizeTrigger | 0.002 | 0.002 | | | +| RPC\_PORT | Choose a RPC service port | 9000 | | | +| RPC\_WORKER | Setting the number of RPC workers | 3 | | | +| RPC\_GRACEFUL\_TIMEOUT | rpc graceful timeout | 0 | | | +| PRIVATE\_KEY\_FILENAME | YOUR\_KEYSTORE or YOUR\_CERTKEY FILENAME | | FileName | | +| PRIVATE\_PASSWORD | YOUR\_KEY\_PASSWORD | | String | | ### **Troubleshooting** @@ -437,25 +433,25 @@ $ cat data/PREP-MainNet/log/booting_${DATE}.log | grep ERROR **iconrpcserver.log** -* The log file contains information about the request/response message handling going through the iconrpcserver. +* The log file contains information about the request/response message handling going through the iconrpcserver. **iconservice.log** * The log file contains the internals of ICON Service -**loopchain.channel-txcreator-icon_dex_broadcast.icon_dex.log** +**loopchain.channel-txcreator-icon\_dex\_broadcast.icon\_dex.log** * The log file contains information about TX broadcast from a node to other nodes -**loopchain.channel-txcreator.icon_dex.log** +**loopchain.channel-txcreator.icon\_dex.log** * The log file contains information about the process of confirming TXƒ -**loopchain.channel-txreceiver.icon_dex.log** +**loopchain.channel-txreceiver.icon\_dex.log** * The log file contains information about receiving the broadcasted TX from a node. -**loopchain.channel.icon_dex.log** +**loopchain.channel.icon\_dex.log** * The log file contains information about internals of loopchain engine diff --git a/references/how-to/set-up-a-keystore-file-on-a-p-rep-node.md b/references/how-to/set-up-a-keystore-file-on-a-p-rep-node.md index 65b11ea..8bf18c1 100644 --- a/references/how-to/set-up-a-keystore-file-on-a-p-rep-node.md +++ b/references/how-to/set-up-a-keystore-file-on-a-p-rep-node.md @@ -8,7 +8,7 @@ Export your Keystore file whitch you registered in. You can see how to get the K The keystore file needs to be exported and stored in the cert directory. Below is a directory structure under the `docker-compose.yml` -```text +``` |-- docker-compose.yml |-- data → data directory |-- mainnet → block DB directory @@ -21,7 +21,7 @@ Important - you should put your keystore file under the `/cert` folder. ### 3. Rename Keystore file simply -Enter a short name for the keystore file \(recommended\). +Enter a short name for the keystore file (recommended). ### 4. Import your keystore file into `docker-compose.yml` @@ -30,36 +30,35 @@ If your keystore file name is `textKeystore` then the `docker-compose.yml` file `$ cat docker-compose.yml` ```yaml -version: "3" +version: '3' services: -prep-node: - image: "iconloop/prep-node:1910211829xc2286d" - container_name: "prep-mainnet" - network_mode: host - restart: "always" + icon2-node: + image: 'iconloop/icon2-node' + restart: "on-failure" + container_name: "icon2-node" + network_mode: "host" + stdin_open: true environment: - NETWORK_ENV: "mainnet" - LOG_OUTPUT_TYPE: "file" - SWITCH_BH_VERSION3: "10324749" - CERT_PATH: "/cert" - LOOPCHAIN_LOG_LEVEL: "DEBUG" - ICON_LOG_LEVEL: "DEBUG" - FASTEST_START: "yes" # Restore from lastest snapshot DB - PRIVATE_KEY_FILENAME: "testKeystore" # only file name - PRIVATE_PASSWORD: "testKeystorepassword" + SERVICE: "MainNet" # MainNet, SeJong + #IS_AUTOGEN_CERT: "true" + GOLOOP_LOG_LEVEL: "debug" # trace, debug, info, warn, error, fatal, panic + KEY_STORE_FILENAME: "INPUT_YOUR_KEY_STORE_FILENAME" # e.g. keystore.json read a config/keystore.json + KEY_PASSWORD: "INPUT_YOUR_KEY_PASSWORD" # e.g. "/goloop/config/keystore.json" read a "config/keystore.json" of host machine + FASTEST_START: "true" # It can be restored from latest Snapshot DB. + ROLE: 3 # preps = 3, citizen = 0 + cap_add: - - SYS_TIME + - SYS_TIME + volumes: - - ./data:/data # mount a data volumes - - ./cert:/cert # Automatically generate cert key files here - ports: - - 9000:9000 - - 7100:7100 + - ./config:/goloop/config + - ./data:/goloop/data + - ./logs:/goloop/logs ``` Also, you can see the directory path as below: -```text +``` |-- docker-compose.yml |-- data → data directory |-- mainnet → block DB directory @@ -74,7 +73,7 @@ Also, you can see the directory path as below: The `docker ps` command shows the list of running docker containers. -```text +``` $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0de99e33cdc9 iconloop/prep-node:1910211829xc2286d "/src/entrypoint.sh" 2 minutes ago Up 2 minutes(healthy) 0.0.0.0:7100->7100/tcp, 0.0.0.0:9000->9000/tcp prep_prep_1 @@ -85,11 +84,11 @@ You should look at the `STATUS` field to see if the container is running up and Inside the container, there is a `healthcheck` script running with the following configuration. It will return `unhealthy` when it fails. | Healthcheck option | value | -| :--- | :--- | -| retries | 4 | -| interval | 30s | -| timeout | 20s | -| start-period | 60s | +| ------------------ | ----- | +| retries | 4 | +| interval | 30s | +| timeout | 20s | +| start-period | 60s | The container can have three states: @@ -99,7 +98,7 @@ The container can have three states: If the container does not start properly or went down unexpectedly, please check the `booting.log`. Below is the log messages on **success**. -```text +``` $ cat data/PREP-MainNet/log/booting_${DATE}.log [2019-10-23 17:47:05.204] Your IP: xxx.xxx.xxx.xxx @@ -124,7 +123,7 @@ loopchain 2.4.15 Grep the `ERROR` messages from the log files to find the possible cause of the failure. -```text +``` $ cat data/PREP-MainNet/log/booting_${DATE}.log | grep ERROR [2019-08-12 02:08:48.746] [ERROR] Download Failed - http://20.20.1.149:5000/cert/20.20.1.195_public.der status_code=000 @@ -137,7 +136,7 @@ $ cat data/PREP-MainNet/log/booting_${DATE}.log | grep ERROR * booting.log * The log file contains the errors that occurred when the docker container starts up. * iconrpcserver.log - * The log file contains information about the request/response message handling going through the iconrpcserver. + * The log file contains information about the request/response message handling going through the iconrpcserver. * iconservice.log * The log file contains the internals of ICON Service * loopchain.channel-txcreator-icon\_dex\_broadcast.icon\_dex.log @@ -157,4 +156,3 @@ We recommend the following tools for resource monitoring 2. CPU/Memory monitoring - top, htop 3. Disk I/O monitoring - iostat, iotop 4. Docker monitoring - docker stats, ctop -