Saltar al contenido principal

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

Ten en cuenta que este comportamiento es diferente en comparación con el endpoint getLedgerEntries de RPC. RPC devolverá el valor actual de una entrada de libro mayor dada (un solo resultado), mientras que las tablas de estado de Hubble devolverán todos los cambios a lo largo del tiempo para una entrada de libro mayor dada (varios resultados). Para obtener un comportamiento similar al de RPC, 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 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_idledger_sequencebalance
DUMMYACCOUNT110
DUMMYACCOUNT215
DUMMYACCOUNT35

Como se ve en la tabla, cada fila muestra el balance de DUMMYACCOUNT en un ledger_sequence específico.


### List of state tables

- [Accounts](../data-catalog/data-dictionary/accounts.mdx)
- [Claimable Balances](../data-catalog/data-dictionary/claimable-balances.mdx)
- [Contract Code](../data-catalog/data-dictionary/contract-code.mdx)
- [Contract Data](../data-catalog/data-dictionary/contract-data.mdx)
- [Liquidity Pools](../data-catalog/data-dictionary/liquidity-pools.mdx)
- [Offers](../data-catalog/data-dictionary/offers.mdx)
- [Trustlines](../data-catalog/data-dictionary/trustlines.mdx)
- [TTL](../data-catalog/data-dictionary/ttl.mdx)

## What are history tables?

These tables are a full history log of actions on the network.

- Each row represents some action on the network (ledger closing, transactions, operations, etc...)
- Encompasses the complete chronological history of activity on the network

### Example contents of a history table

Let's say we operations for a specific transaction. The `history_operations` table would return the following:

| 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"}` |

As seen in the table, each row shows the distinct operation with its unique `id`.

### List of history tables

- [History Assets](../data-catalog/data-dictionary/history-assets.mdx)
- [History Contract Events](../data-catalog/data-dictionary/history-contract-events.mdx)
- [History Effects](../data-catalog/data-dictionary/history-effects.mdx)
- [History Ledgers](../data-catalog/data-dictionary/history-ledgers.mdx)
- [History Operations](../data-catalog/data-dictionary/history-operations.mdx)
- [History Trades](../data-catalog/data-dictionary/history-trades.mdx)
- [History Transactions](../data-catalog/data-dictionary/history-transactions.mdx)
- [Enriched History Operations](../data-catalog/data-dictionary/enriched-history-operations.mdx)