본문으로 건너뛰기

KAS로 데이터 앵커링 사용

디자인 섹션에서 설명한 것처럼 서비스 체인 데이터를 클레이튼 메인체인에 앵커링할 수 있습니다. 이 페이지에서는 KAS(Klaytn API 서비스)를 통해 데이터 앵커링을 활성화하는 방법을 소개합니다.

이 기능을 켜면 서비스 체인의 노드는 서비스 체인의 존재와 불변성을 증명하기 위해 주기적으로 체인 데이터(블록 데이터)를 Cypress 또는 Baobab에 앵커링할 수 있습니다. 이를 통해 서비스 체인의 보안과 신뢰성을 보장할 수 있습니다.

KAS 사용 준비

이 섹션에서는 데이터 앵커링에 KAS를 사용하기 위한 전제 조건에 대해 소개합니다.

KAS(클레이튼 API 서비스) 가입하기

먼저, KAS 계정을 발급받기 위해서는 KAS 콘솔 웹사이트에서 KAS를 가입해야 합니다. 위 웹사이트에 접속하여 KAS에 가입하세요.

메인 페이지

가입

인증정보 만들기

로그인 후 아래와 같이 크리덴셜을 생성할 수 있습니다. AccessKey IDSecret AccessKey 또는 Authorization은 KAS API를 호출할 때 사용됩니다.

자격증명

앵커 API

KAS는 데이터 앵커링을 위해 설계된 앵커 API를 제공하고 있으며, 앵커링 작업에 사용하실 것입니다.

앵커 API

오퍼레이터 주소 생성

KAS를 통해 서비스체인 데이터를 앵커링하려면, 실제로 클레이튼에 앵커링 트랜잭션을 전송하는 클레이튼 주소가 KAS에 등록되어 있어야 합니다. 따라서 서비스 노드를 설정하기 전에 KAS를 통해 "operator"라는 클레이튼 계정을 생성해야 합니다. 이 계정은 KAS 콘솔에서 생성할 수 있습니다.

주의할 점은 KAS 콘솔 페이지의 오른쪽 상단에서 데이터를 앵커링할 체인을 클레이튼에서 먼저 선택해야 한다는 점입니다. 각 체인에 대한 오퍼레이터를 생성해야 합니다(Cypress/Baobab).

선택 체인

아래와 같이 연산자를 생성합니다.

연산자 만들기

그러면 아래와 같이 운영자 목록을 확인할 수 있습니다. 서비스 체인 노드를 설정하려면 오퍼레이터의 주소가 필요합니다.

연산자 만들기

서비스 체인 노드 구성하기

KAS에서 API 자격 증명, 앵커 API 정보(API 엔드포인트 및 파라미터), 운영자 계정을 획득했다면 이제 서비스 체인 노드를 설정할 차례입니다. 아래와 같이 서비스 체인 노드의 설정 파일(kscnd.conf, kspnd.conf, ksend.conf)을 수정해야 합니다.

SC_SUB_BRIDGE=1 및 모든 SC_KAS_ 접두사 항목을 설정해야 합니다.


...
# service chain options setting
...
SC_SUB_BRIDGE=1
...
SC_KAS_ANCHOR=1 # 1: enable, 0: disable
SC_KAS_ANCHOR_PERIOD=10 # Anchoring block period
SC_KAS_ANCHOR_URL="https://anchor-api.klaytn.com/v1/anchor" # Anchor API URL
SC_KAS_ANCHOR_OPERATOR="0x6A3D565C4a2a4cd0Fb3df8EDfb63a151717EA1D7" # Operator address
SC_KAS_ANCHOR_ACCESS_KEY="KAJM4BEIR9SKJKAW1G3TT8GX" # Credential Access key
SC_KAS_ANCHOR_SECRET_KEY="KyD5w9ZlZQ7ejj6lDF6elb61u8JH/mXdKqhgr3yF" # Credential Secret key
SC_KAS_ANCHOR_X_CHAIN_ID=1001 # Cypress: 8217, Baobab: 1001
...

서비스 체인 노드 실행

이제 준비가 완료되었습니다. 서비스 체인 노드를 실행할 수 있습니다. 아래와 같이 KAS 앵커 API와 관련된 로그 메시지를 확인할 수 있습니다.


...
INFO[09/10,18:09:28 +09] [5] Imported new chain segment number=86495 hash=5a20d6…cbca1b blocks=1 txs=3 elapsed=2.387ms trieDBSize=5.10kB mgas=0.063 mgasps=26.383
INFO[09/10,18:09:28 +09] [53] Anchored a block via KAS blkNum=86495
INFO[09/10,18:09:29 +09] [5] Imported new chain segment number=86496 hash=8897bc…4ea7e7 blocks=1 txs=3 elapsed=2.158ms trieDBSize=5.10kB mgas=0.063 mgasps=29.188
INFO[09/10,18:09:29 +09] [53] Anchored a block via KAS blkNum=86496
INFO[09/10,18:09:30 +09] [5] Imported new chain segment number=86497 hash=44b319…7d4247 blocks=1 txs=3 elapsed=2.346ms trieDBSize=5.43kB mgas=0.063 mgasps=26.848
INFO[09/10,18:09:30 +09] [53] Anchored a block via KAS blkNum=86497
INFO[09/10,18:09:31 +09] [5] Imported new chain segment number=86498 hash=0b98ba…73d654 blocks=1 txs=3 elapsed=2.235ms trieDBSize=5.61kB mgas=0.063 mgasps=28.186
INFO[09/10,18:09:31 +09] [53] Anchored a block via KAS blkNum=86498
INFO[09/10,18:09:32 +09] [5] Imported new chain segment number=86499 hash=4f01ab…3bc334 blocks=1 txs=3 elapsed=3.319ms trieDBSize=5.61kB mgas=0.063 mgasps=18.977
INFO[09/10,18:09:32 +09] [53] Anchored a block via KAS blkNum=86499
...

트랜잭션 목록

KAS 콘솔 웹사이트의 "KAS Console - Service - Anchor - Operators" 메뉴에서 아래와 같이 서비스 체인의 오퍼레이터가 전송한 앵커링 트랜잭션 목록을 확인할 수 있습니다.

앵커링 트랜잭션 목록

Make this page better