Skip to content

Interpreting Console Out

Eric Voskuil edited this page Mar 19, 2017 · 39 revisions

Raw Data

The following is logged to the console for blocks that are accepted to the strong chain. For early blocks the console skips lines in order to not slow down the synchronization. However all entries are written to the debug log.

00:46:51.054455 INFO [blockchain] Block [457889] 1473 txs 5480 ins    0 wms  186 vms   34 vµs   1 rµs    3 cµs   18 pµs   11 aµs    1 sµs   22 dµs 1.000000
01:04:27.130809 INFO [blockchain] Block [457890] 2263 txs 4383 ins    0 wms  183 vms   42 vµs   2 rµs    5 cµs   20 pµs   14 aµs    1 sµs   28 dµs 0.999558
01:14:52.545164 INFO [blockchain] Block [457891] 2507 txs 4700 ins    0 wms  208 vms   44 vµs   1 rµs    6 cµs   19 pµs   17 aµs    2 sµs   30 dµs 1.000000
01:22:33.294732 INFO [blockchain] Block [457892] 1997 txs 5194 ins    0 wms  202 vms   39 vµs   2 rµs    5 cµs   19 pµs   12 aµs    1 sµs   25 dµs 1.000000
01:31:05.938816 INFO [blockchain] Block [457893] 1766 txs 4999 ins    0 wms  185 vms   37 vµs   2 rµs    4 cµs   18 pµs   12 aµs    1 sµs   25 dµs 0.999433

Summary Data

This information can be converted to a table and averaged as follows.

block txs ins wms vms vµs rµs cµs pµs aµs sµs dµs efficiency
457889 1473 5480 0 186 34 1 3 18 11 1 22 1.0000000
457890 2263 4383 0 183 42 2 5 20 14 1 28 0.9995580
457891 2507 4700 0 208 44 1 6 19 17 2 30 1.0000000
457892 1997 5194 0 202 39 2 5 19 12 1 25 1.0000000
457893 1766 4999 0 185 37 2 4 18 12 1 25 0.9994330
averages 2001 4951 0 193 39 2 5 19 13 1 26 0.9997982

Scenario

The block byte sizes are not logged, but each of these is a "full" block. Full validation was performed using Bitcoin Server (BS). The server was connected to 16 peers with full transaction relay. Compact blocks is not yet implemented. Full server indexing and storage of all payment addresses and potential stealth payments was enabled. Write flushing was disabled. The server contained an internal SSD, 64 cores, 256 GB RAM and a 300 Mb Internet connection.

Interpretation

block

The height of the block on the strong chain.

txs

The number of transactions in the block, including the coinbase.

ins

The number of inputs in the block, including the coinbase.

wms

The time (in milliseconds) the block waited to begin validation, after having been downloaded and deserialized. Delays are primarily the result of preceding block or transaction validation, as full validation is ordered. This is typically zero unless blocks are very closely spaced.

vms

The total time (in milliseconds) to validate the block. This includes all time from the beginning of deserialization through completion of script checks with the exception of wait time (wms).

vµs

The total time (in microseconds) to validate the block, divided by the number of inputs, or vms * 1000 ÷ ins.

rµs

The total time (in microseconds) to deserialize the block, divided by the number of inputs.

cµs

The total time (in microseconds) to perform context-free checks (block check), divided by the number of inputs.

pµs

The total time (in microseconds) to populate data necessary for contextual checks, divided by the number of inputs.

aµs

The total time (in microseconds) to perform contextual checks excluding script execution (block accept), divided by the number of inputs.

sµs

The total time (in microseconds) to perform script validation (block connect), divided by the number of inputs.

dµs

The total time (in microseconds) to deposit the block and indexing into the store following successful validation, divided by the number of inputs. If write flushing is enabled that time is included.

efficiency

The fraction of non-coinbase transactions that were found in the transaction pool. This value will increase toward 100% as the node collects unconfirmed transactions from the network. Script validation cost is nearly eliminated when efficiency is close to 100%. Transactions are never discarded, so this may be non-zero upon restart. Increasing node.minimum_byte_fee_satoshis decreases efficiency. Efficiency may be low if transactions are being missed because there are too few peers. Reduced efficiency will also occur when transactions are mined before having been broadcast to the network.

Averages

The example shows that when CPU and RAM are not constrained (which occurs well below the level of the example hardware), average full block validation can be sustained at less than 40 microseconds per input.

txs ins wms vms vµs rµs cµs pµs aµs sµs dµs efficiency
2001 4951 0 193 39 2 5 19 13 1 26 0.9997982
Clone this wiki locally