Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

18q1 requirements #18

Open
michielbdejong opened this issue Jan 4, 2018 · 8 comments
Open

18q1 requirements #18

michielbdejong opened this issue Jan 4, 2018 · 8 comments

Comments

@michielbdejong
Copy link
Contributor

Amundsen is the Interledger Testnet Bootstrap Server, you can connect to it if you don't know anybody else who runs a testnet connector. As such, it has a big influence on what protocols and practices we consider current and what we consider deprecated. Its api is versioned quarterly, so this quarter we define what the 18q1 api end-point should offer.

When the Amundsen project was started, the reference stack (i.e. ilp-connector and its plugin collection) didn't support BTP yet (then still called CLP) and it actually never supported the Vouch protocol, so these were implemented from scratch in this repo. The reference stack now caught up with the BTP spec, and we no longer need the Vouch protocol because we will not be doing on-ledger escrow anymore (see https://www.slideshare.net/Interledger/34c3-interledger-presentation-background-streaming-payments-and-implications/57)

Requirements that still stand for 18q1:

  • Run an ilp-connector instance, with the following ilp-plu-pay-cha-fra instances:
    • ilp-plugin-xrp-paychan
    • ilp-plugin-lightning
    • (once it's ready) ilp-plugin-eth-paychan
  • A WebSocket server with automated LetsEncrypt registration/renewal
  • Call plugin.addSocket on the right plugin each time someone connects to the WebSocket server.
  • Run instances of btcd and lnd and configure ilp-plugin-lightning with a filled wallet
  • Configure ilp-plugin-xrp-paychan with a filled wallet
  • Run an instance of geth and configure ilp-plugin-eth-paychan with a filled wallet
  • Provide a landing page with explanation and links to how to use Amundsen

Some may say that running a WebSocket server with automated LetsEncrypt registration/renewal in front of the various plugin instances is not even necessary. An alternative would be to have each plugin run on a different port, and reboot the server each time the LetsEncrypt cert expires. If people prefer that, then we can discuss that in a separate issue.

So Amundsen is like ilp-kit, but stripped down to just the minimal server to wrap ilp-connector in.

Who is interested in contributing to this project? Is anybody already doing a similar project? If so, we should join efforts! :)

@emschwartz
Copy link

Another question I would have is: are there compelling reasons for the testnet bootstrap server to run different software than the reference stack (ilp-connector)? If so, is the ilp-connector missing features that should be added?

@michielbdejong
Copy link
Contributor Author

I think the scope of ilp-connector excludes features like LetsEncrypt certs, so a connector admin will always need some sort of server to embed the ilp-connector module in?

@emschwartz
Copy link

Interesting. If that would be needed for anyone running a connector maybe it's not outside the scope? If it is outside the scope of ilp-connector, are you envisioning making Amundsen include and use the ilp-connector (as opposed to it reimplementing connector functionality with some tweaks)?

Are there other any other things on the list of differences?

@michielbdejong
Copy link
Contributor Author

are you envisioning making Amundsen include and use the ilp-connector

yes

@michielbdejong
Copy link
Contributor Author

Are there other any other things on the list of differences?

See #18 (comment)

@michielbdejong
Copy link
Contributor Author

Amundsen is just a WebSocket server, in front of ilp-connector's ilp-plu-pa-cha-fra instances. :)

@dappelt
Copy link

dappelt commented Jan 4, 2018

  • Call plugin.addSocket on the right plugin each time someone connects to the WebSocket server.

As just discussed during our call, to determine what the "right" plugin for a given user is, you could require a user to explicitly register. That way Amundsen can throw an error if a user is accidentally connecting to the wrong plugin endpoint (e.g. /ltc instead of /xrp)

@michielbdejong
Copy link
Contributor Author

Yes, I created #19 about that

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants