Interledger is a protocol for payments across different (types of) ledgers. It is inspired by the history, architecture and philosophy of the Internet Protocol.
For those of you familiar with Lightning - it's basically like Lightning across different ledgers, even different types, e.g. from PayPal to a blockchain:
Interledger uses a layered architecture, where the Interledger Protocol acts as an abstraction layer, separating applications from the underlying value transfer systems:
The Interledger Protocol (ILP) is pretty easy to explain:
-
The receiver tells the sender their ILP address and a randomly generated shared secret
{ "destination_account": "us.nexus.justmoon.~recv.example", "shared_secret": "jxqBN72dbmkyZj77weuPTA" }
-
The sender sends some amount on their local ledger to their connector. They attach an ILP packet, which looks something like this:
{ "destination_account": "us.nexus.justmoon.~recv.example", "destination_amount": "0.43", "data": { "token": "AGKvODzCjXlocG1Mqo6NuQ" } }
Your ILP module of choice will take care of most of these details. Most importantly, it'll make sure that the local transfer that it creates has a condition on it that only the receiver can fulfill. That way the sender doesn't have to trust any of the connectors along the way!
We've been working on Interledger for close to three years and on Interledger.js for just over two. We've integrated it into BitTorrent and made real-money payments happen. This year, it's finally time to put all the pieces together and launch a live network.
Your mission, should you choose to accept it, is to either:
- build a value-transfer application using ILP (your app will then work with any ILP ledger!)
- connect your favorite value transfer system (i.e. ledger) to the Interledger via a ledger plugin.
To do this, you will need:
-
Mac OS or Linux command prompt
Windows users: We are looking for contributors to help us make Interledger.js Windows-compatible, so please come talk to us if you're interested in helping. In the meantime, we recommend setting up a Linux prompt using Vagrant:
vagrant init ubuntu/xenial64 vagrant up --provider virtualbox vagrant ssh
-
Node.js 6.9.4
Find the binaries and installation instructions
No.
Maybe, but we recommend enjoying the endless fun that unstable Node.js releases can give outside of the hectic workshop environment.
-
Ability to install native Node.js modules
For this you need:
- On Unix:
python
(v2.7
recommended,v3.x.x
is not supported)make
- A proper C/C++ compiler toolchain, like GCC
- On Mac OS X:
python
(v2.7
recommended,v3.x.x
is not supported) (already installed on Mac OS X)- Xcode
- You also need to install the
Command Line Tools
via Xcode. You can find this under the menuXcode -> Preferences -> Downloads
- This step will install
gcc
and the related toolchain containingmake
- You also need to install the
- On Unix:
-
Internets!
The wifi credentials should be:
Username: CoinDesk (not case sensitive) Password: Construct
If it doesn't work (because we all know wifi is perfect and never fails...), please talk to us right away!
-
Your blockchain of choice (optional)
Interledger can run on top of other blockchains or ledgers. If you want to connect Interledger to an existing blockchain, make sure you have:
- A running instance of said blockchain (preferably locally, but a remote instance will do), e.g. Chain Core, Lightning, Ethereum
- A JavaScript client library for said blockchain (preferred, if there is one), e.g. Chain JS SDK, Web3
-
The Spirit of Adventure!
Rewatch your favorite Indiana Jones movie or create a home-made training montage to get yourself ready. Just don't crash your biplane into the Innovation Hangar, please!