본문으로 건너뛰기
0%

Ethereum 노드의 종류: full vs. archive vs. light

Alchemy team headshot

작성자 Alchemy

2022년 8월 11일에 게시됨4분 읽기

Ethereum 블록체인은 전 세계에 분산된 컴퓨터 네트워크로, 노드들이 처리 능력과 리소스를 모으고 블록 검증 책임을 공유함으로써 네트워크가 합의에 도달할 수 있게 합니다 (즉, 공유 상태에 동의하는 것).

이 글에서는 Ethereum 블록체인에서 사용되는 다양한 유형의 Ethereum 노드 (풀 노드, 아카이브 노드, 라이트 노드)와 그 차이점을 살펴봅니다.

풀 노드란 무엇인가?

풀 노드는 블록체인 데이터의 전체 사본을 보관하며, 다른 풀 노드로부터 트랜잭션과 블록을 수신하고, 이를 검증한 뒤 다른 풀 노드에게 전달함으로써 네트워크에 기여합니다.

스마트 컨트랙트 트랜잭션이 실행되면 Ethereum 풀 노드는 스마트 컨트랙트의 모든 명령을 실행합니다. 풀 노드들은 함께 스마트 컨트랙트 실행이 원하는 결과를 만들어내는지 판단합니다. 하지만 풀 Ethereum 노드를 운영하는 것은 운영 비용이 많이 들고 상당한 전력을 소비합니다.

풀 노드 클라이언트

클라이언트는 각 블록의 모든 트랜잭션을 검증하여 네트워크의 안전성을 보장하고 트랜잭션 데이터가 유효한지 확인하는 Ethereum 소프트웨어 구현체입니다. Ethereum 풀 노드 클라이언트는 각 블록의 모든 트랜잭션을 검증하여 네트워크에 보안성과 데이터 정확성을 제공합니다.

각 Ethereum 클라이언트는 저마다의 기능과 장점을 갖추고 있습니다. 구현체들은 그 다양성 덕분에 서로 다른 사용자 그룹에 맞게 조정될 수 있습니다. Ethereum 노드 클라이언트를 선택할 때는 기능, 지원, web3 프로그래밍 언어, 라이선스를 고려해야 합니다.

풀 노드 클라이언트 소프트웨어 구현체 (실행 계층 클라이언트)

실행 계층 풀 노드 클라이언트 구현체에는 주로 네 가지 유형이 있습니다:

  1. Geth (Go Ethereum) - Go로 작성됨
  2. Nethermind - C#과 .NET으로 작성됨
  3. Erigon - Go로 작성됨
  4. Hyperledger Besu - Java로 작성됨

The Merge 이후, 즉 Ethereum이 Proof-of-Work에서 Proof-of-Stake로 전환되면, 각 풀 노드는 위에서 언급한 실행 계층 클라이언트 중 하나와 함께 합의 계층 클라이언트를 실행해야 합니다.

풀 노드 클라이언트 소프트웨어 구현체 (합의 계층 클라이언트)

주요 합의 계층 클라이언트에는 다섯 가지가 있습니다:

  1. Prsym - Prysmatic Labs가 Go로 구축
  2. Teku - Besu 팀이 Java로 구축
  3. Lighthouse - Sigma Prime이 Rust로 구축
  4. Nimbus - Nimbus 팀이 Rust로 구축
  5. Lodestar - ChainSafe Systems가 Typescript로 구축

라이트 노드란 무엇인가?

라이트 노드는 풀 노드처럼 전체 블록 데이터를 저장하는 대신, 이전 블록의 해시와 타임스탬프 같은 블록 헤더 데이터만 저장합니다. 라이트 노드는 풀 노드에 온디맨드 요청을 보내, 사용자가 필요로 하는 상태의 일부만 검증합니다.

개인용 컴퓨터와 같은 저용량 기기는 비용이 많이 드는 데이터 저장 및 쓰기 작업을 수행하지 않아도 되므로 라이트 노드의 이점을 누릴 수 있습니다.

라이트 노드 사용 사례의 예로는 다음이 있습니다:

  1. 잔액 확인
  2. 트랜잭션이 네트워크에서 확인되었는지 검증
  3. 이벤트 로그 확인

개인용 컴퓨터 외에도, 라이트 노드는 모바일폰이나 Raspberry Pi 같은 저용량 기기에서도 효율적으로 실행될 수 있습니다.

아카이브 노드란 무엇인가?

아카이브 노드는 완전한 노드와 동일한 모든 데이터를 보유할 뿐 아니라, Genesis Block (즉, 첫 번째 블록)까지 거슬러 올라가는 블록체인의 모든 히스토리 상태 데이터도 보유합니다.

풀 노드도 오래된 블록체인 상태 데이터를 재구성할 수 있지만, 이 동기화 과정은 시간이 오래 걸리고 비효율적입니다. 사용 사례에 따라 이러한 데이터를 신속하게 제공해야 할 수도 있습니다. 하지만 아카이브 노드는 첫 번째 블록까지 거슬러 올라가는 과거 데이터를 갖고 있으므로 트랜잭션을 추적할 수 있습니다.

아카이브 노드는 기가바이트 단위의 과거 데이터를 저장할 수 있어 일반 사용자에게는 덜 매력적이지만, 블록 탐색기, 지갑, 온체인 분석 회사와 같은 서비스 제공업체에게는 유용합니다.

Erigon vs. Geth

Ethereum 프로토콜의 공식 Golang 구현체는 Go Ethereum (또는 Geth)입니다. Geth는 가장 인기 있는 Ethereum 클라이언트로, 가장 많은 사용자를 보유하고 있으며, 개발자를 위한 다양한 Go 기반 도구를 제공하는데, 이는 모두 오픈소스이며 GNU LGPL v3 라이선스를 따릅니다.

Erigon은 속도와 디스크 공간 절약에 중점을 둔 Geth의 포크입니다. Erigon은 Go로 개발된, 완전히 새롭게 설계된 Ethereum 노드 클라이언트 구현체이며, 향후 다른 언어로도 포팅될 계획입니다. Erigon은 더 모듈화되고 더 빠르며 간소화된 Ethereum 구현체를 제공하는 것을 목표로 합니다.

Geth와 비교하면, Erigon의 병렬화된 개발, 플랫 스토리지, 전처리, 단계별 동기화 덕분에 Erigon은 더 작은 저장 공간, 더 빠른 동기화 속도, 그리고 trace API를 사용해야 하는 개발자에게 전반적으로 더 나은 경험을 제공합니다.

풀 노드와 아카이브 노드의 차이점은 무엇인가?

풀 노드와 아카이브 노드의 주요 차이점은, 아카이브 노드는 체인의 모든 이전 상태를 추적하는 반면 (즉, Ethereum 생태계의 전체 모습), 풀 노드는 현재 상태 데이터의 스냅샷만 저장하면 된다는 점입니다.

간단히 말해, 아카이브 노드는 첫 번째 블록부터의 모든 과거 데이터를 포함하는 반면, 풀 노드는 불필요한 블록체인 데이터가 "정리(prune)"되고 새로운 트랜잭션을 검증하는 데 필요한 가장 중요한 현재 데이터만 포함합니다.

올바른 노드 유형을 선택하는 방법

배포할 Ethereum 노드 유형을 선택하는 것은 노드 설정과 기능이 크게 다르기 때문에 사용 사례와 리소스에 따라 달라집니다.

자신의 노드를 운영함으로써 사설이고 자립적이며 신뢰가 필요 없는 방식으로 Ethereum을 사용할 수 있습니다. 데이터를 자신의 노드 클라이언트로 검증할 수 있으므로 네트워크를 신뢰할 필요가 없습니다.

풀 노드는 퍼블릭 블록체인의 모든 스마트 컨트랙트와 직접 통신할 수 있다는 장점이 있습니다. 또한 풀 노드는 이제 퍼블릭 블록체인에 스마트 컨트랙트를 배포할 수도 있습니다.

하지만 무제한 데이터 사용, 저장, 직접적인 스마트 컨트랙트 기능은 공짜가 아니며, 풀 노드는 여러분의 머신의 하드웨어와 대역폭 리소스에 부담을 줄 수 있습니다.

아카이브 노드는 풀 노드가 저장하는 모든 정보를 저장하고 블록체인 상태의 히스토리를 생성합니다. 클라이언트가 동기화를 완료한 후에도 아카이브 노드는 이전 데이터를 계속 저장합니다.

애플리케이션에 과거 블록체인 정보가 필요하다면 직접 아카이브 노드를 운영하거나 아카이브 노드 접근을 제공하는 블록체인 노드 제공업체를 선택해야 합니다.

라이트 노드는 풀 노드와 유사하지만, 소량의 데이터만 처리합니다. 라이트 노드는 헤더 체인 데이터를 저장하며 요청이 있을 때만 추가 데이터를 받습니다. 데이터 유효성을 검증할 수는 있지만, 블록 검증에 완전히 참여하지는 않습니다.

Alchemy 노드 인프라

Alchemy는 web3 노드 인프라 제공업체이자 블록체인 개발자 플랫폼으로, Supernode와 Alchemy의 다양한 도구를 통해 web3 개발자에게 강력한 확장성, 안정성, 데이터 정확성을 제공합니다. Supernode는 전문화된 분산 시스템과 독자적인 coordinator 서비스를 사용해 노드 기능의 모든 측면을 향상시켜 실시간 데이터 정확성을 보장합니다.

노드는 범용적으로 설계되어 있으며 고가용성을 위해 설계되지 않았기 때문에, 자체 노드를 운영하는 앱은 노드 제공업체를 이용할 때보다 더 높은 지연 시간과 다운타임을 겪을 수 있습니다.

확장 가능하고, 신뢰할 수 있으며, 정확함

Alchemy의 Supernode는 99.99%의 가동 시간을 보장하는 확장 가능한 노드 아키텍처를 제공하여, dApp 개발자가 제품이나 사용자에게 중단 없이 계속 확장할 수 있게 해줍니다.

Alchemy의 무한히 확장 가능한 노드 인프라와 타의 추종을 불허하는 신뢰성, 속도, 데이터 정확성Polygon을 구동하는 데 사용되며, Polygon 위에 구축된 의 수를 크게 증가시키는 채택 촉매제 역할을 해왔습니다.

수백억 건의 거래가 모든 주요 블록체인을 오가게 해주는, 탈중앙화 거래소를 위한 글로벌 백본인 0x는 신뢰할 수 있는 노드 인프라를 위해 Alchemy를 신뢰합니다.

무료 아카이브 노드 접근

Alchemy는 메인넷과 테스트넷 모두에 대한 무료 아카이브 접근을 제공하는 강력한 무료 티어를 제공합니다. Alchemy에 대해 더 알아보고 무료 아카이브 접근을 받으려면, 오늘 무료 계정에 가입하세요.

Background gradient

블록체인 매직을 만드세요

Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.