Browse by type
<img alt="Hyperion Logo"
src="https://eosrio.io/hyperion.png">
Made with ♥ by Rio Blocks
Hyperion is a high-performance, scalable solution designed to index, store, and retrieve the full history and current state of Antelope-based blockchains (formerly EOSIO). Antelope chains can generate vast amounts of data, demanding robust indexing, optimized storage, and efficient querying capabilities. Hyperion addresses these challenges by providing open-source software tailored for block producers, infrastructure providers, and dApp developers.
Key Features:
hpm tool.Hyperion operates by separating the concerns of historical event streams and current on-chain state:
/v2/history/*, /v1/*)./v2/state/*).A typical Hyperion deployment involves the following components. While they can run on a single machine for smaller chains or development, production environments benefit from distributing them across multiple servers connected via a high-speed network.
The source of blockchain data. A node (e.g., built from the AntelopeIO/leap repository) running the state_history_plugin provides action traces and state deltas via a WebSocket connection to the Hyperion Indexer.
A robust message queuing system. Used as a buffer and transport layer between the different stages of the Hyperion Indexer (Reader -> Deserializer -> Indexer Workers) and for routing real-time data streams to connected API clients.
An in-memory data store used for:
* API Response Caching: Temporarily storing results of frequent API queries.
* Preemptive Transaction Caching: Storing recent transaction details for fast lookups via v2/history/get_transaction and check_transaction.
* API Usage Statistics: Tracking API endpoint usage rates.
* Inter-process Communication: Facilitating coordination, e.g., for rate limiting across clustered API instances (via @fastify/rate-limit).
* Live Streaming Coordination: Used by the Socket.IO Redis adapter for managing stream subscriptions across clustered API instances.
The primary datastore for indexed historical data. It stores processed action traces, state deltas, and block headers.
* Role: Enables powerful search and aggregation capabilities for historical queries (e.g., get_actions, get_deltas).
* Requirement: Essential for all Hyperion history functionalities.
* Recommendation: Requires significant RAM (32GB+ per node recommended), CPU, and fast storage (SSD/NVMe recommended for ingest nodes, HDDs can be used for cold storage nodes). Multi-node clusters are highly recommended for production.
This MongoDB integration complements Elasticsearch by focusing on current state data rather than historical actions, enabling efficient state queries without scanning history. * Recommendation: Requires adequate RAM, CPU, and Disk I/O, particularly if indexing large amounts of contract state.
System Contract State Storage:
- Stores searchable state data for Antelope system contracts like token balances, proposals, and voter information
- Maintains three primary collections by default:
- accounts: Stores token balances with indexes for code, scope, and symbol
- proposals: Tracks governance proposals with detailed approval status
- voters: Manages staking and voting records with optimized query paths
Custom Contract State Tracking:
{contract}-{table}State Synchronization:
hyp-control CLI tool, allowing for targeted synchronization of specific contractsQuery Optimization:
$gt, $lt, $in for filtersAPI Integration:
/v2/state/* API endpointsDynamic Contract Schema Support:
A Node.js application responsible for fetching data from SHIP, deserializing it, processing actions and deltas according to configured filters/handlers, and publishing data to RabbitMQ queues for indexing and state updates. Managed by the PM2 process manager.
A Node.js (Fastify framework) application that serves the HTTP API endpoints (v1 and v2). It queries Elasticsearch, MongoDB, Redis, and the Antelope node as needed. It also manages the Swagger documentation UI and handles WebSocket connections for live streaming. Typically run in cluster mode using PM2 for scalability and resilience.
A client library (for Web and Node.js) simplifying connection to the real-time streaming endpoints offered by enabled Hyperion providers. See Stream Client Documentation.
Hyperion features an extensible plugin architecture. Plugins can add custom data handlers, API routes, or other functionalities. Managed via the hpm command-line tool.
* Example: DelphiOracle Plugin
For detailed setup instructions, API usage, and technical deep-dives, please visit the Official Hyperion Documentation.
history_plugin) is also provided./docs endpoint of your running API server (e.g., http://your-hyperion-ip:7000/docs).We appreciate community contributions to Hyperion! Here’s how you can help:
main — the stable branch. It only ever advances to tagged releases, so its HEAD always matches the latest published version. This is the branch to clone for production (as referenced in the install guide).dev — the active development branch. All day-to-day work lands here.dev. Releases are cut by merging dev into main and tagging.(The legacy develop branch is abandoned 2020-era history kept only for archival reasons — do not use it.)
Hyperion History API is licensed under the Attribution-NonCommercial-ShareAlike 4.0 International.
$ claude mcp add hyperion-history-api \
-- python -m otcore.mcp_server <graph>