클레이튼 개발 환경에서 NFT 개발 🧑🏻‍💻

김기대·2021년 12월 12일
0

블록체인 개발

목록 보기
3/12
post-thumbnail

NFT 개발에 앞서!

클레이튼 이란? 🤔

카카오의 자회사인 그라운드x 에서 Dapp 개발을 위한 블록체인 플랫폼

이더리움과 같이 한 네트워크의 개념이라고 이해를 했다.
이더리움에서 이더를 사용하듯이 클레이튼 네트워크에서는 클레이를 사용.

클레이튼에서의 합의 알고리즘 : IBFT (이스탄불 비잔티움 결함 허용)
블록 생성 주기 = 라운드
블록 생성 간격 = 약 1초

👻 추후 클레이튼 네트워크에 대한 자세한 내용은 따로 다룰것!

KIP-17 이란? 🤔

클레이튼 네트워크에서의 대체 불가능한 토큰 (NFT)에 대한 표준

KIP-17 : KIP-17 docs 링크

이더리움 기반의 스마트 컨트랙트를 개발할 때 ERC-20, ERC-721 등을 사용했던 것처럼 클레이튼 기반의 스마트 컨트랙트를 개발할 때는 KIP를 사용.

Klaytn IDE 란? 🤔

Remix IDE와 같이 웹 기반으로 개발을 위한 IDE

Klaytn IDE는 Remix 0.7.7 버전에서 분기하였다고 함.

Baobab 이란? 🤔

클레이튼 기반의 메인넷에 스마트 컨트랙트를 발행하기 전에 테스트 해볼 수 있는 네트워크

이더리움의 롭스텐(Ropsten) 네트워크와 비슷한 개념으로 이해.
보통 Baobab(테스트넷) 이라고 함.

실습. 클레이튼 개발 환경에서 NFT 개발 🧐

이번 실습에서는 Klaytn IDE를 사용함.
이더리움의 ERC-721 처럼 여기선 KIP-17 (NFT).
그리고 Baobab(테스트넷)을 활용하여 배포 실습.
지갑은 클레이튼 Kaikas 지갑 사용.
소스코드는 ERC-721과 비슷.

  1. 코드 작성(KIP-17)이 완료되면 먼저 컴파일 진행.
    버전은 pragma solidity ^0.5.6;
    0.5.6 앞에 ^는 이상의 의미.

    그리고 Auto compile 을 체크해놓으면 자동으로 컴파일을 해줌.(편함)

컴파일 버튼 누르고 좀 기다리면 밑에 컴파일한 컨트랙트들이 뜸.

MyNFTs 컨트랙트가 컴파일 완료된 걸 확인.

  1. 컴파일이 완료됐으면 이제 배포를 해볼 것.

먼저 Environment에 Babbob(테스트넷)을 사용할 거니까 Babbab 체크.

그리고나서, Account 옆에 + 표시를 눌러 배포할 계정 주소를 넣어줘야 함.

우린 Klaytn Kaikas 지갑을 사용.

주소를 넣을땐 개인키를 넣어야함.

그럼 이제 Account 에는 배포할 계정 주소가 들어감.
주소를 여러개 넣어 줄 수 있음.

그리고 나서, 내가 배포할 컨트랙트 선택하고 Deploy!

배포된 컨트랙트 확인 해보기.

작성한 mintNFT() 함수를 실행시켜 발행.
onwerOf() 함수로 NFT가 잘 발행되었는지 확인.

클레이튼 개발환경에서 개발을 해보았다. 🧐
이번엔 실습 위주로 블로깅을 해보았다.

MyNFTs 배포 주소 : 0x4288cbcab3db616f3065b5036a5226ea2fa23d7f3086b8f6aadd259aab78f5fa

클레이튼 스코프 주소 : https://baobab.scope.klaytn.com/tx/0x4288cbcab3db616f3065b5036a5226ea2fa23d7f3086b8f6aadd259aab78f5fa?tabId=internalTx

👻 추후에 truffle 로도 해볼것!

깃허브 주소 : 추후에 truffle로 클레이튼 개발 할때 올려보아야 겠다.

개발 회고

목적

이번 개발 실습의 목적은 클레이튼 개발 환경에서 어떤식으로 배포가 되는지 알아보기.

Keep(장점, 유지할 것)

이더리움 개발 환경과 매우 유사했다. 추후에 truffle 로 해볼 때 truffle-config.js 파일에 네트워크 부분을 좀 수정하면 될 것 같다.

Problem(단점, 변경 또는 버릴 것)

요번 실습에서는 딱히 코드작성을 많이 하지 않아서 솔리디티 언어를 까먹은 듯한 느낌이 든다.

Try(시도할 점, 앞으로의 행동)

솔리디티 언어의 활용을 아직 잘 못하는 것 같아 계속 반복적으로 고민을 해보고 계속 사용해보도록 해봐야겠다.

profile
블록체인 백엔드 개발자

0개의 댓글