[TIL] 2023-04-20

Melon Coder·2023년 4월 21일
0

TIL

목록 보기
21/50
post-thumbnail

Today I Learned


[Front-End] - React

오늘은 IPFS를 기반으로 한 pinata에 민팅할 nft에 대한 정보를 올리고 solidity에서 openzepplin을 통해 erc-721 규격의 토큰을 민팅하는 작업과 web3.js 라이브러리를 사용하여 월렛 연동과 컨트랙트 정보를 받아와 토큰에 대한 잔액과 공급량 조회 등을 하는 작업을 하였다.


IPFS

IPFS(InterPlanetary File System)분산 파일 시스템으로, 인터넷상에서 파일을 공유하고 저장하기 위한 프로토콜이다.
IPFS는 중앙 서버가 없는 P2P(Peer-to-Peer) 방식으로 파일을 저장하고 공유한다. 이를 위해 IPFS는 모든 컴퓨터를 하나의 파일 시스템으로 연결한다. 파일은 블록 단위로 나누어져 각각 고유한 해시값으로 식별되며, 이 해시값을 이용하여 파일을 검색하고 다운로드할 수 있다.

IPFS는 파일의 내용을 해시 값으로 식별하기 때문에, 동일한 파일이 여러 곳에 중복 저장되는 현상을 막을 수 있다. 또한, 파일의 내용이 바뀌면 새로운 해시 값이 생성되기 때문에, 이전 버전과 새 버전을 함께 보존할 수 있다.

이러한 IPFS의 특징은 블록체인 기술과 함께 사용될 때 더욱 강화된다. 블록체인은 분산 네트워크를 기반으로 하며, IPFS도 분산 네트워크를 이용하기 때문에, 블록체인과 IPFS를 함께 사용하면 더욱 안전하고 효율적인 분산 파일 시스템을 구축할 수 있다.

web3.js

자바스크립트에서 이더리움 블록체인과 상호작용하기 위해 Web3.js 라이브러리를 사용한다.
이더리움 블록체인에서 스마트 컨트랙트를 작성하고 배포하고 실행할 수 있으며, 이더리움 네트워크 상의 데이터에 접근할 수 있다.

  • window.ethereum 객체를 사용하여 지갑 주소를 불러온다.
const accounts = await window.ethereum.request({
      method: "eth_requestAccounts",
});

삼항연산자

프론트엔드 공부를 하면서 자바스크립트 코드 작성을 할 때 삼항연산자를 자주 사용하게 되는데, 이 구조에 대해 가끔 헷갈려서 정리한다.
우선 자바스크립트의 삼항 연산자는 조건문을 간결하게 표현할 수 있다. 일반적인 if-else 문을 사용하는 것보다 코드를 더욱 간결하게 만들 수 있다.

구조는 다음과 같다.

조건 ? 값1 : 값2

위의 구조에서 조건은 true 또는 false 값을 반환하는 표현식이다. 조건이 true인 경우 값1이 반환되고, 조건이 false인 경우 값2가 반환된다.

ABI

ABI는 Application Binary Interface의 약어로 애플리케이션 간 바이너리 인터페이스를 의미한다.
이더리움에서 ABI는 이더리움 스마트 컨트랙트와 상호작용하기 위한 인터페이스를 정의하는 방법이다.

스마트 컨트랙트는 이더리움 가상 머신(Ethereum Virtual Machine)에서 실행되며, 이를 통해 스마트 컨트랙트가 이더리움 네트워크에서 동작하게 됩니다. 따라서, 스마트 컨트랙트와 상호작용하기 위해서는 이더리움 가상 머신과의 인터페이스를 정의해야 한다. 이를 ABI라고 한다.

ABI는 스마트 컨트랙트의 함수와 이를 호출하는 방법을 정의한다. ABI는 JSON 형태로 작성되며, 함수 이름, 매개변수, 반환값 등을 정의한다. 이를 통해 스마트 컨트랙트와 상호작용하기 위한 인터페이스를 정의할 수 있다.

0개의 댓글