shohu / lightning

c-lightning — a Lightning Network implementation in C
Other
0 stars 0 forks source link

Try to use Payment Hub for c0ban #7

Closed shohu closed 6 years ago

shohu commented 6 years ago
  1. Sender → Hub (connect)
  2. Hub → Receiver (connect)
  3. Sender → Hub (fundchannel)
  4. Hub → Receiver (fundchannel)
  5. Receiver create invoice, and get payment_hash
  6. Sender pay bitcoin to Receiver via Hub
  7. Close channel
  8. Withdraw
shohu commented 6 years ago

Sender couldn't find route to receiver at 5

# c0ban-lightning-cli getroute 03f802093a0db33bd12601ed9b039f71ee93664c34a06a3533cf1075b4377e394c 100000000 1 | jq .
{
  "code": -1,
  "message": "Could not find a route"
}

Could not find a route

gossip_control.c

static void json_getroute_reply(struct subd *gossip, const u8 *reply, const int *fds,
                struct command *cmd)
{
    struct json_result *response;
    struct route_hop *hops;
    size_t i;

    fromwire_gossip_getroute_reply(reply, reply, NULL, &hops);

    if (tal_count(hops) == 0) {
        command_fail(cmd, "Could not find a route");
        return;
    }

gen_gossip_wire.c

bool fromwire_gossip_getroute_reply(const tal_t *ctx, const void *p, size_t *plen, struct route_hop **hops)
{
    u16 num_hops;

    const u8 *cursor = p;
    size_t tmp_len;

    if (!plen) {
        tmp_len = tal_count(p);
        plen = &tmp_len;
    }
    if (fromwire_u16(&cursor, plen) != WIRE_GOSSIP_GETROUTE_REPLY)
        return false;
    //3th case num_hops
    num_hops = fromwire_u16(&cursor, plen);
    //2nd case hops
    *hops = num_hops ? tal_arr(ctx, struct route_hop, num_hops) : NULL;
    for (size_t i = 0; i < num_hops; i++)
        fromwire_route_hop(&cursor, plen, *hops + i);
    return cursor != NULL;
}
shohu commented 6 years ago

Check the route ...

void fromwire_route_hop(const u8 **pptr, size_t *max, struct route_hop *entry)
{
    fromwire_pubkey(pptr, max, &entry->nodeid);
    fromwire_short_channel_id(pptr, max, &entry->channel_id);
    entry->amount = fromwire_u32(pptr, max);
    entry->delay = fromwire_u32(pptr, max);
}
shohu commented 6 years ago

I tried to execute below commands... but I got same error...

Node

0 -> sender  10.64.0.11 - lightning-0-858bcc8f55-ws79v  022630fe9d899c6add83b2cb92ffac398f27c1d07361ff063075f305cdb3086fda 1 -> receiver 10.64.0.12 - lightning-1-6744d4dbf4-m6jzc 03f802093a0db33bd12601ed9b039f71ee93664c34a06a3533cf1075b4377e394c 2 -> hub  10.64.1.9 - lightning-2-7585446db5-qcdx7 03d8658881d2b2ef246b3d656f744d1f148705e0089d673574b52258f9609f937e

Preparation

0 or 1 or 2

/usr/local/bin/c0band -conf=/root/c0ban.conf -datadir=/block/c0ban -debug -maxtipage=99999999999 -daemon
nohup c0ban-lightningd --network=c0ban --port 42480 --bitcoin-datadir /block/c0ban --log-level debug &

ref

https://github.com/shohu/lightning/issues/7

Sender → Hub (connect)

2(hub)

# c0ban-lightning-cli getinfo | jq .
{
  "id": "03d8658881d2b2ef246b3d656f744d1f148705e0089d673574b52258f9609f937e",
  "port": 42480,
  "address": [],
  "version": "v0.5.2-2016-11-21-1727-g645e85b-dirty",
  "blockheight": 2470,
  "network": "c0ban"
}

0(sender)

# c0ban-lightning-cli newaddr
{ "address" : "CM7npU3hweDZn2YRpxNthyicBsNKADoJVk" }
# c0ban-cli -conf=/root/c0ban.conf -datadir=/block/c0ban/ sendtoaddress CM7npU3hweDZn2YRpxNthyicBsNKADoJVk 10
584e132756d4d1f9fa65f863423921d397ff8198e36896b18cb9c1ea99ff157e

And wait for a generate block...

# c0ban-lightning-cli listfunds | jq .
{
  "outputs": [
    {
      "txid": "584e132756d4d1f9fa65f863423921d397ff8198e36896b18cb9c1ea99ff157e",
      "output": 1,
      "value": 1000000000
    }
  ]
}

connect

# c0ban-lightning-cli connect 03d8658881d2b2ef246b3d656f744d1f148705e0089d673574b52258f9609f937e 10.64.1.9 42480
{ "id" : "03d8658881d2b2ef246b3d656f744d1f148705e0089d673574b52258f9609f937e" }

Hub → Receiver (connect)

1(receiver)

# c0ban-lightning-cli getinfo | jq .
{
  "id": "03f802093a0db33bd12601ed9b039f71ee93664c34a06a3533cf1075b4377e394c",
  "port": 42480,
  "address": [],
  "version": "v0.5.2-2016-11-21-1727-g645e85b-dirty",
  "blockheight": 2475,
  "network": "c0ban"
}

2(hub)

# c0ban-lightning-cli connect 03f802093a0db33bd12601ed9b039f71ee93664c34a06a3533cf1075b4377e394c 10.64.0.12 42480
{ "id" : "03f802093a0db33bd12601ed9b039f71ee93664c34a06a3533cf1075b4377e394c" }

Sender → Hub (fundchannel)

1(sender)

# c0ban-lightning-cli fundchannel 03d8658881d2b2ef246b3d656f744d1f148705e0089d673574b52258f9609f937e 1000000 | jq .
{
  "tx": "020000000001017e15ff99eac1b98cb19668e39881ff97d321394263f865faf9d1d45627134e5801000000171600147d1d12cf6d35c98ed827476b0aa1d7e3b20cf076ffffffff0240420f0000000000220020cc518cdd2c225fdc1b2f95ea747a78878805bbdc6ba6594249bb189baa6554cbfc508b3b00000000160014580c0c2203f8f8a4c3f1d716b17c2829d40ea2aa024730440220461a963ebc99252c968a95a2cd456c1b557216659d81f10223234ce70dd56db502207bcc4540e0f5ebe6ef3aa9b475622acab3954cdc5f4a27ec3a5fa57ed440313c012102781d000d7a9af8225694700718ab1f665b4b794d2e8c89eb4f5dd838aa83a3e500000000",
  "txid": "2e9c1a2808be48ba90c38fc6b79b82b6c79a77d48fd36208e19dd7fae6bb6c5e"
}

check peers status CHANNELD_AWAITING_LOCKIN -> NORMAL

# c0ban-lightning-cli listpeers | jq .
{
  "peers": [
    {
      "id": "03d8658881d2b2ef246b3d656f744d1f148705e0089d673574b52258f9609f937e",
      "connected": true,
      "netaddr": [
        "10.64.1.9:42480"
      ],
      "channels": [
        {
          "state": "CHANNELD_AWAITING_LOCKIN",
          "owner": "lightning_channeld",
          "funding_txid": "2e9c1a2808be48ba90c38fc6b79b82b6c79a77d48fd36208e19dd7fae6bb6c5e",
          "msatoshi_to_us": 1000000000,
          "msatoshi_total": 1000000000,
          "dust_limit_satoshis": 546,
          "max_htlc_value_in_flight_msat": 18446744073709552000,
          "channel_reserve_satoshis": 0,
          "htlc_minimum_msat": 0,
          "to_self_delay": 144,
          "max_accepted_htlcs": 483
        }
      ]
    }
  ]
}

Wait for a while

# c0ban-lightning-cli listpeers | jq .
{
  "peers": [
    {
      "id": "03d8658881d2b2ef246b3d656f744d1f148705e0089d673574b52258f9609f937e",
      "connected": true,
      "netaddr": [
        "10.64.1.9:42480"
      ],
      "channels": [
        {
          "state": "CHANNELD_NORMAL",
          "owner": "lightning_channeld",
          "short_channel_id": "2476:1:0",
          "funding_txid": "2e9c1a2808be48ba90c38fc6b79b82b6c79a77d48fd36208e19dd7fae6bb6c5e",
          "msatoshi_to_us": 1000000000,
          "msatoshi_total": 1000000000,
          "dust_limit_satoshis": 546,
          "max_htlc_value_in_flight_msat": 18446744073709552000,
          "channel_reserve_satoshis": 0,
          "htlc_minimum_msat": 0,
          "to_self_delay": 144,
          "max_accepted_htlcs": 483
        }
      ]
    }
  ]
}

Hub → Receiver (fundchannel)

2(Hub)

# c0ban-lightning-cli newaddr
{ "address" : "CJjDkhNTGiYRNApFjvkqEYW9yWMPKHe5m1" }

1(Sender)

Send c0ban to new address

# c0ban-cli -conf=/root/c0ban.conf -datadir=/block/c0ban/ sendtoaddress CJjDkhNTGiYRNApFjvkqEYW9yWMPKHe5m1 10
72498f001ac012121081fcf1e59a897a194568ff9b386441bbadaa457c8dc151

2(Hub)

listfunds. (I send c0ban to this address twice...)

# c0ban-lightning-cli listfunds | jq .
{
  "outputs": [
    {
      "txid": "1a5bc55c3d946721d188c86312a51b734fd9ea5d4e2d84407d73e2ff9f7c83b7",
      "output": 0,
      "value": 1000000000
    },
    {
      "txid": "72498f001ac012121081fcf1e59a897a194568ff9b386441bbadaa457c8dc151",
      "output": 1,
      "value": 1000000000
    }
  ]
}

fundchannel

# c0ban-lightning-cli fundchannel 03f802093a0db33bd12601ed9b039f71ee93664c34a06a3533cf1075b4377e394c 1000000 | jq .
{
  "tx": "02000000000101b7837c9fffe2737d40842d4e5dead94f731ba51263c888d12167943d5cc55b1a0000000017160014a39738135fb5e765706bb741a7e2b36e55c1b474ffffffff0240420f0000000000220020e80e51b691524964d296f368f6f4dc83f837e5644ff542197b4c20e33cfe98d3fc508b3b0000000016001499cdfdf7666e4b19a79b29ba4702ad1f74b69bfe02483045022100fc09f8d4ee801dc256ae520f68637deb37eccd18edffead4a90b3ff1db44a21602202c15db31e057a5c3d944abab6628ab3279ba123d41b345037bc994290c468a2b0121026906c5be444e9493af8d0abf39b4e01c95ec71e82ae913c6efbc69126127f51d00000000",
  "txid": "750f07086885fa99dcbc95bb91bd698f02e943a36f349671f680ddecc6a9fb93"
}

listpeers

# c0ban-lightning-cli listpeers | jq .
{
  "peers": [
    {
      "id": "022630fe9d899c6add83b2cb92ffac398f27c1d07361ff063075f305cdb3086fda",
      "connected": true,
      "netaddr": [
        "[::ffff:10.64.0.11]:41082"
      ],
      "channels": [
        {
          "state": "CHANNELD_NORMAL",
          "owner": "lightning_channeld",
          "short_channel_id": "2476:1:0",
          "funding_txid": "2e9c1a2808be48ba90c38fc6b79b82b6c79a77d48fd36208e19dd7fae6bb6c5e",
          "msatoshi_to_us": 0,
          "msatoshi_total": 1000000000,
          "dust_limit_satoshis": 546,
          "max_htlc_value_in_flight_msat": 18446744073709552000,
          "channel_reserve_satoshis": 0,
          "htlc_minimum_msat": 0,
          "to_self_delay": 144,
          "max_accepted_htlcs": 483
        }
      ]
    },
    {
      "id": "03f802093a0db33bd12601ed9b039f71ee93664c34a06a3533cf1075b4377e394c",
      "connected": true,
      "netaddr": [
        "10.64.0.12:42480"
      ],
      "channels": [
        {
          "state": "CHANNELD_NORMAL",
          "owner": "lightning_channeld",
          "short_channel_id": "2493:1:0",
          "funding_txid": "750f07086885fa99dcbc95bb91bd698f02e943a36f349671f680ddecc6a9fb93",
          "msatoshi_to_us": 1000000000,
          "msatoshi_total": 1000000000,
          "dust_limit_satoshis": 546,
          "max_htlc_value_in_flight_msat": 18446744073709552000,
          "channel_reserve_satoshis": 0,
          "htlc_minimum_msat": 0,
          "to_self_delay": 144,
          "max_accepted_htlcs": 483
        }
      ]
    }
  ]
}

Receiver create invoice, and get payment_hash

1(Receiver)

# c0ban-lightning-cli listpeers | jq .
{
  "peers": [
    {
      "id": "03d8658881d2b2ef246b3d656f744d1f148705e0089d673574b52258f9609f937e",
      "connected": true,
      "netaddr": [
        "[::ffff:10.64.1.9]:53318"
      ],
      "channels": [
        {
          "state": "CHANNELD_NORMAL",
          "owner": "lightning_channeld",
          "short_channel_id": "2493:1:0",
          "funding_txid": "750f07086885fa99dcbc95bb91bd698f02e943a36f349671f680ddecc6a9fb93",
          "msatoshi_to_us": 0,
          "msatoshi_total": 1000000000,
          "dust_limit_satoshis": 546,
          "max_htlc_value_in_flight_msat": 18446744073709552000,
          "channel_reserve_satoshis": 0,
          "htlc_minimum_msat": 0,
          "to_self_delay": 144,
          "max_accepted_htlcs": 483
        }
      ]
    }
  ]
}

invoice

# c0ban-lightning-cli invoice 100000000 tx-00001 test | jq .
{
  "payment_hash": "9f4d6b6f63039ec3a08f5ed40eaeefe2ebb27a376eadd5381f02b1ff29440026",
  "expiry_time": 1519189940,
  "expires_at": 1519189940,
  "bolt11": "lncb1m1pdgeudypp5naxkkmmrqw0v8gy0tm2qath0ut4my73hd6ka2wqlq2cl722yqqnqdq8w3jhxaqcqpgxkdrg578jn59l7xs9w5yqqhkupa6kyf4hdcn2s89c8pfs9dydz64rc552mnpmxzj4yrvgxq7grjtyc0d3l7k8puk7e2nfsv3klely0qqnq8ja8"
}
# c0ban-lightning-cli listinvoice | jq .
[
  {
    "label": "tx-00001",
    "payment_hash": "9f4d6b6f63039ec3a08f5ed40eaeefe2ebb27a376eadd5381f02b1ff29440026",
    "msatoshi": 100000000,
    "complete": false,
    "expiry_time": 1519189940,
    "expires_at": 1519189940
  }
]

Sender pay bitcoin to Receiver via Hub

check funds

0(sender)

# c0ban-lightning-cli listfunds | jq .
{
  "outputs": [
    {
      "txid": "2e9c1a2808be48ba90c38fc6b79b82b6c79a77d48fd36208e19dd7fae6bb6c5e",
      "output": 1,
      "value": 998985980
    }
  ]
}

1(receiver)

# c0ban-lightning-cli listfunds | jq .
{
  "outputs": []
}

2(hub)

# c0ban-lightning-cli listfunds | jq .
{
  "outputs": [
    {
      "txid": "72498f001ac012121081fcf1e59a897a194568ff9b386441bbadaa457c8dc151",
      "output": 1,
      "value": 1000000000
    },
    {
      "txid": "750f07086885fa99dcbc95bb91bd698f02e943a36f349671f680ddecc6a9fb93",
      "output": 1,
      "value": 998985980
    }
  ]
}

sendpay

0(sender)

getroute

# c0ban-lightning-cli getroute 03f802093a0db33bd12601ed9b039f71ee93664c34a06a3533cf1075b4377e394c 100000000 1 | jq .
{
  "code": -1,
  "message": "Could not find a route"
}
shohu commented 6 years ago

continue to #8