-
Web1~3 변화
web1은 클라이언트(사용자)가 서버로부터 일방향으로 컨텐츠를 제공받기만 했던 웹을 의미.
web2는 클라이언트와 서버가 AJAX의 등장으로 상호작용 할 수 있는 웹을 의미. 소수의 플랫폼 기업이 사용자의 개인정보를 제공받아 이를 통해서 맞춤형 광고와 같은 서비스로 수익을 창출했다, 개인 정보의 보안은 플랫폼 기업에 의존해야 한다.
web3는 기존 중앙집중적인 플랫폼과 달리 분산형 환경이 주요 특징이다. web3는 이를 구현하기 위해서 블록체인 기술을 사용한다. web3에서는 데이터가 공유되며, 암호화 기술을 통해 개인정보의 제공없이 각 사용자의 신원을 식별할 수 있다.Web3는
네트워크에 참여하는 누구나 서비스에 접근할 수 있다.
결제는 자체 토큰을 사용한다. ex. 이더
web3 기반 dApp은 탈중앙화되어 누군가의 검열이 불가능하다.
SPOF(single point of failure)가 없다. web3 기반 dApp은 수 많은 노드로 구성된 분산형 네트워크이기에 특정 노드가 다운되어도 서비스가 지속적으로 유지될 수 있다.Web3.js 와 Ethereum
이더리움기반으로 dApp을 만드는 경우, Solidity 언어로 Smart contract를 개발하거나, 블록체인과 상호작용하는 클라이언트를 개발하는 것이 있을 수 있다.
이중에 후자를 위해서 사용하는 라이브러리가 web3.js다.
web3.js는 Ethereum 네트워크와 상호작용할 수 있는 다양한 메서드를 제공하는 javascript 라이브러리이다.
web3.js는 이더리움 JSON RPC를 구현한 자바스크립트 API다. web3.js는 Ethereum 블록체인과 JSON RPC(Remote Procedure Call)를 이용해 소통한다.
이더리움에서는 클라이언트가 JSON RPC의 형식에 맞춰서 이더리움 노드에 데이터를 요청한다.
web3.js와 연결된 노드를 provider라고 한다.Web3.js 주요 기능
다른 계정으로 이더를 전송한다.
스마트 컨트랙트에서 데이터를 읽고 쓴다.
스마트 컨트랙트를 만든다.web3.js 모듈
web3-eth: 이더리움 블록체인과 스마트 컨트랙트 모듈.
web3-utils: dApp 개발자를 위한 유용한 헬퍼 함수를 모아둔 모듈.
web3-bzz: 탈중앙화 파일 스토리지를 위한 스왐 프로토콜 모듈.
web3-shh: P2P 커뮤니케이션과 브로드캐스트를 위한 위스터 프로토콜 모듈.window.ethereum
window.ethereum은 공급자(provider) 객체로, EIP-1139를 통해 메타마스크와 같은 지갑 소프트웨어는 웹페이지에 자바스크립트 객체 형태로 자신의 API를 노출한다.
EIP-1139는 이더리움 공급자 API를 통일하여 지갑간 상호 운영이 가능하도록 하였다.
EIP-1139에서 이더리움 공급자 객체는 브라우저 내에서 window.ethereum으로 지정되어 있고, 크롬 개발자 콘솔창에서도 window.ethereum로 공급자 객체를 확인할 수 있다.web3.js 설치, 사용
기타
Etherscan API
Coingecko API
web3.js: 이더리움 네트워크와 상호작용할 수 있는 메서드를 제공.
caver.js: 클레이튼 네트워크와 상호작용할 수 있는 다양한 메서드를 제공. https://ko.docs.klaytn.com/dapp/sdk/caver-js;
'Blockchain' 카테고리의 다른 글
Solidity 모디파이어(Modifier) - pure, view, payable (0) 2022.12.31 Etherscan - Ethereum 거래 정보 (0) 2022.12.23 Web3.js 설치, 사용 (0) 2022.12.04 Infura 개요 (0) 2022.12.04 Metamask 계정 관리 화면 열기 (0) 2022.12.03 Metamask 브라우저 기반 이더리움 지갑 (0) 2022.12.03 Truffle로 Smart contract 배포 (0) 2022.12.02 Truffle Project 생성 (0) 2022.11.30