Event Stream 서비스 소개
Event Stream이 무엇인가요?
Event Stream 서비스는 블록체인에서 발생하는 다양한 이벤트를 실시간으로 수집하고 분석하기 위해 webhook과 websocket을 사용하는 기능입니다. 이 서비스를 통해 사용자들은 블록체인 네트워크의 데이터를 실시간으로 모니터링하고, 특정 이벤트가 발생할 때 알림을 받거나 자동화된 작업을 수행할 수 있습니다.
다음은 Event Stream 서비스의 주요 기능입니다.
- Webhook을 통한 데이터 수신: Webhook은 HTTP 요청을 기반으로 특정 이벤트가 발생할 때 지정된 URL로 데이터를 전송합니다. 이를 통해 사용자는 블록체인에서 특정 이벤트가 발생했을 때 자동으로 알림을 받거나 데이터를 처리할 수 있습니다. 예를 들어, 특정 스마트 계약이 실행될 때마다 알림을 받거나, 특정 트랜잭션이 완료되었을 때 데이터베이스를 업데이트할 수 있습니다.
- Websocket을 통한 실시간 데이터 수신: Websocket은 지속적인 연결을 유지하여 실시간으로 데이터를 전송합니다. 이를 통해 사용자는 블록체인의 모든 이벤트를 실시간으로 모니터링하고, 데이터 스트림을 통해 즉시 반응할 수 있습니다. 예를 들어, 실시간으로 트랜잭션 데이터를 분석하거나, 새로운 블록이 생성될 때마다 알림을 받을 수 있습니다.
- 편리하고 다양한 이벤트 타입 제공: Event Stream 서비스는 다양한 이벤트 유형을 제공합니다. 단순 블록 생성 뿐만 아니라 트랜잭션 이벤트, 토큰 전송 이벤트 등 여러 종류의 이벤트를 포함합니다. 이를 통해 사용자는 원하는 이벤트 유형을 선택하여 해당 이벤트가 발생할 때 알림을 받을 수 있습니다.
- signing key를 통한 보안성 제공: 각 webhook 응답에 포함된 signing key를 통해 보안을 강화합니다. 이를 통해 사용자는 받은 응답이 서비스에서 온 것이 맞는지 검증할 수 있어 데이터 조작이나 무단 액세스의 위험을 줄일 수 있습니다. 또한, 이 보안 기능은 이벤트 데이터의 신뢰성과 무결성을 유지하는 데 도움을 줍니다.
- Webhook 재시도 정책: Webhook 서비스는 정해진 시도 간격과 최대 시도 횟수에 따라 데이터 전송을 재시도합니다. 만약 정해진 횟수만큼 재시도 후에도 데이터 전송에 실패한다면 해당 데이터는 누락될 수 있습니다. 이는 데이터 전송의 신뢰성을 유지하기 위한 중요한 정책으로, 사용자는 이러한 특성을 고려하여 시스템을 설계해야 합니다.
Webhook이란 무엇인가요?
Webhook이란 온체인 이벤트 발생을 실시간으로 전달받을 수 있 개발 도구입니다. 블록체인 트랜잭션은 비동기 방식으로 동작하기 때문에, Webhook과 같은 Notification 또는 구독 기능은 DApp 개발에 필수 요소라고 할 수 있습니다. 개발자가 모니터링 하고자 하는 온체인 이벤트를 정의한 뒤 이를 Webhook으로 등록하면, 해당 조건에 맞는 이벤트 발생 시 Webhook 등록 시 지정한 Listener Endpoint로 해당 이벤트 상세 정보를 전달받을 수 있습니다. 조건을 세분화 한 여러 Webhook을 등록할 수 있으며, 이를 활용하여 DApp 구현시 실시간 반응형 UI 또는 사용자 알림 기능을 구현할 수 있습니다.
Websocket이란 무엇인가요?
Websocket이란 실시간 양방향 통신을 지원하는 프로토콜 입니다. Websocket은 이벤트가 발생할 때 해당 이벤트에 대한 정보를 HTTP 요청으로 전달하는 Webhook과 달리 지속적으로 네트워크와 연결을 유지하고 있어 실시간으로 변경하는 데이터를 주고 받을 때 유리합니다. 개발자가 모니터링 하고자 하는 온체인 이벤트를 정의한 뒤 이를 Websocket으로 등록하면, 해당 조건에 맞는 이벤트를 실시간으로 전달받을 수 있습니다. 조건을 세분화 한 여러 Websocket을 등록할 수 있으며, 이를 활용하여 DApp 구현시 실시간 반응형 UI 또는 사용자 알림 기능을 구현할 수 있습니다.
Usecases
다음은 Event Stream 서비스를 활용하여 다양한 애플리케이션을 구현할 수 있는 몇 가지 예시입니다. 구독 가능한 이벤트 타입을 확인하고, 다양한 활용 방안을 찾아보세요.
- 트랜잭션 처리 확인: 사용자가 제출한 트랜잭션이 성공 혹은 실패로 처리되면, 해당 트랜잭션의 Receipt를 통해 원하는 동작을 수행할 수 있습니다. 실패한 트랜잭션이 발생할 경우, retry 로직을 구현하여 트랜잭션을 재시도하거나, 사용자에게 적절한 알림을 보낼 수 있습니다.
- 지갑 잔고 모니터링: 사용자의 지갑 잔고가 일정 수준 이하로 떨어지면, 알림을 받아 사용자에게 토큰 구매를 요청할 수 있습니다. 이 기능은 지갑의 잔고를 실시간으로 모니터링하고, 사용자에게 적절한 조치를 취할 수 있게 합니다.
- 이벤트 기반 알림: 사용자의 지갑 주소나 특정 스마트 컨트랙트 주소에서 이벤트(자산 전송, 트랜잭션 전송 등)가 발생하면, 사용자에게 알림을 보내거나, 필요한 후처리 작업을 수행할 수 있습니다.
- 블록 생성 모니터링: 블록이 생성될 때마다 알림을 받음으로써, 특정 블록체인 네트워크가 안정적으로 동작하고 있는지 모니터링할 수 있습니다. 이를 통해 네트워크의 안정성을 확인하고, 이상 징후를 조기에 감지할 수 있습니다.
Stream 지원 체인
Network | Supporting |
---|---|
Ethereum Mainnet | ✅ |
Ethereum Testnet (sepolia) | ✅ |
Ethereum Testnet (holesky) | ✅ |
Polygon Mainnet | ✅ |
Polygon Testnet (amoy) | ✅ |
Arbitrum Mainnet | ✅ |
Arbitrum Testnet (sepolia) | ✅ |
Optimism Mainnet | ✅ |
Optimism Testnet (sepolia) | ✅ |
Aptos Mainnet | ❌ |
Aptos Testent | ❌ |
Kaia Mainnet | ✅ |
Kaia Testnet (kairos) | ✅ |
Bitcoin Mainnet | ❌ |
Bitcoin Testnet | ❌ |
Dogecoin Mainnet | ❌ |
Dogecoin Testnet | ❌ |
Event Type
Event Stream 서비스는 블록체인에서 발생하는 다양한 이벤트를 실시간으로 추적하고 알림을 받을 수 있는 기능을 제공합니다. 트랜잭션의 성공 또는 실패, 특정 토큰의 전송, 특정 주소의 활동 등의 이벤트가 포함됩니다. Webhook과 Websocket에서 모두 동일한 이벤트를 사용할 수 있으며, 자세한 이벤트 타입 목록과 설명은 아래 링크에서 확인할 수 있습니다.