Re: JSON-RPC メソッドのアイデア:指定された txid より新しいトランザクションをリストする

サトシ・ナカモトの投稿(2010年12月9日 18:08 UTC)

ギャビン、listtransactionsに全アカウントのトランザクションを一覧表示するオプションを追加できないか?

どんなインターフェースにすべきかは分からないが、たとえば: listtransactions [count]

ただしコマンドラインからは難しいだろう。

インターフェースの良い解決策が思いつかないのが問題だ。""のような特殊ケースとして""かもしれない。ユーザーがアカウント名""を作成できないようにする必要があるだろう。

ああ、listtransactions "" という形は実現可能だ。他のアカウント関連ルーチンも、""を渡された場合は新しい「invalid account name」エラーを返すようにすればいい。

ただし、これには 2 つの懸念がある:

  1. listtransactions ”*” はウォレット内のすべてのトランザクションを走査する必要がある(トランザクションは時刻でインデックス化されていない)。大きなウォレットでは遅くなるし、時間とともにさらに遅くなっていく。listtransactions * を高速化するためだけにトランザクションをインデックス化するのは、「使わないオプション機能はコストを発生させるべきではない」という原則に反する。

2.「全アカウントを横断して直近 N 件のトランザクションを一覧表示する」のユースケースは何だ?私が思いつくのは、JSON-RPC 経由で bitcoind と通信する代替 GUI を開発するケースだけだ。ただ、それをサポートするには同時に他の機能もいくつか追加する必要がある(たとえば、listtransactions が返すオブジェクトにアカウント情報やビットコインアドレス情報を追加する必要がある……)。