Or谩culo

Descripci贸n general

Esta gu铆a es solo para nodos validadores.

El Slinky Oracle consta de dos elementos principales:

  1. Un componente en cadena que recupera datos de precios del sidecar con cada bloque, env铆a estos precios a la cadena de bloques a trav茅s de extensiones de votaci贸n y compila los precios de todos los validadores involucrados.

  2. Un proceso paralelo dedicado a sondear informaci贸n de precios de varios proveedores y entregar estos datos al componente en cadena.

Para obtener informaci贸n adicional sobre Oracle, consulte el repositorio de Slinky en https://github.com/skip-mev/slinky/ .

Los archivos binarios precompilados estar谩n disponibles en el futuro. Actualmente, se recomienda a los usuarios que compilen el software necesario a partir del c贸digo fuente.

Tutorial

Paso 1: clonar el repositorio

Clona el repositorio furtivo.

Copiar

git clone https://github.com/skip-mev/slinky.git
cd slinky

# checkout proper version
git checkout v0.4.3

Paso 2: ejecutar el sidecar

Configuraci贸n de configuraci贸n

Para operar el sidecar de Oracle, es esencial tener archivos de configuraci贸n v谩lidos tanto para el componente de Oracle como para el componente de mercado. El ejecutable de Oracle reconoce indicadores que especifican cada archivo de configuraci贸n. A continuaci贸n se muestran las configuraciones predeterminadas recomendadas adecuadas para el entorno Initia Devnet existente.

Componente de Oracle

El componente de Oracle determina con qu茅 frecuencia sondear a los proveedores de precios, el comportamiento de multiplexaci贸n de los websockets y m谩s. Skip lo ha probado y es seguro de usar. El componente de Oracle recomendado se puede encontrar en config/core/oracle.jsonel repositorio de Slinky.

Componente de mercado

El componente de mercado determina para qu茅 mercados deber铆a obtener precios el sidecar. Los mercados deseados se almacenar谩n en la cadena y ser谩n arrastrados por el sidecar. Para configurar correctamente el sidecar, debe apuntar el sidecar al puerto GRPC en un nodo (normalmente el puerto 9090). Esto se puede hacer agregando la --market-map-endpointbandera al iniciar el sidecar o modificando el oracle.jsoncomponente como se muestra a continuaci贸n.

// config/core/oracle.json found in the repo.

```json
{
  ...,
    {
      "name": "marketmap_api",
      "api": {
        "enabled": true,
        "timeout": 20000000000,
        "interval": 10000000000,
        "reconnectTimeout": 2000000000,
        "maxQueries": 1,
        "atomic": true,
        "url": "0.0.0.0:9090", // URL that must point to a node GRPC endpoint
        "endpoints": null,
        "batchSize": 0,
        "name": "marketmap_api"
      },
      "type": "market_map_provider"
    }
  ],
  "metrics": {
    "prometheusServerAddress": "0.0.0.0:8002",
    "enabled": true
  },
  "host": "0.0.0.0",
  "port": "8080"
}
```

Arrancar el sidecar

El inicio del proceso sidecar de Oracle se logra ejecutando el binario.

# Build the Slinky binary in the repo.
make build

# Run with the core oracle config from the repo.
./build/slinky --oracle-config-path ./config/core/oracle.json --market-map-endpoint 0.0.0.0:9090

El servidor GRPC funciona con la configuraci贸n predeterminada de 0.0.0.0:8080y, si est谩 activado, el punto final de m茅tricas de Prometheus lo utiliza 0.0.0.0:8002como host y puerto predeterminados.

Paso 3: Validar precios

Al iniciar el Oracle, deber铆a observar una recuperaci贸n exitosa de los precios de las fuentes del proveedor. Adem谩s, tiene la opci贸n de ejecutar el script del cliente de prueba disponible en el repositorio de Slinky mediante el comando make run-oracle-client.

Paso 4: habilite la extensi贸n de votaci贸n de Oracle

Para utilizar los datos de Slinky Oracle en el nodo Initia, la configuraci贸n de Oracle debe estar habilitada en el config/app.toml archivo.

###############################################################################
###                                  Oracle                                 ###
###############################################################################
[oracle]
# Enabled indicates whether the oracle is enabled.
enabled = "true"

# Oracle Address is the URL of the out of process oracle sidecar. This is used to
# connect to the oracle sidecar when the application boots up. Note that the address
# can be modified at any point, but will only take effect after the application is
# restarted. This can be the address of an oracle container running on the same
# machine or a remote machine.
oracle_address = "127.0.0.1:8080"

# Client Timeout is the time that the client is willing to wait for responses from 
# the oracle before timing out.
client_timeout = "500ms"

# MetricsEnabled determines whether oracle metrics are enabled. Specifically
# this enables instrumentation of the oracle client and the interaction between
# the oracle and the app.
metrics_enabled = "false"

Last updated