본문으로 건너뛰기
0%

대체 RPC 설정 방법

Alchemy team headshot

작성자 Alchemy

2022년 8월 10일에 게시됨3분 읽기

원격 프로시저 호출(RPC)이란?

원격 프로시저 호출(RPC)은 소프트웨어가 동일한 네트워크상의 다른 시스템과 원격으로 통신하여 소프트웨어나 데이터에 접근할 수 있게 하는 기술이다. RPC 방식에서는 클라이언트가 무언가(예: 데이터)를 요청하면 서버가 원격으로 그 요청을 처리한다.

블록체인에서는 이 기술이 RPC 노드라는 형태로 적용되어 있는데, 이는 블록체인 개발자가 블록체인 서버(즉, 노드)와 상호작용할 수 있게 하는 API다. 그 결과 블록체인 개발자는 블록체인에 연결하기 위해 RPC 노드가 필요한 과 같은 web3 소프트웨어를 만들 수 있게 되었다.

이 글에서는 블록체인 노드 제공업체를 사용하고 대체 RPC 엔드포인트를 구성하는 것이 왜 중요한지, 그리고 대체 또는 백업 RPC 엔드포인트가 중요한 여러 이유를 설명한다.

또한 기존 블록체인 프로젝트에 대체 RPC 엔드포인트를 통합하고자 할 경우를 대비해, 대체 RPC 엔드포인트를 설정하는 다양한 방법을 살펴본다.

대체 RPC 엔드포인트란?

대체 원격 프로시저 호출(RPC) 엔드포인트는 기본 RPC 엔드포인트가 실패하거나 다운되었을 때 사용하는 백업 엔드포인트다. RPC 엔드포인트 장애로 인한 위험은 수천, 많게는 수백만 건의 트랜잭션 실패로 이어질 수 있다.

이에 대한 해결책으로 개발자들은 기본 RPC 엔드포인트가 실패할 경우를 대비한 백업 계획을 찾기 시작했다. 하나의 해결책은 기본 RPC 엔드포인트가 제대로 작동하지 않을 때 안전장치 역할을 하는 대체 RPC 엔드포인트를 구성하는 것이다.

대체 RPC 엔드포인트는 애플리케이션이나 지갑 전용 엔드포인트인 프라이빗 RPC 엔드포인트와 유사하지만, 구현 방식은 다르다. 대체 RPC 엔드포인트는 백업을 의미하는 반면, 프라이빗 RPC 엔드포인트는 단순히 공개되지 않은 엔드포인트를 의미한다.

대체 RPC 엔드포인트는 언제 사용하면 좋은가?

대체 RPC 엔드포인트는 신뢰할 수 없는 공개 RPC 엔드포인트 문제부터 부정확한 데이터와 같은 일반적인 트랜잭션 문제 해결에 이르기까지, 블록체인 개발자에게 다양한 활용 사례를 제공한다. 이 섹션에서는 대체 RPC 엔드포인트가 유용할 수 있는 몇 가지 일반적인 상황을 다룬다.

1. 기본 RPC 제공업체가 다운된 경우

대체 RPC 엔드포인트를 설정하는 주요 활용 사례 중 하나는 기본 RPC가 완전히 다운되어 블록체인 지원 소프트웨어와 블록체인 간의 연결이 끊기는 경우에 대비한 백업 옵션이다. 이런 상황에서 대체 RPC를 즉시 사용할 수 없다면 블록체인 기반 소프트웨어가 일시적으로 오작동할 수 있다.

예를 들어, 2022년 7월 Ankr이 호스팅하는 Polygon의 공개 RPC 엔드포인트에 네트워크 전역 장애가 발생했을 때, 최고정보보안책임자(CISO)인 Mudit Gupta는 다운타임이 발생하지 않고 있던 Alchemy 같은 대체 Polygon RPC 제공업체를 사용할 것을 권장했다.

2022년 7월 공용 RPC 제공업체인 Ankr가 해킹당했을 때, Polygon은 Alchemy로 전환할 것을 권고했습니다.
2022년 7월 공용 RPC 제공업체인 Ankr가 해킹당했을 때, Polygon은 Alchemy로 전환할 것을 권고했습니다.

2. 기본 RPC 제공업체를 통해 트랜잭션이 처리되지 않는 경우

대체 RPC 엔드포인트의 또 다른 중요한 활용은 기본 RPC 엔드포인트가 혼잡하거나 느려서 트랜잭션이 지연될 때의 백업 옵션이다. 이는 블록체인과의 즉각적인 통신에 크게 의존하는 앱의 경우 특히 치명적일 수 있다.

백업 제공업체를 선택하기 전에, Alchemy의 RPC 제공업체 벤치마크에서 현재 지연 시간과 성공률 데이터를 비교해 보라.

트랜잭션이 실패할 때, 대체 RPC 엔드포인트를 사용하는 것은 불안정한 노드로 인해 web3 사용자 경험이 저하되지 않도록 하는 좋은 백업 옵션이 될 수 있다.

3. 기본 RPC 제공업체의 데이터가 정확하지 않은 경우

블록체인은 전 세계에 분산된 시스템이기 때문에, 일부 노드 제공업체는 부정확한 데이터를 반환하는데, 이는 해당 노드 네트워크가 공개 블록체인과 동기화되지 않았기 때문이다.

노드 제공업체의 서버 집합이 동기화되지 않으면, 사용자는 부정확한 잔액, 누락된 NFT 등 부정확한 데이터를 받게 되어 전반적으로 좋지 않은 사용자 경험을 겪게 된다.

이런 상황에서 블록체인 애플리케이션에 대체 RPC 엔드포인트를 통합해 두면, 부정확한 데이터 반환을 피하기 위해 기본 노드 제공업체에서 보조 폴백 노드 제공업체로 쉽게 전환할 수 있는 옵션을 확보할 수 있다.

4. 기본 RPC 제공업체의 확장성이 부족한 경우

마지막으로, 토큰 에어드롭, 화제성 있는 NFT 드롭, 또는 인센티브가 걸린 온체인 활동과 같이 트래픽이 급증하는 시기에 기본 RPC 엔드포인트에 확장성 문제가 발생할 경우 대체 RPC 엔드포인트가 유용할 수 있다.

이 경우 대체 RPC 엔드포인트를 사용하여 높은 트래픽을 분산시킴으로써 기본 RPC 엔드포인트가 확장성 부담으로 인해 무너지는 것을 방지할 수 있다.

결함이 있는 엔드포인트에 대처하는 3가지 방법

결함이 있는 RPC 엔드포인트를 다룰 때 이 상황을 해결하기 위한 세 가지 주요 방법이 있다: 동일한 엔드포인트에서 트랜잭션을 재시도하는 방법, RPC 엔드포인트 목록 사이에서 트랜잭션을 순환시키는 방법, 또는 기본 RPC 제공업체를 변경하는 방법이다.

1. 동일한 RPC 엔드포인트에서 트랜잭션 재시도

결함이 있는 RPC 엔드포인트를 다루는 한 가지 방법은 동일한 RPC 엔드포인트에 추가 요청을 보내는 것이다. 이 방식에서 개발자는 재시도마다 짧은 지연 시간을 두고 동일한 RPC 엔드포인트에 반복적으로 요청을 보낸다. 이 기법은 RPC 엔드포인트가 짧은 시간 동안만 일시적으로 다운되어 있어, 개발자가 해당 RPC 엔드포인트가 다시 온라인 상태가 될 때까지 요청을 계속 보낼 수 있는 경우에 가장 효과적이다.

2. RPC 엔드포인트 목록을 순환시키기

또 다른 방법은 하나 이상의 대체 RPC 엔드포인트에 연결하여, 여러 RPC 엔드포인트 목록 사이에서 일련의 RPC 요청을 보내는 것이다. 이 기법을 사용하면 개발자는 동일한 엔드포인트에서 동일한 트랜잭션을 재시도하는 대신 트랜잭션을 재시도할 여러 옵션을 확보함으로써, 결함이 있는 단일 RPC 엔드포인트가 블록체인 애플리케이션을 망가뜨리는 문제를 피할 수 있다.

RPC 엔드포인트에 결함이 발생할 경우, 대체 RPC 제공업체 목록을 사용하는 개발자는 승인된 목록에 있는 다른 엔드포인트로 간단히 연결을 전환할 수 있다.

Ethereum에서 폴백 RPC 제공업체를 설정하는 방법

여러 대체 RPC 엔드포인트 목록을 구성하는 것은 어려울 수 있으므로, 애플리케이션 구조에 따라 더 간단한 옵션은 기본 RPC 엔드포인트를 Alchemy와 같이 더 신뢰할 수 있는 백업 제공업체로 교체하는 것이다.

이 방식에서는 여러 엔드포인트를 순환하거나 동일한 엔드포인트에서 트랜잭션을 재시도하는 대신, RPC 엔드포인트 URL 전체를 신뢰할 수 있는 백업으로 교체할 수 있다.

Background gradient

블록체인 매직을 만드세요

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