Archive for the ‘Bitcoin’ Category

Building TRB on Cuntoo: Part 1

Wednesday, May 22nd, 2019

Continuing to build upon last month's post (building ave1's musltronic GNAT on Gentoo), I wanted to try building TRB on Cuntoo.

I utilized diana_coman's Keccak-V to press Keccak-V TRB vpatches and seals that I created back in January. These have not yet been reviewed by other TMSR~ Lords, and subsequently, still are considered experimental at the time of this writing.

After pressing the Keccak TRB Tree up through asciilifeform_aggressive_pushgetblocks.vpatch into directory 'a', I copied all of it's contents into directory 'b'. This way, I'm able to make changes in directory 'b'; removing all of the buildroot requirements throughout the Makefiles. Once these changes were complete, I was able to use the Keccak vdiff tool to compare the original press directory in 'a', with the changes made in 'b' to output a new vpatch.

As a preliminary step, I simply set out to update the Makefile.rotor file in the 'build' directory so that I could utilize the deployed musltronic toolset in '/opt/20180924' and build the following: Boost, BDB, and OpenSSL. I was successful in building both Boost and OpenSSL without any changes at all; however, I did get an error when building BDB:

-L/opt/20180924/x86_64-linux-musl-native/lib -lpthread
-Wl,-soname -Wl,libdb-4.8.so -o
.libs/libdb-4.8.so /opt/20180924/x86_64-linux-musl-native/bin/../lib/gcc/x86_64-linux-musl/4.9.4/../../../../x86_64-linux-musl/bin/ld:
/opt/20180924/x86_64-linux-musl-native/bin/../lib/gcc/x86_64-linux-musl/4.9.4/../../../../x86_64-linux-musl/lib/libc.a(sysconf.o):
relocation R_X86_64_32S against `.rodata.values.2406' can not be used when making a shared object;
recompile with -fPIC /opt/20180924/x86_64-linux-musl-native/bin/../lib/gcc/x86_64-linux-musl/4.9.4/../../../../x86_64-linux-musl/lib/libc.a:
error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:771: libdb-4.8.la] Error 1
make[1]: Leaving directory
'/home/mod6/trb/trb054/bitcoin/build/db-4.8.30/build_unix'
make: *** [Makefile.rotor:41: db-4.8.30] Error 2

Seeing that this was a relocation record error was a clue for me. I wanted ensure that we're not building a shared library, so I dug up some BDB documentation here. Specifically:

--disable-shared, --disable-static

On systems supporting shared libraries, Berkeley DB builds both static and shared libraries by default. (Shared libraries are built using the GNU Project's Libtool distribution, which supports shared library builds on many (although not all) systems.) To not build shared libraries, configure using the --disable-shared argument. To not build static libraries, configure using the --disable-static argument.

I then added the '--disable-shared' flag to the configure options for BDB, it compiled, no problem at all.

The changes to the Makefiles were as follows:

  1. Removal of buildroot, its dependencies, and their checksums
  2. Updating the following environment variables in Makefile.rotor to point at my deployed musltronic native binaries from ave1's 20180924 version:
    1. CC
    2. CXX
    3. LD
    4. CFLAGS
    5. LDFLAGS
    6. PATH
  3. The addition of the '--disable-shared' configure flag for BDB

Once I had a vpatch of the necessary changes, I did another press up through asciilifeform_aggressive_pushgetblocks.vpatch into the 'test' directory. Next, I simply just applied my own vpatch manually (just for testing purposes). I then conducted a full TRB build, with success. Lastly, I started up TRB and was able to connect to the network and pull blocks. More testing is required, of course, but it was nice to see this working!

What follows below is a full log of all of the things that I conducted, as well as the (unsigned) vpatch of the changes that I created.

mod6@cuntoo-test1 ~ $ mkdir trb
mod6@cuntoo-test1 ~ $ cd trb/
mod6@cuntoo-test1 ~/trb $ touch log.txt
mod6@cuntoo-test1 ~/trb $ curl -sL
"http://ossasepia.com/vpatches/starter_v.zip" -O
mod6@cuntoo-test1 ~/trb $ curl -sL
"http://ossasepia.com/vpatches/starter_v.zip.diana_coman.sig" -O
mod6@cuntoo-test1 ~/trb $ gpg --verify starter_v.zip.diana_coman.sig
starter_v.zip
gpg: Signature made Wed Nov 14 10:39:50 2018 UTC using RSA key ID 390F999E
gpg: Good signature from "Diana Coman "
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: E72D CCB7 3A5E 0669 4C5C  D781 D519 6EE6 390F 999E
mod6@cuntoo-test1 ~/trb $ unzip starter_v.zip
Archive:  starter_v.zip
   creating: starter_v/
  inflating: starter_v/clean.sh
  inflating: starter_v/build.sh
   creating: starter_v/vtools/
  inflating: starter_v/vtools/vdiff.gpr
  inflating: starter_v/vtools/vpatch.gpr
  inflating: starter_v/vtools/Makefile
  inflating: starter_v/vtools/ksum.gpr
  inflating: starter_v/vtools/manifest
   creating: starter_v/v/
  inflating: starter_v/v/v.pl
  inflating: starter_v/v/v_quick_start.txt
  inflating: starter_v/v/manifest
   creating: starter_v/vtools/src/
  inflating: starter_v/vtools/src/bits.ads
  inflating: starter_v/vtools/src/keccak_c.adb
  inflating: starter_v/vtools/src/vpatch.adb
  inflating: starter_v/vtools/src/dir.c
  inflating: starter_v/vtools/src/util.c
  inflating: starter_v/vtools/src/keccak.h
  inflating: starter_v/vtools/src/diff.h
  inflating: starter_v/vtools/src/bits.adb
  inflating: starter_v/vtools/src/character_io.ads
  inflating: starter_v/vtools/src/context.c
  inflating: starter_v/vtools/src/smg_keccak.adb
  inflating: starter_v/vtools/src/character_io.adb
  inflating: starter_v/vtools/src/ksum.adb
  inflating: starter_v/vtools/src/analyze.c
  inflating: starter_v/vtools/src/keccak_c.ads
  inflating: starter_v/vtools/src/io.c
  inflating: starter_v/vtools/src/diff.c
  inflating: starter_v/vtools/src/smg_keccak.ads
  inflating: starter_v/vtools/src/system.h
   creating: starter_v/vtools/lib/
  inflating: starter_v/vtools/lib/hash.c
  inflating: starter_v/vtools/lib/cmpbuf.c
  inflating: starter_v/vtools/lib/progname.c
  inflating: starter_v/vtools/lib/filetype.h
  inflating: starter_v/vtools/lib/xalloc.c
  inflating: starter_v/vtools/lib/dirname.h
  inflating: starter_v/vtools/lib/filetype.c
  inflating: starter_v/vtools/lib/progname.h
  inflating: starter_v/vtools/lib/cmpbuf.h
  inflating: starter_v/vtools/lib/error.h
  inflating: starter_v/vtools/lib/error.c
  inflating: starter_v/vtools/lib/filenamecat.c
  inflating: starter_v/vtools/lib/dirname.c
  inflating: starter_v/vtools/lib/diffseq.h
  inflating: starter_v/vtools/lib/hash.h
  inflating: starter_v/vtools/lib/filenamecat.h
  inflating: starter_v/vtools/lib/xalloc.h
   creating: starter_v/vtools/obj/
 extracting: starter_v/vtools/obj/readme
mod6@cuntoo-test1 ~/trb $
mod6@cuntoo-test1 ~/trb $ cd starter_v
mod6@cuntoo-test1 ~/trb/starter_v $ chmod +x build.sh
mod6@cuntoo-test1 ~/trb/starter_v $ ./build.sh
Compile
   [C]            diff.c
   [C]            filetype.c
   [C]            error.c
   [C]            cmpbuf.c
   [C]            progname.c
   [C]            dirname.c
   [C]            hash.c
   [C]            filenamecat.c
   [C]            xalloc.c
   [C]            dir.c
   [C]            io.c
   [C]            util.c
   [C]            context.c
   [C]            analyze.c
   [Ada]          bits.adb
   [Ada]          ksum.adb
   [Ada]          character_io.adb
   [Ada]          keccak_c.adb
   [Ada]          smg_keccak.adb
Bind
   [gprbind]      diff.bexch
   [Ada]          bits.ali -n
Link
   [archive]      libvdiff.a
   [index]        libvdiff.a
   [link]         diff.c
Compile
   [Ada]          vpatch.adb
Bind
   [gprbind]      vpatch.bexch
   [Ada]          vpatch.ali
Link
   [link]         vpatch.adb
Bind
   [gprbind]      ksum.bexch
   [Ada]          ksum.ali
Link
   [link]         ksum.adb
Done.
mod6@cuntoo-test1 ~/trb/starter_v $
mod6@cuntoo-test1 ~/trb/starter_v $ command -v ksum
/usr/local/bin/ksum
mod6@cuntoo-test1 ~/trb/starter_v $ command -v vdiff
/usr/local/bin/vdiff
mod6@cuntoo-test1 ~/trb/starter_v $ command -v vpatch
/usr/local/bin/vpatch
mod6@cuntoo-test1 ~/trb $ mkdir .wot
mod6@cuntoo-test1 ~/trb $ mkdir .seals
mod6@cuntoo-test1 ~/trb $ mkdir patches
mod6@cuntoo-test1 ~/trb $ cd .wot
mod6@cuntoo-test1 ~/trb/.wot $ cp ~/pubkeys/mod6.asc .
mod6@cuntoo-test1 ~/trb/.wot $ cd ../
mod6@cuntoo-test1 ~/trb $ cp starter_v/vk.pl .
mod6@cuntoo-test1 ~/trb $ ./vk.pl w
mod6:027A8D7C0FB8A16643720F40721705A8B71EADAF:mod6 (mod6) 
mod6@cuntoo-test1 ~/trb $ curl -sL "http://mod6.net/trb/regrinds/keccak_trb_20190112.tar.gz" -O
mod6@cuntoo-test1 ~/trb $ curl -sL "http://mod6.net/trb/regrinds/keccak_trb_20190112.tar.gz.mod6.sig" -O
mod6@cuntoo-test1 ~/trb $ gpg --import ~/pubkeys/mod6.asc
gpg: key B71EADAF: public key "mod6 (mod6) " imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
gpg: no ultimately trusted keys found
mod6@cuntoo-test1 ~/trb $ gpg --verify keccak_trb_20190112.tar.gz.mod6.sig keccak_trb_20190112.tar.gz
gpg: Signature made Sun Jan 13 18:39:41 2019 UTC using RSA key ID B71EADAF
gpg: Good signature from "mod6 (mod6) "
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 027A 8D7C 0FB8 A166 4372  0F40 7217 05A8 B71E ADAF
mod6@cuntoo-test1 ~/trb $ tar -xf keccak_trb_20190112.tar.gz
mod6@cuntoo-test1 ~/trb $ ls
keccak_trb_20190112.tar.gz  keccak_trb_20190112.tar.gz.mod6.sig  log.txt  seals  starter_v  starter_v.zip  starter_v.zip.diana_coman.sig  vk.pl  vpatches
mod6@cuntoo-test1 ~/trb $ mv seals/ .seals
mod6@cuntoo-test1 ~/trb $ mv vpatches/ patches
mod6@cuntoo-test1 ~/trb $ ./vk.pl f
genesis.vpatch (mod6)
bitcoin-asciilifeform.1.vpatch (mod6)
rm_rf_upnp.vpatch (mod6)
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch (mod6)
bitcoin-asciilifeform.2-https_snipsnip.vpatch (mod6)
bitcoin-asciilifeform.4-goodbye-win32.vpatch (mod6)
asciilifeform_dnsseed_snipsnip.vpatch (mod6)
asciilifeform_zap_hardcoded_seeds.vpatch (mod6)
asciilifeform-kills-integer-retardation.vpatch (mod6)
asciilifeform_zap_showmyip_crud.vpatch (mod6)
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch (mod6)
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch (mod6)
mod6_fix_dumpblock_params.vpatch (mod6)
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch (mod6)
bitcoin-v0_5_3_1-rev_bump.7.vpatch (mod6)
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch (mod6)
asciilifeform_orphanage_thermonuke.vpatch (mod6)
asciilifeform_and_now_we_have_eatblock.vpatch (mod6)
bitcoin-v0_5_3-db_config.6.vpatch (mod6)
asciilifeform_tx-orphanage_amputation.vpatch (mod6)
asciilifeform_maxint_locks_corrected.vpatch (mod6)
asciilifeform_lets_lose_testnet.vpatch (mod6)
asciilifeform_add_verifyall_option.vpatch (mod6)
programmable-versionstring.vpatch (mod6)
mod6_der_high_low_s.vpatch (mod6)
malleus_mikehearnificarum.vpatch (mod6)
makefiles.vpatch (mod6)
asciilifeform_aggressive_pushgetblocks.vpatch (mod6)
mod6@cuntoo-test1 ~/trb $ ./vk.pl p a asciilifeform_aggressive_pushgetblocks.vpatch
mod6@cuntoo-test1 ~/trb $ cp -pr a b
mod6@cuntoo-test1 ~/trb $ ls a
bitcoin
mod6@cuntoo-test1 ~/trb $ ls b
bitcoin

# Here's where I went into directory 'b' and made my changes.
#
# See the full (keccak) vpatch at the bottom of this blog post, or here.

mod6@cuntoo-test1 ~/trb $ vdiff a b > mod6_cuntoo_with_ave1_tools.vpatch
mod6@cuntoo-test1 ~/trb $ ./vk.pl p test asciilifeform_aggressive_pushgetblocks.vpatch
mod6@cuntoo-test1 ~/trb $ cd test/
mod6@cuntoo-test1 ~/trb/test $ cp ../mod6_cuntoo_with_ave1_tools.vpatch .
# ( patching manually just for testing! )
mod6@cuntoo-test1 ~/trb/test $ patch -p1 < mod6_cuntoo_with_ave1_tools.vpatch
patching file bitcoin/build/Makefile
patching file bitcoin/build/Makefile.rotor
patching file bitcoin/deps/Makefile
patching file bitcoin/deps/Manifest.sha512

mod6@cuntoo-test1 ~/trb/test $ cd bitcoin
mod6@cuntoo-test1 ~/trb/test/bitcoin $ make ONLINE=1

...

trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/init.o init.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/keystore.o keystore.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/main.o main.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/net.o net.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/protocol.o protocol.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/bitcoinrpc.o bitcoinrpc.cpp
In file included from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/detail/socket_types.hpp:50:0,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/detail/epoll_reactor.hpp:32,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/detail/reactor.hpp:21,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/detail/impl/task_io_service.ipp:24,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/detail/task_io_service.hpp:217,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/impl/io_service.hpp:71,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/io_service.hpp:767,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/basic_io_object.hpp:19,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/basic_socket.hpp:19,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio/basic_datagram_socket.hpp:20,
                 from /home/mod6/trb/test/bitcoin/build/ourlibs/include/boost/asio.hpp:20,
                 from bitcoinrpc.cpp:11:
/opt/20180924/x86_64-linux-musl-native/x86_64-linux-musl/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include  to
 [-Wcpp]
 #warning redirecting incorrect #include  to

  ^
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/script.o script.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/util.o util.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -c -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -MMD -o obj/nogui/wallet.o wallet.cpp
/opt/20180924/x86_64-linux-musl-native/bin/g++ -pthread -Wno-invalid-offsetof -Wformat -g -DNOPCH -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -I/home/mod6/trb/test/bitcoin/build/ourlibs/include -fno-stack-protector -fstack-protector-all -Wstack-protector -Wl,-z,relro -Wl,-z,now -D_FORTIFY_SOURCE=2 -O2 -o bitcoind obj/nogui/checkpoints.o obj/nogui/crypter.o obj/nogui/db.o obj/nogui/init.o obj/nogui/keystore.o obj/nogui/main.o obj/nogui/net.o obj/nogui/protocol.o obj/nogui/bitcoinrpc.o obj/nogui/script.o obj/nogui/util.o obj/nogui/wallet.o -L/opt/20180924/x86_64-linux-musl-native/lib -L/home/mod6/trb/test/bitcoin/build/ourlibs/lib -L/home/mod6/trb/test/bitcoin/build/ourlibs/lib -L/home/mod6/trb/test/bitcoin/build/ourlibs/lib -Wl,-Bstatic -l boost_system -l boost_filesystem -l boost_program_options -l boost_thread -l db_cxx -l ssl -l crypto -static-libgcc -Wl,-Bstatic -l pthread
make[3]: Leaving directory '/home/mod6/trb/test/bitcoin/src'
strip ../src/bitcoind
make[2]: Leaving directory '/home/mod6/trb/test/bitcoin/build'
cp ../src/bitcoind .
make[1]: Leaving directory '/home/mod6/trb/test/bitcoin/build'
make -C bin
make[1]: Entering directory '/home/mod6/trb/test/bitcoin/bin'
cp ../build/bitcoind .
#grep "  bitcoind$" Manifest.sha512 | sha512sum -c || (mv bitcoind bitcoind.badsum && false)
make[1]: Leaving directory '/home/mod6/trb/test/bitcoin/bin'
mod6@cuntoo-test1 ~/trb/test/bitcoin $ ls -al bin/bitcoind
-rwxr-xr-x 1 mod6 mod6 5085296 May 18 00:40 bin/bitcoind
mod6@cuntoo-test1 ~/trb/test/bitcoin $ mkdir ~/.bitcoin
mod6@cuntoo-test1 ~/trb/test/bitcoin $ vim ~/.bitcoin/bitcoin.conf
mod6@cuntoo-test1 ~/trb/test/bitcoin $
...
From here I started up bitcoind, and pulled the first 2000 blocks.

Here is the full (keccak) 'mod6_cuntoo_with_ave1_tools.vpatch' file (for review):

diff -uNr a/bitcoin/build/Makefile b/bitcoin/build/Makefile
--- a/bitcoin/build/Makefile c958ddef742cd53043ad744166918e1e0a16da6e660341adfddb34280e650031dd0ada7ebf0679764a2dbd41a70d78204af34f381f8ed4e48be0098227a19358
+++ b/bitcoin/build/Makefile 1199de9a81356a54737644c0177c48f7c6e558eb0b3e37e3f5a4129b748505725c0117c2f0b96f3d0bec812b6aed042c2cff4dd679426e7675f23c544885119e
@@ -1,6 +1,6 @@
 BUILDER=rotor

-all: buildroot-2015.05 rotor bitcoind
+all: rotor bitcoind

 clean:
 	find . -maxdepth 1 \
@@ -9,31 +9,11 @@
 	-not -name '.' \
 	-exec rm -rf {} \;

-buildroot-2015.05:
-	tar -xvzf ../deps/buildroot-2015.05.tar.gz
-	tar -xvzf ../deps/rotor.tar.gz
-	cp rotor_buildroot_dot_config buildroot-2015.05/.config
-	mkdir -p buildroot-2015.05/dl
-	cp ../deps/binutils-2.24.tar.bz2 \
-	../deps/busybox-1.23.2.tar.bz2 \
-	../deps/expat-2.1.0.tar.gz \
-	../deps/fakeroot_1.18.4.orig.tar.bz2 \
-	../deps/gcc-4.9.2.tar.bz2 \
-	../deps/gdb-7.8.2.tar.xz \
-	../deps/gmp-6.0.0a.tar.xz \
-	../deps/linux-3.18.14.tar.xz \
-	../deps/m4-1.4.17.tar.xz \
-	../deps/mpc-1.0.3.tar.gz \
-	../deps/mpfr-3.1.2.tar.xz \
-	../deps/musl-1.1.8.tar.gz \
-	../deps/ncurses-5.9.tar.gz \
-	../deps/pkgconf-0.8.9.tar.bz2 \
-	buildroot-2015.05/dl
-
 	$(MAKE) -C buildroot-2015.05

 .PHONY: $(BUILDER)
 $(BUILDER):
+	tar -xvzf ../deps/rotor.tar.gz
 	$(MAKE) -f Makefile.$(BUILDER)

 bitcoind:
diff -uNr a/bitcoin/build/Makefile.rotor b/bitcoin/build/Makefile.rotor
--- a/bitcoin/build/Makefile.rotor ba5a6c72cf444b5872fb006ca025ea4df3c7293a8986019b64fb57ef9d28e6a3080a81a169197b956825c1fee92fc025c0ec9a8e36f50d9fb7c2f3a9bd8ac5de
+++ b/bitcoin/build/Makefile.rotor a3138a9e927585e84258b1ab008120e5be73dfa2f1f6bebc41c54fff75e601baf24263b707af9ebcb2ecca8d3436e45242fba0ee456335858b6cd8ff3cafabb6
@@ -7,12 +7,12 @@

 export DIST=$(shell readlink -f ../deps)
 export OURLIBS=$(shell readlink -f ./ourlibs)
-export CC=$(shell readlink -f toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-gcc)
-export CXX=$(shell readlink -f toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-g++)
-export LD=$(shell readlink -f toolchain/usr/bin/x86_64-therealbitcoin-linux-musl-ld)
-export CFLAGS=-I$(shell readlink -f toolchain/usr/include)
-export LDFLAGS=-L$(shell readlink -f toolchain/usr/lib)
-export PATH := $(PATH):$(shell readlink -f toolchain/usr/bin)
+export CC=$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/bin/gcc)
+export CXX=$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/bin/g++)
+export LD=$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/bin/ld)
+export CFLAGS=-I$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/include)
+export LDFLAGS=-L$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/lib)
+export PATH := $(PATH):$(shell readlink -f /opt/20180924/x86_64-linux-musl-native/bin)
 export BOOST_INCLUDE_PATH=$(OURLIBS)/include
 export BDB_INCLUDE_PATH=$(OURLIBS)/include
 export OPENSSL_INCLUDE_PATH=$(OURLIBS)/include
@@ -38,7 +38,7 @@
 $(BDB):
 	tar xvfz $(DIST)/$(BDB).tar.gz
 	cd $(BDB)/build_unix && \
-	../dist/configure --enable-cxx --prefix=$(OURLIBS) --host=x86_64-linux && \
+	../dist/configure --disable-shared --enable-cxx --prefix=$(OURLIBS) --host=x86_64-linux && \
 	$(MAKE) && \
 	$(MAKE) install

diff -uNr a/bitcoin/deps/Makefile b/bitcoin/deps/Makefile
--- a/bitcoin/deps/Makefile 84410767530f3081269fbc0f494b5a00f7d7f665ed442a7330b87cee22fb83d5bd4acdb47f75e0cce984a37372cb81ef16931280aa3b8abcf879caa632258548
+++ b/bitcoin/deps/Makefile 4b8ba13ff82f0e6095a5d1a8a4928b3223fb2be6acb4335eb8026e0f441a49d58fb93dfabbf1f4f8ce8e9ddc613706b8986da4e495d9a4f66452d74544ace01d
@@ -1,32 +1,17 @@
 include ../verify.mk

-all: boost_1_52_0.tar.bz2 buildroot-2015.05.tar.gz db-4.8.30.tar.gz \
-     openssl-1.0.1g.tar.gz binutils-2.24.tar.bz2 busybox-1.23.2.tar.bz2 \
-     expat-2.1.0.tar.gz fakeroot_1.18.4.orig.tar.bz2 gcc-4.9.2.tar.bz2 \
-     gdb-7.8.2.tar.xz gmp-6.0.0a.tar.xz linux-3.18.14.tar.xz \
-     m4-1.4.17.tar.xz mpc-1.0.3.tar.gz mpfr-3.1.2.tar.xz musl-1.1.8.tar.gz \
-     ncurses-5.9.tar.gz pkgconf-0.8.9.tar.bz2 rotor.tar.gz \
-     rotor-db-configure-fix.patch
+all: boost_1_52_0.tar.bz2 db-4.8.30.tar.gz openssl-1.0.1g.tar.gz \
+     rotor.tar.gz rotor-db-configure-fix.patch

 check:
 	$(SHA512) -c Manifest.sha512

 clean:
-	rm -f boost_1_52_0.tar.bz2 buildroot-2015.05.tar.gz db-4.8.30.tar.gz \
-	openssl-1.0.1g.tar.gz binutils-2.24.tar.bz2 busybox-1.23.2.tar.bz2 \
-	expat-2.1.0.tar.gz fakeroot_1.18.4.orig.tar.bz2 gcc-4.9.2.tar.bz2 \
-	gdb-7.8.2.tar.xz gmp-6.0.0a.tar.xz linux-3.18.14.tar.xz \
-	m4-1.4.17.tar.xz mpc-1.0.3.tar.gz mpfr-3.1.2.tar.xz musl-1.1.8.tar.gz \
-	ncurses-5.9.tar.gz pkgconf-0.8.9.tar.bz2 rotor.tar.gz \
-	rotor-db-configure-fix.patch boost_1_52_0.tar.bz2.asc \
-	buildroot-2015.05.tar.gz.asc db-4.8.30.tar.gz.asc \
-	openssl-1.0.1g.tar.gz.asc binutils-2.24.tar.bz2.asc \
-	busybox-1.23.2.tar.bz2.asc expat-2.1.0.tar.gz.asc \
-	fakeroot_1.18.4.orig.tar.bz2.asc gcc-4.9.2.tar.bz2.asc \
-	gdb-7.8.2.tar.xz.asc gmp-6.0.0a.tar.xz.asc linux-3.18.14.tar.xz.asc \
-	m4-1.4.17.tar.xz.asc mpc-1.0.3.tar.gz.asc mpfr-3.1.2.tar.xz.asc \
-	musl-1.1.8.tar.gz.asc ncurses-5.9.tar.gz.asc pkgconf-0.8.9.tar.bz2.asc \
-	rotor.tar.gz.asc rotor-db-configure-fix.patch.asc
+	rm -f boost_1_52_0.tar.bz2.asc boost_1_52_0.tar.bz2 \
+	db-4.8.30.tar.gz.asc db-4.8.30.tar.gz \
+	openssl-1.0.1g.tar.gz.asc openssl-1.0.1g.tar.gz \
+	rotor.tar.gz.asc rotor.tar.gz \
+	rotor-db-configure-fix.patch.asc rotor-db-configure-fix.patch

 boost_1_52_0.tar.bz2:
 ifdef ONLINE
@@ -36,14 +21,6 @@
 	$(DECODE_DEED)
 	$(CHECKSUM_OR_DIE)

-buildroot-2015.05.tar.gz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-422651-2.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
 db-4.8.30.tar.gz:
 ifdef ONLINE
 	curl -s http://deedbot.org/deed-422651-3.txt -o $@.asc
@@ -58,118 +35,6 @@
 endif
 	$(VERIFY_DEED_OR_DIE)
 	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-binutils-2.24.tar.bz2:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-1.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-busybox-1.23.2.tar.bz2:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-2.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-expat-2.1.0.tar.gz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-3.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-fakeroot_1.18.4.orig.tar.bz2:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-4.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-gcc-4.9.2.tar.bz2:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-5.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-gdb-7.8.2.tar.xz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-6.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-gmp-6.0.0a.tar.xz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-7.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-linux-3.18.14.tar.xz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-8.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-m4-1.4.17.tar.xz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-9.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-mpc-1.0.3.tar.gz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-10.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-mpfr-3.1.2.tar.xz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-11.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-musl-1.1.8.tar.gz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-12.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-ncurses-5.9.tar.gz:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-13.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
-	$(CHECKSUM_OR_DIE)
-
-pkgconf-0.8.9.tar.bz2:
-ifdef ONLINE
-	curl -s http://deedbot.org/deed-427443-14.txt -o $@.asc
-endif
-	$(VERIFY_DEED_OR_DIE)
-	$(DECODE_DEED)
 	$(CHECKSUM_OR_DIE)

 rotor-db-configure-fix.patch:
diff -uNr a/bitcoin/deps/Manifest.sha512 b/bitcoin/deps/Manifest.sha512
--- a/bitcoin/deps/Manifest.sha512 15a253bba8d7d35ac2f19017ae7350fd8906ad4ec93783d83aca5d07f9d4e0bab5bbaeef0e091276aac7f1cd7c00f64b3edf23c8a74e0ae66273ac99edf1bda2
+++ b/bitcoin/deps/Manifest.sha512 9a04e9d02fb697d6c5a2b45965d09edc14172a3205159899126c8d26effaa0aa8508c665e44f5d3ad3dfd3b4e92a9d58ab3d719185d857700944a811ab8b0675
@@ -1,20 +1,5 @@
-5ec95ad47d49b12c4558a8db0ca2109d3ee1955e3776057f3330c4506f8f4d1cf5e505fbf8a16b98403a0fcdeaaf986fe0a22be6456247dbdace63ce1f776b12  binutils-2.24.tar.bz2
 fc512d3bfa6a39a60fee548775c97239271cf757587b8df7ed739c800844a819a359dca172be0e69ad7752753753139bf11f0813d650066d58386662fe32842d  boost_1_52_0.tar.bz2
-c42fdd39cb2bc46804a86a7d7b2605bd3cd9ddcb365c4e5a1fb147eb02b234fc31a70c8140be2f4d27cd371c84e0c6701f8cb47697dd1c18dd0e0cce784aa07a  buildroot-2015.05.tar.gz
-209c8ef26e40ccb81510f6b663202b080f9bbecac7faf386bbabf7e36a43d63b15dd6ce9f7a84c1ccc5345c524999812251da1e113ef9faadc6af1fedd24c7c9  busybox-1.23.2.tar.bz2
 d1a3c52b0ab54ae3fd6792e6396c9f74d25f36b2eb9e853b67ef9c872508a58c784c7818108d06d184f59601b70cc877916e67dfea6f0ee1ca2b07468c1041f1  db-4.8.30.tar.gz
-2a9ad2b44b87b84087979fe4114d661838df3b03dbdcb74d590cb74096bf35ce9d5a86617b0941a2655ea441a94537bcbcd78252da92342238823be36de2d09d  expat-2.1.0.tar.gz
-497292fe21d18a37eadd657fbe01db8902f4b8d87d63605928efd59789f4c14737997b9f0abc4d794dbef78066b952064bdb2dd9f0910ec75349d7dd313cd058  fakeroot_1.18.4.orig.tar.bz2
-e96cba06d572dbe7f382a2b00fd9297dcf9f9219d46a9ad0bd904dc36d5e7db3335e422640b79a27fed6fde91b0731732b94a0e2fbcd47344d6779f8ba1f4f9c  gcc-4.9.2.tar.bz2
-face5bf1b4ce144fc8604fc84620beed956177a11fd632b4e41906fc7f632910b2b43a50e6cfdfd6cbd876ee527c813bddab8df29dc560a6c36694cdb8edc4e4  gdb-7.8.2.tar.xz
-50368f4368b244b442438ce1768cf0f1166e490d1bafb8feda1ffc90fea3807e7328f30f3faa861799e4f5ff6e3113049ca3231b2f48571e4583fc3d60441816  gmp-6.0.0a.tar.xz
-688a107e7ff2f0d21196fbf809173fee6620ec8e7694188ff38e45a1b16632bca33c617e012726142d8bd80307fc05207badfb115df95df05ee0734d5569a9cb  linux-3.18.14.tar.xz
-406e6e97c3f5c5f3c8055bac748d4fe8c2e861d97e84ab6d840a2caa7df04f523cc662d6d51f6afae7d6c219d03693c7ae0c1e669a80246a3ceb5e8342b82389  m4-1.4.17.tar.xz
-0028b76df130720c1fad7de937a0d041224806ce5ef76589f19c7b49d956071a683e2f20d154c192a231e69756b19e48208f2889b0c13950ceb7b3cfaf059a43  mpc-1.0.3.tar.gz
-8d594206afb2637ed39ad564d42c8c4d02b042b95925f5c6ec891e5cb87f7155195559c7ff477256a088ecaaa3c2b0d35a9d11a74ed526a1080d49b2950e5587  mpfr-3.1.2.tar.xz
-de2f0b03fd199e2ceb9937686d1092838744dccaddb3916f9baef9cdd2621624fb3c4af2206a3366d12852d84ccc8b0b68350f9d06a9e2bcdbc0309dc05383ff  musl-1.1.8.tar.gz
-d7c5e54b6d4d8b9211f0006ca8786f7609d180cc1aaebf4f25e7e35e12959779cf66447359a602daed625621ca32b0d910d67aef3eb8b6fdc3c373819a88faa1  ncurses-5.9.tar.gz
 66ebbad3c8ad98a07b486d39d0c3ae62b00133f8f2877cf8b97c461e7c7f40b29cf9c3cae82cf73a92dcf1daa63d33aa76c910fbcbe60158589fc7cb48f41e6d  openssl-1.0.1g.tar.gz
-3acb571412dedc2587203ed05537ce3adbaa64f2fab4f561da9824917c15e2ea771db7525f9a026261086f4ae196c3a5183e1bb3d33e14fdd779fbe74e6215c3  pkgconf-0.8.9.tar.bz2
 e232c07238feb16ce055211fba68ed283c47753a8716681ac47c869c21936f48768fafaac678f64ee17cf2b62b669a0d2c481008b5ccaf76007f66501a02990d  rotor.tar.gz
 2c1152a88dd6d8e4b0f736dbf0ce2691c66fc592c1ef6c332a976ae7e9ca86850091032d23042558e3eabc0dc2b591f482566ef433606fb91a06dee9a0485063  rotor-db-configure-fix.patch

TRB Keccak Regrind

Sunday, January 13th, 2019
The Bitcoin Foundation has created a full regrind of the TRB vtree to use Keccak
vpatches.  This work is delicate, and is best if detailed here in a blog post so
that it can be reviewed.

[ Preface ]

There is quite a lot of work that is detailed here.  Here's an overview: 

1] Setup Original (SHA512) TRB to get the full press-path through the entire
   vtree.
2] Create the keccak vpatches.  We will create the genesis.vpatch by hand as we
   will remove one UTF8 character out of util.h. Then the rest of the vpatches
   will be created by one single shell command.
3] Inspect the produced keccak vpatches to ensure there are no more UTF8
   characters hiding in the source code.
4] Create diffs of all of the original SHA512 vpatches against all of the newly
   created keccak vpatches.
5] Iterate through all of the original SHA512 vpatches and the keccak vpatches
   comparing the number of bytes contained in each.
6] Begin using the new `vk.pl` (V Keccak), and ensure that our vtree is
   accurate.
7] Compare the press-path of the original SHA512 vpatches with the press-path of
   the new keccak vpatches.
8] Conduct a full press of the original SHA512 trb vtree, and a full press of
   the new keccak trb vtree, then diff the pressed outputs.
9] Press the keccak trb vtree and `make` trb.

How to read this post:  You will find that most of what follows is C-style
comments in between executed shell commands.  The comments are there to provide
some colour and context to the commands.

-------------------------------------------------------------------------------

// First let's set up a sandbox in which to do this work

mod6@gentoo ~ $ mkdir trb_keccak_regrind_noUTF8
mod6@gentoo ~ $ cd trb_keccak_regrind_noUTF8 

// We are going to use my last non-genesis, non-keccak V to simply gather the
// press-order of the current TRB vtree.  We will use this ordered list to
// automate our way through the process of creating the new keccak vpatches.

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ curl -sL "http://thebitcoin.foundation/v/V-20180222.tar.gz" -O
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ curl -sL "http://thebitcoin.foundation/v/V-20180222.tar.gz.mod6.sig" -O

// Always verify the signatures!

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ gpg --import ~/pubkeys/mod6.asc
gpg: key B71EADAF: "mod6 (mod6) " not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ gpg --verify V-20180222.tar.gz.mod6.sig V-20180222.tar.gz
gpg: Signature made Thu Feb 22 21:19:30 2018  using RSA key ID B71EADAF
gpg: Good signature from "mod6 (mod6) "
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 027A 8D7C 0FB8 A166 4372  0F40 7217 05A8 B71E ADAF

// Extract V

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ tar -xf V-20180222.tar.gz

// Set up our .wot with only mod6's key at this time

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ mkdir .wot
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ cd .wot/
mod6@gentoo ~/trb_keccak_regrind_noUTF8/.wot $ cp ~/pubkeys/mod6.asc .
mod6@gentoo ~/trb_keccak_regrind_noUTF8/.wot $ cd ..

// Now we're going to pull all of the existing vpatches from thebitcoin.foundation

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./v.pl i http://thebitcoin.foundation
Full vpatch sync complete to "/home/mod6/trb_keccak_regrind_noUTF8/patches"
Seal sync complete to "/home/mod6/trb_keccak_regrind_noUTF8/.seals"

// Let's check and see what we have.

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ls -al
total 128
drwxr-xr-x  5 mod6 mod6  4096 Jan  9 02:28 .
drwxr-xr-x 75 mod6 mod6  4096 Jan  9 02:28 ..
drwxr-xr-x  2 mod6 mod6 12288 Jan  9 02:27 .seals
drwxr-xr-x  2 mod6 mod6  4096 Jan  9 02:26 .wot
-rw-r--r--  1 mod6 mod6 16986 Jan  9 02:25 V-20180222.tar.gz
-rw-r--r--  1 mod6 mod6   834 Jan  9 02:25 V-20180222.tar.gz.mod6.sig
drwxr-xr-x  2 mod6 mod6  4096 Jan  9 02:27 patches
-rwxr-xr-x  1 mod6 mod6 34438 Feb 22  2018 v.pl
-rw-r--r--  1 mod6 mod6   834 Feb 22  2018 v.pl.mod6.sig
-rwxr-xr-x  1 mod6 mod6  1997 Feb 22  2018 v_quick_start.txt
-rw-r--r--  1 mod6 mod6   834 Feb 22  2018 v_quick_start.txt.mod6.sig
-rwxr-xr-x  1 mod6 mod6 21207 Feb 22  2018 v_users_manual.txt
-rw-r--r--  1 mod6 mod6   834 Feb 22  2018 v_users_manual.txt.mod6.sig

// Let's double check the version (again, non-keccak).

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./v.pl v
################################################################################
#               ..::[ The Bitcoin Foundation: V ]::..                          #
#                                                                              #
#     Version: 99993 K                                                         #
#      Author: mod6                                                            #
# Fingerprint: 0x027A8D7C0FB8A16643720F40721705A8B71EADAF                      #
#                                                                              #
################################################################################

// Let's also grab a SHA512 sum of `v.pl` for good measure

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ sha512sum v.pl
30b86a1dc30c6fb8df9e15c7380270106e309391887ae8bc7ecd7aa664e1837a71092910a8b15534cffc2a75c1911302d1d8b3eedf34bf3fb41c3027d164c347  v.pl

// List the original SHA512 vtree flow

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./v.pl f
genesis.vpatch (mod6)
bitcoin-asciilifeform.1.vpatch (mod6)
rm_rf_upnp.vpatch (mod6)
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch (mod6)
bitcoin-asciilifeform.2-https_snipsnip.vpatch (mod6)
bitcoin-asciilifeform.4-goodbye-win32.vpatch (mod6)
asciilifeform_dnsseed_snipsnip.vpatch (mod6)
asciilifeform_zap_hardcoded_seeds.vpatch (mod6)
asciilifeform-kills-integer-retardation.vpatch (mod6)
asciilifeform_zap_showmyip_crud.vpatch (mod6)
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch (mod6)
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch (mod6)
mod6_fix_dumpblock_params.vpatch (mod6)
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch (mod6)
bitcoin-v0_5_3_1-rev_bump.7.vpatch (mod6)
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch (mod6)
asciilifeform_orphanage_thermonuke.vpatch (mod6)
asciilifeform_and_now_we_have_eatblock.vpatch (mod6)
bitcoin-v0_5_3-db_config.6.vpatch (mod6)
asciilifeform_tx-orphanage_amputation.vpatch (mod6)
asciilifeform_maxint_locks_corrected.vpatch (mod6)
asciilifeform_lets_lose_testnet.vpatch (mod6)
asciilifeform_add_verifyall_option.vpatch (mod6)
programmable-versionstring.vpatch (mod6)
mod6_der_high_low_s.vpatch (mod6)
malleus_mikehearnificarum.vpatch (mod6)
makefiles.vpatch (mod6)
asciilifeform_aggressive_pushgetblocks.vpatch (mod6)

// List the actual press path from genesis.vpatch through asciilifeform_aggressive_pushgetblocks.vpatch

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./v.pl pp asciilifeform_aggressive_pushgetblocks.vpatch
genesis.vpatch (mod6)
bitcoin-asciilifeform.1.vpatch (mod6)
rm_rf_upnp.vpatch (mod6)
bitcoin-asciilifeform.2-https_snipsnip.vpatch (mod6)
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch (mod6)
bitcoin-asciilifeform.4-goodbye-win32.vpatch (mod6)
bitcoin-v0_5_3-db_config.6.vpatch (mod6)
bitcoin-v0_5_3_1-rev_bump.7.vpatch (mod6)
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch (mod6)
asciilifeform-kills-integer-retardation.vpatch (mod6)
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch (mod6)
asciilifeform_dnsseed_snipsnip.vpatch (mod6)
asciilifeform_maxint_locks_corrected.vpatch (mod6)
asciilifeform_orphanage_thermonuke.vpatch (mod6)
asciilifeform_tx-orphanage_amputation.vpatch (mod6)
asciilifeform_zap_hardcoded_seeds.vpatch (mod6)
asciilifeform_zap_showmyip_crud.vpatch (mod6)
mod6_fix_dumpblock_params.vpatch (mod6)
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch (mod6)
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch (mod6)
asciilifeform_and_now_we_have_eatblock.vpatch (mod6)
asciilifeform_lets_lose_testnet.vpatch (mod6)
asciilifeform_add_verifyall_option.vpatch (mod6)
programmable-versionstring.vpatch (mod6)
malleus_mikehearnificarum.vpatch (mod6)
mod6_der_high_low_s.vpatch (mod6)
makefiles.vpatch (mod6)
asciilifeform_aggressive_pushgetblocks.vpatch (mod6)

// Let's setup some directories to enable us to create the new keccak vpatches,
// and then output them to a separate directory (keccak_vtree) and allow another
// place for some comparisons (compare_sha512_ksum_vpatches).

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ mkdir -p a b keccak_vtree compare_sha512_ksum_vpatches

// We are going to create an array of vpatches in their press-path order.  We'll
// use this to partially automate the regrind process.  I use the word partially
// here, because with this full regrind of the TRB vtree, we have the unique
// opportunity to remove the UTF8 character from genesis.vpatch.  So we'll leave
// the genesis.vpatch out of our saved array as we'll be regrinding that vpatch
// "by hand".

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ TRB_VTREE=$(./v.pl pp asciilifeform_aggressive_pushgetblocks.vpatch | sed 's/ (mod6)$//' | grep -v "genesis.vpatch" | xargs)

// Let's print out our TRB_VTREE array containing the in-order press-path, minus genesis.vpatch

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ for i in ${TRB_VTREE[@]}; do echo "$i"; done
bitcoin-asciilifeform.1.vpatch
rm_rf_upnp.vpatch
bitcoin-asciilifeform.2-https_snipsnip.vpatch
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
bitcoin-asciilifeform.4-goodbye-win32.vpatch
bitcoin-v0_5_3-db_config.6.vpatch
bitcoin-v0_5_3_1-rev_bump.7.vpatch
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
asciilifeform-kills-integer-retardation.vpatch
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
asciilifeform_dnsseed_snipsnip.vpatch
asciilifeform_maxint_locks_corrected.vpatch
asciilifeform_orphanage_thermonuke.vpatch
asciilifeform_tx-orphanage_amputation.vpatch
asciilifeform_zap_hardcoded_seeds.vpatch
asciilifeform_zap_showmyip_crud.vpatch
mod6_fix_dumpblock_params.vpatch
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
asciilifeform_and_now_we_have_eatblock.vpatch
asciilifeform_lets_lose_testnet.vpatch
asciilifeform_add_verifyall_option.vpatch
programmable-versionstring.vpatch
malleus_mikehearnificarum.vpatch
mod6_der_high_low_s.vpatch
makefiles.vpatch
asciilifeform_aggressive_pushgetblocks.vpatch

// Let's check that we have a `ksum` and `vdiff` at the ready for use.

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ command -v ksum
/usr/bin/ksum
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ command -v vdiff
/usr/bin/vdiff
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ksum /usr/bin/vdiff
11cd16a1a1d380391e5d505926ee0c284d7ad58bce04b055ecb30d693d9fc75621638866102d6cf8c650fe2cc5d1a66a49136bdcb3aa184a5a34e7fff0653436  /usr/bin/vdiff

// Let's first prove the UTF-8 character exists in the original SHA512
// genesis.vpatch, blogpost here [ also see original post ] 

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ vim check_nonascii_bytes.pl
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ chmod +x check_nonascii_bytes.pl 

// Iterate through all of the original SHA512 vpatches and feed them into check_nonascii_bytes.pl

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ for i in `ls patches`; do echo "vpatch: $i" && cat patches/$i | ./check_nonascii_bytes.pl ; done
vpatch: asciilifeform-kills-integer-retardation.vpatch
vpatch: asciilifeform_add_verifyall_option.vpatch
vpatch: asciilifeform_aggressive_pushgetblocks.vpatch
vpatch: asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
vpatch: asciilifeform_and_now_we_have_eatblock.vpatch
vpatch: asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
vpatch: asciilifeform_dnsseed_snipsnip.vpatch
vpatch: asciilifeform_lets_lose_testnet.vpatch
vpatch: asciilifeform_maxint_locks_corrected.vpatch
vpatch: asciilifeform_orphanage_thermonuke.vpatch
vpatch: asciilifeform_tx-orphanage_amputation.vpatch
vpatch: asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
vpatch: asciilifeform_zap_hardcoded_seeds.vpatch
vpatch: asciilifeform_zap_showmyip_crud.vpatch
vpatch: bitcoin-asciilifeform.1.vpatch
vpatch: bitcoin-asciilifeform.2-https_snipsnip.vpatch
vpatch: bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
vpatch: bitcoin-asciilifeform.4-goodbye-win32.vpatch
vpatch: bitcoin-v0_5_3-db_config.6.vpatch
vpatch: bitcoin-v0_5_3_1-rev_bump.7.vpatch
vpatch: bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
vpatch: genesis.vpatch
NON-7BIT-ASCII VALUE IN SOURCE FILE: a/bitcoin/src/util.h ; BYTE VALUE: e2
NON-7BIT-ASCII VALUE IN SOURCE FILE: a/bitcoin/src/util.h ; BYTE VALUE: 80
NON-7BIT-ASCII VALUE IN SOURCE FILE: a/bitcoin/src/util.h ; BYTE VALUE: 94
vpatch: makefiles.vpatch
vpatch: malleus_mikehearnificarum.vpatch
vpatch: mod6_der_high_low_s.vpatch
vpatch: mod6_fix_dumpblock_params.vpatch
vpatch: programmable-versionstring.vpatch
vpatch: rm_rf_upnp.vpatch

// As we can see from the above output, check_nonascii_bytes.pl found the UTF8
// character in genesis.vpatch

// Press only the original SHA512 genesis.vpatch "by hand" so we can edit util.h
// and remove the UTF8 character.

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ patch -F 0 -E --dir b -p1 < patches/genesis.vpatch
patching file bitcoin/.gitignore
patching file bitcoin/COPYING
patching file bitcoin/src/base58.h
patching file bitcoin/src/bignum.h
patching file bitcoin/src/bitcoinrpc.cpp
patching file bitcoin/src/bitcoinrpc.h
patching file bitcoin/src/checkpoints.cpp
patching file bitcoin/src/checkpoints.h
patching file bitcoin/src/crypter.cpp
patching file bitcoin/src/crypter.h
patching file bitcoin/src/db.cpp
patching file bitcoin/src/db.h
patching file bitcoin/src/headers.h
patching file bitcoin/src/init.cpp
patching file bitcoin/src/init.h
patching file bitcoin/src/irc.cpp
patching file bitcoin/src/irc.h
patching file bitcoin/src/json/LICENSE.txt
patching file bitcoin/src/json/json_spirit.h
patching file bitcoin/src/json/json_spirit_error_position.h
patching file bitcoin/src/json/json_spirit_reader.cpp
patching file bitcoin/src/json/json_spirit_reader.h
patching file bitcoin/src/json/json_spirit_reader_template.h
patching file bitcoin/src/json/json_spirit_stream_reader.h
patching file bitcoin/src/json/json_spirit_utils.h
patching file bitcoin/src/json/json_spirit_value.cpp
patching file bitcoin/src/json/json_spirit_value.h
patching file bitcoin/src/json/json_spirit_writer.cpp
patching file bitcoin/src/json/json_spirit_writer.h
patching file bitcoin/src/json/json_spirit_writer_template.h
patching file bitcoin/src/key.h
patching file bitcoin/src/keystore.cpp
patching file bitcoin/src/keystore.h
patching file bitcoin/src/main.cpp
patching file bitcoin/src/main.h
patching file bitcoin/src/makefile.linux-mingw
patching file bitcoin/src/makefile.unix
patching file bitcoin/src/net.cpp
patching file bitcoin/src/net.h
patching file bitcoin/src/noui.h
patching file bitcoin/src/obj/.gitignore
patching file bitcoin/src/obj/nogui/.gitignore
patching file bitcoin/src/obj/test/.gitignore
patching file bitcoin/src/obj-test/.gitignore
patching file bitcoin/src/protocol.cpp
patching file bitcoin/src/protocol.h
patching file bitcoin/src/qtui.h
patching file bitcoin/src/script.cpp
patching file bitcoin/src/script.h
patching file bitcoin/src/serialize.h
patching file bitcoin/src/strlcpy.h
patching file bitcoin/src/test/Checkpoints_tests.cpp
patching file bitcoin/src/test/DoS_tests.cpp
patching file bitcoin/src/test/README
patching file bitcoin/src/test/base58_tests.cpp
patching file bitcoin/src/test/base64_tests.cpp
patching file bitcoin/src/test/miner_tests.cpp
patching file bitcoin/src/test/script_tests.cpp
patching file bitcoin/src/test/test_bitcoin.cpp
patching file bitcoin/src/test/transaction_tests.cpp
patching file bitcoin/src/test/uint160_tests.cpp
patching file bitcoin/src/test/uint256_tests.cpp
patching file bitcoin/src/test/util_tests.cpp
patching file bitcoin/src/uint256.h
patching file bitcoin/src/util.cpp
patching file bitcoin/src/util.h
patching file bitcoin/src/wallet.cpp
patching file bitcoin/src/wallet.h

// Change directories to b/bitcoin/src so we can edit util.h

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ cd b/bitcoin/src/

// Edit util.h and remove the UTF8 character from line 118.

mod6@gentoo ~/trb_keccak_regrind_noUTF8/b/bitcoin/src $ vim util.h

// Change directories back so we can continue on

mod6@gentoo ~/trb_keccak_regrind_noUTF8/b/bitcoin/src $ cd ../../..

// Now that the UTF8 character has been removed in directory 'b', vdiff 'a'
// (presently empty) with 'b' and save the output as the new keccak genesis.vpatch

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ vdiff a b > keccak_vtree/genesis.vpatch

// Manually clean up 'a' and copy over everything from 'b' to 'a'.
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ rm -rf a
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ cp -pr b a

// Now we programmatically create the rest of the keccak vpatches.
// To do this, we will loop over the entire TRB_VTREE array; on each iteration
// patching each original SHA512 vpatch into directory 'b'.  Then we will use
// the keccak 'vdiff' tool to compare 'a' and 'b' saving the output into a
// new keccak vpatch in the 'keccak_vtree' directory with the same name as the
// original.
// For the last step of each iteration, we remove directory 'a', and copy all of
// directory 'b' into directory 'a'.  We do this for each existing TRB vpatch.

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ for i in ${TRB_VTREE[@]}; do echo "Patching vpatch: $i"; patch -F 0 -E --dir b -p1 < patches/$i; vdiff a b > keccak_vtree/$i; rm -rf a; cp -pr b a; done
Patching vpatch: bitcoin-asciilifeform.1.vpatch
patching file bitcoin/src/bitcoinrpc.cpp
patching file bitcoin/src/db.cpp
patching file bitcoin/src/headers.h
patching file bitcoin/src/init.cpp
patching file bitcoin/src/qtui.h
patching file bitcoin/src/util.h
patching file bitcoin/src/wallet.cpp
Patching vpatch: rm_rf_upnp.vpatch
patching file bitcoin/src/db.cpp
patching file bitcoin/src/init.cpp
patching file bitcoin/src/main.cpp
patching file bitcoin/src/main.h
patching file bitcoin/src/makefile.linux-mingw
patching file bitcoin/src/makefile.unix
patching file bitcoin/src/net.cpp
Patching vpatch: bitcoin-asciilifeform.2-https_snipsnip.vpatch
patching file bitcoin/src/bitcoinrpc.cpp
patching file bitcoin/src/init.cpp
patching file bitcoin/src/makefile.linux-mingw
patching file bitcoin/src/makefile.unix
Patching vpatch: bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
patching file bitcoin/src/main.cpp
patching file bitcoin/src/main.h
Patching vpatch: bitcoin-asciilifeform.4-goodbye-win32.vpatch
patching file bitcoin/src/bitcoinrpc.cpp
patching file bitcoin/src/crypter.cpp
patching file bitcoin/src/db.cpp
patching file bitcoin/src/headers.h
patching file bitcoin/src/init.cpp
patching file bitcoin/src/main.h
patching file bitcoin/src/makefile.linux-mingw
patching file bitcoin/src/net.cpp
patching file bitcoin/src/net.h
patching file bitcoin/src/protocol.cpp
patching file bitcoin/src/script.h
patching file bitcoin/src/serialize.h
patching file bitcoin/src/uint256.h
patching file bitcoin/src/util.cpp
patching file bitcoin/src/util.h
Patching vpatch: bitcoin-v0_5_3-db_config.6.vpatch
patching file bitcoin/src/db.cpp
Patching vpatch: bitcoin-v0_5_3_1-rev_bump.7.vpatch
patching file bitcoin/src/serialize.h
Patching vpatch: bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
patching file bitcoin/src/makefile.unix
Patching vpatch: asciilifeform-kills-integer-retardation.vpatch
patching file bitcoin/src/bitcoinrpc.cpp
patching file bitcoin/src/util.h
Patching vpatch: asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
patching file bitcoin/src/bitcoinrpc.cpp
Patching vpatch: asciilifeform_dnsseed_snipsnip.vpatch
patching file bitcoin/src/init.cpp
patching file bitcoin/src/net.cpp
Patching vpatch: asciilifeform_maxint_locks_corrected.vpatch
patching file bitcoin/src/db.cpp
Patching vpatch: asciilifeform_orphanage_thermonuke.vpatch
patching file bitcoin/src/main.cpp
Patching vpatch: asciilifeform_tx-orphanage_amputation.vpatch
patching file bitcoin/src/main.cpp
patching file bitcoin/src/main.h
Patching vpatch: asciilifeform_zap_hardcoded_seeds.vpatch
patching file bitcoin/src/net.cpp
Patching vpatch: asciilifeform_zap_showmyip_crud.vpatch
patching file bitcoin/src/net.cpp
Patching vpatch: mod6_fix_dumpblock_params.vpatch
patching file bitcoin/src/bitcoinrpc.cpp
Patching vpatch: asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
patching file bitcoin/src/init.cpp
patching file bitcoin/src/irc.cpp
patching file bitcoin/src/net.cpp
patching file bitcoin/src/net.h
patching file bitcoin/src/protocol.cpp
patching file bitcoin/src/protocol.h
Patching vpatch: asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
patching file bitcoin/src/init.cpp
patching file bitcoin/src/irc.cpp
patching file bitcoin/src/irc.h
patching file bitcoin/src/makefile.unix
patching file bitcoin/src/net.cpp
patching file bitcoin/src/net.h
patching file bitcoin/src/serialize.h
Patching vpatch: asciilifeform_and_now_we_have_eatblock.vpatch
patching file bitcoin/src/bitcoinrpc.cpp
patching file bitcoin/src/init.cpp
patching file bitcoin/src/util.cpp
patching file bitcoin/src/util.h
Patching vpatch: asciilifeform_lets_lose_testnet.vpatch
patching file bitcoin/src/base58.h
patching file bitcoin/src/bitcoinrpc.cpp
patching file bitcoin/src/checkpoints.cpp
patching file bitcoin/src/init.cpp
patching file bitcoin/src/main.cpp
patching file bitcoin/src/protocol.h
patching file bitcoin/src/util.cpp
patching file bitcoin/src/util.h
Patching vpatch: asciilifeform_add_verifyall_option.vpatch
patching file bitcoin/src/init.cpp
patching file bitcoin/src/main.cpp
patching file bitcoin/src/util.cpp
patching file bitcoin/src/util.h
Patching vpatch: programmable-versionstring.vpatch
patching file bitcoin/src/init.cpp
patching file bitcoin/src/knobs.h
patching file bitcoin/src/main.cpp
patching file bitcoin/src/makefile.unix
patching file bitcoin/src/net.h
patching file bitcoin/src/serialize.h
patching file bitcoin/src/util.cpp
patching file bitcoin/src/util.h
Patching vpatch: malleus_mikehearnificarum.vpatch
patching file bitcoin/src/main.cpp
Patching vpatch: mod6_der_high_low_s.vpatch
patching file bitcoin/src/init.cpp
patching file bitcoin/src/key.h
patching file bitcoin/src/util.cpp
patching file bitcoin/src/util.h
Patching vpatch: makefiles.vpatch
patching file bitcoin/Makefile
patching file bitcoin/bin/Makefile
patching file bitcoin/bin/Manifest.sha512
patching file bitcoin/build/Makefile
patching file bitcoin/build/Makefile.rotor
patching file bitcoin/deps/Makefile
patching file bitcoin/deps/Manifest.sha512
patching file bitcoin/src/db.cpp
patching file bitcoin/src/init.cpp
patching file bitcoin/src/main.cpp
patching file bitcoin/verify.mk
Patching vpatch: asciilifeform_aggressive_pushgetblocks.vpatch
patching file bitcoin/src/main.cpp
patching file bitcoin/src/net.cpp
patching file bitcoin/src/net.h      

// Let's prove that no UTF8 characters exist in the keccak vpatches

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ for i in `ls keccak_vtree`; do echo "vpatch: $i" && cat keccak_vtree/$i | ./check_nonascii_bytes.pl ; done
vpatch: asciilifeform-kills-integer-retardation.vpatch
vpatch: asciilifeform_add_verifyall_option.vpatch
vpatch: asciilifeform_aggressive_pushgetblocks.vpatch
vpatch: asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
vpatch: asciilifeform_and_now_we_have_eatblock.vpatch
vpatch: asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
vpatch: asciilifeform_dnsseed_snipsnip.vpatch
vpatch: asciilifeform_lets_lose_testnet.vpatch
vpatch: asciilifeform_maxint_locks_corrected.vpatch
vpatch: asciilifeform_orphanage_thermonuke.vpatch
vpatch: asciilifeform_tx-orphanage_amputation.vpatch
vpatch: asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
vpatch: asciilifeform_zap_hardcoded_seeds.vpatch
vpatch: asciilifeform_zap_showmyip_crud.vpatch
vpatch: bitcoin-asciilifeform.1.vpatch
vpatch: bitcoin-asciilifeform.2-https_snipsnip.vpatch
vpatch: bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
vpatch: bitcoin-asciilifeform.4-goodbye-win32.vpatch
vpatch: bitcoin-v0_5_3-db_config.6.vpatch
vpatch: bitcoin-v0_5_3_1-rev_bump.7.vpatch
vpatch: bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
vpatch: genesis.vpatch
vpatch: makefiles.vpatch
vpatch: malleus_mikehearnificarum.vpatch
vpatch: mod6_der_high_low_s.vpatch
vpatch: mod6_fix_dumpblock_params.vpatch
vpatch: programmable-versionstring.vpatch
vpatch: rm_rf_upnp.vpatch

// Looks good!

// Now we set another bash array up with the signatories trimmed off the end of the line

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ TRB_COMPARE=$(./v.pl pp asciilifeform_aggressive_pushgetblocks.vpatch | sed 's/ (mod6)$//' | xargs)                                                

// Let's iterate over the array and assure ourselves that we have the desired strings at each index

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ for i in ${TRB_COMPARE[@]}; do echo "$i"; done
genesis.vpatch
bitcoin-asciilifeform.1.vpatch
rm_rf_upnp.vpatch
bitcoin-asciilifeform.2-https_snipsnip.vpatch
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
bitcoin-asciilifeform.4-goodbye-win32.vpatch
bitcoin-v0_5_3-db_config.6.vpatch
bitcoin-v0_5_3_1-rev_bump.7.vpatch
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
asciilifeform-kills-integer-retardation.vpatch
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
asciilifeform_dnsseed_snipsnip.vpatch
asciilifeform_maxint_locks_corrected.vpatch
asciilifeform_orphanage_thermonuke.vpatch
asciilifeform_tx-orphanage_amputation.vpatch
asciilifeform_zap_hardcoded_seeds.vpatch
asciilifeform_zap_showmyip_crud.vpatch
mod6_fix_dumpblock_params.vpatch
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
asciilifeform_and_now_we_have_eatblock.vpatch
asciilifeform_lets_lose_testnet.vpatch
asciilifeform_add_verifyall_option.vpatch
programmable-versionstring.vpatch
malleus_mikehearnificarum.vpatch
mod6_der_high_low_s.vpatch
makefiles.vpatch
asciilifeform_aggressive_pushgetblocks.vpatch

// Iterate over the TRB_COMPARE array, and in press-path order, diff the
// original SHA512 vpatches against the new keccak vpatches and save the
// output into compare_sha512_ksum_vpatches directory.

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ for i in ${TRB_COMPARE[@]}; do j=$(echo -n "$i"| sed 's/.vpatch$//'); diff -uNr patches/$i keccak_vtree/$i > compare_sha512_ksum_vpatches/$j-compare.diff; done

// Let's move into the compare_sha512_ksum_vpatches directory and see what we have

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ cd compare_sha512_ksum_vpatches/
mod6@gentoo ~/trb_keccak_regrind_noUTF8/compare_sha512_ksum_vpatches $ ls
asciilifeform-kills-integer-retardation-compare.diff                         bitcoin-asciilifeform.1-compare.diff
asciilifeform_add_verifyall_option-compare.diff                              bitcoin-asciilifeform.2-https_snipsnip-compare.diff
asciilifeform_aggressive_pushgetblocks-compare.diff                          bitcoin-asciilifeform.3-turdmeister-alert-snip-compare.diff
asciilifeform_and_now_we_have_block_dumper_corrected-compare.diff            bitcoin-asciilifeform.4-goodbye-win32-compare.diff
asciilifeform_and_now_we_have_eatblock-compare.diff                          bitcoin-v0_5_3-db_config.6-compare.diff
asciilifeform_dns_thermonyukyoolar_kleansing-compare.diff                    bitcoin-v0_5_3_1-rev_bump.7-compare.diff
asciilifeform_dnsseed_snipsnip-compare.diff                                  bitcoin-v0_5_3_1-static_makefile_v002.8-compare.diff
asciilifeform_lets_lose_testnet-compare.diff                                 genesis-compare.diff
asciilifeform_maxint_locks_corrected-compare.diff                            makefiles-compare.diff
asciilifeform_orphanage_thermonuke-compare.diff                              malleus_mikehearnificarum-compare.diff
asciilifeform_tx-orphanage_amputation-compare.diff                           mod6_der_high_low_s-compare.diff
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip-compare.diff  mod6_fix_dumpblock_params-compare.diff
asciilifeform_zap_hardcoded_seeds-compare.diff                               programmable-versionstring-compare.diff
asciilifeform_zap_showmyip_crud-compare.diff                                 rm_rf_upnp-compare.diff

// Alright, now let's move back out to the main sandbox directory 'trb_keccak_regrind_noUTF8'

mod6@gentoo ~/trb_keccak_regrind_noUTF8/compare_sha512_ksum_vpatches $ cd ..

// Create bash array TRB_VTREE_DIFF_COMPARE to hold the names of the diffs of vpatches

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ TRB_VTREE_DIFF_COMPARE=$(./v.pl pp asciilifeform_aggressive_pushgetblocks.vpatch | sed 's/.vpatch (mod6)$/-compare.diff/' | xargs)

// Iterate over the TRB_VTREE_DIFF_COMPARE array and print our strings to
// ensure they are what we expect

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ for i in ${TRB_VTREE_DIFF_COMPARE[@]}; do echo "$i"; done
genesis-compare.diff
bitcoin-asciilifeform.1-compare.diff
rm_rf_upnp-compare.diff
bitcoin-asciilifeform.2-https_snipsnip-compare.diff
bitcoin-asciilifeform.3-turdmeister-alert-snip-compare.diff
bitcoin-asciilifeform.4-goodbye-win32-compare.diff
bitcoin-v0_5_3-db_config.6-compare.diff
bitcoin-v0_5_3_1-rev_bump.7-compare.diff
bitcoin-v0_5_3_1-static_makefile_v002.8-compare.diff
asciilifeform-kills-integer-retardation-compare.diff
asciilifeform_and_now_we_have_block_dumper_corrected-compare.diff
asciilifeform_dnsseed_snipsnip-compare.diff
asciilifeform_maxint_locks_corrected-compare.diff
asciilifeform_orphanage_thermonuke-compare.diff
asciilifeform_tx-orphanage_amputation-compare.diff
asciilifeform_zap_hardcoded_seeds-compare.diff
asciilifeform_zap_showmyip_crud-compare.diff
mod6_fix_dumpblock_params-compare.diff
asciilifeform_dns_thermonyukyoolar_kleansing-compare.diff
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip-compare.diff
asciilifeform_and_now_we_have_eatblock-compare.diff
asciilifeform_lets_lose_testnet-compare.diff
asciilifeform_add_verifyall_option-compare.diff
programmable-versionstring-compare.diff
malleus_mikehearnificarum-compare.diff
mod6_der_high_low_s-compare.diff
makefiles-compare.diff
asciilifeform_aggressive_pushgetblocks-compare.diff

// Looks good.

// Move back into the compare_sha512_ksum_vpatches directory

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ cd compare_sha512_ksum_vpatches

// Now iterate over the array and print all of the diffs of vpatches in
// press-path order.  The only changes found should just be the hashes, with
// the important exception of the removal of the UTF8 character from the
// genesis.vpatch

mod6@gentoo ~/trb_keccak_regrind_noUTF8/compare_sha512_ksum_vpatches $ for i in ${TRB_VTREE_DIFF_COMPARE[@]}; do cat $i; done
--- patches/genesis.vpatch	2015-08-21 23:04:20.000000000 +0000
+++ keccak_vtree/genesis.vpatch	2019-01-09 03:28:42.765942930 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/.gitignore b/bitcoin/.gitignore
 --- a/bitcoin/.gitignore false
-+++ b/bitcoin/.gitignore 9a57fba56bdaf8ac851e2a336013f03f354005dee6f12f6d472882b284dd5cdae09d0f57729d877c0cf7dfee0f8bea8b602492860ae703f3f5934de15c7514ae
++++ b/bitcoin/.gitignore 6654c7489c311585d7d327dea2e6605288709195898f48f1e6747dc5934ae34a20bfbe89f0ac41f878afea226a7f9da2b04c3e0672bd05f677506a2219738e97
 @@ -0,0 +1,21 @@
 +src/*.exe
 +src/bitcoin
@@ -25,7 +25,7 @@
 +.DS_Store
 diff -uNr a/bitcoin/COPYING b/bitcoin/COPYING
 --- a/bitcoin/COPYING false
-+++ b/bitcoin/COPYING e7f37a4eea93d09cdcfdd669a97f7a1ad3c1c96395f9517b33b396af03292fe97f27f630df1ec1d261fcf396e0e2d31f0ded4f50d5181046a0609a4ef0d71450
++++ b/bitcoin/COPYING eb63b0235e5d23876f57ed4eb3307fa00792e5706d83a55adf9f0997de434470c3ace8d16b146ff6ef0c42177c53a748c15bc63558e6f89db5276c5419fbacfe
 @@ -0,0 +1,19 @@
 +Copyright (c) 2009-2012 Bitcoin Developers
 +
@@ -48,7 +48,7 @@
 +THE SOFTWARE.
 diff -uNr a/bitcoin/src/base58.h b/bitcoin/src/base58.h
 --- a/bitcoin/src/base58.h false
-+++ b/bitcoin/src/base58.h 14321c5769eb37d637e2c911f668edbe20d8b712494ea585d8201345d690b6e82341e2f0c6c4572013ca24208e077c05f0a82a4096017083b2be9709f37498ab
++++ b/bitcoin/src/base58.h c9414dd278719a028b904826086e3d241ac1402bbcbaf265c6e03b2dfe0451833a8e6cc11cdcc90e67e64c41056c9a2725cec1f0a6e251a0ef76835ba3d173b4
 @@ -0,0 +1,323 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin Developers
@@ -375,7 +375,7 @@
 +#endif
 diff -uNr a/bitcoin/src/bignum.h b/bitcoin/src/bignum.h
 --- a/bitcoin/src/bignum.h false
-+++ b/bitcoin/src/bignum.h 81f78bda68ebe0a6a4f5c0bea8c7c091e6056850bdd7cbb8dd68d9cb3e8662beb143668ba5c3f089d9b4ae32875fca6cb1cfbfffb02865812ba3222ce2fe6778
++++ b/bitcoin/src/bignum.h 50f0e628773c067ffd2e796319fed525c520b5f97640aafd2ee87b4834a018ed48772e8e347e088a4566d6e2cac9d836e2ed4a607457589635b6eb46e928d055
 @@ -0,0 +1,538 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -917,7 +917,7 @@
 +#endif
 diff -uNr a/bitcoin/src/bitcoinrpc.cpp b/bitcoin/src/bitcoinrpc.cpp
 --- a/bitcoin/src/bitcoinrpc.cpp false
-+++ b/bitcoin/src/bitcoinrpc.cpp a1812ac4e4425986e8574ebf837c6b1a84e4772e01b46e4e1caef098496226f7321a3fabc5249b55ce6365863f2c25fef0005f4bcde7188603b0805c77256bc0
++++ b/bitcoin/src/bitcoinrpc.cpp 631071b1ecb5be290ec5c3976c3262f5c05813e0612912890bcc97cf25af5696fd20c46bb9fb50823df1b6bea2c35aeafdea4462abc50933a10d1cc13a19fe69
 @@ -0,0 +1,2573 @@
 +// Copyright (c) 2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -3494,7 +3494,7 @@
 +#endif
 diff -uNr a/bitcoin/src/bitcoinrpc.h b/bitcoin/src/bitcoinrpc.h
 --- a/bitcoin/src/bitcoinrpc.h false
-+++ b/bitcoin/src/bitcoinrpc.h 59cbcd0388f17cf7c4ea6c69c4034a0ced5c05d1d9ab22a1aaae0af7b95c3d3245657a049110a45ad9dd66f41a793082caab6a8a79441b93fcbfa4b4ce44574d
++++ b/bitcoin/src/bitcoinrpc.h fb1e5c5d952bc34cd050609b16eb3b4a659aafaee1bf070969b4eedf88adaec3b095977daaf537e0515a32c0e99f2fb893bf38c59c906333ba21b52b51569d93
 @@ -0,0 +1,7 @@
 +// Copyright (c) 2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -3505,7 +3505,7 @@
 +int CommandLineRPC(int argc, char *argv[]);
 diff -uNr a/bitcoin/src/checkpoints.cpp b/bitcoin/src/checkpoints.cpp
 --- a/bitcoin/src/checkpoints.cpp false
-+++ b/bitcoin/src/checkpoints.cpp 0b7ca89fd0a4045ef9553ff439c4fd39dddd92069ca97b29decbc31d2f96a004e0015b453dbf4c4669555ed997ffd02f1066c43f346feb8cd0ade0b80772e863
++++ b/bitcoin/src/checkpoints.cpp 423fe692637903b32d0daea46d9752322a7615ce3cd3cc3ce1f6fb2bf80b8f3c5285db91f0be83c5ab97c951be6a8e46bb2b1a8fa7bdce9780fcb6e5c54e2648
 @@ -0,0 +1,65 @@
 +// Copyright (c) 2009-2012 The Bitcoin developers
 +// Distributed under the MIT/X11 software license, see the accompanying
@@ -3574,7 +3574,7 @@
 +}
 diff -uNr a/bitcoin/src/checkpoints.h b/bitcoin/src/checkpoints.h
 --- a/bitcoin/src/checkpoints.h false
-+++ b/bitcoin/src/checkpoints.h 8bd5d4bb576d5755203bc207138e556266ba6015d0f673bcd6d94b3272291bd637f019849caee47b6ae64e412439974d1409ec14c784dd430c88f252f856f266
++++ b/bitcoin/src/checkpoints.h 2755d835e829219980034d39868269d3bc056b8e114aaa523409e87a8cfb988b7d8faea603833b16a35d7c48a9a03cadbcddb7c014e87ffae37aafcf42ea0b79
 @@ -0,0 +1,29 @@
 +// Copyright (c) 2011 The Bitcoin developers
 +// Distributed under the MIT/X11 software license, see the accompanying
@@ -3607,7 +3607,7 @@
 +#endif
 diff -uNr a/bitcoin/src/crypter.cpp b/bitcoin/src/crypter.cpp
 --- a/bitcoin/src/crypter.cpp false
-+++ b/bitcoin/src/crypter.cpp 64dddc1348603ea005f4f5297ea6d51074fead3dd8d1256c1a4c2a678fef1abcb58d148ebb9eb3716e200e27abf6d07c19d1cf6fcbb4e1b9dcba59fde8eae324
++++ b/bitcoin/src/crypter.cpp 7c19985746214e45bf75c9044c5f13230195376e74b6c013659cfbe89390fd575e7bb1935f82f0d42f01b93f58ee980af16bd99101e4241eabd585b6fec09b0f
 @@ -0,0 +1,132 @@
 +// Copyright (c) 2011 The Bitcoin Developers
 +// Distributed under the MIT/X11 software license, see the accompanying
@@ -3743,7 +3743,7 @@
 +}
 diff -uNr a/bitcoin/src/crypter.h b/bitcoin/src/crypter.h
 --- a/bitcoin/src/crypter.h false
-+++ b/bitcoin/src/crypter.h 03b2badb8a68951e41fddea52aa38e5fb3838f1c7f6a9eb7c7297a32455176fa1f75df422dd6a9e41e8e75d61d368d5ef62cc7e558f4d4c32e3cb437a685be2a
++++ b/bitcoin/src/crypter.h 8797921c14ce0be3e48a95ac27d4906cc208ff9e5f44868aca5309b54112854ac13863b8d59dff14cf7869f8df6d4540f7c153945b6d6c917379065aedba7cdb
 @@ -0,0 +1,96 @@
 +// Copyright (c) 2011 The Bitcoin Developers
 +// Distributed under the MIT/X11 software license, see the accompanying
@@ -3843,7 +3843,7 @@
 +#endif
 diff -uNr a/bitcoin/src/db.cpp b/bitcoin/src/db.cpp
 --- a/bitcoin/src/db.cpp false
-+++ b/bitcoin/src/db.cpp 6c7b584c387898ceee4c76d4bc56d7400105807885b5b497089f99849e04f57a2e5c775b206765f5900c3c83967c6e2a0100dab71f314b1d28b01caaa67667cc
++++ b/bitcoin/src/db.cpp b5486b3cb349b8ac9f3062359d595d28d076062390699fac3f5ad50e89c3c82b1842524c153b09859a46f7f1776c40be134f787b71761962d7170a7cdf8c3459
 @@ -0,0 +1,1069 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -4916,7 +4916,7 @@
 +}
 diff -uNr a/bitcoin/src/db.h b/bitcoin/src/db.h
 --- a/bitcoin/src/db.h false
-+++ b/bitcoin/src/db.h 1a4b9bd666180acf944d189ffd5b89da0f1c0d7b60223fe7f16f73a7d90bdd2a75b7d46805738ea3da36ae766b0aa4a5d29283b5f4ef8a77aae991cf990ae0cc
++++ b/bitcoin/src/db.h fdfe29057eebdd25ed05ec5f7e24489f4a84b11d064e787fc4297b31e872d4dee501050416728c3b2a62ee9b77269dffd04509b3fcad9091a2b63b32f817b32c
 @@ -0,0 +1,485 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -5405,7 +5405,7 @@
 +#endif
 diff -uNr a/bitcoin/src/headers.h b/bitcoin/src/headers.h
 --- a/bitcoin/src/headers.h false
-+++ b/bitcoin/src/headers.h bac815c59cd69f09371cbc605c3365056b02529d4fc0cd68026b6dc0304f12dafcda86479f52191f20f14b87c56006306e362020ba7a0651cce2bda87db547ac
++++ b/bitcoin/src/headers.h 4d28e9cd20caddb467b279fc8c18282f3690d1c5c8d2cbfcf1b9d4fc3ae2e009960ded1240b88fc23e2fe69d69410a9ffe50cfad1a3f3a87496bb0868d8cecf4
 @@ -0,0 +1,96 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -5505,7 +5505,7 @@
 +#endif
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
 --- a/bitcoin/src/init.cpp false
-+++ b/bitcoin/src/init.cpp 9ea336b2061c743c7f9fd590a02546616d8e3fd0dee8c9a15bb9a24e8e6138fb48f9b9be4b7452ce1e0eb4e69e8882d2b5f03ef2d6d0b50fdb9e0a869719ecfc
++++ b/bitcoin/src/init.cpp 1bb5d8af6051e25fc87ab7438b6dafc864be7792b04c6aa0d8942efe701b2b4abfcd1902b33cc4b1c2993668676e3c7d8f90bd6c075c70906d0c7e9c2db4e83b
 @@ -0,0 +1,550 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -6059,7 +6059,7 @@
 +}
 diff -uNr a/bitcoin/src/init.h b/bitcoin/src/init.h
 --- a/bitcoin/src/init.h false
-+++ b/bitcoin/src/init.h b98a9164befdea031d670d65eddf8dda79aa277e71114390b0f83ccefcf580d078b1b85bef27006ba4c429488eb26316f156023c33bf037b82a3283f8ffc3e83
++++ b/bitcoin/src/init.h aa2ac5386f11ab61ae761a82e90a3465ebde345c1092085003522b6353b129c16288527baadd17062566bf746c54535d658be1525bd6fd27bf0fa1db0953c04a
 @@ -0,0 +1,14 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -6077,7 +6077,7 @@
 +#endif
 diff -uNr a/bitcoin/src/irc.cpp b/bitcoin/src/irc.cpp
 --- a/bitcoin/src/irc.cpp false
-+++ b/bitcoin/src/irc.cpp fc9388561ae8af72ab6f10816cacd133746de668b500bae02c239b129dc5e190794a94d7569b7ecbd294844bfe3c2a3a2b5c4e2a0a5f3aa3170da498a8d0724b
++++ b/bitcoin/src/irc.cpp 775141f07ce491a331e51fe97b43d4f2d1891eb720fc6706d06747959653e8171cb46daa77efd73e202b1e1419f26036c92cc106de34d22245489b3f7b333bcb
 @@ -0,0 +1,440 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -6521,7 +6521,7 @@
 +#endif
 diff -uNr a/bitcoin/src/irc.h b/bitcoin/src/irc.h
 --- a/bitcoin/src/irc.h false
-+++ b/bitcoin/src/irc.h 960a1a96aabf8154dfe3619e5198f52cadc493d949ce647cba3dc4cbc69ab03c392f54c71f03a8e2d11070966d35a33eb7fea096d3799439d9583d32d0664e10
++++ b/bitcoin/src/irc.h ed3b395dc5d402e50fb6a46188ac5ac5ac249f9a0ff7eb026f66b1b3cb057c1fb660c76ec0626caddc056b36f208cb8951603316a49b2f2ea25721efe05b5b4d
 @@ -0,0 +1,14 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -6539,7 +6539,7 @@
 +#endif
 diff -uNr a/bitcoin/src/json/LICENSE.txt b/bitcoin/src/json/LICENSE.txt
 --- a/bitcoin/src/json/LICENSE.txt false
-+++ b/bitcoin/src/json/LICENSE.txt 881a2aebb27224d7b4101b97bad2b6dccd833968f2c7bfb5d3b9c06ec0a4f6b68ab10111ca247f1da024f475fb23ab3e96dc5b50226ec5df4dae75f0b98ba71c
++++ b/bitcoin/src/json/LICENSE.txt 36826c0eb701b0dceb3fa63898318089cc6574eb7ae37351a614837e9960807643b7fdf6882efb36366aed3754eae7cf888a80ca808e39b249f09c265ac3e4ff
 @@ -0,0 +1,24 @@
 +The MIT License
 +
@@ -6567,7 +6567,7 @@
 +OTHER DEALINGS IN THE SOFTWARE.
 diff -uNr a/bitcoin/src/json/json_spirit.h b/bitcoin/src/json/json_spirit.h
 --- a/bitcoin/src/json/json_spirit.h false
-+++ b/bitcoin/src/json/json_spirit.h 1499b4cbdae705dfb050f0376961bc5cf0994199f995fbafb37edae20f92bb8fca802627991acdc7216339981b9e00262782d5f59a30403e41769756aef2ba6a
++++ b/bitcoin/src/json/json_spirit.h 67e4da87d6bb985b4dfcdc2004793a6925b7e52995fea0e1854579d8c16d958c43a7cb16c9dddf6c6ce4418a27217a82d6184577a3b7a91094a2dff5516c6850
 @@ -0,0 +1,18 @@
 +#ifndef JSON_SPIRIT
 +#define JSON_SPIRIT
@@ -6589,7 +6589,7 @@
 +#endif
 diff -uNr a/bitcoin/src/json/json_spirit_error_position.h b/bitcoin/src/json/json_spirit_error_position.h
 --- a/bitcoin/src/json/json_spirit_error_position.h false
-+++ b/bitcoin/src/json/json_spirit_error_position.h 54363e1ade4f6518fbec710eec2c62db4d1de18b812b8cdc8059946602f98ffedf47a92444225f8aec3967b86453f984fd1bc6890c41bfbed4b7e2d625cd826a
++++ b/bitcoin/src/json/json_spirit_error_position.h 600ed3109fe300901fce137014a6b34a72a27f7e701dae5aab442be3bc4ddf70e2c23d648ec468d889fee6ba7ca572093262028b503bd1f948c72f6819a5fb6f
 @@ -0,0 +1,54 @@
 +#ifndef JSON_SPIRIT_ERROR_POSITION
 +#define JSON_SPIRIT_ERROR_POSITION
@@ -6647,7 +6647,7 @@
 +#endif
 diff -uNr a/bitcoin/src/json/json_spirit_reader.cpp b/bitcoin/src/json/json_spirit_reader.cpp
 --- a/bitcoin/src/json/json_spirit_reader.cpp false
-+++ b/bitcoin/src/json/json_spirit_reader.cpp 78609cf3f6735e920dc08e5b1ff0139b675256471f95aca9659066db7163a264f005128cf7e1be38d34b3828ab313e125a29ba20fa2db69762e22e952a506d93
++++ b/bitcoin/src/json/json_spirit_reader.cpp 0db39bec3533e078194704458fb981941c6a9ea452c1b7c9a1c71e56fd5ee463b4455503c76a2bf1bd1f9415bb920d7b0f9322167bb1507f87efa4764a5d11df
 @@ -0,0 +1,137 @@
 +//          Copyright John W. Wilkinson 2007 - 2009.
 +// Distributed under the MIT License, see accompanying file LICENSE.txt
@@ -6788,7 +6788,7 @@
 +#endif
 diff -uNr a/bitcoin/src/json/json_spirit_reader.h b/bitcoin/src/json/json_spirit_reader.h
 --- a/bitcoin/src/json/json_spirit_reader.h false
-+++ b/bitcoin/src/json/json_spirit_reader.h 28f2d586e50555e9c1c86f6d9cc39288c49de44f90b81793194f6d3af2bb53fe64d8d360e418a50de4d1ad91a02b4b464658847bc343ea5a45d96d5af7628d79
++++ b/bitcoin/src/json/json_spirit_reader.h bf51a9abb791037b7890eefae05fb29cbbc2bdda5d01c15bbc784d97cdbb66bf9f6bdb6791d697d68fedccea89661b07af768f7981287f724921d8f57b6d37c7
 @@ -0,0 +1,62 @@
 +#ifndef JSON_SPIRIT_READER
 +#define JSON_SPIRIT_READER
@@ -6854,7 +6854,7 @@
 +#endif
 diff -uNr a/bitcoin/src/json/json_spirit_reader_template.h b/bitcoin/src/json/json_spirit_reader_template.h
 --- a/bitcoin/src/json/json_spirit_reader_template.h false
-+++ b/bitcoin/src/json/json_spirit_reader_template.h 2030127c7941b905d7c30163b0333c87b8a517b897113ca6e1564b0fc9a0fc81ef9d973814ddffe2a5bea0f7c0ca0c0bdb43cc035d9587b9147ba6b73c8a6138
++++ b/bitcoin/src/json/json_spirit_reader_template.h 4a8c61d35a342dfc91aa5d3b9cfee382cf8d3296307db5fb14ac52b13a4b3bdfdefe138b644b8775f942f4f444913f6a741210d851c8124ce33b526a2c9838b2
 @@ -0,0 +1,612 @@
 +#ifndef JSON_SPIRIT_READER_TEMPLATE
 +#define JSON_SPIRIT_READER_TEMPLATE
@@ -7470,7 +7470,7 @@
 +#endif
 diff -uNr a/bitcoin/src/json/json_spirit_stream_reader.h b/bitcoin/src/json/json_spirit_stream_reader.h
 --- a/bitcoin/src/json/json_spirit_stream_reader.h false
-+++ b/bitcoin/src/json/json_spirit_stream_reader.h b1e6947f1078775d2b3a0bcc3bba32679012e21a25e47ca6558c43b254fd2b5763e19dce5c47d7d3c4b5d9d8a162d136774f37b6936ea12b91822902664761b2
++++ b/bitcoin/src/json/json_spirit_stream_reader.h 42337f7690b2bd5e7267707385097a8d3b9358ec7650157e350994bed86613c6e39338c4ca50f8a145de430df19bc00890459f24b82ef703def7a21897d85269
 @@ -0,0 +1,70 @@
 +#ifndef JSON_SPIRIT_READ_STREAM
 +#define JSON_SPIRIT_READ_STREAM
@@ -7544,7 +7544,7 @@
 +#endif
 diff -uNr a/bitcoin/src/json/json_spirit_utils.h b/bitcoin/src/json/json_spirit_utils.h
 --- a/bitcoin/src/json/json_spirit_utils.h false
-+++ b/bitcoin/src/json/json_spirit_utils.h 349f1aef927da56ca3c7abf019b5baa230698047cdb2786c812f2f202d7f5d7831453681775d528052a9bc9fcd3182d18885fae8e8ca57f6e69151aa0d17267e
++++ b/bitcoin/src/json/json_spirit_utils.h 15120f9dc1c9b37d40991756ab600eb8737af58c4d0c7a80879403c45b1a1935d71edec46a6cc5298d7af4c2c93baac1af00c80c4335f752e4d1f49d9e61b457
 @@ -0,0 +1,61 @@
 +#ifndef JSON_SPIRIT_UTILS
 +#define JSON_SPIRIT_UTILS
@@ -7609,7 +7609,7 @@
 +#endif
 diff -uNr a/bitcoin/src/json/json_spirit_value.cpp b/bitcoin/src/json/json_spirit_value.cpp
 --- a/bitcoin/src/json/json_spirit_value.cpp false
-+++ b/bitcoin/src/json/json_spirit_value.cpp c8da4081afddce1a03290639b288bb0c9ee55447aa5b3dfacbda7a6f1c3b2dd1758126d498e08485cbe877222a211e7af8e0169c17170854838e8a2406d67dbf
++++ b/bitcoin/src/json/json_spirit_value.cpp 55d15e86a580497aad840c165cb519a992238582a832af2ce45d8efe9903149690885f16f499d5b579ecba6da99099a210bf63f6250491dd2b0be884f403d109
 @@ -0,0 +1,8 @@
 +/* Copyright (c) 2007 John W Wilkinson
 +
@@ -7621,7 +7621,7 @@
 +#include "json_spirit_value.h"
 diff -uNr a/bitcoin/src/json/json_spirit_value.h b/bitcoin/src/json/json_spirit_value.h
 --- a/bitcoin/src/json/json_spirit_value.h false
-+++ b/bitcoin/src/json/json_spirit_value.h c2bcdc1e04f52791173bcd0af2c7cfe63b6953ba108b2590f98df767899ca15616c984febc4a9076720586b254d256b8a1c023dd5431dd88df939f9519baf18f
++++ b/bitcoin/src/json/json_spirit_value.h 4d05422b639b54a96de46317599b34ecaa79b293e7462c44795bbb812e82a65ce291178ed381a6043751d2f72eab282e694250875bca47f60b9c9440d59ded8a
 @@ -0,0 +1,534 @@
 +#ifndef JSON_SPIRIT_VALUE
 +#define JSON_SPIRIT_VALUE
@@ -8159,7 +8159,7 @@
 +#endif
 diff -uNr a/bitcoin/src/json/json_spirit_writer.cpp b/bitcoin/src/json/json_spirit_writer.cpp
 --- a/bitcoin/src/json/json_spirit_writer.cpp false
-+++ b/bitcoin/src/json/json_spirit_writer.cpp 849c5978099870a2432e75ad7f5cca8c95c6c348ca2f59fc5af2bce1fe162f1e0f9e54230b090cd0a25280b44dd06a94f8e3d607fe253916af080d0e9732909d
++++ b/bitcoin/src/json/json_spirit_writer.cpp eebc0215f93fbbc671d6fe8615ab3738198070e60322e24597085fd87e635e99f2f90b5eb8de46869c8b619e7565cee5a22f199c42bbabdbb08eb71d5d86c0c5
 @@ -0,0 +1,95 @@
 +//          Copyright John W. Wilkinson 2007 - 2009.
 +// Distributed under the MIT License, see accompanying file LICENSE.txt
@@ -8258,7 +8258,7 @@
 +#endif
 diff -uNr a/bitcoin/src/json/json_spirit_writer.h b/bitcoin/src/json/json_spirit_writer.h
 --- a/bitcoin/src/json/json_spirit_writer.h false
-+++ b/bitcoin/src/json/json_spirit_writer.h 9f6723bd7d02f878bdbf7f1f62e124fcfa1954e26969b99a1295918e2cc822b72b6e3856f4f9a6a806fbf547606d0bc9a1d1c4726b70212d5d445e24be456707
++++ b/bitcoin/src/json/json_spirit_writer.h ec290cde506f90bb24592f3439dbe87602665a63ed44c558c172accdd294059319d656a346f6ba68c8cbe90fb8b75158ad59a41ef2a690b18c018daec62abdc0
 @@ -0,0 +1,50 @@
 +#ifndef JSON_SPIRIT_WRITER
 +#define JSON_SPIRIT_WRITER
@@ -8312,7 +8312,7 @@
 +#endif
 diff -uNr a/bitcoin/src/json/json_spirit_writer_template.h b/bitcoin/src/json/json_spirit_writer_template.h
 --- a/bitcoin/src/json/json_spirit_writer_template.h false
-+++ b/bitcoin/src/json/json_spirit_writer_template.h 786a2ff2f1887f12494a318da01915b682d5b0059bbe0d3fdefc538c911883da54e0a111d2fbf962914c62fda8caaf01613cfaee8fb7fe74f61754d11d4f53b4
++++ b/bitcoin/src/json/json_spirit_writer_template.h 075843b80107fe24c8100ba93c9ed3ce8eff7d711064599a89ab8bf9f771a9a7b9a874960eac98c36fa2e4d76a5d76bb630f03d651ddf4ff0391876066927e21
 @@ -0,0 +1,248 @@
 +#ifndef JSON_SPIRIT_WRITER_TEMPLATE
 +#define JSON_SPIRIT_WRITER_TEMPLATE
@@ -8564,7 +8564,7 @@
 +#endif
 diff -uNr a/bitcoin/src/key.h b/bitcoin/src/key.h
 --- a/bitcoin/src/key.h false
-+++ b/bitcoin/src/key.h 6b2389129dec411d013d754eaebc169a23f60b2169dc41cced21248a603ced46dfdc64e016c082a154af87784049333be75c91fb08265306a3bdc2bc0af2e6c5
++++ b/bitcoin/src/key.h 07093a81b0656609e0fa8066a5743d874c5dbdf148309dd6e9ed2050ac0cac2b07d5aa64983e6bc71bd2be2fd1d93dd581e66c32a0da81904aa730e32d43cdd1
 @@ -0,0 +1,406 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -8974,7 +8974,7 @@
 +#endif
 diff -uNr a/bitcoin/src/keystore.cpp b/bitcoin/src/keystore.cpp
 --- a/bitcoin/src/keystore.cpp false
-+++ b/bitcoin/src/keystore.cpp d11a428a6fd4d8431cce1195406dff39b0a585a0f44c6156a07a33e02c61d711220747b25bf9c341e88deae60719c1ddeb03df016f7374b966b3a0b830e6f98a
++++ b/bitcoin/src/keystore.cpp 8e9aabb0569d092a6b1bff5015211a38475530b28614a7163ade52496314094bc00fd443eafb66f1285eaa1c69a680233a3e6044058598d2e2cffcf8797e0cc0
 @@ -0,0 +1,181 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -9159,7 +9159,7 @@
 +}
 diff -uNr a/bitcoin/src/keystore.h b/bitcoin/src/keystore.h
 --- a/bitcoin/src/keystore.h false
-+++ b/bitcoin/src/keystore.h 247c94ea309f95ddc3b90dcd41dd9212bd5269e8772816bb272a1152422cc1c50bead6370495043a9abc924e119c926d55ecd7f39d1022c7d4eb50718188a641
++++ b/bitcoin/src/keystore.h 5e302c824b6802e5ac88277f9dcca66b645a2e6932713ef817b6e3352cef123bb4492fdb19acae7236a090715770d9d623c209218bcd2745c1277d3172ef30d5
 @@ -0,0 +1,138 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -9301,7 +9301,7 @@
 +#endif
 diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp
 --- a/bitcoin/src/main.cpp false
-+++ b/bitcoin/src/main.cpp e37a9eb6a10745a2b0f52aacd915809961d5663185cce5792862579d340d6c98c1633a669a04fcd76835839ee13fda982e9b8ed3f190de24583f1a50167dee3b
++++ b/bitcoin/src/main.cpp 7e326dcbf51e51c301521358cf2e684840d4fc5c977f0ea8476c3dedd8e91e90548d8240608b76c1fd90f832ec11c1d3f57626948eefc43f244daf869475fe31
 @@ -0,0 +1,3250 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -12555,7 +12555,7 @@
 +}
 diff -uNr a/bitcoin/src/main.h b/bitcoin/src/main.h
 --- a/bitcoin/src/main.h false
-+++ b/bitcoin/src/main.h 06542e40fa8b01bbfe6964e46b6ffdf605e42f2daad2a14a64c3d70fd72a3adda5ade3adae4d5016397f2c98249583d9b72462ff66e7ea4704e20083a639094a
++++ b/bitcoin/src/main.h 67b6643036f41a20fee9d90d36ee22eec8b153bad6efb2342c3ad887523385f089945fdac74e73c5973d04ae1c748bca15b3d7f5b9d1243b8f87a4e6bda5f3c2
 @@ -0,0 +1,1571 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -14130,7 +14130,7 @@
 +#endif
 diff -uNr a/bitcoin/src/makefile.linux-mingw b/bitcoin/src/makefile.linux-mingw
 --- a/bitcoin/src/makefile.linux-mingw false
-+++ b/bitcoin/src/makefile.linux-mingw a2bbf273fb5d7681b473c79c9e8ca64eaba740e76b4d7276072cdf2d36726d83e92744344a31016cc05104c54df4a9b030b429f1da32a095243555dcc61af2cc
++++ b/bitcoin/src/makefile.linux-mingw 4b7074d3a08d375347f9534dfb9d5a623e443a04e68a739ca780a569e5b5e91b0eb2c683233a72acab8af08825c29eb731270e065bf37f4d487251abdf15ad78
 @@ -0,0 +1,102 @@
 +# Copyright (c) 2009-2010 Satoshi Nakamoto
 +# Distributed under the MIT/X11 software license, see the accompanying
@@ -14236,7 +14236,7 @@
 +	-rm -f test_bitcoin.exe
 diff -uNr a/bitcoin/src/makefile.unix b/bitcoin/src/makefile.unix
 --- a/bitcoin/src/makefile.unix false
-+++ b/bitcoin/src/makefile.unix e7748ee5e13edd5b95c8ffcd5f4909ff4f7cf98961a7581028adaf25f6ff79ca51d520811d06fca8ced7efa1fec31e5f06e90f672b8c37b3d62acf50ee744c01
++++ b/bitcoin/src/makefile.unix db27fa66049b17c4c68621529ad41de8973051762f0a0a96dd87fd9c7d7801fefb338342ce262124a0623ee319bf05cb3e25b5eb0cb50e27a918409ef90ca96a
 @@ -0,0 +1,161 @@
 +# Copyright (c) 2009-2010 Satoshi Nakamoto
 +# Distributed under the MIT/X11 software license, see the accompanying
@@ -14401,7 +14401,7 @@
 +	-rm -f obj-test/*.P
 diff -uNr a/bitcoin/src/net.cpp b/bitcoin/src/net.cpp
 --- a/bitcoin/src/net.cpp false
-+++ b/bitcoin/src/net.cpp b72b573ba77b095e2497e297ba5b02aa68317f67438ee070fee86e129a95b85dc9b5ca98e96441bb2b3b98263dd88630990c913affbabf890641f349d1c6da47
++++ b/bitcoin/src/net.cpp e76f8111f2c74a992113f6b9691407f6f14e2d37920516727edf7f78fdaf7a4e4d42c3378b46c0b5eab7f45de7e375acdeb6afb9c33725e7081760d15338e281
 @@ -0,0 +1,1951 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -16356,7 +16356,7 @@
 +instance_of_cnetcleanup;
 diff -uNr a/bitcoin/src/net.h b/bitcoin/src/net.h
 --- a/bitcoin/src/net.h false
-+++ b/bitcoin/src/net.h ae473b8d2838555df527e16ac7cae7dfff39bfd68769b1fcabb1f847e29e1245af78799942e790016c376a76e112b9ec16d2d7d5f52736e3cc72e45432706d3b
++++ b/bitcoin/src/net.h 82905169cadf6fb364c8c5073f4b80450a9a995219840ffb1e46f756f35bb9649677c75044d55a017b92c27e32ce5dac52cda187a18c3b544756882ff6a57b50
 @@ -0,0 +1,701 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -17061,7 +17061,7 @@
 +#endif
 diff -uNr a/bitcoin/src/noui.h b/bitcoin/src/noui.h
 --- a/bitcoin/src/noui.h false
-+++ b/bitcoin/src/noui.h a83fd14f7d3fb94e67062c70e789ea554d8ddba74d397a794498fd1e89c18cc7ad37aa32ef4109e9fd0714bd5f418c83d6d0af799556735b8cb9c5d5c3163002
++++ b/bitcoin/src/noui.h b93609ac9804dd4a668c9a0d6d6d96085d4f18068e96f75896da5921af274f5eda3f45f2d6114305c259c4203875e9196b9551f9c3f60210e6cbe52b3507ec30
 @@ -0,0 +1,74 @@
 +// Copyright (c) 2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -17139,31 +17139,31 @@
 +#endif
 diff -uNr a/bitcoin/src/obj/.gitignore b/bitcoin/src/obj/.gitignore
 --- a/bitcoin/src/obj/.gitignore false
-+++ b/bitcoin/src/obj/.gitignore 68fbcbebe57013e70f798ec673d6c554cf0b118f41a56baf92d53686f8d24fda670ed6dda23c6cbab630dfaf8cbf6d6a52a6815ac3680b24dad99b1305de6279
++++ b/bitcoin/src/obj/.gitignore 2bd03102d0ff9e7ac45c6d271f59be9b4a3079f7e7b7c9fa53a9c60dfff6f7d0cfecc59ddcdcda6513b89a1b2c4177afebab7514fb6366ca8535c3205feb5878
 @@ -0,0 +1,2 @@
 +*
 +!.gitignore
 diff -uNr a/bitcoin/src/obj/nogui/.gitignore b/bitcoin/src/obj/nogui/.gitignore
 --- a/bitcoin/src/obj/nogui/.gitignore false
-+++ b/bitcoin/src/obj/nogui/.gitignore 68fbcbebe57013e70f798ec673d6c554cf0b118f41a56baf92d53686f8d24fda670ed6dda23c6cbab630dfaf8cbf6d6a52a6815ac3680b24dad99b1305de6279
++++ b/bitcoin/src/obj/nogui/.gitignore 2bd03102d0ff9e7ac45c6d271f59be9b4a3079f7e7b7c9fa53a9c60dfff6f7d0cfecc59ddcdcda6513b89a1b2c4177afebab7514fb6366ca8535c3205feb5878
 @@ -0,0 +1,2 @@
 +*
 +!.gitignore
 diff -uNr a/bitcoin/src/obj/test/.gitignore b/bitcoin/src/obj/test/.gitignore
 --- a/bitcoin/src/obj/test/.gitignore false
-+++ b/bitcoin/src/obj/test/.gitignore 68fbcbebe57013e70f798ec673d6c554cf0b118f41a56baf92d53686f8d24fda670ed6dda23c6cbab630dfaf8cbf6d6a52a6815ac3680b24dad99b1305de6279
++++ b/bitcoin/src/obj/test/.gitignore 2bd03102d0ff9e7ac45c6d271f59be9b4a3079f7e7b7c9fa53a9c60dfff6f7d0cfecc59ddcdcda6513b89a1b2c4177afebab7514fb6366ca8535c3205feb5878
 @@ -0,0 +1,2 @@
 +*
 +!.gitignore
 diff -uNr a/bitcoin/src/obj-test/.gitignore b/bitcoin/src/obj-test/.gitignore
 --- a/bitcoin/src/obj-test/.gitignore false
-+++ b/bitcoin/src/obj-test/.gitignore 68fbcbebe57013e70f798ec673d6c554cf0b118f41a56baf92d53686f8d24fda670ed6dda23c6cbab630dfaf8cbf6d6a52a6815ac3680b24dad99b1305de6279
++++ b/bitcoin/src/obj-test/.gitignore 2bd03102d0ff9e7ac45c6d271f59be9b4a3079f7e7b7c9fa53a9c60dfff6f7d0cfecc59ddcdcda6513b89a1b2c4177afebab7514fb6366ca8535c3205feb5878
 @@ -0,0 +1,2 @@
 +*
 +!.gitignore
 diff -uNr a/bitcoin/src/protocol.cpp b/bitcoin/src/protocol.cpp
 --- a/bitcoin/src/protocol.cpp false
-+++ b/bitcoin/src/protocol.cpp 09c7f4cc1247b2ec45ffdae139fe2574dae0eb4cd40d0e48cfd5de49033ab1f4242e564020e4af5418b12e7a78430c87d58b1d4829c837b9dae47d1c1cd32382
++++ b/bitcoin/src/protocol.cpp e76ec1350e05c0fef1798a50903586ace4737faa6db134094a88a23a96e2a54d8e135a840b822ef136d336b035b3b03b7ded83a99267c892663b15d11ad00720
 @@ -0,0 +1,312 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -17479,7 +17479,7 @@
 +}
 diff -uNr a/bitcoin/src/protocol.h b/bitcoin/src/protocol.h
 --- a/bitcoin/src/protocol.h false
-+++ b/bitcoin/src/protocol.h eb06ffb5a1d9a725cce5c48fabf4ea4e9147aceb065acc54ae21c6d4b4065ebf5715d2dc88d3934312517a15247ff689711ede12328f5b8deadb6e2b43253c35
++++ b/bitcoin/src/protocol.h 9438a1f1a661180998e98347b42eb49363f6c4fef82f8d970d4d1e0a367aa32055a505431bd86f100929bea481dcaf6fdd6fc95bb4e1d083e7044aee102d4479
 @@ -0,0 +1,150 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -17633,7 +17633,7 @@
 +#endif // __INCLUDED_PROTOCOL_H__
 diff -uNr a/bitcoin/src/qtui.h b/bitcoin/src/qtui.h
 --- a/bitcoin/src/qtui.h false
-+++ b/bitcoin/src/qtui.h 2118eed5cb752a2e6556fed97925061c2b9cf87c558bd328a4aba36e51d72255d45ba461889587426db60d2f6405187f9eb387b29666435f984afd1f277dd8d9
++++ b/bitcoin/src/qtui.h 66f2b1854332f9019bebb0786491be6d0757d51adac896b5e42592b3c563346cd9feb138fc782c52709145e0834e482e5f0320f8066ec22fdc95abf42faa6059
 @@ -0,0 +1,49 @@
 +// Copyright (c) 2010 Satoshi Nakamoto
 +// Distributed under the MIT/X11 software license, see the accompanying
@@ -17686,7 +17686,7 @@
 +#endif
 diff -uNr a/bitcoin/src/script.cpp b/bitcoin/src/script.cpp
 --- a/bitcoin/src/script.cpp false
-+++ b/bitcoin/src/script.cpp e618531aaceecefe505689a76254da2cad45af6db44de26138e130b166d1d26b6a78d0ccf352b8c9c11878e5549010ce48b2083089e14ee026d949f06cd310f6
++++ b/bitcoin/src/script.cpp 8eeb268376fadfc1cd0644f6cb837157bc5085696874cef65fea2294b2afc3784900649952acf097f08216f2493d22053b873cc1d33efc639116b9ee1eb751f9
 @@ -0,0 +1,1203 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -18893,7 +18893,7 @@
 +}
 diff -uNr a/bitcoin/src/script.h b/bitcoin/src/script.h
 --- a/bitcoin/src/script.h false
-+++ b/bitcoin/src/script.h 72636dbd07e5917231ee2b62473be7a766e0e62e573315cc48e38b524da2885803b024f0613fa52c347ba0ed19455ca9461e980018e66d5ca9b05ce0bc380693
++++ b/bitcoin/src/script.h 6d3cd409eee6a9f7689a3cbbc8af5207e314b39f4b16f8c82f350ffb1afd42b8025effa2c1d2e6f5f511b2c0fdd87bf008206ae6809490e0dd8d06e9b3430ea4
 @@ -0,0 +1,703 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -19600,7 +19600,7 @@
 +#endif
 diff -uNr a/bitcoin/src/serialize.h b/bitcoin/src/serialize.h
 --- a/bitcoin/src/serialize.h false
-+++ b/bitcoin/src/serialize.h 0dcf98014abe06b33ab296a747e42e88770a87f8d4e408be4fc1ebe6b02312695cc129d0b58c0886bf8521b6d2c79bf6f2c33e19c03aee8f5357d8db779829ad
++++ b/bitcoin/src/serialize.h 0c9bc8280a5657728cb63da6f822999a40c0791d9c81daaa779181a5a1b241b1130a088b280a0a74777d27db144978d15e43ba21bcce68ce4d202767bd19e297
 @@ -0,0 +1,1349 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -20953,7 +20953,7 @@
 +#endif
 diff -uNr a/bitcoin/src/strlcpy.h b/bitcoin/src/strlcpy.h
 --- a/bitcoin/src/strlcpy.h false
-+++ b/bitcoin/src/strlcpy.h 3dbe10940903e705be537c9b135eef6733629ee3de129c4052e95fa7983ea19416633362ad747bcf9be6ccdc8a0083ba538508afcc05a04d716f8aee752c3863
++++ b/bitcoin/src/strlcpy.h 6184e61cd8740055811ef3b1e662c5a0161f9f209f85ec79287c5391d66fb91ecd625d9d7f9327c751ab1d799821409afc9552147c45a2bd636574dba2b78955
 @@ -0,0 +1,86 @@
 +/*
 + * Copyright (c) 1998 Todd C. Miller 
@@ -21043,7 +21043,7 @@
 +#endif
 diff -uNr a/bitcoin/src/test/Checkpoints_tests.cpp b/bitcoin/src/test/Checkpoints_tests.cpp
 --- a/bitcoin/src/test/Checkpoints_tests.cpp false
-+++ b/bitcoin/src/test/Checkpoints_tests.cpp c36c01e4df144c9377d84fbc7c80cc735f42dde2a726a43729362a9efeb9fa15f7efd8d70cf0858a16e091168323067edd5b9c05efea62b6631f010b58f3cf75
++++ b/bitcoin/src/test/Checkpoints_tests.cpp e067edb9ba652729ff0a427fe7e8817aa741a011a640f2ca72242ac94e5e99fb650d68cf79109050b2796fc846ea3e912c7c2b3bbc3aeb6d1fe72459652f4bd7
 @@ -0,0 +1,34 @@
 +//
 +// Unit tests for block-chain checkpoints
@@ -21081,7 +21081,7 @@
 +BOOST_AUTO_TEST_SUITE_END()
 diff -uNr a/bitcoin/src/test/DoS_tests.cpp b/bitcoin/src/test/DoS_tests.cpp
 --- a/bitcoin/src/test/DoS_tests.cpp false
-+++ b/bitcoin/src/test/DoS_tests.cpp a025dbc1426005b603c696e86b278ad6f7730e16b91433747844ea7931cb631715a2b50b677f4e96a9682f62a8e65c01673b194b791b9847476fa3406122083a
++++ b/bitcoin/src/test/DoS_tests.cpp 659a2051587b7fbda983483d663335742029d73c9461311c97c14619e4bb1daecc700086d308ac3d03c77987ff76d8e4317b5686cb93809facd9d968827310c9
 @@ -0,0 +1,118 @@
 +//
 +// Unit tests for denial-of-service detection/prevention code
@@ -21203,7 +21203,7 @@
 +BOOST_AUTO_TEST_SUITE_END()
 diff -uNr a/bitcoin/src/test/README b/bitcoin/src/test/README
 --- a/bitcoin/src/test/README false
-+++ b/bitcoin/src/test/README 8dc10490739fe1fff46b553121622b8ac1f7b6b90210a56900dde6b85f44fed7287dcc2f773a8d64aded5c1b242f587132d3bc1e37ce21c5fff315af913b8fc1
++++ b/bitcoin/src/test/README 4b87b83c415aa00e319ac929f7c41302d5d7236c2fd9ab74c284e54c9a9377cbd3d326d2c8aab33f17f6450b89a15e82d634c72cfab185687e6e0df55545509c
 @@ -0,0 +1,21 @@
 +The sources in this directory are unit test cases.  Boost includes a
 +unit testing framework, and since bitcoin already uses boost, it makes
@@ -21228,7 +21228,7 @@
 +http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/
 diff -uNr a/bitcoin/src/test/base58_tests.cpp b/bitcoin/src/test/base58_tests.cpp
 --- a/bitcoin/src/test/base58_tests.cpp false
-+++ b/bitcoin/src/test/base58_tests.cpp 675daf2bc964697d1e1291e3adc0ca291f813ae5875bb2c00cb796841c16b0c6d2bc92347abbd83472f0a52abebbf596d51548e442289d9b908a148f5157d5a2
++++ b/bitcoin/src/test/base58_tests.cpp 6de87eb22ba89c5304298fdf96627b4581d5c7c5ca10c200b35032e042ab513cd6023cf1b0efac215309e9dfeaa5f7171a45c7557137f4fd36bd3b0ebaa6a569
 @@ -0,0 +1,87 @@
 +#include 
 +
@@ -21319,7 +21319,7 @@
 +
 diff -uNr a/bitcoin/src/test/base64_tests.cpp b/bitcoin/src/test/base64_tests.cpp
 --- a/bitcoin/src/test/base64_tests.cpp false
-+++ b/bitcoin/src/test/base64_tests.cpp 7b9c8bc0ca032326e19db3610e5496671165acc1273017558be36e5b00dd202ead3c6ba5c617832de6a8a5e794c718ddb94577e4becee8ffceaa224273b286ca
++++ b/bitcoin/src/test/base64_tests.cpp d647d343641733ddf8d90510972d54cf8d9d5b6c5b18dc36d2df0b4c125628dcd12eec9e82b66ff6e3333c811b18db84f47816d65a8cca487ecd0276cca581d9
 @@ -0,0 +1,20 @@
 +#include 
 +
@@ -21343,7 +21343,7 @@
 +BOOST_AUTO_TEST_SUITE_END()
 diff -uNr a/bitcoin/src/test/miner_tests.cpp b/bitcoin/src/test/miner_tests.cpp
 --- a/bitcoin/src/test/miner_tests.cpp false
-+++ b/bitcoin/src/test/miner_tests.cpp b59e346dcf8e4917f1415c6ce23df63716989b9f8b9182ae767a76900c56f300f75fafc89e879f06b6dd5c5d5d82c37d9b695a1b6218e527d253892dc3a9cf95
++++ b/bitcoin/src/test/miner_tests.cpp 2a9ef7188884c3709442df17b980e688e5cac6ecc456a093710b20c238c115238bcd243d8be5e7684978b1bfb287e6cad84688180db6a4bb432dba449e471420
 @@ -0,0 +1,35 @@
 +#include 
 +
@@ -21382,7 +21382,7 @@
 +BOOST_AUTO_TEST_SUITE_END()
 diff -uNr a/bitcoin/src/test/script_tests.cpp b/bitcoin/src/test/script_tests.cpp
 --- a/bitcoin/src/test/script_tests.cpp false
-+++ b/bitcoin/src/test/script_tests.cpp d85bd1a00f042862691d5946713e18c1121680d0c600734a1f3bec3e52c05cbac3c9f4271dcf23c7f29694ef6c348f8acd439558bc6342aac307493881607349
++++ b/bitcoin/src/test/script_tests.cpp 1672c86e35d81a41ca3043fec45bcd3a6278d29fd6c7e040ec84e969839639aa40e4abd5d7096f10ac37d46e41479e219bc4747872768ddebf4173521ccbec75
 @@ -0,0 +1,173 @@
 +#include 
 +#include 
@@ -21559,7 +21559,7 @@
 +BOOST_AUTO_TEST_SUITE_END()
 diff -uNr a/bitcoin/src/test/test_bitcoin.cpp b/bitcoin/src/test/test_bitcoin.cpp
 --- a/bitcoin/src/test/test_bitcoin.cpp false
-+++ b/bitcoin/src/test/test_bitcoin.cpp b7d5cd60b26b2c0fe099d55583de367fb296849973cd2a7047107c0ad45c229c7aeabd5a8c533d497c2cecffbdf241c3ea36be2df3854efb7f4ede96169c0700
++++ b/bitcoin/src/test/test_bitcoin.cpp 4d8a50d4a2e7f073b219665c6022d68ab1a8aa4d9adc991e253357f5a6bdfb6a091be5eeccd376dc86491442a2f20d4598d721f3732c102d22918abffd27f30f
 @@ -0,0 +1,23 @@
 +#define BOOST_TEST_MODULE Bitcoin Test Suite
 +#include 
@@ -21586,7 +21586,7 @@
 +}
 diff -uNr a/bitcoin/src/test/transaction_tests.cpp b/bitcoin/src/test/transaction_tests.cpp
 --- a/bitcoin/src/test/transaction_tests.cpp false
-+++ b/bitcoin/src/test/transaction_tests.cpp dd7e9d9bcd4f8b307f869bff0182fcc3a8a8257626d64e156970d51dee4c852f9bfb687f9283367433f2ee05ae34db18557d6f6a54a1c58a575da2e1f4256b6e
++++ b/bitcoin/src/test/transaction_tests.cpp 518fc23e03fd9f69f7999186a1c11fcb3624f6782e94184633a4e6abbcc048281f92b18a71f23cb025d28059f90f377c747bc06dd4ab5da77fa246966570e552
 @@ -0,0 +1,25 @@
 +#include 
 +
@@ -21615,7 +21615,7 @@
 +BOOST_AUTO_TEST_SUITE_END()
 diff -uNr a/bitcoin/src/test/uint160_tests.cpp b/bitcoin/src/test/uint160_tests.cpp
 --- a/bitcoin/src/test/uint160_tests.cpp false
-+++ b/bitcoin/src/test/uint160_tests.cpp 851f66e402605e8572872fc93840d691f783af2ec35aaf64af077d45537ff171420bc58b49441ce7b0f133aaf216813023bd20776e4baa7821649633feae65e0
++++ b/bitcoin/src/test/uint160_tests.cpp c669bdff752536f49c95adff8ef6dcb6102ba297c4c2d0efb01aa454b9c212ffe0ddc013794aec26fd60e1f01ec6da3d4836525a3c57a7c71f3a6e981bd7bac0
 @@ -0,0 +1,18 @@
 +#include 
 +
@@ -21637,7 +21637,7 @@
 +BOOST_AUTO_TEST_SUITE_END()
 diff -uNr a/bitcoin/src/test/uint256_tests.cpp b/bitcoin/src/test/uint256_tests.cpp
 --- a/bitcoin/src/test/uint256_tests.cpp false
-+++ b/bitcoin/src/test/uint256_tests.cpp a492774b18a36458911f28049d0d24027d7398a32da3d9ea5af401fe2229d00a33be948edfbcf2d9b765ae2a83c74e856afb7f4ee3f8f3d411574506911baa20
++++ b/bitcoin/src/test/uint256_tests.cpp 62d6c2620b9399d55b907e767d8a0b4dbfed44e015127827ca1e1e776ebf9935633b00d124bd1e7ebead43239f3c7128593e4027c0a81f91a181d20e4ad77aec
 @@ -0,0 +1,18 @@
 +#include 
 +
@@ -21659,7 +21659,7 @@
 +BOOST_AUTO_TEST_SUITE_END()
 diff -uNr a/bitcoin/src/test/util_tests.cpp b/bitcoin/src/test/util_tests.cpp
 --- a/bitcoin/src/test/util_tests.cpp false
-+++ b/bitcoin/src/test/util_tests.cpp 1360397ac0c494d5003656deb41494de4480c56bbe46254a09f193682a9e7813fe133a45c93699835e6de89951c350ad2a7e59bcf8b1307a7670cc1db5f22e24
++++ b/bitcoin/src/test/util_tests.cpp 0f95de27b30d40d0db4d730405c40ebcf0e8184f4dbeccae0c0e893552dea8145434639300eff8c8c0759df588ba111bb32096faa73b8c2c521984819e1b202a
 @@ -0,0 +1,233 @@
 +#include 
 +#include 
@@ -21896,7 +21896,7 @@
 +BOOST_AUTO_TEST_SUITE_END()
 diff -uNr a/bitcoin/src/uint256.h b/bitcoin/src/uint256.h
 --- a/bitcoin/src/uint256.h false
-+++ b/bitcoin/src/uint256.h 3436729b55463ebb34788a47a8856d47ba7ebc27f447c5ff73b8727897d7c468716d8313e9b613e7889a7c3dffa6e577d77149ae8c4c415fb41ce3fc5cc6d852
++++ b/bitcoin/src/uint256.h 821f3af7a2ce7bb860659e1b5833da377c539c5e6207ffb48c042673dada79b37002e6bd336e54c940cee120bdb132b62966d30732e4afefdd46261eff889bf8
 @@ -0,0 +1,759 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -22659,7 +22659,7 @@
 +#endif
 diff -uNr a/bitcoin/src/util.cpp b/bitcoin/src/util.cpp
 --- a/bitcoin/src/util.cpp false
-+++ b/bitcoin/src/util.cpp 4b0f7b3a7757336b6e5c349d89170bfc4b4c40a04e0ec3fccf0b155314689c781deb9590ab05daa8af20a123e2f3cad55c5af1244700197a3530d0d4699d32c5
++++ b/bitcoin/src/util.cpp c7f92359243328f815311ad714efd61cf038a265aab7f69160caf9add62f0a061807c1b9da4474660c7bcb05800ba0e5265cf92e3934eada359b7b70b42c8786
 @@ -0,0 +1,1177 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -23840,7 +23840,7 @@
 +#endif /* DEBUG_LOCKORDER */
 diff -uNr a/bitcoin/src/util.h b/bitcoin/src/util.h
 --- a/bitcoin/src/util.h false
-+++ b/bitcoin/src/util.h 04d09e92edd13820ea292bc0c0f66a9bc6f31c4020204817de56b7ae795c660dd47d7442d32403ba58fdc75ed1985174f6c507bcde7ee988a70185ba22fbb418
++++ b/bitcoin/src/util.h 75bc498bf713d76d2e9a489c71604dbb77792673c7f87343d4c6fcf5f20fac57cdffd5f15513b00f21f9de257adbeb3ca581147f41a8be96d69379269021c723
 @@ -0,0 +1,774 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
@@ -23959,7 +23959,7 @@
 +#define Beep(n1,n2)         (0)
 +inline void Sleep(int64 n)
 +{
-+    /*Boost has a year 2038 problem— if the request sleep time is past epoch+2^31 seconds the sleep returns instantly.
++    /*Boost has a year 2038 problem- if the request sleep time is past epoch+2^31 seconds the sleep returns instantly.
 +      So we clamp our sleeps here to 10 years and hope that boost is fixed by 2028.*/
 +    boost::thread::sleep(boost::get_system_time() + boost::posix_time::milliseconds(n>315576000000LL?315576000000LL:n));
 +}
@@ -24618,7 +24618,7 @@
 +#endif
 diff -uNr a/bitcoin/src/wallet.cpp b/bitcoin/src/wallet.cpp
 --- a/bitcoin/src/wallet.cpp false
-+++ b/bitcoin/src/wallet.cpp dea54bd209fed8405bc3674fddd237414b6c49d00b81969c22fd3f38d24d8a2b95c9e20af3d9a0cfcc32b0d241f9a29b8742379c944dbd8d9c16120693aa4988
++++ b/bitcoin/src/wallet.cpp da1e35bcce58f94ae0c44b6c2d8ac21d3b8263a594b93efa335a6c804a1b115c16a977ab237d78c4e9eb6899ff5c9a108f36a9a2fc9fad96ddaa2e30267587f7
 @@ -0,0 +1,1415 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2011 The Bitcoin developers
@@ -26037,7 +26037,7 @@
 +
 diff -uNr a/bitcoin/src/wallet.h b/bitcoin/src/wallet.h
 --- a/bitcoin/src/wallet.h false
-+++ b/bitcoin/src/wallet.h 86f5e1ca584e6aa01b956278ea06eff4f79b58ca386c490fe605384923f90fcc710fd6bf2f14926d5dfd43e17fc5655a0150b32bc750f05506baf439255c8e30
++++ b/bitcoin/src/wallet.h df93b83c3880e14d890fe853d8556eec6377b90d5e83bd696f4c5800042c2cd04c5242b69b8886e22dfceb5b9b16e790fb526e9039cc130c9fb0f12cc8bb19d2
 @@ -0,0 +1,645 @@
 +// Copyright (c) 2009-2010 Satoshi Nakamoto
 +// Copyright (c) 2009-2012 The Bitcoin developers
--- patches/bitcoin-asciilifeform.1.vpatch	2015-08-22 23:40:55.000000000 +0000
+++ keccak_vtree/bitcoin-asciilifeform.1.vpatch	2019-01-09 03:31:18.505942542 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/bitcoinrpc.cpp b/bitcoin/src/bitcoinrpc.cpp
---- a/bitcoin/src/bitcoinrpc.cpp a1812ac4e4425986e8574ebf837c6b1a84e4772e01b46e4e1caef098496226f7321a3fabc5249b55ce6365863f2c25fef0005f4bcde7188603b0805c77256bc0
-+++ b/bitcoin/src/bitcoinrpc.cpp 654419ecfd3edd29c679d32b361468af54d64af0afecd287eeff7fdff775ed6d69aa06cadddf9c2d0abff4e90947630617284eca374ac5a4ad9b0b807afd050b
+--- a/bitcoin/src/bitcoinrpc.cpp 631071b1ecb5be290ec5c3976c3262f5c05813e0612912890bcc97cf25af5696fd20c46bb9fb50823df1b6bea2c35aeafdea4462abc50933a10d1cc13a19fe69
++++ b/bitcoin/src/bitcoinrpc.cpp 87e6c3d7333251722ad29ff54ec06f4aa276b9430dc12c804bb5fa1513a3e90a0eb206881154e525c88d71857741908f2a82370136876b06bc0506ba53f5873e
 @@ -163,13 +163,9 @@
          throw runtime_error(
              "stop\n"
@@ -38,8 +38,8 @@
      }

 diff -uNr a/bitcoin/src/db.cpp b/bitcoin/src/db.cpp
---- a/bitcoin/src/db.cpp 6c7b584c387898ceee4c76d4bc56d7400105807885b5b497089f99849e04f57a2e5c775b206765f5900c3c83967c6e2a0100dab71f314b1d28b01caaa67667cc
-+++ b/bitcoin/src/db.cpp d6b10e7037e8aefbf0cc1a8b76985401e6f4670c8d514bbfda2b7002e466df964be9f4bde71b739f31ed636369abd34816a9433338c1ef5c3bb21e801e4f83e0
+--- a/bitcoin/src/db.cpp b5486b3cb349b8ac9f3062359d595d28d076062390699fac3f5ad50e89c3c82b1842524c153b09859a46f7f1776c40be134f787b71761962d7170a7cdf8c3459
++++ b/bitcoin/src/db.cpp e5caae03e3ac4a66240bef7eaae55cb4f42b1d81eda2cb2af5ec0f2e36b4371dfca10d3a004fbf041ce85fa2c588534e0629a41aa31d3bb4a0a280221252ad11
 @@ -919,9 +919,7 @@
                  ssKey >> strKey;

@@ -51,8 +51,8 @@
                  if (strKey == "fLimitProcessors")   ssValue >> fLimitProcessors;
                  if (strKey == "nLimitProcessors")   ssValue >> nLimitProcessors;
 diff -uNr a/bitcoin/src/headers.h b/bitcoin/src/headers.h
---- a/bitcoin/src/headers.h bac815c59cd69f09371cbc605c3365056b02529d4fc0cd68026b6dc0304f12dafcda86479f52191f20f14b87c56006306e362020ba7a0651cce2bda87db547ac
-+++ b/bitcoin/src/headers.h 5fa4d450d3f50651eeb12e3de9657c1a8a3968d37f2df15a7c1f7b0ad44fdbd427d8934f0cf81df00f6eac9a456a80adf7cbc2882678ac943c207ede1c2f637a
+--- a/bitcoin/src/headers.h 4d28e9cd20caddb467b279fc8c18282f3690d1c5c8d2cbfcf1b9d4fc3ae2e009960ded1240b88fc23e2fe69d69410a9ffe50cfad1a3f3a87496bb0868d8cecf4
++++ b/bitcoin/src/headers.h df1306462a92466a6661e4e98b4091fe0de3ff53c781a8dc5fd6c575f052ca4adc47e5e1a37b6904ccfeb107bf7899335dd5bbb4428e647da6acfffd2e0ca6c6
 @@ -89,8 +89,4 @@
  #include "bignum.h"
  #include "base58.h"
@@ -63,8 +63,8 @@
  #include "noui.h"
 -#endif
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp 9ea336b2061c743c7f9fd590a02546616d8e3fd0dee8c9a15bb9a24e8e6138fb48f9b9be4b7452ce1e0eb4e69e8882d2b5f03ef2d6d0b50fdb9e0a869719ecfc
-+++ b/bitcoin/src/init.cpp 0a8227f07119a5ac88e550780a2c74482859d71119f19ce45096044703826751850f64ee5f06b57e4a0641f61d9d1a9f4c55946ee2eba25aa192f9a334a7ae8a
+--- a/bitcoin/src/init.cpp 1bb5d8af6051e25fc87ab7438b6dafc864be7792b04c6aa0d8942efe701b2b4abfcd1902b33cc4b1c2993668676e3c7d8f90bd6c075c70906d0c7e9c2db4e83b
++++ b/bitcoin/src/init.cpp 5954c41570791ed6a4012660f36523d5de96c502fc5960046b8d844dccf51cc92f39eca4748bd52443bb556e79e7895b51c8da297f468f063115fc7fa9060bb1
 @@ -12,16 +12,6 @@
  #include 
  #include 
@@ -171,7 +171,7 @@
      return true;
  }
 diff -uNr a/bitcoin/src/qtui.h b/bitcoin/src/qtui.h
---- a/bitcoin/src/qtui.h 2118eed5cb752a2e6556fed97925061c2b9cf87c558bd328a4aba36e51d72255d45ba461889587426db60d2f6405187f9eb387b29666435f984afd1f277dd8d9
+--- a/bitcoin/src/qtui.h 66f2b1854332f9019bebb0786491be6d0757d51adac896b5e42592b3c563346cd9feb138fc782c52709145e0834e482e5f0320f8066ec22fdc95abf42faa6059
 +++ b/bitcoin/src/qtui.h false
 @@ -1,49 +0,0 @@
 -// Copyright (c) 2010 Satoshi Nakamoto
@@ -224,8 +224,8 @@
 -
 -#endif
 diff -uNr a/bitcoin/src/util.h b/bitcoin/src/util.h
---- a/bitcoin/src/util.h 04d09e92edd13820ea292bc0c0f66a9bc6f31c4020204817de56b7ae795c660dd47d7442d32403ba58fdc75ed1985174f6c507bcde7ee988a70185ba22fbb418
-+++ b/bitcoin/src/util.h 1355ad6ce93816fffc1befd7a68a5fbdf034ae24ae99c64a60269ca9db589363d6531f441cd2393630e3128c2762ddcb8101dd6c305551b70cf24e102e59cfd0
+--- a/bitcoin/src/util.h 75bc498bf713d76d2e9a489c71604dbb77792673c7f87343d4c6fcf5f20fac57cdffd5f15513b00f21f9de257adbeb3ca581147f41a8be96d69379269021c723
++++ b/bitcoin/src/util.h a39ea68039e96132373815ada8bcebd6611278868e86ca8c302db31cdd9cf1cdbd73961b062fce4cac43f99fff9f901f07e549d4023569325908c716509856f6
 @@ -134,12 +134,11 @@
      return ret;
  }
@@ -241,8 +241,8 @@

 diff -uNr a/bitcoin/src/wallet.cpp b/bitcoin/src/wallet.cpp
---- a/bitcoin/src/wallet.cpp dea54bd209fed8405bc3674fddd237414b6c49d00b81969c22fd3f38d24d8a2b95c9e20af3d9a0cfcc32b0d241f9a29b8742379c944dbd8d9c16120693aa4988
-+++ b/bitcoin/src/wallet.cpp bdc4fc472be4a86fb91fa69368faace04414fdeee5b8c82795e31d37e21581b973caf7f3e9ccc27d487944a5782e3b59615180eab87c8b3e81242901f3039e4d
+--- a/bitcoin/src/wallet.cpp da1e35bcce58f94ae0c44b6c2d8ac21d3b8263a594b93efa335a6c804a1b115c16a977ab237d78c4e9eb6899ff5c9a108f36a9a2fc9fad96ddaa2e30267587f7
++++ b/bitcoin/src/wallet.cpp c95a36390729d1d846dc7036d5489178a361af69d310dcc250096deae764729550ac117096adf54084fd0f9a7798228c8282656441cba93351d810001f4d311b
 @@ -267,7 +267,6 @@
          if (fInsertedNew || fUpdated)
              if (!wtx.WriteToDisk())
--- patches/rm_rf_upnp.vpatch	2015-08-22 23:40:55.000000000 +0000
+++ keccak_vtree/rm_rf_upnp.vpatch	2019-01-09 03:31:18.855942541 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/db.cpp b/bitcoin/src/db.cpp
---- a/bitcoin/src/db.cpp d6b10e7037e8aefbf0cc1a8b76985401e6f4670c8d514bbfda2b7002e466df964be9f4bde71b739f31ed636369abd34816a9433338c1ef5c3bb21e801e4f83e0
-+++ b/bitcoin/src/db.cpp c5aa0633f19e5ed97f1d80509a84bd8aeeb42ade44eb1b45a1220c429b78c3943a2dfc83da82fa9cdb87dc9563a1278d2033c20b5e2da83252e36407a470df93
+--- a/bitcoin/src/db.cpp e5caae03e3ac4a66240bef7eaae55cb4f42b1d81eda2cb2af5ec0f2e36b4371dfca10d3a004fbf041ce85fa2c588534e0629a41aa31d3bb4a0a280221252ad11
++++ b/bitcoin/src/db.cpp d6224a6fe15bd7712174fd0d420d8b289204712d5cbde94aef0cc6ef96ec2fe60aabe4cd71360d32a2464e87c6bfaff59d0464fde880302bb8180dea4371ce57
 @@ -927,7 +927,6 @@
                  if (strKey == "fMinimizeOnClose")   ssValue >> fMinimizeOnClose;
                  if (strKey == "fUseProxy")          ssValue >> fUseProxy;
@@ -20,8 +20,8 @@
      // Rewrite encrypted wallets of versions 0.4.0 and 0.5.0rc:
      if (fIsEncrypted && (nFileVersion == 40000 || nFileVersion == 50000))
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp 0a8227f07119a5ac88e550780a2c74482859d71119f19ce45096044703826751850f64ee5f06b57e4a0641f61d9d1a9f4c55946ee2eba25aa192f9a334a7ae8a
-+++ b/bitcoin/src/init.cpp 9c1e59cf1a30c33950cf5d6ffc202437bff08724cba0d4c07ed7390a6fa17bb5451a96ec2bde1b87b2b137bb0c908c32d985deea918d7b28767ed5db489de649
+--- a/bitcoin/src/init.cpp 5954c41570791ed6a4012660f36523d5de96c502fc5960046b8d844dccf51cc92f39eca4748bd52443bb556e79e7895b51c8da297f468f063115fc7fa9060bb1
++++ b/bitcoin/src/init.cpp b94202848156190628ddc0602ec88642916c827888164b435f09433f67b60f37cb43f6d4c6e6769af7ad39e9adec3163bf641d0ac5879f16b7578e4b8e827d66
 @@ -188,13 +188,6 @@
              "  -bantime=     \t  "   + _("Number of seconds to keep misbehaving peers from reconnecting (default: 86400)\n") +
              "  -maxreceivebuffer=\t  " + _("Maximum per-connection receive buffer, *1000 bytes (default: 10000)\n") +
@@ -57,8 +57,8 @@
      if (!fNoListen)
      {
 diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp
---- a/bitcoin/src/main.cpp e37a9eb6a10745a2b0f52aacd915809961d5663185cce5792862579d340d6c98c1633a669a04fcd76835839ee13fda982e9b8ed3f190de24583f1a50167dee3b
-+++ b/bitcoin/src/main.cpp a7068b5bf1b556401086d790ea0e8e130206ef0e51900a45ecc79e1cbdc3b4bbac5c89cb538be8048825730829389a7be7801b1dcc8b8357f107769661f9cb98
+--- a/bitcoin/src/main.cpp 7e326dcbf51e51c301521358cf2e684840d4fc5c977f0ea8476c3dedd8e91e90548d8240608b76c1fd90f832ec11c1d3f57626948eefc43f244daf869475fe31
++++ b/bitcoin/src/main.cpp 8d9b3ea74202849015588e2ee34549f95d8bc172ac3aeb15c328bc78b10a5fa85006db37922cc5f0769468fabbbcd0b5271d5656d3fc8bb3deaa8cd98a0af980
 @@ -57,11 +57,6 @@
  int nLimitProcessors = 1;
  int fMinimizeToTray = true;
@@ -72,8 +72,8 @@

  //////////////////////////////////////////////////////////////////////////////
 diff -uNr a/bitcoin/src/main.h b/bitcoin/src/main.h
---- a/bitcoin/src/main.h 06542e40fa8b01bbfe6964e46b6ffdf605e42f2daad2a14a64c3d70fd72a3adda5ade3adae4d5016397f2c98249583d9b72462ff66e7ea4704e20083a639094a
-+++ b/bitcoin/src/main.h 57c05aea806dfb1e168fdcbf670b99cdccbbae072142cb62a946a309e77de15abc7661f24f82291a80ae578951fd009bb1560dd4dd756ad17d84e8089089e45b
+--- a/bitcoin/src/main.h 67b6643036f41a20fee9d90d36ee22eec8b153bad6efb2342c3ad887523385f089945fdac74e73c5973d04ae1c748bca15b3d7f5b9d1243b8f87a4e6bda5f3c2
++++ b/bitcoin/src/main.h 110908f2c5982131591b43888d7f087848746914e5aebf96e1809219e9c073fcf4665695e3acfd85ed1ad2126b452749273bc70af0536a773b08a1d55575012d
 @@ -40,11 +40,6 @@
  static const int COINBASE_MATURITY = 100;
  // Threshold for nLockTime: below this value it is interpreted as block number, otherwise as UNIX timestamp.
@@ -95,8 +95,8 @@

 diff -uNr a/bitcoin/src/makefile.linux-mingw b/bitcoin/src/makefile.linux-mingw
---- a/bitcoin/src/makefile.linux-mingw a2bbf273fb5d7681b473c79c9e8ca64eaba740e76b4d7276072cdf2d36726d83e92744344a31016cc05104c54df4a9b030b429f1da32a095243555dcc61af2cc
-+++ b/bitcoin/src/makefile.linux-mingw e8be933efe74bc8f6f30a1d7f90445917b4d20102697f3d31325204f7b2ef74889666c2dc2867886ca5a6523131608563e8a84628a0a598f94dbc0125af01517
+--- a/bitcoin/src/makefile.linux-mingw 4b7074d3a08d375347f9534dfb9d5a623e443a04e68a739ca780a569e5b5e91b0eb2c683233a72acab8af08825c29eb731270e065bf37f4d487251abdf15ad78
++++ b/bitcoin/src/makefile.linux-mingw 655fdd6d8e0c4a783d81c2e8a996f2197d3ef48593bffbf5446d6940d9065150cac12cba72bb1bebdefb92cca4cdbfcde515ccdc5279aa375545ac2ecaed07ba
 @@ -4,8 +4,6 @@

  DEPSDIR:=/usr/i586-mingw32msvc
@@ -119,8 +119,8 @@
  LIBS += -l mingwthrd -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l ole32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l shlwapi

 diff -uNr a/bitcoin/src/makefile.unix b/bitcoin/src/makefile.unix
---- a/bitcoin/src/makefile.unix e7748ee5e13edd5b95c8ffcd5f4909ff4f7cf98961a7581028adaf25f6ff79ca51d520811d06fca8ced7efa1fec31e5f06e90f672b8c37b3d62acf50ee744c01
-+++ b/bitcoin/src/makefile.unix 28104225888cbbe6b4309934f09c086c792a4d57011f80860353a343233e4f6b0d378299cb5ed86df8af3b36aa357ac7e1eaf58a5990c6c1f6f0e4dccf9fdcef
+--- a/bitcoin/src/makefile.unix db27fa66049b17c4c68621529ad41de8973051762f0a0a96dd87fd9c7d7801fefb338342ce262124a0623ee319bf05cb3e25b5eb0cb50e27a918409ef90ca96a
++++ b/bitcoin/src/makefile.unix 99aa39376bce4d549a2c8b442f48814a4987eb6b329bf7541322bbf90449882016313e6ba15738df617f0535e60c1e1c1b18552aed035c6b69e726514d648e7a
 @@ -2,8 +2,6 @@
  # Distributed under the MIT/X11 software license, see the accompanying
  # file license.txt or http://www.opensource.org/licenses/mit-license.php.
@@ -146,8 +146,8 @@
  	DEFS += -DUSE_SSL
  endif
 diff -uNr a/bitcoin/src/net.cpp b/bitcoin/src/net.cpp
---- a/bitcoin/src/net.cpp b72b573ba77b095e2497e297ba5b02aa68317f67438ee070fee86e129a95b85dc9b5ca98e96441bb2b3b98263dd88630990c913affbabf890641f349d1c6da47
-+++ b/bitcoin/src/net.cpp 50f2bf26c02d6edbd0aec5a3e5b3ddceaffab27c16d51a4dd972e42e01871d8e34314f525e9394211801c9ea7d1bd8f8266ae214b30a8e645ce207bf5f3bbd92
+--- a/bitcoin/src/net.cpp e76f8111f2c74a992113f6b9691407f6f14e2d37920516727edf7f78fdaf7a4e4d42c3378b46c0b5eab7f45de7e375acdeb6afb9c33725e7081760d15338e281
++++ b/bitcoin/src/net.cpp a1b78a422161c6f5f3ca51a585d8c3f68e9490af3f1ba48b7772cbe4d5a9711619707984376f9a51487aec676f437fbf6df38309d535daccb966873f9608e9f1
 @@ -14,12 +14,6 @@
  #include 
  #endif
--- patches/bitcoin-asciilifeform.2-https_snipsnip.vpatch	2015-08-22 23:40:55.000000000 +0000
+++ keccak_vtree/bitcoin-asciilifeform.2-https_snipsnip.vpatch	2019-01-09 03:31:19.345942540 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/bitcoinrpc.cpp b/bitcoin/src/bitcoinrpc.cpp
---- a/bitcoin/src/bitcoinrpc.cpp 654419ecfd3edd29c679d32b361468af54d64af0afecd287eeff7fdff775ed6d69aa06cadddf9c2d0abff4e90947630617284eca374ac5a4ad9b0b807afd050b
-+++ b/bitcoin/src/bitcoinrpc.cpp be601828da9d44e686e4fb5341373a1559642121a92080bd9ddb223c7dcb2bac08ba6236653645eb5a458d5fe05de7b4fd14f590975477e952f5d667ae049adc
+--- a/bitcoin/src/bitcoinrpc.cpp 87e6c3d7333251722ad29ff54ec06f4aa276b9430dc12c804bb5fa1513a3e90a0eb206881154e525c88d71857741908f2a82370136876b06bc0506ba53f5873e
++++ b/bitcoin/src/bitcoinrpc.cpp b860454af0cea61da456cccd4fe4b7152d0e4df57f974259e7b1153ab0b1954ba526cef89cfb85676cdd3e7d212c09576437e431ec9d71409d5c37c839fd4837
 @@ -12,12 +12,6 @@
  #include 
  #include 
@@ -171,8 +171,8 @@
      // HTTP basic authentication
      string strUserPass64 = EncodeBase64(mapArgs["-rpcuser"] + ":" + mapArgs["-rpcpassword"]);
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp 9c1e59cf1a30c33950cf5d6ffc202437bff08724cba0d4c07ed7390a6fa17bb5451a96ec2bde1b87b2b137bb0c908c32d985deea918d7b28767ed5db489de649
-+++ b/bitcoin/src/init.cpp 44df7fd78d25997fd3e84e4df43ea6511de2aed69dced33a64a14d9c918ca34eea4d5fd1afff711b490991ce90f90cf67052433cdd5fccda08bb974e75f0929d
+--- a/bitcoin/src/init.cpp b94202848156190628ddc0602ec88642916c827888164b435f09433f67b60f37cb43f6d4c6e6769af7ad39e9adec3163bf641d0ac5879f16b7578e4b8e827d66
++++ b/bitcoin/src/init.cpp 352283739438e0d213f66b3d94a728ecf280ace2280615a2c700e5d94bf32bbd3518f512fab55f7071ff5e8f02ec988cc1be71ec15597af3c3933d7cb833efc4
 @@ -207,15 +207,6 @@
              "  -keypool=     \t  "   + _("Set key pool size to  (default: 100)\n") +
              "  -rescan          \t  "   + _("Rescan the block chain for missing wallet transactions\n");
@@ -190,8 +190,8 @@
              "  -?               \t\t  " + _("This help message\n");

 diff -uNr a/bitcoin/src/makefile.linux-mingw b/bitcoin/src/makefile.linux-mingw
---- a/bitcoin/src/makefile.linux-mingw e8be933efe74bc8f6f30a1d7f90445917b4d20102697f3d31325204f7b2ef74889666c2dc2867886ca5a6523131608563e8a84628a0a598f94dbc0125af01517
-+++ b/bitcoin/src/makefile.linux-mingw c345f6b5bc7d336782f8c032d9fc7ba0004a64782f1373dc82e3b117dc276a10c0bd0e31b646d8e9bbb4ffb6a9e6878a0d17851af9748b93b0107f3b4285a5a0
+--- a/bitcoin/src/makefile.linux-mingw 655fdd6d8e0c4a783d81c2e8a996f2197d3ef48593bffbf5446d6940d9065150cac12cba72bb1bebdefb92cca4cdbfcde515ccdc5279aa375545ac2ecaed07ba
++++ b/bitcoin/src/makefile.linux-mingw 83d546a9c99d9a33cf806b19617dfb36dbe2d51912b3d8b14aa2df4ef64b9f281820d99f2c9cb822c21baf8392389aa1fd543478037aeb734300651f0c9d5392
 @@ -24,7 +24,7 @@
   -l ssl \
   -l crypto
@@ -202,8 +202,8 @@
  CFLAGS=-O2 -w -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
  HEADERS = \
 diff -uNr a/bitcoin/src/makefile.unix b/bitcoin/src/makefile.unix
---- a/bitcoin/src/makefile.unix 28104225888cbbe6b4309934f09c086c792a4d57011f80860353a343233e4f6b0d378299cb5ed86df8af3b36aa357ac7e1eaf58a5990c6c1f6f0e4dccf9fdcef
-+++ b/bitcoin/src/makefile.unix 46721d9a78548459b3151032c0824b105b1327366859c9247357a60076796ff760fd3224e0d6c5b3858841392902844a52d7f7d5dbd80677ceea3fd3ed68a99f
+--- a/bitcoin/src/makefile.unix 99aa39376bce4d549a2c8b442f48814a4987eb6b329bf7541322bbf90449882016313e6ba15738df617f0535e60c1e1c1b18552aed035c6b69e726514d648e7a
++++ b/bitcoin/src/makefile.unix 85700c20bee5a758709d7d3d1f85afa09d3e036af93c4e5b85e76364ed7fdb9b86b664039f61ddf415e62ef36c8f89a7957d3569fa14cc99349f37bd4d947b47
 @@ -29,10 +29,6 @@
     -l ssl \
     -l crypto
--- patches/bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch	2015-08-22 23:40:55.000000000 +0000
+++ keccak_vtree/bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch	2019-01-09 03:31:19.865942538 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp
---- a/bitcoin/src/main.cpp a7068b5bf1b556401086d790ea0e8e130206ef0e51900a45ecc79e1cbdc3b4bbac5c89cb538be8048825730829389a7be7801b1dcc8b8357f107769661f9cb98
-+++ b/bitcoin/src/main.cpp b877647a1fd7d468facf6ed3488e229a15d0d88d62dcd600721943686a67fa06eff24847a6a36c2a74b544105047636af3e6ae4e384b55bf2863027942bd26b4
+--- a/bitcoin/src/main.cpp 8d9b3ea74202849015588e2ee34549f95d8bc172ac3aeb15c328bc78b10a5fa85006db37922cc5f0769468fabbbcd0b5271d5656d3fc8bb3deaa8cd98a0af980
++++ b/bitcoin/src/main.cpp e614d63a917f3ba00110c4a3789f1bf8190cdc7ff68efaf022056ffe135cfe758cc5687195bd0c16044d7d27bdb7386aba4cf231acf02ece4ac15b802d00b2bd
 @@ -1720,21 +1720,11 @@

@@ -141,8 +141,8 @@
      {
          // Ignore unknown commands for extensibility
 diff -uNr a/bitcoin/src/main.h b/bitcoin/src/main.h
---- a/bitcoin/src/main.h 57c05aea806dfb1e168fdcbf670b99cdccbbae072142cb62a946a309e77de15abc7661f24f82291a80ae578951fd009bb1560dd4dd756ad17d84e8089089e45b
-+++ b/bitcoin/src/main.h 784c9af0366ee1f7033155638503bc35ff23aaf675e177f3917f0890e14a9d5ceeb80fd833751d674f0d7e41e6fe1d93ea32694872028fec1dc8a83c0ad17944
+--- a/bitcoin/src/main.h 110908f2c5982131591b43888d7f087848746914e5aebf96e1809219e9c073fcf4665695e3acfd85ed1ad2126b452749273bc70af0536a773b08a1d55575012d
++++ b/bitcoin/src/main.h 265f35217e2a79155aa98dc832a62f1a24879f70aa594237811392d5f14ec182de78cabaccf7f9d0af07504ff4e37f39ea4c4c6dac7d6d1b8890258ab40c2d33
 @@ -1355,211 +1355,4 @@
      }
  };
--- patches/bitcoin-asciilifeform.4-goodbye-win32.vpatch	2015-08-22 23:40:55.000000000 +0000
+++ keccak_vtree/bitcoin-asciilifeform.4-goodbye-win32.vpatch	2019-01-09 03:31:20.595942536 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/bitcoinrpc.cpp b/bitcoin/src/bitcoinrpc.cpp
---- a/bitcoin/src/bitcoinrpc.cpp be601828da9d44e686e4fb5341373a1559642121a92080bd9ddb223c7dcb2bac08ba6236653645eb5a458d5fe05de7b4fd14f590975477e952f5d667ae049adc
-+++ b/bitcoin/src/bitcoinrpc.cpp bc6c82ab1a129e9e74a6bf785df99ac939fef94d72afbee153913fd53cab5d05120047275342cb4d52a98a951184eed47cccd9710e3655c261b68d2f257614a3
+--- a/bitcoin/src/bitcoinrpc.cpp b860454af0cea61da456cccd4fe4b7152d0e4df57f974259e7b1153ab0b1954ba526cef89cfb85676cdd3e7d212c09576437e431ec9d71409d5c37c839fd4837
++++ b/bitcoin/src/bitcoinrpc.cpp d064c6c28ba9016a427fe89f42e8c46caf45755b9289a4b485dc05d35ccd02541181da072f2c0ada36290d23208f5f9b600417e653ac24a57020ce0f620c2c42
 @@ -2422,11 +2422,6 @@
  #ifdef TEST
  int main(int argc, char *argv[])
@@ -14,8 +14,8 @@
      setbuf(stdout, NULL);
      setbuf(stderr, NULL);
 diff -uNr a/bitcoin/src/crypter.cpp b/bitcoin/src/crypter.cpp
---- a/bitcoin/src/crypter.cpp 64dddc1348603ea005f4f5297ea6d51074fead3dd8d1256c1a4c2a678fef1abcb58d148ebb9eb3716e200e27abf6d07c19d1cf6fcbb4e1b9dcba59fde8eae324
-+++ b/bitcoin/src/crypter.cpp 195bde01368dc6b69e0f9d5046b2dd83f1f2345393e88382a3838efac8b6635c5992f2f8599d0ad3913b4a4b8c144cad7c7e714e7c2f96aa15a86ba820b27321
+--- a/bitcoin/src/crypter.cpp 7c19985746214e45bf75c9044c5f13230195376e74b6c013659cfbe89390fd575e7bb1935f82f0d42f01b93f58ee980af16bd99101e4241eabd585b6fec09b0f
++++ b/bitcoin/src/crypter.cpp 9ad9a4bd21d57594a27623378ae8969f00504822da8d2ef89821f0790494d80726c3b39ded57dae9ed17ad257f0c1a38cb7d69f513d0d403f34ccb914757605c
 @@ -7,9 +7,6 @@
  #include 
  #include 
@@ -27,8 +27,8 @@
  #include "crypter.h"
  #include "main.h"
 diff -uNr a/bitcoin/src/db.cpp b/bitcoin/src/db.cpp
---- a/bitcoin/src/db.cpp c5aa0633f19e5ed97f1d80509a84bd8aeeb42ade44eb1b45a1220c429b78c3943a2dfc83da82fa9cdb87dc9563a1278d2033c20b5e2da83252e36407a470df93
-+++ b/bitcoin/src/db.cpp 66f81f6da997109f4d34ca654d30e24cb850fa87a6fbe6a045c6cb1a9f6d47d979fb4e25a0bbb35064c1259cda3c7b5ff12f68d9c22c1acf45299dbb4ed72317
+--- a/bitcoin/src/db.cpp d6224a6fe15bd7712174fd0d420d8b289204712d5cbde94aef0cc6ef96ec2fe60aabe4cd71360d32a2464e87c6bfaff59d0464fde880302bb8180dea4371ce57
++++ b/bitcoin/src/db.cpp 0e9401061876b3c91016108ab88a45aa8dc5f57f1b6e0487a62e540a78c52d11062de7c2d23e4a6545dd19992375199a243d099db730c58dd11f9f27d707872b
 @@ -768,11 +768,9 @@
      bool fIsEncrypted = false;

@@ -42,8 +42,8 @@
      //// todo: shouldn't we catch exceptions and try to recover and continue?
      CRITICAL_BLOCK(pwallet->cs_wallet)
 diff -uNr a/bitcoin/src/headers.h b/bitcoin/src/headers.h
---- a/bitcoin/src/headers.h 5fa4d450d3f50651eeb12e3de9657c1a8a3968d37f2df15a7c1f7b0ad44fdbd427d8934f0cf81df00f6eac9a456a80adf7cbc2882678ac943c207ede1c2f637a
-+++ b/bitcoin/src/headers.h b86114b5b74d2b9e737798f78804439c5cdd0ae42440615c57fc85cb0ac7d8b8a454d2ef44048db6af0ca00a938178173eece431b273462dbc299c1501b86600
+--- a/bitcoin/src/headers.h df1306462a92466a6661e4e98b4091fe0de3ff53c781a8dc5fd6c575f052ca4adc47e5e1a37b6904ccfeb107bf7899335dd5bbb4428e647da6acfffd2e0ca6c6
++++ b/bitcoin/src/headers.h aae9b590747c266d9bacdc30a73f2d3ed9c7a5cc4ff42798d4f7df3e7a28af0bc8d70c4402fcc36779e77ddd3f4bcc41c1eef08336207999efbac352817c1972
 @@ -3,22 +3,6 @@
  // Distributed under the MIT/X11 software license, see the accompanying
  // file license.txt or http://www.opensource.org/licenses/mit-license.php.
@@ -94,8 +94,8 @@
  #include 
  #endif
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp 44df7fd78d25997fd3e84e4df43ea6511de2aed69dced33a64a14d9c918ca34eea4d5fd1afff711b490991ce90f90cf67052433cdd5fccda08bb974e75f0929d
-+++ b/bitcoin/src/init.cpp a8b85aa6dba112f0e314bd86f737d2fef1206e4ad81b4c346c053d2bf3e4f36a1f5687dcd1321a0a7f3884db1fb31ffce69603afb78f7c4e1b5ca638840a4404
+--- a/bitcoin/src/init.cpp 352283739438e0d213f66b3d94a728ecf280ace2280615a2c700e5d94bf32bbd3518f512fab55f7071ff5e8f02ec988cc1be71ec15597af3c3933d7cb833efc4
++++ b/bitcoin/src/init.cpp 5580d0fa04b103fddff3b029385134345ce8f1968688e4d69fc4bd0ef13f87be7a380476829fb761b82ad0069d003948b5fcff7470941ab8298df82e93c9b80a
 @@ -25,10 +25,6 @@

  void ExitTimeout(void* parg)
@@ -183,8 +183,8 @@
      if (!fDebug && !pszSetDataDir[0])
          ShrinkDebugFile();
 diff -uNr a/bitcoin/src/main.h b/bitcoin/src/main.h
---- a/bitcoin/src/main.h 784c9af0366ee1f7033155638503bc35ff23aaf675e177f3917f0890e14a9d5ceeb80fd833751d674f0d7e41e6fe1d93ea32694872028fec1dc8a83c0ad17944
-+++ b/bitcoin/src/main.h 8cfdda6fd46e07e50ab42e4f4652274c324b6020f30a340b6bb9ee3fd620c497473c8480102218d48261646d7adfecff7ff987f8a798997b4d3ebd032066d78d
+--- a/bitcoin/src/main.h 265f35217e2a79155aa98dc832a62f1a24879f70aa594237811392d5f14ec182de78cabaccf7f9d0af07504ff4e37f39ea4c4c6dac7d6d1b8890258ab40c2d33
++++ b/bitcoin/src/main.h 66af7bed57921718a5e073db591e4dc838622df4af4e5662a0b2f46f20ee60c98fec6d967bdb71a4c1cf82e3dc9f2f6e0aeddaef9c7246b7797e6b4db5f1080d
 @@ -923,11 +923,7 @@
          fflush(fileout);
          if (!IsInitialBlockDownload() || (nBestHeight+1) % 500 == 0)
@@ -198,7 +198,7 @@

          return true;
 diff -uNr a/bitcoin/src/makefile.linux-mingw b/bitcoin/src/makefile.linux-mingw
---- a/bitcoin/src/makefile.linux-mingw c345f6b5bc7d336782f8c032d9fc7ba0004a64782f1373dc82e3b117dc276a10c0bd0e31b646d8e9bbb4ffb6a9e6878a0d17851af9748b93b0107f3b4285a5a0
+--- a/bitcoin/src/makefile.linux-mingw 83d546a9c99d9a33cf806b19617dfb36dbe2d51912b3d8b14aa2df4ef64b9f281820d99f2c9cb822c21baf8392389aa1fd543478037aeb734300651f0c9d5392
 +++ b/bitcoin/src/makefile.linux-mingw false
 @@ -1,95 +0,0 @@
 -# Copyright (c) 2009-2010 Satoshi Nakamoto
@@ -297,8 +297,8 @@
 -	-rm -f bitcoind.exe
 -	-rm -f test_bitcoin.exe
 diff -uNr a/bitcoin/src/net.cpp b/bitcoin/src/net.cpp
---- a/bitcoin/src/net.cpp 50f2bf26c02d6edbd0aec5a3e5b3ddceaffab27c16d51a4dd972e42e01871d8e34314f525e9394211801c9ea7d1bd8f8266ae214b30a8e645ce207bf5f3bbd92
-+++ b/bitcoin/src/net.cpp c67fdd55e9d9d6b4973122b76729d7e83a456a8dc410f1c130cffbfd9f626c47ca7e8006bde912d9e0bd0a4b8457e895270d4a0efd22c4a199cd52ffd95b10dd
+--- a/bitcoin/src/net.cpp a1b78a422161c6f5f3ca51a585d8c3f68e9490af3f1ba48b7772cbe4d5a9711619707984376f9a51487aec676f437fbf6df38309d535daccb966873f9608e9f1
++++ b/bitcoin/src/net.cpp 397fa4caf80112ef2a0ef2905ab0af4df49e437b926e5dde97167d888423a21e5b34f42361296bc065d31f49a8bda21aedfc6365684bc9cadd873598803b912c
 @@ -10,10 +10,6 @@
  #include "init.h"
  #include "strlcpy.h"
@@ -459,8 +459,8 @@
  }
  instance_of_cnetcleanup;
 diff -uNr a/bitcoin/src/net.h b/bitcoin/src/net.h
---- a/bitcoin/src/net.h ae473b8d2838555df527e16ac7cae7dfff39bfd68769b1fcabb1f847e29e1245af78799942e790016c376a76e112b9ec16d2d7d5f52736e3cc72e45432706d3b
-+++ b/bitcoin/src/net.h 08231aa424ae8c84086b5b82ea79a7f22fb3403b4245c6d05a20176c4962ae620a35b9cb2505f4b8e33a8f43d077152406007013e49e97ab1ceed6b158b77a0f
+--- a/bitcoin/src/net.h 82905169cadf6fb364c8c5073f4b80450a9a995219840ffb1e46f756f35bb9649677c75044d55a017b92c27e32ce5dac52cda187a18c3b544756882ff6a57b50
++++ b/bitcoin/src/net.h 0b8486f417ca786accc0335c0381a2fd80393e842f79a9926c556f81d6b09e41615de890477dadad86816f672a07b1df2a495d0b95c85a3bf2fd8a8aa67b2863
 @@ -10,10 +10,6 @@
  #include 
  #include 
@@ -473,8 +473,8 @@

  class CAddrDB;
 diff -uNr a/bitcoin/src/protocol.cpp b/bitcoin/src/protocol.cpp
---- a/bitcoin/src/protocol.cpp 09c7f4cc1247b2ec45ffdae139fe2574dae0eb4cd40d0e48cfd5de49033ab1f4242e564020e4af5418b12e7a78430c87d58b1d4829c837b9dae47d1c1cd32382
-+++ b/bitcoin/src/protocol.cpp 8faeddc8ca1b84e53edee8f3325edd7db8b74e063f4d338ae7e280c02dce96e8156157a6802feab5b7f695981e6f8a42ab5f44b9df3093a4d7c4f30f9b029912
+--- a/bitcoin/src/protocol.cpp e76ec1350e05c0fef1798a50903586ace4737faa6db134094a88a23a96e2a54d8e135a840b822ef136d336b035b3b03b7ded83a99267c892663b15d11ad00720
++++ b/bitcoin/src/protocol.cpp e5274fe2ff8aa6840ce5be2e7797766dc4a70a19c2e08954bbfd9cfff4ad9e27614606079a4ce7fc5ae150dfaf2906bee118b543d889710da78475bd12f24c56
 @@ -5,10 +5,8 @@

  #include "protocol.h"
@@ -500,8 +500,8 @@

  struct sockaddr_in CAddress::GetSockAddr() const
 diff -uNr a/bitcoin/src/script.h b/bitcoin/src/script.h
---- a/bitcoin/src/script.h 72636dbd07e5917231ee2b62473be7a766e0e62e573315cc48e38b524da2885803b024f0613fa52c347ba0ed19455ca9461e980018e66d5ca9b05ce0bc380693
-+++ b/bitcoin/src/script.h 796b2ab92a49e29b5873be0d63d732d1b973855de76062492190687c57fdbefc069091df6306a0eee86ad5717c8fa90774ea9b8589cba2d9138b544c37e7177f
+--- a/bitcoin/src/script.h 6d3cd409eee6a9f7689a3cbbc8af5207e314b39f4b16f8c82f350ffb1afd42b8025effa2c1d2e6f5f511b2c0fdd87bf008206ae6809490e0dd8d06e9b3430ea4
++++ b/bitcoin/src/script.h 5368ab26f0f4d5e439f4c51e7c4081f20c4373b3b6ee9ee92b28335b03a5354e33df645293b11171f483d06b76326528b4b594d59f103fc2f256b6c6e89525d4
 @@ -384,9 +384,7 @@
      CScript() { }
      CScript(const CScript& b) : std::vector(b.begin(), b.end()) { }
@@ -513,8 +513,8 @@
      CScript& operator+=(const CScript& b)
      {
 diff -uNr a/bitcoin/src/serialize.h b/bitcoin/src/serialize.h
---- a/bitcoin/src/serialize.h 0dcf98014abe06b33ab296a747e42e88770a87f8d4e408be4fc1ebe6b02312695cc129d0b58c0886bf8521b6d2c79bf6f2c33e19c03aee8f5357d8db779829ad
-+++ b/bitcoin/src/serialize.h 762e48eeae1d5086a18fc1f37dfc395ca6a6c393aa71dc177e19c106e69b3e3e3130252ec7d229976d1bcb325a1e6bd1ca5e73de1ebba6c37d71326385a4244c
+--- a/bitcoin/src/serialize.h 0c9bc8280a5657728cb63da6f822999a40c0791d9c81daaa779181a5a1b241b1130a088b280a0a74777d27db144978d15e43ba21bcce68ce4d202767bd19e297
++++ b/bitcoin/src/serialize.h fa08e3a8029453dca3e5dd6ca382ef541294ce5a7f914975b376f87c4eae2da55b8ca6cea65343ba93e55f39956c4448e96b794ce39b799d65fd100e555262e7
 @@ -19,27 +19,9 @@
  #include 
  #include 
@@ -581,8 +581,8 @@
      iterator erase(iterator it)
      {
 diff -uNr a/bitcoin/src/uint256.h b/bitcoin/src/uint256.h
---- a/bitcoin/src/uint256.h 3436729b55463ebb34788a47a8856d47ba7ebc27f447c5ff73b8727897d7c468716d8313e9b613e7889a7c3dffa6e577d77149ae8c4c415fb41ce3fc5cc6d852
-+++ b/bitcoin/src/uint256.h bff76a65e51957209d7753535337d23927a9a1acc829c5bc5d9f266a1b8c004b555daae74e75b616ca0088f8be0739f082d64edc2387495b3675bebd25658fd3
+--- a/bitcoin/src/uint256.h 821f3af7a2ce7bb860659e1b5833da377c539c5e6207ffb48c042673dada79b37002e6bd336e54c940cee120bdb132b62966d30732e4afefdd46261eff889bf8
++++ b/bitcoin/src/uint256.h e422bdfd1396bf3be89e700e002a3e232c962582ca358abca81a1e689aa991f077ab81c929d5ece265acb834b41482551012381f63f17f0a972fe7b496caee04
 @@ -11,17 +11,8 @@
  #include 
  #include 
@@ -602,8 +602,8 @@
  inline int Testuint256AdHoc(std::vector vArg);

 diff -uNr a/bitcoin/src/util.cpp b/bitcoin/src/util.cpp
---- a/bitcoin/src/util.cpp 4b0f7b3a7757336b6e5c349d89170bfc4b4c40a04e0ec3fccf0b155314689c781deb9590ab05daa8af20a123e2f3cad55c5af1244700197a3530d0d4699d32c5
-+++ b/bitcoin/src/util.cpp 626e2306c3784911c960136e39bd3eb7c925ca90378faa03fb616a5d7180335889f0807bb39c9ac1907b285c43e730558190e1a1d5717eba4bae6006a9abedfd
+--- a/bitcoin/src/util.cpp c7f92359243328f815311ad714efd61cf038a265aab7f69160caf9add62f0a061807c1b9da4474660c7bcb05800ba0e5265cf92e3934eada359b7b70b42c8786
++++ b/bitcoin/src/util.cpp 73bce315476b665825604c1cfcb777a779de476b774b92656f4c52a49dd6b0740132f73e2348599fecfd6702a1f1629b1f5237a11f3d98b516721c350c358b16
 @@ -64,11 +64,6 @@
              ppmutexOpenSSL[i] = new boost::interprocess::interprocess_mutex();
          CRYPTO_set_locking_callback(locking_callback);
@@ -790,8 +790,8 @@

  void GetDataDir(char* pszDir)
 diff -uNr a/bitcoin/src/util.h b/bitcoin/src/util.h
---- a/bitcoin/src/util.h 1355ad6ce93816fffc1befd7a68a5fbdf034ae24ae99c64a60269ca9db589363d6531f441cd2393630e3128c2762ddcb8101dd6c305551b70cf24e102e59cfd0
-+++ b/bitcoin/src/util.h 1e2275fea3780708aed4d4c7de351b23a9379354df29dda39b8bf2ccc72df95713514b2b7837dc2230d42cf8234744e804bfd608fb4442ff62871257f8d80c12
+--- a/bitcoin/src/util.h a39ea68039e96132373815ada8bcebd6611278868e86ca8c302db31cdd9cf1cdbd73961b062fce4cac43f99fff9f901f07e549d4023569325908c716509856f6
++++ b/bitcoin/src/util.h 53346031ed18521834bdcf32e7e733544ec7a5155f8fc505706eba497cbd76101fca2ef8aa7bbabee77f349b33ecd615dedbe9a03488012435075907b0d46059
 @@ -7,11 +7,10 @@

  #include "uint256.h"
--- patches/bitcoin-v0_5_3-db_config.6.vpatch	2015-08-22 23:40:55.000000000 +0000
+++ keccak_vtree/bitcoin-v0_5_3-db_config.6.vpatch	2019-01-09 03:31:20.745942536 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/db.cpp b/bitcoin/src/db.cpp
---- a/bitcoin/src/db.cpp 66f81f6da997109f4d34ca654d30e24cb850fa87a6fbe6a045c6cb1a9f6d47d979fb4e25a0bbb35064c1259cda3c7b5ff12f68d9c22c1acf45299dbb4ed72317
-+++ b/bitcoin/src/db.cpp 5ef1d72d65a56cb29b83d22fe5f487a18888cb050ca7845f7c5321d31345940424af4ecb860f600d3de74a900fa96783d37ba79b3284e4ffc79f950fa1810052
+--- a/bitcoin/src/db.cpp 0e9401061876b3c91016108ab88a45aa8dc5f57f1b6e0487a62e540a78c52d11062de7c2d23e4a6545dd19992375199a243d099db730c58dd11f9f27d707872b
++++ b/bitcoin/src/db.cpp ac7f78b43615352ca09dbef35119017736d7c89b1a507a71468cfb126b29f0f5b910cfe2825f3c4ec6f72d18dd3b11f01675a35b9120de5a52de2eb09620efcc
 @@ -84,11 +84,13 @@
              printf("dbenv.open strLogDir=%s strErrorFile=%s\n", strLogDir.c_str(), strErrorFile.c_str());

--- patches/bitcoin-v0_5_3_1-rev_bump.7.vpatch	2015-08-22 23:40:55.000000000 +0000
+++ keccak_vtree/bitcoin-v0_5_3_1-rev_bump.7.vpatch	2019-01-09 03:31:21.545942534 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/serialize.h b/bitcoin/src/serialize.h
---- a/bitcoin/src/serialize.h 762e48eeae1d5086a18fc1f37dfc395ca6a6c393aa71dc177e19c106e69b3e3e3130252ec7d229976d1bcb325a1e6bd1ca5e73de1ebba6c37d71326385a4244c
-+++ b/bitcoin/src/serialize.h e3bebfb62c99559742ad91132167f2c5b98588465afc8d0f5f1c1e8404a89f87ff9aa11a9a90b741dff7f0668fc5e45452dd51692aa3c235dcb4cfcb2ed545d2
+--- a/bitcoin/src/serialize.h fa08e3a8029453dca3e5dd6ca382ef541294ce5a7f914975b376f87c4eae2da55b8ca6cea65343ba93e55f39956c4448e96b794ce39b799d65fd100e555262e7
++++ b/bitcoin/src/serialize.h a8b934c161794e0eabbcba01cfb3bd9c08f9c14ee92c2053c9f4707db51139811a37c6c10ef027db3433bec9e8c7d3637354215df85c50c10cb06aa07635d823
 @@ -41,7 +41,7 @@
  class CAutoFile;
  static const unsigned int MAX_SIZE = 0x02000000;
--- patches/bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch	2015-08-22 23:40:55.000000000 +0000
+++ keccak_vtree/bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch	2019-01-09 03:31:21.925942533 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/makefile.unix b/bitcoin/src/makefile.unix
---- a/bitcoin/src/makefile.unix 46721d9a78548459b3151032c0824b105b1327366859c9247357a60076796ff760fd3224e0d6c5b3858841392902844a52d7f7d5dbd80677ceea3fd3ed68a99f
-+++ b/bitcoin/src/makefile.unix 390eaab6a0ad70671d5d44b3d9a34cab24e838eecfe70fdae7d1e8f1ae9c0f446bdea03e3fcddac67b3c1fdb4aeb6ad9cd7c667037ac73bf4c2fe6d96adeb4b1
+--- a/bitcoin/src/makefile.unix 85700c20bee5a758709d7d3d1f85afa09d3e036af93c4e5b85e76364ed7fdb9b86b664039f61ddf415e62ef36c8f89a7957d3569fa14cc99349f37bd4d947b47
++++ b/bitcoin/src/makefile.unix 0f0e33a7b5754899d74e4653292abed226b5b28a9dfe250544ad7eafd928041bd862b8d8293297dabafd84547124f72e94fe77caaceb7b1f0ed93460aa8ce449
 @@ -27,12 +27,11 @@
     -l boost_thread$(BOOST_LIB_SUFFIX) \
     -l db_cxx$(BDB_LIB_SUFFIX) \
--- patches/asciilifeform-kills-integer-retardation.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform-kills-integer-retardation.vpatch	2019-01-09 03:31:22.625942531 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/bitcoinrpc.cpp b/bitcoin/src/bitcoinrpc.cpp
---- a/bitcoin/src/bitcoinrpc.cpp bc6c82ab1a129e9e74a6bf785df99ac939fef94d72afbee153913fd53cab5d05120047275342cb4d52a98a951184eed47cccd9710e3655c261b68d2f257614a3
-+++ b/bitcoin/src/bitcoinrpc.cpp cfc24bce544ba71ed8e7e876a1074dc89da184c6aa7f0fc2ad8d0c213516b2b9539497d3176dd0a17ccb427d687ce8d3cc4d3b9969802c9da5f05a0617a2a30b
+--- a/bitcoin/src/bitcoinrpc.cpp d064c6c28ba9016a427fe89f42e8c46caf45755b9289a4b485dc05d35ccd02541181da072f2c0ada36290d23208f5f9b600417e653ac24a57020ce0f620c2c42
++++ b/bitcoin/src/bitcoinrpc.cpp ce40e0dd8882caeed2da59990716cdab09d90f0e1c9aea20688a318451e413fd943b43ac8a725192a8f95c006a99ef35d0807e8e06def62992356fb888b29984
 @@ -1758,8 +1758,8 @@
          result.push_back(Pair("version", pblock->nVersion));
          result.push_back(Pair("previousblockhash", pblock->hashPrevBlock.GetHex()));
@@ -13,8 +13,8 @@
          union {
              int32_t nBits;
 diff -uNr a/bitcoin/src/util.h b/bitcoin/src/util.h
---- a/bitcoin/src/util.h 1e2275fea3780708aed4d4c7de351b23a9379354df29dda39b8bf2ccc72df95713514b2b7837dc2230d42cf8234744e804bfd608fb4442ff62871257f8d80c12
-+++ b/bitcoin/src/util.h e5e5da8c45c0fab1aca83eadb8e98560dc14f65060803b5efd7ea83418be6412ee6a4f59f15fa939e1d639ef2638c9c5d18b5448c246d943827a41e01997ef7b
+--- a/bitcoin/src/util.h 53346031ed18521834bdcf32e7e733544ec7a5155f8fc505706eba497cbd76101fca2ef8aa7bbabee77f349b33ecd615dedbe9a03488012435075907b0d46059
++++ b/bitcoin/src/util.h 52465ee0a39129774d7100a8731b84ebe0327c822f7b728d9576db9df878366d96f8d87f8a4d154d7f28ba4992fe9fd510641073e4035851cf3d8d82a36d6a3b
 @@ -7,7 +7,7 @@

  #include "uint256.h"
--- patches/asciilifeform_and_now_we_have_block_dumper_corrected.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_and_now_we_have_block_dumper_corrected.vpatch	2019-01-09 03:31:22.745942531 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/bitcoinrpc.cpp b/bitcoin/src/bitcoinrpc.cpp
---- a/bitcoin/src/bitcoinrpc.cpp cfc24bce544ba71ed8e7e876a1074dc89da184c6aa7f0fc2ad8d0c213516b2b9539497d3176dd0a17ccb427d687ce8d3cc4d3b9969802c9da5f05a0617a2a30b
-+++ b/bitcoin/src/bitcoinrpc.cpp d5edc4c67519900497dc7f576070808e67519d2921981c63fc5c80d14dc2f8040544cd1c79ac202194dfa07fafd6245ebed5bab25b86cf5efb9e901659d0d8b5
+--- a/bitcoin/src/bitcoinrpc.cpp ce40e0dd8882caeed2da59990716cdab09d90f0e1c9aea20688a318451e413fd943b43ac8a725192a8f95c006a99ef35d0807e8e06def62992356fb888b29984
++++ b/bitcoin/src/bitcoinrpc.cpp 218b2429fae339a7c78f2c0a978219b730025e11d88d86f4bca05f1f9646100bee6d510c9e5919d4eeeb9e37b0a09d381bf349f951cd17dbd8c4f9d8d849cbc3
 @@ -1782,12 +1782,39 @@
  }

--- patches/asciilifeform_dnsseed_snipsnip.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_dnsseed_snipsnip.vpatch	2019-01-09 03:31:23.495942529 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp a8b85aa6dba112f0e314bd86f737d2fef1206e4ad81b4c346c053d2bf3e4f36a1f5687dcd1321a0a7f3884db1fb31ffce69603afb78f7c4e1b5ca638840a4404
-+++ b/bitcoin/src/init.cpp b7efbc0ce8eb70c04b3b0f713aa9dbeacf9dfe913be38d32ae83a9eb63024f752c4b98df5e019378e721a9b4c6a1e6466797caa1b0b80b4d672771dcfd8c5202
+--- a/bitcoin/src/init.cpp 5580d0fa04b103fddff3b029385134345ce8f1968688e4d69fc4bd0ef13f87be7a380476829fb761b82ad0069d003948b5fcff7470941ab8298df82e93c9b80a
++++ b/bitcoin/src/init.cpp d68207833444ea7d6f91bc579cb5543121f9f5bb90a72b713cca1d90a453bca3a4e660afe66e836fd8ad1e3e21ee322ecd54114fc541fb30924ebbb0d6544a41
 @@ -167,7 +167,6 @@
              "  -connect=    \t\t  " + _("Connect only to the specified node\n") +
              "  -noirc           \t  "   + _("Don't find peers using internet relay chat\n") +
@@ -18,8 +18,8 @@
      }

 diff -uNr a/bitcoin/src/net.cpp b/bitcoin/src/net.cpp
---- a/bitcoin/src/net.cpp c67fdd55e9d9d6b4973122b76729d7e83a456a8dc410f1c130cffbfd9f626c47ca7e8006bde912d9e0bd0a4b8457e895270d4a0efd22c4a199cd52ffd95b10dd
-+++ b/bitcoin/src/net.cpp 3ef738258288e826fa190f599e0dd1b655c6d90c17d97454fcb95324471f5098f692631ac552d6bf1f10d802db237de94952d91f426878fc85d03b78e073a45f
+--- a/bitcoin/src/net.cpp 397fa4caf80112ef2a0ef2905ab0af4df49e437b926e5dde97167d888423a21e5b34f42361296bc065d31f49a8bda21aedfc6365684bc9cadd873598803b912c
++++ b/bitcoin/src/net.cpp f58c522ef8e2a659bb35fd9607e6f4f97bc8d1d2ccdc543a6b3fb1f834d15258c73899ea7442ee3f0382e6f50aac6a44656446f1548eaf01e7adf1a7959924ba
 @@ -19,7 +19,6 @@
  void ThreadMessageHandler2(void* parg);
  void ThreadSocketHandler2(void* parg);
--- patches/asciilifeform_maxint_locks_corrected.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_maxint_locks_corrected.vpatch	2019-01-09 03:31:23.795942528 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/db.cpp b/bitcoin/src/db.cpp
---- a/bitcoin/src/db.cpp 5ef1d72d65a56cb29b83d22fe5f487a18888cb050ca7845f7c5321d31345940424af4ecb860f600d3de74a900fa96783d37ba79b3284e4ffc79f950fa1810052
-+++ b/bitcoin/src/db.cpp 565faf3ef371f5e2178ae30c45b08b93415eeb92263486e68f2ac2e8f4c7900056e628804bf5c0707a90be946e0aeaebfcd0a391aab40de2e5d56e6bcbdccb1e
+--- a/bitcoin/src/db.cpp ac7f78b43615352ca09dbef35119017736d7c89b1a507a71468cfb126b29f0f5b910cfe2825f3c4ec6f72d18dd3b11f01675a35b9120de5a52de2eb09620efcc
++++ b/bitcoin/src/db.cpp 0db7f37e087f7721132e816947d6098ced86022aa24a56c5e7f8fc4e6a8241eb2c51088dca41e4255f6ce75ed9c01f66b5191db39302125fffd489e7a324a482
 @@ -85,8 +85,9 @@

              dbenv.set_lg_dir(strLogDir.c_str());
--- patches/asciilifeform_orphanage_thermonuke.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_orphanage_thermonuke.vpatch	2019-01-09 03:31:24.455942527 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp
---- a/bitcoin/src/main.cpp b877647a1fd7d468facf6ed3488e229a15d0d88d62dcd600721943686a67fa06eff24847a6a36c2a74b544105047636af3e6ae4e384b55bf2863027942bd26b4
-+++ b/bitcoin/src/main.cpp fe5dcf6804d4fdaa80f20ebdcd4fdfeafe0fa4108818a6574b5a6123790e7cdb38ccb612078af5ac8ee42e5f3c3e525e62e29a041f5ab5ebebaf929950ae5aac
+--- a/bitcoin/src/main.cpp e614d63a917f3ba00110c4a3789f1bf8190cdc7ff68efaf022056ffe135cfe758cc5687195bd0c16044d7d27bdb7386aba4cf231acf02ece4ac15b802d00b2bd
++++ b/bitcoin/src/main.cpp 61852c7c9d4c69ae3e686a3be199bb692875d8e28845d47153b020dd904d08658a10b9ac0437be4af4036ddedb64dc6f0ae5952e9a491d34e0c35763afa1ce94
 @@ -40,9 +40,6 @@

  CMedianFilter cPeerBlockCounts(5, 0); // Amount of blocks that other nodes claim to have
--- patches/asciilifeform_tx-orphanage_amputation.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_tx-orphanage_amputation.vpatch	2019-01-09 03:31:24.985942525 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp
---- a/bitcoin/src/main.cpp fe5dcf6804d4fdaa80f20ebdcd4fdfeafe0fa4108818a6574b5a6123790e7cdb38ccb612078af5ac8ee42e5f3c3e525e62e29a041f5ab5ebebaf929950ae5aac
-+++ b/bitcoin/src/main.cpp 18a4b9a7abccac46895c8eeb0c14cc502f3743958654444c87d5192a51073980858750daa9c8bd67f4d4d2ec8a7117aea8fc75a4acf73cc1a2cab996aea324b1
+--- a/bitcoin/src/main.cpp 61852c7c9d4c69ae3e686a3be199bb692875d8e28845d47153b020dd904d08658a10b9ac0437be4af4036ddedb64dc6f0ae5952e9a491d34e0c35763afa1ce94
++++ b/bitcoin/src/main.cpp 537a12d62802fa25331ce5e27434a9af18f263bbcc4d9cb4092e8c72c314b7a1ce6acb20cfdc3ce17a7668302f466bc5041d7e5a40f7c4531c411a40c86ff767
 @@ -40,8 +40,6 @@

  CMedianFilter cPeerBlockCounts(5, 0); // Amount of blocks that other nodes claim to have
@@ -141,8 +141,8 @@
          if (tx.nDoS) pfrom->Misbehaving(tx.nDoS);
      }
 diff -uNr a/bitcoin/src/main.h b/bitcoin/src/main.h
---- a/bitcoin/src/main.h 8cfdda6fd46e07e50ab42e4f4652274c324b6020f30a340b6bb9ee3fd620c497473c8480102218d48261646d7adfecff7ff987f8a798997b4d3ebd032066d78d
-+++ b/bitcoin/src/main.h ff2bf8f8147dd8df5e1ef1bcea9b0159d3f83c1e30befef56415b99305aa99161ac1c05efb48be87a383ffb6d621fd3761bfb3e4952ca244a6e1398ca3c71dc6
+--- a/bitcoin/src/main.h 66af7bed57921718a5e073db591e4dc838622df4af4e5662a0b2f46f20ee60c98fec6d967bdb71a4c1cf82e3dc9f2f6e0aeddaef9c7246b7797e6b4db5f1080d
++++ b/bitcoin/src/main.h ecafbdf451a63be8ea30ba33b93f62a155511051154af8369284519e6f493d2b3546ff2d3e7f7a3ec263f50a2080da9665b24dce3aebb4cd54b92acb12f37024
 @@ -30,7 +30,6 @@
  static const unsigned int MAX_BLOCK_SIZE = 1000000;
  static const unsigned int MAX_BLOCK_SIZE_GEN = MAX_BLOCK_SIZE/2;
--- patches/asciilifeform_zap_hardcoded_seeds.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_zap_hardcoded_seeds.vpatch	2019-01-09 03:31:25.525942524 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/net.cpp b/bitcoin/src/net.cpp
---- a/bitcoin/src/net.cpp 3ef738258288e826fa190f599e0dd1b655c6d90c17d97454fcb95324471f5098f692631ac552d6bf1f10d802db237de94952d91f426878fc85d03b78e073a45f
-+++ b/bitcoin/src/net.cpp 4f7d9ab0f1b1c8c63112fdeae55038d6c1ce96d4ee8d791803b02f77507239fa721384ece65b747c56279d5b6a493d79f547b13a8c94eebaa1d55fb07aba3215
+--- a/bitcoin/src/net.cpp f58c522ef8e2a659bb35fd9607e6f4f97bc8d1d2ccdc543a6b3fb1f834d15258c73899ea7442ee3f0382e6f50aac6a44656446f1548eaf01e7adf1a7959924ba
++++ b/bitcoin/src/net.cpp c33ce2cb5f801e8d37d93acb2920cdf5141ea98f131eae361df7fa7d80b4fc412f937d8db8396bcc4b353a515289decc4231c09486ed6e1a3ae9140ea2814cbf
 @@ -1066,89 +1066,6 @@
  }

--- patches/asciilifeform_zap_showmyip_crud.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_zap_showmyip_crud.vpatch	2019-01-09 03:31:26.035942523 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/net.cpp b/bitcoin/src/net.cpp
---- a/bitcoin/src/net.cpp 4f7d9ab0f1b1c8c63112fdeae55038d6c1ce96d4ee8d791803b02f77507239fa721384ece65b747c56279d5b6a493d79f547b13a8c94eebaa1d55fb07aba3215
-+++ b/bitcoin/src/net.cpp e49a09443eb1aaf45252696f1731c346c18efa2fbc3b64d87eda63e126cc4dd44608b9c554c80dcd112ec5a050cf5a937b6a302d03dca89c8543f03cefbfa17c
+--- a/bitcoin/src/net.cpp c33ce2cb5f801e8d37d93acb2920cdf5141ea98f131eae361df7fa7d80b4fc412f937d8db8396bcc4b353a515289decc4231c09486ed6e1a3ae9140ea2814cbf
++++ b/bitcoin/src/net.cpp a5977f1e2ad59eeeefbcb59e32a935724653fd328e65570d9b7a6270f1ca1f27a00e2221c05da122372d203b3ccc82dd04d3eadc745a6d7f7add3f5cf6aca410
 @@ -263,114 +263,6 @@
      return fRet;
  }
--- patches/mod6_fix_dumpblock_params.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/mod6_fix_dumpblock_params.vpatch	2019-01-09 03:31:26.305942522 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/bitcoinrpc.cpp b/bitcoin/src/bitcoinrpc.cpp
---- a/bitcoin/src/bitcoinrpc.cpp d5edc4c67519900497dc7f576070808e67519d2921981c63fc5c80d14dc2f8040544cd1c79ac202194dfa07fafd6245ebed5bab25b86cf5efb9e901659d0d8b5
-+++ b/bitcoin/src/bitcoinrpc.cpp cd1dcc5febddd45408b193d0b875d8951eed8dc29d342ae5e57330b4ea2b55d959fab19e634696234c698feb4fa79a5702278e83b3896389c425ada5e935cc34
+--- a/bitcoin/src/bitcoinrpc.cpp 218b2429fae339a7c78f2c0a978219b730025e11d88d86f4bca05f1f9646100bee6d510c9e5919d4eeeb9e37b0a09d381bf349f951cd17dbd8c4f9d8d849cbc3
++++ b/bitcoin/src/bitcoinrpc.cpp 4731466a24920c9320dc9f20d9537058dd693da77b8646a3cc47a69d710217574452a18a45d81de82231246fd402d7f80fca14aa85ee14156ffa513e064bfc81
 @@ -1784,7 +1784,7 @@

  Value dumpblock(const Array& params, bool fHelp)
--- patches/asciilifeform_dns_thermonyukyoolar_kleansing.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_dns_thermonyukyoolar_kleansing.vpatch	2019-01-09 03:31:27.045942520 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp b7efbc0ce8eb70c04b3b0f713aa9dbeacf9dfe913be38d32ae83a9eb63024f752c4b98df5e019378e721a9b4c6a1e6466797caa1b0b80b4d672771dcfd8c5202
-+++ b/bitcoin/src/init.cpp d782e9b44727fe886dd474e6ce421141fa6a9e4cd91b937bd55f46cb85056b0207c570294a1fce7f666075df6492ce649bdf0795e4bee9a2b811090170bc93b3
+--- a/bitcoin/src/init.cpp d68207833444ea7d6f91bc579cb5543121f9f5bb90a72b713cca1d90a453bca3a4e660afe66e836fd8ad1e3e21ee322ecd54114fc541fb30924ebbb0d6544a41
++++ b/bitcoin/src/init.cpp 2a962f65fd9a55bfd5db5ed17a95d57ec009905436eb550bcda1c6a024935f1c88b62d509a4c5ac3ddda00970412bfba71aae29f389c191af22c2f1dcf758c07
 @@ -160,7 +160,6 @@
              "  -datadir=<dir>   \t\t  " + _("Specify data directory\n") +
              "  -timeout=     \t  "   + _("Specify connection timeout (in milliseconds)\n") +
@@ -30,8 +30,8 @@
              if (addr.IsValid())
                  AddAddress(addr);
 diff -uNr a/bitcoin/src/irc.cpp b/bitcoin/src/irc.cpp
---- a/bitcoin/src/irc.cpp fc9388561ae8af72ab6f10816cacd133746de668b500bae02c239b129dc5e190794a94d7569b7ecbd294844bfe3c2a3a2b5c4e2a0a5f3aa3170da498a8d0724b
-+++ b/bitcoin/src/irc.cpp 1f5eac2f3c61801c5bce81a6b89d2c3b4bea56a652664148dd45cb895385d27c0bcb58c2e8ba5ad32cb330e14d3bd7ef0cbdaba8323350a10837a7daaf956ab2
+--- a/bitcoin/src/irc.cpp 775141f07ce491a331e51fe97b43d4f2d1891eb720fc6706d06747959653e8171cb46daa77efd73e202b1e1419f26036c92cc106de34d22245489b3f7b333bcb
++++ b/bitcoin/src/irc.cpp a2d021c40268e8dfadd89ce84f19a0fae780599823cff27d0afeefd7e842f4e1828b18d2bcf97497ba510efbdfb927041a4fd4dccf9e83dcad04c73439ad1565
 @@ -269,10 +269,6 @@
      {
          CAddress addrConnect("92.243.23.21", 6667); // irc.lfnet.org
@@ -44,8 +44,8 @@
          if (!ConnectSocket(addrConnect, hSocket))
          {
 diff -uNr a/bitcoin/src/net.cpp b/bitcoin/src/net.cpp
---- a/bitcoin/src/net.cpp e49a09443eb1aaf45252696f1731c346c18efa2fbc3b64d87eda63e126cc4dd44608b9c554c80dcd112ec5a050cf5a937b6a302d03dca89c8543f03cefbfa17c
-+++ b/bitcoin/src/net.cpp e8735147d6e6bf1e60e12386590feea17b8790faf114669194c1dbe551e184067bf8d0bfeb97ac257ee1fca645eacc51439a7a1d55e4053178e454c52b16e2a3
+--- a/bitcoin/src/net.cpp a5977f1e2ad59eeeefbcb59e32a935724653fd328e65570d9b7a6270f1ca1f27a00e2221c05da122372d203b3ccc82dd04d3eadc745a6d7f7add3f5cf6aca410
++++ b/bitcoin/src/net.cpp eaf9888f03cfc0267577d217d24b0fba45d5d141e9d8536081059b97195590a0f7aa8d27704cabd46d1af5033733b96d1bb01c47dcfbd636db659db101cc4a45
 @@ -29,9 +29,8 @@
  // Global state variables
  //
@@ -131,8 +131,8 @@
      // Get local host ip
      struct ifaddrs* myaddrs;
 diff -uNr a/bitcoin/src/net.h b/bitcoin/src/net.h
---- a/bitcoin/src/net.h 08231aa424ae8c84086b5b82ea79a7f22fb3403b4245c6d05a20176c4962ae620a35b9cb2505f4b8e33a8f43d077152406007013e49e97ab1ceed6b158b77a0f
-+++ b/bitcoin/src/net.h d36484a4290d22c5cedda2a3020543819514e1d2404c3064b2a8c64fc210300681a24156cbb5c3cbc2d4da56de970f1769baa7aae48f0dead0c3a2d88f0d5224
+--- a/bitcoin/src/net.h 0b8486f417ca786accc0335c0381a2fd80393e842f79a9926c556f81d6b09e41615de890477dadad86816f672a07b1df2a495d0b95c85a3bf2fd8a8aa67b2863
++++ b/bitcoin/src/net.h fd5e99a998637d3a0f154c2124a264a76649d115fe5b38bebeb4bf3abc1943de9031ebd2ca002f81f1d7ed53c8e72f072689e16264be1e6944ae2cf0926ea226
 @@ -26,8 +26,8 @@
  static const unsigned int PUBLISH_HOPS = 5;

@@ -145,8 +145,8 @@
  bool AddAddress(CAddress addr, int64 nTimePenalty=0, CAddrDB *pAddrDB=NULL);
  void AddressCurrentlyConnected(const CAddress& addr);
 diff -uNr a/bitcoin/src/protocol.cpp b/bitcoin/src/protocol.cpp
---- a/bitcoin/src/protocol.cpp 8faeddc8ca1b84e53edee8f3325edd7db8b74e063f4d338ae7e280c02dce96e8156157a6802feab5b7f695981e6f8a42ab5f44b9df3093a4d7c4f30f9b029912
-+++ b/bitcoin/src/protocol.cpp 35effbc7f73cdbda92148be58171b2337c090a7997eb3b02daf9a88287b4315c80d7fa5edf403be9cf958969c0c7e0c1b578c10f146ee0ea9b2965a1f97971bf
+--- a/bitcoin/src/protocol.cpp e5274fe2ff8aa6840ce5be2e7797766dc4a70a19c2e08954bbfd9cfff4ad9e27614606079a4ce7fc5ae150dfaf2906bee118b543d889710da78475bd12f24c56
++++ b/bitcoin/src/protocol.cpp 071f23cb1e017f72a89271924861d1036e3fb2d9c6459709d8a962cd7aa94f84faa657618d0dd553650a135a6e341ecf4389e2cb911c5e71d8c87d5d24bd77af
 @@ -9,8 +9,8 @@

@@ -196,8 +196,8 @@

  void CAddress::Init()
 diff -uNr a/bitcoin/src/protocol.h b/bitcoin/src/protocol.h
---- a/bitcoin/src/protocol.h eb06ffb5a1d9a725cce5c48fabf4ea4e9147aceb065acc54ae21c6d4b4065ebf5715d2dc88d3934312517a15247ff689711ede12328f5b8deadb6e2b43253c35
-+++ b/bitcoin/src/protocol.h 788e0529775e119dbca114dd28e76b8b83ceef9870e140edd9140e8fbe61bba1213f174708a2cc8e3ceb8c839a40f8fde98a419e07c3a0fe37979e6109e4ec61
+--- a/bitcoin/src/protocol.h 9438a1f1a661180998e98347b42eb49363f6c4fef82f8d970d4d1e0a367aa32055a505431bd86f100929bea481dcaf6fdd6fc95bb4e1d083e7044aee102d4479
++++ b/bitcoin/src/protocol.h ea4fdf494f219f2f3f9215d5dc384554b5dff4f18001cf08eaa39322fad2e5c1d1b74fd2486ea05d40627974df43bafa05d16858c1d98fbd287cb4104006662f
 @@ -67,10 +67,10 @@
          CAddress();
          CAddress(unsigned int ipIn, unsigned short portIn=0, uint64 nServicesIn=NODE_NETWORK);
--- patches/asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch	2019-01-09 03:31:27.615942519 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp d782e9b44727fe886dd474e6ce421141fa6a9e4cd91b937bd55f46cb85056b0207c570294a1fce7f666075df6492ce649bdf0795e4bee9a2b811090170bc93b3
-+++ b/bitcoin/src/init.cpp 4263d0ef771cb75e59e909372ba8b850e70a4cbc03635234119a267774d4a9095add15e1094b18646c9a1c280a486c7ec68d8cedc27ce2f6a14777af129e8b7a
+--- a/bitcoin/src/init.cpp 2a962f65fd9a55bfd5db5ed17a95d57ec009905436eb550bcda1c6a024935f1c88b62d509a4c5ac3ddda00970412bfba71aae29f389c191af22c2f1dcf758c07
++++ b/bitcoin/src/init.cpp 4a6fd3869db3a39835edd505281ad25b8f0feafd30b035369c730e1afadcd17fe3f1f49c8da4b3f59d97daabca37c9b544f57e8e484a43811a8dca044726bf45
 @@ -162,9 +162,9 @@
              "  -proxy= \t  "   + _("Connect through socks4 proxy\n") +
              "  -port=
     \t\t  " + _("Listen for connections on
 (default: 8333 or testnet: 18333)\n") +
@@ -21,7 +21,7 @@

      fNoListen = GetBoolArg("-nolisten");
 diff -uNr a/bitcoin/src/irc.cpp b/bitcoin/src/irc.cpp
---- a/bitcoin/src/irc.cpp 1f5eac2f3c61801c5bce81a6b89d2c3b4bea56a652664148dd45cb895385d27c0bcb58c2e8ba5ad32cb330e14d3bd7ef0cbdaba8323350a10837a7daaf956ab2
+--- a/bitcoin/src/irc.cpp a2d021c40268e8dfadd89ce84f19a0fae780599823cff27d0afeefd7e842f4e1828b18d2bcf97497ba510efbdfb927041a4fd4dccf9e83dcad04c73439ad1565
 +++ b/bitcoin/src/irc.cpp false
 @@ -1,436 +0,0 @@
 -// Copyright (c) 2009-2010 Satoshi Nakamoto
@@ -461,7 +461,7 @@
 -}
 -#endif
 diff -uNr a/bitcoin/src/irc.h b/bitcoin/src/irc.h
---- a/bitcoin/src/irc.h 960a1a96aabf8154dfe3619e5198f52cadc493d949ce647cba3dc4cbc69ab03c392f54c71f03a8e2d11070966d35a33eb7fea096d3799439d9583d32d0664e10
+--- a/bitcoin/src/irc.h ed3b395dc5d402e50fb6a46188ac5ac5ac249f9a0ff7eb026f66b1b3cb057c1fb660c76ec0626caddc056b36f208cb8951603316a49b2f2ea25721efe05b5b4d
 +++ b/bitcoin/src/irc.h false
 @@ -1,14 +0,0 @@
 -// Copyright (c) 2009-2010 Satoshi Nakamoto
@@ -479,8 +479,8 @@
 -
 -#endif
 diff -uNr a/bitcoin/src/makefile.unix b/bitcoin/src/makefile.unix
---- a/bitcoin/src/makefile.unix 390eaab6a0ad70671d5d44b3d9a34cab24e838eecfe70fdae7d1e8f1ae9c0f446bdea03e3fcddac67b3c1fdb4aeb6ad9cd7c667037ac73bf4c2fe6d96adeb4b1
-+++ b/bitcoin/src/makefile.unix 929157d5e139336f38e98555f14fc125c4217c23eba941086b648147e39fcec9ecab632567fc3295e58826fedf6239d5cc0cd028f4e78fd56ae868b795d2de02
+--- a/bitcoin/src/makefile.unix 0f0e33a7b5754899d74e4653292abed226b5b28a9dfe250544ad7eafd928041bd862b8d8293297dabafd84547124f72e94fe77caaceb7b1f0ed93460aa8ce449
++++ b/bitcoin/src/makefile.unix 6ce9f5aa9ba9134f1b98e4aa862c6540bf929c950bf0ca84f35dc4a3fa489121388dd5d43aca001d0e64dc16af5d818485e2ff3bbe645a24abb1fc69eb943a70
 @@ -79,7 +79,6 @@
      db.h \
      headers.h \
@@ -498,8 +498,8 @@
      obj/main.o \
      obj/net.o \
 diff -uNr a/bitcoin/src/net.cpp b/bitcoin/src/net.cpp
---- a/bitcoin/src/net.cpp e8735147d6e6bf1e60e12386590feea17b8790faf114669194c1dbe551e184067bf8d0bfeb97ac257ee1fca645eacc51439a7a1d55e4053178e454c52b16e2a3
-+++ b/bitcoin/src/net.cpp 31eb2cbdf4f83f10ae8a7cdd3a69312ba6eafbecfafbeddf7546ce99847bd4f2a674037e2b89a0a7b91c37127d9770501c265a7977edb0ae0b3a5964272692f9
+--- a/bitcoin/src/net.cpp eaf9888f03cfc0267577d217d24b0fba45d5d141e9d8536081059b97195590a0f7aa8d27704cabd46d1af5033733b96d1bb01c47dcfbd636db659db101cc4a45
++++ b/bitcoin/src/net.cpp 712c2726313ee78027c22b67db8f148572c19003463d8438f47d64dc4f354376a7b492d5a7bfbe324fe8b8e6023e4836473b2b76099b72f58262d616665d0f41
 @@ -4,7 +4,6 @@
  // file license.txt or http://www.opensource.org/licenses/mit-license.php.

@@ -575,8 +575,8 @@
      if (!CreateThread(ThreadSocketHandler, NULL))
          printf("Error: CreateThread(ThreadSocketHandler) failed\n");
 diff -uNr a/bitcoin/src/net.h b/bitcoin/src/net.h
---- a/bitcoin/src/net.h d36484a4290d22c5cedda2a3020543819514e1d2404c3064b2a8c64fc210300681a24156cbb5c3cbc2d4da56de970f1769baa7aae48f0dead0c3a2d88f0d5224
-+++ b/bitcoin/src/net.h d18800dfc6abc874cf8f8f3fdf9bbfa000b6611760c571ef64089894b3ac92303c8891aff55d66648d6b8c0033bfab31e40aa6562a0bc75e2a9c0950175a733b
+--- a/bitcoin/src/net.h fd5e99a998637d3a0f154c2124a264a76649d115fe5b38bebeb4bf3abc1943de9031ebd2ca002f81f1d7ed53c8e72f072689e16264be1e6944ae2cf0926ea226
++++ b/bitcoin/src/net.h 2e06a0b090af91ebb861bc575a121021ef352e4e55f16dde823462413029bce59c45f57d34066bc6d8f9c8e537ba39b6615bdad286b744a581bc41e55d407a58
 @@ -28,7 +28,6 @@
  bool ConnectSocket(const CAddress& addrConnect, SOCKET& hSocketRet, int nTimeout=nConnectTimeout);
  bool Lookup(const char *pszName, std::vector& vaddr, int nServices, int nMaxSolutions, int portDefault = 0, bool fAllowPort = false);
@@ -586,8 +586,8 @@
  void AddressCurrentlyConnected(const CAddress& addr);
  CNode* FindNode(unsigned int ip);
 diff -uNr a/bitcoin/src/serialize.h b/bitcoin/src/serialize.h
---- a/bitcoin/src/serialize.h e3bebfb62c99559742ad91132167f2c5b98588465afc8d0f5f1c1e8404a89f87ff9aa11a9a90b741dff7f0668fc5e45452dd51692aa3c235dcb4cfcb2ed545d2
-+++ b/bitcoin/src/serialize.h bc602bfbc512259fbb6c01f2c1633ff142966bf0752612e9a488cee8a95da7921b98abe646e2f7002243f1981939372e0b53948646398e40525ed442c377f449
+--- a/bitcoin/src/serialize.h a8b934c161794e0eabbcba01cfb3bd9c08f9c14ee92c2053c9f4707db51139811a37c6c10ef027db3433bec9e8c7d3637354215df85c50c10cb06aa07635d823
++++ b/bitcoin/src/serialize.h b4e3047ee278c2a47973df102a7a8b59982c23ea5c873a20a3fce83ea5e146fa73f7a3c8c32b43bb9979397a33984b045c561636473d57c97c3383611fc84c2a
 @@ -41,7 +41,7 @@
  class CAutoFile;
  static const unsigned int MAX_SIZE = 0x02000000;
--- patches/asciilifeform_and_now_we_have_eatblock.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_and_now_we_have_eatblock.vpatch	2019-01-09 03:31:28.165942518 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/bitcoinrpc.cpp b/bitcoin/src/bitcoinrpc.cpp
---- a/bitcoin/src/bitcoinrpc.cpp cd1dcc5febddd45408b193d0b875d8951eed8dc29d342ae5e57330b4ea2b55d959fab19e634696234c698feb4fa79a5702278e83b3896389c425ada5e935cc34
-+++ b/bitcoin/src/bitcoinrpc.cpp 86e836b4710a5f675af7f13832f290f9b9c9f24d3efb41733d55e3a4f3f518e8c9fb1d60b43a2fba3c8327bd2b9d10e5ebbb6df8159f06873aec21d2b9123304
+--- a/bitcoin/src/bitcoinrpc.cpp 4731466a24920c9320dc9f20d9537058dd693da77b8646a3cc47a69d710217574452a18a45d81de82231246fd402d7f80fca14aa85ee14156ffa513e064bfc81
++++ b/bitcoin/src/bitcoinrpc.cpp e3d08b1607a11be7b3abd68bdbd93caa378c614c8855ee21bc6e1d8537e443c6f1d496bb9c86f240231065ad226a09f7f8288bb79923075492a2166a87f6ddcb
 @@ -1817,6 +1817,28 @@
  }

@@ -39,8 +39,8 @@
  map mapCallTable(pCallTable, pCallTable + sizeof(pCallTable)/sizeof(pCallTable[0]));

 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp 4263d0ef771cb75e59e909372ba8b850e70a4cbc03635234119a267774d4a9095add15e1094b18646c9a1c280a486c7ec68d8cedc27ce2f6a14777af129e8b7a
-+++ b/bitcoin/src/init.cpp c3ee100d52acbf91d3355c95edc63db6e1d8e4fb1847ebfffbb8c8fe059ea88fa2f6c9e1535526039bba6cc9b4e03b4cc5624fd28004ed7aedcf6a0f42b3e177
+--- a/bitcoin/src/init.cpp 4a6fd3869db3a39835edd505281ad25b8f0feafd30b035369c730e1afadcd17fe3f1f49c8da4b3f59d97daabca37c9b544f57e8e484a43811a8dca044726bf45
++++ b/bitcoin/src/init.cpp c51b1b2a979b2dc9e720238808ee63d62037918cafe23cacf018bb1f53cd5bf0706ceab4e73b41ac0b6aeaeb03c38ef7f12399225db8e01f9595aedeee825421
 @@ -174,6 +174,7 @@
              "  -daemon          \t\t  " + _("Run in the background as a daemon and accept commands\n") +
              "  -testnet         \t\t  " + _("Use the test network\n") +
@@ -58,8 +58,8 @@
      if (fDaemon)
          fServer = true;
 diff -uNr a/bitcoin/src/util.cpp b/bitcoin/src/util.cpp
---- a/bitcoin/src/util.cpp 626e2306c3784911c960136e39bd3eb7c925ca90378faa03fb616a5d7180335889f0807bb39c9ac1907b285c43e730558190e1a1d5717eba4bae6006a9abedfd
-+++ b/bitcoin/src/util.cpp b801e7f75ca5c3b9463abe07201b60d4425cba761d34f70b18adcca7370f341b90b91e8cafd9fb28407439c72b4a624b10862fb22a301c9ea88f79d44267c0f7
+--- a/bitcoin/src/util.cpp 73bce315476b665825604c1cfcb777a779de476b774b92656f4c52a49dd6b0740132f73e2348599fecfd6702a1f1629b1f5237a11f3d98b516721c350c358b16
++++ b/bitcoin/src/util.cpp 813c57d2d79f725ccfe04af8d7cee5dfc73c9aba6b3c958334cfc678aacbeef96e9dcf37f78b596b7eb5d7b70e6f7fc3bcbf9c1ebbd2846e35cdb61786e4f801
 @@ -20,6 +20,7 @@
  bool fDebug = false;
  bool fPrintToConsole = false;
@@ -69,8 +69,8 @@
  bool fRequestShutdown = false;
  bool fShutdown = false;
 diff -uNr a/bitcoin/src/util.h b/bitcoin/src/util.h
---- a/bitcoin/src/util.h e5e5da8c45c0fab1aca83eadb8e98560dc14f65060803b5efd7ea83418be6412ee6a4f59f15fa939e1d639ef2638c9c5d18b5448c246d943827a41e01997ef7b
-+++ b/bitcoin/src/util.h b81e7c3eb43eb18d226c7a0ebb5868cc793c7197318bf7954590136b9713cac00c9f44fc90578c52f86d424b272c2a78c0fc7a55b23b566cc0c859d4c699983c
+--- a/bitcoin/src/util.h 52465ee0a39129774d7100a8731b84ebe0327c822f7b728d9576db9df878366d96f8d87f8a4d154d7f28ba4992fe9fd510641073e4035851cf3d8d82a36d6a3b
++++ b/bitcoin/src/util.h a3bbbd780ce698a1ec2fe7758063c42836b13a2785044250b504c520b64c07cd9f1be985437a61cd3e72c655a063f21bbb336dd51204c88dc126031dc5ac4093
 @@ -110,6 +110,7 @@
  extern bool fDebug;
  extern bool fPrintToConsole;
--- patches/asciilifeform_lets_lose_testnet.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_lets_lose_testnet.vpatch	2019-01-09 03:31:28.655942516 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/base58.h b/bitcoin/src/base58.h
---- a/bitcoin/src/base58.h 14321c5769eb37d637e2c911f668edbe20d8b712494ea585d8201345d690b6e82341e2f0c6c4572013ca24208e077c05f0a82a4096017083b2be9709f37498ab
-+++ b/bitcoin/src/base58.h e4fa4700d17d7da955e3ee980c4a4315e44655dafdec0a4657278e174fa92a187de81c121d30b85a86fd0fe4334867ca73090142c58a3d51083f4ebe7dd4b35c
+--- a/bitcoin/src/base58.h c9414dd278719a028b904826086e3d241ac1402bbcbaf265c6e03b2dfe0451833a8e6cc11cdcc90e67e64c41056c9a2725cec1f0a6e251a0ef76835ba3d173b4
++++ b/bitcoin/src/base58.h 935818d95d5e80e25a0992801b4a01d8f18998a63a6949b46832c2d1ae0a6dbbb4ac7cca5ad4e857d1b7a1af3b537c7fcd6a60727c1b211fcfd0723e00d96314
 @@ -252,14 +252,14 @@
  };

@@ -41,8 +41,8 @@

      CBitcoinAddress()
 diff -uNr a/bitcoin/src/bitcoinrpc.cpp b/bitcoin/src/bitcoinrpc.cpp
---- a/bitcoin/src/bitcoinrpc.cpp 86e836b4710a5f675af7f13832f290f9b9c9f24d3efb41733d55e3a4f3f518e8c9fb1d60b43a2fba3c8327bd2b9d10e5ebbb6df8159f06873aec21d2b9123304
-+++ b/bitcoin/src/bitcoinrpc.cpp ede2e19dd0ce3d03f54689cbeda30b4b36152f7e532b3d34f0f8c55bb292f7d25c149b88162d96a8208997237a32566d0e555aa7105bfed8175983d80ad892e6
+--- a/bitcoin/src/bitcoinrpc.cpp e3d08b1607a11be7b3abd68bdbd93caa378c614c8855ee21bc6e1d8537e443c6f1d496bb9c86f240231065ad226a09f7f8288bb79923075492a2166a87f6ddcb
++++ b/bitcoin/src/bitcoinrpc.cpp ca28a67c52b37d372e22b124eecb4e136925110db1132ae122a1f47b20e60bfc7abdd76abcbb03abf026e6900fd377ced5a983026f1b7b6c9cb26ef3faade0ef
 @@ -303,7 +303,6 @@
      obj.push_back(Pair("genproclimit",  (int)(fLimitProcessors ? nLimitProcessors : -1)));
      obj.push_back(Pair("difficulty",    (double)GetDifficulty()));
@@ -52,8 +52,8 @@
      obj.push_back(Pair("keypoolsize",   pwalletMain->GetKeyPoolSize()));
      obj.push_back(Pair("paytxfee",      ValueFromAmount(nTransactionFee)));
 diff -uNr a/bitcoin/src/checkpoints.cpp b/bitcoin/src/checkpoints.cpp
---- a/bitcoin/src/checkpoints.cpp 0b7ca89fd0a4045ef9553ff439c4fd39dddd92069ca97b29decbc31d2f96a004e0015b453dbf4c4669555ed997ffd02f1066c43f346feb8cd0ade0b80772e863
-+++ b/bitcoin/src/checkpoints.cpp 30d21253854354e384e2e900641c6fc7ca94f591487bd685f6e49310da9f63c1b201910fa8882e34c4eba2032a0b8a246d3c5617f215ddfeff3598fbd773e291
+--- a/bitcoin/src/checkpoints.cpp 423fe692637903b32d0daea46d9752322a7615ce3cd3cc3ce1f6fb2bf80b8f3c5285db91f0be83c5ab97c951be6a8e46bb2b1a8fa7bdce9780fcb6e5c54e2648
++++ b/bitcoin/src/checkpoints.cpp 6228ceb19ae63bb33c33f5c235283835fad0c84ccdfdd19257f17cb4b63210d91dbdecd67869edb47dcc117c08b181ae5fdc247941fba2980299450439e77f42
 @@ -35,8 +35,6 @@

      bool CheckBlock(int nHeight, const uint256& hash)
@@ -80,8 +80,8 @@
          {
              const uint256& hash = i.second;
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp c3ee100d52acbf91d3355c95edc63db6e1d8e4fb1847ebfffbb8c8fe059ea88fa2f6c9e1535526039bba6cc9b4e03b4cc5624fd28004ed7aedcf6a0f42b3e177
-+++ b/bitcoin/src/init.cpp 7a171c2f30805f207ae170404f2f684144c254a13f4f25581146611c38313b2bb1b3cd6347c0ce9b66c313e0004eac66b04e83b431ec78910f5aabb0de341043
+--- a/bitcoin/src/init.cpp c51b1b2a979b2dc9e720238808ee63d62037918cafe23cacf018bb1f53cd5bf0706ceab4e73b41ac0b6aeaeb03c38ef7f12399225db8e01f9595aedeee825421
++++ b/bitcoin/src/init.cpp 598bbbd1eab270cfb3e1114e7fa01caba27a2dfd2b57d04043f18ad34c9a1ecdbb896a06eae07a3def03f58a00cd57727af37a14d00353168407700f1ad3307a
 @@ -160,7 +160,7 @@
              "  -datadir=<dir>   \t\t  " + _("Specify data directory\n") +
              "  -timeout=     \t  "   + _("Specify connection timeout (in milliseconds)\n") +
@@ -108,8 +108,8 @@
      fDaemon = GetBoolArg("-daemon");
      fCanEat = GetBoolArg("-caneat");
 diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp
---- a/bitcoin/src/main.cpp 18a4b9a7abccac46895c8eeb0c14cc502f3743958654444c87d5192a51073980858750daa9c8bd67f4d4d2ec8a7117aea8fc75a4acf73cc1a2cab996aea324b1
-+++ b/bitcoin/src/main.cpp f55521ae4e41e386b5a5b839c778b27317eb67b98d8fc502adbf46f8d2e68236d03d48c9509de6b90ef64ecb976cbab4bc24bfd114962c75db927d369c9122d6
+--- a/bitcoin/src/main.cpp 537a12d62802fa25331ce5e27434a9af18f263bbcc4d9cb4092e8c72c314b7a1ce6acb20cfdc3ce17a7668302f466bc5041d7e5a40f7c4531c411a40c86ff767
++++ b/bitcoin/src/main.cpp 16256a693b6dd1ecf2224d2055ec17ccd1d24a9c0f2cb0668ec7329f5f959a3fc0a3db66e1400b18eee1bcc4b3bc5a53d98612282d0a8827f1cc895307fc8d2e
 @@ -311,8 +311,8 @@
      if (GetSigOpCount() > nSize / 34 || nSize < 100)
          return error("AcceptToMemoryPool() : transaction with out-of-bounds SigOpCount");
@@ -199,8 +199,8 @@
          printf("%s\n", block.GetHash().ToString().c_str());
          printf("%s\n", hashGenesisBlock.ToString().c_str());
 diff -uNr a/bitcoin/src/protocol.h b/bitcoin/src/protocol.h
---- a/bitcoin/src/protocol.h 788e0529775e119dbca114dd28e76b8b83ceef9870e140edd9140e8fbe61bba1213f174708a2cc8e3ceb8c839a40f8fde98a419e07c3a0fe37979e6109e4ec61
-+++ b/bitcoin/src/protocol.h cce0473250e39dd85773246ea0cd40584c77daa7fcba7ff98836d8b9bdbff2f3e229f385c43c73503ca9e244219708b2299600db28d1d7df442c92f22ed74485
+--- a/bitcoin/src/protocol.h ea4fdf494f219f2f3f9215d5dc384554b5dff4f18001cf08eaa39322fad2e5c1d1b74fd2486ea05d40627974df43bafa05d16858c1d98fbd287cb4104006662f
++++ b/bitcoin/src/protocol.h d3eb2f000a4f19d55a5b284f3281ed072b69b0deabf87178db4f2c46e3775ad75a349a98b3b99299b15577c44c50860ee27a8e74a729a854daccd6f858ffab79
 @@ -14,10 +14,9 @@
  #include 
  #include "uint256.h"
@@ -215,8 +215,8 @@

  //
 diff -uNr a/bitcoin/src/util.cpp b/bitcoin/src/util.cpp
---- a/bitcoin/src/util.cpp b801e7f75ca5c3b9463abe07201b60d4425cba761d34f70b18adcca7370f341b90b91e8cafd9fb28407439c72b4a624b10862fb22a301c9ea88f79d44267c0f7
-+++ b/bitcoin/src/util.cpp e2cc1d21c90f28e0475d0801c80c81adddecf1464925c0cde2a5b004e3e26d6917d7224453fb814f62f85d566f377518501fb7e825f173c901da590491fad9c5
+--- a/bitcoin/src/util.cpp 813c57d2d79f725ccfe04af8d7cee5dfc73c9aba6b3c958334cfc678aacbeef96e9dcf37f78b596b7eb5d7b70e6f7fc3bcbf9c1ebbd2846e35cdb61786e4f801
++++ b/bitcoin/src/util.cpp 29436752078f28a0d8c38c0a8455ae3d4b17eeb8f8bf4cabad0a3dbc2e28ddebcedf5a160ea0efcabd74be32016efbf890bba0df8e09efd2718735379dbbac7b
 @@ -28,7 +28,6 @@
  bool fServer = false;
  bool fCommandLine = false;
@@ -241,8 +241,8 @@
      if (!pfMkdir[nVariation])
      {
 diff -uNr a/bitcoin/src/util.h b/bitcoin/src/util.h
---- a/bitcoin/src/util.h b81e7c3eb43eb18d226c7a0ebb5868cc793c7197318bf7954590136b9713cac00c9f44fc90578c52f86d424b272c2a78c0fc7a55b23b566cc0c859d4c699983c
-+++ b/bitcoin/src/util.h d88425cb5b70d7df2a60d174f99347b3ac00f0a7f17227bd9944f22ffaa3772389989c00c14135fbbb121fe3cb5b68c51eb1120ce214d3732b354c580d1f2fec
+--- a/bitcoin/src/util.h a3bbbd780ce698a1ec2fe7758063c42836b13a2785044250b504c520b64c07cd9f1be985437a61cd3e72c655a063f21bbb336dd51204c88dc126031dc5ac4093
++++ b/bitcoin/src/util.h 4d2a5c6a0c1f82b5f172a1161e686e54ce17cc65614ef9457b1745f5fb5dddb4056d84ac207d6be1853a576060ea9631fb2cbd0778e0bf022a09b19b24078188
 @@ -118,7 +118,6 @@
  extern bool fServer;
  extern bool fCommandLine;
--- patches/asciilifeform_add_verifyall_option.vpatch	2015-08-22 23:40:57.000000000 +0000
+++ keccak_vtree/asciilifeform_add_verifyall_option.vpatch	2019-01-09 03:31:29.155942515 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp 7a171c2f30805f207ae170404f2f684144c254a13f4f25581146611c38313b2bb1b3cd6347c0ce9b66c313e0004eac66b04e83b431ec78910f5aabb0de341043
-+++ b/bitcoin/src/init.cpp ff7009f672bf400a42d1d7afb6e58aaf1c29d9c219fad51c5f17000243a485e92bbb250d3f4bbec3f0717d00fad620c294d537832671f20c0979fb3f1383779b
+--- a/bitcoin/src/init.cpp 598bbbd1eab270cfb3e1114e7fa01caba27a2dfd2b57d04043f18ad34c9a1ecdbb896a06eae07a3def03f58a00cd57727af37a14d00353168407700f1ad3307a
++++ b/bitcoin/src/init.cpp 77919b26229f6b0de71504f170a2df528b73604633f286f80628a85c0fe90cf71c18937854436cd243654441d322a8ff29d9b28f2c9ea2628f5f6758d10be8fd
 @@ -174,6 +174,7 @@
              "  -daemon          \t\t  " + _("Run in the background as a daemon and accept commands\n") +
              "  -debug           \t\t  " + _("Output extra debugging information\n") +
@@ -18,8 +18,8 @@
      if (fDaemon)
          fServer = true;
 diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp
---- a/bitcoin/src/main.cpp f55521ae4e41e386b5a5b839c778b27317eb67b98d8fc502adbf46f8d2e68236d03d48c9509de6b90ef64ecb976cbab4bc24bfd114962c75db927d369c9122d6
-+++ b/bitcoin/src/main.cpp 92038390413f77b55e19439738e87c21bd5b2313dc6edad78bcc8bf722dde82623a31a56a87b0182e75e6824fc709dc216fb9cb159b49a16e212e3a5ded93f58
+--- a/bitcoin/src/main.cpp 16256a693b6dd1ecf2224d2055ec17ccd1d24a9c0f2cb0668ec7329f5f959a3fc0a3db66e1400b18eee1bcc4b3bc5a53d98612282d0a8827f1cc895307fc8d2e
++++ b/bitcoin/src/main.cpp 30ee1c16668cb21cdf3b476a5d82c665ef9a0bbede9eba887692e65d48bae74d639085b52b98313283749ae11398a74270e929fe7aae1794d0d4c8b141292ebe
 @@ -832,7 +832,7 @@
              // Skip ECDSA signature verification when connecting blocks (fBlock=true)
              // before the last blockchain checkpoint. This is safe because block merkle hashes are
@@ -30,8 +30,8 @@
                  if (!VerifySignature(txPrev, *this, i))
                      return DoS(100,error("ConnectInputs() : %s VerifySignature failed", GetHash().ToString().substr(0,10).c_str()));
 diff -uNr a/bitcoin/src/util.cpp b/bitcoin/src/util.cpp
---- a/bitcoin/src/util.cpp e2cc1d21c90f28e0475d0801c80c81adddecf1464925c0cde2a5b004e3e26d6917d7224453fb814f62f85d566f377518501fb7e825f173c901da590491fad9c5
-+++ b/bitcoin/src/util.cpp 3dcfe5f29728dcd34a6dfe23e9cd17e5f4a332a8d2e7444355106c8c63436cf54892424df2018756c2e109463fd87728fc668a5a03914a4aa3f30bb90403b433
+--- a/bitcoin/src/util.cpp 29436752078f28a0d8c38c0a8455ae3d4b17eeb8f8bf4cabad0a3dbc2e28ddebcedf5a160ea0efcabd74be32016efbf890bba0df8e09efd2718735379dbbac7b
++++ b/bitcoin/src/util.cpp 9ed13d4723a1daad64658d59ae99a776253505faf10619b4a011173b66b4a64b852007296f81f40537fde60c44af475cb4c168cc725dbf59273d8cea34371909
 @@ -21,6 +21,7 @@
  bool fPrintToConsole = false;
  bool fPrintToDebugger = false;
@@ -41,8 +41,8 @@
  bool fRequestShutdown = false;
  bool fShutdown = false;
 diff -uNr a/bitcoin/src/util.h b/bitcoin/src/util.h
---- a/bitcoin/src/util.h d88425cb5b70d7df2a60d174f99347b3ac00f0a7f17227bd9944f22ffaa3772389989c00c14135fbbb121fe3cb5b68c51eb1120ce214d3732b354c580d1f2fec
-+++ b/bitcoin/src/util.h 44bd62e864ed9400105aeea2e2ef6499f971577fd28b9c8dc52ef72dcdb4d4928168037cd7d7fca718e5d5a2d4d7c19c65f5b45c87d814d6e24c0d014b307477
+--- a/bitcoin/src/util.h 4d2a5c6a0c1f82b5f172a1161e686e54ce17cc65614ef9457b1745f5fb5dddb4056d84ac207d6be1853a576060ea9631fb2cbd0778e0bf022a09b19b24078188
++++ b/bitcoin/src/util.h 235c9e2b087f65731a530fc76df548a427a1833ea3a4ef8791a89b938c74553f7d0117861265c687952ce91f7e0301a1f35cb3436c4cc87d230a443fcb197ef6
 @@ -111,6 +111,7 @@
  extern bool fPrintToConsole;
  extern bool fPrintToDebugger;
--- patches/programmable-versionstring.vpatch	2016-02-04 01:47:39.000000000 +0000
+++ keccak_vtree/programmable-versionstring.vpatch	2019-01-09 03:31:29.645942514 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp ff7009f672bf400a42d1d7afb6e58aaf1c29d9c219fad51c5f17000243a485e92bbb250d3f4bbec3f0717d00fad620c294d537832671f20c0979fb3f1383779b
-+++ b/bitcoin/src/init.cpp 29fbb8792c3462ced61b4a0284360122f72c4fef7fb5fb84e5399967ab6474cd83ccf3a60eb3c425e183b1b95fb9ca71fc23bb791316d762034559df293f8bb0
+--- a/bitcoin/src/init.cpp 77919b26229f6b0de71504f170a2df528b73604633f286f80628a85c0fe90cf71c18937854436cd243654441d322a8ff29d9b28f2c9ea2628f5f6758d10be8fd
++++ b/bitcoin/src/init.cpp 904ad14979be418243c4ae79867fe1068a05ed2ad5e237a14ed457408abf756d0b6f7ac73f63c4a31a815a717bc2cde3b614b4a716603f85b50c8d98ea43d500
 @@ -175,6 +175,8 @@
              "  -debug           \t\t  " + _("Output extra debugging information\n") +
  	    "  -caneat          \t\t  " + _("Permit the use of 'eatblock'\n") +
@@ -29,7 +29,7 @@
      else
 diff -uNr a/bitcoin/src/knobs.h b/bitcoin/src/knobs.h
 --- a/bitcoin/src/knobs.h false
-+++ b/bitcoin/src/knobs.h 9b88b8f60d9a0ae98f9dd148dba06e132b6b1fc199719eacb3270fe6ce2af889422eee62c2cb08c3b93f22069aea880c657e771c4e4b4157a69c321550c8fc73
++++ b/bitcoin/src/knobs.h 4e01d59f75dfdac897735bf28c2414ed8463e12683e1d845272772feac7706615e36c26e6e291250d245f269c2bf8b41a32cc6abb81bbc58b4831b01be0eefd8
 @@ -0,0 +1,7 @@
 +#ifndef KNOBS_H
 +#define KNOBS_H
@@ -39,8 +39,8 @@
 +
 +#endif
 diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp
---- a/bitcoin/src/main.cpp 92038390413f77b55e19439738e87c21bd5b2313dc6edad78bcc8bf722dde82623a31a56a87b0182e75e6824fc709dc216fb9cb159b49a16e212e3a5ded93f58
-+++ b/bitcoin/src/main.cpp aeeffe8c603d726aae829c01f057ca0efdae8a84820a57e41d8282de988a74494f139842228bcc158fc8ec484f076c7b2187c4d6d14e7c998fa698570948992e
+--- a/bitcoin/src/main.cpp 30ee1c16668cb21cdf3b476a5d82c665ef9a0bbede9eba887692e65d48bae74d639085b52b98313283749ae11398a74270e929fe7aae1794d0d4c8b141292ebe
++++ b/bitcoin/src/main.cpp ddf551d237480f8118d0e4ed033194ada0a229e8d8580354e3ea20467f3e381af1f1d0542f861e8bec628f55326d70172b6faa0e8a3fa007ba79bdadc13c1c29
 @@ -17,6 +17,8 @@
  // Global state
  //
@@ -51,8 +51,8 @@
  set setpwalletRegistered;

 diff -uNr a/bitcoin/src/makefile.unix b/bitcoin/src/makefile.unix
---- a/bitcoin/src/makefile.unix 929157d5e139336f38e98555f14fc125c4217c23eba941086b648147e39fcec9ecab632567fc3295e58826fedf6239d5cc0cd028f4e78fd56ae868b795d2de02
-+++ b/bitcoin/src/makefile.unix 09ac104678a444430d3ef0bdf6dbd07d875666493b2d938ac6aa7fb67abe840f2254f517055f4b5f90d0e86c83ee3dade77a58f1c37b7ab7b4c13598a5559adc
+--- a/bitcoin/src/makefile.unix 6ce9f5aa9ba9134f1b98e4aa862c6540bf929c950bf0ca84f35dc4a3fa489121388dd5d43aca001d0e64dc16af5d818485e2ff3bbe645a24abb1fc69eb943a70
++++ b/bitcoin/src/makefile.unix 0233f3b99c1f1c104d41a92f6873409f8083619e281194f0fbfe8333a786a544b468ab385e34d91891cffcea397059b210f3faab17fc4e5a444c553afd3826b1
 @@ -81,6 +81,7 @@
      init.h \
      key.h \
@@ -62,8 +62,8 @@
      net.h \
      noui.h \
 diff -uNr a/bitcoin/src/net.h b/bitcoin/src/net.h
---- a/bitcoin/src/net.h d18800dfc6abc874cf8f8f3fdf9bbfa000b6611760c571ef64089894b3ac92303c8891aff55d66648d6b8c0033bfab31e40aa6562a0bc75e2a9c0950175a733b
-+++ b/bitcoin/src/net.h bb842420bcc67752edf8e658524b135f499c5f8676557a6c12f47f204303e34bd73beabdf6e9146ba452947c4e5cd298529969fab90f16942f6bf0c1229f7043
+--- a/bitcoin/src/net.h 2e06a0b090af91ebb861bc575a121021ef352e4e55f16dde823462413029bce59c45f57d34066bc6d8f9c8e537ba39b6615bdad286b744a581bc41e55d407a58
++++ b/bitcoin/src/net.h 4a3e4156023b21f80de1c46c1466ccbc28008d83f204d9eea1e7ac7cd9a2356a1df5eb1d064a4bfede9d661921ded7afad5bef2e2a3eced51bdff0ef875abf29
 @@ -360,7 +360,7 @@
          CAddress addrMe = (fUseProxy || !addrLocalHost.IsRoutable() ? CAddress("0.0.0.0") : addrLocalHost);
          RAND_bytes((unsigned char*)&nLocalHostNonce, sizeof(nLocalHostNonce));
@@ -74,8 +74,8 @@

 diff -uNr a/bitcoin/src/serialize.h b/bitcoin/src/serialize.h
---- a/bitcoin/src/serialize.h bc602bfbc512259fbb6c01f2c1633ff142966bf0752612e9a488cee8a95da7921b98abe646e2f7002243f1981939372e0b53948646398e40525ed442c377f449
-+++ b/bitcoin/src/serialize.h ef93153b01fdf024a0ab2ce0f992ea9af50d3423baa147c395bba4cc90575bda0d832c0313428bbbc837c99d549c4ba787b94fad5b871870397a410ba59ea0e9
+--- a/bitcoin/src/serialize.h b4e3047ee278c2a47973df102a7a8b59982c23ea5c873a20a3fce83ea5e146fa73f7a3c8c32b43bb9979397a33984b045c561636473d57c97c3383611fc84c2a
++++ b/bitcoin/src/serialize.h 72b2dc097c54ad0e89545676d555c92da97ee6d86b6a7fd9c2b063ad629b027704f791e0b4168a0d33766f8203b7297f95d274627c89be974c749143949c86ef
 @@ -24,6 +24,9 @@

  #include 
@@ -98,8 +98,8 @@
  // Used to bypass the rule against non-const reference to temporary
  // where it makes sense with wrappers such as CFlatData or CTxDB
 diff -uNr a/bitcoin/src/util.cpp b/bitcoin/src/util.cpp
---- a/bitcoin/src/util.cpp 3dcfe5f29728dcd34a6dfe23e9cd17e5f4a332a8d2e7444355106c8c63436cf54892424df2018756c2e109463fd87728fc668a5a03914a4aa3f30bb90403b433
-+++ b/bitcoin/src/util.cpp 72641fcb9bce1f705246cf52f08b3ece4b8df65e07ca10a32db860d4a120532a911fc62549960ccfdfc020fd1a5ef8baf0fcf181b861e0903c65b044899fc008
+--- a/bitcoin/src/util.cpp 9ed13d4723a1daad64658d59ae99a776253505faf10619b4a011173b66b4a64b852007296f81f40537fde60c44af475cb4c168cc725dbf59273d8cea34371909
++++ b/bitcoin/src/util.cpp e74abd10e4e001ca9c202672e2d2678c131f0ad06200e0d8c477728f92b1710644cc15abb7e5773b277f38a00e004a4ec4c7cee799a7e9c82c39297b94d540da
 @@ -2,6 +2,7 @@
  // Copyright (c) 2009-2012 The Bitcoin developers
  // Distributed under the MIT/X11 software license, see the accompanying
@@ -142,8 +142,8 @@

 diff -uNr a/bitcoin/src/util.h b/bitcoin/src/util.h
---- a/bitcoin/src/util.h 44bd62e864ed9400105aeea2e2ef6499f971577fd28b9c8dc52ef72dcdb4d4928168037cd7d7fca718e5d5a2d4d7c19c65f5b45c87d814d6e24c0d014b307477
-+++ b/bitcoin/src/util.h d7e407108638c11f75b5bed04dc455ac78a96debc0776cd0e71871001c5886fd1472ae060e7a2334fcf3e323b7ad0a1b4fb68757392cc45a1b09721eb67415d1
+--- a/bitcoin/src/util.h 235c9e2b087f65731a530fc76df548a427a1833ea3a4ef8791a89b938c74553f7d0117861265c687952ce91f7e0301a1f35cb3436c4cc87d230a443fcb197ef6
++++ b/bitcoin/src/util.h 99aa3df7dc2e63380ba9916dae9dfe69d6de7bcbf2bd39809cc528dea2699e3b664294175697d4b6ade7fe39dc42420573f59503653d3c22352270c27cd3c1cc
 @@ -121,6 +121,7 @@
  extern std::string strMiscWarning;
  extern bool fNoListen;
--- patches/malleus_mikehearnificarum.vpatch	2016-02-04 01:47:39.000000000 +0000
+++ keccak_vtree/malleus_mikehearnificarum.vpatch	2019-01-09 03:31:29.925942513 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp
---- a/bitcoin/src/main.cpp aeeffe8c603d726aae829c01f057ca0efdae8a84820a57e41d8282de988a74494f139842228bcc158fc8ec484f076c7b2187c4d6d14e7c998fa698570948992e
-+++ b/bitcoin/src/main.cpp 0ccb0c29c0a3217d57f9bc72d87b497e64116a9f79e69277408750ee3dc95738ce52a70afece7a1054314100d84f93f6525ab514b8abd8ce78ab8ebd50e599a2
+--- a/bitcoin/src/main.cpp ddf551d237480f8118d0e4ed033194ada0a229e8d8580354e3ea20467f3e381af1f1d0542f861e8bec628f55326d70172b6faa0e8a3fa007ba79bdadc13c1c29
++++ b/bitcoin/src/main.cpp 4426e28aae0cb5aa58ee73273f937e988e0911893e9eee9e718556d8ebb50fd229169c11f72421498a982f50a01f4c74154f91a7b14ebd4308162c9bac03750e
 @@ -1901,6 +1901,11 @@
                          pfrom->PushMessage(inv.GetCommand(), (*mi).second);
                  }
--- patches/mod6_der_high_low_s.vpatch	2016-01-25 04:48:05.000000000 +0000
+++ keccak_vtree/mod6_der_high_low_s.vpatch	2019-01-09 03:31:30.625942511 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp 29fbb8792c3462ced61b4a0284360122f72c4fef7fb5fb84e5399967ab6474cd83ccf3a60eb3c425e183b1b95fb9ca71fc23bb791316d762034559df293f8bb0
-+++ b/bitcoin/src/init.cpp 971b82be435c99a1af9d5cacc9c05af7616f4af7ee1466efacd46d41eddc1c4d7da2fdb4a302aab7c99933d33ad2d613f3bfbe76fec67a71c6d4d1fe14ac142d
+--- a/bitcoin/src/init.cpp 904ad14979be418243c4ae79867fe1068a05ed2ad5e237a14ed457408abf756d0b6f7ac73f63c4a31a815a717bc2cde3b614b4a716603f85b50c8d98ea43d500
++++ b/bitcoin/src/init.cpp 7804879949f916b7e9bb1e1a3fe4e2454edf7b4c91a0f188624474ea0f3f83a8be7da8c23bf5d2c32ccb35bb359193d34d42338da5317db128d7aa98ad675f1d
 @@ -177,6 +177,8 @@
  	    "  -verifyall       \t\t  " + _("Forbid the skipping of ECDSA signature verification between checkpoints.\n") +
  	    "  -setverstring    \t\t  " + _("Set a custom version string.\n") +
@@ -26,8 +26,8 @@
      if (mapArgs.count("-setverstring"))
      {
 diff -uNr a/bitcoin/src/key.h b/bitcoin/src/key.h
---- a/bitcoin/src/key.h 6b2389129dec411d013d754eaebc169a23f60b2169dc41cced21248a603ced46dfdc64e016c082a154af87784049333be75c91fb08265306a3bdc2bc0af2e6c5
-+++ b/bitcoin/src/key.h afe71ade56fae65b970ff3dfb3f14edacee0af497ae57e2d2502c9a4b4f49f3336f9d3794b72a87d185b92fc01f1a5077e1ccd63a61ac4fa9c4464c6224fd1e4
+--- a/bitcoin/src/key.h 07093a81b0656609e0fa8066a5743d874c5dbdf148309dd6e9ed2050ac0cac2b07d5aa64983e6bc71bd2be2fd1d93dd581e66c32a0da81904aa730e32d43cdd1
++++ b/bitcoin/src/key.h 36ddd67ba47c3860ba5747a2388b11e4cb3ed91ae1bc54a051f773e7958d3ec08cbd029607d1878661d644d34910098027600cd7e1bd08aca059452cf03fd0e8
 @@ -291,12 +291,46 @@
      bool Sign(uint256 hash, std::vector& vchSig)
      {
@@ -81,8 +81,8 @@
      }

 diff -uNr a/bitcoin/src/util.cpp b/bitcoin/src/util.cpp
---- a/bitcoin/src/util.cpp 72641fcb9bce1f705246cf52f08b3ece4b8df65e07ca10a32db860d4a120532a911fc62549960ccfdfc020fd1a5ef8baf0fcf181b861e0903c65b044899fc008
-+++ b/bitcoin/src/util.cpp 66a8ac388136aceac7d24bd73c18b06445c2580849dd6c548d6684b5f1e9c19eafd3f71427476fd982383dcfd0425f34ce524eac1d8320fd990a28a1e4933288
+--- a/bitcoin/src/util.cpp e74abd10e4e001ca9c202672e2d2678c131f0ad06200e0d8c477728f92b1710644cc15abb7e5773b277f38a00e004a4ec4c7cee799a7e9c82c39297b94d540da
++++ b/bitcoin/src/util.cpp a7a5d3d37b0c59b10bb5d2f6a1e32fcfc3d6c7dc40a819c4dfac72e5b03d345509bea696ec0099cb927b10253a678c3d650635b8116ed8a0f0432832b13eaf5e
 @@ -32,6 +32,8 @@
  string strMiscWarning;
  bool fNoListen = false;
@@ -93,8 +93,8 @@
  std::string CLIENT_NAME(DEFAULT_CLIENT_NAME);

 diff -uNr a/bitcoin/src/util.h b/bitcoin/src/util.h
---- a/bitcoin/src/util.h d7e407108638c11f75b5bed04dc455ac78a96debc0776cd0e71871001c5886fd1472ae060e7a2334fcf3e323b7ad0a1b4fb68757392cc45a1b09721eb67415d1
-+++ b/bitcoin/src/util.h f0c21c349b56516feac63c9cf8018c82b26583ad290a4b3610965e5a5a703d116671b1ef270395b8289c170b603630b5b7e493725e420e187ba1fbd326061ff5
+--- a/bitcoin/src/util.h 99aa3df7dc2e63380ba9916dae9dfe69d6de7bcbf2bd39809cc528dea2699e3b664294175697d4b6ade7fe39dc42420573f59503653d3c22352270c27cd3c1cc
++++ b/bitcoin/src/util.h bb0bd8f585bf9d34edd89ea93710120105213eb931a48dfb0452055978b31444d988a14c6a9f82a4f9192c230579ee4ba607b867cf2a1a41d57fcad1b3a286ac
 @@ -122,6 +122,8 @@
  extern bool fNoListen;
  extern bool fLogTimestamps;
--- patches/makefiles.vpatch	2016-09-24 01:39:14.000000000 +0000
+++ keccak_vtree/makefiles.vpatch	2019-01-09 03:31:31.165942510 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/Makefile b/bitcoin/Makefile
 --- a/bitcoin/Makefile false
-+++ b/bitcoin/Makefile 91f369804a6e9628fcd1e9de893d1906dd50572e2d9498f5457ea93612f1e80eb5fd11206ebdfb30d3569b21a8d6d35c9f90389a5d64c980778be5eddbfbaf1d
++++ b/bitcoin/Makefile 64d3d4da6e408c2b704da94bef00469ba8e53fee8fd00a6a67ece41eee26f1d929139e839309280fab8b31f9261e617a3166af83005ab749128b8c86f8963650
 @@ -0,0 +1,23 @@
 +# Required Public Keys:
 +# 0x027A8D7C0FB8A16643720F40721705A8B71EADAF
@@ -27,7 +27,7 @@
 +	$(MAKE) -C bin
 diff -uNr a/bitcoin/bin/Makefile b/bitcoin/bin/Makefile
 --- a/bitcoin/bin/Makefile false
-+++ b/bitcoin/bin/Makefile 6c30af0c9b88c733dbea8314b59b8798f2a81f6fdbeec8f8171fc478fce72c9773f85bfa2d937f815459c4014c5f3f84ef6d05882aef9ab7134b9a1024f6b858
++++ b/bitcoin/bin/Makefile bea5af6d38d21b60445552a78872ec88ca3f60bee5f867ca57804168542999d73c90a3b43cee5ba5357bcd0bb4e8910c16b02dbc6e642477e1d337a805502f1e
 @@ -0,0 +1,13 @@
 +include ../verify.mk
 +
@@ -44,12 +44,12 @@
 +	#$(CHECKSUM_OR_DIE)
 diff -uNr a/bitcoin/bin/Manifest.sha512 b/bitcoin/bin/Manifest.sha512
 --- a/bitcoin/bin/Manifest.sha512 false
-+++ b/bitcoin/bin/Manifest.sha512 35e201de69036b2be8fc35b4e7fae5a9a56d5df7e349e0cbc74341625a0f1f4717c6e64b962bc1849111664f000304442d01364d3906fa9bc8a6257f1e1559cd
++++ b/bitcoin/bin/Manifest.sha512 560f87b4c0793afcdbc67e0929bb8233f7c662acb7ec76d7e71941da558a2727150be3de0533c3b471c7a6b51e7b34d30115dbf5dbb10d8283b8e3208ef1f87c
 @@ -0,0 +1 @@
 +# bitcoind checksum goes here.
 diff -uNr a/bitcoin/build/Makefile b/bitcoin/build/Makefile
 --- a/bitcoin/build/Makefile false
-+++ b/bitcoin/build/Makefile ca8426ddf5b80c98f4bdb452b5600bd4b2f237f7c82410ab9dad676e404a780f3ef7886485ab5e8c82b3fe54ef65fa77e20b74ebc73658ab6d74d2ae3645ec0e
++++ b/bitcoin/build/Makefile c958ddef742cd53043ad744166918e1e0a16da6e660341adfddb34280e650031dd0ada7ebf0679764a2dbd41a70d78204af34f381f8ed4e48be0098227a19358
 @@ -0,0 +1,40 @@
 +BUILDER=rotor
 +
@@ -93,7 +93,7 @@
 +	cp ../src/bitcoind .
 diff -uNr a/bitcoin/build/Makefile.rotor b/bitcoin/build/Makefile.rotor
 --- a/bitcoin/build/Makefile.rotor false
-+++ b/bitcoin/build/Makefile.rotor fca1751638c1698dd066f99a95c2fa06a6eb5e5031038f94bb788e5901b9937eb6976cca739f0c0ba4517a719dfb3dfdf656b852e6ce80411461cccd7847f7dd
++++ b/bitcoin/build/Makefile.rotor ba5a6c72cf444b5872fb006ca025ea4df3c7293a8986019b64fb57ef9d28e6a3080a81a169197b956825c1fee92fc025c0ec9a8e36f50d9fb7c2f3a9bd8ac5de
 @@ -0,0 +1,56 @@
 +######################################
 +#Turds!
@@ -153,7 +153,7 @@
 +	strip ../src/bitcoind
 diff -uNr a/bitcoin/deps/Makefile b/bitcoin/deps/Makefile
 --- a/bitcoin/deps/Makefile false
-+++ b/bitcoin/deps/Makefile b6fd1d80c10fa93c994b8af79a515a3b0cd6063259e183dc7f8a66036da04188294c0d17677e65113d173581490f1f6db84818e2221557102f9947e434a30ceb
++++ b/bitcoin/deps/Makefile 84410767530f3081269fbc0f494b5a00f7d7f665ed442a7330b87cee22fb83d5bd4acdb47f75e0cce984a37372cb81ef16931280aa3b8abcf879caa632258548
 @@ -0,0 +1,189 @@
 +include ../verify.mk
 +
@@ -346,7 +346,7 @@
 +	$(CHECKSUM_OR_DIE)
 diff -uNr a/bitcoin/deps/Manifest.sha512 b/bitcoin/deps/Manifest.sha512
 --- a/bitcoin/deps/Manifest.sha512 false
-+++ b/bitcoin/deps/Manifest.sha512 98231f073340412531b2f29e50c5d6622d2ef70877617ce52eb7353fe5b6003b4de57ab44001bdf31bc729e3ba034236e3b2479e473f183f4a0a9d18309b80e5
++++ b/bitcoin/deps/Manifest.sha512 15a253bba8d7d35ac2f19017ae7350fd8906ad4ec93783d83aca5d07f9d4e0bab5bbaeef0e091276aac7f1cd7c00f64b3edf23c8a74e0ae66273ac99edf1bda2
 @@ -0,0 +1,20 @@
 +5ec95ad47d49b12c4558a8db0ca2109d3ee1955e3776057f3330c4506f8f4d1cf5e505fbf8a16b98403a0fcdeaaf986fe0a22be6456247dbdace63ce1f776b12  binutils-2.24.tar.bz2
 +fc512d3bfa6a39a60fee548775c97239271cf757587b8df7ed739c800844a819a359dca172be0e69ad7752753753139bf11f0813d650066d58386662fe32842d  boost_1_52_0.tar.bz2
@@ -369,8 +369,8 @@
 +e232c07238feb16ce055211fba68ed283c47753a8716681ac47c869c21936f48768fafaac678f64ee17cf2b62b669a0d2c481008b5ccaf76007f66501a02990d  rotor.tar.gz
 +2c1152a88dd6d8e4b0f736dbf0ce2691c66fc592c1ef6c332a976ae7e9ca86850091032d23042558e3eabc0dc2b591f482566ef433606fb91a06dee9a0485063  rotor-db-configure-fix.patch
 diff -uNr a/bitcoin/src/db.cpp b/bitcoin/src/db.cpp
---- a/bitcoin/src/db.cpp 565faf3ef371f5e2178ae30c45b08b93415eeb92263486e68f2ac2e8f4c7900056e628804bf5c0707a90be946e0aeaebfcd0a391aab40de2e5d56e6bcbdccb1e
-+++ b/bitcoin/src/db.cpp f8fcccd44b3635182b65b09b51229bf30bd42e1dcfd91d66c57d82425b055ddfbb8f88249479b6c3ad45d21ae0c0c6cdd920f8ae44693c4256598ea2bb807007
+--- a/bitcoin/src/db.cpp 0db7f37e087f7721132e816947d6098ced86022aa24a56c5e7f8fc4e6a8241eb2c51088dca41e4255f6ce75ed9c01f66b5191db39302125fffd489e7a324a482
++++ b/bitcoin/src/db.cpp 491ea0c22fd62170b569629e053fb9d29e9c7ee4044b83841d8fced721130bfeb5820a8759c485ce365ed2673121cc07fc21366d256709c6497e3ddc6b3c50a1
 @@ -9,6 +9,8 @@
  #include 
  #include 
@@ -381,8 +381,8 @@
  using namespace boost;

 diff -uNr a/bitcoin/src/init.cpp b/bitcoin/src/init.cpp
---- a/bitcoin/src/init.cpp 971b82be435c99a1af9d5cacc9c05af7616f4af7ee1466efacd46d41eddc1c4d7da2fdb4a302aab7c99933d33ad2d613f3bfbe76fec67a71c6d4d1fe14ac142d
-+++ b/bitcoin/src/init.cpp 6c99f03bdbac5e74e0ecc62ef36deeb11e867906c53c52ca1ce9a30e41fe61f322aa231327cbe51a08a1d2c3544334ff266c5f2082576c921c22c5a579e5dbcf
+--- a/bitcoin/src/init.cpp 7804879949f916b7e9bb1e1a3fe4e2454edf7b4c91a0f188624474ea0f3f83a8be7da8c23bf5d2c32ccb35bb359193d34d42338da5317db128d7aa98ad675f1d
++++ b/bitcoin/src/init.cpp 8fcfa796bc50bde6b3960a3b6730c6f0c2ebc33ca05007fd30442d14748e6e813225842416646b0b5ddb32f2c1b678de0fc1444b1358704a12a47836f9948a3c
 @@ -12,6 +12,7 @@
  #include 
  #include 
@@ -392,8 +392,8 @@
  using namespace std;
  using namespace boost;
 diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp
---- a/bitcoin/src/main.cpp 0ccb0c29c0a3217d57f9bc72d87b497e64116a9f79e69277408750ee3dc95738ce52a70afece7a1054314100d84f93f6525ab514b8abd8ce78ab8ebd50e599a2
-+++ b/bitcoin/src/main.cpp d49e7aaab38507fd69e6629b8baae80bc87d2071c842c8ede6f2d8e54f87e7d439c79b9a38ad94591e6fd5cf96196f2221426a4c8a2ffb282030fbcf810c18fb
+--- a/bitcoin/src/main.cpp 4426e28aae0cb5aa58ee73273f937e988e0911893e9eee9e718556d8ebb50fd229169c11f72421498a982f50a01f4c74154f91a7b14ebd4308162c9bac03750e
++++ b/bitcoin/src/main.cpp 9a13d2ae227fec24eef439a18e75becef4efb5b5e28bd544180908f5a2dda7b6dbd0c6289ebfaf918511da3e27a4ea65f92a8a575985261f8d9a7a49c5fa5322
 @@ -10,6 +10,8 @@
  #include 
  #include 
@@ -405,7 +405,7 @@

 diff -uNr a/bitcoin/verify.mk b/bitcoin/verify.mk
 --- a/bitcoin/verify.mk false
-+++ b/bitcoin/verify.mk 60e3f0ac2a3583d0e138f043cb24640d6332609d436c6134b240f9c1046453125616c1b4bede8dbcb38ae317a708694c36037797404087ce7440c3f05c86fcb6
++++ b/bitcoin/verify.mk 2c1baf0f19bc3981761a4453b19c61c71a863d872835536b09dc1d5ce199b330d47d74fe0f8a3c910147be8414f0a2353bd553b3977b0a420fe051df592de61c
 @@ -0,0 +1,5 @@
 +SHA512=sha512sum
 +CHECKSUM_OR_DIE=grep "  $@$$" Manifest.sha512 | $(SHA512) -c || (mv $@ $@.badsum && false)
--- patches/asciilifeform_aggressive_pushgetblocks.vpatch	2018-07-20 17:52:14.000000000 +0000
+++ keccak_vtree/asciilifeform_aggressive_pushgetblocks.vpatch	2019-01-09 03:31:31.485942509 +0000
@@ -1,6 +1,6 @@
 diff -uNr a/bitcoin/src/main.cpp b/bitcoin/src/main.cpp
---- a/bitcoin/src/main.cpp d49e7aaab38507fd69e6629b8baae80bc87d2071c842c8ede6f2d8e54f87e7d439c79b9a38ad94591e6fd5cf96196f2221426a4c8a2ffb282030fbcf810c18fb
-+++ b/bitcoin/src/main.cpp e76829b2488665287ed6037eaa5dd4651a67ddc9a44111089f55249248b6549387b9146bb1e51cc5a659558805bcf8987c10ecad8478f83fc5eb165044ac5d3c
+--- a/bitcoin/src/main.cpp 9a13d2ae227fec24eef439a18e75becef4efb5b5e28bd544180908f5a2dda7b6dbd0c6289ebfaf918511da3e27a4ea65f92a8a575985261f8d9a7a49c5fa5322
++++ b/bitcoin/src/main.cpp d54d1d9eb12269b705a06b62900f67cbc0370830b0365bfb7c0504517801d608795fcc660c4fb12dba90b89e4b53912bba43b704b19fa9538030e94ca9099b4e
 @@ -1725,13 +1725,9 @@
              }
          }
@@ -18,8 +18,8 @@
          }

 diff -uNr a/bitcoin/src/net.cpp b/bitcoin/src/net.cpp
---- a/bitcoin/src/net.cpp 31eb2cbdf4f83f10ae8a7cdd3a69312ba6eafbecfafbeddf7546ce99847bd4f2a674037e2b89a0a7b91c37127d9770501c265a7977edb0ae0b3a5964272692f9
-+++ b/bitcoin/src/net.cpp 0124234fe388c52595cd67f193728e2fe9a8e5025418df317fe4e4e447572c54fd205578695d61fd7f8d42efe141ee7da9c6435edf2063ffc5ed81fa6d3c64ab
+--- a/bitcoin/src/net.cpp 712c2726313ee78027c22b67db8f148572c19003463d8438f47d64dc4f354376a7b492d5a7bfbe324fe8b8e6023e4836473b2b76099b72f58262d616665d0f41
++++ b/bitcoin/src/net.cpp 6d7c7634cce09792942fc69cf945b64e8f8e77b496ad6bbaed12dccbc5e13c31fc2f1162735cae7951893fb6b3635955703059b1e8ba1607cc483c494c0a126c
 @@ -59,12 +59,6 @@

  void CNode::PushGetBlocks(CBlockIndex* pindexBegin, uint256 hashEnd)
@@ -34,8 +34,8 @@
  }

 diff -uNr a/bitcoin/src/net.h b/bitcoin/src/net.h
---- a/bitcoin/src/net.h bb842420bcc67752edf8e658524b135f499c5f8676557a6c12f47f204303e34bd73beabdf6e9146ba452947c4e5cd298529969fab90f16942f6bf0c1229f7043
-+++ b/bitcoin/src/net.h 3c097f22786c99bd590da3eff3daa012766a8eed65a4ab6ab859ab1b6e38cbfa7334de1b640044c35dc354ed20fc9981b592d86f4af6051111c95cf982550d74
+--- a/bitcoin/src/net.h 4a3e4156023b21f80de1c46c1466ccbc28008d83f204d9eea1e7ac7cd9a2356a1df5eb1d064a4bfede9d661921ded7afad5bef2e2a3eced51bdff0ef875abf29
++++ b/bitcoin/src/net.h 492c9cc92a504bb8174d75fafcbee6980986182a459efc9bfa1d64766320d98ba2fa971d78d00a777c6cc50f82a5d424997927378e99738b1b3b550bdaa727f7
 @@ -130,8 +130,6 @@
      std::map mapRequests;
      CCriticalSection cs_mapRequests;

// Looking good!

// Now move back to the main sandbox directory

mod6@gentoo ~/trb_keccak_regrind_noUTF8/compare_sha512_ksum_vpatches $ cd ..

// Setup another bash array to contain all of the vpatch names (including
// genesis.vpatch) and strip off the signatories from the end of the line

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ TRB_VTREE_COMPARE_BYTES=$(./v.pl pp asciilifeform_aggressive_pushgetblocks.vpatch | sed 's/ (mod6)$//' | xargs)

// Iterate over the list and print the strings so we can ensure its correctness.

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ for i in ${TRB_VTREE_COMPARE_BYTES[@]}; do echo $i; done
genesis.vpatch
bitcoin-asciilifeform.1.vpatch
rm_rf_upnp.vpatch
bitcoin-asciilifeform.2-https_snipsnip.vpatch
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
bitcoin-asciilifeform.4-goodbye-win32.vpatch
bitcoin-v0_5_3-db_config.6.vpatch
bitcoin-v0_5_3_1-rev_bump.7.vpatch
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
asciilifeform-kills-integer-retardation.vpatch
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
asciilifeform_dnsseed_snipsnip.vpatch
asciilifeform_maxint_locks_corrected.vpatch
asciilifeform_orphanage_thermonuke.vpatch
asciilifeform_tx-orphanage_amputation.vpatch
asciilifeform_zap_hardcoded_seeds.vpatch
asciilifeform_zap_showmyip_crud.vpatch
mod6_fix_dumpblock_params.vpatch
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
asciilifeform_and_now_we_have_eatblock.vpatch
asciilifeform_lets_lose_testnet.vpatch
asciilifeform_add_verifyall_option.vpatch
programmable-versionstring.vpatch
malleus_mikehearnificarum.vpatch
mod6_der_high_low_s.vpatch
makefiles.vpatch
asciilifeform_aggressive_pushgetblocks.vpatch

// Now iterate over the list and compare the number of bytes in the original
// SHA512 vpatches to the newly created keccak vpatch counterparts.  They should
// ~all~ have the same number of bytes with the important exception of
// genesis.vpatch which should have 2 less bytes.
// Here's why: The UTF8 character was a 3 byte character.  We removed those
// three bytes, then re-added one 7bit-ascii byte as a '-' hyphen.  This leaves
// us minus two bytes overall.

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ for i in ${TRB_VTREE_COMPARE_BYTES[@]}; do A=$(ls -al patches/$i | awk '{print $5}'); B=$(ls -al keccak_vtree/$i | awk '{print $5}'); if [[ $A != $B ]]; then echo "Byte count mis-match for $i! Expected $A Bytes, Was $B Bytes"; else echo "Byte count for $i vpatch matches: $A = $B"; fi done
Byte count mis-match for genesis.vpatch! Expected 860922 Bytes, Was 860920 Bytes
Byte count for bitcoin-asciilifeform.1.vpatch vpatch matches: 9780 = 9780
Byte count for rm_rf_upnp.vpatch vpatch matches: 13302 = 13302
Byte count for bitcoin-asciilifeform.2-https_snipsnip.vpatch vpatch matches: 9145 = 9145
Byte count for bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch vpatch matches: 9611 = 9611
Byte count for bitcoin-asciilifeform.4-goodbye-win32.vpatch vpatch matches: 32917 = 32917
Byte count for bitcoin-v0_5_3-db_config.6.vpatch vpatch matches: 1179 = 1179
Byte count for bitcoin-v0_5_3_1-rev_bump.7.vpatch vpatch matches: 619 = 619
Byte count for bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch vpatch matches: 618 = 618
Byte count for asciilifeform-kills-integer-retardation.vpatch vpatch matches: 1495 = 1495
Byte count for asciilifeform_and_now_we_have_block_dumper_corrected.vpatch vpatch matches: 2690 = 2690
Byte count for asciilifeform_dnsseed_snipsnip.vpatch vpatch matches: 4736 = 4736
Byte count for asciilifeform_maxint_locks_corrected.vpatch vpatch matches: 881 = 881
Byte count for asciilifeform_orphanage_thermonuke.vpatch vpatch matches: 4193 = 4193
Byte count for asciilifeform_tx-orphanage_amputation.vpatch vpatch matches: 5696 = 5696
Byte count for asciilifeform_zap_hardcoded_seeds.vpatch vpatch matches: 9393 = 9393
Byte count for asciilifeform_zap_showmyip_crud.vpatch vpatch matches: 5126 = 5126
Byte count for mod6_fix_dumpblock_params.vpatch vpatch matches: 701 = 701
Byte count for asciilifeform_dns_thermonyukyoolar_kleansing.vpatch vpatch matches: 10750 = 10750
Byte count for asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch vpatch matches: 19407 = 19407
Byte count for asciilifeform_and_now_we_have_eatblock.vpatch vpatch matches: 4034 = 4034
Byte count for asciilifeform_lets_lose_testnet.vpatch vpatch matches: 11124 = 11124
Byte count for asciilifeform_add_verifyall_option.vpatch vpatch matches: 3538 = 3538
Byte count for programmable-versionstring.vpatch vpatch matches: 6817 = 6817
Byte count for malleus_mikehearnificarum.vpatch vpatch matches: 1012 = 1012
Byte count for mod6_der_high_low_s.vpatch vpatch matches: 4831 = 4831
Byte count for makefiles.vpatch vpatch matches: 15336 = 15336
Byte count for asciilifeform_aggressive_pushgetblocks.vpatch vpatch matches: 2541 = 2541

// Exactly as expected!

// Let's copy in a pre-built `vk.pl` and ensure that our new keccak vtree
// is correct

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ls .wot/
mod6.asc
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ cp ../v_keccak/vk.pl .
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ksum ./vk.pl
115b06a799eae048ffbd18642234dc234e9bf879ebdedf0ed9b4be69a410187537b618d2b4b581954b89d1f63ef0925f9ff1ae26f0882c28f05d3a1fcdb1a732  ./vk.pl

// Let's check the version

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./vk.pl v
################################################################################
#               ..::[ The Bitcoin Foundation: V ]::..                          #
#                                                                              #
#     Version: 99992 K                                                         #
#      Author: mod6                                                            #
# Fingerprint: 0x027A8D7C0FB8A16643720F40721705A8B71EADAF                      #
#                                                                              #
################################################################################
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./vk.pl w
mod6:027A8D7C0FB8A16643720F40721705A8B71EADAF:mod6 (mod6) 

// Now I've taken the keccak vpatches and signed them (not shown).  Let's leave
// the vpatches in place, in the 'keccak_vtree' directory, and then copy the seals
// into a new directory 'keccak_vtree_seals'.

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ mkdir keccak_vtree_seals

// Ok, now copy in the seals to 'keccak_vtree_seals' (not shown here)

// Let's test our keccak vtree flow with `vk.pl`

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./vk.pl f pd keccak_vtree sd keccak_vtree_seals
genesis.vpatch (mod6)
bitcoin-asciilifeform.1.vpatch (mod6)
rm_rf_upnp.vpatch (mod6)
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch (mod6)
bitcoin-asciilifeform.2-https_snipsnip.vpatch (mod6)
bitcoin-asciilifeform.4-goodbye-win32.vpatch (mod6)
asciilifeform_dnsseed_snipsnip.vpatch (mod6)
asciilifeform_zap_hardcoded_seeds.vpatch (mod6)
asciilifeform-kills-integer-retardation.vpatch (mod6)
asciilifeform_zap_showmyip_crud.vpatch (mod6)
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch (mod6)
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch (mod6)
mod6_fix_dumpblock_params.vpatch (mod6)
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch (mod6)
bitcoin-v0_5_3_1-rev_bump.7.vpatch (mod6)
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch (mod6)
asciilifeform_orphanage_thermonuke.vpatch (mod6)
asciilifeform_and_now_we_have_eatblock.vpatch (mod6)
bitcoin-v0_5_3-db_config.6.vpatch (mod6)
asciilifeform_tx-orphanage_amputation.vpatch (mod6)
asciilifeform_maxint_locks_corrected.vpatch (mod6)
asciilifeform_lets_lose_testnet.vpatch (mod6)
asciilifeform_add_verifyall_option.vpatch (mod6)
programmable-versionstring.vpatch (mod6)
mod6_der_high_low_s.vpatch (mod6)
malleus_mikehearnificarum.vpatch (mod6)
makefiles.vpatch (mod6)
asciilifeform_aggressive_pushgetblocks.vpatch (mod6)

// Let's do a test to ensure that the press-path of both the original SHA512
// trb vtree is the same as the press-path for the new keccak vtree 

// Save the press-path of the original SHA512 vtree

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./v.pl pp asciilifeform_aggressive_pushgetblocks.vpatch > pp.sha512.txt

// Save the press-path of the new keccak vtree
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./vk.pl pp asciilifeform_aggressive_pushgetblocks.vpatch pd keccak_vtree sd keccak_vtree_seals >> pp.keccak.txt

// List these files to ensure they are not empty

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ls -al pp.sha512.txt pp.keccak.txt
-rw-r--r-- 1 mod6 mod6 1316 Jan 10 01:59 pp.keccak.txt
-rw-r--r-- 1 mod6 mod6 1316 Jan 10 01:58 pp.sha512.txt

// Let's grab a SHA512 hash of each file
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ sha512sum pp.sha512.txt pp.keccak.txt
8c63604f95b502b80f0591816d673ad099f07aa6fe2651ebf438cd988b120bd886d3c712e173c0286052a8d86aff7f04a04abcea310130f38c2b5f70e258e033  pp.sha512.txt
8c63604f95b502b80f0591816d673ad099f07aa6fe2651ebf438cd988b120bd886d3c712e173c0286052a8d86aff7f04a04abcea310130f38c2b5f70e258e033  pp.keccak.txt

// Matches!

// Let's also do a `ksum` of each file

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ksum pp.sha512.txt pp.keccak.txt
d8f19cb1b86bb44608c4da24091d50d92b37bfb948bb2f16f07d766b37ae823fdf0354f57b9fc22b112734373e78e17e4952a1a2f9c72f87290d9684c022b9e3  pp.sha512.txt
d8f19cb1b86bb44608c4da24091d50d92b37bfb948bb2f16f07d766b37ae823fdf0354f57b9fc22b112734373e78e17e4952a1a2f9c72f87290d9684c022b9e3  pp.keccak.txt

// Matches!

// Diff the output files to ensure they are the same

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ diff -uNr pp.sha512.txt pp.keccak.txt
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ 

// Looking good.

// Let's move the SHA512 vpatches & seals directories to new names, and move the
// keccak vpatch & seals directories to the default names.  This will make the
// next parts a bit easier to read.

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ mv .seals/ .seals-trb-sha512
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ mv patches patches-trb-sha512
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ mv keccak_vtree patches
mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ mv keccak_vtree_seals .seals

// Let's check the flow of our keccak vtree again

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./vk.pl f
genesis.vpatch (mod6)
bitcoin-asciilifeform.1.vpatch (mod6)
rm_rf_upnp.vpatch (mod6)
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch (mod6)
bitcoin-asciilifeform.2-https_snipsnip.vpatch (mod6)
bitcoin-asciilifeform.4-goodbye-win32.vpatch (mod6)
asciilifeform_dnsseed_snipsnip.vpatch (mod6)
asciilifeform_zap_hardcoded_seeds.vpatch (mod6)
asciilifeform-kills-integer-retardation.vpatch (mod6)
asciilifeform_zap_showmyip_crud.vpatch (mod6)
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch (mod6)
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch (mod6)
mod6_fix_dumpblock_params.vpatch (mod6)
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch (mod6)
bitcoin-v0_5_3_1-rev_bump.7.vpatch (mod6)
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch (mod6)
asciilifeform_orphanage_thermonuke.vpatch (mod6)
asciilifeform_and_now_we_have_eatblock.vpatch (mod6)
bitcoin-v0_5_3-db_config.6.vpatch (mod6)
asciilifeform_tx-orphanage_amputation.vpatch (mod6)
asciilifeform_maxint_locks_corrected.vpatch (mod6)
asciilifeform_lets_lose_testnet.vpatch (mod6)
asciilifeform_add_verifyall_option.vpatch (mod6)
programmable-versionstring.vpatch (mod6)
mod6_der_high_low_s.vpatch (mod6)
malleus_mikehearnificarum.vpatch (mod6)
makefiles.vpatch (mod6)
asciilifeform_aggressive_pushgetblocks.vpatch (mod6)

// Good. 

// Now, let's press our original SHA512 vtree to a directory called 'trb_sha512_press'

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./v.pl p v trb_sha512_press asciilifeform_aggressive_pushgetblocks.vpatch pd patches-trb-sha512/ sd .seals-trb-sha512/
genesis.vpatch
  patching file bitcoin/.gitignore
  patching file bitcoin/COPYING
  patching file bitcoin/src/base58.h
  patching file bitcoin/src/bignum.h
  patching file bitcoin/src/bitcoinrpc.cpp
  patching file bitcoin/src/bitcoinrpc.h
  patching file bitcoin/src/checkpoints.cpp
  patching file bitcoin/src/checkpoints.h
  patching file bitcoin/src/crypter.cpp
  patching file bitcoin/src/crypter.h
  patching file bitcoin/src/db.cpp
  patching file bitcoin/src/db.h
  patching file bitcoin/src/headers.h
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/init.h
  patching file bitcoin/src/irc.cpp
  patching file bitcoin/src/irc.h
  patching file bitcoin/src/json/LICENSE.txt
  patching file bitcoin/src/json/json_spirit.h
  patching file bitcoin/src/json/json_spirit_error_position.h
  patching file bitcoin/src/json/json_spirit_reader.cpp
  patching file bitcoin/src/json/json_spirit_reader.h
  patching file bitcoin/src/json/json_spirit_reader_template.h
  patching file bitcoin/src/json/json_spirit_stream_reader.h
  patching file bitcoin/src/json/json_spirit_utils.h
  patching file bitcoin/src/json/json_spirit_value.cpp
  patching file bitcoin/src/json/json_spirit_value.h
  patching file bitcoin/src/json/json_spirit_writer.cpp
  patching file bitcoin/src/json/json_spirit_writer.h
  patching file bitcoin/src/json/json_spirit_writer_template.h
  patching file bitcoin/src/key.h
  patching file bitcoin/src/keystore.cpp
  patching file bitcoin/src/keystore.h
  patching file bitcoin/src/main.cpp
  patching file bitcoin/src/main.h
  patching file bitcoin/src/makefile.linux-mingw
  patching file bitcoin/src/makefile.unix
  patching file bitcoin/src/net.cpp
  patching file bitcoin/src/net.h
  patching file bitcoin/src/noui.h
  patching file bitcoin/src/obj/.gitignore
  patching file bitcoin/src/obj/nogui/.gitignore
  patching file bitcoin/src/obj/test/.gitignore
  patching file bitcoin/src/obj-test/.gitignore
  patching file bitcoin/src/protocol.cpp
  patching file bitcoin/src/protocol.h
  patching file bitcoin/src/qtui.h
  patching file bitcoin/src/script.cpp
  patching file bitcoin/src/script.h
  patching file bitcoin/src/serialize.h
  patching file bitcoin/src/strlcpy.h
  patching file bitcoin/src/test/Checkpoints_tests.cpp
  patching file bitcoin/src/test/DoS_tests.cpp
  patching file bitcoin/src/test/README
  patching file bitcoin/src/test/base58_tests.cpp
  patching file bitcoin/src/test/base64_tests.cpp
  patching file bitcoin/src/test/miner_tests.cpp
  patching file bitcoin/src/test/script_tests.cpp
  patching file bitcoin/src/test/test_bitcoin.cpp
  patching file bitcoin/src/test/transaction_tests.cpp
  patching file bitcoin/src/test/uint160_tests.cpp
  patching file bitcoin/src/test/uint256_tests.cpp
  patching file bitcoin/src/test/util_tests.cpp
  patching file bitcoin/src/uint256.h
  patching file bitcoin/src/util.cpp
  patching file bitcoin/src/util.h
  patching file bitcoin/src/wallet.cpp
  patching file bitcoin/src/wallet.h
bitcoin-asciilifeform.1.vpatch
  patching file bitcoin/src/bitcoinrpc.cpp
  patching file bitcoin/src/db.cpp
  patching file bitcoin/src/headers.h
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/qtui.h
  patching file bitcoin/src/util.h
  patching file bitcoin/src/wallet.cpp
rm_rf_upnp.vpatch
  patching file bitcoin/src/db.cpp
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/main.cpp
  patching file bitcoin/src/main.h
  patching file bitcoin/src/makefile.linux-mingw
  patching file bitcoin/src/makefile.unix
  patching file bitcoin/src/net.cpp
bitcoin-asciilifeform.2-https_snipsnip.vpatch
  patching file bitcoin/src/bitcoinrpc.cpp
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/makefile.linux-mingw
  patching file bitcoin/src/makefile.unix
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
  patching file bitcoin/src/main.cpp
  patching file bitcoin/src/main.h
bitcoin-asciilifeform.4-goodbye-win32.vpatch
  patching file bitcoin/src/bitcoinrpc.cpp
  patching file bitcoin/src/crypter.cpp
  patching file bitcoin/src/db.cpp
  patching file bitcoin/src/headers.h
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/main.h
  patching file bitcoin/src/makefile.linux-mingw
  patching file bitcoin/src/net.cpp
  patching file bitcoin/src/net.h
  patching file bitcoin/src/protocol.cpp
  patching file bitcoin/src/script.h
  patching file bitcoin/src/serialize.h
  patching file bitcoin/src/uint256.h
  patching file bitcoin/src/util.cpp
  patching file bitcoin/src/util.h
bitcoin-v0_5_3-db_config.6.vpatch
  patching file bitcoin/src/db.cpp
bitcoin-v0_5_3_1-rev_bump.7.vpatch
  patching file bitcoin/src/serialize.h
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
  patching file bitcoin/src/makefile.unix
asciilifeform-kills-integer-retardation.vpatch
  patching file bitcoin/src/bitcoinrpc.cpp
  patching file bitcoin/src/util.h
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
  patching file bitcoin/src/bitcoinrpc.cpp
asciilifeform_dnsseed_snipsnip.vpatch
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/net.cpp
asciilifeform_maxint_locks_corrected.vpatch
  patching file bitcoin/src/db.cpp
asciilifeform_orphanage_thermonuke.vpatch
  patching file bitcoin/src/main.cpp
asciilifeform_tx-orphanage_amputation.vpatch
  patching file bitcoin/src/main.cpp
  patching file bitcoin/src/main.h
asciilifeform_zap_hardcoded_seeds.vpatch
  patching file bitcoin/src/net.cpp
asciilifeform_zap_showmyip_crud.vpatch
  patching file bitcoin/src/net.cpp
mod6_fix_dumpblock_params.vpatch
  patching file bitcoin/src/bitcoinrpc.cpp
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/irc.cpp
  patching file bitcoin/src/net.cpp
  patching file bitcoin/src/net.h
  patching file bitcoin/src/protocol.cpp
  patching file bitcoin/src/protocol.h
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/irc.cpp
  patching file bitcoin/src/irc.h
  patching file bitcoin/src/makefile.unix
  patching file bitcoin/src/net.cpp
  patching file bitcoin/src/net.h
  patching file bitcoin/src/serialize.h
asciilifeform_and_now_we_have_eatblock.vpatch
  patching file bitcoin/src/bitcoinrpc.cpp
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/util.cpp
  patching file bitcoin/src/util.h
asciilifeform_lets_lose_testnet.vpatch
  patching file bitcoin/src/base58.h
  patching file bitcoin/src/bitcoinrpc.cpp
  patching file bitcoin/src/checkpoints.cpp
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/main.cpp
  patching file bitcoin/src/protocol.h
  patching file bitcoin/src/util.cpp
  patching file bitcoin/src/util.h
asciilifeform_add_verifyall_option.vpatch
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/main.cpp
  patching file bitcoin/src/util.cpp
  patching file bitcoin/src/util.h
programmable-versionstring.vpatch
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/knobs.h
  patching file bitcoin/src/main.cpp
  patching file bitcoin/src/makefile.unix
  patching file bitcoin/src/net.h
  patching file bitcoin/src/serialize.h
  patching file bitcoin/src/util.cpp
  patching file bitcoin/src/util.h
malleus_mikehearnificarum.vpatch
  patching file bitcoin/src/main.cpp
mod6_der_high_low_s.vpatch
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/key.h
  patching file bitcoin/src/util.cpp
  patching file bitcoin/src/util.h
makefiles.vpatch
  patching file bitcoin/Makefile
  patching file bitcoin/bin/Makefile
  patching file bitcoin/bin/Manifest.sha512
  patching file bitcoin/build/Makefile
  patching file bitcoin/build/Makefile.rotor
  patching file bitcoin/deps/Makefile
  patching file bitcoin/deps/Manifest.sha512
  patching file bitcoin/src/db.cpp
  patching file bitcoin/src/init.cpp
  patching file bitcoin/src/main.cpp
  patching file bitcoin/verify.mk
asciilifeform_aggressive_pushgetblocks.vpatch
  patching file bitcoin/src/main.cpp
  patching file bitcoin/src/net.cpp
  patching file bitcoin/src/net.h

// Good.

// Now, let's press our keccak vtree to a directory called 'trb_keccak_press'

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./vk.pl p v trb_keccak_press asciilifeform_aggressive_pushgetblocks.vpatch
genesis.vpatch
  creating bitcoin/.gitignore
  creating bitcoin/COPYING
  creating bitcoin/src/base58.h
  creating bitcoin/src/bignum.h
  creating bitcoin/src/bitcoinrpc.cpp
  creating bitcoin/src/bitcoinrpc.h
  creating bitcoin/src/checkpoints.cpp
  creating bitcoin/src/checkpoints.h
  creating bitcoin/src/crypter.cpp
  creating bitcoin/src/crypter.h
  creating bitcoin/src/db.cpp
  creating bitcoin/src/db.h
  creating bitcoin/src/headers.h
  creating bitcoin/src/init.cpp
  creating bitcoin/src/init.h
  creating bitcoin/src/irc.cpp
  creating bitcoin/src/irc.h
  creating bitcoin/src/json/LICENSE.txt
  creating bitcoin/src/json/json_spirit.h
  creating bitcoin/src/json/json_spirit_error_position.h
  creating bitcoin/src/json/json_spirit_reader.cpp
  creating bitcoin/src/json/json_spirit_reader.h
  creating bitcoin/src/json/json_spirit_reader_template.h
  creating bitcoin/src/json/json_spirit_stream_reader.h
  creating bitcoin/src/json/json_spirit_utils.h
  creating bitcoin/src/json/json_spirit_value.cpp
  creating bitcoin/src/json/json_spirit_value.h
  creating bitcoin/src/json/json_spirit_writer.cpp
  creating bitcoin/src/json/json_spirit_writer.h
  creating bitcoin/src/json/json_spirit_writer_template.h
  creating bitcoin/src/key.h
  creating bitcoin/src/keystore.cpp
  creating bitcoin/src/keystore.h
  creating bitcoin/src/main.cpp
  creating bitcoin/src/main.h
  creating bitcoin/src/makefile.linux-mingw
  creating bitcoin/src/makefile.unix
  creating bitcoin/src/net.cpp
  creating bitcoin/src/net.h
  creating bitcoin/src/noui.h
  creating bitcoin/src/obj/.gitignore
  creating bitcoin/src/obj/nogui/.gitignore
  creating bitcoin/src/obj/test/.gitignore
  creating bitcoin/src/obj-test/.gitignore
  creating bitcoin/src/protocol.cpp
  creating bitcoin/src/protocol.h
  creating bitcoin/src/qtui.h
  creating bitcoin/src/script.cpp
  creating bitcoin/src/script.h
  creating bitcoin/src/serialize.h
  creating bitcoin/src/strlcpy.h
  creating bitcoin/src/test/Checkpoints_tests.cpp
  creating bitcoin/src/test/DoS_tests.cpp
  creating bitcoin/src/test/README
  creating bitcoin/src/test/base58_tests.cpp
  creating bitcoin/src/test/base64_tests.cpp
  creating bitcoin/src/test/miner_tests.cpp
  creating bitcoin/src/test/script_tests.cpp
  creating bitcoin/src/test/test_bitcoin.cpp
  creating bitcoin/src/test/transaction_tests.cpp
  creating bitcoin/src/test/uint160_tests.cpp
  creating bitcoin/src/test/uint256_tests.cpp
  creating bitcoin/src/test/util_tests.cpp
  creating bitcoin/src/uint256.h
  creating bitcoin/src/util.cpp
  creating bitcoin/src/util.h
  creating bitcoin/src/wallet.cpp
  creating bitcoin/src/wallet.h
bitcoin-asciilifeform.1.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/db.cpp
  patching bitcoin/src/headers.h
  patching bitcoin/src/init.cpp
  deleting bitcoin/src/qtui.h
  patching bitcoin/src/util.h
  patching bitcoin/src/wallet.cpp
rm_rf_upnp.vpatch
  patching bitcoin/src/db.cpp
  patching bitcoin/src/init.cpp
  patching bitcoin/src/main.cpp
  patching bitcoin/src/main.h
  patching bitcoin/src/makefile.linux-mingw
  patching bitcoin/src/makefile.unix
  patching bitcoin/src/net.cpp
bitcoin-asciilifeform.2-https_snipsnip.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/init.cpp
  patching bitcoin/src/makefile.linux-mingw
  patching bitcoin/src/makefile.unix
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
  patching bitcoin/src/main.cpp
  patching bitcoin/src/main.h
bitcoin-asciilifeform.4-goodbye-win32.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/crypter.cpp
  patching bitcoin/src/db.cpp
  patching bitcoin/src/headers.h
  patching bitcoin/src/init.cpp
  patching bitcoin/src/main.h
  deleting bitcoin/src/makefile.linux-mingw
  patching bitcoin/src/net.cpp
  patching bitcoin/src/net.h
  patching bitcoin/src/protocol.cpp
  patching bitcoin/src/script.h
  patching bitcoin/src/serialize.h
  patching bitcoin/src/uint256.h
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
bitcoin-v0_5_3-db_config.6.vpatch
  patching bitcoin/src/db.cpp
bitcoin-v0_5_3_1-rev_bump.7.vpatch
  patching bitcoin/src/serialize.h
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
  patching bitcoin/src/makefile.unix
asciilifeform-kills-integer-retardation.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/util.h
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
asciilifeform_dnsseed_snipsnip.vpatch
  patching bitcoin/src/init.cpp
  patching bitcoin/src/net.cpp
asciilifeform_maxint_locks_corrected.vpatch
  patching bitcoin/src/db.cpp
asciilifeform_orphanage_thermonuke.vpatch
  patching bitcoin/src/main.cpp
asciilifeform_tx-orphanage_amputation.vpatch
  patching bitcoin/src/main.cpp
  patching bitcoin/src/main.h
asciilifeform_zap_hardcoded_seeds.vpatch
  patching bitcoin/src/net.cpp
asciilifeform_zap_showmyip_crud.vpatch
  patching bitcoin/src/net.cpp
mod6_fix_dumpblock_params.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
  patching bitcoin/src/init.cpp
  patching bitcoin/src/irc.cpp
  patching bitcoin/src/net.cpp
  patching bitcoin/src/net.h
  patching bitcoin/src/protocol.cpp
  patching bitcoin/src/protocol.h
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
  patching bitcoin/src/init.cpp
  deleting bitcoin/src/irc.cpp
  deleting bitcoin/src/irc.h
  patching bitcoin/src/makefile.unix
  patching bitcoin/src/net.cpp
  patching bitcoin/src/net.h
  patching bitcoin/src/serialize.h
asciilifeform_and_now_we_have_eatblock.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/init.cpp
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
asciilifeform_lets_lose_testnet.vpatch
  patching bitcoin/src/base58.h
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/checkpoints.cpp
  patching bitcoin/src/init.cpp
  patching bitcoin/src/main.cpp
  patching bitcoin/src/protocol.h
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
asciilifeform_add_verifyall_option.vpatch
  patching bitcoin/src/init.cpp
  patching bitcoin/src/main.cpp
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
programmable-versionstring.vpatch
  patching bitcoin/src/init.cpp
  creating bitcoin/src/knobs.h
  patching bitcoin/src/main.cpp
  patching bitcoin/src/makefile.unix
  patching bitcoin/src/net.h
  patching bitcoin/src/serialize.h
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
malleus_mikehearnificarum.vpatch
  patching bitcoin/src/main.cpp
mod6_der_high_low_s.vpatch
  patching bitcoin/src/init.cpp
  patching bitcoin/src/key.h
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
makefiles.vpatch
  creating bitcoin/Makefile
  creating bitcoin/bin/Makefile
  creating bitcoin/bin/Manifest.sha512
  creating bitcoin/build/Makefile
  creating bitcoin/build/Makefile.rotor
  creating bitcoin/deps/Makefile
  creating bitcoin/deps/Manifest.sha512
  patching bitcoin/src/db.cpp
  patching bitcoin/src/init.cpp
  patching bitcoin/src/main.cpp
  creating bitcoin/verify.mk
asciilifeform_aggressive_pushgetblocks.vpatch
  patching bitcoin/src/main.cpp
  patching bitcoin/src/net.cpp
  patching bitcoin/src/net.h              

// Good.

// Let's diff everything pressed to 'trb_sha512_press' with everything pressed
// to 'trb_keccak_press'

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ diff -uNr trb_sha512_press trb_keccak_press
diff -uNr trb_sha512_press/bitcoin/src/util.h trb_keccak_press/bitcoin/src/util.h
--- trb_sha512_press/bitcoin/src/util.h 2019-01-11 02:31:05.005520594 +0000
+++ trb_keccak_press/bitcoin/src/util.h 2019-01-11 02:36:03.585519850 +0000
@@ -84,7 +84,7 @@
 #define Beep(n1,n2)         (0)
 inline void Sleep(int64 n)
 {
-    /*Boost has a year 2038 problem� if the request sleep time is past epoch+2^31 seconds the sleep returns instantly.
+    /*Boost has a year 2038 problem- if the request sleep time is past epoch+2^31 seconds the sleep returns instantly.
       So we clamp our sleeps here to 10 years and hope that boost is fixed by 2028.*/
     boost::thread::sleep(boost::get_system_time() + boost::posix_time::milliseconds(n>315576000000LL?315576000000LL:n));
 }

// Perfect!  The only difference between the pressed trees is the removed UTF8 character from the keccak vtree.

// Let's press the keccak vtree to a directory called 'output' and we'll begin building trb as a final test

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ ./vk.pl p v output asciilifeform_aggressive_pushgetblocks.vpatch
genesis.vpatch
  creating bitcoin/.gitignore
  creating bitcoin/COPYING
  creating bitcoin/src/base58.h
  creating bitcoin/src/bignum.h
  creating bitcoin/src/bitcoinrpc.cpp
  creating bitcoin/src/bitcoinrpc.h
  creating bitcoin/src/checkpoints.cpp
  creating bitcoin/src/checkpoints.h
  creating bitcoin/src/crypter.cpp
  creating bitcoin/src/crypter.h
  creating bitcoin/src/db.cpp
  creating bitcoin/src/db.h
  creating bitcoin/src/headers.h
  creating bitcoin/src/init.cpp
  creating bitcoin/src/init.h
  creating bitcoin/src/irc.cpp
  creating bitcoin/src/irc.h
  creating bitcoin/src/json/LICENSE.txt
  creating bitcoin/src/json/json_spirit.h
  creating bitcoin/src/json/json_spirit_error_position.h
  creating bitcoin/src/json/json_spirit_reader.cpp
  creating bitcoin/src/json/json_spirit_reader.h
  creating bitcoin/src/json/json_spirit_reader_template.h
  creating bitcoin/src/json/json_spirit_stream_reader.h
  creating bitcoin/src/json/json_spirit_utils.h
  creating bitcoin/src/json/json_spirit_value.cpp
  creating bitcoin/src/json/json_spirit_value.h
  creating bitcoin/src/json/json_spirit_writer.cpp
  creating bitcoin/src/json/json_spirit_writer.h
  creating bitcoin/src/json/json_spirit_writer_template.h
  creating bitcoin/src/key.h
  creating bitcoin/src/keystore.cpp
  creating bitcoin/src/keystore.h
  creating bitcoin/src/main.cpp
  creating bitcoin/src/main.h
  creating bitcoin/src/makefile.linux-mingw
  creating bitcoin/src/makefile.unix
  creating bitcoin/src/net.cpp
  creating bitcoin/src/net.h
  creating bitcoin/src/noui.h
  creating bitcoin/src/obj/.gitignore
  creating bitcoin/src/obj/nogui/.gitignore
  creating bitcoin/src/obj/test/.gitignore
  creating bitcoin/src/obj-test/.gitignore
  creating bitcoin/src/protocol.cpp
  creating bitcoin/src/protocol.h
  creating bitcoin/src/qtui.h
  creating bitcoin/src/script.cpp
  creating bitcoin/src/script.h
  creating bitcoin/src/serialize.h
  creating bitcoin/src/strlcpy.h
  creating bitcoin/src/test/Checkpoints_tests.cpp
  creating bitcoin/src/test/DoS_tests.cpp
  creating bitcoin/src/test/README
  creating bitcoin/src/test/base58_tests.cpp
  creating bitcoin/src/test/base64_tests.cpp
  creating bitcoin/src/test/miner_tests.cpp
  creating bitcoin/src/test/script_tests.cpp
  creating bitcoin/src/test/test_bitcoin.cpp
  creating bitcoin/src/test/transaction_tests.cpp
  creating bitcoin/src/test/uint160_tests.cpp
  creating bitcoin/src/test/uint256_tests.cpp
  creating bitcoin/src/test/util_tests.cpp
  creating bitcoin/src/uint256.h
  creating bitcoin/src/util.cpp
  creating bitcoin/src/util.h
  creating bitcoin/src/wallet.cpp
  creating bitcoin/src/wallet.h
bitcoin-asciilifeform.1.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/db.cpp
  patching bitcoin/src/headers.h
  patching bitcoin/src/init.cpp
  deleting bitcoin/src/qtui.h
  patching bitcoin/src/util.h
  patching bitcoin/src/wallet.cpp
rm_rf_upnp.vpatch
  patching bitcoin/src/db.cpp
  patching bitcoin/src/init.cpp
  patching bitcoin/src/main.cpp
  patching bitcoin/src/main.h
  patching bitcoin/src/makefile.linux-mingw
  patching bitcoin/src/makefile.unix
  patching bitcoin/src/net.cpp
bitcoin-asciilifeform.2-https_snipsnip.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/init.cpp
  patching bitcoin/src/makefile.linux-mingw
  patching bitcoin/src/makefile.unix
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
  patching bitcoin/src/main.cpp
  patching bitcoin/src/main.h
bitcoin-asciilifeform.4-goodbye-win32.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/crypter.cpp
  patching bitcoin/src/db.cpp
  patching bitcoin/src/headers.h
  patching bitcoin/src/init.cpp
  patching bitcoin/src/main.h
  deleting bitcoin/src/makefile.linux-mingw
  patching bitcoin/src/net.cpp
  patching bitcoin/src/net.h
  patching bitcoin/src/protocol.cpp
  patching bitcoin/src/script.h
  patching bitcoin/src/serialize.h
  patching bitcoin/src/uint256.h
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
bitcoin-v0_5_3-db_config.6.vpatch
  patching bitcoin/src/db.cpp
bitcoin-v0_5_3_1-rev_bump.7.vpatch
  patching bitcoin/src/serialize.h
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
  patching bitcoin/src/makefile.unix
asciilifeform-kills-integer-retardation.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/util.h
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
asciilifeform_dnsseed_snipsnip.vpatch
  patching bitcoin/src/init.cpp
  patching bitcoin/src/net.cpp
asciilifeform_maxint_locks_corrected.vpatch
  patching bitcoin/src/db.cpp
asciilifeform_orphanage_thermonuke.vpatch
  patching bitcoin/src/main.cpp
asciilifeform_tx-orphanage_amputation.vpatch
  patching bitcoin/src/main.cpp
  patching bitcoin/src/main.h
asciilifeform_zap_hardcoded_seeds.vpatch
  patching bitcoin/src/net.cpp
asciilifeform_zap_showmyip_crud.vpatch
  patching bitcoin/src/net.cpp
mod6_fix_dumpblock_params.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
  patching bitcoin/src/init.cpp
  patching bitcoin/src/irc.cpp
  patching bitcoin/src/net.cpp
  patching bitcoin/src/net.h
  patching bitcoin/src/protocol.cpp
  patching bitcoin/src/protocol.h
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
  patching bitcoin/src/init.cpp
  deleting bitcoin/src/irc.cpp
  deleting bitcoin/src/irc.h
  patching bitcoin/src/makefile.unix
  patching bitcoin/src/net.cpp
  patching bitcoin/src/net.h
  patching bitcoin/src/serialize.h
asciilifeform_and_now_we_have_eatblock.vpatch
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/init.cpp
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
asciilifeform_lets_lose_testnet.vpatch
  patching bitcoin/src/base58.h
  patching bitcoin/src/bitcoinrpc.cpp
  patching bitcoin/src/checkpoints.cpp
  patching bitcoin/src/init.cpp
  patching bitcoin/src/main.cpp
  patching bitcoin/src/protocol.h
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
asciilifeform_add_verifyall_option.vpatch
  patching bitcoin/src/init.cpp
  patching bitcoin/src/main.cpp
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
programmable-versionstring.vpatch
  patching bitcoin/src/init.cpp
  creating bitcoin/src/knobs.h
  patching bitcoin/src/main.cpp
  patching bitcoin/src/makefile.unix
  patching bitcoin/src/net.h
  patching bitcoin/src/serialize.h
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
malleus_mikehearnificarum.vpatch
  patching bitcoin/src/main.cpp
mod6_der_high_low_s.vpatch
  patching bitcoin/src/init.cpp
  patching bitcoin/src/key.h
  patching bitcoin/src/util.cpp
  patching bitcoin/src/util.h
makefiles.vpatch
  creating bitcoin/Makefile
  creating bitcoin/bin/Makefile
  creating bitcoin/bin/Manifest.sha512
  creating bitcoin/build/Makefile
  creating bitcoin/build/Makefile.rotor
  creating bitcoin/deps/Makefile
  creating bitcoin/deps/Manifest.sha512
  patching bitcoin/src/db.cpp
  patching bitcoin/src/init.cpp
  patching bitcoin/src/main.cpp
  creating bitcoin/verify.mk
asciilifeform_aggressive_pushgetblocks.vpatch
  patching bitcoin/src/main.cpp
  patching bitcoin/src/net.cpp
  patching bitcoin/src/net.h

// Good press.

// Change directories to the deps directory and copy in all of the dependencies
// from another place already saved on disk 

mod6@gentoo ~/trb_keccak_regrind_noUTF8 $ cd output/bitcoin/deps/
mod6@gentoo ~/trb_keccak_regrind_noUTF8/output/bitcoin/deps $ cp ~/deps/*.asc .
mod6@gentoo ~/trb_keccak_regrind_noUTF8/output/bitcoin/deps $ cd ..

// Finally, run the offline `make` of trb

mod6@gentoo ~/trb_keccak_regrind_noUTF8/output/bitcoin $ make

----8<-----8<-----8<----- SNIP THOUSANDS OF TRB BUILD LINES ----8<-----8<-----8<

mod6@gentoo ~/trb_keccak_regrind_noUTF8/output/bitcoin $ ls -al bin/bitcoind
-rwxr-xr-x 1 mod6 mod6 4884960 Jan 11 04:18 bin/bitcoind

// Here, you will find a tarball [signature] of the Keccak TRB Vpatches with my
// corresponding signatures.  This is not intended for release at this time,
// but for review.  After review by TSMR~ Republicans, a date will be planned
// for the keccak trb vpatches to replace the SHA512 originals on The Bitcoin
// Foundation website.

// And that is all!  We have mechanically checked and we can assert that we now
// have a non-UTF8 keccak trb vtree.

// Thank you for reading! ~mod6

UTF-8 Char Found In TRB Genesis

Sunday, January 13th, 2019

[Forward]

This blog post is a cut-down copy from the my original blog spot. First, I wanted to repost it as I make use of the tool contained in here called 'check_nonascii_bytes.pl' during my TRB Keccak Regrind. Second, I wanted to cut out the latter part of the original post; at the time, I had tak,en the extra steps to regrind vpatches that were impacted by the single change to the genesis.vpatch; however, since TRB was getting a full regrind with keccak hashes, it's no longer relevant to repost the old experimental vpatches.

[ Preface ]

It was brought to the attention of The Bitcoin Foundation by phf that a UTF-8 character was discovered in the original genesis.vpatch of The Bitcoin Reference Implementation, also known as The Real Bitcoin (TRB). UTF-8 characters are forbidden in The Reference Implementation source code, and will be removed. This post meant to present, in detail for Lords of the Most Serene Republic, all of the requisite work to remove the UTF-8 character, and regrind genesis.vpatch as well as descendant vpatches in v0.5.4 RELEASE.

[ The Offending Character ]

Upon inspection of we have found the original culprit of this offense. The character in question appears on line 23962 of genesis.vpatch. It is a substituted Unicode character for a hyphen.

[ First Things First: Seek & Destroy ]

After the UTF-8 character was found in genesis.vpatch I took it upon myself to search through the rest of the v0.5.4 Release vpatches to see if any others were lurking in the thousands of lines of source code.

There are two ways to go about the ``Seek & Destroy UTF-8'' mission: Automate the search, and do the check by hand. To cover the former, automation, I created two different programs, one in perl, and one in C to check each character and see if it fell within the 7-Bit ASCII range. It should be said that a check-by-hand is also in necessary, as even the most well intentioned automation can miss something that would be obvious to the human eye; However, to save us time right now, (there are well over a million bytes to examine contained in v0.5.4 Release) we'll just check with automation.

mod6@gentoo ~/check_nonascii_bytes $ ls patches/
asciilifeform-kills-integer-retardation.vpatch                         bitcoin-asciilifeform.2-https_snipsnip.vpatch
asciilifeform_add_verifyall_option.vpatch                              bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch            bitcoin-asciilifeform.4-goodbye-win32.vpatch
asciilifeform_and_now_we_have_eatblock.vpatch                          bitcoin-v0_5_3-db_config.6.vpatch
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch                    bitcoin-v0_5_3_1-rev_bump.7.vpatch
asciilifeform_dnsseed_snipsnip.vpatch                                  bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
asciilifeform_lets_lose_testnet.vpatch                                 genesis.vpatch
asciilifeform_maxint_locks_corrected.vpatch                            makefiles.vpatch
asciilifeform_orphanage_thermonuke.vpatch                              malleus_mikehearnificarum.vpatch
asciilifeform_tx-orphanage_amputation.vpatch                           mod6_der_high_low_s.vpatch
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch  mod6_fix_dumpblock_params.vpatch
asciilifeform_zap_hardcoded_seeds.vpatch                               programmable-versionstring.vpatch
asciilifeform_zap_showmyip_crud.vpatch                                 rm_rf_upnp.vpatch
bitcoin-asciilifeform.1.vpatch
mod6@gentoo ~/check_nonascii_bytes $ ls -l patches | awk '{print $5}' | perl -e '@a=; $total=0; foreach $n (@a) { chomp($n); $total+=$n; } print "Total Bytes: $total\n";'
Total Bytes: 1049853
 

WARNING: Neither of these programs are pretty, or meant to be used for anything else, but for our purposes here: They get the job done.

Let's start with the perl program that I wrote to search through all the v0.5.4 Release vpatches. First, I'll present the execution of this program, followed by posting the source code.

mod6@gentoo ~/check_nonascii_bytes $ ./v.pl i http://thebitcoin.foundation
Full vpatch sync complete to "/home/mod6/check_nonascii_bytes/patches"
Seal sync complete to "/home/mod6/check_nonascii_bytes/.seals"
mod6@gentoo ~/check_nonascii_bytes $ for i in `ls patches`; do echo "vpatch: $i" && cat patches/$i | ./check_nonascii_bytes.pl; done
vpatch: asciilifeform-kills-integer-retardation.vpatch
vpatch: asciilifeform_add_verifyall_option.vpatch
vpatch: asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
vpatch: asciilifeform_and_now_we_have_eatblock.vpatch
vpatch: asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
vpatch: asciilifeform_dnsseed_snipsnip.vpatch
vpatch: asciilifeform_lets_lose_testnet.vpatch
vpatch: asciilifeform_maxint_locks_corrected.vpatch
vpatch: asciilifeform_orphanage_thermonuke.vpatch
vpatch: asciilifeform_tx-orphanage_amputation.vpatch
vpatch: asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
vpatch: asciilifeform_zap_hardcoded_seeds.vpatch
vpatch: asciilifeform_zap_showmyip_crud.vpatch
vpatch: bitcoin-asciilifeform.1.vpatch
vpatch: bitcoin-asciilifeform.2-https_snipsnip.vpatch
vpatch: bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
vpatch: bitcoin-asciilifeform.4-goodbye-win32.vpatch
vpatch: bitcoin-v0_5_3-db_config.6.vpatch
vpatch: bitcoin-v0_5_3_1-rev_bump.7.vpatch
vpatch: bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
vpatch: genesis.vpatch
NON-7BIT-ASCII VALUE IN SOURCE FILE: a/bitcoin/src/util.h ; BYTE VALUE: e2
NON-7BIT-ASCII VALUE IN SOURCE FILE: a/bitcoin/src/util.h ; BYTE VALUE: 80
NON-7BIT-ASCII VALUE IN SOURCE FILE: a/bitcoin/src/util.h ; BYTE VALUE: 94
vpatch: makefiles.vpatch
vpatch: malleus_mikehearnificarum.vpatch
vpatch: mod6_der_high_low_s.vpatch
vpatch: mod6_fix_dumpblock_params.vpatch
vpatch: programmable-versionstring.vpatch
vpatch: rm_rf_upnp.vpatch
mod6@gentoo ~/check_nonascii_bytes $

As we can see from the above, we sync'd all of the vpatches and seals from The Bitcoin Foundation's mirror of v0.5.4 Release vpatches. After sync'ing, we iterate through each vpatch and cat, and feeding them into `check_nonascii_bytes.pl`. Three bytes were discovered in the whole set of v0.5.4 Release vpatches, specifically 'e2', '80', and '94' from genesis.vpatch, in the source file of 'util.h'; the very same hyphen as aforementioned in this post.

The following is source code for `check_nonascii_bytes.pl`:

#!/usr/bin/perl

use strict;

my @vpatch=;

# Keep track of the current source file we're looking through.
my $src_file = "";

# Iterate over the vpatch one line at a time.
foreach my $line (@vpatch) {  

  if($line =~ /^--- (.*) .*/) {
    $src_file = $1;
  }

  # unpack the line into hex i.e. ;
  # 64696666202d754e7220612f626974636f696e2f2e67697469676e6f726520622f626974636f696e2f2e67697469676e6f72650a
  my $hex_line = unpack "H*", $line;

  # add spaces between each two character hex byte, i.e. ;
  # 64 69 66 66 20 2d 75 4e 72 20 61 2f 62 69 74 63 6f 69 6e 2f 2e 67 69 74 69 67 6e 6f 72 65 20 62 2f 62 69 74 63 6f 69 6e 2f 2e 67 69 74 69 67 6e 6f 72 65 0a
  $hex_line =~ s/(..)(?!$)/$1 /g;

  # Split out each two character hex representation by spaces, into array.
  my @line_bytes = split / /, $hex_line;

  # Iterate through the array of two character representations of bytes, one at a time.
  foreach my $lb (@line_bytes) {

    # Check the current two character representations.
    # First character must be between 0 and 7
    # Second character can be 0-9, or a-f.

    # If the two character byte representation is *NOT* in this range,
    # we've found a non-seven-bit-ascii char.
    if($lb !~ /^[0-7][0-9a-f]$/i) {
      print "NON-7BIT-ASCII VALUE IN SOURCE FILE: $src_file ; BYTE VALUE: $lb\n";
    }
  }
}

Next, I wrote a C program that completes the same task, here's what it's execution looks like:

mod6@gentoo ~/check_nonascii_bytes $ for i in `ls patches`; do echo "vpatch: $i"; ./cb patches/$i; done
vpatch: asciilifeform-kills-integer-retardation.vpatch
vpatch: asciilifeform_add_verifyall_option.vpatch
vpatch: asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
vpatch: asciilifeform_and_now_we_have_eatblock.vpatch
vpatch: asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
vpatch: asciilifeform_dnsseed_snipsnip.vpatch
vpatch: asciilifeform_lets_lose_testnet.vpatch
vpatch: asciilifeform_maxint_locks_corrected.vpatch
vpatch: asciilifeform_orphanage_thermonuke.vpatch
vpatch: asciilifeform_tx-orphanage_amputation.vpatch
vpatch: asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
vpatch: asciilifeform_zap_hardcoded_seeds.vpatch
vpatch: asciilifeform_zap_showmyip_crud.vpatch
vpatch: bitcoin-asciilifeform.1.vpatch
vpatch: bitcoin-asciilifeform.2-https_snipsnip.vpatch
vpatch: bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
vpatch: bitcoin-asciilifeform.4-goodbye-win32.vpatch
vpatch: bitcoin-v0_5_3-db_config.6.vpatch
vpatch: bitcoin-v0_5_3_1-rev_bump.7.vpatch
vpatch: bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
vpatch: genesis.vpatch
OUT OF 7-BIT ASCII RANGE! : e2
OUT OF 7-BIT ASCII RANGE! : 80
OUT OF 7-BIT ASCII RANGE! : 94
vpatch: makefiles.vpatch
vpatch: malleus_mikehearnificarum.vpatch
vpatch: mod6_der_high_low_s.vpatch
vpatch: mod6_fix_dumpblock_params.vpatch
vpatch: programmable-versionstring.vpatch
vpatch: rm_rf_upnp.vpatch

Just as before, we iterate through each vpatch and feed it into our program, `cb` (check_bytes.c). Three bytes were discovered in the whole set of v0.5.4 Release vpatches, specifically 'e2', '80', and '94' from genesis.vpatch; the very same hyphen as aforementioned in this post.

The following is source code for `check_bytes.c`:

#include <stdio.h>
#include <stdlib.h>

void read_file(char *filename) {

  FILE      *file;
  char      *line  = NULL;
  size_t    len    = 0;
  ssize_t   read;

  int pos          = 0;  // Position in line
  short int d      = 0;  // holds the short decimal value of the char

  // attempt to open our file, read-only mode.
  file = fopen(filename, "r");

  // if our file stream is NULL, print error and exit.
  if (file == NULL) {
    fprintf(stderr, "FILE COULD NOT BE OPENED! EXITING.\n");
    exit(-1);
  }

  // Read a file line by line.
  while((read = getline(&line, &len, file)) != -1) {

    pos = 0;

    // Iterate through each character in the line, until we hit the NULL byte.
    while(line[pos] != '\0') {

      // set the current line position char in numeric form
      d = (short int) line[pos];

      // test numeric form of char if within 7-BIT ASCII range
      if(d < 0x0 || d > 0x7f) {
        fprintf(stdout, "OUT OF 7-BIT ASCII RANGE! : %02x\n", (unsigned char) line[pos]);
      }

      // move to the next position in the line
      pos++;
    }
  }

  // Clean up
  free(line);
  fclose(file);
}

int main(int argc, char **argv) {
  int i;

  // Iterate through all of the files given to us via command line
  for(i = 1; i < argc; i++) {
    read_file(argv[i]); // Call read_file for each given filename
  }

  return 0;
}

Keccak V Genesis Testing

Wednesday, January 2nd, 2019
     ..::[ Diana Coman's Keccak V Genesis ]::..

  Recently, diana_coman created a V Genesis of my vtron.  Up until this
point, it had been distributed in non-Vtronic form, as a simple tarball.  This
step to make it into a Genesis is important and necessary.  I applaud
diana_coman for taking the initiative.  diana_coman utilized my vtron version
V99994 [signature] as the Genesis [signature].  Additionally, she provides
a vpatch [signature] of the changes between V99994 and V99993 (the latest
release from mod6 on 2018.02.22).  Furthermore, there is a third vpatch
[signature] she released that alters my vtron to utilize keccak tools.  Lastly,
there is a Keccak V Starter Kit [signature] that is bundled up as well.

  The change to move to using the keccak tools is an important milestone as
TMSR~ breaks away from the heathen hashing algorithms, to using it's own Keccak
Tools.

  With excitement to try out the new vtree with the corresponding changes, I
went ahead and downloaded all the aforementioned files and setup a sandbox
to try it out.  What follows here is recreation of diana_coman's vpatches
for validation purposes, the building of diana_coman's Keccak Vtron, and a small
bit of happy-path testing.

This post will basically consist of the following parts:

  0x01: Setting Up Our Test Sandbox
  0x02: Vpatch Validation
  0x03: Building Keccak Vtron

0x01]: Setting Up Our Test Sandbox

// Let's create a sandbox directory to contain all of this:

mod6@gentoo ~ $ mkdir v_keccak
mod6@gentoo ~ $ cd v_keccak/

// Next, let's download all of the vpatches and seals from diana_coman's Ossasepia:

mod6@gentoo ~/v_keccak $ curl -sL "http://ossasepia.com/vpatches/v_mod6_genesis.vpatch" -O
mod6@gentoo ~/v_keccak $ curl -sL "http://ossasepia.com/vpatches/v_mod6_genesis.vpatch.diana_coman.sig" -O
mod6@gentoo ~/v_keccak $ curl -sL "http://ossasepia.com/vpatches/v_mod6_99993.vpatch" -O
mod6@gentoo ~/v_keccak $ curl -sL "http://ossasepia.com/vpatches/v_mod6_99993.vpatch.diana_coman.sig" -O
mod6@gentoo ~/v_keccak $ curl -sL "http://ossasepia.com/vpatches/v_keccak_vtools.vpatch" -O
mod6@gentoo ~/v_keccak $ curl -sL "http://ossasepia.com/vpatches/v_keccak_vtools.vpatch.diana_coman.sig" -O
mod6@gentoo ~/v_keccak $ curl -sL "http://ossasepia.com/vpatches/starter_v.zip" -O
mod6@gentoo ~/v_keccak $ curl -sL "http://ossasepia.com/vpatches/starter_v.zip.diana_coman.sig" -O

// Let's put everything where it's supposed to go in true vtron style;
// vptaches in 'patches', signature files in '.seals, and pubkeys in '.wot'

mod6@gentoo ~/v_keccak $ mkdir .wot

// Let's check, see what we're working with.
mod6@gentoo ~/v_keccak $ ls
starter_v.zip                  v_keccak_vtools.vpatch.diana_coman.sig  v_mod6_genesis.vpatch
starter_v.zip.diana_coman.sig  v_mod6_99993.vpatch                     v_mod6_genesis.vpatch.diana_coman.sig
v_keccak_vtools.vpatch         v_mod6_99993.vpatch.diana_coman.sig

// Move the vpatches into 'patches'
mod6@gentoo ~/v_keccak $ mv *.vpatch patches/
mod6@gentoo ~/v_keccak $ ls patches/
v_keccak_vtools.vpatch  v_mod6_99993.vpatch  v_mod6_genesis.vpatch

// Move the signatures into '.seals'
mod6@gentoo ~/v_keccak $ mv *.vpatch.diana_coman.sig .seals/
mod6@gentoo ~/v_keccak $ ls .seals/
v_keccak_vtools.vpatch.diana_coman.sig  v_mod6_99993.vpatch.diana_coman.sig  v_mod6_genesis.vpatch.diana_coman.sig

// Let's verify all of the files and their signatures:
mod6@gentoo ~/v_keccak $ for i in `ls patches`; do echo "Vpatch: patches/$i" && gpg --verify .seals/$i.diana_coman.sig patches/$i; done
Vpatch: patches/v_keccak_vtools.vpatch
gpg: Signature made Wed Nov 14 10:35:28 2018  using RSA key ID 390F999E
gpg: Good signature from "Diana Coman <office@dianacoman.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: E72D CCB7 3A5E 0669 4C5C  D781 D519 6EE6 390F 999E
Vpatch: patches/v_mod6_99993.vpatch
gpg: Signature made Wed Nov 14 10:06:15 2018  using RSA key ID 390F999E
gpg: Good signature from "Diana Coman <office@dianacoman.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: E72D CCB7 3A5E 0669 4C5C  D781 D519 6EE6 390F 999E
Vpatch: patches/v_mod6_genesis.vpatch
gpg: Signature made Tue Nov 13 20:10:22 2018  using RSA key ID 390F999E
gpg: Good signature from "Diana Coman <office@dianacoman.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: E72D CCB7 3A5E 0669 4C5C  D781 D519 6EE6 390F 999E
mod6@gentoo ~/v_keccak $ gpg --verify starter_v.zip.diana_coman.sig starter_v.zip
gpg: Signature made Wed Nov 14 10:39:50 2018  using RSA key ID 390F999E
gpg: Good signature from "Diana Coman <office@dianacoman.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: E72D CCB7 3A5E 0669 4C5C  D781 D519 6EE6 390F 999E

// Place diana_coman's pubkey in .wot
mod6@gentoo ~/v_keccak $ cp ~/pubkeys/diana_coman.asc .wot

---------------------------------------------------------------------------------

0x02]: Vpatch Validation

// Let's setup another little sandbox to replicate the vpatches diana_coman created:
mod6@gentoo ~/v_keccak $ mkdir check_diffs
mod6@gentoo ~/v_keccak $ cd check_diffs/
mod6@gentoo ~/v_keccak/check_diffs $ mkdir -p v99994 v99993

// Let's grab my published Vtrons from The Bitcoin Foundation website:
mod6@gentoo ~/v_keccak/check_diffs $ cd v99994; curl -sL "http://thebitcoin.foundation/v/V-20170317.tar.gz" -O ; curl -sL "http://thebitcoin.foundation/v/V-20170317.tar.gz.mod6.sig" -O ; cd ..
mod6@gentoo ~/v_keccak/check_diffs $ cd v99993; curl -sL "http://thebitcoin.foundation/v/V-20180222.tar.gz" -O ; curl -sL "http://thebitcoin.foundation/v/V-20180222.tar.gz.mod6.sig" -O ; cd ..

// Always check the signatures!
mod6@gentoo ~/v_keccak/check_diffs $ gpg --verify v99994/V-20170317.tar.gz.mod6.sig v99994/V-20170317.tar.gz
gpg: Signature made Fri Mar 17 19:25:29 2017  using RSA key ID B71EADAF
gpg: Good signature from "mod6 (mod6) <modsix@gmail.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 027A 8D7C 0FB8 A166 4372  0F40 7217 05A8 B71E ADAF
mod6@gentoo ~/v_keccak/check_diffs $ gpg --verify v99993/V-20180222.tar.gz.mod6.sig v99993/V-20180222.tar.gz
gpg: Signature made Thu Feb 22 21:19:30 2018  using RSA key ID B71EADAF
gpg: Good signature from "mod6 (mod6) <modsix@gmail.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 027A 8D7C 0FB8 A166 4372  0F40 7217 05A8 B71E ADAF

// Extract the tarballs into their respective directories
mod6@gentoo ~/v_keccak/check_diffs $ for i in `ls`; do cd $i; tar -xf V-201*.tar.gz; cd ..; done

// Start by going to the v99994 (older version from 2017.03.17)
mod6@gentoo ~/v_keccak/check_diffs $ cd v99994

// Let's match up the directory structure with diana_coman's: Add a 'v' subdir:
mod6@gentoo ~/v_keccak/check_diffs/v99994 $ mkdir -p a/v b/v

// Let's add all of the included files in diana_coman's 'v_mod6_genesis.vpatch':
mod6@gentoo ~/v_keccak/check_diffs/v99994 $ cp v.pl v_quick_start.txt v_users_manual.txt b/v/

// Now diff them with vdiff into their own output vpatch '99994_genesis.vpatch'
mod6@gentoo ~/v_keccak/check_diffs/v99994 $ vdiff a b > 99994_genesis.vpatch

// Finally, vdiff our genesis '99994_genesis.vpatch' to diana_coman's genesis 'v_mod6_genesis.vpatch'
mod6@gentoo ~/v_keccak/check_diffs/v99994 $ vdiff ../../patches/v_mod6_genesis.vpatch 99994_genesis.vpatch
mod6@gentoo ~/v_keccak/check_diffs/v99994 $

// Matches perfectly.  Excellent!

// Next let's create our own diff of v99994 to v99993 and compare it to diana_coman's:
mod6@gentoo ~/v_keccak/check_diffs/v99994 $ cd ../v99993

// Make our compare directories
mod6@gentoo ~/v_keccak/check_diffs/v99993 $ mkdir -p a/v b/v

// Let's copy in our v99994 files into 'a/v' (the old)
mod6@gentoo ~/v_keccak/check_diffs/v99993 $ cp -pv ../v99994/{v.pl,v_quick_start.txt,v_users_manual.txt} a/v
'../v99994/v.pl' -> 'a/v/v.pl'
'../v99994/v_quick_start.txt' -> 'a/v/v_quick_start.txt'
'../v99994/v_users_manual.txt' -> 'a/v/v_users_manual.txt'

// Let's copy in our v99993 files into 'b/v' (the new)
mod6@gentoo ~/v_keccak/check_diffs/v99993 $ cp -pv v.pl v_quick_start.txt v_users_manual.txt b/v
'v.pl' -> 'b/v/v.pl'
'v_quick_start.txt' -> 'b/v/v_quick_start.txt'
'v_users_manual.txt' -> 'b/v/v_users_manual.txt'

// Let's diff them with vdiff into our own output vpatch 'v99994_v99993.vpatch'
mod6@gentoo ~/v_keccak/check_diffs/v99993 $ vdiff a b > v99994_v99993.vpatch

// Finally vdiff my vpatch 'v99994_v99993.vpatch' against diana's distributed vpatch 'v_mod6_v99993.vpatch'
mod6@gentoo ~/v_keccak/check_diffs/v99993 $ vdiff ../../patches/v_mod6_99993.vpatch v99994_v99993.vpatch
mod6@gentoo ~/v_keccak/check_diffs/v99993 $

// Matches perfectly.  Excellent!

---------------------------------------------------------------------------------

0x03]: Building Keccak Vtron

// Unpack starter_v.zip (Archive and corresponding seal, already verified in section 0x02).

// Check which Ada version we have installed
mod6@gentoo ~/v_keccak $ gprbuild --version
GPRBUILD GPL 2015 (20150428) (x86_64-pc-linux-gnu)
Copyright (C) 2004-2015, Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

mod6@gentoo ~/v_keccak $ gnat --version
GNAT GPL 2015 (20150428-49)
Copyright (C) 1996-2015, Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

mod6@gentoo ~/v_keccak $ unzip starter_v.zip
Archive:  starter_v.zip
   creating: starter_v/
  inflating: starter_v/clean.sh
  inflating: starter_v/build.sh
   creating: starter_v/vtools/
  inflating: starter_v/vtools/vdiff.gpr
  inflating: starter_v/vtools/vpatch.gpr
  inflating: starter_v/vtools/Makefile
  inflating: starter_v/vtools/ksum.gpr
  inflating: starter_v/vtools/manifest
   creating: starter_v/v/
  inflating: starter_v/v/v.pl
  inflating: starter_v/v/v_quick_start.txt
  inflating: starter_v/v/manifest
   creating: starter_v/vtools/src/
  inflating: starter_v/vtools/src/bits.ads
  inflating: starter_v/vtools/src/keccak_c.adb
  inflating: starter_v/vtools/src/vpatch.adb
  inflating: starter_v/vtools/src/dir.c
  inflating: starter_v/vtools/src/util.c
  inflating: starter_v/vtools/src/keccak.h
  inflating: starter_v/vtools/src/diff.h
  inflating: starter_v/vtools/src/bits.adb
  inflating: starter_v/vtools/src/character_io.ads
  inflating: starter_v/vtools/src/context.c
  inflating: starter_v/vtools/src/smg_keccak.adb
  inflating: starter_v/vtools/src/character_io.adb
  inflating: starter_v/vtools/src/ksum.adb
  inflating: starter_v/vtools/src/analyze.c
  inflating: starter_v/vtools/src/keccak_c.ads
  inflating: starter_v/vtools/src/io.c
  inflating: starter_v/vtools/src/diff.c
  inflating: starter_v/vtools/src/smg_keccak.ads
  inflating: starter_v/vtools/src/system.h
   creating: starter_v/vtools/lib/
  inflating: starter_v/vtools/lib/hash.c
  inflating: starter_v/vtools/lib/cmpbuf.c
  inflating: starter_v/vtools/lib/progname.c
  inflating: starter_v/vtools/lib/filetype.h
  inflating: starter_v/vtools/lib/xalloc.c
  inflating: starter_v/vtools/lib/dirname.h
  inflating: starter_v/vtools/lib/filetype.c
  inflating: starter_v/vtools/lib/progname.h
  inflating: starter_v/vtools/lib/cmpbuf.h
  inflating: starter_v/vtools/lib/error.h
  inflating: starter_v/vtools/lib/error.c
  inflating: starter_v/vtools/lib/filenamecat.c
  inflating: starter_v/vtools/lib/dirname.c
  inflating: starter_v/vtools/lib/diffseq.h
  inflating: starter_v/vtools/lib/hash.h
  inflating: starter_v/vtools/lib/filenamecat.h
  inflating: starter_v/vtools/lib/xalloc.h
   creating: starter_v/vtools/obj/
 extracting: starter_v/vtools/obj/readme
mod6@gentoo ~/v_keccak $ cd starter_v
mod6@gentoo ~/v_keccak/starter_v $ ls
build.sh  clean.sh  v  vtools
mod6@gentoo ~/v_keccak/starter_v $ chmod +x build.sh
mod6@gentoo ~/v_keccak/starter_v $ ./build.sh
gcc -c diff.c
gcc -c progname.c
gcc -c dirname.c
gcc -c hash.c
gcc -c cmpbuf.c
gcc -c filenamecat.c
gcc -c filetype.c
gcc -c error.c
gcc -c xalloc.c
gcc -c dir.c
gcc -c analyze.c
gcc -c util.c
gcc -c context.c
gcc -c io.c
gcc -c bits.adb
gcc -c ksum.adb
gcc -c character_io.adb
gcc -c keccak_c.adb
gcc -c smg_keccak.adb
gprbind diff.bexch
gnatbind bits.ali ... -n
gcc -c b__diff.adb
ar cr libvdiff.a ...
ranlib libvdiff.a
gcc diff.o -o vdiff
gcc -c vpatch.adb
gprbind vpatch.bexch
gnatbind vpatch.ali
gcc -c b__vpatch.adb
gcc vpatch.o -o vpatch
vpatch.o: In function `vpatch__temp_file_name.3044':
vpatch.adb:(.text+0xbb1): warning: the use of `mktemp' is dangerous, better use `mkstemp'
gprbind ksum.bexch
gnatbind ksum.ali
gcc -c b__ksum.adb
gcc ksum.o -o ksum
Done.

// Compile complete.

mod6@gentoo ~/v_keccak/starter_v $ ls
build.sh  clean.sh  ksum  v  vdiff  vk.pl  vpatch  vtools
mod6@gentoo ~/v_keccak/starter_v $ ./vk.pl v
Dependent program not found! : vpatch

// Let's place the compiled binaries in our PATH
mod6@gentoo ~/v_keccak/starter_v $ su
Password:
gentoo starter_v # cp vdiff vpatch ksum /usr/bin/
gentoo starter_v # exit
exit

// Ok, now let's try and see if it can find the binaries it needs...
mod6@gentoo ~/v_keccak/starter_v $ ./vk.pl v
/home/mod6/v_keccak/starter_v/.wot directory does not exist.
See 'init' or 'sync' commands in 'help'.

// Ok, better!

mod6@gentoo ~/v_keccak/starter_v $ cd ..

// Let's place the version from the starter_v bundle where we can test it properly
// with keccak vpatches.

mod6@gentoo ~/v_keccak $ cp starter_v/vk.pl .
mod6@gentoo ~/v_keccak $ ./vk.pl v
################################################################################
#               ..::[ The Bitcoin Foundation: V ]::..                          #
#                                                                              #
#     Version: 99992 K                                                         #
#      Author: mod6                                                            #
# Fingerprint: 0x027A8D7C0FB8A16643720F40721705A8B71EADAF                      #
#                                                                              #
################################################################################
mod6@gentoo ~/v_keccak $ ./vk.pl p v vk v_keccak_vtools.vpatch
v_mod6_genesis.vpatch
  creating v/v.pl
  creating v/v_quick_start.txt
  creating v/v_users_manual.txt
v_mod6_99993.vpatch
  patching v/v.pl
  patching v/v_quick_start.txt
  patching v/v_users_manual.txt
v_keccak_vtools.vpatch
  patching v/v.pl
  patching v/v_quick_start.txt
  deleting v/v_users_manual.txt
mod6@gentoo ~/v_keccak $ cd vk
mod6@gentoo ~/v_keccak/vk $ ls
v
mod6@gentoo ~/v_keccak/vk $ cd v/
mod6@gentoo ~/v_keccak/vk/v $ ls
v.pl  v_quick_start.txt
mod6@gentoo ~/v_keccak/vk/v $ ksum v.pl ../../starter_v/vk.pl
115b06a799eae048ffbd18642234dc234e9bf879ebdedf0ed9b4be69a410187537b618d2b4b581954b89d1f63ef0925f9ff1ae26f0882c28f05d3a1fcdb1a732  v.pl
115b06a799eae048ffbd18642234dc234e9bf879ebdedf0ed9b4be69a410187537b618d2b4b581954b89d1f63ef0925f9ff1ae26f0882c28f05d3a1fcdb1a732  ../../starter_v/vk.pl

// Alright!  The press of diana_coman's keccak vpatches for her V genesis worked great,
// and produced the same ksum (keccak sum) as the original from the starter_v.zip archive.

----------------------------------------------

That's all for now, if or when I do some more work surrounding `vk.pl`, I'll
write it up and make another blog post about it.