Documentación
Arquitectura del SDK de Indexer
Sección titulada «Arquitectura del SDK de Indexer»En la pila de indexación de Aptos, un procesador indexa un subconjunto específico de datos de la blockchain y escribe los datos en una base de datos externa.
Cada procesador sigue este flujo general:
- Recibir un flujo de transacciones de Transaction Stream
- Extraer los datos relevantes de las transacciones y transformarlos en un esquema estandarizado
- Almacenar los datos transformados en una base de datos
- Hacer seguimiento de las versiones de transacciones que han sido procesadas
El SDK de Indexer te permite escribir un procesador como un grafo dirigido de pasos independientes.
Cada Step
tiene una entrada y salida, y la salida de cada Step
está conectada a la entrada del siguiente Step
por un canal Kanal.
Cuándo usar el SDK de Indexer
Sección titulada «Cuándo usar el SDK de Indexer»El SDK de Indexer es útil cuando quieres indexar un contrato personalizado o te das cuenta de que necesitas un nuevo tipo de datos que no está disponible en la API de Indexer.
El flujo general para escribir un procesador personalizado con el SDK de Indexer es:
- Definir tu esquema de base de datos
- Crear un nuevo procesador
- Crear
Step
s que extraigan y transformen datos en tu esquema de almacenamiento - Personalizar tu procesador agregando y conectando pasos
- Ejecutar tu procesador y ver los datos indexados en tu base de datos
Beneficios del SDK de Indexer
Sección titulada «Beneficios del SDK de Indexer»La arquitectura del SDK de Indexer simplifica escribir procesadores personalizados de varias maneras:
- Puedes reutilizar implementaciones de
Step
a través de procesadores lo que reduce la duplicación de lógica común de extracción de datos. - El SDK recolecta métricas básicas de rendimiento, como el número de transacciones procesadas, para cada
Step
, lo que habilita observabilidad en subcomponentes del procesador. - Como cada
Step
es independiente, puedes personalizar partes del procesador de forma segura sin romper las otras piezas. Por ejemplo, puedes agregarStep
’s adicionales para pre/post-procesar datos o escribir datos por lotes. CadaStep
también puede ser probado de forma aislada del resto del procesador.