구독
문자열문문자열구독 메소드는 특정 이벤트가 발생하면 서버에 주기적으로 알림을 요청합니다.
요청 형식
요청 형식의 예시입니다:
요청에는 다음 매개 변수가 포함됩니다:
Field
유형
설명
streams
배열
(선택 사항) 아래 설명된 대로 구독할 일반 스트림의 문자열 이름 배열
accounts
배열
(선택 사항) 검증된 거래를 모니터링할 고유한 계정 주소가 포함된 배열입니다. 주소는 XRP Ledger의 base58 형식 이어야 합니다. 서버는 이러한 계정 중 하나 이상에 영향을 미치는 모든 거래에 대한 알림을 보냅니다.
accounts_proposed
배열
(선택 사항) 계정과 비슷하지만 아직 완료되지 않은 거래를 포함합니다.
books
배열
(선택 사항) 아래에 자세히 설명된 대로 업데이트를 모니터링할 오더북을 정의하는 개체 배열입니다.
url
문자열
(웹소켓의 경우 선택 사항, 그렇지 않은 경우 필수) 서버가 각 이벤트에 대해 JSON-RPC 콜백을 전송하는 URL입니다. 관리자 전용.
url_username
문자열
(선택 사항) 콜백 URL에서 기본 인증을 제공하기 위한 사용자 이름입니다.
url_password
문자열
(선택 사항) 콜백 URL에서 기본 인증을 제공하기 위한 비밀번호입니다.
사용자, 비밀번호, rt_accounts 매개변수는 더 이상 사용되지 않으며 별도의 통지 없이 제거될 수 있습니다.
스트림 매개변수는 다음과 같은 기본 정보 스트림에 대한 액세스를 제공합니다:
consensus - 서버가 컨센서스 주기에서 단계가 변경될 때마다 메시지를 보냅니다.
ledger - 컨센서스 프로세스가 새로운 검증 ledger을 선언할 때마다 메시지를 보냅니다.
manifests - 서버가 검증자의 임시 서명 키에 대한 업데이트를 받을 때마다 메시지를 보냅니다.
peer_status - (관리자만 해당) 연결된 피어 rippled 서버에 대한 정보, 특히 컨센서스 프로세스와 관련된 정보입니다.
transactions - 트랜잭션이 폐쇄 ledger에 포함될 때마다 메시지를 보냅니다.
transactions_proposed- 트랜잭션이 폐쇄 ledger에 포함될 때마다 메시지를 전송하며, 아직 검증 ledger에 포함되지 않았고 앞으로도 포함되지 않을 수도 있는 일부 트랜잭션도 포함됩니다. 제안된 모든 트랜잭션이 검증 전에 표시되는 것은 아닙니다. 참고: 성공하지 못한 일부 트랜잭션도 스팸 방지 트랜잭션 수수료를 받기 때문에 검증 ledger에 포함됩니다.
server - rippled 서버의 상태(예: 네트워크 연결)가 변경될 때마다 메시지를 보냅니다.
validations - 서버가 유효성 검증인을 신뢰하는지 여부에 관계없이 서버가 유효성 검사 메시지를 수신할 때마다 메시지를 보냅니다. (서버가 최소 정족수 이상의 신뢰할 수 있는 검증인으로부터 유효성 검사 메시지를 수신하면 개별 Ripple은 ledger이 유효하다고 선언합니다.)
Note:
books 배열의 각 멤버는 제공된 경우 다음 필드를 가진 객체입니다:
Field
유형
설명
snapshot
Boolean
(선택 사항) true인 경우 업데이트를 보내기 전에 구독할 때 주문서의 현재 상태를 한 번 반환합니다. 기본값은 false입니다.
both
Boolean
(선택 사항) 참이면 오더북의 양쪽을 모두 반환합니다. 기본값은 false입니다.
응답 형식
성공적인 응답의 예입니다:
응답은 표준 형식을 따릅니다. 응답에 포함된 필드는 요청에 포함된 구독에 따라 달라집니다.
accounts 및 accounts_proposed - 반환되는 필드가 없습니다.
스트림: 서버 - load_base(서버의 현재 부하 수준), random(무작위로 생성된 값) 등 서버 상태에 대한 정보(변경될 수 있음).
스트림: 트랜잭션, 스트림: 트랜잭션_제안, 스트림: 유효성 검사 및 스트림: 컨센서스 - 반환되는 필드가 없습니다.
스트림: ledger - 보유 중인 ledger과 현재 수수료 일정에 대한 정보입니다. 여기에는 ledger 스트림 메시지와 동일한 필드가 포함되지만, 유형과 txn_count 필드가 생략됩니다.
books - 기본적으로 반환되는 필드가 없습니다. 요청에 "스냅샷": true가 설정되어 있으면 오퍼(오더북을 정의하는 오퍼 정의 객체 배열)를 반환합니다.
발생 가능한 오류
일반적인 오류 유형입니다.
invalidParams - 하나 이상의 필드가 잘못 지정되었거나 하나 이상의 필수 필드가 누락되었습니다.
noPermission - 요청에 URL 필드가 포함되어 있지만 관리자로 연결되어 있지 않습니다.
unknownStream - 요청의 스트림 필드에 있는 하나 이상의 멤버가 유효한 스트림 이름이 아닙니다.
malformedStream - 요청의 스트림 필드 형식이 올바르지 않습니다.
malformedAccount - 요청의 계정 또는 계정_제안 필드에 있는 주소 중 하나가 올바른 형식의 XRP 레저 주소가 아닙니다. (참고:: 글로벌 ledger에 아직 항목이 없는 주소의 스트림을 구독하여 해당 주소가 펀딩될 때 메시지를 받을 수 있습니다.)
srcCurMalformed - 요청에 있는 도서 필드의 하나 이상의 테이커_페이즈 하위 필드의 형식이 올바르지 않습니다.
dstAmtMalformed - 요청에 있는 도서 필드의 하나 이상의 taker_gets 하위 필드 형식이 올바르지 않습니다.
srcIsrMalformed - 요청에 있는 도서 필드의 하나 이상의 taker_pays 하위 필드 중 발행자 필드가 유효하지 않습니다.
dstIsrMalformed - 요청에 있는 도서 필드의 하나 이상의 taker_gets 하위 필드 중 하나 이상의 발행자 필드가 유효하지 않습니다.
badMarket - 호가창 필드에 있는 하나 이상의 원하는 오더북이 존재하지 않습니다(예: 자체 통화 교환 오퍼).
특정 스트림을 구독하면 구독을 취소하거나 웹소켓 연결을 닫을 때까지 해당 스트림에서 주기적으로 응답을 받습니다. 이러한 응답의 내용은 구독한 스트림에 따라 다릅니다. 다음은 몇 가지 예입니다:
Ledger 스트림
ledger 스트림은 컨센서스 프로세스가 새로운 검증 ledger을 선언할 때만 ledgerClosed 메시지를 전송합니다. 이 메시지는 ledger을 식별하고 ledger의 내용에 대한 몇 가지 정보를 제공합니다.
ledger 스트림 메시지의 필드는 다음과 같습니다:
Field
유형
설명
type
문자열
ledgerClosed는 원장 스트림에서 가져온 것임을 나타냅니다.
fee_base
숫자
이 원장 버전 기준의 기준 트랜잭션 비용(XRP 단위)입니다. 이 원장 버전에 SetFee 의사 트랜잭션이 포함된 경우 다음 원장 버전부터 새로운 트랜잭션 비용이 적용됩니다.
fee_ref
숫자
"수수료 단위"로 표시된 참조 트랜잭션 비용입니다.
reserve_base
숫자
계정에 필요한 최소 예치금(XRP 단위)입니다. 이 원장 버전에 SetFee 의사 트랜잭션이 포함된 경우 다음 원장 버전부터 새로운 기본 준비금이 적용됩니다.
reserve_inc
숫자
계정이 원장에 소유하고 있는 각 개체에 대한 소유자 준비금(XRP 단위)입니다. 원장에 SetFee 의사 트랜잭션이 포함된 경우 새 소유자 준비금은 이 원장 이후부터 적용됩니다.
txn_count
숫자
원장 버전에 포함된 새 트랜잭션의 수입니다.
validated_ledgers
문자열
(생략 가능) 서버에서 사용할 수 있는 원장의 범위입니다. 24900901-24900984,24901116-24901158과 같이 분리되지 않은 시퀀스일 수 있습니다. 서버가 네트워크에 연결되어 있지 않거나 연결되어 있지만 아직 네트워크에서 원장을 가져오지 않은 경우에는 이 필드가 반환되지 않습니다.
검증 스트림
검증 스트림은 검증 메시지가 신뢰할 수 있는 검증자가 보낸 것인지 여부와 관계없이 검증 투표라고도 하는 검증 메시지를 수신할 때마다 메시지를 보냅니다. 메시지는 다음과 같습니다:
유효성 검증 스트림 메시지의 필드는 다음과 같습니다:
Field
유형
설명
type
문자열
값은 validationReceived이것이 검증 스트림에서 나온 것임을 나타냅니다.
amendments
문자열 배열
(생략 가능) 이 서버가 프로토콜에 추가하려는 수정 사항 입니다.
base_fee
정수
(생략 가능) 이 서버가 수수료 투표를reference_fee 통해 설정하려는 실제 거래 비용(가치)입니다.
cookie
문자열 - 숫자
(생략 가능) 서버 시작 시 서버가 선택한 임의의 값입니다. 동일한 검증 키 쌍이 동시에 다른 쿠키로 검증에 서명하는 경우 이는 일반적으로 여러 서버가 동일한 검증 키 쌍을 사용하도록 잘못 구성되었음을 나타냅니다.
flags
숫자
이 검증 메시지에 플래그의 비트 마스크가 추가되었습니다. 플래그는 0x80000000유효성 검사 서명이 완전 표준임을 나타냅니다. 플래그는 0x00000001이것이 완전한 검증임을 나타냅니다. 그렇지 않으면 부분 검증입니다. 부분 검증은 특정 원장에 투표하기 위한 것이 아닙니다. 부분 검증은 검증인이 여전히 온라인 상태이지만 합의를 따라잡지 못하고 있음을 나타냅니다.
full
Boolean
true이면 이는 완전한 검증입니다. 그렇지 않으면 부분 검증입니다. 부분 검증은 특정 원장에 투표하기 위한 것이 아닙니다. 부분 검증은 검증인이 여전히 온라인 상태이지만 합의를 따라잡지 못하고 있음을 나타냅니다.
ledger_hash
문자열
제안된 원장의 식별 해시가 검증되고 있습니다.
ledger_index
문자열 - 숫자
제안된 원장의 원장 인덱스입니다.
load_fee
정수
(생략 가능) 이 검증인이 현재 시행하고 있는 로컬 로드 스케일 거래 비용(수수료 단위)입니다.
master_key
문자열
(생략 가능) 검증인이 검증인 토큰을 사용하는 경우 XRP Ledger의 base58 형식인 검증인의 마스터 공개 키입니다. (참조: 서버 에서 유효성 검사 활성화rippled.)
reserve_base
정수
(생략 가능) 이 검증인이 수수료 투표를account_reserve 통해 설정하려는 최소 준비금 요구 사항( 값)입니다.
reserve_inc
정수
(생략 가능) 이 검증인이 수수료 투표를owner_reserve 통해 설정하려는 준비금 요구 사항(가치)의 증가분입니다 .
server_version
문자열 - 숫자
(생략 가능) 검증 서버의 버전 번호를 인코딩하는 64비트 정수입니다. 예를 들어, "1745990410175512576". 256개의 원장마다 한 번만 제공됩니다.
signature
문자열
검증인이 이 원장에 대한 투표에 서명하는 데 사용한 서명입니다.
validated_hash
문자열
이 검증이 적용되는 제안된 원장의 고유 해시입니다.
validation_public_key
문자열
유효성 검사자가 메시지에 서명하는 데 사용한 키 쌍의 공개 키로, XRP Ledger의 base58 형식입니다. 이는 메시지를 전송하는 검증자를 식별하며 서명을 확인하는 데 사용할 수도 있습니다. 유효성 검사자가 토큰을 사용하는 경우, 이 키는 임시 공개 키입니다.
트랜잭션 스트림
많은 구독에서 다음과 같은 트랜잭션에 대한 메시지가 생성됩니다:
트랜잭션 스트림
transactions_proposed 스트림
계정 구독
accounts_proposed 구독
book (오더북) 구독
트랜잭션 스트림은 엄밀히 말하면 트랜잭션 스트림의 상위 스트림으로, 검증된 모든 트랜잭션과 아직 검증 ledger에 포함되지 않았고 앞으로도 포함되지 않을 수 있는 일부 제안 트랜잭션이 포함됩니다. 이러한 '진행 중인' 트랜잭션은 필드를 통해 식별할 수 있습니다:
유효성 검증된 필드가 누락되었거나 값이 거짓입니다.
메타 또는 메타데이터 필드가 없습니다.
트랜잭션이 어떤 ledger 버전에서 완료되었는지를 나타내는 ledger_hash 및 ledger_index 필드 대신, 현재 어떤 ledger 버전에서 제안되었는지를 나타내는 ledger_current_index 필드가 있습니다.
그렇지 않으면, 트랜잭션 제안 스트림의 메시지는 트랜잭션 스트림의 메시지와 동일합니다.
계좌나 오더북을 수정할 수 있는 것은 트랜잭션뿐이므로 특정 계좌나 장부를 구독한 결과로 전송되는 메시지 역시 트랜잭션 스트림의 메시지와 동일한 트랜잭션 메시지 형태를 취합니다. 유일한 차이점은 보고 있는 계좌 또는 오더북에 영향을 주는 거래에 대한 메시지만 수신한다는 것입니다.
accounts_proposed 구독도 같은 방식으로 작동하지만, 감시 중인 계좌에 대해 transactions_proposed 스트림과 같이 미확인 트랜잭션도 포함된다는 점이 다릅니다.
트랜잭션 스트림 메시지에는 다음과 같은 필드가 있습니다:
Field
유형
설명
type
문자열
트랜잭션은 여러 스트림에서 발생할 수 있는 트랜잭션의 알림임을 나타냅니다.
engine_result
문자열
문자열 트랜잭션 결과 코드
engine_result_code
숫자
숫자 트랜잭션 응답 코드(해당되는 경우).
engine_result_message
문자열
트랜잭션 응답에 대한 사람이 읽을 수 있는 설명
meta
객체
(검증한 트랜잭션만 해당) 트랜잭션의 정확한 결과를 자세히 보여주는 트랜잭션 메타데이터입니다.
transaction
객체
JSON 형식의 트랜잭션 정의입니다.
validated
Boolean
참이면 이 트랜잭션은 유효성 검사된 원장에 포함되며 그 결과는 최종적입니다. 트랜잭션 스트림의 응답은 항상 유효성을 검사해야 합니다.
피어 상태 스트림
관리자 전용 피어 상태 스트림은 이 서버가 연결된 다른 rippled 서버의 활동, 특히 컨센서스 과정에서의 상태에 대한 많은 양의 정보를 보고합니다.
피어 상태 스트림 메시지 예시:
피어 상태 스트림 메시지는 피어 rippled 서버의 상태가 변경된 이벤트를 나타냅니다. 이러한 메시지는 다음 필드를 가진 JSON 객체입니다:
Field
값
설명
type
문자열
피어 상태 변경은 피어 상태 스트림에서 온 메시지임을 나타냅니다.
action
문자열
이 메시지를 표시한 이벤트 유형입니다. 가능한 값은 피어 상태 이벤트를 참조하세요.
date
숫자
이 이벤트가 발생한 시간(Ripple 에포크 이후 초 단위)입니다.
ledger_hash
문자열
(생략 가능) 이 메시지와 관련된 원장 버전의 식별 해시입니다.
ledger_index
숫자
(생략 가능) 이 메시지와 관련된 원장 버전의 원장 인덱스입니다.
ledger_index_max
숫자
(생략 가능) 피어가 현재 사용할 수 있는 최대 레저 인덱스입니다.
ledger_index_min
숫자
생략 가능) 피어가 현재 사용할 수 있는 가장 작은 원장 인덱스입니다.
피어 상태 이벤트
피어 상태 스트림 메시지의 작업 필드에는 다음과 같은 값이 있을 수 있습니다:
Value
의미
CLOSING_LEDGER
피어는 이 Ledger Index를 사용하여 원장 버전을 마감했습니다. 이는 일반적으로 합의가 곧 시작됨을 의미합니다.
ACCEPTED_LEDGER
피어는 합의 라운드의 결과로 이 원장 버전을 구축했습니다. 참고: 이 원장은 여전히 불변적으로 검증될지 확실하지 않습니다.
SWITCHED_LEDGER
피어는 네트워크의 나머지 부분을 따르지 않는다고 결론을 내리고 다른 원장 버전으로 전환했습니다.
LOST_SYNC
피어는 검증된 원장 버전과 합의가 진행 중인 버전을 추적하는 데 있어 네트워크의 나머지 부분보다 뒤쳐졌습니다
오더북 스트림
오더북 필드를 사용하여 하나 이상의 오더북을 구독하면 해당 오더북에 영향을 주는 모든 트랜잭션을 반환받습니다.
오더북 스트림 메시지 예시:
오더북 스트림 메시지의 형식은 거래 스트림 메시지의 형식과 동일하지만 오퍼 생성 트랜잭션에 다음 필드도 포함된다는 점이 다릅니다:
Field
값
설명
transaction.owner_funds
문자열
이 거래를 실행한 후 이 OfferCreate 거래를 보내는 TakerGets
통화 의 숫자 금액입니다 . Account
통화 금액이 동결 되었는지 여부는 확인하지 않습니다.
컨센서스 스트림
컨센서스 스트림은 컨센서스 프로세스가 페이즈를 변경할 때 컨센서스 페이즈 메시지를 보냅니다. 이 메시지에는 서버가 속한 새로운 컨센서스 단계가 포함됩니다.
컨센서스 스트림 메시지의 필드는 다음과 같습니다:
Field
유형
설명
type
문자열
consensusPhase
이는 합의 흐름에서 나온 것임을 나타냅니다.
consensus
문자열
서버가 현재 진행 중인 새로운 합의 단계입니다. 가능한 값은 open
, establish
및 accepted
입니다.
Last updated