Github interledger-rs ETH-XRP example failed

I try this tutorial, but look like that it’s not working correct:
ETH part start’s nice, but stops in XRP part.

I get this log in node-bob-settlement-engine-xrpl.log

2020-03-24T17:28:53.547Z settlement-xrp Generated new XRP testnet account: address=rNMGGCvhYbDDUhCVFvAnZ687FTyEPMgTVv secret=saBTrABr3DnYNgQaPJNkqsj75Z3ta
2020-03-24T17:28:55.310Z settlement-core Started settlement engine server
2020-03-24T17:29:04.170Z settlement-xrp Starting settlement: account=8579cdc0-3bf3-4952-b872-359e90a84aa0 xrp=1
2020-03-24T17:29:04.720Z settlement-xrp Failed to settle: Error fetching payment details: account=8579cdc0-3bf3-4952-b872-359e90a84aa0 xrp=1 Error: Request failed with status code 502
    at createError (/usr/local/share/.config/yarn/global/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/usr/local/share/.config/yarn/global/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/usr/local/share/.config/yarn/global/node_modules/axios/lib/adapters/http.js:236:11)
    at IncomingMessage.emit (events.js:323:22)
    at endReadableNT (_stream_readable.js:1204:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  config: {
    url: 'http://localhost:8771/accounts/8579cdc0-3bf3-4952-b872-359e90a84aa0/messages',
    method: 'post',
    data: <Buffer 7b 22 74 79 70 65 22 3a 22 70 61 79 6d 65 6e 74 44 65 74 61 69 6c 73 22 7d>,
    headers: {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/octet-stream',
      'User-Agent': 'axios/0.19.2',
      'Content-Length': 25
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 10000,
    adapter: [Function: httpAdapter],
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    validateStatus: [Function: validateStatus]
  },
  request: ClientRequest {
    _events: [Object: null prototype] {
      socket: [Array],
      abort: [Function],
      aborted: [Function],
      error: [Function],
      timeout: [Array],
      prefinish: [Function: requestOnPrefinish]
    },
    _eventsCount: 6,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    _last: true,
    chunkedEncoding: false,
    shouldKeepAlive: false,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    _contentLength: null,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    socket: Socket {
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'localhost',
      _readableState: [ReadableState],
      readable: true,
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      _writableState: [WritableState],
      writable: false,
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: null,
      _server: null,
      parser: null,
      _httpMessage: [Circular],
      timeout: 10000,
      [Symbol(asyncId)]: 104,
      [Symbol(kHandle)]: [TCP],
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: Timeout {
        _idleTimeout: 10000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 20775,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        [Symbol(refed)]: false,
        [Symbol(asyncId)]: 112,
        [Symbol(triggerId)]: 110
      },
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kBytesRead)]: 0,
      [Symbol(kBytesWritten)]: 0
    },
    connection: Socket {
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'localhost',
      _readableState: [ReadableState],
      readable: true,
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      _writableState: [WritableState],
      writable: false,
      allowHalfOpen: false,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: null,
      _server: null,
      parser: null,
      _httpMessage: [Circular],
      timeout: 10000,
      [Symbol(asyncId)]: 104,
      [Symbol(kHandle)]: [TCP],
      [Symbol(lastWriteQueueSize)]: 0,
      [Symbol(timeout)]: Timeout {
        _idleTimeout: 10000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 20775,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        [Symbol(refed)]: false,
        [Symbol(asyncId)]: 112,
        [Symbol(triggerId)]: 110
      },
      [Symbol(kBuffer)]: null,
      [Symbol(kBufferCb)]: null,
      [Symbol(kBufferGen)]: null,
      [Symbol(kCapture)]: false,
      [Symbol(kBytesRead)]: 0,
      [Symbol(kBytesWritten)]: 0
    },
    _header: 'POST /accounts/8579cdc0-3bf3-4952-b872-359e90a84aa0/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/octet-stream\r\n' +
      'User-Agent: axios/0.19.2\r\n' +
      'Content-Length: 25\r\n' +
      'Host: localhost:8771\r\n' +
      'Connection: close\r\n' +
      '\r\n',
    _onPendingData: [Function: noopPendingOutput],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 80,
      protocol: 'http:',
      options: [Object],
      requests: {},
      sockets: [Object],
      freeSockets: {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      [Symbol(kCapture)]: false
    },
    socketPath: undefined,
    method: 'POST',
    insecureHTTPParser: undefined,
    path: '/accounts/8579cdc0-3bf3-4952-b872-359e90a84aa0/messages',
    _ended: true,
    res: IncomingMessage {
      _readableState: [ReadableState],
      readable: false,
      _events: [Object: null prototype],
      _eventsCount: 3,
      _maxListeners: undefined,
      socket: [Socket],
      connection: [Socket],
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      headers: [Object],
      rawHeaders: [Array],
      trailers: {},
      rawTrailers: [],
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 502,
      statusMessage: 'Bad Gateway',
      client: [Socket],
      _consuming: false,
      _dumped: false,
      req: [Circular],
      responseUrl: 'http://localhost:8771/accounts/8579cdc0-3bf3-4952-b872-359e90a84aa0/messages',
      redirects: [],
      [Symbol(kCapture)]: false
    },
    aborted: false,
    timeoutCb: [Function: emitRequestTimeout],
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    _redirectable: Writable {
      _writableState: [WritableState],
      writable: true,
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      _options: [Object],
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 25,
      _requestBodyBuffers: [],
      _onNativeResponse: [Function],
      _currentRequest: [Circular],
      _currentUrl: 'http://localhost:8771/accounts/8579cdc0-3bf3-4952-b872-359e90a84aa0/messages',
      [Symbol(kCapture)]: false
    },
    [Symbol(kCapture)]: false,
    [Symbol(kNeedDrain)]: false,
    [Symbol(corked)]: 0,
    [Symbol(kOutHeaders)]: [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      'user-agent': [Array],
      'content-length': [Array],
      host: [Array]
    }
  },
  response: {
    status: 502,
    statusText: 'Bad Gateway',
    headers: {
      'content-type': 'application/problem+json',
      'content-length': '233',
      date: 'Tue, 24 Mar 2020 17:29:04 GMT'
    },
    config: {
      url: 'http://localhost:8771/accounts/8579cdc0-3bf3-4952-b872-359e90a84aa0/messages',
      method: 'post',
      data: <Buffer 7b 22 74 79 70 65 22 3a 22 70 61 79 6d 65 6e 74 44 65 74 61 69 6c 73 22 7d>,
      headers: [Object],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 10000,
      adapter: [Function: httpAdapter],
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      validateStatus: [Function: validateStatus]
    },
    request: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: null,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      socket: [Socket],
      connection: [Socket],
      _header: 'POST /accounts/8579cdc0-3bf3-4952-b872-359e90a84aa0/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/octet-stream\r\n' +
        'User-Agent: axios/0.19.2\r\n' +
        'Content-Length: 25\r\n' +
        'Host: localhost:8771\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      insecureHTTPParser: undefined,
      path: '/accounts/8579cdc0-3bf3-4952-b872-359e90a84aa0/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: [Function: emitRequestTimeout],
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      _redirectable: [Writable],
      [Symbol(kCapture)]: false,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    data: {
      type: 'about:blank',
      title: 'Error sending message to peer engine',
      status: 502,
      detail: 'Error sending message to peer settlement engine. Packet rejected with code: F02, message: ',
      datetime: '2020-03-24T20:29:04.719047197+03:00'
    }
  },
  isAxiosError: true,
  toJSON: [Function]
}
2020-03-24T17:29:04.737Z settlement-core Settlement completed: leftover=1 settled=0 amountToSettle=1 account=8579cdc0-3bf3-4952-b872-359e90a84aa0

And account balance after try look’s like this:

$ ilp-cli pay alice --auth alice_password \
>     --amount 500 \
>     --to http://localhost:9770/accounts/charlie/spsp
{"delivered_amount":424495,"destination_asset_code":"XRP","destination_asset_scale":6,"from":"example.alice","in_flight_amount":0,"sent_amount":500,"source_amount":500,"source_asset_code":"ETH","source_asset_scale":6,"to":"example.bob.charlie.tP57c3HETEpqzRQISxYtTfvS"}
$ sleep 2
$ ilp-cli accounts balance alice
{"asset_code":"ETH","balance":-0.0005}
$ ilp-cli accounts balance bob
{"asset_code":"ETH","balance":0.0}
$ ilp-cli --node http://localhost:8770 accounts balance alice --auth hi_bob
{"asset_code":"ETH","balance":0.0}
$ ilp-cli --node http://localhost:8770 accounts balance charlie --auth hi_bob
{"asset_code":"XRP","balance":-0.575505}
$ ilp-cli --node http://localhost:9770 accounts balance bob --auth hi_charlie
{"asset_code":"XRP","balance":0.0}
$ ilp-cli --node http://localhost:9770 accounts balance charlie --auth hi_charlie
{"asset_code":"XRP","balance":0.0}

Hey @Andrii_Spivak!

The issue you’re experiencing is documented here. I believe what’s happening is when the Bob <=> Charlie account is created on Bob’s node, it’s configured so Bob’s XRP settlement engine immediately attempts to settle and prefund Charlie. But because Charlie hasn’t yet created the account on its node, there’s no way for Bob’s XRP settlement engine to send messages to Charlie’s XRP settlement so they can e.g. exchange XRP addresses, which is why the settlement fails.

Two possible solutions:

  1. Try the "Adding Bob's account on Charlie's node (XRP Parent relation)..." step at the bottom before the command for the "Adding Charlie's account on Bob's node (XRP Child relation)..." step – it’s possible that might work
  2. If not, try the new and improved 3-node tutorial which is designed so it doesn’t have this problem – the settlements are all triggered during the STREAM payment itself :slightly_smiling_face:

Let me know if that works or if you have any other issues!

Hello @kincaid again and thank you for quick answer !

About you suggested solutions:
(for this moment I try only local-host tests and now starting with docker)
(and the quick answer is that any combinations in your first suggestion don’t help me)

I try to reproduce first suggestion in different combinations and here is result’s:

I get two different result’s for balance checking after transactions:

result-1 :
(every time all value’s after third number after dot - deffer)

 -VirtualBox:~/interledger-rs$ ilp-cli accounts balance alice
{"asset_code":"ETH","balance":-0.0005}
-VirtualBox:~/interledger-rs$ ilp-cli accounts balance bob
{"asset_code":"ETH","balance":0.0}
-VirtualBox:~/interledger-rs$ ilp-cli --node http://localhost:8770 accounts balance alice --auth hi_bob
{"asset_code":"ETH","balance":0.0}
-VirtualBox:~/interledger-rs$ ilp-cli --node http://localhost:8770 accounts balance charlie --auth hi_bob
{"asset_code":"XRP","balance":-0.577155}
-VirtualBox:~/interledger-rs$ ilp-cli --node http://localhost:9770 accounts balance bob --auth hi_charlie
{"asset_code":"XRP","balance":-0.422845}
-VirtualBox:~/interledger-rs$ ilp-cli --node http://localhost:9770 accounts balance charlie --auth hi_charlie
{"asset_code":"XRP","balance":0.422845}

`
result-2 :

  -VirtualBox:~/interledger-rs$ ilp-cli accounts balance alice
{"asset_code":"ETH","balance":0.0}
-VirtualBox:~/interledger-rs$ ilp-cli accounts balance bob
{"asset_code":"ETH","balance":0.0}
-VirtualBox:~/interledger-rs$ ilp-cli --node http://localhost:8770 accounts balance alice --auth hi_bob
{"asset_code":"ETH","balance":0.0}
-VirtualBox:~/interledger-rs$ ilp-cli --node http://localhost:8770 accounts balance charlie --auth hi_bob
{"asset_code":"XRP","balance":-1.0}
-VirtualBox:~/interledger-rs$ ilp-cli --node http://localhost:9770 accounts balance bob --auth hi_charlie
{"asset_code":"XRP","balance":0.0}
-VirtualBox:~/interledger-rs$ ilp-cli --node http://localhost:9770 accounts balance charlie --auth hi_charlie
 {"asset_code":"XRP","balance":0.0}

(And in different casse 's I get difference ilp _ adress value’s for charlie’s accounts)

A. In case when I create accounts in this steps: alice -> alice -bob(Peer) -> bob- alice (Peer) -> bob- charlie (Child) -> charlie -bob(Parent) -> charlie

I get result’s like result-1

and this log’s :

account-charlie-charlie.log :

{"id":"ef3909e9-a6d9-488d-9845-f3c5f5dd26b3","username":"charlie","ilp_address":"example.bob.charlie.charlie","asset_code":"XRP","asset_scale":6,"max_packet_amount":18446744073709551615,"min_balance":null,"ilp_over_http_url":null,"ilp_over_http_incoming_token":"SECRET","ilp_over_http_outgoing_token":"SECRET","ilp_over_btp_url":null,"ilp_over_btp_incoming_token":"SECRET","ilp_over_btp_outgoing_token":"SECRET","settle_threshold":null,"settle_to":0,"routing_relation":"NonRoutingAccount","round_trip_time":500,"packets_per_minute_limit":null,"amount_per_minute_limit":null,"settlement_engine_url":null}

account-charlie-bob.log :

> {"id":"4a0a3d25-54a4-4fca-8ee5-7511c00ed504","username":"bob","ilp_address":"example.bob","asset_code":"XRP","asset_scale":6,"max_packet_amount":18446744073709551615,"min_balance":-10000000,"ilp_over_http_url":"http://localhost:8770/accounts/charlie/ilp","ilp_over_http_incoming_token":"SECRET","ilp_over_http_outgoing_token":"SECRET","ilp_over_btp_url":null,"ilp_over_btp_incoming_token":"SECRET","ilp_over_btp_outgoing_token":"SECRET","settle_threshold":200000,"settle_to":-1000000,"routing_relation":"Parent","round_trip_time":500,"packets_per_minute_limit":null,"amount_per_minute_limit":null,"settlement_engine_url":"http://localhost:3003/"}

account-bob-charlie.log :

{"id":"1799cde8-97cf-48fa-ad5f-95522e3f4519","username":"charlie","ilp_address":"example.bob.charlie","asset_code":"XRP","asset_scale":6,"max_packet_amount":18446744073709551615,"min_balance":-10000000,"ilp_over_http_url":"http://localhost:9770/accounts/bob/ilp","ilp_over_http_incoming_token":"SECRET","ilp_over_http_outgoing_token":"SECRET","ilp_over_btp_url":null,"ilp_over_btp_incoming_token":"SECRET","ilp_over_btp_outgoing_token":"SECRET","settle_threshold":0,"settle_to":-1000000,"routing_relation":"Child","round_trip_time":500,"packets_per_minute_limit":null,"amount_per_minute_limit":null,"settlement_engine_url":"http://localhost:3002/"}

node-bob-settlement-engine.xrp.log:
https://paste.ubuntu.com/p/B8N7NzJKRd/

B. In case when I create accounts in this steps: alice -> alice -bob(Peer) -> bob- alice (Peer) -> charlie -bob(Parent) -> bob- charlie (Child) -> charlie

I get this result’s like result-2

and this log’s :

account-charlie-charlie.log :

{“id”:“ac4f7aef-d088-42c3-bca1-ff2193cf83bd”,“username”:“charlie”,“ilp_address”:“local.host.charlie”,“asset_code”:“XRP”,“asset_scale”:6,“max_packet_amount”:18446744073709551615,“min_balance”:null,“ilp_over_http_url”:null,“ilp_over_http_incoming_token”:“SECRET”,“ilp_over_http_outgoing_token”:“SECRET”,“ilp_over_btp_url”:null,“ilp_over_btp_incoming_token”:“SECRET”,“ilp_over_btp_outgoing_token”:“SECRET”,“settle_threshold”:null,“settle_to”:0,“routing_relation”:“NonRoutingAccount”,“round_trip_time”:500,“packets_per_minute_limit”:null,“amount_per_minute_limit”:null,“settlement_engine_url”:null}

account-charlie-bob.log :

ilp-cli error: Unexpected response from server: 500 Internal Server Error: {“type”:“about:blank”,“title”:“Internal Server Error”,“status”:500,“detail”:“Error getting ILDCP info: Reject { code: ErrorCode(“F02 (Unreachable)”), message: “”, triggered_by: Some(Address(“local.host”)), data_length: 0 }”,“datetime”:“2020-03-25T17:17:28.912901278+03:00”}

account-bob-charlie.log :

{"id":"d7b670c7-d0d7-439d-9857-523d3b08a3a6","username":"charlie","ilp_address":"example.bob.charlie","asset_code":"XRP","asset_scale":6,"max_packet_amount":18446744073709551615,"min_balance":-10000000,"ilp_over_http_url":"http://localhost:9770/accounts/bob/ilp","ilp_over_http_incoming_token":"SECRET","ilp_over_http_outgoing_token":"SECRET","ilp_over_btp_url":null,"ilp_over_btp_incoming_token":"SECRET","ilp_over_btp_outgoing_token":"SECRET","settle_threshold":0,"settle_to":-1000000,"routing_relation":"Child","round_trip_time":500,"packets_per_minute_limit":null,"amount_per_minute_limit":null,"settlement_engine_url":"http://localhost:3002/"}

node-bob-settlement-engine.xrp.log:
https://paste.ubuntu.com/p/DDn5ckn5X4/

C. In case when I create accounts in this steps: alice -> alice -bob(Peer) -> bob- alice (Peer) -> charlie -> charlie -bob(Parent) -> bob- charlie (Child)

I get result’s and log’s like in a case B

D. In case when I create accounts in this steps: alice -> alice -bob(Peer) -> bob- alice (Peer) -> charlie -> bob- charlie (Child) -> charlie -bob(Parent)

I get result’s and log’s like in a case A

E. In case when I create accounts in this steps: alice -> alice -bob(Peer) -> bob- alice (Peer) -> bob- charlie (Peer) -> charlie -bob(Peer) -> charlie

I get result’s like result-2

and this log’s :

account-charlie-charlie.log :

{“id”:“63744e02-136f-4a7c-88aa-d124761866d1”,“username”:“charlie”,“ilp_address”:“local.host.charlie”,“asset_code”:“XRP”,“asset_scale”:6,“max_packet_amount”:18446744073709551615,“min_balance”:null,“ilp_over_http_url”:null,“ilp_over_http_incoming_token”:“SECRET”,“ilp_over_http_outgoing_token”:“SECRET”,“ilp_over_btp_url”:null,“ilp_over_btp_incoming_token”:“SECRET”,“ilp_over_btp_outgoing_token”:“SECRET”,“settle_threshold”:null,“settle_to”:0,“routing_relation”:“NonRoutingAccount”,“round_trip_time”:500,“packets_per_minute_limit”:null,“amount_per_minute_limit”:null,“settlement_engine_url”:null}

account-charlie-bob.log :

{"id":"d81da48b-7555-4e5d-baaf-ab257fc20efd","username":"bob","ilp_address":"example.bob","asset_code":"XRP","asset_scale":6,"max_packet_amount":18446744073709551615,"min_balance":-10000000,"ilp_over_http_url":"http://localhost:8770/accounts/charlie/ilp","ilp_over_http_incoming_token":"SECRET","ilp_over_http_outgoing_token":"SECRET","ilp_over_btp_url":null,"ilp_over_btp_incoming_token":"SECRET","ilp_over_btp_outgoing_token":"SECRET","settle_threshold":200000,"settle_to":-1000000,"routing_relation":"Peer","round_trip_time":500,"packets_per_minute_limit":null,"amount_per_minute_limit":null,"settlement_engine_url":"http://localhost:3003/"}

account-bob-charlie.log :

{"id":"f34d4bc2-64a4-4d44-8e72-fb52f6c16c9e","username":"charlie","ilp_address":"example.bob.charlie","asset_code":"XRP","asset_scale":6,"max_packet_amount":18446744073709551615,"min_balance":-10000000,"ilp_over_http_url":"http://localhost:9770/accounts/bob/ilp","ilp_over_http_incoming_token":"SECRET","ilp_over_http_outgoing_token":"SECRET","ilp_over_btp_url":null,"ilp_over_btp_incoming_token":"SECRET","ilp_over_btp_outgoing_token":"SECRET","settle_threshold":0,"settle_to":-1000000,"routing_relation":"Peer","round_trip_time":500,"packets_per_minute_limit":null,"amount_per_minute_limit":null,"settlement_engine_url":"http://localhost:3002/"}

node-bob-settlement-engine.xrp.log:
https://paste.ubuntu.com/p/hVHSGhsYKF/

P.S.:

Is any documentation for ilp-cli except help (-h flag) ?

And one more question: I get different values of ilp_adress for charlie in different cases. Why it happens?

Hello again @kincaid
I try “docker-way” , but there is at least one main problem : I have no any logs in ganache and in XRP-testnet after transactions

One more thing that give some progress is changing some parameters for `

ilp-cli --node http://localhost:8770 accounts create charlie \

`from

–settle-threshold 0 \

to

--settle-threshold 500 \

(now I see transaction log in XRP testnet and ganache , but balance after on charlie-bob account is look like wrong)

Actually, look like, that now I need to go deeper in understanding this parameters using your post on github