Giter Club home page Giter Club logo

boltz-client's Introduction

Boltz Client

Boltz Client connects to CLN or LND nodes and allows for fully unattended channel rebalancing using Boltz API.

Documentation

The official documentation is available here.

Resources

boltz-client's People

Contributors

aphex3k avatar armurbalda avatar dependabot[bot] avatar fiksn avatar jackstar12 avatar kilrau avatar lschmierer avatar michael1011 avatar peartobear avatar rkfg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

boltz-client's Issues

Using a reverse swap claim transaction to directly fund a new lightning channel

In principle, it should be possible to use a reverse swap claim transaction to directly fund a new lightning channel. However, the process is non-trivial, since the steps of reverse swapping and channel negotiation would have to be interleaved. Coarsely outlined:

  1. Initiate reverse swap, pay invoice and gather information for constructing the claiming input,
  2. initiate channel negotiation to gather the channel lock-in address,
  3. construct the claim/fund transaction (and potentially re-negotiate the transaction with the peer node),
  4. finish channel negotiation, sign and broadcast the claim/fund transaction.

If the channel negotiation fails, a normal claim transaction has to be created automatically instead.

Apart from the obvious benefit of saving one on-chain transaction, this would also be a privacy benefit for node operators, because the claim/fund transaction would be completely separate from their on-chain wallet and it is not generally visible from the outside who initiated the channel.

Liquid <> Mainchain Swaps

  • Integration of Liquid <> mainchain swaps
  • Integration into autoswap, add threshold (amount and/or mainchain miner fee level) config

Make `autoSend` default

Sending from internal wallets should be default as boltz-client purely serves rebalancing now. Kept it opt-in for first release for backwards compatibility.

Release together with RTL 0.15.1 to avoid breaking things and consider renaming to sth like sendFromInternal.

Could not finalize refund transaction: could not broadcast transaction: min relay fee not met, 0 < 162

#48 was refunded after timeout.
I tried another Channel Creation which failed, too.

However, this time I get

INFO : 2021/07/19 14:37:46 Using fee of 0 sat/vbyte for refund transaction
INFO : 2021/07/19 14:37:46 Constructed refund transaction: 80ec7a7c08e3a2803cf9c92d434aec02b548300ec6d02def0c2cd750623f5ca6
ERROR: 2021/07/19 14:37:46 Could not finalize refund transaction: could not broadcast transaction: min relay fee not met, 0 < 162

boltzcli: autoswap setup should continue after importing wallet

$ boltzcli autoswap setup
? You already have an autoswap configuration. Do you want to reset it? Yes
? Which currency should autoswaps be performed on? LBTC
? Which type of swaps should be executed? both
? Select LBTC wallet Import Existing
? Please type your mnemonic X X X
? Do you want to provide a wallet password to encrypt your wallet, which will be required on startup? No
Successfully imported wallet!
multiple wallets for currency
$

litecoin: satoshi -> litoshi

Change all CLI messages from satoshi to litoshi, e.g. here:

testnet > boltzcli ltc deposit
You will receive your deposit in a lightning channel. If you do not have a channel with sufficient capacity yet, Boltz will open a channel.
The fees for this service are:
  - Service fee: 1.0%
  - Miner fee: 4250 satoshis

Please deposit between 105252 and 1010004250 satoshis into QaFnyCaZE3wwWTr4CDHapyzQ2ybyVRs2KX in the next ~5.0 hours (block height 1739882)

Deposit tx confirmed but getbalance still 0

I'm using a fresh xud-docker mainnet. I tried to deposit btc. The deposit transaction is confirmed (https://www.blockchain.com/btc/address/37L1Dhudf2oj6iR23t4NHbTBHKpMZ2KmzA) but getbalance comamnd still shows btc balance 0.

LND-BTC Info:
┌──────────┬──────────────────────────────────────────────────────────────────────┐
│ Status   │ Ready                                                                │
├──────────┼──────────────────────────────────────────────────────────────────────┤
│ Version  │ 0.11.0-beta commit=v0.11.0-beta                                      │
├──────────┼──────────────────────────────────────────────────────────────────────┤
│ Address  │ 02e8f7767858ca443a70e186685b15ad438f75f081efe9f2a30bc45993bcb88722   │
│          │ @dseqdyqjht4bmggv7ifbzbtviavjawevwqkyclfgpfg2zl57jv5gwhad.onion:9735 │
├──────────┼──────────────────────────────────────────────────────────────────────┤
│ Alias    │ 02e8f7767858ca443a70                                                 │
├──────────┼──────────────────────────────────────────────────────────────────────┤
│ Channels │ Active: 1 | Pending: 0 | Closed: 0                                   │
├──────────┼──────────────────────────────────────────────────────────────────────┤
│ Network  │ bitcoin mainnet                                                      │
└──────────┴──────────────────────────────────────────────────────────────────────┘
General XUD Info
┌───────────────┬──────────────────────────────────────────────────────────────────────┐
│ Status        │ LND-LTC: lnd-LTC has no active channels                              │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Alias         │ IdentifyBusy                                                         │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Node Key      │ 033b647b3bb44aa607948c4d026456191db5e0c63ef7777d2cf863c08613a3ac8c   │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Address       │ 033b647b3bb44aa607948c4d026456191db5e0c63ef7777d2cf863c08613a3ac8c   │
│               │ @r4fotfhcvkwdyco76jaolm4b6wcp7dhbjci5ivghy3nkwwh473u6q4ad.onion:8885 │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Network       │ mainnet                                                              │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Version       │ 1.0.0-beta.8-aa3027a6                                                │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Peers         │ 4                                                                    │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Pairs         │ 4                                                                    │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Own orders    │ 0                                                                    │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Peer orders   │ 4                                                                    │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Pending swaps │ []                                                                   │
└───────────────┴──────────────────────────────────────────────────────────────────────┘

Conf file UX

  • sample-boltz-client.conf should be included in repo not in the readme (I don't even know call the conf file)
  • one might think the conf file is optional and placing the tls.cert in the same directory as the boltzd binary would make things work, but it's not

ERROR: 2021/07/17 13:27:01 Could not find Channel of Channel Creation wuQmvp

I tried creating a channel using boltzcli create channel 1000000 25 and subsequently transacted the specified amount (1005340 sats) to 3J7yf1k5JmgAs83ArzRrLcaacSHBp2ktpj.
https://mempool.space/tx/2ef8bc6939fac6ec283e0c7f42117b1d9d82196c63c6bdb9b115c9722f539286

Although the transaction is confirmed, no channel is opened to my node.

Why is no channel created?
How can I recover my funds using boltz-lnd?

boltzcli swapinfo wuQmvp output:

{
  "swap": {
    "id": "wuQmvp",
    "state": "PENDING",
    "error": "",
    "status": "invoice.pending",
    "privateKey": "<redacted>",
    "preimage": "<redacted>",
    "redeemScript": "a914941c1f600998347865dcd6413e371687c51e3bf98763210350f408f3ac2cf94c98e71b50bbffeb0ddf4812aa47ff32ae5d36a8a4334bae8367037c8d0ab1752102c4e998abcf12a7b0ec0761dcb6f617773d26ee244eb5af39bbef0fc0a44ae97868ac",
    "invoice": "lnbc10m1ps0945tpp5qhfyj83aj80gq8j9r5xpq22vw4vx40pfuv5p5vc4rge4pjlkrqssdpggd5xzmnwv4kzqsmjv4shg6t0dcsxvun0d5syy4zrcqzpgxqyz57csp5z42dzqmtkthtdgkl3alkcuar2dx59zv72p7vet0egnxtgzjwal2s9qyyssqe8ayphakwxge290wnasf3yea3lx67w25cw4wuxfg3qkt9ml9nuz3m63fmxua6p8vdgk0nyqzms0c3fu6nzmrvps0uk7mgy7d4lnxdlsqkwn6mz",
    "lockupAddress": "3J7yf1k5JmgAs83ArzRrLcaacSHBp2ktpj",
    "expectedAmount": "1005340",
    "timeoutBlockHeight": 691580,
    "lockupTransactionId": "",
    "refundTransactionId": ""
  },
  "channelCreation": {
    "swapId": "wuQmvp",
    "status": "none",
    "inboundLiquidity": 25,
    "private": false,
    "fundingTransactionId": "",
    "fundingTransactionVout": 0
  },
  "reverseSwap": null
}

Logs

INFO : 2021/07/17 13:09:31 Creating a public Channel Creation with 25% inbound liquidity for 1000000 satoshis
INFO : 2021/07/17 13:09:31 Verified redeem script and address of Channel Creation wuQmvp
INFO : 2021/07/17 13:09:31 Listening to events of Channel Creation wuQmvp
INFO : 2021/07/17 13:09:31 Subscribing to invoice events of Channel Creation wuQmvp
INFO : 2021/07/17 13:09:31 Connected to LND invoice event stream: 05d2491e3d91de801e451d0c10294c75586abc29e3281a33151a3350cbf61821
INFO : 2021/07/17 13:09:31 Created new Channel Creation wuQmvp: {
  "Id": "wuQmvp",
  "State": "PENDING",
  "Error": "",
  "Status": "invoice.set",
  "PrivateKey": "<redacted>",
  "Preimage": "<redacted>",
  "RedeemScript": "a914941c1f600998347865dcd6413e371687c51e3bf98763210350f408f3ac2cf94c98e71b50bbffeb0ddf4812aa47ff32ae5d36a8a4334bae8367037c8d0ab1752102c4e998abcf12a7b0ec0761dcb6f617773d26ee244eb5af39bbef0fc0a44ae97868ac",
  "Invoice": "lnbc10m1ps0945tpp5qhfyj83aj80gq8j9r5xpq22vw4vx40pfuv5p5vc4rge4pjlkrqssdpggd5xzmnwv4kzqsmjv4shg6t0dcsxvun0d5syy4zrcqzpgxqyz57csp5z42dzqmtkthtdgkl3alkcuar2dx59zv72p7vet0egnxtgzjwal2s9qyyssqe8ayphakwxge290wnasf3yea3lx67w25cw4wuxfg3qkt9ml9nuz3m63fmxua6p8vdgk0nyqzms0c3fu6nzmrvps0uk7mgy7d4lnxdlsqkwn6mz",
  "Address": "3J7yf1k5JmgAs83ArzRrLcaacSHBp2ktpj",
  "ExpectedAmount": 1005340,
  "TimeoutBlockHeight": 691580,
  "LockupTransactionId": "",
  "RefundTransactionId": ""
}
{
  "SwapId": "wuQmvp",
  "Status": "none",
  "InboundLiquidity": 25,
  "Private": false,
  "FundingTransactionId": "",
  "FundingTransactionVout": 0
}
INFO : 2021/07/17 13:14:26 Channel Creation wuQmvp status update: transaction.mempool
INFO : 2021/07/17 13:14:27 Connected to Boltz LND node: 026165850492521f4ac8abd9bd8088123446d126f648ca35e60f88177dc149ceb2@104.196.200.39:9735
INFO : 2021/07/17 13:26:57 Channel Creation wuQmvp status update: transaction.confirmed
INFO : 2021/07/17 13:27:00 Already connected to Boltz LND node: 026165850492521f4ac8abd9bd8088123446d126f648ca35e60f88177dc149ceb2@104.196.200.39:9735
INFO : 2021/07/17 13:27:00 Channel Creation wuQmvp status update: invoice.pending
ERROR: 2021/07/17 13:27:01 Could not find Channel of Channel Creation wuQmvp

Invoice with 0 satoshis generated (channel creation failing as a result)

Must be related to the 0.11 upgrade since before this was working:

Testnet ltc channel creation swap:

INFO : 2020/08/25 16:10:52 [LTC] Initialized logger
INFO : 2020/08/25 16:10:52 [LTC] Opening database: /root/.boltz/litecoin/boltz.db
2020/08/25 16:10:52 WARNING: proto: file "rpc.proto" is already registered
A future release will panic on registration conflicts. See:
https://developers.google.com/protocol-buffers/docs/reference/go/faq#namespace-conflict

INFO : 2020/08/25 16:10:52 [LTC] Database already at latest schema version: 1
INFO : 2020/08/25 16:10:52 [BTC] Initialized logger
INFO : 2020/08/25 16:10:52 [BTC] Opening database: /root/.boltz/bitcoin/boltz.db
INFO : 2020/08/25 16:10:52 [BTC] Database already at latest schema version: 1
INFO : 2020/08/25 16:10:53 [BTC] Parsed chain: BTC testnet3
INFO : 2020/08/25 16:10:53 [BTC] Using default Boltz endpoint for chain testnet3: https://testnet.boltz.exchange/api
INFO : 2020/08/25 16:10:53 [LTC] Parsed chain: LTC testnet4
INFO : 2020/08/25 16:10:53 [LTC] Using default Boltz endpoint for chain testnet4: https://testnet.boltz.exchange/api
2020-08-25 16:10:54,103 INFO success: boltzd-bitcoin entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-08-25 16:10:54,103 INFO success: boltzd-litecoin entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
INFO : 2020/08/25 16:10:54 [LTC] Connected to Boltz LND node: 0278d27617616c156c879dd51d61313795e3782abda2cd7a37d9d24ece6c309064@35.237.24.136:10735
INFO : 2020/08/25 16:10:54 [LTC] Starting nursery
INFO : 2020/08/25 16:10:54 [LTC] Recovering pending Swaps and Channel Creations
INFO : 2020/08/25 16:10:54 [LTC] Connecting to LND block epoch stream
INFO : 2020/08/25 16:10:54 [LTC] Connected to LND block epoch stream
INFO : 2020/08/25 16:10:54 [LTC] Recovering pending Reverse Swaps
INFO : 2020/08/25 16:10:54 [LTC] Starting RPC server on: 0.0.0.0:9003
INFO : 2020/08/25 16:10:54 [BTC] Already connected to Boltz LND node: 03f060953bef5b777dc77e44afa3859d022fc1a77c55138deb232ad7255e869c00@35.237.24.136:9735
INFO : 2020/08/25 16:10:54 [BTC] Starting nursery
INFO : 2020/08/25 16:10:54 [BTC] Recovering pending Swaps and Channel Creations
INFO : 2020/08/25 16:10:54 [BTC] Recovering pending Reverse Swaps
INFO : 2020/08/25 16:10:54 [BTC] Connecting to LND block epoch stream
INFO : 2020/08/25 16:10:54 [BTC] Connected to LND block epoch stream
INFO : 2020/08/25 16:10:54 [BTC] Starting RPC server on: 0.0.0.0:9002
INFO : 2020/08/26 08:04:39 [LTC] Creating Swap with preimage hash: 9dce6f0952c4b2d334d5e3214bc439cc5914a28c7043606e6f47e67959f36e06
INFO : 2020/08/26 08:04:39 [LTC] Verified redeem script and address of Swap piKsE0
INFO : 2020/08/26 08:04:39 [LTC] Listening to events of Swap piKsE0
INFO : 2020/08/26 08:04:39 [LTC] Created new Swap piKsE0: {
  "Id": "piKsE0",
  "Status": "swap.created",
  "PrivateKey": "e80e6aeff7f66eccfe0d15fa3715424d662c418c794be9061492318bed6e952b",
  "Preimage": "366e6359f1b1ded4e81423cb92eb774f3c19f9922d801bbefc7c09bb19afb206",
  "RedeemScript": "a9145cd87e668eb56944b13414f1541ae7a16846980a8763210251fee7424536e69a1801dc5eb2ffb0b6981d6be9cdbf384aa304189341edf71e67034d5718b1752103ec89daddfba0406073c0bc14568aa8b1b0c39e02dd95034e0427581ca6302dd868ac",
  "Invoice": "",
  "Address": "QXqyTjFB9RvKK9Mj3VzjhBjAdorBczycsV",
  "ExpectedAmount": 0,
  "TimeoutBlockHeight": 1595213,
  "LockupTransactionId": "",
  "RefundTransactionId": ""
}
INFO : 2020/08/26 08:05:00 [LTC] Swap piKsE0 status update: transaction.mempool
INFO : 2020/08/26 08:05:01 [LTC] Already connected to Boltz LND node: 0278d27617616c156c879dd51d61313795e3782abda2cd7a37d9d24ece6c309064@35.237.24.136:10735
INFO : 2020/08/26 08:05:01 [LTC] Found output for Swap piKsE0 of 1010004250 satoshis
INFO : 2020/08/26 08:05:01 [LTC] Generated new invoice for Swap piKsE0 for 0 satoshis
ERROR: 2020/08/26 08:05:01 [LTC] Could not set invoice of Swap: 0 is less than minimal of 100000
INFO : 2020/08/26 08:05:30 [LTC] Swap piKsE0 status update: transaction.confirmed
INFO : 2020/08/26 08:05:30 [LTC] Already connected to Boltz LND node: 0278d27617616c156c879dd51d61313795e3782abda2cd7a37d9d24ece6c309064@35.237.24.136:10735
INFO : 2020/08/26 08:05:30 [LTC] Found output for Swap piKsE0 of 1010004250 satoshis
ERROR: 2020/08/26 08:05:30 [LTC] Could not get new invoice for Swap piKsE0: rpc error: code = Unknown desc = invoice with payment hash already exists
INFO : 2020/08/26 08:05:30 [LTC] Swap piKsE0 status update: invoice.pending
INFO : 2020/08/26 08:05:30 [LTC] Swap piKsE0 status update: invoice.failedToPay

rpc error: code = Unknown desc = json: cannot unmarshal number 200000000000 into Go struct field .pairs.limits.maximal of type int

Are there any known causes for the following error?
rpc error: code = Unknown desc = json: cannot unmarshal number 200000000000 into Go struct field .pairs.limits.maximal of type int

I have tried boltzcli and the new RTL web gui integration. Same error.

admin@raspberrypi: ~/.boltz-lnd $ go version
go version go1.13.3 linux/arm
admin@raspberrypi: ~/.boltz-lnd $ boltzcli -v
boltzcli version v1.2.4
admin@raspberrypi: ~/.boltz-lnd $ boltzcli deposit
rpc error: code = Unknown desc = json: cannot unmarshal number 200000000000 into Go struct field .pairs.limits.maximal of type int

boltz.log ( result of $ boltzcli deposit )

INFO : 2021/03/08 14:15:30 [BTC] Initialized logger
INFO : 2021/03/08 14:15:30 [BTC] Parsed config and CLI arguments: {
"DataDir": "/home/admin/.boltz-lnd",
"ConfigFile": "/home/admin/.boltz-lnd/boltz.toml",
"LogFile": "/home/admin/.boltz-lnd/boltz.log",
"LogPrefix": "[BTC] ",
"Boltz": {
"URL": ""
},
"LND": {
"Host": "127.0.0.1",
"Port": 10009,
"Macaroon": "/home/admin/.lnd/data/chain/bitcoin/mainnet/admin.macaroon",
"Certificate": "/home/admin/.lnd/tls.cert",
"ChainParams": null
},
"RPC": {
"Host": "127.0.0.1",
"Port": 9002,
"RestHost": "127.0.0.1",
"RestPort": 9003,
"RestDisabled": false,
"TlsCertPath": "/home/admin/.boltz-lnd/tls.cert",
"TlsKeyPath": "/home/admin/.boltz-lnd/tls.key",
"NoMacaroons": false,
"AdminMacaroonPath": "/home/admin/.boltz-lnd/macaroons/admin.macaroon",
"ReadonlyMacaroonPath": "/home/admin/.boltz-lnd/macaroons/readonly.macaroon"
},
"Database": {
"Path": "/home/admin/.boltz-lnd/boltz.db"
},
"Help": {
"ShowHelp": false,
"ShowVersion": false
}
}
INFO : 2021/03/08 14:15:30 [BTC] Opening database: /home/admin/.boltz-lnd/boltz.db
INFO : 2021/03/08 14:15:30 [BTC] Database already at latest schema version: 2
INFO : 2021/03/08 14:15:31 [BTC] Parsed chain: BTC mainnet
INFO : 2021/03/08 14:15:31 [BTC] Using default Boltz endpoint for chain mainnet: https://boltz.exchange/api
INFO : 2021/03/08 14:15:31 [BTC] Already connected to Boltz LND node: 026165850492521f4ac8abd9bd8088123446d126f648ca35e60f88177dc149ceb2@104.196.200.39:9735
INFO : 2021/03/08 14:15:31 [BTC] Starting nursery
INFO : 2021/03/08 14:15:31 [BTC] Recovering pending Swaps and Channel Creations
INFO : 2021/03/08 14:15:31 [BTC] Connecting to LND block epoch stream
INFO : 2021/03/08 14:15:31 [BTC] Connected to LND block epoch stream
INFO : 2021/03/08 14:15:31 [BTC] Recovering Swap D4gyPz at state: swap.created
INFO : 2021/03/08 14:15:31 [BTC] Swap D4gyPz status did not change
INFO : 2021/03/08 14:15:31 [BTC] Listening to events of Swap D4gyPz
INFO : 2021/03/08 14:15:31 [BTC] Recovering pending Reverse Swaps
INFO : 2021/03/08 14:15:31 [BTC] Loaded TLS certificate and key
INFO : 2021/03/08 14:15:31 [BTC] Enabling Macaroon authentication
INFO : 2021/03/08 14:15:31 [BTC] Starting REST server on: 127.0.0.1:9003
INFO : 2021/03/08 14:15:31 [BTC] Starting RPC server on: 127.0.0.1:9002
INFO : 2021/03/08 14:17:28 [BTC] Creating Swap with preimage hash: 7ac51c102b9df69783868fb21aef00677b8d3ef8d914ec609bfd96dfb7225404
INFO : 2021/03/08 14:17:28 [BTC] Verified redeem script and address of Swap PfRNNG
INFO : 2021/03/08 14:17:28 [BTC] Listening to events of Swap PfRNNG
INFO : 2021/03/08 14:17:28 [BTC] Created new Swap PfRNNG: {
"Id": "PfRNNG",
"State": "PENDING",
"Error": "",
"Status": "swap.created",
"PrivateKey": "95224aedc2a1a3b077b6b08f88541fcb350c4ebbd79c62f0a57a86064fbc68b7",
"Preimage": "9e59c05ebe3d7205e553c4d05a389e0968eeb3b0312b8fc0191419047bf356d7",
"RedeemScript": "a914f835f3b0daee9ff4b8b958191c7df7f21bdba6b087632103cdc3abb5b332dcd2d86feee5fddbd335a7a913b28469c1ceea1f7f325f406ade67034e480ab1752103f8af4c070c902360090d3248a59446e598305b60c7ef8576561b99c24b2fbe8368ac",
"Invoice": "",
"Address": "3KzQRBo78zVtoiCsSXjpfq8bMfgRtevrEJ",
"ExpectedAmount": 0,
"TimeoutBlockHeight": 673870,
"LockupTransactionId": "",
"RefundTransactionId": ""
}
WARN : 2021/03/08 14:17:28 [BTC] RPC request failed: json: cannot unmarshal number 200000000000 into Go struct field .pairs.limits.maximal of type int

boltz.log ( result of clicking 'start swap in' in the RTL web gui )

WARN : 2021/03/08 14:22:45 [BTC] RPC request failed: json: cannot unmarshal number 200000000000 into Go struct field .pairs.limits.maximal of type int

( result of $ boltzcli withdraw )

admin@raspberrypi:~/.boltz-lnd $ boltzcli withdraw 200000
rpc error: code = Unknown desc = json: cannot unmarshal number 200000000000 into Go struct field .pairs.limits.maximal of type int

Cannot connet to boltz from RTL

I'm deployng lnd, boltz and RTL as docker containers, and cannot get RTL to connect to the bolt rest.
Seems that despite setting the correct host name, the tls certificate of the boltz instance would not generate to the host.
I can access boltz only if I set the container to a fixed IP, but I'd like to avoid that.
I'm using the container's names to access each other, and it works to access "lnd" container from both RTL and boltz.
However, I keep getting this error when trying to connect from RTL:
authentication handshake failed: tls: failed to verify certificate: x509: certificate is valid for 8a3de803d473, localhost, unix, unixpacket, bufconn, not boltz

In lnd, I can easily set as many "tlsextradomain" parameters in lnd.conf to generate new tls certificates.
Didn't find any documentation to generate the certificate in boltz, can it be done?

win32 build missing

Hi, there is a reason why there isn't a release x86 windows build to download ?

Insufficient fee on Bitcoin testnet

I'm trying to do a reverse swap on Bitcoin testnet but can't claim the on-chain coins. Here's the log:

INFO : 2021/06/05 11:00:18 Paid invoice of Reverse Swap m1Ipaf with fee of 0.000 satoshis
INFO : 2021/06/05 11:00:20 Reverse Swap m1Ipaf status update: transaction.mempool
INFO : 2021/06/05 11:00:20 Constructing claim transaction for Reverse Swap m1Ipaf with output: 1fd891c868c6781fed76afab2bbe87eaeef864281ae68c5b5d5e1ea6cc8e8638:0
INFO : 2021/06/05 11:00:20 Using fee of 0 sat/vbyte for claim transaction
INFO : 2021/06/05 11:00:20 Constructed claim transaction: ab7394756904bb02d04f2902cb5f4f69586e2f110fb00d18c0303a531283e725
ERROR: 2021/06/05 11:00:20 Could not finalize claim transaction: could not broadcast transaction: min relay fee not met, 0 < 136
INFO : 2021/06/05 11:03:04 Reverse Swap m1Ipaf status update: transaction.confirmed
INFO : 2021/06/05 11:03:04 Constructing claim transaction for Reverse Swap m1Ipaf with output: 1fd891c868c6781fed76afab2bbe87eaeef864281ae68c5b5d5e1ea6cc8e8638:0
INFO : 2021/06/05 11:03:04 Using fee of 0 sat/vbyte for claim transaction
INFO : 2021/06/05 11:03:04 Constructed claim transaction: ab7394756904bb02d04f2902cb5f4f69586e2f110fb00d18c0303a531283e725
ERROR: 2021/06/05 11:03:04 Could not finalize claim transaction: could not broadcast transaction: min relay fee not met, 0 < 136

I don't see a way to specify fee in boltzd and boltzcli.

Errors in the log

After successful recovery.

INFO : 2020/06/25 20:21:47 [BTC] Broadcast refund transaction with Boltz API
ERROR: 2020/06/26 10:48:42 [BTC] Could not listen to events of Swap K2JlPh: could not connect to stream
INFO : 2020/06/26 10:48:42 [BTC] Stopping event listener of Swap K2JlPh
ERROR: 2020/06/26 10:48:42 [BTC] Could not listen to events of Swap K2JlPh: could not connect to stream

mobile support

feature request

support building boltz-lnd as a .framework and .aar using gomobile.
makes it easier for mobile lnd users to use boltz, as it's a instance that the mobile client can communicate with grpc.

Unexpected End of File error while executing channel creation swaps

INFO : 2020/08/26 17:23:03 [BTC] Swap yY1w3y status update: channel.created
INFO : 2020/08/26 17:23:03 [BTC] Status of Swap yY1w3y is channel.created already
ERROR: 2020/08/26 17:24:03 [BTC] Could not listen to events of Swap yY1w3y: Get "https://boltz.exchange/api/streamswapstatus?id=yY1w3y": unexpected EOF
INFO : 2020/08/26 17:24:03 [BTC] Retrying to listen to events of Swap yY1w3y in 15 seconds
INFO : 2020/08/26 17:24:18 [BTC] Reconnected to event stream of SwapyY1w3y
INFO : 2020/08/26 17:24:18 [BTC] Swap yY1w3y status update: channel.created
INFO : 2020/08/26 17:24:18 [BTC] Status of Swap yY1w3y is channel.created already
ERROR: 2020/08/26 17:25:18 [BTC] Could not listen to events of Swap yY1w3y: Get "https://boltz.exchange/api/streamswapstatus?id=yY1w3y": unexpected EOF
INFO : 2020/08/26 17:25:18 [BTC] Retrying to listen to events of Swap yY1w3y in 15 seconds

Possibly caused due to miscommunication with OpenSSL libs. Setting the secure protocol explicitly might solve it.

Autoswap: Amount Backoff

Instead of direct retry logic in a for loop, we could check if the last swap made through a specific channel was a failure. If this is the case we limit the maximum to e.g. 50% of the amount we failed with previously. This would have a similar effect to just retrying in a loop and reducing amount everytime and would not loose its "state" upon restarting the autoswapper

Related: #67

Status shows `down` (even though all fine) & protobuf warning

Two smaller issues:

  • status shows boltzlnd as down, even though it looks fine
  • fix protobuf warning
testnet > boltzcli btc getinfo
WARNING: Package "github.com/golang/protobuf/protoc-gen-go/generator" is deprecated.
	A future release of golang/protobuf will delete this package,
	which has long been excluded from the compatibility promise.

2020/08/26 08:41:28 WARNING: proto: file "rpc.proto" is already registered
A future release will panic on registration conflicts. See:
https://developers.google.com/protocol-buffers/docs/reference/go/faq#namespace-conflict

{
  "symbol": "BTC",
  "lnd_pubkey": "02de021dc84f5682f783130f45cc48e7d60c9e096e7c83dfe3ce4f4a8706ce2230",
  "block_height": 1821048
}
testnet > boltzcli ltc getinfo
WARNING: Package "github.com/golang/protobuf/protoc-gen-go/generator" is deprecated.
	A future release of golang/protobuf will delete this package,
	which has long been excluded from the compatibility promise.

2020/08/26 08:41:32 WARNING: proto: file "rpc.proto" is already registered
A future release will panic on registration conflicts. See:
https://developers.google.com/protocol-buffers/docs/reference/go/faq#namespace-conflict

{
  "symbol": "LTC",
  "lnd_pubkey": "02de021dc84f5682f783130f45cc48e7d60c9e096e7c83dfe3ce4f4a8706ce2230",
  "block_height": 1595114,
  "pending_swaps": [
    "piKsE0"
  ]
}
testnet > status
┌───────────┬────────────────────────────────────────────────┐
│ SERVICE   │ STATUS                                         │
├───────────┼────────────────────────────────────────────────┤
│ bitcoind  │ Ready (connected to external)                  │
├───────────┼────────────────────────────────────────────────┤
│ litecoind │ Ready                                          │
├───────────┼────────────────────────────────────────────────┤
│ geth      │ Ready (connected to external)                  │
├───────────┼────────────────────────────────────────────────┤
│ lndbtc    │ Ready                                          │
├───────────┼────────────────────────────────────────────────┤
│ lndltc    │ Ready                                          │
├───────────┼────────────────────────────────────────────────┤
│ connext   │ Ready                                          │
├───────────┼────────────────────────────────────────────────┤
│ arby      │ Ready                                          │
├───────────┼────────────────────────────────────────────────┤
│ boltz     │ btc down; ltc down                             │
├───────────┼────────────────────────────────────────────────┤
│ webui     │ Ready                                          │
├───────────┼────────────────────────────────────────────────┤
│ xud       │ Waiting for channels                           │
└───────────┴────────────────────────────────────────────────┘

Official Docker Image

I am running my LND node in a Kubernetes cluster.
Docker images for the Boltz LND client would be great!

Would a PR be accepted?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.