mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 14:38:29 +01:00
Merge bitcoin/bitcoin#23302: tracing: drop GetHash().ToString() argument from the validation:block_connected tracepoint
53c9fa9e62tracing: drop block_connected hash.toString() arg (0xb10c) Pull request description: The tracepoint `validation:block_connected` was introduced in #22006. The first argument was the hash of the connected block as a pointer to a C-like String. The last argument passed the hash of the connected block as a pointer to 32 bytes. The hash was only passed as string to allow `bpftrace` scripts to print the hash. It was (incorrectly) assumed that `bpftrace` cannot hex-format and print the block hash given only the hash as bytes. The block hash can be printed in `bpftrace` by calling `printf("%02x")` for each byte of the hash in an `unroll () {...}`. By starting from the last byte of the hash, it can be printed in big-endian (the block-explorer format). ```C $p = $hash + 31; unroll(32) { $b = *(uint8*)$p; printf("%02x", $b); $p -= 1; } ``` See also: #22902 (comment) This is a breaking change to the block_connected tracepoint API, however this tracepoint has not yet been included in a release. ACKs for top commit: laanwj: Concept and code review ACK53c9fa9e62jb55: ACK53c9fa9e62Tree-SHA512: f1b9e4e0ee45aae892e8bf38e04b5ee5fbc643d6e7e27d011b829ed8701dacf966a99b7c877c46cca8666b894a375633e62582c552c8203614c6f2b9c4087585
This commit is contained in:
@@ -101,19 +101,12 @@ Is called *after* a block is connected to the chain. Can, for example, be used
|
||||
to benchmark block connections together with `-reindex`.
|
||||
|
||||
Arguments passed:
|
||||
1. Block Header Hash as `pointer to C-style String` (64 characters)
|
||||
1. Block Header Hash as `pointer to unsigned chars` (i.e. 32 bytes in little-endian)
|
||||
2. Block Height as `int32`
|
||||
3. Transactions in the Block as `uint64`
|
||||
4. Inputs spend in the Block as `int32`
|
||||
5. SigOps in the Block (excluding coinbase SigOps) `uint64`
|
||||
6. Time it took to connect the Block in microseconds (µs) as `uint64`
|
||||
7. Block Header Hash as `pointer to unsigned chars` (i.e. 32 bytes in little-endian)
|
||||
|
||||
Note: The 7th argument can't be accessed by bpftrace and is purposefully chosen
|
||||
to be the block header hash as bytes. See [bpftrace argument limit] for more
|
||||
details.
|
||||
|
||||
[bpftrace argument limit]: #bpftrace-argument-limit
|
||||
|
||||
## Adding tracepoints to Bitcoin Core
|
||||
|
||||
|
||||
Reference in New Issue
Block a user