피어 크롤러

문피어 크롤러는 P2P 네트워크의 상태와 토폴로지를 보고하기 위한 특수한 피어 포트 방식입니다. 이 API 방법은 기본적으로 피어 프로토콜 포트를 통해 권한 없이 사용할 수 있으며, 컨센서스, ledger 기록 및 기타 필요한 정보에 대한 rippled 서버의 P2P 통신에도 사용됩니다.

피어 크롤러가 보고하는 정보는 사실상 공개되며, 전체 XRP Ledger 네트워크, 상태 및 토폴로지에 대해 보고하는 데 사용할 수 있습니다.

요청 형식

피어 크롤러 정보를 요청하려면 다음 HTTP 요청을 보내세요:

  • 프로토콜: https

  • HTTP 메소드: GET

  • 호스트: (rippled 서버, 호스트 이름 또는 IP 주소 기준)

  • 포트: (rippled 서버가 피어 프로토콜을 사용하는 포트 번호, 일반적으로 51235)

  • 경로: /crawl

  • 보안: 대부분의 rippled 서버는 자체 서명된 인증서를 사용하여 요청에 응답합니다. 기본적으로 대부분의 도구(웹 브라우저 포함)는 이러한 응답을 신뢰할 수 없는 것으로 플래그를 지정하거나 차단합니다. 이러한 서버의 응답을 표시하려면 인증서 검사를 무시해야 합니다(예: cURL을 사용하는 경우 --insecure 플래그 추가).

응답 형식

응답에는 상태 코드 200 OK와 메시지 본문에 JSON 객체가 있습니다.

JSON 객체에는 다음과 같은 필드가 있습니다:

Field

설명

counts

객체

(생략할 수 있음) get_counts 메서드의 응답과 유사한 이 서버의 상태에 대한 통계입니다. 기본 구성에서는 이 필드를 보고하지 않습니다. 보고되는 정보에는 원장 및 트랜잭션 데이터베이스의 크기, 애플리케이션 내 캐시에 대한 캐시 적중률, 메모리에 캐시된 다양한 유형의 개체 수 등이 포함됩니다. 메모리에 저장될 수 있는 오브젝트 유형에는 원장(Ledger), 트랜잭션(STTx), 유효성 검사 메시지(STValidation) 등이 포함됩니다.

overlay

객체

(생략 가능) 피어 메서드의 응답과 유사하게 현재 이 서버에 연결된 피어 서버에 대한 정보입니다. 객체의 배열인 활성 필드가 하나 포함되어 있습니다(아래 참조).

server

객체

unl

객체

version

숫자

overlay.active 배열의 각 멤버는 다음 필드를 가진 객체입니다:

Field

설명

complete_ledgers

문자열

이 피어가 사용할 수 있는 원장 버전 범위입니다.

complete_shards

문자열

(생략 가능) 이 피어가 사용할 수 있는 원장 기록 샤드의 범위입니다.

ip

문자열(IPv4 주소)

port

문자열(숫자)

public_key

문자열(Base-64 인코딩)

이 피어에서 RTXP 메시지에 서명하는 데 사용하는 ECDSA 키 쌍의 공개 키입니다. (이는 피어 서버의 server_info 메서드가 보고한 pubkey_node와 동일한 데이터입니다.)

type

문자열

피어에 대한 TCP 연결이 수신인지 또는 발신인지를 나타내는 값입니다.

uptime

숫자

서버가 이 피어에 연결된 시간(초)입니다.

version

문자열

피어가 사용 중이라고 보고하는 rippled 버전 번호입니다.

예시

요청:

GET https://localhost:51235/crawl

응답:

200 OK

{
    "overlay": {
        "active": [
            {
                "complete_ledgers": "45498918-45500918",
                "ip": "88.99.137.170",
                "port": "51235",
                "public_key": "AkU+AY9FWh8AXMc43fAUM69SzfAMGat0d/N+qx3kD6Dg",
                "type": "out",
                "uptime": 208,
                "version": "rippled-1.2.1"
            },
            {
                "complete_ledgers": "45500790-45500918",
                "ip": "198.13.58.221",
                "port": "51235",
                "public_key": "AlQvJAlNDYtoBSaZCXM0pT5RWvdOW9QhMW5++mHswkej",
                "type": "out",
                "uptime": 208,
                "version": "rippled-1.2.0"
            },
            {
                "complete_ledgers": "45500662-45500918",
                "ip": "52.90.101.104",
                "port": "51235",
                "public_key": "AkA04ujnwMn8mRyfJg4K7vzcQSOG7FHq4wUg60OQWnCY",
                "type": "out",
                "uptime": 209,
                "version": "rippled-1.2.1"
            },
            {
                "complete_ledgers": "45500662-45500918",
                "ip": "54.202.12.93",
                "port": "51235",
                "public_key": "AxoekFvFYzELGty9cqiXZB+NsOWTZ0Qs9mFIw69CGb3d",
                "type": "out",
                "uptime": 209,
                "version": "rippled-1.2.1"
            },
            {
                "complete_ledgers": "45498918-45500918",
                "ip": "173.255.240.113",
                "port": "51235",
                "public_key": "A4lWBMIDEQrO8Eerp9Hj3rFacbV0FiID3wTIx8Aoplq2",
                "type": "out",
                "uptime": 209,
                "version": "rippled-1.1.0"
            },
            {
                "complete_ledgers": "45499894-45500918",
                "ip": "54.186.73.52",
                "port": "51235",
                "public_key": "AjikFnq0P2XybCyREr2KPiqXqJteqwPwVRVbVK+93+3o",
                "type": "out",
                "uptime": 209,
                "version": "rippled-1.2.1"
            },
            {
                "complete_ledgers": "45499894-45500918",
                "ip": "54.186.248.91",
                "port": "51235",
                "public_key": "A4A4TPA17KlUjstp7fcL0qaWd4X+fvZ5MTxG5P5AggHW",
                "type": "out",
                "uptime": 209,
                "version": "rippled-1.2.1"
            },
            {
                "complete_ledgers": "45490918-45500918",
                "ip": "162.243.114.118",
                "port": "51235",
                "public_key": "AufDkW4E1DOxjzRPj46Eu+AyJdsakUeJTz3xklv1kCfp",
                "type": "out",
                "uptime": 209,
                "version": "rippled-1.2.1"
            },
            {
                "complete_ledgers": "45498918-45500918",
                "ip": "::ffff:45.56.78.201",
                "port": "51235",
                "public_key": "AmsXz4UUqjlz6iy8HHhZdHmBHteEBwYZLOHCHA4puCwj",
                "type": "out",
                "uptime": 209,
                "version": "rippled-1.1.0"
            },
            {
                "complete_ledgers": "32570-45500918",
                "ip": "169.55.164.30",
                "port": "51235",
                "public_key": "Aw7J0CVhFKt0h6PDEpqu6t4LbPY0PsX8jCFbvSQFDOkW",
                "type": "out",
                "uptime": 209,
                "version": "rippled-1.2.1"
            }
        ]
    },
    "server": {
        "build_version": "1.2.1",
        "complete_ledgers": "45500881-45500888",
        "io_latency_ms": 1,
        "jq_trans_overflow": "0",
        "last_close": {
            "converge_time": 3002,
            "proposers": 25
        },
        "load_base": 256,
        "load_factor": 256,
        "load_factor_fee_reference": 256,
        "load_factor_server": 256,
        "peer_disconnects": "0",
        "peer_disconnects_resources": "0",
        "peers": 10,
        "pubkey_node": "n9MJZBu5HyxyEq8xPGBxXFTfT3uzdnNsvR6R1NyXxbEzt79SrZJE",
        "published_ledger": 45500888,
        "server_state": "full",
        "server_state_duration_us": "40756665",
        "state_accounting": {
            "connected": {
                "duration_us": "163459544",
                "transitions": 1
            },
            "disconnected": {
                "duration_us": "2539592",
                "transitions": 1
            },
            "full": {
                "duration_us": "40756665",
                "transitions": 1
            },
            "syncing": {
                "duration_us": "5071794",
                "transitions": 1
            },
            "tracking": {
                "duration_us": "1",
                "transitions": 1
            }
        },
        "time": "2019-Mar-02 01:48:50.912360",
        "uptime": 213,
        "validated_ledger": {
            "close_time": 604806530,
            "hash": "00415B0ECF1D31E8DC9A7DCB04CAF1FD47E61D4D9D047743C1508CDBD36576CE",
            "reserve_base": 20000000,
            "reserve_inc": 5000000,
            "seq": 45500918
        }
    },
    "unl": {
        "local_static_keys": [],
        "publisher_lists": [
            {
                "available": true,
                "expiration": "2019-Mar-06 00:00:00.000000000",
                "pubkey_publisher": "ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734",
                "seq": 47,
                "uri": "https://vl.ripple.com",
                "version": 1
            }
        ],
        "validator_list": {
            "count": 1,
            "expiration": "2019-Mar-06 00:00:00.000000000",
            "status": "active"
        },
        "validator_sites": [
            {
                "last_refresh_status": "accepted",
                "last_refresh_time": "2019-Mar-02 01:45:19.940242379",
                "next_refresh_time": "2019-Mar-02 01:50:19.568004480",
                "refresh_interval_min": 5,
                "uri": "https://vl.ripple.com"
            }
        ]
    },
    "version": 2
}

참조

  • 피어 프로토콜.

  • 피어 크롤러 구성.

  • 유효성 검사 기록 서비스는 피어 크롤러를 사용하여 유효성 검사 관련 데이터를 수집, 집계, 저장 및 배포하는 서비스의 예입니다.

Last updated