Open nickfarrow opened 2 years ago
from you or user submitted?
From me
Any ideas for how we should approach sender errors? We've got a variety of errors in various apps, but i guess the best we can do is focus on our side of things (noting some errors may not be our fault)
Could make an issue for each sender, to track down what isn't working. Or make this into a super-issue and catalog all sender errors
What does sparrow show in the log?
2022-11-09 16:32:18,899 ERROR Error parsing received PSBT
com.sparrowwallet.drongo.psbt.PSBTParseException: Provided string is not a PSBT
at com.sparrowwallet.drongo/com.sparrowwallet.drongo.psbt.PSBT.fromString(Unknown Source)
at com.sparrowwallet.drongo/com.sparrowwallet.drongo.psbt.PSBT.fromString(Unknown Source)
at com.sparrowwallet.sparrow@1.7.0/com.sparrowwallet.sparrow.payjoin.Payjoin.requestPayjoinPSBT(Unknown Source)
at com.sparrowwallet.sparrow@1.7.0/com.sparrowwallet.sparrow.payjoin.Payjoin$RequestPayjoinPSBTService$1.call(Unknown Source)
at com.sparrowwallet.sparrow@1.7.0/com.sparrowwallet.sparrow.payjoin.Payjoin$RequestPayjoinPSBTService$1.call(Unknown Source)
at javafx.graphics@18/javafx.concurrent.Task$TaskCallable.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at javafx.graphics@18/javafx.concurrent.Service.lambda$executeTask$6(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at javafx.graphics@18/javafx.concurrent.Service.lambda$executeTask$7(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
I think this commit may actually be causing issues: https://github.com/getumbrel/umbrel-apps/pull/229/commits/5a0047096d1da1bc82a3233bdc38e97234cbfa0b From what I can see so far, this puts some auth on which prevents fetching the endpoint.
After removing this proxy auth, i get: 502 (removed because not actually a bug nor sparrow related)
looks like proxy_auth needs to be false or else we can't even connect. Before, we were getting a response. Could you find that PSBT response on the server side?
This 502 was actually OK (panicked because channel size too small) so just looks like we need to get rid of the proxy auth
Sparrow logs:
Tx:
Nolooking logs (umbrel)
server_1 | Proposal PSBT that will be returned: PartiallySignedTransaction {
server_1 | unsigned_tx: Transaction {
server_1 | version: 2,
server_1 | lock_time: 762440,
server_1 | input: [
server_1 | TxIn {
server_1 | previous_output: OutPoint {
server_1 | txid: ea61f7c3529d388b618f24cafb1f50fde9629c41c7c962df1bc222f7e8164110,
server_1 | vout: 2,
server_1 | },
server_1 | script_sig: Script(),
server_1 | sequence: 4294967293,
server_1 | witness: Witness {
server_1 | content: [],
server_1 | witness_elements: 0,
server_1 | last: 0,
server_1 | second_to_last: 0,
server_1 | },
server_1 | },
server_1 | TxIn {
server_1 | previous_output: OutPoint {
server_1 | txid: 7eb3fe3fdc340d854656013e5e96efa44b023a6495f1e907dc54f72d90c510e7,
server_1 | vout: 1,
server_1 | },
server_1 | script_sig: Script(),
server_1 | sequence: 4294967293,
server_1 | witness: Witness {
server_1 | content: [],
server_1 | witness_elements: 0,
server_1 | last: 0,
server_1 | second_to_last: 0,
server_1 | },
server_1 | },
server_1 | TxIn {
server_1 | previous_output: OutPoint {
server_1 | txid: 08b584caafbebd5d9d22b700287005e06d3f3cd8be7742880c61bd7f50df7147,
server_1 | vout: 1,
server_1 | },
server_1 | script_sig: Script(),
server_1 | sequence: 4294967293,
server_1 | witness: Witness {
server_1 | content: [],
server_1 | witness_elements: 0,
server_1 | last: 0,
server_1 | second_to_last: 0,
server_1 | },
server_1 | },
server_1 | ],
server_1 | output: [
server_1 | TxOut {
server_1 | value: 250000,
server_1 | script_pubkey: Script(OP_0 OP_PUSHBYTES_32 fe5505644ba23c41c928319da17053de36e323a598736710d11e4797fce1c842),
server_1 | },
server_1 | TxOut {
server_1 | value: 147652,
server_1 | script_pubkey: Script(OP_0 OP_PUSHBYTES_20 be75cb745181c2a5185a34f26581d64cf8c0256f),
server_1 | },
server_1 | TxOut {
server_1 | value: 150000,
server_1 | script_pubkey: Script(OP_0 OP_PUSHBYTES_32 7c289c66ec08890ece87e370077863f59657c75cc270805d4e062414f9b9b50e),
server_1 | },
server_1 | ],
server_1 | },
server_1 | version: 0,
server_1 | xpub: {},
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | inputs: [
server_1 | Input {
server_1 | non_witness_utxo: None,
server_1 | witness_utxo: None,
server_1 | partial_sigs: {},
server_1 | sighash_type: None,
server_1 | redeem_script: None,
server_1 | witness_script: None,
server_1 | bip32_derivation: {},
server_1 | final_script_sig: None,
server_1 | final_script_witness: None,
server_1 | ripemd160_preimages: {},
server_1 | sha256_preimages: {},
server_1 | hash160_preimages: {},
server_1 | hash256_preimages: {},
server_1 | tap_key_sig: None,
server_1 | tap_script_sigs: {},
server_1 | tap_scripts: {},
server_1 | tap_key_origins: {},
server_1 | tap_internal_key: None,
server_1 | tap_merkle_root: None,
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | },
server_1 | Input {
server_1 | non_witness_utxo: None,
server_1 | witness_utxo: None,
server_1 | partial_sigs: {},
server_1 | sighash_type: None,
server_1 | redeem_script: None,
server_1 | witness_script: None,
server_1 | bip32_derivation: {},
server_1 | final_script_sig: None,
server_1 | final_script_witness: None,
server_1 | ripemd160_preimages: {},
server_1 | sha256_preimages: {},
server_1 | hash160_preimages: {},
server_1 | hash256_preimages: {},
server_1 | tap_key_sig: None,
server_1 | tap_script_sigs: {},
server_1 | tap_scripts: {},
server_1 | tap_key_origins: {},
server_1 | tap_internal_key: None,
server_1 | tap_merkle_root: None,
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | },
server_1 | Input {
server_1 | non_witness_utxo: None,
server_1 | witness_utxo: None,
server_1 | partial_sigs: {},
server_1 | sighash_type: None,
server_1 | redeem_script: None,
server_1 | witness_script: None,
server_1 | bip32_derivation: {},
server_1 | final_script_sig: None,
server_1 | final_script_witness: None,
server_1 | ripemd160_preimages: {},
server_1 | sha256_preimages: {},
server_1 | hash160_preimages: {},
server_1 | hash256_preimages: {},
server_1 | tap_key_sig: None,
server_1 | tap_script_sigs: {},
server_1 | tap_scripts: {},
server_1 | tap_key_origins: {},
server_1 | tap_internal_key: None,
server_1 | tap_merkle_root: None,
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | },
server_1 | ],
server_1 | outputs: [
server_1 | Output {
server_1 | redeem_script: None,
server_1 | witness_script: None,
server_1 | bip32_derivation: {},
server_1 | tap_internal_key: None,
server_1 | tap_tree: None,
server_1 | tap_key_origins: {},
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | },
server_1 | Output {
server_1 | redeem_script: None,
server_1 | witness_script: None,
server_1 | bip32_derivation: {},
server_1 | tap_internal_key: None,
server_1 | tap_tree: None,
server_1 | tap_key_origins: {},
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | },
server_1 | Output {
server_1 | redeem_script: None,
server_1 | witness_script: None,
server_1 | bip32_derivation: {},
server_1 | tap_internal_key: None,
server_1 | tap_tree: None,
server_1 | tap_key_origins: {},
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | },
server_1 | ],
server_1 | }
Running nolooking over tor (not on umbrel), trying to payjoin with sparrow:
2022-11-22 15:29:30,624 ERROR Payjoin receiver error
javax.net.ssl.SSLException: Unsupported or unrecognized SSL message
at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(Unknown Source)
at java.base/sun.security.ssl.SSLSocketInputRecord.decode(Unknown Source)
at java.base/sun.security.ssl.SSLTransport.decode(Unknown Source)
at java.base/sun.security.ssl.SSLSocketImpl.decode(Unknown Source)
at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(Unknown Source)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source)
at com.sparrowwallet.sparrow@1.7.1/com.sparrowwallet.sparrow.payjoin.Payjoin.requestPayjoinPSBT(Unknown Source)
at com.sparrowwallet.sparrow@1.7.1/com.sparrowwallet.sparrow.payjoin.Payjoin$RequestPayjoinPSBTService$1.call(Unknown Source)
at com.sparrowwallet.sparrow@1.7.1/com.sparrowwallet.sparrow.payjoin.Payjoin$RequestPayjoinPSBTService$1.call(Unknown Source)
at javafx.graphics@18/javafx.concurrent.Task$TaskCallable.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at javafx.graphics@18/javafx.concurrent.Service.lambda$executeTask$6(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at javafx.graphics@18/javafx.concurrent.Service.lambda$executeTask$7(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Edit: This happens when you put https://<onion>
it should be http://
Runningnolooking 0.2.1-alpha
on umbrel, trying to payjoin with sparrow:
2022-11-22 16:15:43,240 ERROR Payjoin receiver error
java.io.IOException: Server returned HTTP response code: 400 for URL: http://i6tjwsrns5v5yfwq72dptd2jvqdutpspsnbztbettm76kt64jj3guvad.onion:3000/pj?v=1&additionalfeeoutputindex=1&maxadditionalfeecontribution=163
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at com.sparrowwallet.sparrow@1.7.1/com.sparrowwallet.sparrow.payjoin.Payjoin.requestPayjoinPSBT(Unknown Source)
at com.sparrowwallet.sparrow@1.7.1/com.sparrowwallet.sparrow.payjoin.Payjoin$RequestPayjoinPSBTService$1.call(Unknown Source)
at com.sparrowwallet.sparrow@1.7.1/com.sparrowwallet.sparrow.payjoin.Payjoin$RequestPayjoinPSBTService$1.call(Unknown Source)
at javafx.graphics@18/javafx.concurrent.Task$TaskCallable.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at javafx.graphics@18/javafx.concurrent.Service.lambda$executeTask$6(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at javafx.graphics@18/javafx.concurrent.Service.lambda$executeTask$7(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Umbrel logs:
server_1 | [2022-11-22T05:16:38Z INFO nolooking::scheduler] Proposal PSBT that will be returned: PartiallySignedTransaction {
server_1 | unsigned_tx: Transaction {
server_1 | version: 2,
server_1 | lock_time: 764227,
server_1 | input: [
server_1 | TxIn {
server_1 | previous_output: OutPoint {
server_1 | txid: ebe........................................08d,
server_1 | vout: 0,
server_1 | },
server_1 | script_sig: Script(),
server_1 | sequence: 4294967293,
server_1 | witness: Witness {
server_1 | content: [],
server_1 | witness_elements: 0,
server_1 | last: 0,
server_1 | second_to_last: 0,
server_1 | },
server_1 | },
server_1 | TxIn {
server_1 | previous_output: OutPoint {
server_1 | txid: 52f6........................................81c,
server_1 | vout: 0,
server_1 | },
server_1 | script_sig: Script(),
server_1 | sequence: 4294967293,
server_1 | witness: Witness {
server_1 | content: [],
server_1 | witness_elements: 0,
server_1 | last: 0,
server_1 | second_to_last: 0,
server_1 | },
server_1 | },
server_1 | ],
server_1 | output: [
server_1 | TxOut {
server_1 | value: 200000,
server_1 | script_pubkey: Script(OP_0 OP_PUSHBYTES_32 df7dd6baa0c1837cdc4454a1adbe77db2b828b5c596f063ec70773c0b50f65eb),
server_1 | },
server_1 | TxOut {
server_1 | value: 34005,
server_1 | script_pubkey: Script(OP_0 OP_PUSHBYTES_20 14c62abf9493c7e2416b84ce26f604a255901b9b),
server_1 | },
server_1 | TxOut {
server_1 | value: 30000,
server_1 | script_pubkey: Script(OP_PUSHNUM_1 OP_PUSHBYTES_32 3b9e39194caa093b06fae9351bb1333a584678c57c9cc9223b8fd9903fc8de6b),
server_1 | },
server_1 | ],
server_1 | },
server_1 | version: 0,
server_1 | xpub: {},
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | inputs: [
server_1 | Input {
server_1 | non_witness_utxo: None,
server_1 | witness_utxo: None,
server_1 | partial_sigs: {},
server_1 | sighash_type: None,
server_1 | redeem_script: None,
server_1 | witness_script: None,
server_1 | bip32_derivation: {},
server_1 | final_script_sig: None,
server_1 | final_script_witness: None,
server_1 | ripemd160_preimages: {},
server_1 | sha256_preimages: {},
server_1 | hash160_preimages: {},
server_1 | hash256_preimages: {},
server_1 | tap_key_sig: None,
server_1 | tap_script_sigs: {},
server_1 | tap_scripts: {},
server_1 | tap_key_origins: {},
server_1 | tap_internal_key: None,
server_1 | tap_merkle_root: None,
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | },
server_1 | Input {
server_1 | non_witness_utxo: None,
server_1 | witness_utxo: None,
server_1 | partial_sigs: {},
server_1 | sighash_type: None,
server_1 | redeem_script: None,
server_1 | witness_script: None,
server_1 | bip32_derivation: {},
server_1 | final_script_sig: None,
server_1 | final_script_witness: None,
server_1 | ripemd160_preimages: {},
server_1 | sha256_preimages: {},
server_1 | hash160_preimages: {},
server_1 | hash256_preimages: {},
server_1 | tap_key_sig: None,
server_1 | tap_script_sigs: {},
server_1 | tap_scripts: {},
server_1 | tap_key_origins: {},
server_1 | tap_internal_key: None,
server_1 | tap_merkle_root: None,
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | },
server_1 | ],
server_1 | outputs: [
server_1 | Output {
server_1 | redeem_script: None,
server_1 | witness_script: None,
server_1 | bip32_derivation: {},
server_1 | tap_internal_key: None,
server_1 | tap_tree: None,
server_1 | tap_key_origins: {},
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | },
server_1 | Output {
server_1 | redeem_script: None,
server_1 | witness_script: None,
server_1 | bip32_derivation: {},
server_1 | tap_internal_key: None,
server_1 | tap_tree: None,
server_1 | tap_key_origins: {},
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | },
server_1 | Output {
server_1 | redeem_script: None,
server_1 | witness_script: None,
server_1 | bip32_derivation: {},
server_1 | tap_internal_key: None,
server_1 | tap_tree: None,
server_1 | tap_key_origins: {},
server_1 | proprietary: {},
server_1 | unknown: {},
server_1 | },
server_1 | ],
server_1 | }
Successfully created two payjoins via the umbrel app & sparrow (one with inbound payment, one without) 🌠
@nickfarrow Is this still an issue or did https://github.com/getumbrel/umbrel-apps/pull/261 fix it
I have a feeling this issue has been resolved with the new payjoin crate update. Verification will require manual testing.
Trying to open a single channel with umbrel app via sparrow.
Umbrel currently not displaying anything in logs other than
Listening on: http://0.0.0.0:4444
, will add more info here once I get it.