ElementsProject / ElementsProject/elements

Would be nice to have more graceful failure of blinding on very big number of outputs (+ other cases, error descriptions)

オープン
#542 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C++
スター
1.2k
フォーク
416
平均マージ
1日 23時間
マージ済み PR(30日)
15

説明

Right now if transaction with more than 10k outputs is supplied to blindtransaction, the node would crash on assert.

https://github.com/ElementsProject/elements/blob/dd1623af0a4b028175e1078f7ec7a88d78cee8c0/src/blind.cpp#L404

While 10k outputs seem to be non-realistic for blinded transaction, it can happen with software doing payment batching (that was created and tested on non-blinded txs). The developer might be confused why the node crashes. Graceful failure with indication of what is wrong would be nice.

It would also be nice to have more descriptive messages for other failures of blinding, that would greatly improve the debugging experience when working with confidential transactions.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

src/blind.cpp の 404 行目付近にある assertion から始め、10k を超える outputs を含むトランザクションで blindtransaction を再現してください。issue で言及されている他の blinding の失敗経路を追跡し、その後、サイズ超過などの失敗がクラッシュするのではなく、説明的なエラーを返すことを確認してください。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp
領域
blockchain, cryptography
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。