6#include <bench/data/block413567.raw.h>
18#include <validation.h>
26struct TestBlockAndIndex {
27 const std::unique_ptr<const TestingSetup> testing_setup{MakeNoLogFileContext<const TestingSetup>(
ChainType::MAIN)};
34 SpanReader stream{benchmark::data::block413567};
37 blockHash = block.GetHash();
38 blockindex.phashBlock = &blockHash;
39 blockindex.nBits = 403014710;
47 TestBlockAndIndex
data;
48 const uint256 pow_limit{
data.testing_setup->m_node.chainman->GetParams().GetConsensus().powLimit};
50 auto univalue =
blockToJSON(
data.testing_setup->m_node.chainman->m_blockman,
data.block,
data.blockindex,
data.blockindex, verbosity, pow_limit);
76 TestBlockAndIndex
data;
77 const uint256 pow_limit{
data.testing_setup->m_node.chainman->GetParams().GetConsensus().powLimit};
80 auto str = univalue.write();
UniValue blockToJSON(BlockManager &blockman, const CBlock &block, const CBlockIndex &tip, const CBlockIndex &blockindex, TxVerbosity verbosity, const uint256 pow_limit)
Block description to JSON.
The block chain is a tree shaped structure starting with the genesis block at the root,...
Minimal stream for reading from an existing byte array by std::span.
Main entry point to nanobench's benchmarking facility.
Bench & run(char const *benchmarkName, Op &&op)
Repeatedly calls op() based on the configuration, and performs measurements.
TxVerbosity
Verbose level for block's transaction.
@ SHOW_DETAILS_AND_PREVOUT
The same as previous option with information about prevouts if available.
@ SHOW_TXID
Only TXID for each block's transaction.
@ SHOW_DETAILS
Include TXID, inputs, outputs, and other common block's transaction information.
void doNotOptimizeAway(Arg &&arg)
Makes sure none of the given arguments are optimized away by the compiler.
static constexpr TransactionSerParams TX_WITH_WITNESS
static void BlockToJsonVerbosity2(benchmark::Bench &bench)
static void BlockToJson(benchmark::Bench &bench, TxVerbosity verbosity)
static void BlockToJsonVerbosity1(benchmark::Bench &bench)
static void BlockToJsonVerboseWrite(benchmark::Bench &bench)
static void BlockToJsonVerbosity3(benchmark::Bench &bench)
BENCHMARK(BlockToJsonVerbosity1)