Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: mikegogulski on November 21, 2010, 01:04:54 PM



Title: Feature request: Moar RPC!
Post by: mikegogulski on November 21, 2010, 01:04:54 PM
A couple of feature requests generated in the course of writing two Bitcoin payment gateways (for VirtueMart/Joomla! and Ubercart/Drupal):

1: Expand RPC capability to support XML-RPC as well as JSON-RPC (XML-RPC has wider language support from what I've seen).

2: Allow extra parameters to be attached to an address at creation and modified later:
  • $uri: JSON/XML-RPC callback URI
  • $total: Transaction total in BTC
  • $timeout: Transaction expiration interval (sec)
  • $minconf: Transaction minimum confirmations required
  • $cert: PEM certificate for callback target server

Additional options passed in should also cover these use cases:

Fire $uri, including parameters for the current balance and the most recent payment received, when:
  • Any payment is received to the address with $minconf confirmations.
  • Balance on address >= $total with $minconf confirmations.
  • $timeout expires without balance on address >= $total and without at least $minconf confirmations.

With this, bitcoind is ready to become a fully-fledged payment back-end for internet commerce.


Title: Re: Feature request: Moar RPC!
Post by: wumpus on November 21, 2010, 01:10:53 PM
Agreed; a callback of some kind would be really neat. Your suggested method is good.

IMO, supporting XMLRPC has less priority, as this functionality could be supported very simply outside of the core with a XMLRPC<->JSONRPC proxy. Also, XMLRPC is a very complex overdesigned beast and seems to be slowly overtaken by simpler RPC mechanisms.


Title: Re: Feature request: Moar RPC!
Post by: mikegogulski on November 21, 2010, 01:55:23 PM
Thanks, witchspace. I agree too that XMLRPC is a bloated monster. However, I've been working with the big 3 FOSS CMS systems this past couple of weeks and, looking at what comes bundled with them, find:

WordPress: xmlrpc, no jsonrpc
Drupal: xmlrpc, no jsonrpc
Joomla!: xmlrpc, no jsonrpc

This isn't a huge deal since there's a very functional PHP library available (http://phpxmlrpc.sourceforge.net/) which supports JSON-RPC as both client and server.

The request for that feature boils down to "follow what's popular rather than what's better, in order to drive adoption". I really should have made it #2 since the callback capabilities are far more important.