apt, snap가 아닌 Kubo로 IPFS 설치 방법

Kubo(IPFS)의 설치 방법은 Snap을 사용하지 않고 Kubo를 설치하고 설정하는 방법을 따라 문제를 해결하겠습니다.

1. Kubo 다운로드 및 설치

  1. Kubo 다운로드최신 Kubo 버전을 공식 배포 페이지에서 다운로드합니다.bash코드 복사wget https://dist.ipfs.tech/kubo/v0.18.0/kubo_v0.18.0_linux-amd64.tar.gz
  2. 압축 해제bash코드 복사tar -xvzf kubo_v0.18.0_linux-amd64.tar.gz cd kubo
  3. 설치bash코드 복사sudo bash install.sh
  4. 환경 변수 설정Kubo가 올바르게 설치되었는지 확인하기 위해 환경 변수를 설정합니다.bash코드 복사export PATH=$PATH:/usr/local/bin

2. IPFS(Kubo) 초기화 및 데몬 실행

  1. IPFS 초기화bash코드 복사ipfs init 만약 ipfs 명령어가 인식되지 않는다면, 설치된 경로가 올바른지 확인하고 환경 변수를 다시 설정해보세요.bash코드 복사which ipfs 명령어가 출력되지 않는다면, IPFS 바이너리가 설치된 경로를 확인하고 $PATH에 추가합니다.
  2. 데몬 실행bash코드 복사ipfs daemon

3. 메타데이터 파일 생성 및 업로드

  1. 메타데이터 파일 생성metadata.json 파일을 생성하고 아래와 같이 전자책의 메타데이터를 작성합니다.json코드 복사{ "name": "Example Ebook", "description": "An example ebook for NFT", "image": "https://example.com/cover.jpg", "attributes": [ { "trait_type": "Author", "value": "John Doe" }, { "trait_type": "Genre", "value": "Fiction" } ] }
  2. 메타데이터 파일 IPFS에 업로드bash코드 복사ipfs add metadata.json 출력 결과에서 Qm... 형식의 해시를 얻을 수 있습니다. 이 해시를 사용하여 파일을 참조합니다.plaintext코드 복사added Qmabcdef123456 metadata.json
  3. IPFS URI 구성IPFS의 URI는 다음과 같이 구성됩니다.plaintext코드 복사https://ipfs.io/ipfs/Qmabcdef123456

4. 테스트 파일 업데이트

이제 test/ebook_nft.js 파일에서 tokenURI를 위에서 얻은 IPFS URI로 설정합니다.

javascript코드 복사const EbookNFT = artifacts.require("EbookNFT");

contract("EbookNFT", (accounts) => {
    it("should mint a new NFT", async () => {
        const ebookNFT = await EbookNFT.deployed();
        const tokenURI = "https://ipfs.io/ipfs/Qmabcdef123456";
        await ebookNFT.mint(accounts[0], tokenURI);

        const owner = await ebookNFT.ownerOf(0);
        assert.equal(owner, accounts[0], "Owner of tokenId 0 should be accounts[0]");

        const retrievedTokenURI = await ebookNFT.tokenURI(0);
        assert.equal(retrievedTokenURI, tokenURI, "Token URI of tokenId 0 should match");
    });
});

이제 tokenURI가 실제 IPFS에 업로드된 메타데이터 파일을 가리키므로 테스트가 더 정확하게 동작합니다.

5. 테스트 실행

bash코드 복사truffle test

이제 IPFS를 통해 메타데이터 파일을 업로드하고 해당 URI를 설정하는 과정이 완료되었습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!