Networking

From ArdorDocs
Jump to: navigation, search
This page contains changes which are not marked for translation.
Other languages:

Add Peer

Add a peer to the list of known peers and attempt to connect to it. Password protected like the Debug Operations. POST only.

Request:

  • requestType is addPeer
  • peer is the IP address or domain name of the peer (plus optional port)

Response: refer to Get Peer

  • isNewlyAdded is true if the peer was not already known, omitted otherwise

Add Peer Example

http://localhost:27876/nxt?
  requestType=addPeer&
  peer=ardorrules.webice.ru
{
 "downloadedVolume": 155414,
 "address": "23.95.51.154",
 "weight": 19829,
 "uploadedVolume": 63532,
 "requestProcessingTime": 478,
 "version": "2.0.11",
 "platform": "webice.ru",
 "lastUpdated": 37014605,
 "blacklisted": false,
 "announcedAddress": "ardorrules.webice.ru",
 "application": "NRS",
 "state": 1,
 "shareAddress": true
}


Blacklist API Proxy Peer

Blacklist a remote node from the UI, so it won't be used when in roaming and light client modes. POST only.

Request:

  • requestType is blacklistAPIProxyPeer
  • peer is the IP address or domain name of the peer (plus optional port)
  • adminPassword is a string with the admin password (optional)

Response:

  • done (B) is true if the peer is blacklisted
  • requestProcessingTime (N) is the API request processing time (in millisec)

Blacklist API Proxy Peer Example

http://localhost:27876/nxt?
  requestType=blacklistAPIProxyPeer&
  peer=52.0.72.67
{
 "requestProcessingTime": 24,
 "done": true
}


Bootstrap API Proxy

It performs a proxy bootstrap, checking known peer connected. Password protected when not connected to a local node. POST only.

Request:

  • requestType is bootstrapAPIProxy
  • chain is the chain that will be used for the operation
  • adminPassword (S) s a string with the admin password (optional)

Response:

  • success (B) is true if the proxy bootstrap is successful
  • apiProxyPeer (S) is the url of the proxy where the connection is tested
  • requestProcessingTime (N) is the API request processing time (in millisec)
  • message (S) provides more information of the operation

Bootstrap API Proxy Example

http://localhost:27876/nxt?
  requestType=bootstrapAPIProxy&
  chain=2
  password=IWontTellYou
{
    "success": true,
    "apiProxyPeer": "testnode2.ardor.tools",
    "requestProcessingTime": 97,
    "message": "Proxy bootstrap complete, known peer 164.132.99.1 is connected"
}


Get API Proxy Reports

It provides information about the light client remote API calls and their confirmations.

Request:

  • requestType is getAPIProxyReports

Response:

  • reports (A) is an array of report objects
    • requestType (S) is light client remote API operation either confirming or rejecting
    • confirming (A) is an array that contains the list of the confirming nodes
    • rejecting (A) is an array that contains the list of the rejecting nodes
    • timestamp (N) is the Epoch time of the confirming or rejecting report. Refer to Epoch time API.
  • requestProcessingTime (N) is the API request processing time (in millisec)

Get API Proxy Reports Example

http://localhost:27876/nxt?
  requestType=getAPIProxyReports
{
    "reports": [
        {
            "requestType": "getDGSPurchaseCount",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778857
        },
        {
            "requestType": "getLastTrades",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778857
        },
        {
            "requestType": "getDGSPurchaseCount",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778857
        },
        {
            "requestType": "getDGSPendingPurchases",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778857
        },
        {
            "requestType": "getAliasCount",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778857
        },
        {
            "requestType": "getLastExchanges",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778857
        },
        {
            "requestType": "getVoterPhasedTransactions",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778857
        },
        {
            "requestType": "getBalances",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778857
        },
        {
            "requestType": "getBalance",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778857
        },
        {
            "requestType": "getAccount",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778857
        },
        {
            "requestType": "getAccountPublicKey",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778857
        },
        {
            "requestType": "getAccount",
            "confirming": [
                "http://149.28.232.203:26876"
            ],
            "rejecting": [],
            "timestamp": 82778856
        }
    ],
    "requestProcessingTime": 2
}


Blacklist Peer

Blacklist a peer for the default blacklisting period. Password protected like the Debug Operations. POST only.

Request:

  • requestType is blacklistPeer
  • peer is the IP address or domain name of the peer (plus optional port)

Response:

  • done (B) is true if the peer is blacklisted
  • requestProcessingTime (N) is the API request processing time (in millisec)

Blacklist Peer Example

http://localhost:27876/nxt?
  requestType=blacklistPeer&
  peer=ardorrules.webice.ru
{
 "requestProcessingTime": 0,
 "done": true
}


Get My Info

Get hostname and address of the requesting node.

Request:

  • requestType is getMyInfo

Response:

  • host (S) is the node hostname
  • address (S) is the node address
  • requestProcessingTime (N) is the API request processing time (in millisec)

Get My Info Example

http://localhost:27876/nxt?
  requestType=getMyInfo
{
 "address": "127.0.0.1",
 "host": "127.0.0.1",
 "requestProcessingTime": 1
}


Get Peer

Get information about a given peer.

Request:

  • requestType is getPeer
  • peer is the IP address or domain name of the peer (plus optional port)

Response:

  • downloadedVolume (N) is the number of bytes downloaded by the peer
  • address (S) the IP address or DNS name of the peer
  • weight (N) is the peer's weight value
  • uploadedVolume (N) is the number of bytes uploaded by the peer
  • version (S) is the version of the software running on the peer
  • platform (S) is a string representing the peer's platform
  • lastUpdated (N) is the timestamp (in seconds since the genesis block) of the last peer status update
  • blacklisted (B) is true if the peer is blacklisted
  • services (A) is an array of strings with the services the node provides
  • blacklistingCause (S) is the cause of blacklisting (if blacklisted is true)
  • announcedAddress (S) is the name that the peer announced to the network (could be a DNS name, IP address, or any other string)
  • application (S) is the name of the software application, typically NRS
  • state (N) defines the state of the peer: 0 for NON_CONNECTED, 1 for CONNECTED, or 2 for DISCONNECTED
  • shareAddress (B) is true if the address is allowed to be shared with other peers
  • inbound (B) is true if the peer has made a request to this node
  • inboundWebSocket (B) is true if an inbound websocket has been established from this node
  • outboundWebSocket (B) is true if an outbound websocket has been established to this node
  • lastConnectAttempt (B) is the timestamp (in seconds since the genesis block) of the last connection attempt to the peer
  • requestProcessingTime (N) is the API request processing time (in millisec)

Get Peer Example

http://localhost:27876/nxt?
  requestType=getPeer&
  peer=ardorrules.ru
{
 "downloadedVolume": 0,
 "address": "78.22.240.88",
 "inbound": false,
 "blockchainState": "DOWNLOADING",
 "uploadedVolume": 0,
 "services": [
   "CORS"
 ],
 "requestProcessingTime": 0,
 "version": "2.0.14",
 "platform": "Windows 10 amd64",
 "lastUpdated": 21436422,
 "blacklisted": false,
 "announcedAddress": "78.22.240.88",
 "application": "Ardor",
 "port": 26874,
 "lastConnectAttempt": 21433598,
 "state": 2,
 "shareAddress": true
}


Get Peers

Get a list of peer IP addresses.

Request:

  • requestType is getPeers
  • active is true for active (not NON_CONNECTED) peers only (optional, if true overrides state)
  • state is the state of the peers, one of NON_CONNECTED, CONNECTED, or DISCONNECTED (optional)
  • includePeerInfo is true to include peer detail as in Get Peer
  • service to filter on a specific service

Note: If neither active nor state is specified, all known peers are retrieved.

Response:

  • peers (A) is an array of peer addresses
  • requestProcessingTime (N) is the API request processing time (in millisec)

Get Peers Example

http://localhost:27876/nxt?
  requestType=getPeers&
  state=DISCONNECTED
{
 "peers": [
  "198.50.146.93",
  "213.46.57.77"
 ],
 "requestProcessingTime": 1
}


Manage Peers Networking

It enables, disables or queries the peers networking

Request:

  • requestType is managePeersNetworking
  • operation (S) is either 'enable', 'disable' or 'query'
  • adminPassword (S) s a string with the admin password (optional)

Response:

  • isEnabled (B) is a boolean to specify the state of the peer networking
  • requestProcessingTime (N) is the API request processing time (in millisec)

Manage Peers Networkin Example

http://localhost:27876/nxt?
  requestType=managePeersNetworking&
  operation=query
{
    "isEnabled": true,
    "requestProcessingTime": 0
}


Set API Proxy Peer

Set the remote node to use when in roaming and light client modes. POST only.

Request:

  • requestType is setAPIProxyPeer
  • peer is the IP address or domain name of the peer (plus optional port)
  • adminPassword is a string with the admin password (optional)

Response:

  • downloadedVolume (N) is the number of bytes downloaded by the peer
  • address (S) the IP address or DNS name of the peer
  • weight (N) is the peer's weight value
  • uploadedVolume (N) is the number of bytes uploaded by the peer
  • version (S) is the version of the software running on the peer
  • platform (S) is a string representing the peer's platform
  • blockchainState (S) is a string describing the state of the blockchain in the peer
  • lastUpdated (N) is the timestamp (in seconds since the genesis block) of the last peer status update
  • blacklisted (B) is true if the peer is blacklisted
  • services (A) is an array of strings with the services the node provides
  • apiPort (N) is the API access port of the peer
  • apiSSLPort (N) is the SSL API access port of the peer
  • blacklistingCause (S) is the cause of blacklisting (if blacklisted is true)
  • announcedAddress (S) is the name that the peer announced to the network (could be a DNS name, IP address, or any other string)
  • application (S) is the name of the software application, typically NRS
  • state (N) defines the state of the peer: 0 for NON_CONNECTED, 1 for CONNECTED, or 2 for DISCONNECTED
  • shareAddress (B) is true if the address is allowed to be shared with other peers
  • inbound (B) is true if the peer has made a request to this node
  • inboundWebSocket (B) is true if an inbound websocket has been established from this node
  • outboundWebSocket (B) is true if an outbound websocket has been established to this node
  • lastConnectAttempt (B) is the timestamp (in seconds since the genesis block) of the last connection attempt to the peer
  • requestProcessingTime (N) is the API request processing time (in millisec)

Set API Proxy Peer Example

http://localhost:27876/nxt?
  requestType=setAPIProxyPeer&
  peer=163.172.154.74
{
 "downloadedVolume":6176,
 "address":"104.223.53.14",
 "inbound":false,
 "blockchainState":"UP_TO_DATE",
 "weight":0,
 "uploadedVolume":323,
 "services":[
  "PRUNABLE","API","API_SSL","CORS"
  ],
 "requestProcessingTime":77,
 "version":"2.0.11",
 "platform":"ARDOR-TGFQ-U33C-C37U-CMKWF",
 "inboundWebSocket":false,
 "apiSSLPort":7878,
 "lastUpdated":112610887,
 "blacklisted":false,
 "announcedAddress":"104.223.53.14",
 "apiPort":27876,
 "application":"Ardor",
 "port":27874,
 "outboundWebSocket":true,
 "lastConnectAttempt":112610887,
 "state":1,
 "shareAddress":true
}