NFT 플랫폼 - 1

KangMyungJoe·2022년 5월 31일
0

rnd

목록 보기
1/3
post-thumbnail

아마존 S3와 Pinata 연동에 관한 글

baas를 활용한 nft 플랫폼을 설계하고 구현 단계에 있다.

현재 solidity, remix ide, pinata 등을 활용해서 실제 NFT를 발행하는 과정까지 확인했다.

BaaS를 활용하려면 IPFS에서 벗어나 NFT를 발행할 디지털 자산도 Cloud에 저장하는 게 어떤가 하는 생각이 들었다.

현재 IPFSPinata를 활용중이고, 테스트 데이터로 이미지 1개와 이미지에 대한 JSON 형식의 메타마스크가 올라가있다.

 "description": "The world's most adorable and sensitive pup.",
    "image": "ipfs://img_address",  
    "name": "mj's_sign“

이와 같은 형식의 데이터에 대해, image 키워드는 NFT를 발행할 디지털 자산의 주소를 나타낸다.

현재 실습에서는 Pinata에서 제공하는 hash 값을 넣어놓아 정상작동하지만,

앞에 있는 ipfs:// 부분을 삭제하고 Cloud 상의 URL을 넣어도 정상작동하는 지 확인할 계획이다.

테스트 환경에서 자유롭게 URL로 접근할 수 있게 하려면, 버킷을 만들 때 퍼블릭 엑세스 차단을 모두 해제해야 한다.

버킷을 생성하고 nft 이미지를 올릴 폴더를 생성했다.

테스트 이미지를 nft 폴더 밑에 업로드한다.

s3://bucket/nft-test-img/mj_nft.PNG

주소 지정형식은 아래와 같이 지정된다.

s3://<버킷명>/<폴더명>/<파일명> 

s3에서는 git처럼, 버킷 버전 관리 기능을 제공하고 있어 특별한 경우가 아닌이상 활성화 해놓는게 좋을 것 같다.

이미지를 업로드하고, 완료되었다고 생각했지만 Public에서 img를 확인하지 못해 이유를 확인해보니, 버킷 자체가 Public이 아니라고 한다. 위에서 체크 박스를 해제함으로써 다 해결된 줄 알았지만 아무래도 보안에 민감한 아마존이 ACL을 이용해 2중 보안을 구성해놓은 것 같다.

ACL을 이용해 Public에도 읽기 권한을 부여했다.

이제 url을 통해 이미지를 확인할 수 있다.

아마존 s3에 img와 그에대한 Metadata.json 파일을 올리고, NFT를 발행하기까지 문제없이 처리되었다.

MetamaskRemix IDE를 이용한 Rinkeby Network

Amazon Manged Blockchain을 이용한 Rinkeby Network의 성능 차이가 있는지 확인해봐야 할 것 같다.

profile
소통을 잘하는 개발자가 되고 싶습니다.

0개의 댓글