ギャビン、listtransactionsにすべてのアカウントのトランザクションをリストするオプションを付けられないかな?
インターフェースがどうあるべきかわからない。もしかすると:listtransactions <JSON null type> [count]
ただしコマンドラインからは難しいだろう。
インターフェースの良い解決策が思いつかないのが問題だ。""のような特殊ケースとして""かもしれない。ユーザーがアカウント名""を作成できないようにする必要があるだろう。
ああ、listtransactions "" <count> という形は実現可能だ。他のアカウント関連ルーチンも、""を渡された場合は新しい「invalid account name」エラーを返すようにすればいい。
ただし、これには2つの懸念がある:
- listtransactions ”*” はウォレット内のすべてのトランザクションを走査する必要がある(トランザクションは時刻でインデックス化されていない)。大きなウォレットでは遅くなるし、時間とともにさらに遅くなっていく。listtransactions * を高速化するためだけにトランザクションをインデックス化するのは、「使わないオプション機能はコストを発生させるべきではない」という原則に反する。
2.「全アカウントを横断して直近N件のトランザクションを一覧表示する」のユースケースは何だろう? 私が思いつくのは、JSON-RPC経由でbitcoindと通信する代替GUIを開発するケースだけだ。ただ、それをサポートするには同時に他の機能もいくつか追加する必要がある(たとえば、listtransactionsが返すオブジェクトにアカウント情報やビットコインアドレス情報を追加する必要がある……)。