Hi folks,
I've hobbyistically been working on a block explorer you can run on top of a node for some time now. Yesterday, I decided it was ready for a public beta release.
https://github.com/JornC/bitcoin-transaction-explorer/releases/tag/beta===
Bitcoin node block explorerSimple and pure block explorer you can run on top of a full node.
This block explorer patches into your Bitcoin Core node's JSON-RPC interface to retrieve transaction and block information.
It runs as a simple web application you can run on any J2EE Web Container (Jetty, Tomcat, etc.), point it toward your node and you're good to go. (Note: it also supports running on top of Blockr's API and maybe some others later on)
This block explorer remains pure to the blockchain, this means it is not dependent on any source of data other than the blockchain. Bitcoin amount values will not be displayed in fiat, transaction or block receive times do not exist.
In this initial release, even addressess are not recognized, nor can a balance be derived for them (without heaps of effort). Addresses may be integral to bitcoin, but the blockchain itself does not have any knowledge of them, they are not included for this reason.
====
HostingThis block explorer is currently being hosted on 3 full nodes:
http://srv1.yogh.io - United Kingdom
http://srv2.yogh.io - The Netherlands
http://srv3.yogh.io - Los Angeles
Anyone who would like to host another instance is welcome and encouraged to do so. Instructions to do this are on the GitHub's README.
====
Example usageThe lookup textbox understands a lot of bitcoin related stuff you stick in it. Raw transactions, raw blocks, tx id's, block height, and some keywords.
Block height:
http://yogh.io/#block:height:0http://yogh.io/#block:height:200000Block last:
http://yogh.io/#block:lastBlock raw:
http://yogh.io/#block:raw:0100000000000000000000000000000000000000000000000000000000000000000000003BA3EDF D7A7B12B27AC72C3E67768F617FC81BC3888A51323A9FB8AA4B1E5E4A29AB5F49FFFF001D1DAC2B 7CTx id:
http://yogh.io/#tx:id:f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16Tx raw:
http://yogh.io/#tx:raw:01000000016d5412cdc802cee86b4f939ed7fc77c158193ce744f1117b5c6b67a4d70c046b01000 0006c493046022100be69797cf5d784412b1258256eb657c191a04893479dfa2ae5c7f2088c7adb e0022100e6b000bd633b286ed1b9bc7682fe753d9fdad61fbe5da2a6e9444198e33a670f012102f 0e17f9afb1dca5ab9058b7021ba9fcbedecf4fac0f1c9e0fd96c4fdc200c1c2ffffffff0245a87e db080000001976a9147d4e6d55e1dffb0df85f509343451d170d14755188ac60e31600000000001 976a9143bc576e6960a9d45201ba5087e39224d0a05a07988ac00000000It'll parse non-existent and network-invalid transactions just fine, so long as the format is correct, like this one with version number #5, which is pretty cool:
http://yogh.io/#tx:raw:0500000001C997A5E56E104102FA209C6A852DD90660A20B2D9C352423EDCE25857FCD370400000 0004847304402204E45E16932B8AF514961A1D3A1A25FDF3F4F7732E9D624C6C61548AB5FB8CD41 0220181522EC8ECA07DE4860A4ACDD12909D831CC56CBBAC4622082221A8768D1D0901FFFFFFFF0 200CA9A3B00000000434104AE1A62FE09C5F51B13905F07F06B99A2F7159B2225F374CD378D7130 2FA28414E7AAB37397F554A7DF5F142C21C1B7303B8A0626F1BADED5C72A704F7E6CD84CAC00286 BEE0000000043410411DB93E1DCDB8A016B49840F8C53BC1EB68A382E97B1482ECAD7B148A6909A 5CB2E0EADDFB84CCF9744464F82E160BFA9B8B64F9D4C03F999B8643F656B412A3AC00000000The mining simulator (keyword 'mine'), defaults to simulation mining on top of the tip of the chain:
http://yogh.io/#mine:lastand (secretly) on top of any block you like:
http://yogh.io/#mine:height:0http://yogh.io/#mine:height:200000This simulator is mostly a gimmick that's fun to look at, but may be useful for educational purposes.
There's also support for script interpretation and execution:
http://yogh.io/#script:id:6b040cd7a4676b5c7b11f144e73c1958c177fcd79e934f6be8ce02c8cd12546d:1:493046022100be69797cf5d784412b1258256eb657c191a04893479dfa2ae5c7f2088c7adbe0022 100e6b000bd633b286ed1b9bc7682fe753d9fdad61fbe5da2a6e9444198e33a670f012102f0e17f 9afb1dca5ab9058b7021ba9fcbedecf4fac0f1c9e0fd96c4fdc200c1c2====
ImplementationThe web application is a GWT (Google Web Toolkit) project that's patched into, essentially, a JSON-RPC proxy for a Bitcoin Core node. The proxy can be configured to reach out to Blockr's API (and others) if you aren't running a node, although it's always nice to use your own node instead.
The proxy will only request the node's getblock, getblockhash, getbestblockhash and getrawtransaction methods. It constructs (if needed) and forwards raw transaction and block data which will be interpreted locally on the client (in the browser).
It'll run in any J2EE web container when built as a .war file.
====
ContributeThis project got some funding a few months ago which allowed me to host it on multiple nodes. Huge thanks to Jameson Lopp for this.
I encourage anyone who would like to contribute to further development of this explorer. The project could do with some testing, code reviews, dots on the i's, lots of feedback, suggestions for new features, help coding, independent hosting, translations. More eyes looking at it would be good.
Here's a way to donate:
http://srv1.yogh.io/#contribute:
====
Let me know what you think!