The goal of this collection of tutorials is to help developers on their way when implementing Interledger-compatible software for the first time. The main programming language used is JavaScript.
During 2017, the Interledger protocol stack is finally starting to settle down and consolidate. These tutorials were written in September of that year, so you will learn the Interledger protocol stack as described in the following Interledger Requests For Comments (IL-RFCs):
- IL-RFC-1, draft 1: Interledger Architecture
- IL-RFC-3, draft 3: Interledger Protocol
- IL-RFC-15, draft 1: Interledger Addresses
- IL-RFC-22, draft 1: Hashed Time Lock Agreements
- IL-RFC-19, draft 1: Glossary
- IL-RFC-16, draft 3: Pre-Shared Key (PSK)
- IL-RFC-23, draft 2: Bilateral Transfer Protocol (BTP)
- rfcs PR #319: Simplified http-ilp flow
The software you will build during these tutorials will be compatible with software written by other developers, on several levels:
- Ledger Plugins will expose the Ledger Plugin Interface (LPI) as described in IL-RFC-4, draft 8.
- Websites that (like in the Streaming Payments tutorial) include request for payment in their HTTP responses will expose the
Pay
header as proposed in interledger/rfcs#307 - Publically accessible websites that (like in the Letter Shop tutorial) print a human-readable payment request, will include an Interledger address in there that is reachable from Amundsen, the bootstrap node for the Interledger testnet-of-testnets. The amount in there will be a stringified positive Integer, and the condition will be encoded using URL-safe base64.
- On-ledger transfers for XRP will use Interledger-over-XRP version 17q3
- On-ledger transfers for ETH will use Interledger-over-ETH version 17q3
- Unless agreed otherwise, nodes will peer with each other using Interledger-over-BTP version 17q4, filling in the
vouch
,ccp
andpaychan
protocols from version 17q3.