This package provides a Julia interface to Bitcoin's JSON-RPC API. Only blockchain and mining RPCs have been implemented for now. They should be enough for performing on-chain analytics, which is the primary motivation here. Remaining ones will be added later if necessary. Pull requests are always welcome!
- Press ']' to enter Pkg prompt
- add BitcoinRPC
You will need to run a full node using either the GUI from
Bitcoin Core or the headless version called bitcoind
.
See instructions here. The daemon can also be
started with a bitcoin.conf
configuration file, which can be generated
here.
The configuration file should have the RPC options enabled, which will allow our package to communicate with the node's RPC server. Setting a username and password is a must, as those credentials will be used for authentication. An example is shown below:
# [rpc]
# Accept command line and JSON-RPC commands.
server=1
# Username and hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. RPC clients connect using rpcuser=<USERNAME>/rpcpassword=<PASSWORD> arguments. You can generate this value at https://jlopp.github.io/bitcoin-core-rpc-auth-generator/. This option can be specified multiple times.
rpcauth=vnegi10:e505cc439280783b65b57835c814fbe2$5cbb256435336a3c95a2545e4d4098d051e2bbd245f3831b6f2a172844aaf8e7
# Listen for JSON-RPC connections on this port
rpcport=8332
# Set the number of threads to service RPC calls
rpcthreads=8
# Set the depth of the work queue to service RPC calls
rpcworkqueue=32
Once the GUI or daemon is started, the software will download a copy of the entire blockchain onto your disk. This means that you will have data starting from the first block (mined in 2009), also known as the genesis block. Default download location is usually at ~/.bitcoin/, but you are free to select another one. Keep in mind that you need ~ 424 GB space (as of 11β04β2022) in case you want the most recent blocks. This is the recommended way to get authentic and reliable data, as it is fetched from a trusted set of peers, which are usually other nodes running on computers around the world. It's wise not to trust any other sources.
Some examples of available functions along with the expected output are shown below. Detailed usage information can also be obtained via REPL help:
- Press '?' to enter the help mode
- Type function name and press enter
auth = UserAuth("rpcuser", "rpcpassword", rpcport)
julia> show_block(auth, blockhash = show_best_block_hash(auth), verbosity = 1)
Dict{String, Any} with 18 entries:
"time" => DateTime("2022-04-30T16:06:39")
"difficulty" => 2.97944e13
"bits" => "17097275"
"previousblockhash" => "00000000000000000002bd10c4a5ed735df0f860be0b1b47ce12a3f5be8ad9f6"
"merkleroot" => "19b3732ebf608a27e6e0c83e351f0a01f9d86016d466ae94190e74ab8b29801e"
"height" => 734262
"confirmations" => 1
"strippedsize" => 856000
"version" => 538968064
"hash" => "00000000000000000005089254e190446199a35441943fb1ad34d46fbaad3271"
"tx" => Any["5e4a16d49ee79083636f24138c9e27d28daad5c607f80427ffdc1a4f4251b3b7", "e068afb1fd759ed967bba4a0c925bf22d13283β¦
"size" => 1425426
"versionHex" => "20200000"
"weight" => 3993426
"mediantime" => DateTime("2022-04-30T14:18:16")
"nTx" => 2826
"chainwork" => "00000000000000000000000000000000000000002cf79dc7911c9663902061d0"
"nonce" => 2198508859
julia> show_chain_txstats(auth, nblocks = 1440, blockhash = show_block_hash(auth, height = 700000))
Dict{String, Any} with 8 entries:
"txcount" => 669566382
"window_tx_count" => 2512428
"time" => DateTime("2021-09-11T04:14:32")
"window_interval" => 821264
"window_final_block_height" => 700000
"window_final_block_hash" => "0000000000000000000590fc0f3eba193a278534220b2b37e9849e1a770ca959"
"window_block_count" => 1440
"txrate" => 3.05922
julia> @time collect_block_stats(auth, 500_000, 505_000)
46.696418 seconds (3.57 M allocations: 204.254 MiB, 0.23% gc time)
5001Γ28 DataFrame
Row β avgfee avgfeerate avgtxsize blockhash height ins maxfee maxfeerate maxtxsize medianfe β―
β Float64 Float64 Int64 String Int64 Int64 Float64 Float64 Int64 Float64 β―
βββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1 β 0.00125685 3.4e-6 388 00000000000000000024fb37364cbf81β¦ 500000 4370 0.0647075 8.84e-6 19850 0.000858 β―
2 β 0.00137451 3.64e-6 403 0000000000000000005c9959b3216f86β¦ 500001 5176 0.236868 2.79e-5 43980 0.000835
3 β 0.00113823 3.41e-6 352 000000000000000000877d93d1412ca6β¦ 500002 5059 0.1 3.141e-5 33674 0.000697
4 β 0.00144839 3.64e-6 414 0000000000000000005467c7a728a3dcβ¦ 500003 5028 0.187487 1.182e-5 34739 0.000895
5 β 0.00150056 2.9e-6 568 0000000000000000005d4da5924742e6β¦ 500004 5303 0.177758 1.908e-5 103927 0.000691 β―
Requests in batch mode are also supported. In fact, this is recommended while performing on-chain analytics over a large number of blocks. See the difference in time (shown below) compared to the above example:
julia> @time collect_block_stats_batch(auth, 500_000, 505_000, batchsize = 1000)
26.004791 seconds (3.38 M allocations: 158.279 MiB, 0.25% gc time)
5001Γ28 DataFrame
Row β avgfee avgfeerate avgtxsize blockhash height ins maxfee maxfeerate maxtxsize medianfe β―
β Float64 Float64 Int64 String Int64 Int64 Float64 Float64 Int64 Float64 β―
βββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1 β 0.00125685 3.4e-6 388 00000000000000000024fb37364cbf81β¦ 500000 4370 0.0647075 8.84e-6 19850 0.000858 β―
2 β 0.00137451 3.64e-6 403 0000000000000000005c9959b3216f86β¦ 500001 5176 0.236868 2.79e-5 43980 0.000835
3 β 0.00113823 3.41e-6 352 000000000000000000877d93d1412ca6β¦ 500002 5059 0.1 3.141e-5 33674 0.000697
4 β 0.00144839 3.64e-6 414 0000000000000000005467c7a728a3dcβ¦ 500003 5028 0.187487 1.182e-5 34739 0.000895
5 β 0.00150056 2.9e-6 568 0000000000000000005d4da5924742e6β¦ 500004 5303 0.177758 1.908e-5 103927 0.000691 β―
julia> collect_network_stats_batch(auth, 600_000, 601_000, batchsize = 100)
1001Γ4 DataFrame
Row β height time network_hash difficulty
β Int64 DateTime Float64 Float64
βββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1 β 600000 2019-10-19T00:04:21 9.59932e19 1.34101e13
2 β 600001 2019-10-19T00:06:53 9.60499e19 1.3418e13
3 β 600002 2019-10-19T00:14:35 9.60657e19 1.34202e13
4 β 600003 2019-10-19T00:39:08 9.59483e19 1.34038e13
5 β 600004 2019-10-19T00:46:56 9.59633e19 1.34059e13
Results for on-chain analytics are cached via the use of Memoization.jl. This will dramatically speed up repeated calls to the same function. See an example comparison below:
Without caching
julia> for i = 1:5
@time collect_block_stats_batch(auth, 500_000, 502_000, batchsize = 100)
end
13.056209 seconds (1.53 M allocations: 73.190 MiB, 0.24% gc time, 17.68% compilation time)
10.712428 seconds (1.46 M allocations: 69.270 MiB, 0.24% gc time)
10.675426 seconds (1.46 M allocations: 69.270 MiB, 0.23% gc time)
10.676681 seconds (1.46 M allocations: 69.275 MiB)
10.616955 seconds (1.46 M allocations: 69.270 MiB, 0.18% gc time)
With caching
julia> for i = 1:5
@time collect_block_stats_batch(auth, 500_000, 502_000, batchsize = 100)
end
14.329239 seconds (1.48 M allocations: 71.675 MiB, 0.08% gc time, 16.33% compilation time)
0.000021 seconds (13 allocations: 784 bytes)
0.000002 seconds (13 allocations: 784 bytes)
0.000002 seconds (13 allocations: 784 bytes)
0.000002 seconds (13 allocations: 784 bytes)
By making use of the provided plotting functions, key blockchain metrics can be visualized right within the REPL. UnicodePlots.jl is being used to generate these plots. Some examples are shown below:
julia> plot_total_fee(auth, 16, batchsize = 500)
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β Daily average total fee in the blockβ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
0.3 ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β ⣦β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’Έβ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’β β’β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β‘β‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’Έβ β Έβ‘β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β‘β‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’Έβ β β‘β
Total fee [BTC] ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β‘β‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β‘β β β’£β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’β β’Έβ β β β β β β β β β β β β β β β β β β β β β β β β β’ β‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’ β‘β β β β β‘β β β’Έβ
ββ β β β β β β β β β β β β β β‘Ύβ‘β β β β β β β β β β β β β β β β’Έβ β β‘β β β β β β β β β β β β β β β β β β β β β β β β β‘β‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’Έβ’£β β β‘΄β£Έβ β β β β
ββ β β β β β β β β β‘β‘β’β β’°β β’±β β β β β β β β β β β β β β β β’Έβ β β’£β β β β β β β β β β β β β β β β β β β β β β β β’Έβ β’±β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β‘β β‘β β‘β β β β β β
ββ’β‘β β β β£β’β β’Έβ β‘β‘Έβ £β β β’Έβ β β β β β β β β β β β β β β β‘β β β β‘β β β β β β β β β β β β β β β β β β β β β β β‘β β Έβ‘β β β β β β β β β β β β β β β β β β β β β β β β‘β β β β β‘β β’±β’°β β β β β β β
ββ’Έβ β ’β ΄β£ β β β’β‘β β’Έβ‘β β β β β‘β β β β β β β β’β β β‘ β‘β β β‘β β β β Έβ‘β‘β’ β €β €β‘β β β β β β β β β β β‘ β’΄β β β β’β β β β’£β‘ β£β β’ β’β β β‘β‘°β’€β β β β β‘β β’ β‘β β’ β’€β β‘β Ήβ‘β β β’°β β β β »β β β β β β β
ββ‘β β β β β β β β β β Έβ β β β β β’β’ β β β’€β ΄β‘β β‘β‘β’°β β’Έβ β’ β β β β β β β β β β β‘β β‘ β β ¦β β’£β β’β‘β β β β‘β’β ¦β β β β β β β β β β’Έβ β’Έβ β β β’β β β‘ β »β‘β‘β’£β β‘Έβ β »β β β’£β’β €β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β’£β’°β β β β β β ’β β β β β β β β β β β β Έβ£β β β β β β’β‘β β β β β £β β β β β β β β β β β β β £β β β β β β’β’β β β β β Έβ‘β‘β β β β β β‘β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’Ύβ β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
0 ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2022-01-25β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β 2022-05-15β
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β Time [days]β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
julia> plot_num_txs(auth, 16, batchsize = 500)
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β Daily number of transactionsβ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
400000 ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’Έβ‘β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’β’€β β β β β β β β β β β β β β β β β β β β β£°β β ⑦β’β β’β‘β β β β β β β β β β β β β β β β β£β‘β β β β β‘ β£β’β β β β β’Έβ’Έβ β β β β β β’β‘β
ββ’β β£β β β‘ β β ±β‘β β β’β β ’β£β β β β’ β ’β‘β’β β β β‘β β β‘β β’°β β β £β£β β β β‘°β’β‘β β β β£ β β ±β‘β β β’β£β£ β β‘β’β β β β β’β β‘Έβ β β ¦β‘β β’ β β β ’β‘β β β’β β β ±β‘β β’Έβ β β β β‘β’β β‘β‘β β‘β β‘β ±β‘ β β β‘β
ββ’Έβ β β‘β β‘β β β β β‘β‘Έβ β β β’±β β β‘β β β β‘β β’ β β β β’£β β‘Έβ β β β Έβ‘β β‘β β β β‘β β‘β β β β Έβ‘β’Έβ β β β β‘β’Έβ β β β β β‘β‘β β β β Έβ‘β’Έβ β β β Έβ‘β β‘β β β β’£β β‘β β β β β’Έβ’Έβ β’±β‘β β’β’ β β β β β β’£β
ββ’Έβ β β ±β£°β β β β β β’±β‘β β β β β’β’Έβ β β β β’£β β‘β β β β Έβ‘β‘β β β β β’β’Έβ β β β β ±β£β β β β β β’£β‘β β β β β ±β£Έβ β β β β β ±β β β β β β’£β‘β β β β β’£β’β β β β β β’¦β β β β β β β β β β β β β β β β β β β’Έβ
Num. txs ββ’Έβ β β β »β β β β β β β β β β β β β β β β β β β’Άβ β β β β β β β β β β β β β β β β β β Ήβ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β »β β β β β β β β β β β β β β β β β β β β β β β β β’Έβ
ββ’Έβ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ’Έβ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
0 ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2022-01-25β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β 2022-05-15β
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β Time [days]β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
julia> plot_network_hashrate(auth, 16, batchsize = 500)
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β Daily average network hashrateβ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2.7e20 ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β‘β β β β β
ββ β β β β β β β β β β β β β β β β β β β β’ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β£Ώβ β β β β
ββ β β β β β β β β β β β β β β β β β β β β’Έβ‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’°β β β β β β β β β β β β β β β β β β β β β β β β£Ώβ β β β β
ββ β β β β β β β β β β β β β β β β β β β β’Έβ‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’Έβ β β β β β β β β β β β β β β β β β β β β β β β£Ώβ β β β β
ββ β β β β β β β β β β β β β β β β β β β β’Έβ‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β’Έβ‘β β β β β β β β β β β β β β β β β β β β β β’°β’Ήβ β β β β
ββ β β β β β β β β β β β β β β β β β β β β’Έβ‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β‘β‘β β β β β β β β β β β β β β β β β β β β β β’Έβ β‘β β β β
ββ β β β β β β β β β β β β β β β β β β β β‘β‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β‘β‘β β β β β β β β β β β β β β β β β β β β β β’Έβ β‘β‘β β β
ββ β β β β β β β β β β β β β β β β β β β β‘β‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β‘β‘β β β β β β β β β β β‘Όβ‘β β β‘°β β β β β β €β Όβ β£·β β β’β
Hashes per second ββ β β β β β β β β β β β β β β β β β β β β‘β‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β‘β’Έβ β β β β β β β β β’β β’β β’ β β β β β β β β β β β β β β
ββ β β β β β β β β β‘β β β β β β β β β β β‘β’±β β β β β β β β β β β β β β β β β β β β β β β β β’ β’£β β β’β β β β β β β β β β β β β β β β β β β β β‘β’Έβ β β β β β β β’β €β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β’°β‘β β β β β β β β β β β‘β’Έβ β β β β β β β β β β β β β β β β β β β β β β β β‘β β‘β β β ±β €β’β €β’β£β’β‘β β β β β β β β β β β β’ β β β£β β ±β‘β’β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β’Έβ‘β β β β β β β β β β’β‘β’Έβ β β β β β β β β β β ⣴β β β β β β β β β β β β’°β β β β β β β β β β β β β’£β β β β’β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β‘β‘β β β β β β β β‘ β β β β’Έβ’ β β ¦β β β β €β‘β’β €β β β‘β β β β β β β β’β‘ β €β β β β β β β β β β β β β β β β’β β‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ’β β β β£β£β €β β β’£β β β β β β β‘β β β β β β β β β β β β β β β β β β‘β β β β β£β‘ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β ’β β β β β β β β’Έβ β β’β£β β β β β β β β β β β β β β β β β β β β β β’β β’β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β’Έβ β’°β β β β β β β β β β β β β β β β β β β β β β β β β‘΄β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β’Έβ’ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββ β β β β β β β β β’Έβ‘β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
1.6e20 ββ β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2022-01-25β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β 2022-05-15β
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β Time [days]β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
julia> plot_block_time_dist(auth, 24, batchsize = 500)
Distribution of BTC block times
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[ 0.0, 10.0) βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ 15461β
[ 10.0, 20.0) ββββββββββββββββββββββββββ 5552 β
[ 20.0, 30.0) ββββββββββ 2038 β
[ 30.0, 40.0) βββββ 722 β
[ 40.0, 50.0) βββ 242 β
Block time [mins] [ 50.0, 60.0) ββ 79 β
[ 60.0, 70.0) ββ 35 β
[ 70.0, 80.0) ββ 11 β
[ 80.0, 90.0) ββ 9 β
[ 90.0, 100.0) ββ 2 β
[100.0, 110.0) ββ 1 β
[110.0, 120.0) ββ 1 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Number of counts
Note that the idea here is to only provide a quick visual insight. If you need to generate proper plots, consider using either one of VegaLite.jl, Plots.jl or Makie.