Use Interledger with Moneyd GUI
Moneyd aims to make it as easy as possible to join the Interledger network. Now, Interledger is even easier to use thanks the the Moneyd GUI.
Moneyd GUI is a frontend for Moneyd (or any Interledger connector), which displays statistics, sends and receives money, and helps with troubleshooting.
In this tutorial, you’ll set up Moneyd GUI in front of your Moneyd instance, and learn how to use it. If you don’t have Moneyd, follow this tutorial.
The tutorial is broken into the following sections:
- Send a Payment
- Receive a Payment
- Visualize your Routes
- Ping a Connector
Prerequisites
- You should be running Moneyd on the testnet. Check out our tutorial on how to set up Moneyd.
- If you already have Moneyd installed, make sure to upgrade to the latest version. Moneyd version 4 or higher is required.
- You should have Node.js v8.10.0 or higher.
- You should be able to install global node modules. If you haven’t already configured this, I would advise that you install nvm.
Moneyd GUI uses a special connector feature called the “admin API” to view routing information and other data. This is turned off by default, so stop Moneyd and restart it with the following command:
moneyd xrp:start --testnet --admin-api-port 7769
Replace xrp:start
with your currency of preference if you aren’t using the XRP uplink.
Install and Start Moneyd GUI
Like our other Interledger tools, Moneyd GUI can be installed through NPM as a global module. It knows how to connect to Moneyd, so it needs no configuration.
This tutorial was written against moneyd-gui@v0.0.5
.
Install and start Moneyd GUI with the following commands:
npm install -g moneyd-gui
moneyd-gui
If it worked, you’ll see the following output:
2018-04-18T22:06:26.037Z moneyd-gui info creating app
2018-04-18T22:06:26.065Z moneyd-gui info listening on :7770
2018-04-18T22:06:26.066Z moneyd-gui info attaching endpoints and connecting to moneyd...
2018-04-18T22:06:26.158Z moneyd-gui info moneyd-gui ready (republic attitude)
Now open localhost on port 7770 to access your Moneyd GUI. You’ve now got a working Moneyd GUI. The rest of the tutorial will be spent explaining its features.
Send a Payment
Go to the “Send” tab in the nav bar, under “Actions.” You’ll be presented with fields for destination and amount. Enter “$spsp.ilp-test.com” into the destination field, and “100” into the amount field.
Click “Send,” and the button will turn green and flash “Success.” You’ve just sent an SPSP payment!
This page imitates the command-line ilp-spsp
tool, described in the SPSP tutorial.
Receive a Payment
Using the “Send” page, enter a destination of http://localhost:7770/pay
and an amount of “100.” Hit send.
The URL you entered is a local SPSP receiver, run by the Moneyd GUI. It isn’t exposed to the internet, but you can use a service like Localtunnel to make it accessible to others.
For more about SPSP, read the SPSP tutorial.
Now navigate to the “Receive” tab, to see the payment you got.
An entry will appear on this table for every payment that goes to your http://localhost:7770/pay
endpoint. This makes it very useful for debugging your Interledger-enabled programs. The table updates in real-time.
Visualize your Routes
One of the purposes of Moneyd GUI is to make it easier to visualize your place in the Interledger network.
You can go to the “Routing” tab under “Information” to see all of your connections. This information can be used to debug any routing issues you might encounter.
Interledger routing really deserves a tutorial of its own, so we’ll save an in-depth explanation of these fields for later.
We’ll look at the friendlier interface provided by the “Network Graph” tab. The “Network Graph” tab uses D3 to draw your routing table as a tree.
Our network might look a little sparse right now, but that’s just because your connector only stores the minimum amount of routing data.
You can see that anything matching your own prefix goes to yourself, while everything matching test
goes out on a different link. Most Moneyd instances will have a routing table that looks like this, because they use one primary uplink into the network.
A connector that is a part of the network’s backbone, however, will have a much busier routing table.
This connector, “Scylla,” maintains direct relationships to many network participants. You can see that for many prefixes in the network, there is a direct link. For other prefixes, it has a multi-hop route through a peer.
Even for “Scylla,” there are a lot of network connections that aren’t stored locally. This is an important feature, because as the network grows it will be impractical to keep every participant in your memory.
Ping a Connector
In addition to visualizing the network, Moneyd GUI provides tools to check network health. One of these is the “Ping” tool, which behaves similarly to its IP counterpart.
If you have the ILP address of a connector, you can send them a ping to check if they’re alive and reachable.
We’ll try pinging “Amundsen,” which is one of the connectors on the testnet.
Navigate to the “Ping” tab under actions and enter test.amundsen.bmp
. Then hit “Ping.”
Try out some other destinations. You can find your own address in the “Plugin Info” tab, and ping it.
If you enter a non-existent destination, see how the Ping tool handles it. Because we’re on the testnet, we can only reach ILP addresses that begin with test
.
Next Steps
If you want to dive deeper into the features of Moneyd GUI, try some of these projects.
- Watch your balance (in the “Peer Balances” tab), and see it settle after it goes below 5000 µXRP (this threshold may vary in amount and units depending on the ledger you’re using).
- Join the live network and try pinging
g.scylla
,g.zero
, andg.africa
. - Run a second instance of Moneyd on a different machine, and try to ping it.
Let us know if you have any feedback, and feel free to ask any questions in our Gitter channel!