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
  • AccountTxnID
  • 자동 입력 가능 필드
  • 플래그 필드
  • 전역 플래그
  • 플래그 범위
  • 메모 필드
  • 네트워크 ID 필드
  • 서명자 필드
  1. References
  2. XRP Ledger 프로토콜 참조(XRP Ledger Protocol Reference)
  3. 트랜잭션 참조(Transaction Reference)

트랜잭션 공통 필드(Transaction Common Fields)

Previous트랜잭션 참조(Transaction Reference)Next트랜잭션 유형(Transaction Types)

Last updated 1 year ago

금금액모든 트랜잭션에는 동일한 공통 필드 세트와 트랜잭션 유형에 따른 추가 필드가 있습니다. 필드 이름은 대소문자를 구분합니다. 모든 트랜잭션의 공통 필드는 다음과 같습니다:

필드

JSON 유형

내부 유형

설명

Account

문자열

계정 ID

(필수) 트랜잭션을 시작한 계정 의 고유 주소입니다.

TransactionType

문자열

UInt16

(필수) 트랜잭션 유형입니다. 유효한 트랜잭션 유형은 다음과 같습니다: Payment, OfferCreate, TrustSet 등이 있습니다.

Fee

문자열

금액

(필수, 자동 입력) 이 트랜잭션을 네트워크에 배포하는 데 드는 비용으로 소멸할 XRP의 정숫값(드롭 단위)입니다. 일부 트랜잭션 유형에는 최소 요구 사항이 다릅니다. 자세한 내용은 트랜잭션 비용을 참조하세요.

Sequence

숫자

UInt32

(필수, 자동 입력) 트랜잭션을 전송하는 계정의 시퀀스 번호입니다. 시퀀스 번호가 같은 계정에서 보낸 이전 트랜잭션보다 정확히 1이 큰 경우에만 트랜잭션이 유효합니다. 특수 케이스 0은 트랜잭션이 티켓을 대신 사용한다는 의미입니다(티켓 배치수정안에 의해 추가되었습니다.)

AccountTxnID

문자열

해시256

(선택 사항) 다른 트랜잭션을 식별하는 해시 값입니다. 제공된 경우 이 거래는 보내는 계정의 이전에 보낸 거래가 제공된 해시와 일치하는 경우에만 유효합니다.

Flags

숫자

UInt32

(선택 사항) 이 트랜잭션에 대한 비트 플래그 집합입니다.

LastLedgerSequence

숫자

UInt32

(선택 사항, 적극 권장) 이 트랜잭션이 표시될 수 있는 가장 높은 ledger 인덱스입니다. 이 필드를 지정하면 트랜잭션이 유효성 검사 또는 거부될 때까지 대기할 수 있는 시간에 대한 엄격한 상한선이 지정됩니다. 자세한 내용은 신뢰할 수 있는 트랜잭션 제출을 참조하십시오.

객체 배열

배열

(선택 사항) 이 트랜잭션을 식별하는 데 사용되는 추가 임의 정보입니다.

숫자

UInt32

(네트워크별) 이 거래가 의도된 체인의 네트워크 ID입니다. 메인넷 및 일부 테스트 네트워크의 경우 반드시 생략해야 합니다. 네트워크 ID가 1025 이상인 체인에서는 필수입니다.

배열

배열

(선택 사항) 이 트랜잭션을 승인하는 다중 서명을 나타내는 개체 배열입니다.

SourceTag

숫자

UInt32

(선택 사항) 이 결제의 이유 또는 이 거래를 대신하여 결제한 발신자를 식별하는 데 사용되는 임의의 정수입니다. 일반적으로 환불은 최초 결제의 소스 태그를 환불 결제의 데스티네이션 태그로 지정해야 합니다.

SigningPubKey

문자열

blob

(서명할 때 자동으로 추가됨) 이 트랜잭션에 서명하는 데 사용된 개인 키에 해당하는 공개 키의 16진수 표현입니다. 빈 문자열이면 서명자 필드에 대신 다중 서명이 있음을 나타냅니다.

TicketSequence

숫자

UInt32

(선택 사항) 시퀀스 번호 대신 사용할 티켓의 시퀀스 번호입니다. 이 값을 제공하는 경우 시퀀스는 0이어야 합니다. AccountTxnID와 함께 사용할 수 없습니다.

TxnSignature

문자열

blob

(서명 시 자동으로 추가됨) 이 거래가 발신자 계정에서 발생한 거래임을 확인하는 서명입니다.

: 트랜잭션의 PreviousTxnID 필드가 AccountTxnID 필드로 대체되었습니다. 이 문자열/해시256 필드는 일부 과거 트랜잭션에 존재합니다. 이는 일부 ledger 객체에서 PreviousTxnID라고도 하는 필드와 관련이 없습니다.

AccountTxnID

AccountTxnID 필드를 사용하면 트랜잭션을 서로 연결하여 동일한 계정에서 보낸 이전 트랜잭션에 특정 트랜잭션 해시가 없으면 현재 트랜잭션이 유효하지 않도록 할 수 있습니다.

보낸 사람에 관계없이 계정을 수정안하기 위해 마지막으로 보낸 트랜잭션을 추적하는 PreviousTxnID 필드와 달리, AccountTxnID는 계정에서 보낸 마지막 트랜잭션을 추적합니다. AccountTxnID를 사용하려면 먼저 ledger이 계정의 이전 트랜잭션에 대한 ID를 추적할 수 있도록 asfAccountTxnID 플래그를 활성화해야 합니다. (이에 비해 PreviousTxnID는 항상 추적됩니다.)

이 기능이 유용한 상황은 트랜잭션 제출을 위한 기본 시스템과 수동 백업 시스템이 있는 경우입니다. 수동 백업 시스템이 기본 시스템과 연결이 끊어졌지만 기본 시스템이 완전히 죽지 않은 상태에서 두 시스템이 동시에 작동하기 시작하면 일부 트랜잭션은 두 번 전송되고 다른 트랜잭션은 전혀 전송되지 않는 등 심각한 문제가 발생할 수 있습니다. 트랜잭션을 AccountTxnID와 함께 연결하면 두 시스템이 모두 활성화되어 있어도 한 번에 한 시스템만 유효한 트랜잭션을 제출할 수 있습니다.

티켓을 사용하는 트랜잭션에는 AccountTxnID 필드를 사용할 수 없습니다. AccountTxnID를 사용하는 트랜잭션은 트랜잭션 대기열에 배치할 수 없습니다.

자동 입력 가능 필드

일부 필드는 rippled 서버나 클라이언트 라이브러리에서 트랜잭션이 서명되기 전에 자동으로 채워질 수 있습니다. 값을 자동 채우려면 최신 상태를 가져오기 위해 XRP Ledger에 대한 활성 연결이 필요하므로 오프라인에서는 수행할 수 없습니다. 라이브러리에 따라 세부 사항은 다를 수 있지만, 자동 채우기는 최소한 다음 필드에 대해 항상 적절한 값을 제공합니다:

  • 수수료 - 네트워크에 따라 트랜잭션 비용을 자동으로 입력합니다.

Note:

rippled의 서명 명령을 사용할 때 수수료_mult_max 및 수수료_mult_div 매개변수를 사용하여 자동 입력 가능한 최대 값을 제한할 수 있습니다.)

  • 시퀀스 - 트랜잭션을 전송하는 계정의 다음 시퀀스 번호를 자동으로 사용합니다.

프로덕션 시스템의 경우 이 필드를 서버가 채우도록 두지 않는 것이 좋습니다. 예를 들어 네트워크 부하가 일시적으로 급증하여 트랜잭션 비용이 높아지는 경우 일시적으로 높은 비용을 지불하는 대신 비용이 낮아질 때까지 기다렸다가 일부 트랜잭션을 전송하는 것이 좋습니다.

결제 트랜잭션 유형의 경로 필드도 자동으로 입력할 수 있습니다.

플래그 필드

플래그 필드에는 트랜잭션의 작동 방식에 영향을 주는 다양한 옵션이 포함될 수 있습니다. 옵션은 비트 단위로 결합할 수 있는 이진 값으로 표시되거나 한 번에 여러 플래그를 설정하는 연산으로 표시됩니다.

트랜잭션에 지정된 플래그가 활성화되어 있는지 확인하려면 플래그 값과 플래그 필드에 비트 연산자를 사용합니다. 결과가 0이면 플래그가 비활성화되어 있고 플래그 값과 같으면 플래그가 활성화되어 있음을 나타냅니다. (다른 결과가 나오면 뭔가 잘못한 것입니다.)

대부분의 플래그는 특정 트랜잭션 유형에 대해서만 의미가 있습니다. 다른 트랜잭션 유형의 플래그에 동일한 비트 값이 재사용될 수 있으므로 플래그를 설정하고 읽을 때 트랜잭션 유형 필드에 주의를 기울이는 것이 중요합니다.

플래그로 정의되지 않은 비트는 반드시 0이어야 합니다. (fix1543 수정안안은 일부 트랜잭션 유형에 이 규칙을 적용합니다. 대부분의 트랜잭션 유형은 기본적으로 이 규칙을 적용합니다.)

전역 플래그

모든 트랜잭션에 전역적으로 적용되는 유일한 플래그는 다음과 같습니다:

플래그 이름

16진수 값

소수점 값

설명

tfFullyCanonicalSig

0x80000000

2147483648

지원 중단됨 효과가 없습니다. ( RequireFullyCanonicalSig 수정안이 활성화되지 않은 경우 이 플래그는 전체 표준 서명을 적용합니다.)

Note:

2014년부터 2020년까지 레거시 서명 소프트웨어와의 호환성을 유지하면서 트랜잭션의 가변성을 방지하기 위해 tfFullyCanonicalSig 플래그가 사용되었습니다. RequireFullyCanonicalSig 수정안으로 이러한 레거시 소프트웨어와의 호환성이 종료되었으며, 모든 트랜잭션에 대해 보호 기능이 기본값으로 설정되었습니다. RequireFullyCanonicalSig가 활성화되지 않은 병렬 네트워크를 사용하는 경우, 트랜잭션 가변성으로부터 보호하기 위해 항상 tfFullyCanonicalSig 플래그를 활성화해야 합니다.

플래그 범위

트랜잭션의 플래그 필드에는 다양한 수준 또는 컨텍스트에 적용되는 플래그가 포함될 수 있습니다. 각 컨텍스트에 대한 플래그는 다음 범위로 제한됩니다:

범위 이름

비트 마스크

설명

유니버설 플래그

0xff000000

모든 트랜잭션 유형에 동일하게 적용되는 플래그입니다.

유형 기반 플래그

0x00ff0000

플래그를 사용하는 트랜잭션 유형 에 따라 의미가 다른 플래그입니다.

예약 플래그

0x0000ffff

현재 정의되지 않은 플래그입니다. 트랜잭션은 이러한 플래그가 비활성화된 경우에만 유효합니다.

Note:

메모 필드

메모 필드에는 트랜잭션과 함께 임의의 메시징 데이터가 포함됩니다. 이는 객체 배열로 표시됩니다. 각 객체에는 메모 필드가 하나만 있으며, 이 메모 필드는 다음 필드 중 하나 이상을 가진 다른 객체를 포함합니다:

필드

유형

내부 유형

설명

MemoData

문자열

blob

일반적으로 메모의 내용을 포함하는 임의의 16진수 값입니다.

MemoFormat

문자열

blob

URL에 허용되는 문자를 나타내는 16진수 값입니다. 일반적으로 메모가 인코딩되는 방법에 대한 정보(예: MIME 유형)를 포함합니다.

MemoType

문자열

blob

URL에 허용되는 문자를 나타내는 16진수 값입니다. 일반적으로 이 메모의 형식을 정의하는 고유한 관계(RFC 5988 에 따름)입니다.

MemoType 및 MemoFormat 필드는 다음 문자로만 구성되어야 합니다: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=%

메모 필드의 크기는 1KB 이하로 제한됩니다(바이너리 형식으로 직렬화할 경우).

메모 필드가 있는 트랜잭션의 예시입니다:

{
    "TransactionType": "Payment",
    "Account": "rMmTCjGFRWPz8S2zAUUoNVSQHxtRQD4eCx",
    "Destination": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
    "Memos": [
        {
            "Memo": {
                "MemoType": "687474703a2f2f6578616d706c652e636f6d2f6d656d6f2f67656e65726963",
                "MemoData": "72656e74"
            }
        }
    ],
    "Amount": "1"
}

네트워크 ID 필드

NetworkID 필드는 "크로스 체인" 트랜잭션 리플레이 공격에 대한 보호 기능으로, 동일한 트랜잭션이 복사되어 의도하지 않은 병렬 네트워크에서 실행되는 것을 방지합니다. 기존 체인과의 호환성을 위해 네트워크 ID가 1024 이하인 네트워크에서는 NetworkID 필드를 생략해야 하지만, 네트워크 ID가 1025 이상인 네트워크에서는 반드시 포함해야 합니다. 다음 표는 알려진 다양한 네트워크의 상태와 값을 보여줍니다:

회로망

ID

NetworkID필드

메인넷

0

허용되지 않음

테스트넷

1

허용되지 않음

데브넷

2

허용되지 않음

AMM 데브넷

25

허용되지 않음

사이드체인 Devnet 잠금 체인

2551

허용되지 않지만 업데이트 후 필수가 됩니다.

사이드체인 Devnet 발급 체인

2552

허용되지 않지만 업데이트 후 필수가 됩니다.

Hooks V3 테스트넷

21338

필수의

트랜잭션 리플레이 공격은 이론적으로 가능하지만 두 번째 네트워크에서 특정 조건이 필요합니다. 다음 조건이 모두 참이어야 합니다:

  • 트랜잭션 발신자가 두 번째 네트워크의 자금이 있는 계정입니다.

  • 두 번째 네트워크에 있는 발신자의 시퀀스 번호가 트랜잭션의 시퀀스와 일치하거나 트랜잭션이 두 번째 네트워크에서 사용할 수 있는 티켓을 사용합니다.

  • 트랜잭션에 LastLedgerSequence 필드가 없거나 두 번째 ledger의 현재 ledger 인덱스보다 높은 값을 지정합니다.

    • 메인넷은 일반적으로 테스트 네트워크나 사이드체인보다 ledger 인덱스가 높기 때문에, 트랜잭션이 의도한 대로 LastLedgerSequence를 사용하는 경우 사이드체인이나 테스트 네트워크에서 메인넷 트랜잭션을 리플레이하는 것이 그 반대보다 더 쉽습니다.

  • 두 네트워크의 ID가 모두 1024 이하이거나, 두 네트워크가 동일한 ID를 사용하거나, 두 번째 네트워크에는 NetworkID 필드가 필요하지 않습니다.

서명자 필드

서명자 필드에는 최대 32개 키 쌍의 서명이 있는 다중 서명이 포함되어 있으며, 이 서명이 합쳐져 트랜잭션을 승인해야 합니다. 서명자 목록은 각각 하나의 필드인 서명자가 있는 객체 배열입니다. 서명자 필드에는 다음과 같은 중첩 필드가 있습니다:

필드

유형

내부 유형

설명

Account

문자열

계정 ID

서명자 목록에 표시되는 이 서명과 연결된 주소입니다.

TxnSignature

문자열

blob

SigningPubKey를 사용하여 확인할 수 있는 이 트랜잭션의 서명입니다.

SigningPubKey

문자열

blob

이 서명을 만드는 데 사용되는 공개 키입니다.

SigningPubKey는 계정 주소와 연결된 키여야 합니다. 참조된 계정이 ledger의 펀딩된 계정인 경우, 해당 계정의 현재 일반 키가 설정되어 있는 경우 SigningPubKey가 해당 계정의 현재 일반 키일 수 있습니다. lsfDisableMaster 플래그가 활성화되어 있지 않은 경우 해당 계정의 마스터 키일 수도 있습니다. 참조된 계정 주소가 ledger에 있는 자금이 있는 계정이 아닌 경우, SigningPubKey는 해당 주소와 연결된 마스터 키여야 합니다.

서명 확인은 컴퓨팅 집약적인 작업이므로 다중 서명 트랜잭션은 네트워크에 릴레이하는 데 추가 XRP가 필요합니다. 다중 서명에 포함된 각 서명은 트랜잭션에 필요한 트랜잭션 비용을 증가시킵니다. 예를 들어, 현재 트랜잭션을 네트워크에 릴레이하는 데 필요한 최소 트랜잭션 비용이 10000드롭이라면 서명자 배열에 3개의 항목이 있는 다중 서명 트랜잭션은 릴레이하는 데 최소 40000드롭의 수수료 값이 필요합니다.

서명 메소드(또는 "서명 후 제출" 모드에서 제출 메소드)를 사용할 때, rippled는 Flags 필드가 이미 존재하지 않는 한 tfFullyCanonicalSig가 활성화된 Flags 필드를 추가합니다. Flags가 명시적으로 지정되어 있는 경우 tfFullyCanonicalSig 플래그는 자동으로 활성화되지 않습니다. 메소드를 사용하여 다중 서명 트랜잭션에 서명을 추가할 때 이 플래그는 자동으로 활성화되지 않습니다.

트랜잭션 유형에는 유형 기반 플래그와 비슷한 용도로 사용되는 자체 비비트 단위 플래그가 있습니다. ledger 객체에는 다른 비트 단위 플래그 정의가 있는 플래그 필드도 있습니다.

sign_for
AccountSet
Memos
NetworkID
Signers
Removed in: rippled 0.28.0
New in: rippled 1.11.0