Skip to content
An easy-to-use, high-performance Interledger implementation written in Rust
Rust Shell Other
Branch: master
Clone or download

Latest commit

kincaidoneil fix(stream): reliability improvements (#635)
- fix #513: compute min source amount necessary to deliver money to fix T04 issues
- fix #634: distribute dust amounts across remaining packets
- fix #633: only apply T00, T01, F99 to fail-fast behavior
- fix #467: continue on R01, other relative others should be terminal
- increase default slippage to 1.5%
Latest commit 5276479 Mar 25, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci refactor: replace lazy_static with once_cell (#618) Feb 4, 2020
.github
crates fix(stream): reliability improvements (#635) Mar 25, 2020
docker
docs
examples feat: async stream sender with rate enforcement Feb 7, 2020
scripts ci(config.yml): test markdowns only in the source mode Dec 5, 2019
.dockerignore chore(Docker): minimal docker image for node + redis Jul 30, 2019
.gitignore
Cargo.lock feat: bump version of all crates to 1.0.0 Feb 10, 2020
Cargo.toml feat: rates module for exchange rate APIs Feb 7, 2020
LICENSE docs(LICENSE, CONTRIBUTING.md, README.md): Add LICENSE and CONTRIBUTI… May 16, 2019
README.md Interledger RS: Futures 0.3 (#594) Jan 29, 2020

README.md

Interledger.rs


Interledger implementation in Rust 💸

crates.io Interledger.rs Documentation CircleCI rustc Rust Docker Image

Requirements

All crates require Rust 2018 edition and are tested on the following channels:

  • 1.39.0 (minimum supported)
  • stable

Connecting to the Testnet

See the testnet instructions to quickly connect to the testnet with a bundle that includes the Interledger.rs node and settlement engines.

Understanding Interledger.rs

Installation and Usage

To run the Interledger.rs components by themselves (rather than the testnet-bundle), you can follow these instructions:

Using Docker

Prerequisites

  • Docker

Install

docker pull interledgerrs/ilp-node
docker pull interledgerrs/ilp-cli
docker pull interledgerrs/ilp-settlement-ethereum

Run

# This runs the sender / receiver / router bundle
docker run -it interledgerrs/ilp-node

# This is a simple CLI for interacting with the node's HTTP API
docker run -it --rm interledgerrs/ilp-cli

# This includes the Ethereum Settlement Engines written in Rust
docker run -it interledgerrs/ilp-settlement-ethereum

Building From Source

Prerequisites

Install

# 1. Clone the repsitory and change the working directory
git clone https://github.com/interledger-rs/interledger-rs && cd interledger-rs

# 2. Build interledger-rs (add `--release` to compile the release version, which is slower to compile but faster to run)
cargo build

You can find the Interledger Settlement Engines in a separate repository.

Run

# This runs the ilp-node
cargo run --bin ilp-node -- # Put CLI args after the "--"

cargo run --bin ilp-cli -- # Put CLI args after the "--"

Append the --help flag to see available options.

See configuration for more details on how the node is configured.

Configuring Redis

We have some account settings such as amount_per_minute_limit or packets_per_minute_limit. In order to enable these options, you need to load the redis-cell module as follows. You don't need to load this module unless you use the rate-limit options.

# in your redis config file
# libredis_cell.so file will be found in crates/interledger-store/external
loadmodule /path/to/modules/libredis_cell.so

or you can specify an argument when you start up the redis instance as follows.

redis-server --loadmodule /path/to/modules/libredis_cell.so

Examples

See the examples for demos of Interledger functionality and how to use the Interledger.rs implementation.

Contributing

Contributions are very welcome and if you're interested in getting involved, see CONTRIBUTING.md. We're more than happy to answer questions and mentor you in making your first contributions to Interledger.rs (even if you've never written in Rust before)!

You can’t perform that action at this time.