References + Resources

References

An introduction to DMT and NATs (written by the Block team) can be found at this arrow-up-rightgitbook.

Figures 1 through 8 in this book have been calculated and rendered with GNU Octavearrow-up-right, an open-source equivalent to the numeric computing platform MATLABarrow-up-right).

The title image and Figure 9 were rendered in Unityarrow-up-right, using heightmaps exported from Octave. Textures were mapped using a script written by Unity user abertrandarrow-up-right.

On-chain data was sourced from the Google BigQuery dataset called bigquery-public-data:bitcoin_blockchain.arrow-up-right

Further information

For updates on DMT and NATs, the Blockrunner’s YouTube channelarrow-up-right does an excellent job.

Heightmaps

The images below are heightmaps, commonly used as data inputs for generating terrain in 3D modelling packages such as Unityarrow-up-right or Blenderarrow-up-right. These are provided as a quick and simple way for developers to test game environments generated by a NAS.

A few notes on these:

  • These images represent the first 824 544 blocks. Each pixel is one block. Pixel shading ('grayness') is determined by mapping the data range of the data set used for the image to a number from 0 to 255 (representing black to white for each pixel).

  • Note that transaction count accuracy is reduced for these maps, as there are only 256 levels available. For the first example (raw transaction count), the lowest input is 1 and the highest is 12239 (block 367853arrow-up-right). This means that transaction counts can only be determined to an accuracy of 12239/256 or 47.85 counts.

  • Block 0arrow-up-right (genesis block) is located at the bottom left of each image, with block count increasing to the right and then up.

  • These have been generated so they wrap seamlessly (on the short side) to allow for creation of 3d NAS such a cylinders and spheres.

Example Heightmaps

Raw transaction count

This represents the transaction count of each block. Note that there are a few blocks which have very high counts, so this skews the distribution of other blocks down.

Averaged transaction count

This heightmap is simply the map above, with a 5x5 block average. It is shown in figure 4.

Halving Islands

This is a heightmap that represents figure 6.

NAT generated landscape

This is a heightmap that represents figure 8.

Last updated