An open API service indexing awesome lists of open source software.

https://github.com/interledger-deprecated/five-bells-pathfind

[DEPRECATED] Source routing for Interledger
https://github.com/interledger-deprecated/five-bells-pathfind

Last synced: 5 months ago
JSON representation

[DEPRECATED] Source routing for Interledger

Awesome Lists containing this project

README

          

# Five Bells Pathfind [![npm][npm-image]][npm-url] [![circle][circle-image]][circle-url] [![coveralls][coveralls-image]][coveralls-url]

[npm-image]: https://img.shields.io/npm/v/five-bells-pathfind.svg?style=flat
[npm-url]: https://npmjs.org/package/five-bells-pathfind
[circle-image]: https://circleci.com/gh/interledgerjs/five-bells-pathfind.svg?style=shield
[circle-url]: https://circleci.com/gh/interledgerjs/five-bells-pathfind
[coveralls-image]: https://coveralls.io/repos/interledgerjs/five-bells-pathfind/badge.svg?branch=master
[coveralls-url]: https://coveralls.io/r/interledgerjs/five-bells-pathfind?branch=master

> A reference implementation of an Interledger pathfinder

You can see the pathfinder in action as part of the [`five-bells-demo`](https://github.com/interledgerjs/five-bells-demo)!

## Algorithm

This library includes a network crawler, graph search algorithm implementation and rate quoting client.

The crawler uses APIs on the [`five-bells-ledger`](https://github.com/interledgerjs/five-bells-ledger) and [`five-bells-trader`](https://github.com/interledgerjs/five-bells-trader) to find other nodes in the network based on a given starting point.

This library uses [Iterative Deepening Depth-First Search](https://en.wikipedia.org/wiki/Iterative_deepening_depth-first_search) to find the shortest paths from the sending ledger to the receiving ledger.

The rate quoting client requests quotes from the traders involved in a given path starting with the trader closest to the recipient and working backwards.

## Browser Support

This library can be compiled with [Babel](https://babeljs.io/) using the command `npm run build`. The compiled files will be in the `babel/` folder.