1.0.0 • Published 6 years ago

ilp-local-network v1.0.0

Weekly downloads
2
License
UNLICENSED
Repository
github
Last release
6 years ago

ilp-local-network

This program allows you to specify a topology to create a local ILP network. Payments can then be sent across clients on the network. The purpose of this is to have an easy way to test new ledger plugins on a local network.

                  ILP local testnet topology

                     +-------------------+
                     |                   |
            1 XRP    |       ilsp        |  1 ETH
         +-----------|                   +----------+
         |           +-------------------+          |
         |                                          |
+--------+--------+                        +-----------------+
|                 |                        |                 |
|    xrpTier2     |                        |     ethTier2    |
|                 |                        |                 |
+--------+--------+                        +--------+--------+
         |                                          |
   +-----+-----+                              +-----+-----+
   |           |                              |           |
   |  STREAM   |                              |   STREAM  |
   |  client   |                              |   client  |
   |           |                              |           |
   +-----------+                              +-----------+

The topology above is defined by the options below. Refer to example.js as a starting point.

  {
    ilsp: {
      ilpAddress: 'test.ilsp',
      xrpChildren: await xrpAsymServer(ports[0]),
      ethChildren: await ethAsymServer(ports[1]),
      clientInfo: [0, null] // tier-1 accepts no direct clients, just tier-2 connectors
    },
    xrpTier2: {
      xrpUpstream: await xrpAsymClient(ports[0], 'xrpTier2', 'xrpSecretB'),
      xrpLocal: miniAccounts(ports[2], 'XRP', 6),
      clientInfo: [1, ports[2]]
    },
    ethTier2: {
      ethUpstream: await ethAsymClient(ports[1], 'ethTier2', 'ethSecretC'),
      ethLocal: miniAccounts(ports[3], 'ETH', 9),
      clientInfo: [1, ports[3]]
    },
    ...
  }