From c3623047f7eba7b6bd63ea4a21f4f74ea27d71f5 Mon Sep 17 00:00:00 2001 From: Duke Leto Date: Wed, 16 Feb 2022 10:57:52 -0500 Subject: [PATCH] Script to generate SDL checkpoint data via getblockmerkletree --- contrib/sdl_checkpoints.pl | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100755 contrib/sdl_checkpoints.pl diff --git a/contrib/sdl_checkpoints.pl b/contrib/sdl_checkpoints.pl new file mode 100755 index 000000000..e140fb0ec --- /dev/null +++ b/contrib/sdl_checkpoints.pl @@ -0,0 +1,44 @@ +#!/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 + +# This script is used to generate the data used by the silentdragonlite-cli checkpoints.rs file +# https://git.hush.is/hush/silentdragonlite-cli/src/branch/master/lib/src/lightclient/checkpoints.rs#L24 + +use warnings; +use strict; +my $hush = "./src/hush-cli"; +my $gethash = "$hush getblockhash"; +my $gettree = "$hush getblockmerkletree"; +my $start = shift || 300000; +my $end = shift || 840000; +my $stride = shift || 10000; + +my $blocks = qx{$hush getblockcount}; +if($?) { + print "ERROR, is hushd 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; +while (1) { + last if $block > $end; + my $blockhash = qx{$gethash $block}; + my $merkle = qx{$gettree $block}; + chomp $merkle; + chomp $blockhash; + print qq{($block,"$blockhash",\n\t"$merkle"\n),\n}; + + $block += $stride; +}