This is my fork version of substrate-archive
- Substrate Node (RocksDB)
- PostgreSQL 12+
- Kafka 2.13+ (Optional)
archive-client
: A specialized substrate client forArchive
.archive-postgres
: PostgreSQL related operations forArchive
.archive-kafka
: Kafka related operations forArchive
.archive-actor
: Specified logic of eachArchive
component, based on actor model.- scheduler: The scheduler used to get the blocks.
- block: Get the specified block with storage changes.
- best_and_finalized: Get the best block (number + hash) and finalized block (number + hash).
- metadata: Get the metadata (spec version) of the blocks.
- database(postgres): Store metadata and block (with storage changes) message into database.
- dispatcher: Dispatch metadata and block message (with storage changes) to other targets.
- kafka: Publish the metadata and block message (with storage changes) to kafka.
- scheduler: The scheduler used to get the blocks.
archive-primitives
: Runtime primitives.
+------------------------------------------------+
| |
| +---------+ | +-------+
| +------+ block +-------+ | +--+ kafka |
| | +---------+ | | | +-------+
| | | | |
+-----------+ | | | +------------+ | +------------+ |
| | | | +---------+ | | | | | | | +-------+
| backend +-------+------+ block +-------+---+ metadata +--+--+ database +--+--+ ... |
| | | | +---------+ | | | | | | | +-------+
+-----+-----+ | | | +------+-----+ | +------------+ |
| | | | | | |
| | | +---------+ | | | | +-------+
| | +------+ ... +-------+ +----+----+ | +--+ ... |
+-----+-----+ | +---------+ | genesis | | +-------+
| RocksDB | | +---------+ |
+-----------+ | scheduler |
+------------------------------------------------+
Under the GPL-v3 license. See the LICENSE file for details.