#!/usr/bin/perl # Copyright (c) 2016-2022 The Hush developers # Distributed under the GPLv3 software license, see the accompanying # file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html use warnings; use strict; my $cli = "./src/hush-cli"; my $coin = shift || ''; unless (-e $cli) { die "$cli does not exist, aborting"; } if ($coin) { $cli .= " -ac_name=$coin"; } my $getblock= "$cli getblock"; my $start = shift || 1850000; my $end = shift || 1853000; my $blocks = qx{$cli getblockcount}; if($?) { print "ERROR, is node running? exiting...\n"; exit 1; } if ($end > $blocks) { print "The block $end is beyond how many blocks this node knows about, exiting...\n"; exit 1; } if ($start < 1) { print "Invalid start block $start, exiting...\n"; exit 1; } my $block = $start; my $prev_blocktime = 0; my $total_duration = 0; while ($block <= $end) { my $blocktime = qx{$getblock $block | grep time}; chomp $blocktime; if($blocktime =~ m/(\d+)/) { $blocktime = $1; } my $duration = $blocktime - $prev_blocktime; if($prev_blocktime > 0) { $total_duration += $duration; } #print "$block $blocktime $prev_blocktime $duration\n"; print "$block $duration\n"; $block++; $prev_blocktime = $blocktime; } my $num_blocks = $end - $start; my $avg_duration = $total_duration / $num_blocks; print "Avg blocktime over $num_blocks blocks = $avg_duration\n";