XRPL Docs (Korean)
  • XRPL Docs(Kor)
  • Introduction
    • XRP Ledger란?
    • XRP란?
    • Crypto Wallets
    • Transactions and Requests
    • Software Ecosystem
  • Use Cases
    • 결제(Payments)
      • P2P 결제(Peer-to-Peer Payments)
      • 예금 제한(Restricting Deposits)
      • 스마트 컨트랙트(Smart Contracts)
    • 토큰화(Tokenization)
      • 스테이블코인 발행인(Stablecoin Issuer)
      • NFT 마켓플레이스 개요(NFT Marketplace Overview)
    • 탈중앙화 금융(Decentralized Finance)
      • 알고리즘 트레이딩(Algorithmic Trading)
      • 거래소에 XRP 상장하기((List XRP as an Exchange)
  • Concepts
    • 소개
      • 컨센서스 소개
      • XRP
      • 소프트웨어 생태계
    • XRP Ledger 서버
      • rippled 서버 모드(rippled Server Modes)
      • 클러스터링(Clustering)
      • Ledger 역사
      • 피어 프로토콜(Peer Protocol)
      • 트랜잭션 검열 감지(Transaction Censorship Detection)
      • 병렬 네트워크(Parallel Networks)
      • 수정안(Amendments)
        • XRP Ledger에 코드를 기여하는 방법
        • 알려진 수정안
      • 클리오 서버(The Clio Server)
    • 컨센서스 네트워크(Consensus Protocol)
      • 컨센서스 구조(Consensus Structure)
      • 컨센서스 원칙과 규칙(Consensus Principles and Rules)
      • 공격과 실패 모드에 대한 컨센서스 보호(Consensus Protections Against Attacks and Failure Modes)
      • 불변성 체크
      • 부정 UNL
      • 트랜잭션 취소 정보
      • 트랜잭션 변조 가능성
      • 수수료 투표
      • 컨센서스 연구
    • Ledgers
      • Ledger 구조(Ledger Structure)
      • 개방형, 폐쇄형, 검증형 Ledgers(Open, Closed, and Validated Ledgers)
      • Ledger 마감 시간(Ledger Close Times)
    • 트랜잭션(Transactions)
      • 수수료(Fees)
      • 신뢰할 수 있는 트랜잭션 제출(Reliable Transaction Submission)
      • 보안 서명(Secure Signing)
      • 출발, 데스티네이션 태그(Source and Destination Tags)
      • 트랜잭션 비용(Transaction Cost)
      • 트랜잭션 대기열(Transaction Queue)
      • 결과의 불변성(Finality of Results)
        • 트랜잭션 결과 조회(Look Up Transaction Results)
        • Transaction Malleability
    • 결제 유형
      • XRP 직접 결제
      • 교차 화폐 결제
      • 수표
      • 에스크로
      • 부분 결제
      • 결제 채널
    • 토큰(Tokens)
      • Non-Fungible Tokens
        • NFT 정보 저장소(NFT Payload Storage)
        • XRP Ledger에서 NFT 토큰 거래(Trading NFTokens on the XRP Ledger)
        • NFT Reserve Requirements
        • 일괄 발행(Batch minting)
        • 다른 계정에게 NFT 발행 권한 부여(Authorizing Another Account to Mint Your NFTs)
        • NFT 경매 진행하기(Running an NFT Auction)
        • NFT를 컬렉션으로 발행하기(Minting NFTs into Collections)
        • NFT의 고정 공급 보장하기(Guaranteeing a Fixed Supply of NFTs)
        • NFT 관련 API(NFT APIs)
      • 신뢰선과 발급(Trust Lines and Issuing)
      • 승인된 신뢰선(Authorized Trust Lines)
      • 토큰 환수(Clawing Back Tokens)
      • Freezing Tokens(토큰 동결)
        • 동결에 대한 일반적인 오해(Common Misunderstandings about Freezes )
      • Rippling
      • 이체 수수료(Transfer Fees)
      • 경로(Paths)
      • Demurrage(과잉보유비용)
      • 탈중앙화 거래소(Decentralized Exchange)
        • 제안(Offers)
        • Auto-Bridging
        • Tick Size
        • AMM(Automated Market Makers)
    • 계정
      • 다중 서명
      • 티켓
      • 계정 유형
      • 계정 삭제
      • 준비금(Reserves)
      • 주소(Addresses)
      • 암호화 키(Cryptographic Keys)
      • 입금 승인(Deposit Authorization)
  • Tutorials
    • 퍼블릭 서버(Public Servers)
    • Python
      • Python으로 시작하기(Get Started Using Python)
      • python 모듈형 튜토리얼(Modular Tutorials in Python)
        • python을 이용한 Send Payments(Send Payments Using Python)
          • 계정 생성 및 XRP 전송(Create Accounts and Send XRP Using Python)
          • 신뢰 생성 및 Currency 전송 (Create Trust Line and Send Currency Using Python)
          • 시간 보류 에스크로 생성(Create Time-based Escrows Using Python)
        • python을 이용한 NFTs(NFTs Using Python)
          • NFTs 발행과 소각(Mint and Burn NFTs Using Python)
          • NFTs 전송 (Transfer NFTs Using Python)
          • NFT 판매 중개 (Broker an NFT Sale Using Python)
          • 공인 발행인 지정 (Assign an Authorized Minter Using Python)
          • NFTs 일괄 발행 (Batch Mint NFTs Using Python)
        • Python에서 데스크톱 지갑 구축(Build a Desktop Wallet in Python)
    • JavaScript
      • JavaScript로 시작하기(Get Started Using JavaScript)
      • JavaScript 모듈형 튜토리얼(Modular Tutorials in JavaScript)
        • JavaScript를 이용한 Send Payments(Send Payments Using JavaScript)
          • JavaScript를 이용한 계정 생성 및 XRP 전송(Create Accounts and Send XRP Using JavaScript)
          • JavaScript를 이용한 신뢰선 생성 및 화폐 전송(Create Trust Line and Send Currency Using JavaScript)
          • 시간 기반 에스크로 생성하기(Create Time-based Escrows Using JavaScript)
          • 조건부 에스크로 생성하기(Create Conditional Escrows Using JavaScript)
        • JavaScript를 이용한 NFTs(NFTs Using JavaScript)
          • JavaScript를 이용한 NFTs 발행 및 소각(Mint and Burn NFTs Using JavaScript)
          • JavaScript를 이용한 NFTs 전송(Transfer NFTs Using JavaScript)
          • JavaScript를 이용한 NFT 판매 중개(Broker an NFT Sale Using JavaScript)
          • JavaScript를 이용한 공인 발행인 지정(Assign an Authorized Minter Using JavaScript)
          • JavaScript를 이용한 NFTs 일괄 발행(Batch Mint NFTs Using JavaScript)
      • JavaScript를 이용한 브라우저 지갑 개발(Build a Browser Wallet in JavaScript)
      • JavaScript를 이용한 데스크탑 지갑 개발(Build a Desktop Wallet in JavaScript)
    • Java
      • Java로 시작하기(Get Started Using Java)
    • HTTP / Websocket APIs
      • HTTP/WebSocket API 사용 시작하기(Get Started Using HTTP / WebSocket APIs)
      • WebSocket으로 수신 결제 모니터링(Monitor Incoming Payments with WebSocket)
    • Tasks
      • 계정 설정 관리(Manage Account Settings)
        • 일반 키 쌍 할당
        • 일반 키 쌍 변경 또는 제거
        • 마스터 키 쌍 비활성화
        • 다중 서명 설정
        • 다중 서명 트랜잭션 전송
        • 데스티네이션 태그 필요
        • 오프라인 계정 설정 튜토리얼
        • 티켓 사용(Use Tickets)
      • XRP 보내기(Send XRP)
      • 특수 결제 유형 사용(Use Specialized Payment Types)
        • 에스크로 사용(Use escrow)
          • 시간 보류 에스크로 보내기(Send a Time-Held Escrow)
          • 조건부 보류 에스크로 보내기(Send a Conditionally-Held Escrow)
          • 만료된 에스크로 취소(Cancel an Expired Escrow)
          • 에스크로 조회(Look up Escrows)
          • 에스크로를 스마트 컨트랙트로 사용(Use an Escrow as a Smart Contract)
        • 결제 채널 사용(Use Payment Channels)
          • 결제 채널을 열어 거래소 간 네트워크 활성화(Open a Payment Channel to Enable an Inter-Exchange Network)
        • 수표 사용(Use Checks)
          • 수표 전송(Send a Check)
          • 정확한 금액의 수표 현금화(Cash a Check for an Exact Amount)
          • 유연한 금액의 수표 현금화(Cash a Check for a Flexible Amount)
          • 수표 취소(Cancel a Check)
          • 발신자별 수표 조회(Look Up Checks by Sender)
          • 수취인별 수표 조회(Look Up Checks by Recipient)
      • 토큰 사용(Use Tokens)
        • 대체가능한 토큰 발행(Issue a Fungible Token)
        • 탈중앙화 거래소에서 거래(Trade in the Decentralized Exchange)
        • 동결 금지 활성화
        • 글로벌 동결 시행
        • 신뢰선 동결하기
    • Apps 구축
      • JS에서 데스크톱 지갑 구축
      • JS에서 브라우저 지갑 구축
    • XRP Ledger 비즈니스
      • XRP 차트에 거래소 등록하기
      • 스테이블코인 발행자 되기
    • rippled 서버 관리
      • rippled 설치
        • 시스템 요구 사항
        • CentOS/Red Hat에 yum으로 설치하기
        • 우분투 또는 데비안 리눅스에 설치
        • 리눅스에서 자동 업데이트
        • CentOS/Red Hat에서 수동 업데이트
        • 우분투 또는 데비안에서 수동 업데이트
        • 리포팅 모드에서 rippled 빌드 및 실행
        • 용량 계획
        • rippled v1.3.x 마이그레이션 지침
      • rippled 구성
        • rippled를 검증인으로 실행하기
        • rippled를 스톡 서버로 실행
        • 수정안 투표 구성
        • 수정안 테스트
        • StatsD 구성
        • rippled를 병렬 네트워크에 연결하기
        • 온라인 삭제 구성
        • 권고 삭제 구성
        • 히스토리 샤딩 구성
        • 전체 히스토리 구성
        • gRPC 구성
        • 공개 서명 사용
      • 피어링 구성
        • 클러스터 rippled 서버
        • 비공개 서버 구성
        • 피어 크롤러 구성
        • 링크 압축 사용
        • 피어링을 위한 포트 포워드
        • 특정 피어에 수동으로 연결
        • 최대 피어 수 설정
        • 피어 예약 사용
      • stand-alone 모드에서 rippled 기능 테스트하기
        • stand-alone 모드에서 새 제네시스 ledger 시작하기
        • stand-alone 모드에서 저장된 ledger 불러오기
        • stand-alone 모드에서 ledger 진행하기
      • 문제 해결
        • rippled 문제 진단하기
        • 상태 확인 개입
        • 로그 메시지 이해
        • rippled 서버가 동기화되지 않음
        • rippled 서버가 수정이 차단됨
        • rippled 서버가 시작되지 않음
        • SQLite 트랜잭션 데이터베이스 페이지 크기 문제 해결
    • 클리오 서버 관리
      • 우분투 리눅스에 클리오 설치
  • References
    • XRP Ledger 프로토콜 참조(XRP Ledger Protocol Reference)
      • 기본 데이터 유형(Basic Data Types)
        • base58 인코딩(base58 Encodings)
        • 화폐 형식(Currency Formats)
        • NFToken
      • Ledger 데이터 형식(Ledger Data Formats)
        • Ledger 헤더(Ledger Header)
        • Ledger 객체 IDs
        • Ledger 객체 유형
          • AccountRoot
          • Amendments
          • AMM(experimental - 수정중)
          • Check
          • DepositPreauth
          • DirectoryNode
          • Escrow
          • FeeSettings
          • LedgerHashes
          • NegativeUNL
          • NFTokenOffer
          • NFTokenPage
          • Offer
          • PayChannel
          • RippleState
          • SignerList
          • Ticket
      • 트랜잭션 참조(Transaction Reference)
        • 트랜잭션 공통 필드(Transaction Common Fields)
        • 트랜잭션 유형(Transaction Types)
          • AccountSet
          • AccountDelete
          • AMMBid
          • AMMCreate
          • AMMDelete
          • AMMDeposit
          • CheckCancel
          • CheckCash
          • CheckCreate
          • DepositPreauth
          • EscrowCancel
          • EscrowCreate
          • EscrowFinish
          • NFTokenAcceptOffer
          • NFTokenBurn
          • NFTokenCancelOffer
          • NFTokenCreateOffer
          • NFTokenMint
          • OfferCancel
          • OfferCreate
          • Payment
          • PaymentChannelClaim
          • PaymentChannelCreate
          • PaymentChannelFund
          • SetRegularKey
          • SignerListSet
          • TicketCreate
          • TrustSet
        • Pseudo-Transactions
          • EnableAmendment
          • SetFee
          • UNLModify
        • 트랜잭션 결과(Transaction Results)
          • tec Codes
          • tef Codes
          • tel Codes
          • tem Codes
          • ter Codes
          • tes Success
        • 트랜잭션 메타데이터(Transaction Metadata)
      • Binary Format
    • 클라이언트 라이브러리
      • JavaScript / TypeScript 클라이언트 라이브러
        • ripple-lib 1.x에서 xrpl.js 2.x로의 마이그레이션 가이드
      • Python 클라이언트 라이브러리
      • Java 클라이언트 라이브러리
      • Ruby 클라이언트 라이브러리
    • HTTP / WebSocket APIs
      • API 규칙
        • 요청 형식
        • 응답 형식
        • 오류 형식
        • 마커 및 페이지네이션
        • 속도 제한
        • rippled 서버 상태
      • 공개 API 메소드
        • 계정 메소드
          • account_channels
          • account_currencies
          • account_info
          • account_lines
          • account_nfts
          • account_objects
          • account_offers
          • account_tx
          • gateway_balances
          • noripple_check
        • Ledger 메소드
          • ledger
          • ledger_closed
          • ledger_current
          • ledger_data
          • ledger_entry
        • 트랜잭션 메소드
          • submit
          • submit_multisigned
          • transaction_entry
          • tx
          • tx_history
        • 경로와 오더북 메소드
          • book_offers
          • deposit_authorized
          • nft_buy_offers
          • nft_sell_offers
          • path_find
          • ripple_path_find
        • 결제 채널 메소드
          • channel_authorize
          • channel_verify
        • 구독 메소드
          • 구독
          • 구독 취소
        • Server Info 메소드
          • fee
          • manifest
          • server_info (rippled)
          • server_state
        • 클리오 서버
          • server_info
          • ledger
          • nft_history
          • nft_info
        • 유틸리티 메소드
          • json
          • ping
          • random
      • 관리자 API 메소드
        • 키 생성 방법
          • validation_create
          • wallet_propose
        • 로깅 및 데이터 관리 메소드
          • can_delete
          • crawl_shards
          • download_shard
          • ledger_cleaner
          • ledger_request
          • log_level
          • logrotate
          • node_to_shard
        • 서버 컨트롤 메소드
          • ledger_accept
          • stop
          • validation_seed
        • 서명 메소드
          • sign
          • sign_for
        • 피어 관리 메소드
          • connect
          • peer_reservations_add
          • peer_reservations_del
          • peer_reservations_list
          • peers
        • 상태 및 디버깅 메소드
          • consensus_info
          • feature
          • fetch_info
          • get_counts
          • print
          • validator_info
          • validators
        • rippled 커맨드라인 사용 참조
        • 피어 포트 메소드
          • 상태 확인
          • 피어 크롤러
          • 유효성 검증인 목록 메소드
    • xrp-ledger.toml File
  • Infrastructure
    • 커맨드 라인 사용법(Commandline Usage)
    • Install rippled
      • System Requirements
      • Install on CentOS/RedHat with yum
      • Install on Ubuntu or Debian Linux
      • Update Automatically on Linux
      • Update Manually on CentOS/Red Hat
      • Update Manually on Ubuntu or Debian
      • Build and Run rippled in Reporting Mode
      • Capacity Planning
    • Configure rippled
      • Server Modes
        • Run rippled as a Validator
        • Run rippled as a Stock Server
      • Data Retention
        • Configure Full History
        • 온라인 삭제(Online Deletion)
        • Configure Online Deletion
        • Configure Advisory Deletion
        • 히스토리 샤딩(History Sharding)
        • Configure History Sharding
      • Configure Amendment Voting
      • Test Amendments
      • Configure StatsD
      • Connect Your rippled to a Parallel Network
      • Configure gRPC
      • Enable Public Signing
    • Peering
      • Cluster rippled Servers
      • Configure a Private Server
      • Configure the Peer Crawler
      • Enable Link Compression
      • Forward Ports for Peering
      • Manually Connect to a Specific Peer
      • Set Maximum Number of Peers
      • Use a Peer Reservation
    • Testing and Auditing
      • Start a New Genesis Ledger in Stand-Alone Mode
      • Load a Saved Ledger in Stand-Alone Mode
      • Advance the Ledger in Stand-Alone Mode
    • Troubleshooting
      • Diagnosing Problems with rippled
      • Health Check Interventions
      • Understanding Log Messages
      • rippled Server Doesn't Sync
      • rippled Server is Amendment Blocked
      • rippled Server Won't Start
    • Install Clio on Ubuntu Linux
    • Run a Private Network with Docker
Powered by GitBook
On this page
  • 주소(Addresses)
  • 해시(Hashes)
  • 해시 접두사(Hash Prefixes)
  • 계정 시퀀스(Account Sequence)
  • Ledger 인덱스(Ledger Index)
  • Ledgers 지정하기(Specifying Ledgers)
  • 화폐 금액 지정하기(Specifying Currency Amounts)
  • 시간 지정하기(Specifying Time)
  1. References
  2. XRP Ledger 프로토콜 참조(XRP Ledger Protocol Reference)

기본 데이터 유형(Basic Data Types)

각기 다른 유형의 객체는 각기 다른 방식으로 고유하게 식별됩니다: 계정은 주소로 식별됩니다(예: "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59"). 주소는 항상 "r"로 시작합니다. 많은 rippled 메소드는 16진수 표현도 허용합니다. 트랜잭션은 트랜잭션의 바이너리 형식의 해시로 식별됩니다. 트랜잭션의 송금 계정과 시퀀스 번호로도 트랜잭션을 식별할 수 있습니다. 닫혀있는 각 ledger에는 ledger 인덱스와 해시값이 있습니다. ledger를 지정할 때 두 가지 중 하나를 사용할 수 있습니다.

주소(Addresses)

XRP Ledger의 계정은 XRP Ledger의 base58 형식의 주소로 식별됩니다. 주소는 계정의 마스터 공개 키에서 파생되며, 이는 다시 비밀 키에서 파생됩니다. 주소는 JSON에서 문자열로 표시되며 다음과 같은 특징이 있습니다:

  • 25~35자 길이.

  • 문자 r로 시작.

  • 숫자 "0", 대문자 "O", 대문자 "I", 소문자 "l"을 제외한 영숫자 문자 사용.

  • 대소문자 구분.

  • 임의의 문자로부터 유효한 주소를 생성할 확률이 약 2**32분의 1이 되도록 4바이트 체크섬을 포함합니다.

Note:

XRP 커뮤니티에서는 주소에 데스티네이션 태그를 "포장"하는 X-주소 형식을 제안했습니다. 이러한 주소는 X(메인넷의 경우) 또는 T(테스트넷의 경우)로 시작합니다. 거래소와 지갑은 X-주소를 사용하여 고객이 알아야 하는 모든 데이터를 하나의 값으로 나타낼 수 있습니다. 자세한 내용은 X-주소 형식 사이트 및 코덱을 참조하세요.

XRP Ledger 프로토콜은 기본적으로 "클래식" 주소만 지원하지만, 많은 클라이언트 라이브러리가 X-주소도 지원합니다.

자세한 내용은 계정 및 base58 인코딩을 참조하세요.

해시(Hashes)

XRP Ledger의 많은 객체, 특히 트랜잭션과 ledger은 256비트 해시값으로 고유하게 식별됩니다. 이 값은 일반적으로 일부 내용에서 SHA-512 해시를 계산한 다음 출력의 첫 번째 절반을 취하는 "SHA-512Half"로 계산됩니다. (이는 256비트, 즉 32바이트 또는 16진수 표현으로 64자에 해당합니다.) 객체의 해시는 충돌이 발생할 가능성이 극히 낮은 방식으로 내용물에서 파생되므로, 동일한 해시를 가진 두 객체는 동일한 것으로 간주할 수 있습니다. XRP Ledger 해시 값은 다음과 같은 특징을 가지고 있습니다:

  • 정확히 64자 길이.

  • 16진수 문자 집합: 0-9 및 A-F.

  • 일반적으로 대문자로 작성됩니다.

Note:

SHA-512Half는 공식적으로 정의된 SHA-512/256 해시 함수와 유사한 보안성을 가지고 있습니다. 그러나 XRP Ledger는 SHA-512/256보다 먼저 사용되었으며, 기존 SHA-512 함수 위에 구현하기가 더 쉽습니다. (이 글을 쓰는 현재, 암호화 라이브러리에서 SHA-512를 지원하는 것이 SHA-512/256보다 훨씬 더 일반적입니다.)

해시 접두사(Hash Prefixes)

많은 경우, XRP Ledger는 해시를 계산하기 전에 객체의 바이너리 데이터에 4바이트 코드를 접두사로 붙이기 때문에, 바이너리 형식이 동일하더라도 다른 유형의 객체는 다른 해시를 갖습니다. 기존 4바이트 코드는 알파벳 세 개와 0바이트가 뒤에 오는 ASCII로 인코딩된 구조로 되어 있습니다. 일부 유형의 해시는 API 요청과 응답에 나타납니다. 다른 유형은 특정 유형의 데이터에 서명하거나 상위 수준의 해시를 계산하는 첫 번째 단계로만 계산됩니다. 다음 표는 XRP Ledger가 사용하는 모든 4바이트 해시 접두사를 보여줍니다:

객체 유형
API 필드
해시 접두사(16진수)
해시 접두사(텍스트)

컨센서스 제안

N/A

0x50525000

PRP\0

Ledger 버전

ledger_hash

0x4C575200

LWR\0

Ledger 상태 데이터

0x4D4C4E00

MLN\0

Ledger 데이터 내부 노드

N/A

0x4D494E00

MIN\0

Ledger 데이터 내부 노드(SHAMapv2)

N/A

0x494E5200

INR\0

결제 채널 클레임

N/A

0x434C4D00

CLM\0

서명된 트랜잭션

hash of transactions

0x54584E00

TXN\0

메타데이터를 사용한 트랜잭션

N/A

0x534E4400

SND\0

서명되지 않은 트랜잭션(단일 서명)

N/A

0x53545800

STX\0

서명되지 않은 트랜잭션(다중 서명)

N/A

0x534D5400

SMT\0

유효성 검사 투표

N/A

0x56414C00

VAL\0

유효성 검사기 매니페스트

N/A

0x4D414E00

MAN\0

Ledger 객체 ID도 비슷한 방식으로 계산되지만, 여기에 설명된 형식의 접두사 대신 "스페이스 키"라고 하는 2바이트 접두사를 사용합니다.

계정 시퀀스(Account Sequence)

시퀀스 번호는 32비트 부호 없는 정수로, 특정 발신자의 트랜잭션이 각각 한 번씩만 올바른 순서로 실행되도록 하는 데 사용됩니다.

XRP Ledger의 모든 계정에는 시퀀스 필드에 시퀀스 번호가 있으며, 해당 계정이 트랜잭션을 전송하고 해당 트랜잭션이 검증된 ledger에 포함될 때마다 시퀀스 번호는 1씩 증가합니다. 또한 각 트랜잭션에는 시퀀스 필드에 시퀀스 번호가 있으며, 트랜잭션이 실행될 때 계정의 현재 시퀀스 번호와 일치해야 합니다. 각 계정에 대해 각 시퀀스 번호는 번호 순서대로 한 번만 사용할 수 있습니다.

티켓은 이러한 규칙에서 몇 가지 예외를 적용하므로 일반적인 순서를 벗어난 트랜잭션을 보낼 수 있습니다. 티켓은 나중에 사용하기 위해 예약된 시퀀스 번호를 나타내며, 트랜잭션은 일반 시퀀스 번호 대신 티켓을 사용할 수 있습니다.

DeletableAccounts 수정으로 계정의 시작 시퀀스 번호는 계정이 생성된 ledger 버전의 ledger 인덱스와 일치합니다. DeletableAccounts 이전에는 모든 계정이 시퀀스 번호 1로 시작되었습니다.

ledger에서 주소와 시퀀스 번호는 때때로 해당 발신자와 시퀀스 번호로 유효성이 검증된 트랜잭션에 의해 생성된 객체를 식별하기 위해 함께 사용됩니다. 에스크로와 제안이 이러한 방식으로 식별되는 객체의 예입니다.

여러 개의 미확인 트랜잭션이 동일한 발신자 및 시퀀스 번호를 가질 수 있습니다. 이러한 트랜잭션은 상호 배타적이며, 최대 하나의 트랜잭션만 검증된 ledger에 포함될 수 있습니다. (다른 트랜잭션은 궁극적으로 아무런 효력이 없습니다.)

Ledger 인덱스(Ledger Index)

Ledger 인덱스는 ledger을 식별하는 데 사용되는 32비트 부호 없는 정수입니다. ledger 인덱스는 ledger의 시퀀스 번호라고도 합니다. (이는 계정 시퀀스와는 다릅니다.) 첫 번째 ledger은 ledger 인덱스 1이며, 각각의 새 ledger는 바로 앞 ledger의 ledger 인덱스보다 1 높은 ledger 인덱스를 갖습니다.

Ledger 인덱스는 ledger의 순서를 나타내며, 해시 값은 ledger의 정확한 내용을 식별합니다. 동일한 해시를 가진 두 개의 ledger은 항상 동일합니다. 검증된 ledger의 경우 해시값과 ledger 인덱스는 동일하게 유효하며 1:1의 상관관계를 갖습니다. 그러나 진행 중인 ledger의 경우 그렇지 않습니다:

  • 네트워크 전체에 트랜잭션을 전파하는 데 걸리는 지연 시간으로 인해 두 개의 서로 다른 rippled 서버는 동일한 ledger 인덱스를 가진 현재 ledger에 대해 서로 다른 내용을 가질 수 있습니다.

  • 합의를 통해 유효성을 검증받기 위해 경쟁하는 여러 개의 폐쇄 ledger 버전이 있을 수 있습니다. 이러한 ledger 버전은 ledger 인덱스는 같지만 내용이 다르고 해시가 다릅니다. 이러한 폐쇄 ledger 중 하나만 검증될 수 있습니다.

  • 현재 오픈 ledger의 해시는 계산되지 않습니다. 이는 현재 ledger의 내용이 시간이 지남에 따라 변경되어 ledger 인덱스가 동일하게 유지되더라도 해시가 변경될 수 있기 때문입니다. ledger의 해시는 ledger가 닫힐 때만 계산됩니다.

Ledgers 지정하기(Specifying Ledgers)

많은 API 메소드에서는 ledger의 인스턴스를 지정해야 하며, 검색된 데이터는 공유 ledger의 특정 버전을 기준으로 최신 데이터로 간주됩니다. ledger 버전을 허용하는 명령은 모두 동일한 방식으로 작동합니다. 사용할 ledger을 지정하는 방법은 세 가지가 있습니다:

"ledger_index": 61546724
  1. ledger_hash 매개변수의 해시 값으로 ledger를 지정합니다.

"ledger_hash": "8BB204CE37CFA7A021A16B5F6143400831C4D1779E6FE538D9AC561ABBF4A929"
  1. ledger_index 매개변수에서 다음 단축키 중 하나로 ledger을 지정합니다:

  • 컨센서스에 의해 검증된 가장 최근의 ledger에 대해 검증됨.

"ledger_index": "validated"
  • 수정을 위해 닫히고 검증을 위해 제안된 가장 최근의 ledger에 대한 닫힘.

  • current는 서버의 현재 작동 중인 ledger 버전입니다.

위의 세 가지 형식 중 하나를 허용하는 더 이상 사용되지 않는 ledger 매개변수도 있습니다. 이 매개변수는 별도의 통지 없이 제거될 수 있으므로 사용하지 마세요.

ledger를 지정하지 않으면 서버가 요청을 처리하는 데 사용할 ledger을 결정합니다. 기본적으로 서버는 현재(진행 중) ledger을 선택합니다. 리포팅 모드에서는 서버가 가장 최근에 유효성이 검증된 ledger을 대신 사용합니다. ledger을 지정하는 필드를 두 개 이상 제공하지 마세요.

Note:

ledger를 지정하는 기본 동작에 의존하지 마세요. 기본 동작은 변경될 수 있습니다. 가능하면 항상 요청에 ledger 버전을 지정하세요.

리포팅 모드는 검증이 완료될 때까지 ledger 데이터를 기록하지 않습니다. 리포팅 모드 서버에 현재 또는 폐쇄 ledger을 요청하면 서버는 P2P 모드 서버로 요청을 전달합니다. 유효성이 확인되지 않은 ledger 인덱스나 해시를 요청하면 보리포팅 모드 서버는 lgrNotFound 오류로 응답합니다.

화폐 금액 지정하기(Specifying Currency Amounts)

XRP Ledger에는 두 가지 종류의 화폐가 있습니다: XRP와 토큰입니다. 이 두 가지 유형의 화폐는 서로 다른 정밀도와 반올림 동작으로 서로 다른 형식으로 지정됩니다.

결제 트랜잭션의 데스티네이션 금액과 같은 일부 필드는 두 가지 유형 중 하나를 사용할 수 있습니다. 수수료 필드(트랜잭션 비용)와 같이 일부 필드에서는 XRP만 사용할 수 있습니다.

XRP는 XRP "드롭"의 정수가 포함된 문자열로 지정되며, 여기서 백만 드롭은 1XRP와 같습니다. 대신 토큰은 소수점 금액, 화폐 코드 및 발행자 필드가 있는 객체로 지정됩니다. 예를 들면 다음과 같습니다:

  • XRP - 값이 13.1XRP인 금액 필드를 지정합니다:

"Amount": "13100000"
  • 토큰 - 값이 13.1 FOO인 금액 필드를 지정하려면 rf1B가 발행했거나:

"Amount": {
    "value": "13.1",
    "currency": "FOO",
    "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn"
}

자세한 내용은 화폐 형식을 참조하십시오.

시간 지정하기(Specifying Time)

rippled 서버와 해당 API는 시간을 부호 없는 정수로 표시합니다. 이 숫자는 2000년 1월 1일(00:00 UTC)의 "Ripple 에포크" 이후의 시간(초)을 측정합니다. 이는 유닉스 에포크가 작동하는 방식과 비슷하지만, Ripple 에포크는 유닉스 에포크 이후 946684800초가 된다는 점이 다릅니다.

Ripple 에포크 시간을 32비트 변수로 유닉스 에포크 시간으로 변환하면 정수 오버플로가 발생할 수 있으므로 변환하지 마세요.

PreviousXRP Ledger 프로토콜 참조(XRP Ledger Protocol Reference)Nextbase58 인코딩(base58 Encodings)

Last updated 1 year ago

의 account_state

트랜잭션이 ledger에 포함될 때마다 트랜잭션이 성공적으로 실행되었는지 또는 오류 코드와 함께 실패했는지 여부에 관계없이 시퀀스 번호(또는 티켓)가 소모됩니다. 다른 트랜잭션 실패는 ledger에 포함되지 않으므로 발신자의 시퀀스 번호가 변경되거나 다른 영향을 미치지 않습니다.

매개변수의 ledger_index로 ledger를 지정합니다. 각 폐쇄 ledger는 이전 ledger보다 1 높은 ledger 인덱스를 갖습니다. (첫 번째 ledger은 ledger 인덱스가 1입니다.)

tec-class
Ledger Index
ledger header