Desarrolladores

Eliminando el Estado del Libro Mayor de las Bases de Datos SQL en 22.1

Autor

Garand Tyson

Fecha de publicación

A partir de la versión 22.1 de stellar-core, SQL ya no será compatible para la mayoría del estado del libro mayor y el historial de transacciones. En particular, se eliminarán las siguientes tablas:

  • ACCOUNT
  • TRUSTLINE
  • DATA
  • CLAIMABLE_BALANCE
  • LIQUIDITY_POOL
  • CONTRACT_DATA
  • CONTRACT_CODE
  • CONFIG_SETTING
  • TTL
  • TXSETHISTORY
  • TXHISTORY

Estas tablas han sido obsoletas durante varias versiones, pero aún podían habilitarse mediante la opción de configuración DEPRECATED_SQL_LEDGER_STATE. stellar-core 22.0 será el último paquete que soporte DEPRECATED_SQL_LEDGER_STATE, lo que significa que estas tablas se eliminarán incondicionalmente a partir de 22.1. La opción de configuración DEPRECATED_SQL_LEDGER_STATE será ignorada en 22.1 y luego eliminada en 23.0.

Además, la --in memory bandera de modo ya no es compatible a partir de 22.1. Si esta bandera está establecida, será ignorada y el validador iniciará en modo BucketListDB. La bandera será eliminada completamente en 23.0.

Accediendo al Estado del Libro Mayor

Para admitir consultas de estado del libro mayor, stellar-core 22.0 introduce un servidor de consultas HTTP de alto rendimiento con el punto final `getledgerentryraw`. Las cadenas que actualmente dependen del acceso directo a las tablas SQL de stellar-core para el acceso al estado del libro mayor deberían transicionar a este nuevo punto final. `getledgerentryraw` es capaz de cargas de clave-valor arbitrarias con benchmarks similares a SQL. Al probar sobre `localhost`, el punto final fue capaz de atender 20,000 solicitudes por segundo con una latencia promedio de ida y vuelta de 500µs. Por defecto, el servidor de consultas HTTP de stellar-core y `getledgerentryraw` estarán deshabilitados. Para más información sobre cómo habilitar y usar este punto final, por favor refiérase a la sección “HTTP Query Server” de los documentos de comandos de stellar-core. Aunque la interfaz es una simple consulta HTTP POST, el StellarCoreClient adicionalmente proporciona una interfaz Go para interactuar con este punto final pero no es necesario.

Historial de Transacciones y Conjunto de Transacciones

Aunque el `getledgerentryraw` puede usarse para consultar el estado del libro mayor, stellar-core ya no almacenará ni expondrá el historial de transacciones y conjuntos de transacciones. Si esta información es requerida, se recomienda ejecutar un RPC o Horizon nodo o consultar archivos de historial públicos history archives.

¿Preguntas? ¿Comentarios? Por favor, plantéalos en el Stellar Dev Discord canal #validator.