이더리움 마스터하기, 2nd Edition
by Carlo Parisi, Alessandro Mazza, Niccolo Pozzolini, Gavin Wood, Andreas M. Antonopoulos
챕터 3. 이더리움 노드
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
이더리움 노 드( )는 이더리움 사양을 구현하고 P2P 네트워크를 통해 다른 이더리움 노드와 통신하는 소프트웨어 애플리케이션입니다.
처음에는 노드가 이더리움 생태계의 일부가 되기 위한 모든 요구 사항을 완벽하게 구현하기 위해 단 하나의 클라이언트만 실행하면 되었습니다. 2022년 9월 15일, 합의 프로토콜이 작업 증명 기반 방식에서 새로운 지분 증명 기반 합의 프로토콜인 가스퍼로 변경되는 머지 하드포크가 발생했습니다. 이로 인해 합의와 실행이라는 두 가지 문제가 분리되었고, 새로운 유형의 이더리움 클라이언트인 합의 클라이언트가 탄생하게 되었습니다.
따라서 이 글을 쓰는 시점에서 이더리움 노드는 그림 3-1에서와 같이 최신 사양과 호환되기 위해 두 가지 소프트웨어를 동시에 실행해야 하며, 그 정의는 다음과 같습니다:
- 컨센서스 클라이언트
이 새로운 소프트웨어는 이제 모든 노드가 블록체인의 단일 기록에 동의할 수 있도록 하는 합의 프로토콜을 담당합니다.
- 실행 클라이언트
이 소프트웨어는 네트워크에서 발생하는 모든 블록과 트랜잭션을 수신하고, EVM 내에서 이를 실행하며, 정확성을 검증하는 데 중점을 둡니다.
그림 3-1. 이더리움 노드의 아키텍처
서로 다른 이더리움 클라이언트(실행 클라이언트와 합의 클라이언트 모두)는 참조 사양과 표준화된 통신 프로토콜을 준수하는 경우 상호 운용됩니다. 이러한 서로 다른 클라이언트는 서로 다른 팀과 서로 다른 프로그래밍 언어로 구현되었지만, 모두 동일한 프로토콜을 "말하고" 동일한 규칙을 따릅니다. 따라서 이들은 모두 동일한 이더리움 네트워크를 운영하고 상호 작용하는 데 사용될 수 있습니다.
이더리움은 오픈 소스 프로젝트이며, 모든 주요 클라이언트의 소스 코드는 오픈 소스 라이선스(예: LGPL v3.0)에 따라 제공되며, 어떤 목적으로든 무료로 다운로드하여 사용할 수 있습니다. 하지만 오픈소스는 단순히 무료로 사용할 수 있다는 것 이상을 의미합니다. 또한, 이더리움은 자원 봉사자들로 구성된 오픈 커뮤니티에 의해 개발되며 누구나 수정할 수 있다는 것을 의미합니다. 더 많은 눈이 있다는 것은 더 신뢰할 수 있는 코드를 의미합니다.
이더리움은 원래 이 책의 공동 저자 중 한 명인 개빈 우드가 작성한 "옐로우 페이퍼"라는 하나의 공식적인 사양에 의해 정의되었습니다. 이 사양은 이더리움의 주요 변경 사항에 따라 주기적으로 업데이트되지만, 실행 클라이언트용과 합의 클라이언트용의 두 가지 참조 구현을 향한 명확한 경로가 있습니다. 이러한 참조 구현은 가독성과 단순성에 우선순위를 두고 Python으로 작성되었습니다.
참고
이러한 사양은 실제 풀 노드 구현을 원하지 않습니다. 실행 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access