노드와 클라이언트
이더리움은 블록과 트랜잭션 데이터를 검증할 수 있는 소프트웨어를 실행하는 컴퓨터(노드라고 함)들의 분산 네트워크입니다. 컴퓨터를 이더리움 노드로 만들려면 해당 소프트웨어를 실행해야 합니다. 노드를 구성하려면 두 개의 개별 소프트웨어('클라이언트'라고 함)가 필요합니다.
전제 조건
이더리움 클라이언트 인스턴스를 직접 실행하고 더 깊이 알아보기 전에 피어 투 피어 네트워크의 개념과 EVM의 기초를 이해해야 합니다. 이더리움 소개를 확인해 보세요.
노드라는 주제가 처음이라면, 먼저 사용자 친화적인 이더리움 노드 실행하기 소개를 확인해 보시길 권장합니다.
노드와 클라이언트란 무엇인가요?
"노드"는 이더리움 소프트웨어를 실행하는 다른 컴퓨터들과 연결되어 네트워크를 형성하는 이더리움 클라이언트 소프트웨어의 인스턴스입니다. 클라이언트는 프로토콜 규칙에 따라 데이터를 검증하고 네트워크를 안전하게 유지하는 이더리움의 구현체입니다. 노드는 합의 클라이언트와 실행 클라이언트라는 두 가지 클라이언트를 실행해야 합니다.
- 실행 클라이언트(실행 엔진, EL 클라이언트 또는 이전의 이더1 클라이언트라고도 함)는 네트워크에 브로드캐스트된 새로운 트랜잭션을 수신하고, 이를 EVM에서 실행하며, 모든 현재 이더리움 데이터의 최신 상태와 데이터베이스를 유지합니다.
- 합의 클라이언트(비콘 노드, CL 클라이언트 또는 이전의 이더2 클라이언트라고도 함)는 지분 증명 (PoS) 합의 알고리즘을 구현하여, 실행 클라이언트의 검증된 데이터를 기반으로 네트워크가 합의에 도달할 수 있게 합니다. 또한 합의 클라이언트에 추가할 수 있는 '검증자'라는 세 번째 소프트웨어가 있어, 노드가 네트워크 보안에 참여할 수 있도록 합니다.
이러한 클라이언트들은 함께 작동하여 이더리움 체인의 헤드를 추적하고 사용자가 이더리움 네트워크와 상호 작용할 수 있도록 합니다. 여러 소프트웨어가 함께 작동하는 모듈식 설계를 캡슐화된 복잡성 (opens in a new tab)이라고 합니다. 이러한 접근 방식은 머지를 원활하게 실행하기 쉽게 만들었고, 클라이언트 소프트웨어의 유지 관리 및 개발을 용이하게 하며, 예를 들어 레이어 2 (l2) 생태계에서 개별 클라이언트를 재사용할 수 있게 해줍니다.
결합된 실행 및 합의 클라이언트의 단순화된 다이어그램.
클라이언트 다양성
실행 클라이언트와 합의 클라이언트 모두 다양한 팀에서 여러 프로그래밍 언어로 개발하여 존재합니다.
다양한 클라이언트 구현체는 단일 코드베이스에 대한 의존도를 줄여 네트워크를 더 강력하게 만들 수 있습니다. 이상적인 목표는 특정 클라이언트가 네트워크를 지배하지 않도록 다양성을 확보하여 잠재적인 단일 장애점을 제거하는 것입니다. 또한 다양한 언어는 더 넓은 개발자 커뮤니티를 유치하고 그들이 선호하는 언어로 통합을 생성할 수 있게 합니다.
클라이언트 다양성에 대해 자세히 알아보세요.
이러한 구현체들의 공통점은 모두 단일 사양을 따른다는 것입니다. 사양은 이더리움 네트워크와 블록체인이 어떻게 기능하는지 지시합니다. 모든 기술적 세부 사항이 정의되어 있으며 사양은 다음에서 찾을 수 있습니다.
- 원래의 이더리움 황서 (opens in a new tab)
- 실행 사양 (opens in a new tab)
- 합의 사양 (opens in a new tab)
- 다양한 네트워크 업그레이드에 구현된 EIP (opens in a new tab)
네트워크의 노드 추적
여러 트래커가 이더리움 네트워크의 노드에 대한 실시간 개요를 제공합니다. 탈중앙화된 네트워크의 특성상 이러한 크롤러는 네트워크의 제한된 보기만 제공할 수 있으며 다른 결과를 보고할 수 있다는 점에 유의하세요.
- Etherscan의 노드 맵 (opens in a new tab)
- Bitfly의 Ethernodes (opens in a new tab)
- 합의 노드를 크롤링하는 Chainsafe의 Nodewatch (opens in a new tab)
- MigaLabs의 분산 네트워크 모니터링 도구인 Monitoreth (opens in a new tab)
- Nebula 크롤러 (opens in a new tab) 및 기타 도구를 사용하는 ProbeLab의 주간 네트워크 상태 보고서 (opens in a new tab)
노드 유형
자체 노드를 실행하려면 데이터를 다르게 소비하는 다양한 유형의 노드가 있다는 것을 이해해야 합니다. 실제로 클라이언트는 라이트, 풀, 아카이브라는 세 가지 다른 유형의 노드를 실행할 수 있습니다. 또한 더 빠른 동기화 시간을 가능하게 하는 다양한 동기화 전략 옵션도 있습니다. 동기화는 이더리움의 상태에 대한 최신 정보를 얼마나 빨리 얻을 수 있는지를 나타냅니다.
풀 노드
풀 노드는 각 블록의 블록 본문과 상태 데이터를 다운로드하고 검증하는 것을 포함하여 블록체인의 블록 검증을 블록 단위로 수행합니다. 풀 노드에는 여러 클래스가 있습니다. 일부는 제네시스 블록에서 시작하여 블록체인의 전체 역사에 있는 모든 단일 블록을 검증합니다. 다른 노드들은 유효하다고 신뢰하는 더 최근의 블록에서 검증을 시작합니다(예: 고 이더리움 (geth)의 '스냅 동기화'). 검증이 어디서 시작되든 풀 노드는 비교적 최근 데이터(일반적으로 가장 최근의 128개 블록)의 로컬 복사본만 유지하므로 디스크 공간을 절약하기 위해 오래된 데이터를 삭제할 수 있습니다. 오래된 데이터는 필요할 때 다시 생성할 수 있습니다.
- 전체 블록체인 데이터를 저장합니다(하지만 주기적으로 프루닝되므로 풀 노드가 제네시스까지의 모든 상태 데이터를 저장하지는 않습니다).
- 블록 검증에 참여하고 모든 블록과 상태를 검증합니다.
- 모든 상태는 로컬 스토리지에서 검색하거나 풀 노드에 의해 '스냅샷'에서 다시 생성될 수 있습니다.
- 네트워크에 서비스를 제공하고 요청 시 데이터를 제공합니다.
아카이브 노드
아카이브 노드는 제네시스부터 모든 블록을 검증하고 다운로드한 데이터를 절대 삭제하지 않는 풀 노드입니다.
- 풀 노드에 보관된 모든 것을 저장하고 과거 상태의 아카이브를 구축합니다. 블록 #4,000,000의 계정 잔액과 같은 것을 쿼리하거나, 트레이싱을 사용하여 검증하지 않고 자체 트랜잭션 세트를 간단하고 안정적으로 테스트하려는 경우에 필요합니다.
- 이 데이터는 테라바이트 단위를 나타내므로 일반 사용자에게는 아카이브 노드의 매력이 떨어지지만 블록 탐색기, 지갑 공급업체 및 체인 분석과 같은 서비스에는 유용할 수 있습니다.
아카이브 이외의 모드에서 클라이언트를 동기화하면 프루닝된 블록체인 데이터가 생성됩니다. 즉, 모든 과거 상태의 아카이브는 없지만 풀 노드는 필요에 따라 이를 구축할 수 있습니다.
아카이브 노드에 대해 자세히 알아보세요.
라이트 노드
모든 블록을 다운로드하는 대신 라이트 노드는 블록 헤더만 다운로드합니다. 이러한 헤더에는 블록 내용에 대한 요약 정보가 포함되어 있습니다. 라이트 노드에 필요한 다른 모든 정보는 풀 노드에 요청됩니다. 그런 다음 라이트 노드는 수신한 데이터를 블록 헤더의 상태 루트와 대조하여 독립적으로 검증할 수 있습니다. 라이트 노드를 사용하면 풀 노드를 실행하는 데 필요한 강력한 하드웨어나 높은 대역폭 없이도 사용자가 이더리움 네트워크에 참여할 수 있습니다. 결국 라이트 노드는 휴대폰이나 임베디드 장치에서 실행될 수 있습니다. 라이트 노드는 합의에 참여하지 않지만(즉, 검증자가 될 수 없음), 풀 노드와 동일한 기능 및 보안 보장으로 이더리움 블록체인에 액세스할 수 있습니다.
경량 클라이언트는 이더리움에서 활발히 개발 중인 분야이며, 곧 합의 레이어와 실행 계층을 위한 새로운 경량 클라이언트를 볼 수 있을 것으로 기대합니다. 가십 네트워크 (opens in a new tab)를 통해 경량 클라이언트 데이터를 제공할 수 있는 잠재적인 경로도 있습니다. 이는 가십 네트워크가 풀 노드가 요청을 처리할 필요 없이 라이트 노드 네트워크를 지원할 수 있기 때문에 유리합니다.
이더리움은 아직 대규모 라이트 노드를 지원하지 않지만, 라이트 노드 지원은 가까운 미래에 빠르게 발전할 것으로 예상되는 분야입니다. 특히 님버스 (opens in a new tab), Helios (opens in a new tab), 로드스타 (opens in a new tab)와 같은 클라이언트는 현재 라이트 노드에 크게 집중하고 있습니다.
왜 이더리움 노드를 실행해야 하나요?
노드를 실행하면 이더리움을 직접, 무신뢰 방식으로, 프라이버시를 유지하며 사용할 수 있는 동시에 네트워크를 더 견고하고 탈중앙화된 상태로 유지하여 네트워크를 지원할 수 있습니다.
사용자에게 주는 이점
자체 노드를 실행하면 프라이버시를 보호하고 자급자족하며 무신뢰 방식으로 이더리움을 사용할 수 있습니다. 클라이언트를 통해 데이터를 직접 검증할 수 있으므로 네트워크를 신뢰할 필요가 없습니다. "신뢰하지 말고 검증하라"는 유명한 블록체인 격언입니다.
- 노드는 합의 규칙에 따라 모든 트랜잭션과 블록을 스스로 검증합니다. 즉, 네트워크의 다른 노드에 의존하거나 전적으로 신뢰할 필요가 없습니다.
- 자체 노드와 함께 이더리움 지갑을 사용할 수 있습니다. 중개자에게 주소와 잔액을 유출할 필요가 없으므로 탈중앙화 애플리케이션 (dapp)을 더 안전하고 프라이버시를 보호하며 사용할 수 있습니다. 모든 것은 자체 클라이언트로 확인할 수 있습니다. 메타마스크 (opens in a new tab), Frame (opens in a new tab) 및 기타 여러 지갑은 RPC 가져오기를 제공하여 노드를 사용할 수 있도록 합니다.
- 이더리움의 데이터에 의존하는 다른 서비스를 실행하고 자체 호스팅할 수 있습니다. 예를 들어 비콘 체인 검증자, 레이어 2 (l2)와 같은 소프트웨어, 인프라, 블록 탐색기, 결제 프로세서 등이 될 수 있습니다.
- 자체 맞춤형 RPC 엔드포인트를 제공할 수 있습니다. 커뮤니티가 대규모 중앙 집중식 공급자를 피할 수 있도록 이러한 엔드포인트를 공개적으로 제공할 수도 있습니다.
- 프로세스 간 통신(IPC)을 사용하여 노드에 연결하거나 프로그램을 플러그인으로 로드하도록 노드를 다시 작성할 수 있습니다. 이는 지연 시간을 줄여주어 Web3 라이브러리를 사용하여 많은 데이터를 처리하거나 트랜잭션을 가능한 한 빨리 교체해야 할 때(예: 프론트러닝) 큰 도움이 됩니다.
- ETH를 직접 스테이킹하여 네트워크를 보호하고 보상을 받을 수 있습니다. 시작하려면 솔로 스테이킹을 참조하세요.
네트워크 이점
다양한 노드 세트는 이더리움의 건전성, 보안 및 운영 탄력성에 중요합니다.
- 풀 노드는 합의 규칙을 시행하므로 규칙을 따르지 않는 블록을 수락하도록 속일 수 없습니다. 모든 노드가 전체 검증을 수행하지 않는 라이트 노드라면 검증자가 네트워크를 공격할 수 있기 때문에 이는 네트워크에 추가적인 보안을 제공합니다.
- 지분 증명 (PoS)의 암호경제적 방어를 극복하는 공격이 발생할 경우, 풀 노드가 정직한 체인을 따르기로 선택함으로써 소셜 복구를 수행할 수 있습니다.
- 네트워크에 노드가 많을수록 검열에 저항하고 신뢰할 수 있는 시스템을 가능하게 하는 탈중앙화의 궁극적인 목표인 더 다양하고 견고한 네트워크가 됩니다.
- 풀 노드는 블록체인 데이터에 의존하는 경량 클라이언트에 대한 액세스를 제공합니다. 라이트 노드는 전체 블록체인을 저장하지 않고 블록 헤더의 상태 루트를 통해 데이터를 검증합니다. 필요한 경우 풀 노드에 더 많은 정보를 요청할 수 있습니다.
풀 노드를 실행하면 검증자를 실행하지 않더라도 전체 이더리움 네트워크가 그 혜택을 받습니다.
자체 노드 실행하기
자체 이더리움 클라이언트를 실행하는 데 관심이 있으신가요?
초보자 친화적인 소개를 보려면 노드 실행하기 페이지를 방문하여 자세히 알아보세요.
기술적인 사용자라면 자체 노드를 가동하는 방법에 대한 자세한 내용과 옵션을 살펴보세요.
대안
자체 노드를 설정하는 데 시간과 리소스가 소요될 수 있지만 항상 자체 인스턴스를 실행할 필요는 없습니다. 이 경우 타사 API 공급자를 사용할 수 있습니다. 이러한 서비스 사용에 대한 개요는 서비스형 노드를 확인하세요.
커뮤니티에서 누군가 공개 API가 있는 이더리움 노드를 실행하는 경우, 사용자 지정 RPC를 통해 지갑을 커뮤니티 노드에 연결하여 임의의 신뢰할 수 있는 타사보다 더 많은 프라이버시를 얻을 수 있습니다.
반면에 클라이언트를 실행하는 경우, 필요로 하는 친구들과 공유할 수 있습니다.
실행 클라이언트
이더리움 커뮤니티는 다양한 팀이 다양한 프로그래밍 언어를 사용하여 개발한 여러 오픈 소스 실행 클라이언트(이전에는 '이더1 클라이언트' 또는 단순히 '이더리움 클라이언트'로 알려짐)를 유지 관리합니다. 이는 네트워크를 더 강력하고 다양하게 만듭니다. 이상적인 목표는 단일 장애점을 줄이기 위해 특정 클라이언트가 지배하지 않는 다양성을 달성하는 것입니다.
이 표는 다양한 클라이언트를 요약한 것입니다. 이들 모두는 클라이언트 테스트 (opens in a new tab)를 통과했으며 네트워크 업그레이드에 맞춰 최신 상태를 유지하도록 적극적으로 유지 관리됩니다.
| 클라이언트 | 언어 | 운영 체제 | 네트워크 | 동기화 전략 | 상태 프루닝 |
|---|---|---|---|---|---|
| 고 이더리움 (geth) (opens in a new tab) | Go | Linux, Windows, macOS | 메인넷, Sepolia, Hoodi | 스냅, 풀 | 아카이브, 프루닝됨 |
| 네더마인드 (opens in a new tab) | C#, .NET | Linux, Windows, macOS | 메인넷, Sepolia, Hoodi | 스냅, 빠른, 풀 | 아카이브, 프루닝됨 |
| 베수 (opens in a new tab) | Java | Linux, Windows, macOS | 메인넷, Sepolia, Hoodi | 스냅, 빠른, 풀 | 아카이브, 프루닝됨 |
| 에리곤 (opens in a new tab) | Go | Linux, Windows, macOS | 메인넷, Sepolia, Hoodi | 풀 | 아카이브, 프루닝됨 |
| 레스 (opens in a new tab) | Rust | Linux, Windows, macOS | 메인넷, Sepolia, Hoodi | 풀 | 아카이브, 프루닝됨 |
| EthereumJS (opens in a new tab) (베타) | TypeScript | Linux, Windows, macOS | Sepolia, Hoodi | 풀 | 프루닝됨 |
지원되는 네트워크에 대한 자세한 내용은 이더리움 네트워크를 읽어보세요.
각 클라이언트에는 고유한 사용 사례와 장점이 있으므로 자신의 선호도에 따라 하나를 선택해야 합니다. 다양성을 통해 구현체는 서로 다른 기능과 사용자 대상에 집중할 수 있습니다. 기능, 지원, 프로그래밍 언어 또는 라이선스에 따라 클라이언트를 선택할 수 있습니다.
베수
Hyperledger 베수는 퍼블릭 및 허가형 네트워크를 위한 엔터프라이즈급 이더리움 클라이언트입니다. 트레이싱에서 GraphQL에 이르기까지 모든 이더리움 메인넷 기능을 실행하고, 광범위한 모니터링을 제공하며, 개방형 커뮤니티 채널과 기업용 상업적 SLA를 통해 컨센시스의 지원을 받습니다. Java로 작성되었으며 Apache-2.0 라이선스가 부여되었습니다.
베수의 광범위한 문서 (opens in a new tab)는 기능 및 설정에 대한 모든 세부 정보를 안내합니다.
에리곤
이전에 Turbo-Geth로 알려졌던 에리곤은 속도와 디스크 공간 효율성을 지향하는 고 이더리움 (geth)의 포크로 시작되었습니다. 에리곤은 완전히 재설계된 이더리움 구현체로, 현재 Go로 작성되었지만 다른 언어로 된 구현체도 개발 중입니다. 에리곤의 목표는 더 빠르고, 더 모듈화되고, 더 최적화된 이더리움 구현체를 제공하는 것입니다. 약 2TB의 디스크 공간을 사용하여 3일 이내에 전체 아카이브 노드 동기화를 수행할 수 있습니다.
고 이더리움 (geth)
고 이더리움 (geth)(줄여서 Geth)은 이더리움 프로토콜의 원래 구현체 중 하나입니다. 현재 가장 큰 사용자 기반과 사용자와 개발자를 위한 다양한 도구를 갖춘 가장 널리 퍼진 클라이언트입니다. Go로 작성되었으며 완전히 오픈 소스이고 GNU LGPL v3에 따라 라이선스가 부여되었습니다.
문서 (opens in a new tab)에서 고 이더리움 (geth)에 대해 자세히 알아보세요.
네더마인드
네더마인드는 C# .NET 기술 스택으로 생성된 이더리움 구현체로, LGPL-3.0 라이선스가 부여되었으며 ARM을 포함한 모든 주요 플랫폼에서 실행됩니다. 다음과 함께 뛰어난 성능을 제공합니다.
- 최적화된 가상 머신
- 상태 액세스
- 네트워킹 및 Prometheus/Grafana 대시보드, seq 엔터프라이즈 로깅 지원, JSON-RPC 트레이싱 및 분석 플러그인과 같은 풍부한 기능.
네더마인드는 또한 상세한 문서 (opens in a new tab), 강력한 개발자 지원, 온라인 커뮤니티 및 프리미엄 사용자를 위한 연중무휴 지원을 제공합니다.
레스
레스(Rust Ethereum의 약자)는 사용자 친화적이고, 고도로 모듈화되며, 빠르고 효율적인 것에 중점을 둔 이더리움 풀 노드 구현체입니다. 레스는 원래 Paradigm에 의해 구축 및 추진되었으며 Apache 및 MIT 라이선스에 따라 라이선스가 부여되었습니다.
레스는 프로덕션 준비가 완료되었으며 스테이킹 또는 높은 가동 시간 서비스와 같은 미션 크리티컬 환경에서 사용하기에 적합합니다. RPC, MEV, 인덱싱, 시뮬레이션 및 P2P 활동과 같이 큰 마진과 함께 높은 성능이 요구되는 사용 사례에서 우수한 성능을 발휘합니다.
레스 북 (opens in a new tab) 또는 레스 GitHub 리포지토리 (opens in a new tab)를 확인하여 자세히 알아보세요.
개발 중
이러한 클라이언트는 아직 개발 초기 단계에 있으며 프로덕션 환경에서의 사용은 아직 권장되지 않습니다.
EthereumJS
EthereumJS 실행 클라이언트(EthereumJS)는 TypeScript로 작성되었으며, 블록, 트랜잭션 및 머클 패트리샤 트라이(Merkle-Patricia Trie) 클래스로 표현되는 핵심 이더리움 원시 요소와 이더리움 가상 머신(EVM) 구현체, 블록체인 클래스 및 devp2p 네트워킹 스택을 포함한 핵심 클라이언트 구성 요소를 포함하는 여러 패키지로 구성됩니다.
문서 (opens in a new tab)를 읽고 자세히 알아보세요.
합의 클라이언트
합의 업그레이드를 지원하기 위한 여러 합의 클라이언트(이전에는 '이더2' 클라이언트로 알려짐)가 있습니다. 이들은 포크 선택 알고리즘, 증명 처리, 지분 증명 (PoS) 보상 및 페널티 관리를 포함한 모든 합의 관련 로직을 담당합니다.
| 클라이언트 | 언어 | 운영 체제 | 네트워크 |
|---|---|---|---|
| 라이트하우스 (opens in a new tab) | Rust | Linux, Windows, macOS | 비콘 체인, Hoodi, Pyrmont, Sepolia 등 |
| 로드스타 (opens in a new tab) | TypeScript | Linux, Windows, macOS | 비콘 체인, Hoodi, Sepolia 등 |
| 님버스 (opens in a new tab) | Nim | Linux, Windows, macOS | 비콘 체인, Hoodi, Sepolia 등 |
| 프리즘 (opens in a new tab) | Go | Linux, Windows, macOS | 비콘 체인, Gnosis, Hoodi, Pyrmont, Sepolia 등 |
| 테쿠 (opens in a new tab) | Java | Linux, Windows, macOS | 비콘 체인, Gnosis, Hoodi, Sepolia 등 |
| Grandine (opens in a new tab) | Rust | Linux, Windows, macOS | 비콘 체인, Hoodi, Sepolia 등 |
라이트하우스
라이트하우스는 Apache-2.0 라이선스에 따라 Rust로 작성된 합의 클라이언트 구현체입니다. Sigma Prime에서 유지 관리하며 비콘 체인 제네시스 이후 안정적이고 프로덕션 준비가 완료되었습니다. 다양한 기업, 스테이킹 풀 및 개인이 의존하고 있습니다. 데스크톱 PC에서 정교한 자동화 배포에 이르기까지 광범위한 환경에서 안전하고 성능이 뛰어나며 상호운용 가능한 것을 목표로 합니다.
문서는 라이트하우스 북 (opens in a new tab)에서 찾을 수 있습니다.
로드스타
로드스타는 LGPL-3.0 라이선스에 따라 Typescript로 작성된 프로덕션 준비가 완료된 합의 클라이언트 구현체입니다. ChainSafe Systems에서 유지 관리하며 솔로 스테이킹 사용자, 개발자 및 연구원을 위한 가장 최신의 합의 클라이언트입니다. 로드스타는 이더리움 프로토콜의 JavaScript 구현체로 구동되는 비콘 노드와 검증자 클라이언트로 구성됩니다. 로드스타는 경량 클라이언트를 통해 이더리움 사용성을 개선하고, 더 많은 개발자 그룹으로 접근성을 확장하며, 생태계 다양성에 더욱 기여하는 것을 목표로 합니다.
자세한 정보는 로드스타 웹사이트 (opens in a new tab)에서 찾을 수 있습니다.
님버스
님버스는 Apache-2.0 라이선스에 따라 Nim으로 작성된 합의 클라이언트 구현체입니다. 솔로 스테이킹 사용자 및 스테이킹 풀에서 사용하는 프로덕션 준비가 완료된 클라이언트입니다. 님버스는 리소스 효율성을 위해 설계되어 안정성이나 보상 성능을 저하시키지 않으면서 리소스가 제한된 장치와 엔터프라이즈 인프라 모두에서 동일하게 쉽게 실행할 수 있습니다. 리소스 공간이 더 가볍다는 것은 네트워크가 스트레스를 받을 때 클라이언트가 더 큰 안전 마진을 갖는다는 것을 의미합니다.
님버스 문서 (opens in a new tab)에서 자세히 알아보세요.
프리즘
프리즘은 GPL-3.0 라이선스에 따라 Go로 작성된 모든 기능을 갖춘 오픈 소스 합의 클라이언트입니다. 선택적 웹앱 UI를 제공하며 가정 내 스테이킹 사용자 및 기관 사용자 모두를 위한 사용자 경험, 문서 및 구성 가능성을 우선시합니다.
자세히 알아보려면 프리즘 문서 (opens in a new tab)를 방문하세요.
테쿠
테쿠는 원래의 비콘 체인 제네시스 클라이언트 중 하나입니다. 일반적인 목표(보안, 견고성, 안정성, 사용성, 성능)와 함께 테쿠는 특히 모든 다양한 합의 클라이언트 표준을 완전히 준수하는 것을 목표로 합니다.
테쿠는 매우 유연한 배포 옵션을 제공합니다. 비콘 노드와 검증자 클라이언트는 단일 프로세스로 함께 실행될 수 있어 솔로 스테이킹 사용자에게 매우 편리하며, 정교한 스테이킹 작업을 위해 노드를 별도로 실행할 수도 있습니다. 또한 테쿠는 서명 키 보안 및 슬래싱 보호를 위해 Web3Signer (opens in a new tab)와 완전히 상호운용 가능합니다.
테쿠는 Java로 작성되었으며 Apache-2.0 라이선스가 부여되었습니다. 베수 및 Web3Signer도 담당하는 컨센시스의 프로토콜 팀에서 개발했습니다. 테쿠 문서 (opens in a new tab)에서 자세히 알아보세요.
Grandine
Grandine은 GPL-3.0 라이선스에 따라 Rust로 작성된 합의 클라이언트 구현체입니다. Grandine 코어 팀에서 유지 관리하며 빠르고 고성능이며 가볍습니다. Raspberry Pi와 같은 저사양 장치에서 실행하는 솔로 스테이킹 사용자부터 수만 개의 검증자를 실행하는 대규모 기관 스테이킹 사용자에 이르기까지 광범위한 스테이킹 사용자에게 적합합니다.
문서는 Grandine 북 (opens in a new tab)에서 찾을 수 있습니다.
동기화 모드
네트워크의 현재 데이터를 따르고 검증하려면 이더리움 클라이언트가 최신 네트워크 상태와 동기화해야 합니다. 이는 피어로부터 데이터를 다운로드하고, 암호학적으로 무결성을 검증하며, 로컬 블록체인 데이터베이스를 구축함으로써 수행됩니다.
동기화 모드는 다양한 장단점이 있는 이 프로세스에 대한 여러 접근 방식을 나타냅니다. 클라이언트 또한 동기화 알고리즘의 구현이 다릅니다. 구현에 대한 구체적인 내용은 항상 선택한 클라이언트의 공식 문서를 참조하세요.
실행 계층 동기화 모드
실행 계층은 블록체인의 월드 상태를 다시 실행하는 것부터 신뢰할 수 있는 체크포인트에서 체인의 팁과만 동기화하는 것까지 다양한 사용 사례에 맞게 여러 모드로 실행될 수 있습니다.
풀 동기화
풀 동기화는 모든 블록(헤더 및 블록 본문 포함)을 다운로드하고 제네시스부터 모든 블록을 실행하여 블록체인의 상태를 점진적으로 다시 생성합니다.
- 모든 트랜잭션을 검증하여 신뢰를 최소화하고 가장 높은 보안을 제공합니다.
- 트랜잭션 수가 증가함에 따라 모든 트랜잭션을 처리하는 데 며칠에서 몇 주가 걸릴 수 있습니다.
아카이브 노드는 풀 동기화를 수행하여 모든 블록의 모든 트랜잭션에 의해 이루어진 상태 변경의 전체 기록을 구축(및 유지)합니다.
빠른 동기화
풀 동기화와 마찬가지로 빠른 동기화는 모든 블록(헤더, 트랜잭션 및 영수증 포함)을 다운로드합니다. 그러나 과거 트랜잭션을 다시 처리하는 대신, 빠른 동기화는 최근 헤드에 도달할 때까지 영수증에 의존하며, 그 시점에 블록을 가져오고 처리하는 것으로 전환하여 풀 노드를 제공합니다.
- 빠른 동기화 전략.
- 대역폭 사용을 위해 처리 요구 사항을 줄입니다.
스냅 동기화
스냅 동기화도 체인을 블록 단위로 검증합니다. 그러나 제네시스 블록에서 시작하는 대신, 스냅 동기화는 진정한 블록체인의 일부로 알려진 더 최근의 '신뢰할 수 있는' 체크포인트에서 시작합니다. 노드는 주기적인 체크포인트를 저장하는 동시에 특정 기간보다 오래된 데이터를 삭제합니다. 이러한 스냅샷은 상태 데이터를 영원히 저장하는 대신 필요에 따라 다시 생성하는 데 사용됩니다.
- 가장 빠른 동기화 전략으로, 현재 이더리움 메인넷의 기본값입니다.
- 보안을 희생하지 않으면서 많은 디스크 사용량과 네트워크 대역폭을 절약합니다.
스냅 동기화에 대한 자세한 내용 (opens in a new tab).
라이트 동기화
경량 클라이언트 모드는 모든 블록 헤더, 블록 데이터를 다운로드하고 일부를 무작위로 검증합니다. 신뢰할 수 있는 체크포인트에서 체인의 팁만 동기화합니다.
- 개발자와 합의 메커니즘에 대한 신뢰에 의존하면서 최신 상태만 가져옵니다.
- 몇 분 안에 현재 네트워크 상태로 클라이언트를 사용할 준비가 됩니다.
참고 라이트 동기화는 아직 지분 증명 (PoS) 이더리움에서 작동하지 않습니다. 새로운 버전의 라이트 동기화가 곧 출시될 예정입니다!
합의 레이어 동기화 모드
낙관적 동기화
낙관적 동기화는 옵트인 및 이전 버전과의 호환성을 갖도록 설계된 머지 이후 동기화 전략으로, 실행 노드가 확립된 방법을 통해 동기화할 수 있도록 합니다. 실행 엔진은 비콘 블록을 완전히 검증하지 않고 낙관적으로 가져와서 최신 헤드를 찾은 다음 위의 방법으로 체인 동기화를 시작할 수 있습니다. 그런 다음 실행 클라이언트가 따라잡은 후 비콘 체인에 있는 트랜잭션의 유효성을 합의 클라이언트에 알립니다.
낙관적 동기화에 대한 자세한 내용 (opens in a new tab)
체크포인트 동기화
약한 주관성 동기화라고도 하는 체크포인트 동기화는 비콘 노드 동기화를 위한 우수한 사용자 경험을 제공합니다. 이는 제네시스 대신 최근의 약한 주관성 체크포인트에서 비콘 체인을 동기화할 수 있게 해주는 약한 주관성의 가정에 기반합니다. 체크포인트 동기화는 에서 동기화하는 것과 유사한 신뢰 가정으로 초기 동기화 시간을 훨씬 더 빠르게 만듭니다.
실제로 이는 노드가 원격 서비스에 연결하여 최근의 완결된 상태를 다운로드하고 해당 지점부터 데이터 검증을 계속한다는 것을 의미합니다. 데이터를 제공하는 타사는 신뢰할 수 있어야 하며 신중하게 선택해야 합니다.
체크포인트 동기화 (opens in a new tab)에 대한 자세한 내용
더 읽어보기
- 이더리움 101 - 파트 2 - 노드 이해하기 (opens in a new tab) – Wil Barnes, 2019년 2월 13일
- 이더리움 풀 노드 실행하기: 동기가 부족한 사람들을 위한 가이드 (opens in a new tab) – Justin Leroux, 2019년 11월 7일
관련 주제
관련 튜토리얼
- MicroSD 카드를 플래싱하여 Raspberry Pi 4를 검증자 노드로 전환하기 – 설치 가이드 – Raspberry Pi 4를 플래싱하고, 이더넷 케이블을 연결하고, SSD 디스크를 연결하고, 장치의 전원을 켜서 Raspberry Pi 4를 실행 계층(메인넷) 및/또는 합의 레이어(비콘 체인 / 검증자)를 실행하는 전체 이더리움 노드로 전환합니다.
