개발공부일지
BlockChain - ERC721, IPFS, pinata 본문
** ERC721(NFT)
- 대체 불가능한 토큰 : 모양은 같지만 고유한 식별자가 있음. 각각의 NFT는 대체가 불가능함.
- 영화티켓처럼, 티켓모양은 같지만 입장코드가 있는것과 같이 대체불가능하다는 의미
- 민팅 : 블록체인 네트워크에서 새로운 토큰을 생성하는 과정을 의미한다.
- 토큰생성하는 메서드가 _mint()라서 민팅! ERC20에서
- ERC20은 생성할때 내부 데이터보다 갯수에 의미가있었는데
- ERC721은 생성할때 데이터를 포함시켜서 객체의 내용을 가지고 고유한 식별포함하고있음
- 백엔드에 업로드는 탈중앙화에 어긋나기때문에, ipfs에 업로드!
- 설치 및 실행
npx create-react-app erc20
npm i web3
npm i @openzeppelin/contracts
remixd -s . --remix-ide "https://remix.ethereum.org/"
- 분산파일시스템(IPFS)에 객체내용, 이미지 업로드 → 고유한 CID, 해시 URL로 사용
- 분산 네트워크, 중앙서버X, 여러 노드들이 분산네트워크에 파일저장
- 무결성 및 보안 유지
- 업로드하면 파일의 경로는 고유한 주소를 가진다(해시기반)
- 분산파일시스템 데이터를 저장하는 프로토콜 P2P 네트워크
- 한번 업로드하면 수정/삭제 불가능
- 수정은 IPFS에 새로운 버전의 파일을 업로드하는것임(새로운CID생성됨)
{
"name" : "nft 이름",
"description: : "nft 설명",
"image" : "nft 이미지 경로(ipfs에 업로드된)",
"attributes" : [
// type같은 nft 속성에 추가할때
]
}
*** pinata
- pinata에 axios로 이미지 업로드하기
https://docs.pinata.cloud/reference/post_pinning-pinjsontoipfs
'BlockChain' 카테고리의 다른 글
BlockChain - Proxy contract, EVM OPCODE, assembly (0) | 2024.02.08 |
---|---|
BlockChain - factory contract, DAO, modifier, checks-effects-interactions pattern, mutex (0) | 2024.02.07 |
BlockChain - token, transfer (0) | 2024.01.31 |
BlockChain - 메타마스크 네트워크 추가하기 (0) | 2024.01.31 |
BlockChain - react web3 hook, openzeppelin, ERC20, Token (0) | 2024.01.30 |