Tracing
Usage
First, set up cbctl
by following the instructions here.
Then, you can use the fiber trace
subcommand to trace messages:
NAME:
cbctl fiber trace - Trace transactions or blocks
USAGE:
cbctl fiber trace command [command options] [arguments...]
COMMANDS:
tx Trace a transaction
block Trace a block
help, h Shows a list of commands or help for one command
OPTIONS:
--help, -h show help
Transaction Tracing
Tracing can be very useful for seeing where certain transactions originated as well as how fast they propagated. Fiber has
an API that will show you the exact path a transaction took through the network. You can use our cbctl
CLI tool to access the API.
Here an example of how to trace a transaction with cbctl
:
Command
cbctl fiber trace tx --hash 0xaa04f9b21ad55393eac0343e4c162be56cdc54f15f7abc59dfecca347635ec9f --show-source
Output
Timestamp Node ID Region Observation Type Source
[1683552246359] fiber-node-tzqfmUHX (eu-central-1) p2p enode://0xc4702653ad608e49f36a292e87d4299e34c69ee5a8d79c1f06c5e76a2941e682ca25b974e97b5165d3ce164c37098819fe9821a3c01fe8c0adc4cc697d7e0cda@144.76.79.170:30303
[1683552246359] fiber-node-UBUhZvC3 (eu-central-1) fiber fiber-node-tzqfmUHX-eu-central-1
[1683552246361] fiber-node-UBUhZvC3 (eu-central-1) p2p enode://0xa039a887e07e8899c308b94bc77c9d6a8c3fa589a0191646bb6a5f42c471bad9f8ea545d3a8d2f3ff03a9c7edb6c0f056dac2d485064a948bbac50742df5da0b@3.68.227.119:30303
[1683552246364] fiber-node-1FNltdeP (eu-west-3) fiber fiber-node-tzqfmUHX-eu-central-1
[1683552246368] fiber-node-uy91LhSB (eu-west-2) fiber fiber-node-UBUhZvC3-eu-central-1
[1683552246375] fiber-node-1FNltdeP (eu-west-3) p2p enode://0x9a6808b872cdef7d153aaf26e4447f27499b367f44121068d36d38e4829e336df2a32acf9088ba1a07952016abeea92e58368338b73406a178e751c56335b5b5@81.249.172.138:30403
[1683552246376] fiber-node-uy91LhSB (eu-west-2) p2p enode://0xbcfb491c00fd1a6577311cf96c40165c1e70450968a10f920bc8900f1d6042db0dc6555064333ec153cc147a9d665d410f905383aa1b022d6e4878139e85c858@13.36.234.254:30303
[1683552246401] fiber-node-uxXKJltD (us-east-1) p2p enode://0x11dfc468e1370365058f8024e371b9fdd9fc8b7d7666f14912d8354e2d1e98c1bcb570028fabe9e3a5755df500fe933b58dc41390e0c42bd5b5efbbd2e9f2af8@138.201.137.117:30303
[1683552246401] fiber-node-vKZvH7Va (us-east-1) fiber fiber-node-uxXKJltD-us-east-1
[1683552246401] fiber-node-RrDUEn2O (us-east-1) fiber fiber-node-uxXKJltD-us-east-1
[1683552246406] fiber-node-RrDUEn2O (us-east-1) p2p enode://0xf0177460cedeb39a9e9791e1b93ee510467e9b75052ab4ff6bdbdf273d6c7a1d6db010a39032974f90798415ca284bc400182eef119dbc1b83da2a103478b171@34.229.169.228:30303
[1683552246406] fiber-node-vKZvH7Va (us-east-1) p2p enode://0x49def938197d138fccdfd15250e27fa2b423f7ecf560ef9c826a16f8558f9d062b88648e92578ce7e81558ce53832ffd87efe0ae42d191858bbc42f11e70af85@18.234.75.196:30303
[1683552246406] fiber-node-bp1hdWL3 (us-east-2) fiber fiber-node-uxXKJltD-us-east-1
[1683552246412] fiber-node-bp1hdWL3 (us-east-2) p2p enode://0x919da281398a13e227b26c21b1747e7d28acf3270eb2a707787961608e21d0e4206b1806b04029eec0a75933a08ad730359184e6005dc4245b6c2116a1da57d6@44.201.98.188:30303
[1683552246432] fiber-node-rvrbVEEN (us-west-1) fiber fiber-node-uxXKJltD-us-east-1
[1683552246437] fiber-node-pjjlW9ba (ap-southeast-1) fiber fiber-node-UBUhZvC3-eu-central-1
[1683552246439] fiber-node-rvrbVEEN (us-west-1) p2p enode://0xf8c1c390d373c7d439dbee739213b3529067997b97b8249ba550e8348ad9affafa133c784e40e81aaec535bf88beaebf4f2285561ff7d333282b23b4c9ce2d93@185.171.131.117:30303
[1683552246441] fiber-node-pjjlW9ba (ap-southeast-1) p2p enode://0x2976502fd13cc604da9775ae332ed45c13708d5c04677d311085be717a7162ebd7fdfa5659d48b047f38f106810f3293f7beac9649decb74256e65d336da8dce@18.141.166.63:29888
[1683552246448] fiber-node-yJuuNX1O (ap-northeast-1) p2p enode://0x1ef5d1c8ea44928c284a2e850647428773d0f2ba02343795dec93f76dedd73949d516e7580666bc1809782ee0acc51e39f8de90520baca31b164840e0cebda99@52.193.254.254:44881
[1683552246456] fiber-node-YboaGO5a (ap-east-1) fiber fiber-node-tzqfmUHX-eu-central-1
[1683552246462] fiber-node-YboaGO5a (ap-east-1) p2p enode://0xf149cf0fb44e5c493e5f7cd7d2b4841a9faa817d034c1d5394527b8105a296a1ba7e15823b60469dd304f5e50f535076a311a1f29b422ca4407ac45f22bd2049@78.46.174.84:30303
[1683552246463] fiber-node-hz71Y1Ml (ap-northeast-2) p2p enode://0x451229d9f219fe1660b8a6959d13a0bbfbed25427a99caa4b5f45a6076e620ad1fa396525be0b643bff974b3762e997864808be9b7b4d9f443b595e290f5273c@3.36.101.198:40216
The output is a table of observations with 5 columns:
Timestamp
: the UNIX timestamp in milliseconds.NodeID
: the unique ID of the Fiber Node in question.Region
: the regions of said Fiber Node.Observation Type
: the type of observation. It can be eitherp2p
orfiber
.p2p
: the observation was from a peer in the p2p network.fiber
: the observation was from another node in the Fiber Network.- We include both types of observations because it can be useful to compare the 2. You can filter by observation type by using the
--type
flag.
Source
: if received from the p2p network, an enode, otherwise the NodeID of the node we received it from.
Block Tracing
Similarly, you can also trace blocks with cbctl
using either an execution block hash or number:
cbctl fiber trace block --hash <block_hash>
# or
cbctl fiber trace block --number <block_number>
For example:
Command:
cbctl fiber trace block --number 17769274
Output:
Timestamp Node ID Region Observation Type
[1690277953069] fiber-node-WZfpDrEh (us-east-1) p2p
[1690277953076] fiber-node-sRjq9ckr (us-east-1) fiber
[1690277953076] fiber-node-q5MFsXcd (us-east-1) fiber
[1690277953082] fiber-node-EEMW2afd (us-east-2) fiber
[1690277953107] fiber-node-gSwmEiFj (us-west-1) fiber
[1690277953114] fiber-node-Kyu2snsE (eu-west-2) fiber
[1690277953118] fiber-node-EBafacey (eu-west-3) fiber
[1690277953122] fiber-node-4WUOdGw3 (eu-central-1) fiber
[1690277953122] fiber-node-fJsb66hv (eu-central-1) fiber
[1690277953144] fiber-node-q5MFsXcd (us-east-1) p2p
[1690277953150] fiber-node-yKhHJsyo (ap-northeast-1) fiber
[1690277953151] fiber-node-Er6JELxH (ap-northeast-1) fiber
[1690277953163] fiber-node-hZ4K3q7A (ap-northeast-2) fiber
[1690277953176] fiber-node-LkP2dHge (ap-east-1) fiber
[1690277953184] fiber-node-JVIFxwE0 (ap-southeast-1) fiber
[1690277953185] fiber-node-qCD5QJB2 (ap-southeast-1) fiber
[1690277953219] fiber-node-sRjq9ckr (us-east-1) p2p
[1690277953359] fiber-node-Kyu2snsE (eu-west-2) p2p
[1690277953366] fiber-node-EEMW2afd (us-east-2) p2p
[1690277953392] fiber-node-qCD5QJB2 (ap-southeast-1) p2p
[1690277953461] fiber-node-4WUOdGw3 (eu-central-1) p2p
[1690277953479] fiber-node-fJsb66hv (eu-central-1) p2p
[1690277953580] fiber-node-EBafacey (eu-west-3) p2p
[1690277953639] fiber-node-yKhHJsyo (ap-northeast-1) p2p
[1690277953669] fiber-node-Er6JELxH (ap-northeast-1) p2p
[1690277953674] fiber-node-gSwmEiFj (us-west-1) p2p
[1690277953841] fiber-node-LkP2dHge (ap-east-1) p2p
[1690277954136] fiber-node-JVIFxwE0 (ap-southeast-1) p2p
[1690277954152] fiber-node-hZ4K3q7A (ap-northeast-2) p2p