본문으로 건너뛰기
0%

Alchemy, 필터링된 대기 중 트랜잭션 알림 출시

작성자: Ben Godlove

마지막 업데이트: 2021년 6월 15일2분 읽기

처음으로 개발자는 자신의 스마트 컨트랙트에 대한 실시간 참여 상황을 볼 수 있게 되었고, 최종 사용자는 트랜잭션 수명 주기에 대한 실시간 업데이트를 받을 수 있게 되었습니다.

여러분이 스마트 컨트랙트 소유자이고 자신의 컨트랙트에 대한 모든 대기 중인 트랜잭션을 확인하고 싶다고 가정해 봅시다. 컨트랙트의 상태 모니터링을 구축하는 중일 수도 있고, 사용자에게 대기 중인 알림을 전달하려는 중일 수도 있습니다. 어느 쪽이든 현재 생태계에서는 이를 구현하기가 상당히 번거롭습니다.

Alchemy 없이 컨트랙트 트랜잭션 스트리밍하기

먼저 Alchemy 없이 이를 어떻게 구현하는지 살펴보겠습니다. Ethereum은 eth_newPendingTransactions API를 제공하며, 이를 통해 대기 중인 트랜잭션 해시의 스트림을 받을 수 있습니다. 이후 각 트랜잭션 해시에 대해 전체 트랜잭션 페이로드를 가져와 컨트랙트 주소를 추출하고, 해당 주소가 여러분의 컨트랙트와 일치할 경우 비즈니스 로직을 실행하면 됩니다.

이 과정은 초당 수십 건의 트랜잭션을 확인해야 하고, 그중 대부분은 여러분과 무관하며, 각 트랜잭션마다 네트워크 호출을 해야 하기 때문에 비용이 매우 빠르게 증가합니다.

Alchemy의 필터링된 트랜잭션 API 소개

전체 대기 중인 트랜잭션 해시 스트림을 받아 각각을 확인하는 대신, Alchemy는 스트리밍 전에 확인 작업을 대신 수행합니다. 주소를 alchemy_pendingTransactions 엔드포인트에 전달하면, 해당 주소로 들어오거나 나가는 대기 중인 트랜잭션을 스트리밍해 드립니다.

실제로 어떻게 동작하는지 살펴보겠습니다. SushiSwap의 라우터 주소에 대한 대기 중인 트랜잭션을 관찰해 보겠습니다.

SushiSwap의 라우터 주소에 대한 펜딩 트랜잭션 스트리밍
SushiSwap의 라우터 주소에 대한 펜딩 트랜잭션 스트리밍

보시다시피 SushiSwap은 활동이 상당히 활발합니다.

이것으로 무엇을 만들 수 있을까요?

여러분이 어떤 것을 만들어낼지 기대됩니다! 아이디어를 위해 이제 훨씬 쉽게 구축할 수 있게 된 애플리케이션 몇 가지를 소개합니다:

스마트 컨트랙트의 활동 모니터를 만들어보세요. 컨트랙트로의 대기 중인 트랜잭션을 스트리밍하는 구독을 설정할 수 있습니다. 일정 시간 내에 트랜잭션을 받지 못하면 알림을 발생시키세요!

특정 주소가 "활성화"되는 시점을 알아내세요. 누군가 검증된 스캠 주소로 ETH를 보낼 때 알고 싶을 수도 있습니다. 혹은 블랙햇 해커가 특정 주소에서 마침내 자금을 빼낼 때를 알고 싶을 수도 있습니다.

트랜잭션이 대기 중일 때 최종 사용자에게 알려주세요. 최종 사용자가 트랜잭션을 제출할 때 클라이언트 측에서 구독을 설정하고, 트랜잭션이 mempool에 제출되면 사용자에게 알려주세요. 이제 곧 블록 탐색기를 계속 새로고침할 필요가 없어질지도 모릅니다.

다른 구독 기능 및 웹훅에 대해서는 Alchemy의 Notify 서비스를 확인해 보세요.

Alchemy 뉴스레터

출시 소식을 가장 먼저 받아보세요

뉴스레터 구독하기

Alchemy의 최신 제품 업데이트와 리소스 받기

A
O
D
+
구독자 80,000명 이상

이메일 주소를 입력하면 마케팅 커뮤니케이션 및 제품 업데이트 수신에 동의하게 됩니다. Alchemy는 저희 개인정보 처리방침에 따라 수집한 정보를 처리합니다. 언제든지 구독을 취소할 수 있습니다.