Preguntas frecuentes sobre Subgrafos impulsados por Substreams - FAQ
Reading time: 5 minutes
¿Qué son los Substreams?
Substreams is an exceptionally powerful processing engine capable of consuming rich streams of blockchain data. It allows you to refine and shape blockchain data for fast and seamless digestion by end-user applications.
Specifically, it’s a blockchain-agnostic, parallelized, and streaming-first engine that serves as a blockchain data transformation layer. It’s powered by Firehose, and enables developers to write Rust modules, build upon community modules, provide extremely high-performance indexing, and sink their data anywhere.
Substreams is developed by StreamingFast. Visit the Substreams Documentation to learn more about Substreams.
¿Qué son los subgrafos impulsados por Substreams?
Substreams-powered subgraphs combine the power of Substreams with the queryability of subgraphs. When publishing a Substreams-powered Subgraph, the data produced by the Substreams transformations, can output entity changes that are compatible with subgraph entities.
If you are already familiar with subgraph development, note that Substreams-powered subgraphs can then be queried just as if it had been produced by the AssemblyScript transformation layer. This provides all the benefits of subgraphs, including a dynamic and flexible GraphQL API.
¿Cómo se diferencian los subgrafos impulsados por Substreams de los subgrafos tradicionales?
Los subgrafos están compuestos por fuentes de datos que especifican eventos en la cadena de bloques, y cómo esos eventos deben ser transformados mediante controladores escritos en AssemblyScript. Estos eventos se procesan de manera secuencial, según el orden en el que ocurren los eventos onchain.
En cambio, los subgrafos potenciados por Substreams tienen una única fuente de datos que hace referencia a un paquete de Substreams, que es procesado por Graph Node. Los Substreams tienen acceso a datos más granulares onchain en comparación con los subgrafos convencionales, y también pueden beneficiarse de un procesamiento masivamente paralelizado, lo que puede significar tiempos de procesamiento mucho más rápidos.
¿Cuáles son los beneficios de usar subgrafos potenciados por Substreams?
Substreams-powered subgraphs combine all the benefits of Substreams with the queryability of subgraphs. They bring greater composability and high-performance indexing to The Graph. They also enable new data use cases; for example, once you’ve built your Substreams-powered Subgraph, you can reuse your Substreams modules to output to different sinks such as PostgreSQL, MongoDB, and Kafka.
¿Cuáles son los beneficios de Substreams?
Hay muchos beneficios al usar Substreams, incluyendo:
-
Componible: Puedes apilar módulos de Substreams como bloques de LEGO y construir sobre módulos de la comunidad, refinando aún más los datos públicos.
-
Indexación de alto rendimiento: Indexación mucho más rápida mediante grandes clústeres de operaciones en paralelo (piensa en BigQuery).
-
Almacenamiento en cualquier lugar: Envía tus datos a donde quieras: PostgreSQL, MongoDB, Kafka, subgrafos, archivos planos, Google Sheets.
-
Programable: Usa código para personalizar la extracción, realizar agregaciones en tiempo de transformación y modelar tu salida para múltiples destinos.
-
Acceso a datos adicionales que no están disponibles como parte del JSON RPC
-
Todos los beneficios de Firehose.
¿Qué es el Firehose?
Desarrollado por StreamingFast (https://www.streamingfast.io/), Firehose es una capa de extracción de datos blockchain diseñada desde cero para procesar el historial completo de las blockchains a velocidades nunca antes vistas. Proporcionando un enfoque basado en archivos y priorizando la transmisión de datos, es un componente clave del conjunto de tecnologías de código abierto de StreamingFast y la base de Substreams.
Visita la [documentación] (https://firehose.streamingfast.io/) para obtener más información sobre Firehose.
¿Cuáles son los beneficios de Firehose?
There are many benefits to using Firehose, including:
-
Lowest latency & no polling: In a streaming-first fashion, the Firehose nodes are designed to race to push out the block data first.
-
Prevents downtimes: Designed from the ground up for High Availability.
-
Never miss a beat: The Firehose stream cursor is designed to handle forks and to continue where you left off in any condition.
-
Richest data model: Best data model that includes the balance changes, the full call tree, internal transactions, logs, storage changes, gas costs, and more.
-
Leverages flat files: Blockchain data is extracted into flat files, the cheapest and most optimized computing resource available.
¿Dónde pueden los desarrolladores acceder a más información sobre los subgrafos potenciados por Substreams y Substreams?
La [documentación de Substreams] (/substreams/introduction/) te enseñará cómo construir módulos de Substreams.
The Substreams-powered subgraphs documentation will show you how to package them for deployment on The Graph.
La [última herramienta de Substreams Codegen] (https://streamingfastio.medium.com/substreams-codegen-no-code-tool-to-bootstrap-your-project-a11efe0378c6) te permitirá iniciar un proyecto de Substreams sin necesidad de escribir código.
¿Cuál es el papel de los módulos de Rust en Substreams?
Rust modules are the equivalent of the AssemblyScript mappers in subgraphs. They are compiled to WASM in a similar way, but the programming model allows for parallel execution. They define the sort of transformations and aggregations you want to apply to the raw blockchain data.
See modules documentation for details.
¿Qué hace que Substreams sea componible?
Cuando se usa Substreams, la composición ocurre en la capa de transformación, lo que permite que los módulos en caché sean reutilizados.
As an example, Alice can build a DEX price module, Bob can use it to build a volume aggregator for some tokens of his interest, and Lisa can combine four individual DEX price modules to create a price oracle. A single Substreams request will package all of these individual’s modules, link them together, to offer a much more refined stream of data. That stream can then be used to populate a subgraph, and be queried by consumers.
How can you build and deploy a Substreams-powered Subgraph?
After defining a Substreams-powered Subgraph, you can use the Graph CLI to deploy it in Subgraph Studio.
¿Dónde puedo encontrar ejemplos de Substreams y Subgrafos potenciados por Substreams?
Puedes visitar [este repositorio de Github] (https://github.com/pinax-network/awesome-substreams) para encontrar ejemplos de Substreams y Subgrafos potenciados por Substreams.
¿Qué significan los Substreams y los subgrafos impulsados por Substreams para The Graph Network?
The integration promises many benefits, including extremely high-performance indexing and greater composability by leveraging community modules and building on them.