[Blockchain] Mastering Ethereum Ch.3 요약

Melon Coder·2023년 2월 14일
0

Blockchain

목록 보기
3/5
post-thumbnail

Chapter 3. 이더리움 클라이언트

이더리움 클라이언트는 이더리움 사양을 구현하고 다른 이더리움 클라이언트와 P2P 네트워크를 통해 통신하는 소프트웨어 애플리케이션이다.
이더리움은 다른 블록체인보다 네트워크에서 실행되는 구현의 다양성이 더 크다.

풀 노드(full node)를 실행해야 하는가?

블록체인의 건전성(health), 복원력(resilience), 검열 저항(censorship resistance) 특성은 풀 노드(full node)가 얼마나 많은지에 달려 있다.
각각의 풀 노드는 다른 새 노드가 블록 데이터를 얻어 작업을 부트스트랩(bootstrap)하고, 신뢰성과 독립성을 제공할 수 있도록 도와준다.

그러나 풀 노드를 실행하면 하드웨어 자원 및 대역폭 비용이 발생한다.
하지만 이더리움 개발에는 라이브 메인넷(mainnet) 네트워크에서 실행 중인 풀 노드가 필요하지 않으며 테스트넷(testnet)노드, 가나슈(Ganache) 같은 로컬 사설 블록체인 또는 인퓨라(Infura) 같은 서비스 공급자가 제공하는 클라우드 기반 이더리움 클라이언트로 대부분의 작업을 수행할 수 있다.

풀 노드의 장단점

장점

  • 모든 트랜잭션을 정식으로 검증한다.
  • 중개자 없이 public 블록체인의 모든 컨트랙트와 상호작용 할 수 있으며, 컨트랙트를 직접 public 블록체인에 배포할 수 있다.

단점

  • 하드웨어와 대역폭 자원의 확대가 필요하다.
  • 처음 전체 동기화를 하는 데에 많은 시간이 소요된다.
  • 동기화를 유지하기 위한 과정이 힘들다.

public 테스트넷(testnet)의 장단점

장점

  • 동기화를 쉽게 할 수 있다.
  • 테스트용 이더를 무료로 받을 수 있다.

단점

  • 실제 가치가 있는 돈이 아니어서 위험에 처할 일이 없으므로 보안성 테스트를 할 수 없다.

로컬 블록체인 시뮬레이션 장단점(e.g. Ganache ...)

장점

  • 동기화가 없고 디스크에 데이터가 거의 없다. 직접 첫번째 블록을 채굴한다.
  • 다른 컨트랙트가 없고 자신이 배포한 컨트랙트만 있다.

단점

  • 다른 사용자가 없기 때문에 public 블록체인과 동일하게 동작하지 않는다.
  • 채굴이 예측 가능하다.

JSON-RPC 인터페이스

이더리움 클라이언트는 애플리케이션 인터페이스와 JSON으로 인코딩된 RPC(Remote Procedure Call)명령을 제공한다.

원격 이더리움 클라이언트

원격 이더리움 클라이언트는 다음 중 하나 이상을 제공한다.

  • 개인키, 이더리움 주소를 지갑에서 관리
  • 트랜잭션 생성, 서명 및 브로드캐스트
  • 데이터 페이로드(payload)를 사용하여 스마트 컨트랙트와 상호연동
  • 브라우저와 DApp 간 상호연동
  • 블록 탐색기 같은 외부 서비스
  • 자바스크립트 객체로서 web3 인스턴스를 웹 브라우저에 삽입
  • 다른 클라이언트가 브라우저에 제공/삽입한 web3 인스턴스를 사용
  • 로컬 또는 원격 이더리움 노드에서 RPC 서비스로 접근

0개의 댓글