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
  • 요구 사항
  • 단계
  • 1. 오프라인 머신 설정
  • 2. 암호화 키 생성
  • 3. 새 주소 자금 조달
  • 4. 계정 정보 확인
  • 5. 오프라인 머신에서 시퀀스 번호를 입력합니다.
  • 6. 초기 설정 트랜잭션이 있는 경우 서명합니다.
  • 7. 트랜잭션을 온라인 머신에 복사합니다.
  • 8. 설정 트랜잭션을 제출합니다.
  • 9. 거래의 최종 상태를 확인합니다.
  • 10. 오프라인 머신 상태를 조정합니다.
  1. Tutorials
  2. Tasks
  3. 계정 설정 관리(Manage Account Settings)

오프라인 계정 설정 튜토리얼

매우 안전한 서명 구성에는 XRP Ledger 계정의 암호화 키를 오프라인의 에어갭 머신에 안전하게 보관하는 것이 포함됩니다. 이 구성을 설정한 후 다양한 트랜잭션에 서명하고 서명된 트랜잭션만 온라인 컴퓨터로 전송하고 비밀 키를 온라인에서 악의적인 행위자에게 노출하지 않고 XRP Ledger 네트워크에 제출할 수 있습니다.

Caution:

오프라인 시스템을 보호하려면 적절한 운영 보안이 필요합니다. 예를 들어 오프라인 시스템은 신뢰할 수 없는 사람이 액세스할 수 없는 물리적 위치에 있어야 하며 신뢰할 수 있는 운영자는 손상된 소프트웨어를 시스템으로 전송하지 않도록 주의해야 합니다. (예를 들어, 이전에 네트워크로 연결된 컴퓨터에 연결된 USB 드라이브를 사용하지 마세요.)

요구 사항

오프라인 서명을 사용하려면 다음 요구 사항을 충족해야 합니다.

  • 오프라인 컴퓨터로 사용할 컴퓨터가 한 대 있어야 합니다. 이 시스템은 지원되는 운영 체제로 설정되어야 합니다. 오프라인 설정 지침은 운영 체제의 지원을 참조하세요. (예: Red Hat Enterprise Linux DVD ISO 설치 지침.) 사용하는 소프트웨어 및 물리적 미디어가 malware에 감염되지 않았는지 확인하세요.

  • 온라인 컴퓨터로 사용하려면 별도의 컴퓨터가 있어야 합니다. 이 머신은 실행할 필요는 없지만 rippledXRP Ledger 네트워크에 연결하고 공유 ledger의 상태에 대한 정보를 받을 수 있어야 합니다. 예를 들어 공용 서버에 대한 WebSocket 연결을 사용할 수 있습니다.

  • 온라인 컴퓨터로 사용하려면 별도의 컴퓨터가 있어야 합니다. 이 머신은 rippled를 실행할 필요는 없지만 XRP Ledger 네트워크에 연결하고 공유 ledger의 상태에 대한 정보를 수신할 수 있어야 합니다. 예를 들어 공용 서버에 대한 WebSocket 연결을 사용할 수 있습니다.

  • 오프라인 시스템에서 온라인 시스템으로 서명된 트랜잭션 바이너리 데이터를 안전하게 전송할 수 있는 방법이 있어야 합니다.

    • 이를 수행하는 한 가지 방법은 오프라인 컴퓨터에서 QR 코드 생성기를 사용하고 온라인 컴퓨터에서 QR 코드 스캐너를 사용하는 것입니다. (이 경우 "온라인 머신"은 스마트폰과 같은 휴대용 장치일 수 있습니다.)

    • 또 다른 방법은 물리적 미디어를 사용하여 오프라인 시스템에서 온라인 시스템으로 파일을 복사하는 것입니다. 이 방법을 사용하는 경우 오프라인 시스템을 악성 소프트웨어로 감염시킬 수 있는 물리적 미디어를 사용하지 않도록 합니다. (예를 들어, 온라인 및 오프라인 시스템에서 동일한 USB 드라이브를 재사용하지 마십시오.)

    • 데이터를 온라인 컴퓨터에 수동으로 입력할 수 있지만 그렇게 하면 지루하고 오류가 발생하기 쉽습니다.

단계

1. 오프라인 머신 설정

오프라인 시스템에는 안전한 영구 스토리지(예: 암호화된 디스크 드라이브)와 트랜잭션 서명 방법이 필요합니다. 오프라인 시스템의 경우 일반적으로 물리적 미디어를 사용하여 온라인 시스템에서 다운로드한 후 필요한 소프트웨어를 전송합니다. 온라인 컴퓨터, 물리적 미디어 및 소프트웨어 자체가 malware에 감염되지 않았는지 확인해야 합니다.

XRP Ledger에 서명하기 위한 소프트웨어 옵션은 다음과 같습니다.

  • rippled패키지(.deb또는 .rpm사용하는 Linux 배포판에 따라 다름) 파일 에서 설치한 다음 그것을 stand-alone 모드에서 실행합니다.

  • xrpl.js (또는 다른 클라이언트 라이브러리 ) 및 해당 종속 항목을 오프라인으로 설치합니다. 예를 들어 Yarn 패키지 관리자에는 오프라인 사용에 대한 권장 지침이 있습니다.

  • 참조: 보안 서명 설정

오프라인 시스템에서 트랜잭션 지침을 구성하는 데 도움이 되는 사용자 정의 소프트웨어를 설정할 수 있습니다. 예를 들어 소프트웨어는 다음에 사용할 시퀀스 번호를 추적하거나 전송하려는 특정 유형의 트랜잭션에 대한 사전 설정 템플릿을 포함할 수 있습니다.

2. 암호화 키 생성

오프라인 컴퓨터에서 계정에 사용할 암호화 키 쌍을 생성합니다. 키는 짧은 암호 구문이나 엔트로피가 충분하지 않은 다른 소스가 아닌 안전하게 임의의 절차로 생성해야 합니다. 예를 들어 다음과 같은 rippled 의 wallet_propose 메소드를 사용할 수 있습니다.

$ ./rippled wallet_propose
Loading: "/etc/opt/ripple/rippled.cfg"
2019-Dec-09 22:58:24.110862955 HTTPClient:NFO Connecting to 127.0.0.1:5005

{
   "result" : {
      "account_id" : "r4MRc4BArFPXmiDjmLdrufyFManSYhfKE6",
      "key_type" : "secp256k1",
      "master_key" : "JANE GIBE LIST TEND NU RUDE JIG PA FLOG DEFT SAME NASH",
      "master_seed" : "shYHSiJod8CLPTj1SNJ2PdUFj4pFk",
      "master_seed_hex" : "8465FDB80B2E2620A7D58274C26291A0",
      "public_key" : "aBQLW8imt7VChRJU1NMVCB7fE3jSL3VNEgLDKf88ygAhnfuZh3oo",
      "public_key_hex" : "03396074ED4B8155ACF9A8DC3665EFA53B5CFA0A1E91C3879303D37721EB222644",
      "status" : "success"
   }
}

다음 값에 유의하세요:

  • account_id. 이 주소는 키 쌍과 연결된 주소가 XRP로 자금을 조달한 후(이 프로세스의 후반부) XRP Ledger에서 사용자의 계정 주소가 됩니다. account_id를 공개적으로 공유하는 것은 안전합니다.

  • master_seed. 이것은 계정에서 트랜잭션에 서명하는 데 사용할 키 쌍의 비밀 시드 값입니다. 최상의 보안을 위해 이 값을 오프라인 시스템의 디스크에 쓰기 전에 암호화하십시오. 암호화 키로 적절하게 가중된 주사위로 생성된 diceware passphrase와 같이 작업자가 기억하거나 물리적으로 안전한 곳에 기록할 수 있는 보안 암호를 사용합니다. 물리적 보안 키를 두 번째 요소로 사용할 수도 있습니다. 이 단계에서 취해야 할 예방 조치의 범위는 당신에게 달려 있습니다.

  • key_type. 이것은 이 키 쌍에 사용되는 암호화 알고리즘입니다. 가지고 있는 키 쌍의 유형을 알아야 합니다. 기본값은 rippled이지만 secp256k1일부 클라이언트 라이브러리는 Ed25519기본적으로 사용합니다.

master_key, master_seed또는 master_seed_hex값을 어디에도 공유 하지 마십시오. 이 주소와 관련된 개인 키를 재구성하는 데 사용할 수 있습니다.

3. 새 주소 자금 조달

온라인 머신 1단계에서 기록한 계정 주소로 충분한 XRP를 보냅니다. 자세한 내용은 계정 만들기를 참조하세요.

Tip:

테스트 목적으로 Testnet Faucet을 사용하여 Test XRP로 새 계정을 얻은 다음 해당 계정을 사용하여 오프라인에서 생성한 주소에 자금을 지원할 수 있습니다.

4. 계정 정보 확인

이전 단계의 트랜잭션이 컨센서스에 의해 검증되면 계정이 생성됩니다. 온라인 기기에서 account_info 메소드로 계정 상태를 확인할 수 있습니다. 응답에 "validated": true이 결과가 최종인지 확인하는 내용의 포함 여부를 확인하세요.

Sequence결과 필드 에 있는 계정의 시퀀스 번호를 기록해 둡니다 account_data. 이후 단계에서 계정에서 트랜잭션에 서명하려면 시퀀스 번호를 알아야 합니다.

Sequence새로 자금이 조달된 계정의 번호는 자금 이 조달되었을 때의 ledger 인덱스 와 일치합니다. DeletableAccounts 수정 이전에는 새로 입금된 계정의 Sequence번호가 항상 1이었습니다.

새로 자금 지원된 계정의 Sequence번호가 자금 지원 당시의 ledger 색인과 일치합니다. DeletableAccounts amendment 전에는 새로 자금을 지원받은 계정의 시퀀스 번호가 항상 1이었습니다.

$ ./rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn

Loading: "/etc/opt/ripple/rippled.cfg"
2019-Dec-11 01:06:21.728637950 HTTPClient:NFO Connecting to 127.0.0.1:5005
{
   "result" : {
      "account_data" : {
         "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
         "Balance" : "5000000000000",
         "Flags" : 0,
         "LedgerEntryType" : "AccountRoot",
         "OwnerCount" : 0,
         "PreviousTxnID" : "00C5B713B11DA775C6F932D38CE162C16FA88B7269BAFC6FDF4C6ADB74419670",
         "PreviousTxnLgrSeq" : 3,
         "Sequence" : 1,
         "index" : "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8"
      },
      "ledger_current_index" : 4,
      "status" : "success",
      "validated" : false
   }
}

5. 오프라인 머신에서 시퀀스 번호를 입력합니다.

계정의 시작 시퀀스 번호를 오프라인 시스템에 저장합니다. 오프라인 머신을 사용하여 트랜잭션을 준비할 때마다 저장된 시퀀스 번호를 사용한 다음 시퀀스 번호를 1씩 증가시키고 새 값을 저장합니다.

이렇게 여러 거래를 미리 준비한 후 서명된 거래를 온라인 기계로 한꺼번에 전송하여 제출할 수 있습니다. 각 트랜잭션이 유효하게 형성되고 충분한 높은 트랜잭션 비용을 지불하는 한, XRP Ledger 네트워크는 최종적으로 이러한 트랜잭션을 유효한 레지스터에 포함시켜야 하며, 오프라인 컴퓨터에서 추적 중인 "현재" 시퀀스 번호와 동기화하여 공유 XRP Ledger에 있는 계정의 시퀀스 번호를 유지해야 합니다. (대부분의 트랜잭션은 네트워크에 제출된 후 15초 이내에 최종적으로 검증된 결과를 얻습니다.)

선택적으로 현재 ledger 인덱스를 오프라인 시스템에 저장합니다. LastLedgerSequence이 값을 사용하여 예정된 트랜잭션에 적절한 값을 선택할 수 있습니다.

6. 초기 설정 트랜잭션이 있는 경우 서명합니다.

오프라인 머신에서 계정 구성을 위한 트랜잭션을 준비하고 서명합니다. 세부 사항은 계정 사용 방법에 따라 다릅니다. 수행할 수 있는 작업의 몇 가지 예는 다음과 같습니다.

  • 정기적으로 교체할 수 있는 일반 키 쌍을 할당합니다.

  • 사용자가 결제를 보내는 조건 또는 대상 고객을 태그하지 않고 결제를 보낼 수 없도록 데스티네이션 태그를 요구합니다.

  • 더 높은 수준의 계정 보안을 위해 다중 서명을 설정하십시오.

  • DepositAuth를 활성화하면 귀하가 명시적으로 수락하거나 사전 승인한 당사자로부터만 지불을 받을 수 있습니다.

  • 사용자가 허가 없이 신뢰선을 열 수 없도록 인증이 필요합니다. XRP Ledger의 분산형 교환 또는 토큰 기능을 사용할 계획이 없다면 예방 차원에서 이를 수행하는 것이 좋습니다.

  • 토큰 발급자는 다음과 같은 추가 설정이 있을 수 있습니다.

    • 토큰을 전송하는 사용자에 대한 전송 수수료를 설정합니다.

    • 이 주소를 토큰에만 사용하려는 경우 XRP 지불을 허용하지 마십시오.

이 단계에서는 트랜잭션에 서명만 하고 제출은 하지 않습니다. 각 트랜잭션에 대해 수수료(거래 비용) 및 시퀀스(시퀀스 번호)와 같이 일반적으로 자동으로 입력할 수 있는 필드를 포함하여 모든 필드를 제공해야 합니다. 동시에 여러 트랜잭션을 준비하는 경우에는 트랜잭션을 실행할 순서대로 순차적으로 증가하는 시퀀스 번호를 사용해야 합니다.

예(Require Auth 활성화):

$ rippled sign sn3nxiW7v8KXzPzAqzyHXbSSKNuN9 '{"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Fee": "12", "Sequence": 1, "TransactionType": "AccountSet", "SetFlag": 2}' offline

Loading: "/etc/opt/ripple/rippled.cfg"
2019-Dec-11 00:18:31.865955978 HTTPClient:NFO Connecting to 127.0.0.1:5005
{
   "result" : {
      "deprecated" : "This command has been deprecated and will be removed in a future version of the server. Please migrate to a standalone signing tool.",
      "status" : "success",
      "tx_blob" : "1200032280000000240000000120210000000268400000000000000C7321039543A0D3004CDA0904A09FB3710251C652D69EA338589279BC849D47A7B019A174473045022100D5C92D7705036CD7EBB601C8DFCD90927FA591A62AF832C489E9C898EC8E2FA0022052F1819340EB73E9749B8930A6935727362B8E141D1B2E246B49F912223FFD4381144B4E9C06F24296074F7BC48F92A97916C6DC5EA9",
      "tx_json" : {
         "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
         "Fee" : "12",
         "Flags" : 2147483648,
         "Sequence" : 1,
         "SetFlag" : 2,
         "SigningPubKey" : "039543A0D3004CDA0904A09FB3710251C652D69EA338589279BC849D47A7B019A1",
         "TransactionType" : "AccountSet",
         "TxnSignature" : "3045022100D5C92D7705036CD7EBB601C8DFCD90927FA591A62AF832C489E9C898EC8E2FA0022052F1819340EB73E9749B8930A6935727362B8E141D1B2E246B49F912223FFD43",
         "hash" : "F81C34E7F05423DC1C973CB5008CA41AE984DE142EAA3975A749FABF0D08FA63"
      }
   }
}

모든 트랜잭션이 제한된 시간 내에 최종 결과를 얻도록 하려면 LastLedgerSequence필드를 제공하세요. 이 값은 현재 ledger 인덱스(온라인 시스템에서 조회해야 함)와 트랜잭션이 유효한 상태로 유지되는 시간을 기반으로 해야 합니다. LastLedgerSequence온라인 컴퓨터에서 오프라인 컴퓨터로 전환하는 데 걸리는 시간을 허용할 수 있을 만큼 충분히 큰 값을 설정해야 합니다. 예를 들어 현재 ledger 인덱스보다 256 높은 값은 트랜잭션이 약 15분 동안 유효함을 의미합니다. 자세한 내용은 결과의 최종성 및 신뢰할 수 있는 트랜잭션 제출을 참조하십시오.

모든 트랜잭션이 제한된 시간 내에 최종 결과를 얻으려면 LastLeggerSequence 필드를 제공해야 합니다 이 값은 현재 ledger 인덱스(온라인 컴퓨터에서 조회해야 함)와 트랜잭션을 유효하게 유지할 시간을 기준으로 해야 합니다. 온라인 컴퓨터에서 오프라인 컴퓨터로 전환하거나 다시 전환하는 데 소요되는 시간을 허용할 만큼 충분히 큰 LastLedgerSequence값을 설정해야 합니다. 예를 들어, 현재 ledger 지수보다 256이 높으면 약 15분 동안 트랜잭션이 유효하다는 것을 의미합니다. 자세한 내용은 결과의 최종성 및 신뢰할 수 있는 트랜잭션 제출을 참조하세요.

7. 트랜잭션을 온라인 머신에 복사합니다.

트랜잭션에 서명한 후 다음 단계는 서명된 트랜잭션 데이터를 온라인 컴퓨터로 가져오는 것입니다. 이를 수행하는 방법에 대한 몇 가지 예는 요구 조건을 참조하세요.

8. 설정 트랜잭션을 제출합니다.

다음 단계는 트랜잭션을 제출하는 것입니다. 대부분의 트랜잭션은 제출 후(약 4초 후) 다음 검증된 ledger에 최종 결과가 있거나 대기 중인 경우(10초 미만) 그 이후의 ledger에 최종 결과가 있어야 합니다. 트랜잭션의 최종 결과를 추적하는 자세한 단계는 신뢰할 수 있는 트랜잭션 제출을 참조하세요.

트랜잭션 제출의 예:

$ rippled submit 1200032280000000240000000120210000000268400000000000000C7321039543A0D3004CDA0904A09FB3710251C652D69EA338589279BC849D47A7B019A174473045022100D5C92D7705036CD7EBB601C8DFCD90927FA591A62AF832C489E9C898EC8E2FA0022052F1819340EB73E9749B8930A6935727362B8E141D1B2E246B49F912223FFD4381144B4E9C06F24296074F7BC48F92A97916C6DC5EA9

Loading: "/etc/opt/ripple/rippled.cfg"
2019-Dec-11 01:14:25.988839227 HTTPClient:NFO Connecting to 127.0.0.1:5005

{
   "result" : {
      "deprecated" : "Signing support in the 'submit' command has been deprecated and will be removed in a future version of the server. Please migrate to a standalone signing tool.",
      "engine_result" : "tesSUCCESS",
      "engine_result_code" : 0,
      "engine_result_message" : "The transaction was applied. Only final in a validated ledger.",
      "status" : "success",
      "tx_blob" : "1200032280000000240000000120210000000268400000000000000C7321039543A0D3004CDA0904A09FB3710251C652D69EA338589279BC849D47A7B019A174473045022100D5C92D7705036CD7EBB601C8DFCD90927FA591A62AF832C489E9C898EC8E2FA0022052F1819340EB73E9749B8930A6935727362B8E141D1B2E246B49F912223FFD4381144B4E9C06F24296074F7BC48F92A97916C6DC5EA9",
      "tx_json" : {
         "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
         "Fee" : "12",
         "Flags" : 2147483648,
         "Sequence" : 1,
         "SetFlag" : 2,
         "SigningPubKey" : "039543A0D3004CDA0904A09FB3710251C652D69EA338589279BC849D47A7B019A1",
         "TransactionType" : "AccountSet",
         "TxnSignature" : "3045022100D5C92D7705036CD7EBB601C8DFCD90927FA591A62AF832C489E9C898EC8E2FA0022052F1819340EB73E9749B8930A6935727362B8E141D1B2E246B49F912223FFD43",
         "hash" : "F81C34E7F05423DC1C973CB5008CA41AE984DE142EAA3975A749FABF0D08FA63"
      }
   }
}

Tip:

한 번에 10개 이상의 트랜잭션을 제출하는 경우 트랜잭션 대기열이 한 번에 동일한 보낸 사람의 트랜잭션을 10개로 제한하므로 한 번에 10개 이하의 그룹으로 제출하면 더 많은 성공을 거둘 수 있습니다. 10개 트랜잭션으로 구성된 각 그룹이 다음 그룹을 제출하기 전에 모든 트랜잭션

최종이 아닌 결과로 실패한 트랜잭션을 다시 제출해 보세요. 동일한 트랜잭션이 두 번 이상 처리될 가능성은 없습니다.

9. 거래의 최종 상태를 확인합니다.

제출한 각 거래에 대해 거래의 최종 결과 (예: tx 방법 사용)를 기록합니다. 예를 들어:

제출한 각 트랜잭션에 대해 tx 메소소드를 사용하는 등 트랜잭션의 최종 결과를 기록합니다. 예를 들어:

$ ./rippled tx F81C34E7F05423DC1C973CB5008CA41AE984DE142EAA3975A749FABF0D08FA63

Loading: "/etc/opt/ripple/rippled.cfg"
2019-Dec-11 01:38:30.124771464 HTTPClient:NFO Connecting to 127.0.0.1:5005
{
   "result" : {
      "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
      "Fee" : "12",
      "Flags" : 2147483648,
      "Sequence" : 1,
      "SetFlag" : 2,
      "SigningPubKey" : "039543A0D3004CDA0904A09FB3710251C652D69EA338589279BC849D47A7B019A1",
      "TransactionType" : "AccountSet",
      "TxnSignature" : "3045022100D5C92D7705036CD7EBB601C8DFCD90927FA591A62AF832C489E9C898EC8E2FA0022052F1819340EB73E9749B8930A6935727362B8E141D1B2E246B49F912223FFD43",
      "date" : 629343510,
      "hash" : "F81C34E7F05423DC1C973CB5008CA41AE984DE142EAA3975A749FABF0D08FA63",
      "inLedger" : 4,
      "ledger_index" : 4,
      "meta" : {
         "AffectedNodes" : [
            {
               "ModifiedNode" : {
                  "FinalFields" : {
                     "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
                     "Balance" : "4999999999988",
                     "Flags" : 262144,
                     "OwnerCount" : 0,
                     "Sequence" : 2
                  },
                  "LedgerEntryType" : "AccountRoot",
                  "LedgerIndex" : "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8",
                  "PreviousFields" : {
                     "Balance" : "5000000000000",
                     "Flags" : 0,
                     "Sequence" : 1
                  },
                  "PreviousTxnID" : "00C5B713B11DA775C6F932D38CE162C16FA88B7269BAFC6FDF4C6ADB74419670",
                  "PreviousTxnLgrSeq" : 3
               }
            }
         ],
         "TransactionIndex" : 0,
         "TransactionResult" : "tesSUCCESS"
      },
      "status" : "success",
      "validated" : true
   }
}

또한 모든 트랜잭션이 처리된 후 발송 계정의 account_info를 확인하는 것이 유용할 수 있습니다. 계정의 현재 시퀀스 번호(시퀀스 필드)와 XRP 잔액(선택 사항)을 기록합니다.

실패한 모든 트랜잭션에 대해 수행할 작업을 결정해야 합니다:

  • tefMAX_LEDGER 코드로 트랜잭션이 실패한 경우 트랜잭션을 처리하려면 더 높은 트랜잭션 비용을 지정해야 할 수 있습니다. (이는 XRP Ledger 네트워크에 부하가 걸려 있음을 나타냅니다.) 트랜잭션을 더 높은 비용을 지불하고 LastLedgerSequence 매개 변수(있는 경우)가 더 높은 새 버전으로 바꿀 수 있습니다.

  • 트랜잭션이 tem-class코드 로 인해 실패한 경우 트랜잭션 구성에서 오타나 다른 오류를 범했을 수 있습니다. 유효한 형식의 트랜잭션으로 바꿀 수 있도록 트랜잭션을 다시 확인하세요.

  • 트랜잭션이 tec-class 코드 와 함께 실패한 경우 실패한 정확한 이유에 따라 사례 별로 해결해야 합니다.

조정하거나 교체하기로 결정한 트랜잭션의 경우 오프라인 시스템으로 돌아갈 때의 세부 정보를 기록해 두세요.

10. 오프라인 머신 상태를 조정합니다.

오프라인 컴퓨터로 돌아가서 다음과 같은 사용자 지정 서버의 저장된 설정에 필요한 변경 사항을 적용합니다:

  • 계정의 현재 Sequence번호를 업데이트합니다. 모든 트랜잭션이 검증된 ledger에 포함된 경우(성공적으로 또는 tec코드 포함) 오프라인 시스템의 저장된 시퀀스 번호가 이미 정확해야 합니다. 그렇지 않으면 이전 단계에서 기록한 Sequence값과 일치하도록 저장된 시퀀스 번호를 변경해야 할 수 있습니다 .

  • 새 트랜잭션에서 적절한 LastLedgerSequence값을 사용할 수 있도록 현재 ledger 인덱스를 업데이트합니다. (새 트랜잭션을 구성하기 직전에 항상 이 작업을 수행해야 합니다.)

  • (선택 사항) 오프라인 시스템에서 추적하는 경우 사용 가능한 실제 XRP 양을 업데이트합니다.

그런 다음 이전 단계에서 실패한 트랜잭션에 대한 대체 트랜잭션을 조정하고 서명합니다. 오프라인 시스템에서 트랜잭션 구성, 전송 및 온라인 시스템에서 제출에 대한 이전 단계를 반복합니다.

Previous데스티네이션 태그 필요Next티켓 사용(Use Tickets)

Last updated 1 year ago