Substreams is a powerful blockchain indexing technology, developed for The Graph Network.
It enables you to write Rust modules, composing data streams alongside the community, and provides extremely high performance indexing by virtue of parallelization, in a streaming-first fashion.
It has all the benefits of the Firehose, like low-cost caching and archiving of blockchain data, high throughput processing, and cursor-based reorgs handling.
Full documentation is accessible at https://docs.substreams.dev.
- Overview
- Installation
- Creating your Manifest
- Creating Protobuf Schemas
- Setting Up Handlers
- Writing Module Handlers
- Running Your Substreams
It seems that the way we used to generate the Protobuf bindings hasn't been properly documented. It seems that for now, a manual generation of Protobuf needs to be done:
# Working directory at root of project
cd substreams
protoc --prost_out=src/pb --proto_path=../../substreams-foundational-store/proto ../../substreams-foundational-store/proto/sf/substreams/foundational-store/v1/*.proto