이전 글 보러가기
체인링크 VRF 사용해보기 (1) 체인링크란?
체인링크 VRF를 사용하는 방법은 크게 두 가지다.
1) 체인링크 VRF 컨트랙트와 직접 통신하기
2) 체인링크 Functions를 이용해 간접적으로 사용하기
API를 사용하면 훨씬 간단하게 구현이 가능하지만 비용이 더 들기 때문에 1번 방법으로 구현할 것이다. 환경은 뭄바이 테스트넷 기준이다.
체인링크 VRF를 사용하려면 기본적으로 Subscription Manager에서 아래와 같은 세팅이 필요하다.
1) Subscription 생성
2) 생성한 Subscription에 Fund 추가
3) 생성한 Subscription에 Consumer 추가
1) Subscription 생성
먼저 Subscription이 무엇인지에 대한 설명이 필요할 것 같다. 체인링크에서는 Subscription을 아래와 같이 기술해놨다.
VRF v2 요청은 Subscriptioin 계정에서 자금 지원을 받습니다. Subscription Manager를 사용하면 계정을 생성하고 VRF v2에 대한 사전 결제를 수행할 수 있으므로, 애플리케이션이 요청할 때마다 자금을 제공하지 않습니다. 이를 통해 VRF v2를 사용하기 위한 총 가스 비용이 절감됩니다. 또한 Chainlink 제품을 한 곳에서 사용할 수 있도록 자금을 지원하는 간단한 방법을 제공하므로 여러 시스템과 애플리케이션에서 여러 지갑을 관리할 필요가 없습니다.
쉽게 말하자면, 체인링크 VRF는 랜덤성을 보장하기 위한 요청을 할 때 LINK 라는 고유 가상화폐를 사용한다. 이 LINK를 요청할 때마다 넣는 건 번거로우므로 사용할 LINK를 미리 담아놓는 일종의 통장(?)이라 보면 된다. 여기에 Consumer라는, VRF를 사용하는 컨트랙트를 등록해놓으면 컨트랙트가 VRF 관련 요청을 할 때 해당 Subscription에 들어있는 LINK를 소비한다.
그럼 본격적으로 Subscription을 생성해 보자. Subscription Manager에서 지갑을 연결한 후, Create Subscription을 클릭한다.
하단에는 LINK 토큰과 Coordinator, key hash 주소를 보여주는데 필요한 것이므로 미리 복사해놓으면 좋다. 어디에 쓰이는 지는 추후 설명하겠다.
버튼을 클릭하면 아래와 같은 폼이 뜨는데 이메일과 프로젝트명은 옵션이고 나중에 추가할 수 있으니 지금은 생략하고 넘어가자.
Subscription을 만들면 Subscription Manager 홈의 my subscription 카테고리에서 생성한 Subscription 목록을 확인할 수 있다.
생성한 Subscription을 클릭하면 아래와 같이 상태를 확인할 수 있다.
Status - Active 활성 여부를 알 수 있다.
ID - 보여주고 있는 Subscription의 Id이다. 컨트랙트를 만들 때 필요하다.
Admin - Subscription을 생성한 지갑 주소.
Consumers - 해당 Subscription에 등록된 Consumer 갯수. 하단에 Consumer 목록을 보여준다.
Fulfillments - Consumer들이 Subscription에 요청을 보낸 횟수. 역시 하단에서 목록을 확인할 수 있다.
Balance - Subscription에 들어있는 LINK 자산
2) 생성한 Subscription에 Fund 추가
Subscripiont 상태창 우측 상단을 보면 Actions 라는 토글 버튼이 있다. Actions에서는 크게 펀딩하기 / 이메일 주소 기입하기 / Subscription 취소하기를 할 수 있다. 여기서 펀딩하기를 누르면 Subscription에 LINK를 추가할 수 있다.
LINK는 체인링크 faucet 에서 받을 수 있다. 테스트넷으로만 받을 수 있으니 참고하자. 펀딩하기를 누르면 아래와 같은 창이 뜨면서 현재 지갑 주소에 있는 잔액이 보이고 추가할 잔액을 기입할 수 있다. 실행하면 앞서 보여준 상태창에서 Subscripion에 들어있는 총 LINK 양을 확인할 수 있다.
주의할 점은, 테스트넷과 메인넷은 Fund를 하는 방식이 다르다는 것이다. 이것 때문에 메인넷 배포 때 꽤 애를 먹었다.
테스트넷은 LINK가 하나만 있으나 메인넷은 LINK가 여러개 있다. BNB, Gnosis, Matic과 전환 가능한 LINK들이 있고, 각 LINK들과 1:1로 스왑이 되는 ERC677 LINK가 있다. 이 ERC677 LINK가 Subscription에서 사용할 수 있는 LINK이기에 가상화폐에서 전환된 LINK는 사용할 수 없다. 여러 가상 화폐와 연계하기 위해 이러한 방법을 사용하는 걸로 알고 있으니 참고하길 바란다.
마지막 남은 단계는 Subscription에 Consumer를 추가하는 건데, 추가하려면 컨트랙트를 만들어야 한다. 이건 다음 번에 설명하도록 하겠다.
'블록체인 뿅뿅' 카테고리의 다른 글
체인링크 VRF를 활용한 추첨 컨트랙트 구현하기 (1) (0) | 2024.02.04 |
---|---|
체인링크 VRF 사용해보기 (3) Subscription과 컨트랙트 연동하기 (0) | 2023.06.17 |
체인링크 VRF 사용해보기 (1) 체인링크란? (0) | 2023.04.23 |
오픈제플린 + 온라인 RemixIDE 로 간단 컨트랙트 구현하기 (0) | 2023.04.09 |
HardHat 튜토리얼 2편 (0) | 2023.03.09 |