인프런 커뮤니티 질문&답변

쿠사님의 프로필 이미지
쿠사

작성한 질문수

jQuery로 구현하는 NFT 마켓플레이스 (이더리움, 폴리곤)

이미지 대량 민팅과 infura오류

작성

·

724

0

이미지 대량 민팅을 진행하려고 pinata와 연결하여 (1)웹 자바스크립트를 통한 민팅과 (2)리믹스를 통한 민팅으로 제작하려고 합니다. 그런데 pinata와 연결하여 리믹스에서 민팅하려고하면 웹에서 민팅이 진행되지 않고, 웹에서 진행하려고 하면 두 상황에서 같이 민팅 수 있는 코드를 어떻게 수정해야할지 감이 잘 안 잡힙니다.. 그리고 제가 잘 확인하지 못했는데 혹시 웹에서 이미지를 보기 위해 json 파일에 필수로 들어가야할 요소가 있을까요

밑에 글에 올라온 것처럼 파일을 선택 후 이미지를 업로드를 하면 infura 오류가 뜹니다

request.js:138 POST https://ipfs.infura.io:5001/api/v0/add?stream-channels=true 401 (Unauthorized)

댓글을 보면 개인 계정 설정 후 진행이 되는 분이 계셨는데 코드를 수정하고 개인 계정을 설정 후에도 오류가 걸리는 부분이 있어 curl나 개인 계정 설정에 대해 어떻게 진행하면 좋을지 여쭤보고 싶습니다 ㅠㅠㅠㅠ

답변 2

0

Kyung-il In님의 프로필 이미지
Kyung-il In
지식공유자

curl로 하시기전에

https://ipfs.tech/ 사이트 접속하셔서 ipfs 프로그램은 pc에 설치해보시면 좋을거같습니다.
개념을 조금 알고 하시면 더 이해가 잘 될거같네요..

우선 간단하게 설명한다면 서버에 ipfs 프로그램을 설치합니다. 그럼 서버와 ipfs 퍼블릭 네트워크와 동기화하여 자신의 서버도 ifps 게이트웨이서버가 됩니다. 이를 이용하여 curl 명령어 또는 자바스크립트명령어를 이용 ipfs에 파일을 업로드하시면 됩니다.

감사합니다.

쿠사님의 프로필 이미지
쿠사
질문자

감사합니다!! 이 방법으로도 꼭 시도해보겠습니다!!

0

Kyung-il In님의 프로필 이미지
Kyung-il In
지식공유자

json 파일의 경우 오픈씨에 업로드하실거면 아래 사이트를 참고하세요

https://docs.opensea.io/docs/metadata-standards

오픈씨 가 아니라면 erc721 에 맞게하시면됩니다.

https://eips.ethereum.org/EIPS/eip-721

대량으로 민팅하실거면 json파일을 미리 만들어서 폴더를 통째로 ipfs에 업로드하는 방법을 많이 사용합니다. 이렇게되면 폴더 이름은 ipfs의 해시값으로되고 파일이름은 그대로 사용이 가능합니다.

그리고 인퓨라 오류는 아래 내용으로 해보시면 될거같습니다.

최근 인퓨라에서 제공하던 API가 부분 유료화가 되면서 기존에 소스가 정상동작을 하지 않네요..

해결방법은 다음과 같습니다.

  1. https://infura.io/ 가입

  2. CREATE NEW KEY - 새로운 키 생성
    신용카드 정보입력 5기 무료로 이용가능하다고 합니다. ( 사이트에 표시됨 )

  3. api 사용 체크

  4. 소스 수정

//ipfs

var IPFS_URL = "https://ipfs.io/ipfs/";

var IPFS_API_URL = "ipfs.infura.io";

//var ipfs = window.IpfsApi(IPFS_API_URL, "5001", { protocol: "https" }); // Connect to IPFS

const projectId = '{인퓨라 프로젝트아이디}';

const projectSecret = '{인퓨라 시크릿키}';

const auth = "Basic " + btoa(projectId + ":" + projectSecret);

console.log("-> "+auth);

var ipfs = window.IpfsApi(IPFS_API_URL, "5001", { protocol: "https" , headers: { authorization: auth } } ); // Connect to IPFS

Infura에서 발급받은 키를 이용하여 5기가까지 무료로 이용하시면 될거같습니다.

만약에 카드번호 입력이 어려우시면 별도로 ipfs 게이트웨이를 구성하시면 쉽게 사용이 가능합니다. 참고해주세요

리액트로 하실분들은 아래 사이트 참고

https://www.becomebetterprogrammer.com/upload-files-using-react-ipfs-infura/

쿠사님의 프로필 이미지
쿠사
질문자

감사합니다 감사합니다 ㅠㅠ그런데 혹시 소스를 수정하고 나서도 401 (Unauthorized) 코드가 뜨는 경우는 API가 잘못된 경우일까요?

Kyung-il In님의 프로필 이미지
Kyung-il In
지식공유자

제가 했을땐 401 오류가 발생되지 않았는데..다시 잘 해보시는게 좋을듯하네요

그런데 개인적인 생각으론 무료이지만 유료처럼 써야하는 API라서요.
서버 세팅을 좀 잘 하시면 IPFS 게이트웨이를 서버에 세팅하고 하는 게 더 자유롭게 개발이 가능할 거 같습니다. 자유롭다는 의미는 IPFS를 여러 형태로 이용할 수 있다는 의미입니다.

쿠사님의 프로필 이미지
쿠사
질문자

아하 확인해보겠습니다!!

쿠사님의 프로필 이미지
쿠사

작성한 질문수

질문하기