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 DataStream stream{benchmark::data::block413567};
36 stream.
write({&a, 1});
40 blockHash = block.GetHash();
41 blockindex.phashBlock = &blockHash;
42 blockindex.nBits = 403014710;
50 TestBlockAndIndex
data;
51 const uint256 pow_limit{
data.testing_setup->m_node.chainman->GetParams().GetConsensus().powLimit};
53 auto univalue =
blockToJSON(
data.testing_setup->m_node.chainman->m_blockman,
data.block,
data.blockindex,
data.blockindex, verbosity, pow_limit);
79 TestBlockAndIndex
data;
80 const uint256 pow_limit{
data.testing_setup->m_node.chainman->GetParams().GetConsensus().powLimit};
83 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,...
Double ended buffer combining vector and stream-like interfaces.
void write(std::span< const value_type > src)
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, benchmark::PriorityLevel::HIGH)