Skip to content

Instantly share code, notes, and snippets.

@metacoin
Last active August 29, 2015 14:02
Show Gist options
  • Save metacoin/f95f02f24b8ab1350d8a to your computer and use it in GitHub Desktop.
Save metacoin/f95f02f24b8ab1350d8a to your computer and use it in GitHub Desktop.

mempool.info

monitoring, indexing, and archiving the Bitcoin mempool.

Version

0.1.1

Introduction

The Bitcoin mempool exists on every standard Bitcoin node. It holds temporary data for transactions that are waiting to be mined. Accessing the mempool can be achieved on an instance of bitcoind by issuing the following command:

bitcoind getrawmempool

The mempool is an important piece of the overall Bitcoin architecture; more can be learned about the mempool from [Bitcoin.it] 1.

Purpose

Mempool.info provides live data gathered from the Bitcoin mempool. It also archives transactions and blocks that no longer exist on the Bitcoin network. The blockchain itself is an incredible record of accounting and stores most transaction and block hashes, but it doesn't store all interesting data that exists on the Bitcoin network. Double-spend transactions, malleated transactions, transactions with insufficient fees as well as orphaned blocks are sometimes not broadcast to large portions of the network. Additionally, many nodes never learn of their existence because they are neither stored in the blockchain nor relayed to the mempool by vanilla Bitcoin nodes. Mempool.info aims to capture and catalogue these short-lived transactions and blocks. Mempool.info provides this service and information, as well as the source code that powers it, to the public as free software under the [GPL] 2.

Removed Transactions

The Removed Transactions page lists all transactions that were once in the mempool but removed. It also displays all relevant data about that transaction. For example, some transactions in the mempool will eventually be mined into a block that becomes an orphan. Some transactions are dropped from the mempool after a successful double-spend or a malleated transaction is broadcast that has a new txid along with a conflicting output set.

The Mempool.info Digest

Mempool.info uses a Merkle Tree to store hashes of all recorded data in the [Florincoin] 3 Blockchain. The "mempool.info digest" is published once a day at 23:59 UDT. The mempool.info digest is a JSON file that contains all data collected on mempool.info. The hash of this data is published daily to the Florincoin blockchain and is signed (along with the timestamp) by the mempool.info Florincoin, Bitcoin, Litecoin, Dogecoin, and Myriadcoin donation address's private key. The Merkle Tree adds another child node for each day and the root hash is published to the Florincoin blockchain each day.

Blockchain Archival Donations

Archiving data to any blockchain is an effective means of data redundancy. It is also quite costly. The current price of archiving data to the Florincoin blockchain is 1 FLO per 10KB of information. Therefore, storing the entire mempool.info digest in un-hashed form on the Florincoin blockchain would be expensive. mempool.info seeks donations to cover the costs of archiving daily digests. As soon as the Florincoin, Bitcoin, Litecoin, Dogecoin or Myriadcoin donations are recieved more data will automatically be backed-up on the Florincoin blockchain, using these donations to cover the cost of the miners' fee.

Project Donations

If you'd like to contribute to the mempool.info cause, please look into donating some crypto currency to keep us going!

Non-archival donations will be used to provide funding for the development of mempool.info's free software. It will also contribute towards keeping the server, Bitcoin nodes, and API endpoints online.
Non-archival donations can be sent to these addresses:
  • Bitcoin: 1ABCDejfikelfsflksjfielf
  • Florincoin: Flfjdsaklfladf
  • Litecoin: Ljfsklajfkldafjk
  • Dogecoin: Dfjkldsajflkdjflafjkld
  • Myriadcoin: M932i902u3iojrwj
Archival donations will be used to provide funding the mempool.info digest.
Archival donations can be sent to these addresses:
  • Bitcoin: 1ABASKSJFKL
  • Florincoin: Flfjdsaklfladf
  • Litecoin: Ljfsklajfkldafjk
  • Dogecoin: Dfjkldsajflkdjflafjkld
  • Myriadcoin: M932i902u3iojrwj

License

GPL. Hooray, Free Software!

Special Thanks

A special thanks to the team at Tillit, Inc. for providing us with hardware to get this idea off the ground.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment