Skip to main content

Operate Skip:Connect

Overview​

Warden integrates with Skip:Connect (formerly known as Slinky)—an oracle service from Skip Protocol. The data provided by Connect is validated by Warden's network and written onchain.

This article is a guide for validators explaining how to run Connect.

See also: Connect documentation.

1. Download​

Download the Connect binary from the Connect releases page on GitHub. The initial version required for Warden is v1.0.3 or higher.

You can also use a container image including the binary at slinky-sidecar.

2. Run Connect sidecar​

tip

If you're running Connect as a container, skip this step.

Then you need to integrate the Connect sidecar into your setup. To run Connect with stable defaults defined by the Skip team, use this command:

slinky

Note that some default values may need to change depending on how you've set up your node and the sidecar.

3. Configure wardend​

The chain binary (wardend) has been altered to accept new options related to Connect.

In order to point your binary to Connect, update the [oracle] section of your app.toml file with the settings below.

note
  • Make sure you correctly set price_ttl and interval.
  • The metrics_enabled setting is optional.
/.warden/config/app.toml
###############################################################################
### 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 = "localhost:8080"

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

# 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 = true

# PriceTTL is the maximum age of the latest price response before it is considered stale.
# The recommended max age is 10 seconds (10s). If this is greater than 1 minute (1m), the app
# will not start.
price_ttl = "10s"

# Interval is the time between each price update request. The recommended interval
# is the block time of the chain. Otherwise, 1.5 seconds (1500ms) is a good default. If this
# is greater than 1 minute (1m), the app will not start.
interval = "5s"