ElementsProject / ElementsProject/elements
Node crashes when processing partial transaction
- Vorherrschende Sprache
- C++
- Sterne
- 1.2k
- Forks
- 416
- Ø Merge
- 1 T. 23 Std.
- Gemergte PRs (30 T.)
- 15
Beschreibung
I made the node crash while trying to blind the following pset:
```bash
$ e1 walletprocesspsbt cHNldP8BAgQCAAAAAQMEAAAAAAEEAQEBBQEDAfsEAgAAAAABDiAqrJ9c31tcJHnWDjQWJNUfArZMJr1w1h7/S6GIMG31DwEPBAAAAAABEAT/////AAEEFgAUBFTPa7NoO3V+jzsjbmvRlQwcOWoBAwgA4fUFAAAAAAf8BHBzZXQCINMRFPznA5TB+dNUdQG0udNvQgI27GQZkVRWZDSIWs8tAAEEFgAU+a3P0cB6H1+r8pR099KXbz20PbwBAwgAAAAAAAAAAAf8BHBzZXQCICWyUQcOKcoZBDzzPM1zJOLdqwPsxK4LXnfE/A5c9slaB/wEcHNldAYhAv2YM9xdvR/Mxx+ulKcSzcom+JQpzsV/hrxKHexk7BYYB/wEcHNldAgEAAAAAAABBAABAwjoAwAAAAAAAAf8BHBzZXQCICWyUQcOKcoZBDzzPM1zJOLdqwPsxK4LXnfE/A5c9slaAA== false
```
The input of the tx is confidential and its amount is exactly 0.00001, therefore it's spent entirely by the fee out.
The first output of the tx is a non-LBTC unblinded one, therefore i tried to add a dummy LBTC blinded output to balance the tx as `{"el1qqt7esv7utk73lnx8r7hfffcjeh9zd7y5988v2luxh39pmmryastp37ddelguq7slt74l99r57lffwmeaks7mc883qj7565fdg": 0, "blinder_index": 0}` in `createpsbt`.
These are the last logs of the node:
```
2022-04-15T15:39:50Z [default wallet] AddToWallet 02338810e562a4fe99d555e616932f76dbb8301e9e264fcf6e9a3cf56ce5322d new
2022-04-15T15:39:50Z [default wallet] AddToWallet 0ff56d3088a14bff1ed670bd264cb6021fd52416340ed679245c5bdf5c9fac2a update
elementsd: blindpsbt.cpp:554: BlindingStatus BlindPSBT(PartiallySignedTransaction&, std::map >, std::map >): Assertion `rangeresult' failed.
```
Seems like the blinder role fails to create a rangeproof for the dummy output. Am I doing something wrong?
Beitragsleitfaden
Rechercherichtung
Beginne in blindpsbt.cpp etwa bei Zeile 554 und reproduziere den bereitgestellten walletprocesspsbt-Fall mit dem Dummy-blinded output, der über createpsbt erstellt wurde. Verfolge den Blinding-Status und den rangeproof-Fehler für den Output mit dem Wert null. Füge anschließend einen Regressionstest für diese Transaktion hinzu oder führe ihn aus, damit der Node bei der Verarbeitung der partiellen Transaktion nicht mehr abbricht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp
- Bereich
- blockchain
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100