This page describes loopchain (ICON1) and is there obsolete. We will provide a new architecture description for goloop in the future.

Network Diagram of P-Rep Nodes

The diagram above illustrates how P-Rep nodes interact with each other and external dApps in the TestNet environment.

Inside a P-Rep Node

A process view of a P-Rep node
There are five processes running inside a P-Rep node, namely iconrpcserver, iconservice, loopchain, loop-queue, and loop-logger.
    iconrpcserver handles JSON-RPC message requests
    ICON RPC Server receives request messages from external clients and sends back responses. When receiving a message, ICON RPC Server will identify the requested method and transfer the request to its corresponding component, in either loopchain or ICON Service.
    ICON Service manages the state of ICON network (i.e., states of user accounts and SCOREs) using LevelDB.
      Before processing transactions, ICON Service performs syntax check on the request messages and pre-validates the status of accounts to see if the transactions are executable.
    loopchain is the high-performance Blockchain Consensus & Network engine of ICON.
loop-queue (RabbitMQ)
    RabbitMQ is the most widely deployed open source message broker.
    loopchain uses RabbitMQ as a message queue for inter-process communication.
loop-logger (Fluentd)
    Fluentd is the open source data collector, which lets you unify data collection and consumption.
    Fluentd is included in the P-Rep node image. You can use Fluentd to systematically collect and aggregate the log data that other processes produce.

P-Rep Node Port Usage

External Communications
    TCP 7100: gRPC port used for peer-to-peer connection between peer nodes.
    TCP 9000: JSON-RPC or RESTful API port serving application requests.
Internal communications
    TCP 5672: RabbitMQ port for inter-process communication.
RabbitMQ Management Console
    TCP 15672: RabbitMQ Management will listen on port 15672.
      You can use RabbitMQ Management by enabling this port. It must be enabled before it is used.(Check the USE_MQ_ADMIN environment variable)
      You can access the management web console at http://{node-hostname}:15672/
Last modified 4mo ago