Very Secure

Blockexplorer Web Interface And The Updated TODO List

A prototype of the web interface to my blockexplorer is now available at 1 Feel free to try it out, but do not build anything on top of it, for the api will be swept away from under your feet. Here are the next items on my TODO list:

1. Clean up the code. The core command line tool is nothing short of a mess. I need to proofread, lint, and potentially restructure the code so it starts to resemble something I would sign with my key.

2. Fix address/scriptPubkey confusion. As jfw pointed out in my last article, I was confused about the distinction between bitcoin addresses and the scriptPubkey of an output. This confusion is apparent in my db schema, which has the column name 'address' for where I store what is actually the scriptPubkey. Given that it took some 4 months to index the database, I'm going to temporarily use a duct tape solution by adding a comment that clarifies the misnomer until I find out how to rename the column.

3. Create a better system for pagination. When querying for data about an address through the commands view-address or utxos, I display a limited number of transactions. There is an optional parameter that let's you specify this limit. However the explorer user should also be able to pick at which position he wants to start the limited query - i.e. show results 0..500, 501..1000, etc.

4. Create a strategy for backing up the rather large database (~1/2 TB atm).

5. Create an intelligent argument parser If users provide one argument (an address) they should immediately get the response to view-address with the address as the parameter. Likewise if they provide just the hash of a block, the program should know to return the result of view-block of the block with the given hash.2 This needs to be done at the level of the python script for the web server.

6. Create a web interface that has links to commands. I.e. I should inject anchor links to the responses so you are able to click an address to see the result of view-address for that address. Same for hashes of transactions, block numbers, etc. This means I will also need a separate endpoint to obtain raw output.

7. Formalize response to queries and provide a spec and example python client that interfaces with the web api.

  1. I had some trouble with my web browser displaying this page for security reasons beyond the usual green lock issue. If you have trouble viewing the page please inform me. []
  2. Actually view-block currently only accepts the block height. []

Leave a Reply