JSON-RPC API からの HTTP ステータスコード

Bitcoin が JSON RPC over HTTP の仕様に準拠し、JSON-RPC 1.1/2.0 の仕様で標準化されたエラーコードを使用するようにするパッチをサトシに提出した。

JSON-RPC コールで直接 Bitcoin と通信している場合、新しい HTTP ステータスコードと JSON レスポンスの’error’メンバーの新しいフォーマットを認識するようにコードを変更する必要があるかもしれない。例えば:

変更前:{“id”:“123”, “method”: “nosuchmethod”, “params”: [] } を送信した場合のレスポンス:

HTTP/1.1 500 Internal Server Error
...

{"result":null,"error":"Method not found.","id":"123"}変更後:Code:HTTP/1.1 404 
...

{"result":null,"error":{"code":-32601,"message":"Method not found"},"id":"123"}

コードを簡素化するために、壊れていた’Batch’サポートも削除した。JSON-RPC 2.0 のバッチサポートを正しく動作させていたが、JSON-RPC 2.0 は今のところ Bitcoin がサポートするには先進的すぎるため(JSON-RPC のグルーライブラリでまだサポートしているものがなく、仕様もまだ少し変わっている)、それらの変更を取り消した。