IPFS를 이용한 tokenURI 만들기

Poo·2021년 12월 15일
0

IPFS란

IPFS는 모든 컴퓨터를 연결하고자 하는 분산된 P2P 파일 시스템
IPFS Web 는 기존의 HTTP Web 의 문제점을 해결하고 보완한 새로운 Web

특징

1. 중앙화 된 서버 없이 노드 간의 p2p 통신으로 더 빠르고 안전하다.
가끔 http를 사용하다가 서버가 터져서 사용을 못한 기억이 있을 것이다.
IPFS는 그렇지 않다! 몇몇의 노드의 연결이 끊기더라도 생태계가 안전하게 돌아간다.
2. 고용량의 파일을 빠르고 효율적이게 전달할수 있다
이는 내가 이전에도 말했던 비동기 방식과 상당히 아니 그냥 똑같다
업로드 하고자 하는 파일을 데이터 청크로 나눈다. 청크된 데이터는 각 노드들에게 뿌려지게 되고 다운로드를 할 때에는 데이터 순서대로 받는 것이 아니라 모든 노드들에게 요청하여 청크된 모든 데이터를 한번에 받고 다 받아지면 순서를 재정렬하여 맞춘다.
3. 다른 특징들이 있지만 2가지가 제일 중요하니 넘어가겠다.

IPFS가 왜 등장을 했느냐가 이것의 용도를 정확하게 설명해줄 수 있을 듯 하다.
Why?

  1. http web의 불안정함

서버가 불안정하거나, 서버를 운영하던 기업이 망하거나 등등 여러 오류 등으로 페이지 이용이 어려운 경우가 있다.

  1. http web의 극 중앙화

사실 web의 태생적 목표도 블록체인과 같은 탈 중앙화 였다는 사실을 알고있는가
하지만 소수의 서비스에 의해 이용자들이 의존하게 되면서 극 중앙화에 이르게 되었다.
중앙화된 서버의 취약점은 뻔하다.
(사실 블록체인도 중앙화가 될 가능성이 크다고 생각한다. 정부의 개입과 퍼블릭 블록체인의 구현의 어려움(트릴레마), 프라이빗 블록체인 플랫폼의 확장 등)

쓰다 보니 이야기가 너무 길어진다 IPFS에 관한 자세한 내용은 해당 블로그가 정말 아주 아주 자세하게 다뤄주니 링크로 대체하겠다. 이 후 시간이 나면 나의 언어로 재편성 예정
IPFS blog

설치

터미널에 요롷게

get https://dist.ipfs.io/go-ipfs/v0.10.0/go-ipfs_v0.10.0_linux-amd64.tar.gz

tar -xvzf go-ipfs_v0.10.0_linux-amd64.tar.gz

cd go-ipfs
sudo bash install.sh

ipfs --version

일단 설치 끝

저장소 초기화

$ ipfs init
$ ipfs cat /ipfs/12D3KooWK4j5jDd6K495yyvtpG1m8H9uB7qCU4ExLYstfN4kkRM9/readme


요런 에러가 뜬다면

$ export IPFS_PATH=/Users/Beis/ipfsrepo

/Users/Beis/ 이부분은 각자의 ipfs 경로를 써주면된다.

이미지 올리기

이 부분 부터는 cli 보다 gui가 편하니까 gui로 보자

$ ipfs daemon

연결이 되면 크롬 하나 열어서
http://127.0.0.1:5001/webui
타고 들어가자

요롷게 뜰것이다. 왼쪽 상태창들을 보면 상태 파일 ... 세팅 등 있는데

파일로 들어가자.
파일로 들어가서 내가 올리고 싶은 파일을 끌어다가 올려놓으면
너무 쉽게 끝나버린다. 이미지 첨부 화면 처럼
shipNFT.gif 부분에서 제일 끝 오른쪽 ... 눌러보면 해시 복사가 있다.
요걸 클릭해주고 제일 상단 qmhash 박스에 넣어주고 브라우즈를 눌러주자

url 확인하기

요렇게 뜰텐데 여기서 public gateway를 눌러 주면 내가 올린 이미지가
ipfs 형식으로 전환되어 새로운 창이 켜질것이다. 그것이 url!!!

요렇게 뜨면 완성

힘들다 힘들다 오늘은 여기까지....

profile
죽을 때 까지 공부하다 죽을 인생, 로봇공학자에서 블록체인 개발자가 되기 까지

0개의 댓글