Klaytn 문서 아카이브
시작하기스마트 컨트랙트노드 운영dApp 개발자
  • Klaytn 문서
  • -
    • Klaytn Overview
      • 왜 클레이튼일까요?
      • 클레이튼 디자인
        • 합의 메커니즘
        • 계정
        • 트랜잭션
          • 기본
          • 수수료 위임 트랜잭션
          • 수수료 부분 위임 트랜잭션
          • Ethereum
        • 연산
          • 클레이튼 스마트 컨트랙트
          • 실행 모델(Execution Model)
          • Computation Cost
            • 연산 비용 (구 버전 문서)
          • Klaytn 가상머신
            • 클레이튼 가상머신 (구 버전 문서)
        • 스토리지
        • 트랜잭션 비용
          • 트랜잭션 비용 (구 버전 문서)
        • 클레이튼의 네이티브 코인 - KLAY
        • 토큰 이코노미
        • 거버넌스
        • 다중 채널
        • KNI
      • 확장성 솔루션
    • Getting Started
      • Deploying Smart Contract Using Foundry
      • Deploying Smart Contract Using Hardhat
      • Deploying Smart Contract Using KEN
        • Launch an Endpoint Node
        • Top up your Account
        • Install Development Tools
        • Deploy a Smart Contract
        • Check the Deployment
        • Account Management
          • Creating Accounts
          • Managing Accounts
      • Development Environment
      • Getting KLAY
    • 스마트 컨트랙트
      • 솔리디티 - 스마트 컨트랙트 언어
      • 미리 컴파일된 컨트랙트
        • 미리 컴파일된 컨트랙트 (구 버전 문서)
      • IDE 및 도구
        • Truffle
      • 샘플 컨트랙트
        • KlaytnGreeter
        • ERC-20
          • 1. ERC-20 스마트 컨트랙트 작성
          • 2. 스마트 컨트랙트 배포
          • 3. 클레이튼 월렛에서 ERC-20 토큰 사용
        • ERC-721
          • 1. ERC-721 스마트 컨트랙트 작성
          • 2. Deploying Smart Contract
      • 테스트 가이드
      • 배포 가이드
      • 클레이튼 호환 토큰
      • 이더리움 컨트랙트 이식
    • Run a Node
      • 배포
        • Endpoint Node
          • 시스템 요구사항
          • 설치 가이드
            • 다운로드
            • Installation Guide
            • 환경설정
            • EN 실행하기
            • 설치 테스트하기
          • ken CLI 명령어
          • JSON-RPC API
        • 코어 셀
          • System Requirements
          • 네트워크 설정
          • Installation Guide
            • Download
            • 설치하기 전에
            • 컨센서스 노드 설정
              • Installation Guide
              • Configuration
              • CN 실행하기
            • 프록시 노드 설정
              • Installation Guide
              • Configuration
              • PN 실행하기
            • 코어 셀 테스트하기
          • 모니터링 설정
          • H/A 설정
        • Service Chain
          • Getting Started
            • 4개 노드 서비스 체인 설정하기
            • Connecting to Baobab
            • 크로스체인 토큰 전송
            • HA(High Availability) for ServiceChain
            • Nested ServiceChain
            • Value Transfer between Sibling ServiceChains
          • 참조 매뉴얼
            • System Requirements
            • Download
            • SCN User Guide
              • Installation
              • Configuration
              • SCN 실행 및 중지하기
              • 노드 상태 확인하기
              • kscn commands
              • homi commands
            • SPN/SEN User Guide
              • Installation
              • Configuration
              • 노드 실행 및 중지
              • Checking Node Status
            • Bridge Configuration
            • 앵커링
            • KAS 앵커링
            • 토큰 전송
            • Configuration Files
            • 로그 파일
            • Genesis JSON
            • 업그레이드 및 하드포크
          • How-To Guides
        • Download Node Packages
          • v1.11.1
          • v1.11.0
          • v1.10.2
          • v1.10.1
          • v1.10.0
          • v1.9.1
          • v1.9.0
          • v1.8.4
          • v1.8.3
          • v1.8.2
          • v1.8.1
          • v1.8.0
          • v1.7.3
          • v1.7.2
          • v1.7.1
          • v1.7.0
          • v1.6.4
          • v1.6.3
          • v1.6.2
          • v1.6.1
          • v1.6.0
          • v1.5.3
          • v1.5.2
          • v1.5.1
          • v1.5.0
          • v1.4.2
          • v1.4.1
          • v1.4.0
          • v1.3.0
          • v1.2.0
          • v1.1.1
          • v1.0.0
          • v0.9.6
          • v0.8.2
    • 운영 가이드
      • Configuration
      • 노드 로그
      • Log operation
      • 에러 및 문제 해결
      • Klaytn Command
      • Chaindata Change
      • Chaindata Migration
    • dApp Developers
      • JSON-RPC APIs
        • API references
          • eth
            • Caution
            • Account
            • Block
            • Transaction
            • Config
            • Filter
            • Gas
            • Miscellaneous
          • klay
            • Account
            • Block
            • Transaction
              • Working with Klaytn Transaction Types
            • Configuration
            • Filter
            • Gas
            • Miscellaneous
          • net
          • debug
            • Logging
            • Profiling
            • Runtime Tracing
            • Runtime Debugging
            • VM Tracing
            • VM Standard Tracing
            • Blockchain Inspection
          • admin
          • personal
          • txpool
          • governance
        • Service Chain API references
          • mainbridge
          • subbridge
        • Transaction Error Codes
      • RPC Service Providers
        • Public Endpoints
      • SDK & Libraries for interacting with Klaytn Node
        • caver-js
          • Getting Started
          • Sending a sample transaction
          • API references
            • caver.account
            • caver.wallet
              • caver.wallet.keyring
            • caver.transaction
              • Basic
              • Fee Delegation
              • Partial Fee Delegation
            • caver.rpc
              • caver.rpc.klay
              • caver.rpc.net
              • caver.rpc.governance
            • caver.contract
            • caver.abi
            • caver.kct
              • caver.kct.kip7
              • caver.kct.kip17
              • caver.kct.kip37
            • caver.validator
            • caver.utils
            • caver.ipfs
          • caver-js ~v1.4.1
            • Getting Started (~v1.4.1)
            • API references
              • caver.klay
                • Account
                • Block
                • Transaction
                  • Legacy
                  • Value Transfer
                  • Value Transfer Memo
                  • Account Update
                  • Smart Contract Deploy
                  • Smart Contract Execution
                  • Cancel
                • Configuration
                • Filter
                • Miscellaneous
              • caver.klay.net
              • caver.klay.accounts
              • caver.klay.Contract
              • caver.klay.KIP7
              • caver.klay.KIP17
              • caver.klay.abi
              • caver.utils (~v1.4.1)
            • Porting from web3.js
        • caver-java
          • Getting Started
          • API references
          • caver-java ~v1.4.0
            • Getting Started (~v1.4.0)
            • Porting from web3j
        • ethers.js
        • web3.js
      • Tutorials
        • Klaytn Online Toolkit
        • Fee Delegation Example
        • Count DApp
          • 1. Environment Setup
          • 2. Clone Count DApp
          • 3. Directory Structure
          • 4. Write Smart Contract
          • 5. Frontend Code Overview
            • 5-1. Blocknumber Component
            • 5-2. Auth Component
            • 5-3. Count Component
          • 6. Deploy Contract
          • 7. Run App
        • Klaystagram
          • 1. Environment Setup
          • 2. Clone Klaystagram DApp
          • 3. Directory Structure
          • 4. Write Klaystagram Smart Contract
          • 5. Deploy Contract
          • 6. Frontend Code Overview
          • 7. FeedPage
            • 7-1. Connect Contract to Frontend
            • 7-2. UploadPhoto Component
            • 7-3. Feed Component
            • 7-4. TransferOwnership Component
          • 8. Run App
        • Building a Buy Me a Coffee dApp
          • 1. Project Setup
          • 2. Creating a BMC Smart Contract
          • 3. Testing the contract using scripts
          • 4. Deploying BMC Smart contract
          • 5. Building the BMC Frontend with React and Web3Onboard
          • 6. Deploying Frontend code on IPFS using Fleek
          • 7. Conclusion
        • Migrating Ethereum App to Klaytn
        • Connecting MetaMask
        • Connecting Remix
        • Verifying Smart Contracts Using Block Explorers
      • Developer Tools
        • Wallets
          • Kaikas
          • Klaytn Wallet
          • Klaytn Safe
            • Klaytn Safe Design
            • Create a Safe
            • Add assets
            • Send assets
            • Contract Interaction
            • Transaction Builder
            • Points to Note
            • Frequently Asked Questions
          • Wallet Libraries
            • Web3Auth
            • Web3Modal
            • Web3-Onboard
        • Oracles
          • Orakl Network
          • Witnet
          • SupraOracles
        • Block Explorers
          • Klaytnscope
          • Klaytnfinder
        • Klaytn Contracts Wizard
    • Glossary
  • ---
    • Klaytn 하드포크
    • 클레이튼 2.0
      • 메타버스 패키지
      • 완결성과 개선 사항들
      • 이더리움 호환성
      • 거버넌스 탈중앙화
      • 대규모 에코 펀드
    • FAQ
    • 오픈 소스
    • 이용약관
    • 지원 언어
  • ℹ️최신 Klaytn 문서
Powered by GitBook
On this page
  • Prerequisites
  • 0 단계 : Baobab EN 설치하기
  • 1 단계 : genesis.json 준비하기
  • 2 단계 : EN 노드 초기화
  • 3 단계 : EN 노드 설정
  • 4 단계 : EN 노드 시작
  • 5 단계 : EN 노드의 KNI 확인
  • 6 단계 : main-bridges.json 생성
  • Step 7: Configure SCN then Restart kscn
  • 앵커링

Was this helpful?

  1. -
  2. Run a Node
  3. 배포
  4. Service Chain
  5. Getting Started

Connecting to Baobab

Previous4개 노드 서비스 체인 설정하기Next크로스체인 토큰 전송

Last updated 1 year ago

Was this helpful?

이 장에서는 4개 노드 서비스체인을 Baobab 네트워크에 연결하는 방법을 설명합니다. Baobab EN을 구축하고 여러분의 SCN 중 하나와 연결할 것입니다. 그리고 나서 서비스체인의 블록 정보를 Baobab 네트워크에 저장하는 앵커링 기능을 사용해 볼 것입니다.

Prerequisites

  • EN용 Linux 또는 MacOS 서버 1대

  • 테스트를 위한 최소 하드웨어 요구 사항

    • CPU: 4-core (Intel Xeon or equivalent), RAM: 16GB, HDD: 50GB

    • 자세한 설명은 시스템 요구사항을 참조하세요.

  • Baobab EN 실행파일을 다운로드하세요. For the full list of downloadable binaries, see Download.

  • 가정 및 제약

    • 서비스 체인이 설치되어 실행 중입니다. 네트워크를 설치하기 위해서는 4개 노드 서비스 체인 설치하기를 참고해주세요.

    • Baobab EN.

    • 오직 일대일 연결만 지원되기 때문에 하나의 EN은 하나의 SCN에 연결될 수 있습니다.

    • 모든 SCN이 EN과 연결되어야 하는 것은 아닙니다.

0 단계 : Baobab EN 설치하기

The installation is the uncompression of the downloaded package. EN 서버에 EN 패키지를 압축 해제합니다.

EN-01$ tar xvf ken-baobab-vX.X.X-XXXXX-amd64.tar.gz

1 단계 : genesis.json 준비하기

EN 서버에서 아래 명령어로 Baobab 네트워크를 위한 genesis.json을 다운로드하세요.

EN-01$ curl -X GET https://packages.klaytn.net/baobab/genesis.json -o ~/genesis.json

2 단계 : EN 노드 초기화

다운로드 받은 제네시스 파일을 사용해서 EN을 초기화합니다. 아래의 명령어를 실행하시면, It will create the data folder storing the chain data and logs on your home directory. You can change the data folder using the --datadir directive.

EN-01$ ken init --datadir ~/data ~/genesis.json

3 단계 : EN 노드 설정

ken 설치 폴더에서 mv kend_baobab.conf kend.conf 명령어로 파일명을 변경하고, conf/kend.conf 파일을 아래와 같이 수정하세요.

...
NETWORK="baobab"
...
SC_MAIN_BRIDGE=1
...
DATA_DIR=~/data
...

4 단계 : EN 노드 시작

EN-01$ kend start
Starting kscnd: OK

EN 노드를 시작하고, 콘솔에서 klay.blockNumber를 조회하면 블록 동기화 상태를 확인할 수 있습니다. If this number is not 0, the node is working fine. Downloading all blocks on the Baobab network may take a long time depending on network conditions and hardware performance, so we recommend using Fast Sync to synchronize blocks.

EN-01$ ken attach --datadir ~/data
> klay.blockNumber
21073

노드를 중지하려면 kend stop 명령어를 사용하세요.

5 단계 : EN 노드의 KNI 확인

SCN-L2-01 노드에서 연결하는 데 사용되는 정보인 EN-01의 KNI를 잘 기억해 둡니다. 이 정보는 다음 단계에서 main-bridges.json을 생성할 때 사용됩니다.

EN-01$ ken attach --datadir ~/data
> mainbridge.nodeInfo.kni
"kni://0f7aa6499553...25bae@[::]:50505?discport=0"

6 단계 : main-bridges.json 생성

SCN-L2-01(참고: EN-01 아님)에 로그온하고 ~/data에 main-bridges.json을 만듭니다. @ 문자 뒤에 있는 [::]를 EN-01의 IP 주소로 바꿉니다.

SCN-L2-01$ echo '["kni://0f7aa6499553...25bae@192.168.1.1:50505?discport=0"]' > ~/data/main-bridges.json

Step 7: Configure SCN then Restart kscn

SCN-L2-01의 콘솔에서 kscn-XXXXX-amd64/conf/kscnd.conf를 편집합니다. SC_SUB_BRIDGE가 1로 설정되면, SCN-L2-01에서 kscn이 실행될 때 데이터 앵커링이 자동으로 동작합니다. 이 예제에서는 SC_PARENT_CHAIN_ID는 부모체인인 Baobab의 chainID가 1001이기 때문에 1001로 설정되어 있습니다. SC_ANCHORING_PERIOD는 앵커링 tx를 메인체인으로 보낼 주기를 결정하는 파라미터입니다. 값을 10으로 설정하면 10블록마다 앵커링을 수행하도록 노드를 구성합니다. 기본값은 1입니다.

...
SC_SUB_BRIDGE=1
...
SC_PARENT_CHAIN_ID=1001
...
SC_ANCHORING_PERIOD=10
...

다음 명령어로 kscn을 다시 시작합니다.

SCN-L2-01$ kscnd stop
Shutting down kscnd: Killed
SCN-L2-01$ kscnd start
Starting kscnd: OK

SCN-L2-01과 EN-01이 연결되었는지를 확인하기 위해서 subbridge.peers.length을 조회해 봅니다.

SCN-L2-01$ kscn attach --datadir ~/data
> subbridge.peers.length
1

앵커링

EN-01 및 SCN-L2-01 연결을 완료한 후 앵커링을 통해 상위 체인에 ServiceChain 블록 정보를 기록할 수 있습니다. 이번 예제에서는 부모체인의 운영자 계정을 충전하고 앵커링을 활성화하고 앵커링된 블록 번호를 확인합니다.

1 단계 : 앵커링 테스트를 위한 KLAY 얻기

앵커링을 사용하려면 SCN-L2-01이 Baobab에 대한 앵커링 트랜잭션을 전송해야 합니다. 따라서 subbridge.parentOperator 계정에는 거래 수수료를 지불하기에 충분한 KLAY가 있어야 합니다. Baobab Wallet Faucet에서 일부 KLAY를 가져오고 일부 KLAY를 parentOperator로 전송합니다. 실제 서비스 환경에서 데이터 앵커링을 하려면 parentOperator에 거래 수수료에 대한 충분한 KLAY가 있어야 합니다.

SCN-L2-01$ kscn attach --datadir ~/data
> subbridge.parentOperator
"0x3ce216beeafc62d20547376396e89528e1d778ca"

2 단계 : 앵커링 시작

엥커링을 시작하기 위해서는 다음의 명령어를 수행합니다.

SCN-L2-01$ kscn attach --datadir ~/data
> subbridge.anchoring(true)
true

앵커링이 시작된 후 subbridge.latestAnchoredBlockNumber를 사용하여 Baobab에 가장 최근에 앵커된 블록을 확인할 수 있습니다. 최근 앵커링된 블록을 확인하기 위해서는 EN이 Baobab 네트워크의 최신 블록으로 동기화된 이후에만 가능하다는 점에 유의하십시오. 기본적으로 SCN-L2-01은 앵커링이 활성화된 이후부터 모든 블록에 대해서 앵커링을 시도합니다. 앵커링 주기는 SC_ANCHORING_PERIOD를 변경하여 설정할 수 있습니다. 예를 들면 값이 10으로 설정되면 블록 번호가 10의 배수일 때마다 앵커링을 시도합니다.

SCN-L2-01$ kscn attach --datadir ~/data
> subbridge.latestAnchoredBlockNumber
100