Skip to content

Support JSON-RPC 2.0 #2960

@mezrin

Description

@mezrin

Currently Bitcoind supports JSON-RPC 1.0 and couple of 2.0 features

If you look at existing implementations - 61 of 71 works ONLY with 2.0 version.
And in reality there is no Java library that supports 1.0
http://en.wikipedia.org/wiki/JSON-RPC#Implementations
Moreover - wiki page looks outdated, I think that all libs except 2-3 support only 2.0 version.

We need main features from JSON-RPC 2.0 (http://www.simple-is-better.org/rpc/#differences-between-1-0-and-2-0):

  1. Transport independence. Bitcoind should not throw 500 http error on every exception. It's only for crashed code.
    For example, there is no Java JSON-RPC lib that provide sufficient support for hadling 500 http error. So, if you develop Java service that uses Bitcoind - you are not able to work with custom Bitcoind exceptions. (https://github.com/bitcoin/bitcoin/blob/master/src/bitcoinrpc.h)
    Otherwise you either have to write from scratch or modify existing library, what generally is not easy. Moreover, nobody except you will support this lib for JSON-RPC 1.0
  2. Reduced fields. Some libraries throw an error if the fields "error" and "result" are found together - it's true for JSON-RPC 1.0, but wrong for 2.0
  3. named parameters

Full support of 2.0 is preferable.

P.S. In recent days, I'm implementing a Java service that uses Bitcoind - guys, this is hell. The current interface is not suitable for real-world applications that deal with money. I don't understand why version 1.0 instead of 2.0 was choosen...

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions