Bitcoin の JSON-RPC API に一つ小さな変更を提案する:Bitcoin の送信が成功した際にトランザクション ID を返すようにする。
なぜか?アプリケーションのウォレットに出入りするすべてのコインの完全な監査証跡を保持したいからだ。アプリケーションが行うアクションに対応する Bitcoin ネットワーク上の特定のトランザクションを追跡したい。代替案は sendtoaddress を呼んでから listtransactions を呼ぶことだが、2 つの類似したトランザクション(同じ金額を同じアドレスに)がほぼ同時に発生した場合、正しく動作しない。
そこで、最もシンプルなことを提案する:JSON-RPC の sendtoaddress コールを変更して、文字列’sent:‘の後に 256 ビットの 16 進数トランザクション ID を返すようにする。
これは、正確に文字列’sent’を探しているアプリケーションを壊す可能性がある(現在の sendtoaddress の返り値がそれだ)。修正は文字列が’sent’で始まるかどうかを確認するようにアプリを変更するだけだ。
考えたが良くないと思う代替案:
- 古いアプリを壊さないよう新しい API コールにする(sendtoaddress2?ダサい)
- 送信成功時に’sent:…’の代わりにトランザクション ID のみを返す
- より多くの情報を含む配列を返す(例えば [ “tx_id”: ”…”, “fee” : 0.0 ])
コメント/批判は?