본문 바로가기
블록체인/Ethereum

web3 사용법

by G0Yang 2021. 6. 28.

블록체인 개발자가 보면 좋을 법한 내용을 정리해보았다.

 

목차

1. web3란 무엇인가.

2. web3.js 설정.

3. web3로 할 수 있는 것 알아보기.

4. 

 

 

1. web3란 무엇인가.

우리가 일반적으로 사용하고 있는 인터넷은 서버-클라이언트의 구조를 따르고 있다.

P2P 서비스가 생성되기 이전에는 누군가 데이터를 보내거나 받을 때에는 Listen하고 있는 서버와 accept하는 클라이언트의 통신으로 이루어져 있다.

TCP/IP 기반의 소켓 통신 프로그램을 짜봤다면 이해가 빠를 것이다.

이후에 인터넷이 커지면서 중앙서버의 부담이 커지게되고, 트래픽 분산이 중요해지면서 각종 WAS들이 나오기 시작한다. (appach, nginx 등)

그렇지만 이것도 해킹의 대상이 되기 쉽고, 데이터베이스를 가지는 서버들은 점점 해킹에 취약해지기 시작하면서 개인 정보 유출 사건이 발생하기 시작한다.

위의 웹 환경을 web2라고 부른다.

2009년 최초의 블록체인 화폐인 비트코인이 발행되고, 코인 붐이 일어나면서 블록체인 관련 기술은 엄청난 속도로 개발되었다.

전 세계 개발자가 24시간 쉬지않고 개발에 참여하기 시작한 것이다.

기존의 서버-클라이언트 기반의 데이터 전송 방식에서 P2P 방식의 데이터 전송을 기반으로 하는 블록체인이 인터넷에서 보다 쉽게 통신할 수 있도록 정의한 것이 web3이다.

web3가 발전함에 따라 우리는 점점 더 서버에 의존하지 않아도 되고 P2P 통신을 활용하여 보다 보안에 안전한 통신을 가능하게 한다.

 

 

2. web3.js 설정.

web3.js 는 자바스크립트 기반의 web3 인터페이스 라이브러리이다.

우리가 사용하는 거의 모든 서비스는 프론트엔드, 백엔드가 존재한다. 채팅을 보내기 위한 보내기 버튼과 실제로 컴퓨터상으로 데이터를 전송하는 부분을 담당한다.

이더리움 상으로는 web3는 프론트라고 볼 수 있다.

이더리움 백엔드는 솔리디티로 작성된 스마트 컨트랙트 및 기본 evm 명령어를 사용하기 때문이다.

따라서 이더리움에 접속을 해야하는 설정이 필요하다.

infura.io에서는 이더리움을 위한 web3 노드의 엔드포인트를 제공해주고 있다.

위 사이트에 접속하여 회원가입 -> 로그인 -> 프로젝트 생성 -> api key 확인 의 과정을 수행한다.

infura.io에서는 이더리움외에도 이더리움2.0, ipfs, FileCoin을 서비스하고있다.

등록이 정상적으로 되었다면 위 이미지처럼 PROJECT ID와 PROJECT SECRET을 받는다.

또한, https-rpc통신, wss통신을 위한 url 2개가 제공된다.

초기 설정은 이것으로 끝이다.

 

 

3. web3로 할 수 있는 것 알아보기.

우리는 이제 이더리움 노드에게 질의할 엔드포인트를 얻었다.

그렇다면 이것을 이용하여 무엇을 알 수 있을까?

우리는 일반적으로 이더리움을 거래소나 메타마스크 등 지갑 서비스로 접근하고, 관리한다.

이더리움 개발자는 거래소로 코딩을 할 수 없다.

가장 일반적으로 사용할 수 있는 메타마스크를 이용해보자

크롬 기반 브라우저를 열어서 메타마스크 확장프로그램을 설치한다.

설치후 니모닉까지 백업을 마무리하면 상단의 "이더리움 메인넷"이라고 나옵니다.

위 네트워크는 메타마스크에서 제공하는 기본 네트워크입니다.

 

우리는 infura에서 제공받은 web3용 엔드포인트가 있죠.

그것을 등록합니다.

네트워크 리스트 중 "맞춤형 RPC"를 선택하면 아래같이 나옵니다.

 

메타마스크에서도 infura를 이용하고있네요.

체인 ID가 생소하실텐데 네트워크 이름과 체인ID가 잘 설정되어야 네트워크가 정상적으로 접근된다.

mainnet 1
ropsten 3
rinkeby 4
goerli 5
kovan 42

위 표를 참고하여 체인ID를 작성하고 저장해본다.

 

통화기호나 블록 탐색기를 설정안한다면 이더와 달러표시가 같아진다.

통화 기호는 ETH, 블록 탐색기는 https://etherscan.io 로 설정해본다.

그렇다면 이더와 달러표시가 잘 표시됩니다.

다시 infura홈페이지로 돌아가 프로젝트를 조회해봅시다.

여러 함수가 벌써 호출된것을 볼 수 있습니다.

우리는 web3 엔드포인트 제공 서비스인 infura를 사용해 메타마스크를 통해 이더리움 네트워크에 통신을 시도해보았습니다.

하지만 개발자는 메타마스크로 코딩할 수 없습니다.

다음 글에서는 실제 nodejs 를 이용하여 web3 통신을 시도해보고 기본적인 함수 사용법을 알아보도록하겠습니다.

'블록체인 > Ethereum' 카테고리의 다른 글

이더리움의 구조  (0) 2021.06.10

댓글