이더리움 네트워크는 노드로 구성되어 있음
노드는 블록체인의 복사본을 갖고 있음.
이더리움 노드들은 JSON-RPC이라고 불리는 언어로만 소통할 수 있으나, 사람이 읽기에 불편.
Web3.js는 자바스크립트 인터페이스로 상호작용 할 수 있게 해준다.
Web3.js에서 Web3 프로바이더를 설정하는 것은 어떤 노드와 통신을 해야 하는지 설정하는 것.
메타마스크는 사용자들이 이더리움 계정과 개인 키를 안전하게 관리할 수 있게 해주는 브라우저 확장 프로그램.
해당 계정들을 써서 Web3.js를 사용하는 웹사이트들과 상호작용을 할 수 있도록 해준다.
전통적인 클라이언트-서버 웹앱에서 API 호출을 위한 웹 서버의 URL을 설정하는 것과 같다.
메타마스크는 web3라는 전역 자바스크립트 객체를 통해 브라우저에 Web3 프로바이더를 주입할 수 있음.
Web3.js는 나의 스마트 컨트랙트와 통신을 위해 컨트랙트의 주소와 ABI가 필요하다.