Skip to content

interledger-deprecated/java-ilp-connector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WE'VE MOVED

This project is now a part of Hyperledger Quilt.

Thanks to all of the core contributors that got this work to this point.

Java Interledger Connector join the chat on gitter circle-ci codecov

A Java foundation for an Interledger Connector, patterned off of the Javascript Connector ilp-connector.

  • v0.2.0-SNAPSHOT Initial commit of Routing interfaces.
  • v0.1.0-SNAPSHOT Initial commit of interfaces and abstract class to construct a Java Connector.

TODO

  • Routing interfaces and abstractions.
  • [] Database-backed routing table.
  • [] Quoting interfaces and abstractions.
  • [] Unit Tests
  • [] Transition to hyperledger quilt project.
  • Update gitter and other badges...

Architecture

This project is the basis for an Interledger Connector, but it is not itself a complete Connector implementation. Instead, this project provides interfaces and abstract implementations that illustrate one way to organize a Connector in Java, including configuration, startup, ledger communication, routing, and quoting.

ILP Plugin Architecture

This project relies on an ILP Plugin architecture where plugins can be developed and installed into this Connector. The primary example of such a plugin is the Ledger Plugin defined in the java-ilp-plugin project. Implementations of LedgerPlugin are intended to be run inside of the Connector's runtime, allowing a Connector to interact with any type of ledger implementation (i.e., XRP Ledger, Bitcoin, Ether, FiveBells, Chain Sequence, etc) using a standard interface.

The following diagram provides a high-level view of this arrangement:

 Events/Messages──────────────┬────────────────Events/Messages
     │                        │                       │
     │                        ▼                       │
     │         ┌────────────────────────────┐         │
     │     ┌───│         Connector          │───┐     │
     │     │   └────────────────────────────┘   │     │
     │     │                  │                 │     │
     │  g.usd.                │              g.jpy.   │
     │     │               g.eur.               │     │
     │     │                  │                 │     │
     │     │                  │                 │     │
     │     ▽                  ▽                 ▽     │
     │  ┌─────┐            ┌─────┐           ┌─────┐  │
     └──│LPI-1│            │LPI-2│           │LPI- │──┘
        └─────┘            └─────┘           └─────┘
           △                  △                 △
           │                  │                 │
           ▽                  ▽                 ▽
      ┌──────────┐       ┌──────────┐      ┌──────────┐
      │ Ledger 1 │       │ Ledger 2 │      │ Ledger 3 │
      └──────────┘       └──────────┘      └──────────┘

Quoting

TBD.

Routing

TBD.

Usage

Requirements

This project uses Maven to manage dependencies and other aspects of the build. To install Maven, follow the instructions at https://maven.apache.org/install.html.

Get the code

git clone https://github.com/interledger/java-ilp-connector
cd java-ilp-connector

Build the Project

To build the project, execute the following command:

$ mvn clean install

Checkstyle

The project uses checkstyle to keep code style consistent. All Checkstyle checks are run by default during the build, but if you would like to run checkstyle checks, use the following command:

$ mvn checkstyle:checkstyle

Step 3: Extend

This project is meant to be extended with your own implementation. The following is a list of open-source implementations of an Interledger Connector, built upon this project:

Contributors

Any contribution is very much appreciated!

gitter

License

This code is released under the Apache 2.0 License. Please see LICENSE for the full text.

About

WE'VE MOVED: This project has moved to Hyperledger Quilt.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages