Historia vs Tablas de Estado
Esta página describe las diferencias entre las tablas de Historia y Estado dentro de Hubble.
¿Qué son las tablas de estado?
Estas rastrean los cambios de las entradas de ledger, lo que significa que almacenan cómo evolucionó cada entrada de ledger a lo largo del tiempo en lugar de solo el estado final de la entrada de ledger. Esto significa que las tablas de estado son un registro completo del historial de los estados de las entradas de ledger que han cambiado basado en acciones (operaciones) de la red Stellar.
- Cada fila representa un cambio único en una entrada de ledger
- Verás múltiples filas del mismo hash de entrada de ledger si ha sido modificado varias veces en diferentes secuencias de ledger
- Esto no es una tabla tipo snapshot/SCD 2. No hay fechas válidas de inicio/final en estas tablas
Nota que este es un comportamiento diferente en comparación con los puntos finales de Horizon. Los puntos finales de Horizon devuelven el valor actual de una entrada de ledger dada (un único resultado), mientras que las tablas de estado de Hubble devolverán todos los cambios a lo largo del tiempo para una entrada de ledger dada (múltiples resultados). Para obtener un comportamiento similar al de Horizon, puedes filtrar y devolver la entrada más reciente de las tablas de estado de Hubble o puedes utilizar la versión _current
de las tablas de estado listadas en el conjunto de datos crypto-stellar.crypto_stellar_dbt
.
Ejemplo de contenidos de una tabla de estado
Digamos que solo queremos las entradas de ledger para el balance de DUMMYACCOUNT
. La tabla de estado account
devolvería lo siguiente:
account_id | ledger_sequence | balance |
---|---|---|
DUMMYACCOUNT | 1 | 10 |
DUMMYACCOUNT | 2 | 15 |
DUMMYACCOUNT | 3 | 5 |
Como se ve en la tabla, cada fila muestra el balance
de DUMMYACCOUNT
en un ledger_sequence
específico. Nota que esto es diferente a lo que devolvería el punto final de Horizon, como se ve a continuación
{
"balance": "5.0",
"asset_type": "native"
}
Lista de tablas de estado
- Cuentas
- Balances Reclamables
- Código de Contrato
- Datos de Contrato
- Fondos de Liquidez
- Ofertas
- Líneas de Confianza
- TTL
¿Qué son las tablas de historia?
Estas tablas son un registro completo del historial de acciones en la red.
- Cada fila representa alguna acción en la red (cierre de ledger, transacciones, operaciones, etc...)
- Incorpora todo el historial cronológico de actividad en la red
Ejemplo de contenidos de una tabla de historia
Digamos que deseamos operaciones para una transacción específica. La tabla history_operations
devolvería lo siguiente:
transaction_hash | id | ledger_sequence | type | details_json |
---|---|---|---|---|
TXHASH1 | 1 | 1 | 13 | {"some": "operation details"} |
TXHASH1 | 2 | 1 | 2 | {"some": "operation details"} |
TXHASH1 | 3 | 1 | 13 | {"some": "operation details"} |
Como se observa en la tabla, cada fila muestra la operación distinta con su único id
.