Historia VS Tablas de Estado
Esta página describe las diferencias entre las tablas de Historia y las tablas de Estado dentro de Hubble.
¿Qué son las tablas de estado?
Estas rastrean los cambios de las entradas en el ledger, lo que significa que almacenan cómo cada entrada en el ledger evolucionó con el tiempo en lugar de solo el estado final de la entrada en el ledger. Esto significa que las tablas de estado son un registro completo de la historia de los estados de las entradas en el ledger que cambian según las acciones (operaciones) de la red Stellar.
- Cada fila representa un cambio único a una entrada en el ledger
- Verás varias filas del mismo hash de entrada en el ledger si ha sido modificado múltiples veces en diferentes secuencias del ledger
- Esto no es una tabla de tipo imagen/SCD 2. No hay fechas válidas de desde/hasta en estas tablas
Ten en cuenta 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 en el 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 en el ledger dada (resultados múltiples). Para obtener un comportamiento similar al de Horizon, puedes filtrar y devolver la última entrada de las tablas de estado de Hubble o puedes usar la versión _current
de las tablas de estado listadas en el conjunto de datos crypto-stellar.crypto_stellar_dbt
.
Ejemplo de contenido de una tabla de estado
Supongamos que solo queremos las entradas en el ledger para el saldo 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. Ten en cuenta que esto es diferente de 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
- Saldos Reclamares
- Código de Contrato
- Datos de Contrato
- Fondos de Liquidez
- Ofertas
- Trustlines
- TTL
¿Qué son las tablas de historia?
Estas tablas son un registro completo de la historia de las acciones en la red.
- Cada fila representa alguna acción en la red (cierre de ledger, transacciones, operaciones, etc...)
- Encompasa la historia cronológica completa de la actividad en la red
Ejemplo de contenido de una tabla de historia
Supongamos que queremos operaciones para una transacción específica. La tabla history_operations
devolvería lo siguiente:
transaction_hash | id | ledger_sequence | tipo | 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 ve en la tabla, cada fila muestra la operación distinta con su id
único.