Subject: [Bitcoin-development] Pull request for "getmemorypool" RPC call

From: Forrest Voight <[email-masked]>
Date: Sun, 4 Sep 2011 22:21:24 -0400

(Moving here because forum thread at
https://bitcointalk.org/index.php?topic=39088 didn't yield much
discussion)

Pull request: https://github.com/bitcoin/bitcoin/pull/476
Diff: https://github.com/bitcoin/bitcoin/pull/476/files

This was originally a patch that returned bitcoin's memory pool as
list of transaction hashes and the amount of total fees, but evolved
into a full alternative to the "getwork" RPC call for clients that
create their own generation transactions.

Like getwork, this call calls CreateBlock and returns parts of it for
mining, but instead of generating its own merkle tree, it returns all
the information needed to create a generation transaction in addition
to the full contents of other transactions that should be included.
It, as is, has had some testing done with p2pool - it resulted the
first p2pool generated block with transactions:
http://blockexplorer.com/block/00000000000002436bd2ae60d67d6fc0dce44deba2ad739619a3d364f6283e64

Help text:

getmemorypool [data]
If [data] is not specified, returns data needed to construct a block to work on:
  "version" : block version
  "previousblockhash" : hash of current highest block
  "transactions" : contents of non-coinbase transactions that should
be included in the next block
  "coinbasevalue" : maximum allowable input to coinbase transaction,
including the generation award and transaction fees
  "time" : timestamp appropriate for next block
  "bits" : compressed target of next block
If [data] is specified, tries to solve the block and returns true if
it was successful.

Thank you,
Forrest Voight