- NFT 와 DApp2022년 05월 14일 16시 29분 04초에 업로드 된 글입니다.작성자: 핀수728x90반응형
해당 강의를 들으며 작성된 것입니다.
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반응형다음글이 없습니다.이전글이 없습니다.댓글