The Handshake Block Clock
Unconfirmed transactions are drawn as spirals around the outside of the clock face. Click on a transaction spiral to open it in a block explorer. Only the outputs of the transaction are shown, colored by covenant type:
REGISTER, UPDATE (green)
TRANSFER, FINALIZE (cyan)
Blocks are represented by their hash, expressed in binary. The colors
in the image are derived from the hash itself. They are labeled
with their height in the blockchain and time since they were received
by the server's hsd node. The most recent block hash (chain tip) is also
copied into the browser tab's "shortcut icon". Blocks "tick" around the
outside of the clock, which represents 60 minutes of recent chain history.
Click a block to open it in a block explorer.
The current block hash and its colors are:
The Urkel Tree
The Urkel Tree is the data structure that stores the Handshake root zone.
It is updated every 36 blocks on mainnet with all the namestate data from
the last 36 blocks worth of transactions. The Urkel Tree root hash is
committed to each block header. In the image, the tree is represented by
a fractal pattern. The size of the tree is derived from the number of blocks
passed in the current tree interval from 0 to 36. The color is derived from
the tree root hash itself, and the fractal "angle" parameter is also derived
from the hash. The current tree root hash, its color and fractal angle are:
Currently on mainnet, every new block generates 2,000 HNS for the miners.
This value reduces by half every 170,000 blocks (about 3.25 years). The
wedge in the lower half of the clock shows this progress by filling up
the half-circle. The colors in the wedge are derived from...
Handshake mining difficulty is adjusted after each block, targeting a
block emission rate of 10 minutes (specifically, 144 blocks / day). The
difficulty target of each block is committed to in each block's header in
a compact format.
Lower numbers are "harder" and indicate an increase in network hashpower.
Because the first byte (ignored by the image) represents an exponent of sorts,
there may be a sudden jump in the colors when it rolls over.
The "bits" value of the last 20 blocks and their colors are:
Source code for this website is hosted on GitHub
Because the data in the visualizer is only derived from block headers, the
server only needs to run hsd in SPV mode, and without a wallet! If I decide
to include mempool data in the clock, I will need to upgrade to a Full Node.