핀수로그
  • NFT 와 DApp
    2022년 05월 14일 16시 29분 04초에 업로드 된 글입니다.
    작성자: 핀수
    728x90
    반응형

     

      해당 강의를 들으며 작성된 것입니다.

       

      [무료] [D.P.(DappProject)] 디앱 프로젝트(NFT 생성, NFT 구매 및 판매) - 인프런 | 강의

      리액트, 솔리디티(ERC721)를 활용하여 기본적인 NFT 생성, NFT 구매 및 판매를 배우게 됩니다. 스마트 컨트랙트 작성과 리액트를 활용하여 작성한 스마트 컨트랙트를 웹에 연동하는 법을 배우게 됩

      www.inflearn.com

       

      DApp 이란

      탈중앙화 어플리케이션

      블록체인에서 만들어지는 어플들을 디앱이라고 부른다.

       

      Solidity

      계약 지향 프로그래밍 언어

      다양한 블록체인 플랫폼의 스마트 계약 (smart contract) 작성 및 구현에 사용됨

      정적타입(statically-typed)의 프로그래밍 언어

       

      EVM 상에서 작동하는 스마트 계약을 개발하기 위해 설계됨

      솔리디티는 EVM에서 작동 가능한 바이트 코드로 컴파일 된다. (위키백과)

       

      *EVM (Ethereum Virtual Machine) : 이더리움 가상머신.

      EVM 바이트코드는 (플랫폼이 스스로 부과하는 한계인 가스의 범위 내에서) 조합 가능한 모든 계산을 수행할 수 있는 256비트의 원시 문자열 정보로 구성된다.

      최근 eWASM 으로 전환되고 있다고 함..(이제 공부하는데요..?)

      출처 : 코인데스크 코리아 (http://www.coindeskkorea.com/news/articleView.html?idxno=28961)

       

       

      OpenZeppelin

      블록체인 및 소프트웨어 개발 회사

      솔리디티 기반의 스마트 계약을 개발하는 표준 프레임워크 (위키백과)

       

      Remix IDE

      솔리디티 코드를 작성, 컴파일 및 디버그하는 데 사용할 수 있는 오픈 소스 Ethereum IDE

       

       

      Smart Contracts 작성

      MintAnimalToken.sol

      확장자 sol 은 solidity 를 의미

      import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";

      ERC721

      NFT를 정의하는 룰이 필요함

      그것에 대한 인터페이스가 정의되어있는 것

      openzeppelin 에서 이에 대한 것을 제공하는데

      여기서 좀 더 확장된 기능을 제공하는 것이

      ERC721Enumerable.sol

       

       

      contract MintAnimalToken is ERC721Enumerable {
          contructor() ERC721(name, symbol) {
      
          }
      }

      contructor는 이 스마트 컨트랙트가 빌드 될 때 한번 실행됨 (생성자)

       

       

      mapping

      대부분은 기존에 알고 있던 타 언어의 구조와 비슷해서 어렵지 않게 이해할 수 있었지만

      mapping 은 낯설어서 좀 찾아보았다.

       

      배열 및 구조체와 같은 참조 유형

      // 1~5번까지 애니멀타입이 나온다.
      // 앞 256 : 애니멀토큰아이디 / 뒤 256 : 애니멀타입
      // 토큰아이디 입력 -> 애니멀타입 나옴 
      mapping(uint256 => uint256) public animalTypes;

       

       

      _mint

      mint (minting)

      nft 를 만들거나 가상화폐를 만드는 것

      그림이나 영상 등 디지털 자산의 대체불가토큰 (NFT) 을 생성하는 것을 일컫는 용어

      // mint 하는 함수
      // msg.sender : 이 메세지를 실행한 사람. minting 누른 사람
      // animalTokenId : NFT 증명 토큰 아이디
      _mint(msg.sender, animalTokenId);

       

       

      리믹스 설치

      npm install -g @remix-project/remixd

      웹에서 바로 사용하는 것과 오프라인으로 사용하는 방법 두가지가 있는데

      위는 웹에서 사용하는 방식

       

       

      리믹스 실행

      remixd -s . --remix-ide https://remix.ethereum.org

       

       

      제대로 실행이 되었다면 해당 영역을 클릭하면

      connect to localhost 라고 뜬다.

      그리고 안내창이 나오면 connect 눌러주면 연결됨

       

      VS Code 에서 작업하던 것들이 연결된다.

       

      728x90
      반응형
      댓글