baas를 활용한 nft 플랫폼을 설계하고 구현 단계에 있다.
현재 solidity
, remix ide
, pinata
등을 활용해서 실제 NFT를 발행하는 과정까지 확인했다.
BaaS를 활용하려면 IPFS에서 벗어나 NFT를 발행할 디지털 자산도 Cloud에 저장하는 게 어떤가 하는 생각이 들었다.
현재 IPFS
는 Pinata를 활용중이고, 테스트 데이터로 이미지 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를 발행하기까지 문제없이 처리되었다.
Metamask
와 Remix IDE
를 이용한 Rinkeby Network
와
Amazon Manged Blockchain
을 이용한 Rinkeby Network
의 성능 차이가 있는지 확인해봐야 할 것 같다.