[][src]Struct ilp_node::InterledgerNode

pub struct InterledgerNode {
    pub ilp_address: Option<Address>,
    pub secret_seed: [u8; 32],
    pub admin_auth_token: String,
    pub redis_connection: ConnectionInfo,
    pub http_bind_address: SocketAddr,
    pub settlement_api_bind_address: SocketAddr,
    pub default_spsp_account: Option<Username>,
    pub route_broadcast_interval: Option<u64>,
    pub exchange_rate_poll_interval: u64,
    pub exchange_rate_poll_failure_tolerance: u32,
    pub exchange_rate_provider: Option<ExchangeRateProvider>,
    pub exchange_rate_spread: f64,
    pub prometheus: Option<PrometheusConfig>,
}

An all-in-one Interledger node that includes sender and receiver functionality, a connector, and a management API. The node uses Redis for persistence.

Fields

ilp_address: Option<Address>

ILP address of the node

secret_seed: [u8; 32]

Root secret used to derive encryption keys

admin_auth_token: String

HTTP Authorization token for the node admin (sent as a Bearer token)

redis_connection: ConnectionInfo

Redis URI (for example, "redis://127.0.0.1:6379" or "unix:/tmp/redis.sock")

http_bind_address: SocketAddr

IP address and port to listen for HTTP connections This is used for both the API and ILP over HTTP packets

settlement_api_bind_address: SocketAddr

IP address and port to listen for the Settlement Engine API

default_spsp_account: Option<Username>

When SPSP payments are sent to the root domain, the payment pointer is resolved to /.well-known/pay. This value determines which account those payments will be sent to.

route_broadcast_interval: Option<u64>

Interval, defined in milliseconds, on which the node will broadcast routing information to other nodes using CCP. Defaults to 30000ms (30 seconds).

exchange_rate_poll_interval: u64

Interval, defined in milliseconds, on which the node will poll the exchange rate provider. Defaults to 60000ms (60 seconds).

exchange_rate_poll_failure_tolerance: u32

The number of consecutive failed polls to the exchange rate provider that the connector will tolerate before invalidating the exchange rate cache.

exchange_rate_provider: Option<ExchangeRateProvider>

API to poll for exchange rates. Currently the supported options are:

  • CoinCap
  • CryptoCompare (note this requires an API key) If this value is not set, the node will not poll for exchange rates and will instead use the rates configured via the HTTP API.
exchange_rate_spread: f64

Spread, as a fraction, to add on top of the exchange rate. This amount is kept as the node operator's profit, or may cover fluctuations in exchange rates. For example, take an incoming packet with an amount of 100. If the exchange rate is 1:2 and the spread is 0.01, the amount on the outgoing packet would be 198 (instead of 200 without the spread).

prometheus: Option<PrometheusConfig>

Configuration for Prometheus metrics collection. If this configuration is not provided, the node will not collect metrics.

Methods

impl InterledgerNode[src]

pub fn serve(&self) -> impl Future<Item = (), Error = ()>[src]

Returns a future that runs the Interledger.rs Node.

If the Prometheus configuration was provided, it will also run the Prometheus metrics server on the given address.

pub fn run(&self)[src]

Run the node on the default Tokio runtime

Trait Implementations

impl Clone for InterledgerNode[src]

impl<'de> Deserialize<'de> for InterledgerNode[src]

Auto Trait Implementations

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> Instrument for T[src]

impl<T> WithSubscriber for T[src]

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Err = <U as TryFrom<T>>::Err

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,