본문으로 건너뛰기
0%

Polygon 노드란 무엇인가: 알아야 할 모든 것

Alchemy team headshot

작성자 Alchemy

2022년 9월 27일에 게시됨5분 읽기

Ethereum 메인넷과 마찬가지로, 레이어-2 솔루션인 Polygon도 노드를 사용해 네트워크에 참여하는 모든 컴퓨터가 올바르게 동작하는지 확인합니다. 하지만 Polygon 노드는 다른 아키텍처를 가지고 있는데, 처리 작업의 하위 부분을 분류하여 서로 다른 노드 계층에 위임하는 방식입니다.

이 글에서는 다양한 유형의 Polygon 노드, Polygon 노드를 생성하고 실행하는 방법, 그리고 노드 제공업체가 이 전체 프로세스를 어떻게 더 쉽게 만들어주는지 살펴보겠습니다.

Polygon이란 무엇인가요?

Polygon은 Ethereum 스케일링 솔루션인 사이드체인으로, Ethereum Virtual Machine(EVM)과의 호환성을 유지하면서 리소스 집약적인 작업을 메인 Ethereum 블록체인 밖에서 수행함으로써 가스 비용을 줄이고 확장성을 개선합니다.

이전에는 MATIC으로 알려져 있었으며, Polygon은 2017년에 리브랜딩했지만 MATIC을 티커 심볼로 유지했습니다. 따라서 Polygon과 MATIC은 동일한 것입니다. Polygon의 현재 테스트넷은 Polygon Amoy로, 개발자들은 실제 자금을 사용하지 않고 Polygon 애플리케이션을 테스트할 수 있습니다. 이전의 Mumbai 테스트넷은 지원이 중단되었습니다.

Polygon 노드란 무엇인가요?

‍Polygon 노드는 Polygon 블록체인의 다운로드된 사본을 가지고 있으며 Polygon 네트워크에 참여하는 컴퓨터입니다. 하지만 Polygon에는 Bor 노드, Heimdall 노드, 풀 노드, Sentry 노드, 검증자 노드 등 여러 노드 유형이 있으며, 각 노드는 서로 다른 목적을 수행합니다.

Polygon 네트워크는 크게 세 개의 계층으로 나뉩니다:

  1. Ethereum 메인넷 - 계약 지분증명(Proof-of-Stake), 체크포인팅, 보상에 사용됨
  2. Heimdall 노드 계층 - 검증에 사용됨
  3. Bor 노드 계층 - 블록 생성에 사용됨

아래에서는 Heimdall 노드와 Bor 노드를 더 자세히 살펴보고, 이들이 더 복잡한 기능을 위해 어떻게 함께 사용될 수 있는지도 알아보겠습니다.

bor 노드란 무엇인가요?

Bor 노드는 가장 기본적인 유형의 Polygon 노드로, 트랜잭션을 블록으로 집계하는 역할을 하며, 이렇게 생성된 블록은 Heimdall 노드가 파싱하고 활용할 수 있습니다. 이런 방식으로 Bor 노드는 롤업 방식의 한 축을 담당하며, 데이터를 더 효율적으로 처리 가능한 형태로 집계합니다. 블록 생성자는 검증자 노드 집합에서 무작위로 선택됩니다.

heimdall 노드란 무엇인가요?

Heimdall 노드는 이전 체크포인트 이후의 모든 Bor 블록을 검증한 다음, Bor 노드가 생성한 모든 블록을 머클 트리(Merkle tree)로 집계합니다. Heimdall 노드는 또한 주기적으로 머클 루트의 해시를 메인 블록체인으로 전송합니다. 체크포인트는 Polygon 시스템에 있어 매우 중요한데, 블록 생성자의 무작위성과 특정 스팬 또는 블록 집합에 대한 검증자 집합 선택을 관리하기 때문입니다.

풀 노드란 무엇인가요?

풀 노드는 트랜잭션과 블록을 완전히 검증하는 노드로, 1) 프루닝된(pruned) 풀 노드와 2) 아카이벌(archival) 풀 노드, 즉 아카이브 노드라는 두 가지 유형이 있습니다.

프루닝된 풀 노드는 실패한 트랜잭션 상태를 모두 버리고 정해진 수만큼의 블록만 거슬러 올라가 더 가볍게 동작합니다. 아카이브 노드는 체인의 모든 과거 상태도 저장하는 풀 노드입니다. 즉, 아카이브 노드는 체인이 시작된 시점부터 가장 최근 트랜잭션까지의 정확한 상태를 모두 담고 있습니다.

Polygon 아카이브 노드가 겪을 수 있는 한 가지 문제는 전체 체인의 상태 데이터가 16TB에 가까워지면서 발생하는 아카이브 노드 한계입니다. 이 때문에 노드 스토리지를 늘리거나, 노드를 삭제하고 재동기화하여 낭비되는 데이터를 정리하거나, Polygon 노드 제공업체를 사용하는 것이 권장됩니다.

sentry 노드란 무엇인가요?

Sentry 노드는 Heimdall 노드와 Bor 노드를 모두 실행하여 다른 노드로부터 데이터를 다운로드하고, 이 데이터를 선택된 검증자 노드로 전달하는 풀 노드이며, Polygon 네트워크 전체에 접근할 수 있습니다. Sentry 노드는 또한 검증자를 공개 네트워크로부터 격리시켜, 트랜잭션 처리량을 느려지게 하거나 멈추게 할 수 있는 분산 서비스 거부(DDOS) 공격과 같은 공격 벡터로부터 검증자 노드를 보호할 수 있습니다.

Polygon 검증자란 무엇인가요?

Polygon 검증자는 한 머신에 검증자 노드를, 다른 머신에 sentry 노드를 두고 MATIC 토큰을 스테이킹한 사람입니다. Polygon 검증자는 Heimdall 계층에서 트랜잭션을 검증하기 위해 무작위로 선택됩니다. 검증자 노드는 sentry 노드와 유사한 아키텍처를 가지고 있지만, sentry 노드와의 사이에서 데이터를 주고받는 방식이라는 점이 다릅니다.

Polygon 노드 제공업체란 무엇인가요?

Polygon 노드 제공업체는 개발자에게 Polygon 노드 API 엔드포인트를 제공하는 회사로, 이를 통해 앱은 자체 Polygon 노드를 운영하지 않고도 Polygon 블록체인에 요청을 보내고 응답 페이로드를 받을 수 있습니다.

자체 Polygon 풀 노드를 보유하면 소프트웨어 클라이언트 커스터마이징 같은 이점이 있지만, 노드 제공업체는 안정성, 속도, 데이터 정확성 측면에서 개별 Polygon 노드 대비 상당한 이점을 제공합니다. 노드 유지 관리에 대한 걱정은 귀중한 엔지니어링 시간을 요구하며, 노드 제공업체는 이러한 일반적인 문제를 해결할 수 있습니다.

앱의 경우, 확장성과 사용자 수요를 염두에 두고 구축할 때 최적의 Polygon 노드 제공업체를 선택하는 것은 중요한 결정입니다. 인프라 관점에서 가장 중요한 요소는 확장성, 데이터 정확성, 노드 유형(풀 노드, 아카이브 노드 등), 그리고 (멀티체인을 구축할 계획이라면) 지원하는 블록체인입니다.

고객의 관점에서는 노드 제공업체가 합리적인 가격 정책, 도움이 되는 개발자 관계 팀, 신속한 지원 인력, 그리고 웹3 개발자의 요구를 효과적으로 충족시킬 수 있는 최적화된 API와 SDK 같은 더 나은 개발자 도구를 갖추는 것도 중요합니다.

Alchemy에서 Polygon 노드에 연결하는 방법

Polygon 공식 문서에 Alchemy를 사용해 Polygon 풀 노드에 연결하는 방법에 대한 전체 안내가 있지만, 여기서는 빠르게 시작할 수 있도록 간략히 설명합니다.

1. Alchemy 가입하기

Alchemy는 무료 플랜을 제공하며, Alchemy 개발자 플랫폼에서 무료 Polygon 계정을 생성하여 Alchemy Polygon API와 상호작용할 수 있습니다.

로그인 시 표시되는 Alchemy 대시보드
로그인 시 표시되는 Alchemy 대시보드

‍

  1. Polygon 애플리케이션을 생성하고 API 키 발급하기

Alchemy 계정을 성공적으로 생성한 후에는 앱을 생성하여 API 키를 발급받아야 합니다. 이를 통해 Polygon 메인넷 또는 Polygon Amoy 테스트넷에 대한 요청이 인증됩니다.

새 API 키를 생성하려면 Alchemy 대시보드 내비게이션 바에서 "Apps" 탭으로 이동한 다음 "Create App" 하위 탭을 선택합니다.

필드를 채우고 테스트넷을 선택한 다음 "Create app"을 클릭합니다.

새로 만든 앱이 아래 표에 나타납니다.

새로 생성된 Polygon 앱이 표시된 Alchemy 대시보드의 Apps 테이블
“Apps” 테이블에 표시되는 새 앱

Alchemy로부터 커스텀 Polygon RPC URL을 받으려면 Alchemy 대시보드에서 해당 앱으로 이동한 다음 오른쪽 상단의 "View Key"를 클릭합니다.

그런 다음 Alchemy HTTPS API 키를 복사하여 애플리케이션에 붙여넣습니다.

참고: 여러 인프라 제공업체의 공개 Polygon RCP URL을 보려면 Alchemy Chain Connect를 사용하세요.

노드용 Polygon RPC URL을 설정하는 “View Key” 옵션
노드용 Polygon RPC URL을 설정하는 “View Key” 옵션

‍

단계 3. Polygon API 설정하고 개발 시작하기

JavaScript와 Node.js를 사용하고 있다면, ethers.js 같은 표준 라이브러리를 Alchemy의 Polygon RPC 엔드포인트와 함께 사용하세요.

  1. 다음 명령으로 프로젝트를 설정합니다: npm init -y
  2. 터미널에서 다음 명령을 실행하여 ethers.js를 설치합니다: npm install ethers.
  3. 엔드포인트로 ethers.js를 설정합니다: import { ethers } from "ethers"; const provider = new ethers.JsonRpcProvider("https://polygon-mainnet.g.alchemy.com/v2/<API_KEY>");

Alchemy의 API 사용에 대한 자세한 내용은 Alchemy 문서를 참고하세요.

Polygon 노드 프로젝트에서 Alchemy SDK를 임포트하는 코드 스니펫
Polygon 노드 프로젝트에서 SDK 임포트하기

Polygon 노드 제공업체를 사용하는 것은 쉽고 확장 가능하여, 모든 실력 수준의 개발자가 웹3 개발을 시작할 수 있게 해줍니다. ‍

Polygon 노드 요구 사항

Polygon 풀 노드를 실행하려면 기술 사양과 소프트웨어 전제 조건을 충족해야 합니다. 현재 최소 요구 사항은 16-32GB RAM과 4-8코어 CPU이며, 최소 확장 가능한 저장 장치는 1.2TB입니다. 체인의 히스토리가 늘어남에 따라 노드가 저장해야 할 데이터도 점점 늘어나므로, 최소 사양도 그에 따라 증가할 것입니다.

또한 Polygon은 어떤 운영체제에서도 잘 작동한다고 언급하고 있지만, MacOS나 Windows보다 CentOS 같은 Linux 서버 배포판의 보안성과 안정성을 선호한다고 밝히고 있습니다.

Polygon 풀 노드 설정 방법

Polygon 노드 제공업체를 사용하지 않고 직접 Polygon 노드를 구성하고 유지 관리하고 싶다면, 다음은 필요한 단계에 대한 요약입니다.

1. 노드를 실행할 머신 구축하기

Linux가 권장되므로, 노드를 호스팅할 수 있는 Linux 서버를 실행하는 머신을 사용하는 것이 좋습니다. 명령줄에서 Secure Shell(SSH)을 사용해 Linux 서버에 원격으로 접속할 수도 있습니다. 하드웨어 요구 사항을 확인한 다음, 머신이 충분히 큰 최소 저장 용량과 컴퓨팅 성능을 갖추고 있는지 확인하세요.

2. 전제 조건 다운로드하기

소프트웨어 요구 사항 측면에서는, Python 3.x가 설치된 머신에 Ansible을 다운로드해야 하며, 다음 명령으로 설치할 수 있습니다: pip3 install ansible

또한 완전히 새로운 설치 프로세스와 충돌할 수 있으므로, Go나 Heimdall 및 Bor의 이전 설정이 설치되어 있지 않은지 확인하세요.

3. 노드 설정 및 실행하기

모든 안내는 풀 노드 설정 및 실행에 관한 공식 Polygon 문서를 기반으로 합니다. 단계는 다음과 같이 요약됩니다:

  1. 원격 머신/가상 머신에 대한 접근을 확보하고, 주어진 저장소를 클론한 다음 IP를 설정하여 기능을 확인합니다
  2. 풀 노드를 설정하고, 원격/가상 머신에 진입하여 Heimdall 노드와 Bor 노드를 구성합니다
  3. 풀 노드를 실행하고 로그를 확인하여 노드가 올바르게 동기화되었는지 확인합니다

Alchemy로 Polygon에서 개발 시작하기

Polygon은 빠르게 성장하고 있는 Ethereum 사이드체인으로, 개발자에게 EVM 호환 애플리케이션을 구축하기 위한 빠르고 저렴하며 확장 가능한 블록체인을 제공합니다. Polygon은 규모, 비용 효율성, 낮은 탄소 발자국 덕분에 Starbucks의 새로운 로열티 보상 프로그램과 같은 일부 대형 웹2 기업들의 선택을 받고 있습니다.

Polygon에서 개발을 시작하려면 오늘 Alchemy에서 무료 Polygon 개발자 계정을 생성하세요!

Background gradient

블록체인 매직을 만드세요

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