Saltearse al contenido

API REST del Nodo Completo

Esta API - integrada en Nodos Completos - proporciona una forma simple, de baja latencia, pero de bajo nivel de leer estado y enviar transacciones a la Blockchain de Aptos. También soporta simulación de transacciones. Para consultas más avanzadas, recomendamos usar la API GraphQL del Indexador.

Como con el Indexador de Aptos, la API REST de Aptos tiene límites de tasa basados en unidades de cómputo. Puedes aprender más sobre cómo funciona el límite de tasa leyendo la documentación de Aptos Build.

La mayoría de las integraciones en la blockchain de Aptos se benefician de una visión holística y comprensiva del estado actual e histórico de la blockchain. Aptos proporciona transacciones históricas, estado y eventos, todo el resultado de la ejecución de transacciones.

  • Las transacciones históricas especifican el estado de ejecución, salida y vinculación a eventos relacionados. Cada transacción tiene un número de versión único asociado que dicta su orden secuencial global en la historia del libro mayor de la blockchain.
  • El estado es la representación de todas las salidas de transacciones hasta una versión específica. En otras palabras, una versión de estado es la acumulación de todas las transacciones incluyendo esa versión de transacción.
  • A medida que las transacciones se ejecutan, pueden emitir eventos. Los Eventos son pistas sobre cambios en datos de la cadena.

El servicio de almacenamiento en un nodo emplea dos formas de poda que borran datos de los nodos:

  • estado
  • eventos, transacciones y todo lo demás

Mientras que cualquiera de estos puede ser deshabilitado, almacenar las versiones de estado no es particularmente sostenible.

La poda de eventos y transacciones puede ser deshabilitada configurando enable_ledger_pruner a false en storage_config.rs. Este es el comportamiento por defecto en Mainnet. En el futuro cercano, Aptos proporcionará indexadores que mitiguen la necesidad de consultar directamente desde un nodo.

La API REST ofrece consultar transacciones y eventos de estas maneras:

Las funciones View no modifican el estado de la blockchain cuando se llaman desde la API. Una función View y su entrada pueden ser usadas para leer estado potencialmente complejo de la cadena usando Move. Por ejemplo, puedes evaluar quién tiene la oferta más alta en un contrato de subasta. Aquí están los archivos relacionados:

La función view opera como la API de simulación de Aptos, aunque sin efectos secundarios y con una ruta de salida accesible. Las funciones view pueden ser llamadas via el endpoint /view. Las llamadas a funciones view requieren los nombres del módulo y función junto con parámetros de tipo de entrada y valores.

Una función no tiene que ser inmutable para ser etiquetada como #[view], pero si la función es mutable no resultará en mutación de estado cuando se llame desde la API. Si quieres etiquetar una función mutable como #[view], considera hacerla privada para que no pueda ser llamada maliciosamente durante el tiempo de ejecución.

Para usar las funciones View, necesitas publicar el módulo a través de la CLI de Aptos.

En la CLI de Aptos, una solicitud de función view se vería así:

Ventana de terminal
aptos move view --function-id devnet::message::get_message --profile devnet --args address:devnet
{
"Result": [
"View functions rock!"
]
}

En el SDK de TypeScript, una solicitud de función view se vería así:

import { Aptos } from "@aptos-labs/ts-sdk";
const aptos = new Aptos();
const [balance] = aptos.view<[string]>({
function: "0x1::coin::balance",
typeArguments: ["0x1::aptos_coin::AptosCoin"],
functionArguments: [alice.accountAddress]
});
expect(balance).toBe("100000000");

La función view retorna una lista de valores como un vector. Por defecto, los resultados se retornan en formato JSON; sin embargo, pueden ser opcionalmente retornados en formato codificado de Serialización Canónica Binaria (BCS).