edgecase
Do you even science, bro?
datafeed article 21
published: 2017-11-25
author: stjohn_piano
signed by author: no




GOAL: Compile bitcoind, run it, and be able to talk to it while it is running.


I'm going to use the codebase maintained by The Bitcoin Foundation.

This codebase is called TRB. TRB stands for The Real Bitcoin.

I'll use the latest version available, which is 0.5.4-RELEASE [x86-64].


The Bitcoin Foundation provides a compilation recipe.


Excerpt from the recipe:

PREFACE

What's contained with in this document is a HOWTO guide on building TRB [OFFLINE or ONLINE], The Bitcoin Reference Implementation maintained by The Bitcoin Foundation.

You will need an x86-64 Linux System. Gentoo, Ubuntu, and Debian have been tested with this HOWTO document. Keep in mind that you will need to have your system locale / language set to US-English. You also will need a minimum of 20Gb of disk space in the file system where you are going to do the build.

To build TRB, you are going to need some basic requirements on your system environment.

You also will need the following packages / binaries / tools on your system:

- bc
- gcc [version 4.x]
- g++ [version 4.x]
- GnuPG [version 1.4.x, 1.4.10 preferred]
- wget
- perl
- diff
- patch
- rsync
- sha512sum
- unzip
- bzip2 tools [including bzcat]



Log on to DigitalOcean (I already have an account).

Create new droplet ("droplet" is a DigitalOcean-specific term for a cloud server):
- Debian 7.11 x64
- $20/month, 2 GB / 2 CPUs, 40 GB SSD disk, 3 TB transfer
- datacentre region: New York
- add SSH key: aineko [previously uploaded key for my local machine]
- hostname: trb1

Droplet created. IP address: 104.131.66.253

Notes:
- I chose Debian because:
-- The preface said that the recipe had already been tested with this operating system.
-- I've worked a lot with Debian, a little with Ubuntu, and not at all with Gentoo.
- I chose an x64 version of Debian because the recipe specified an x86-64 Linux system (x64 is another term for x86-64).
- I chose New York because this will mean that the operating system image will probably be set to use the US-English system locale / language, as specified in the recipe.
- I chose the $20/month version because it had 2 GB RAM, which is probably enough to perform the compilation (if it isn't, I'll try again using a virtual machine with more RAM), and because it has a 40 GB disk, which is twice the specified minimum size (it's good to have some room to manoeuvre).


aineko:~ stjohnpiano$ ssh root@104.131.66.253

The authenticity of host '104.131.66.253 (104.131.66.253)' can't be established.
RSA key fingerprint is ad:e6:85:13:92:ad:48:40:25:c2:70:be:5e:f9:40:ac.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '104.131.66.253' (RSA) to the list of known hosts.
Linux trb1 3.2.0-4-amd64 #1 SMP Debian 3.2.93-1 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@trb1:~#


root@trb1:~# cat /etc/os-release

PRETTY_NAME="Debian GNU/Linux 7 (wheezy)"
NAME="Debian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support/"
BUG_REPORT_URL="http://bugs.debian.org/"


[Linux kernel release]
root@trb1:~# uname -r

3.2.0-4-amd64


root@trb1:~# uname -a

Linux trb1 3.2.0-4-amd64 #1 SMP Debian 3.2.93-1 x86_64 GNU/Linux




Next: Check whether the necessary tools are available on the system.


root@trb1:~# bc --version

bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.


root@trb1:~# man bc


NAME
bc - An arbitrary precision calculator language

[...]

DESCRIPTION
bc is a language that supports arbitrary precision numbers with interactive execution of statements. There are some similarities in the syntax to the C programming language. A standard math library is available by command line option. If requested, the math library is defined before processing any files.

[...]

This version of bc contains several extensions beyond traditional bc implementations and the POSIX draft standard. Command line options can cause these extensions to print a warning or to be rejected. This document describes the language accepted by this processor. Extensions will be identified as such.

[...]

AUTHOR
Philip A. Nelson
philnelson@acm.org

ACKNOWLEDGEMENTS
The author would like to thank Steve Sommars (Steve.Sommars@att.com) for his extensive help in testing the implementation. Many great suggestions were given. This is a much better product due to his involvement.

GNU Project
2006-06-11
bc(1)



root@trb1:~# gcc --version

-bash: gcc: command not found


gcc stands for GNU Compiler Collection.


Excerpt from:
www.digitalocean.com/community/tutorials/how-to-compile-and-install-packages-from-source-using-make-on-a-vps

To compile sources on Linux, you will need the package called "build-essential" on Debian-based systems and "Development Tools" on CentOS, as it contains the gcc/g++ compilers and libraries required to compile packages. To install this on Debian and Ubuntu run:

apt-get install build-essential



root@trb1:~# apt-get install build-essential

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
cpp cpp-4.7 dpkg-dev fakeroot g++ g++-4.7 gcc gcc-4.7 libalgorithm-diff-perl
libalgorithm-diff-xs-perl libalgorithm-merge-perl libc-dev-bin libc6-dev
libdpkg-perl libfile-fcntllock-perl libgmp10 libgomp1 libitm1 libmpc2
libmpfr4 libquadmath0 libstdc++6-4.7-dev libtimedate-perl linux-libc-dev
make manpages-dev
Suggested packages:
cpp-doc gcc-4.7-locales debian-keyring g++-multilib g++-4.7-multilib
gcc-4.7-doc libstdc++6-4.7-dbg gcc-multilib autoconf automake1.9 libtool
flex bison gdb gcc-doc gcc-4.7-multilib libmudflap0-4.7-dev libgcc1-dbg
libgomp1-dbg libitm1-dbg libquadmath0-dbg libmudflap0-dbg libcloog-ppl0
libppl-c2 libppl7 binutils-gold glibc-doc libstdc++6-4.7-doc make-doc
The following NEW packages will be installed:
build-essential cpp cpp-4.7 dpkg-dev fakeroot g++ g++-4.7 gcc gcc-4.7
libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
libc-dev-bin libc6-dev libdpkg-perl libfile-fcntllock-perl libgmp10 libgomp1
libitm1 libmpc2 libmpfr4 libquadmath0 libstdc++6-4.7-dev libtimedate-perl
linux-libc-dev make manpages-dev
0 upgraded, 27 newly installed, 0 to remove and 0 not upgraded.
Need to get 33.0 MB of archives.
After this operation, 82.5 MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://mirrors.digitalocean.com/debian/ wheezy/main libgmp10 amd64 2:5.0.5+dfsg-2 [250 kB]
Get:2 http://mirrors.digitalocean.com/debian/ wheezy/main libgomp1 amd64 4.7.2-5 [27.5 kB]
Get:3 http://mirrors.digitalocean.com/debian/ wheezy/main libitm1 amd64 4.7.2-5 [36.6 kB]
Get:4 http://mirrors.digitalocean.com/debian/ wheezy/main libmpfr4 amd64 3.1.0-5 [538 kB]
Get:5 http://mirrors.digitalocean.com/debian/ wheezy/main libquadmath0 amd64 4.7.2-5 [125 kB]
Get:6 http://mirrors.digitalocean.com/debian/ wheezy/main libmpc2 amd64 0.9-4 [40.1 kB]
Get:7 http://mirrors.digitalocean.com/debian/ wheezy/main cpp-4.7 amd64 4.7.2-5 [5,416 kB]
Get:8 http://security.debian.org/ wheezy/updates/main libc-dev-bin amd64 2.13-38+deb7u12 [228 kB]
Get:9 http://mirrors.digitalocean.com/debian/ wheezy/main cpp amd64 4:4.7.2-1 [16.6 kB]
Get:10 http://mirrors.digitalocean.com/debian/ wheezy/main gcc-4.7 amd64 4.7.2-5 [8,296 kB]
Get:11 http://security.debian.org/ wheezy/updates/main linux-libc-dev amd64 3.2.93-1 [874 kB]
Get:12 http://mirrors.digitalocean.com/debian/ wheezy/main gcc amd64 4:4.7.2-1 [5,064 B]
Get:13 http://mirrors.digitalocean.com/debian/ wheezy/main libstdc++6-4.7-dev amd64 4.7.2-5 [1,726 kB]
Get:14 http://mirrors.digitalocean.com/debian/ wheezy/main g++-4.7 amd64 4.7.2-5 [8,011 kB]
Get:15 http://mirrors.digitalocean.com/debian/ wheezy/main g++ amd64 4:4.7.2-1 [1,374 B]
Get:16 http://mirrors.digitalocean.com/debian/ wheezy/main make amd64 3.81-8.2 [396 kB]
Get:17 http://mirrors.digitalocean.com/debian/ wheezy/main libtimedate-perl all 1.2000-1 [41.2 kB]
Get:18 http://mirrors.digitalocean.com/debian/ wheezy/main libdpkg-perl all 1.16.18 [966 kB]
Get:19 http://security.debian.org/ wheezy/updates/main libc6-dev amd64 2.13-38+deb7u12 [2,663 kB]
Get:20 http://mirrors.digitalocean.com/debian/ wheezy/main dpkg-dev all 1.16.18 [1,366 kB]
Get:21 http://mirrors.digitalocean.com/debian/ wheezy/main build-essential amd64 11.5 [7,178 B]
Get:22 http://mirrors.digitalocean.com/debian/ wheezy/main fakeroot amd64 1.18.4-2 [109 kB]
Get:23 http://mirrors.digitalocean.com/debian/ wheezy/main libalgorithm-diff-perl all 1.19.02-2 [51.5 kB]
Get:24 http://mirrors.digitalocean.com/debian/ wheezy/main libalgorithm-diff-xs-perl amd64 0.04-2+b1 [12.9 kB]
Get:25 http://mirrors.digitalocean.com/debian/ wheezy/main libalgorithm-merge-perl all 0.08-2 [13.5 kB]
Get:26 http://mirrors.digitalocean.com/debian/ wheezy/main libfile-fcntllock-perl amd64 0.14-2 [17.2 kB]
Get:27 http://mirrors.digitalocean.com/debian/ wheezy/main manpages-dev all 3.44-1 [1,737 kB]
Fetched 33.0 MB in 1s (24.6 MB/s)
Selecting previously unselected package libgmp10:amd64.
(Reading database ... 30397 files and directories currently installed.)
Unpacking libgmp10:amd64 (from .../libgmp10_2%3a5.0.5+dfsg-2_amd64.deb) ...
Selecting previously unselected package libgomp1:amd64.
Unpacking libgomp1:amd64 (from .../libgomp1_4.7.2-5_amd64.deb) ...
Selecting previously unselected package libitm1:amd64.
Unpacking libitm1:amd64 (from .../libitm1_4.7.2-5_amd64.deb) ...
Selecting previously unselected package libmpfr4:amd64.
Unpacking libmpfr4:amd64 (from .../libmpfr4_3.1.0-5_amd64.deb) ...
Selecting previously unselected package libquadmath0:amd64.
Unpacking libquadmath0:amd64 (from .../libquadmath0_4.7.2-5_amd64.deb) ...
Selecting previously unselected package libmpc2:amd64.
Unpacking libmpc2:amd64 (from .../libmpc2_0.9-4_amd64.deb) ...
Selecting previously unselected package libc-dev-bin.
Unpacking libc-dev-bin (from .../libc-dev-bin_2.13-38+deb7u12_amd64.deb) ...
Selecting previously unselected package linux-libc-dev:amd64.
Unpacking linux-libc-dev:amd64 (from .../linux-libc-dev_3.2.93-1_amd64.deb) ...
Selecting previously unselected package libc6-dev:amd64.
Unpacking libc6-dev:amd64 (from .../libc6-dev_2.13-38+deb7u12_amd64.deb) ...
Selecting previously unselected package cpp-4.7.
Unpacking cpp-4.7 (from .../cpp-4.7_4.7.2-5_amd64.deb) ...
Selecting previously unselected package cpp.
Unpacking cpp (from .../cpp_4%3a4.7.2-1_amd64.deb) ...
Selecting previously unselected package gcc-4.7.
Unpacking gcc-4.7 (from .../gcc-4.7_4.7.2-5_amd64.deb) ...
Selecting previously unselected package gcc.
Unpacking gcc (from .../gcc_4%3a4.7.2-1_amd64.deb) ...
Selecting previously unselected package libstdc++6-4.7-dev.
Unpacking libstdc++6-4.7-dev (from .../libstdc++6-4.7-dev_4.7.2-5_amd64.deb) ...
Selecting previously unselected package g++-4.7.
Unpacking g++-4.7 (from .../g++-4.7_4.7.2-5_amd64.deb) ...
Selecting previously unselected package g++.
Unpacking g++ (from .../g++_4%3a4.7.2-1_amd64.deb) ...
Selecting previously unselected package make.
Unpacking make (from .../make_3.81-8.2_amd64.deb) ...
Selecting previously unselected package libtimedate-perl.
Unpacking libtimedate-perl (from .../libtimedate-perl_1.2000-1_all.deb) ...
Selecting previously unselected package libdpkg-perl.
Unpacking libdpkg-perl (from .../libdpkg-perl_1.16.18_all.deb) ...
Selecting previously unselected package dpkg-dev.
Unpacking dpkg-dev (from .../dpkg-dev_1.16.18_all.deb) ...
Selecting previously unselected package build-essential.
Unpacking build-essential (from .../build-essential_11.5_amd64.deb) ...
Selecting previously unselected package fakeroot.
Unpacking fakeroot (from .../fakeroot_1.18.4-2_amd64.deb) ...
Selecting previously unselected package libalgorithm-diff-perl.
Unpacking libalgorithm-diff-perl (from .../libalgorithm-diff-perl_1.19.02-2_all.deb) ...
Selecting previously unselected package libalgorithm-diff-xs-perl.
Unpacking libalgorithm-diff-xs-perl (from .../libalgorithm-diff-xs-perl_0.04-2+b1_amd64.deb) ...
Selecting previously unselected package libalgorithm-merge-perl.
Unpacking libalgorithm-merge-perl (from .../libalgorithm-merge-perl_0.08-2_all.deb) ...
Selecting previously unselected package libfile-fcntllock-perl.
Unpacking libfile-fcntllock-perl (from .../libfile-fcntllock-perl_0.14-2_amd64.deb) ...
Selecting previously unselected package manpages-dev.
Unpacking manpages-dev (from .../manpages-dev_3.44-1_all.deb) ...
Processing triggers for man-db ...
Setting up libgmp10:amd64 (2:5.0.5+dfsg-2) ...
Setting up libgomp1:amd64 (4.7.2-5) ...
Setting up libitm1:amd64 (4.7.2-5) ...
Setting up libmpfr4:amd64 (3.1.0-5) ...
Setting up libquadmath0:amd64 (4.7.2-5) ...
Setting up libmpc2:amd64 (0.9-4) ...
Setting up libc-dev-bin (2.13-38+deb7u12) ...
Setting up linux-libc-dev:amd64 (3.2.93-1) ...
Setting up libc6-dev:amd64 (2.13-38+deb7u12) ...
Setting up cpp-4.7 (4.7.2-5) ...
Setting up cpp (4:4.7.2-1) ...
Setting up gcc-4.7 (4.7.2-5) ...
Setting up gcc (4:4.7.2-1) ...
Setting up make (3.81-8.2) ...
Setting up libtimedate-perl (1.2000-1) ...
Setting up libdpkg-perl (1.16.18) ...
Setting up dpkg-dev (1.16.18) ...
Setting up fakeroot (1.18.4-2) ...
update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
Setting up libalgorithm-diff-perl (1.19.02-2) ...
Setting up libalgorithm-diff-xs-perl (0.04-2+b1) ...
Setting up libalgorithm-merge-perl (0.08-2) ...
Setting up libfile-fcntllock-perl (0.14-2) ...
Setting up manpages-dev (3.44-1) ...
Setting up g++-4.7 (4.7.2-5) ...
Setting up g++ (4:4.7.2-1) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
Setting up build-essential (11.5) ...
Setting up libstdc++6-4.7-dev (4.7.2-5) ...



root@trb1:~# gcc --version

gcc (Debian 4.7.2-5) 4.7.2
Copyright (C) 2012 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.

root@trb1:~# g++ --version

g++ (Debian 4.7.2-5) 4.7.2
Copyright (C) 2012 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.

root@trb1:~# man gcc

No manual entry for gcc
See 'man 7 undocumented' for help when manual pages are not available.

root@trb1:~# which man

/usr/bin/man

root@trb1:~# man --version

man 2.6.2



Why isn't there a manual entry for gcc?


Excerpt from:
unix.stackexchange.com/questions/42474/find-and-install-man-file-manually

Q:

Find and install man file manually

I seem to be missing some man pages, notably gcc and g++. It doesn't help that I specify the section.
whereis
doesn't list man pages for those two, so I think they are simply not there.

With Google I get a lot, for example: http://linux.die.net/man/1/g++ (seems to be ordinary HTML though... or is it man page markup?)

I thought this would be a good opportunity to learn how to replace them manually. I guess I'm looking for a gcc.1.gz file?

Do I get it from GNU, from Debian, or could it be automated somehow? How much work is put into those files - if I get one, is it likely to be 99% correct or do they really differ a lot with time/architecture?

asked Jul 6 '12 at 16:29
Emanuel Berg


A:

You should add the
non-free
and
contrib
repositories to your sources list and
run apt-get update
afterwards.

Now you can install the
gcc-doc
package which contains the man-pages with:

apt-get install gcc-doc


The problem is that the gcc documentation is released under the GNU Free Documentation License which is considered non-free by Debian.

edited Jun 29 '15 at 16:26
k4rtik

answered Jul 6 '12 at 16:48
Ulrich Dangel


A:

Many GNU projects, including GCC, license their documentation under the GNU Free Documentation License. There is a long-standing dispute between the Free Software Foundation and the Debian project, which considers the GFDL to be non-free, mostly because it can forbid some sections of the documentation from being modified.

For this reason, the GCC documentation is not included in the Debian distribution itself. It is, however, distributed by the Debian project as part of the "non-free" repository. That the non-free repository is officially supported by Debian but not officially part of Debian is the result of much debate and compromise inside the Debian project.

You can search on the Debian website for a package containing the file
g++.1
(select "packages that contain files whose names contain the keyword", because the man page is actually compressed so the file name is
g++.1.gz
). You'll find it in the gcc-VERSION-doc package, which is a meta-package in the contrib repository that depends on the gcc-VERSION-doc package in the non-free repository.

On your machine, make sure that you have the contrib and non-free repositories enabled. Your
/etc/apt/sources.list
should contain a line like

deb http://ftp.debian.org/debian squeeze main non-free contrib


or multiple lines like

deb http://ftp.debian.org/debian squeeze main
deb http://ftp.debian.org/debian squeeze contrib
deb http://ftp.debian.org/debian squeeze non-free


If you modify
/etc/apt/sources.list
, run
apt-get update
as root afterwards. Once you have these repositories in your sources, you can use apt-file to search for the package containing a file by name. You need to run
apt-file update
as root after installing the program or modifying the sources list.

apt-file search g++.1


Once you find what package the file you want is in (as indicated above, you want the
g++-doc
package), use
apt-get install g++-doc
or whatever your favorite package manager is.

answered Jul 7 '12 at 0:35
Gilles



root@trb1:~# cat /etc/apt/sources.list

#

# deb cdrom:[Debian GNU/Linux 7.11.0 _Wheezy_ - Official amd64 NETINST Binary-1 20160605-17:36]/ wheezy main

#deb cdrom:[Debian GNU/Linux 7.11.0 _Wheezy_ - Official amd64 NETINST Binary-1 20160605-17:36]/ wheezy main

deb http://mirrors.digitalocean.com/debian wheezy main
deb-src http://mirrors.digitalocean.com/debian wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main



Excerpt from:
wiki.debian.org/SourcesList

main consists of DFSG-compliant packages, which do not rely on software outside this area to operate. These are the only packages considered part of the Debian distribution.

contrib packages contain DFSG-compliant software, but have dependencies not in main (possibly packaged for Debian in non-free).

non-free contains software that does not comply with the DFSG.



I'll cope without the documentation for gcc and g++ for now.


The program name for GnuPG is gpg.


root@trb1:~# gpg --version

gpg (GnuPG) 1.4.12
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128,
CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2


root@trb1:~# wget --version

GNU Wget 1.13.4 built on linux-gnu.

+digest +https +ipv6 +iri +large-file +nls -ntlm +opie +ssl/gnutls

Wgetrc:
/etc/wgetrc (system)
Locale: /usr/share/locale
Compile: gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/etc/wgetrc"
-DLOCALEDIR="/usr/share/locale" -I. -I../lib -I../lib
-D_FORTIFY_SOURCE=2 -Iyes/include -g -O2 -fstack-protector
--param=ssp-buffer-size=4 -Wformat -Werror=format-security
-DNO_SSLv2 -D_FILE_OFFSET_BITS=64 -g -Wall
Link: gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat
-Werror=format-security -DNO_SSLv2 -D_FILE_OFFSET_BITS=64 -g -Wall
-Wl,-z,relro -Lyes/lib -lgnutls -lgcrypt -lgpg-error -lz -lidn -lrt
ftp-opie.o gnutls.o ../lib/libgnu.a

Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Originally written by Hrvoje Niksic <hniksic@xemacs.org>.
Please send bug reports and questions to <bug-wget@gnu.org>.


root@trb1:~# perl --version


This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi
(with 104 registered patches, see perl -V for more detail)

Copyright 1987-2011, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.


root@trb1:~# diff --version

diff (GNU diffutils) 3.2
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Paul Eggert, Mike Haertel, David Hayes,
Richard Stallman, and Len Tower.


root@trb1:~# patch --version

patch 2.6.1
Copyright (C) 1988 Larry Wall
Copyright (C) 2003, 2009 Free Software Foundation, Inc.

This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of this program
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

written by Larry Wall and Paul Eggert


root@trb1:~# rsync --version

rsync version 3.0.9 protocol version 30
Copyright (C) 1996-2011 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes

rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.


root@trb1:~# sha512sum --version

sha512sum (GNU coreutils) 8.13
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Ulrich Drepper, Scott Miller, and David Madore.


root@trb1:~# unzip --version

caution: both -n and -o specified; ignoring -o
UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.

Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
Default action is to extract files in list, except those in xlist, to exdir;
file[.zip] may be a wildcard. -Z => ZipInfo mode ("unzip -Z" for usage).

-p extract files to pipe, no messages -l list files (short format)
-f freshen existing files, create none -t test compressed archive data
-u update files, create if necessary -z display archive comment only
-v list verbosely/show version info -T timestamp archive to latest
-x exclude files that follow (in xlist) -d extract files into exdir
modifiers:
-n never overwrite existing files -q quiet mode (-qq => quieter)
-o overwrite files WITHOUT prompting -a auto-convert any text files
-j junk paths (do not make directories) -aa treat ALL files as text
-U use escapes for all non-ASCII Unicode -UU ignore any Unicode fields
-C match filenames case-insensitively -L make (some) names lowercase
-X restore UID/GID info -V retain VMS version numbers
-K keep setuid/setgid/tacky permissions -M pipe through "more" pager
See "unzip -hh" or unzip.txt for more help. Examples:
unzip data1 -x joe => extract all files except joe from zipfile data1.zip
unzip -p foo | more => send contents of foo.zip via pipe into program more
unzip -fo foo ReadMe => quietly replace existing ReadMe if archive file newer


root@trb1:~# bzip2 --version

bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010.

Copyright (C) 1996-2010 by Julian Seward.

This program is free software; you can redistribute it and/or modify
it under the terms set out in the LICENSE file, which is included
in the bzip2-1.0.6 source distribution.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
LICENSE file for more details.


root@trb1:~# bzcat --version

bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010.

Copyright (C) 1996-2010 by Julian Seward.

This program is free software; you can redistribute it and/or modify
it under the terms set out in the LICENSE file, which is included
in the bzip2-1.0.6 source distribution.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
LICENSE file for more details.




root@trb1:~# man bzip2


NAME
bzip2, bunzip2 - a block-sorting file compressor, v1.0.6
bzcat - decompresses files to stdout
bzip2recover - recovers data from damaged bzip2 files

[...]

DESCRIPTION
bzip2 compresses files using the Burrows-Wheeler block sorting text compression algorithm, and Huffman coding. Compression is generally considerably better than that achieved by more conventional LZ77/LZ78-based compressors, and approaches the performance of the PPM family of statistical compressors.

The command-line options are deliberately very similar to those of GNU gzip, but they are not identical.



Looks like I've got everything that was outlined in the preface.



I'm going to follow the steps for making an offline build of trb.



Excerpt from the recipe [link]:

Bitcoin Reference Implementation: OFFLINE BUILD

0x01) make a new trb directory: `mkdir trb`
0x02) `cd trb`
0x03) Get http://thebitcoin.foundation/v/V-20170317.tar.gz
0x04) Get http://thebitcoin.foundation/v/V-20170317.tar.gz.mod6.sig
0x05) `mkdir .wot`
0x06) Get the following keys from deedbot [freenode.net], and place them in '.wot':

[ /msg deedbot !!key asciilifeform ]
[ /msg deedbot !!key ben_vulpes ]
[ /msg deedbot !!key mircea_popescu ]
[ /msg deedbot !!key mod6 ]
[ /msg deedbot !!key trinque ]

Save the PGP public keys and name them as follows:

asciilifeform.asc
ben_vulpes.asc
mircea_popescu.asc
mod6.asc
trinque.asc

`gpg --import mod6.asc`

`mv asciilifeform.asc ben_vulpes.asc mircea_popescu.asc mod6.asc trinque.asc .wot`

0x07) `gpg --verify V-20170317.tar.gz.mod6.sig V-20170317.tar.gz`
0x08) `tar -xf V-20170317.tar.gz`

0x09) `mkdir patches`

Gather trb vpatches from http://thebitcoin.foundation/v/patches
in which ever manner suits you best.

Place all vpatches into the 'patches' directory.

0x0A) `mkdir .seals`

Gather trb seals from http://thebitcoin.foundation/v/seals
in which ever manner suits you best.

Place seals into the '.seals' directory.

0x0B) `./v.pl p v trb54 makefiles.vpatch`
0x0C) `cd trb54/bitcoin`

0x0D) Get http://deedbot.org/deed-430460-2.txt : name it 'rotor.tar.gz.asc'
0x0E) Get http://deedbot.org/deed-430460-1.txt : name it 'rotor-db-configure-fix.patch.asc'
0x0F) Get http://deedbot.org/deed-422651-1.txt : name it 'boost_1_52_0.tar.bz2.asc'
0x10) Get http://deedbot.org/deed-422651-2.txt : name it 'buildroot-2015.05.tar.gz.asc'
0x11) Get http://deedbot.org/deed-422651-3.txt : name it 'db-4.8.30.tar.gz.asc'
0x12) Get http://deedbot.org/deed-422651-4.txt : name it 'openssl-1.0.1g.tar.gz.asc'
0x13) Get http://deedbot.org/deed-427443-1.txt : name it 'binutils-2.24.tar.bz2.asc'
0x14) Get http://deedbot.org/deed-427443-2.txt : name it 'busybox-1.23.2.tar.bz2.asc'
0x15) Get http://deedbot.org/deed-427443-3.txt : name it 'expat-2.1.0.tar.gz.asc'
0x16) Get http://deedbot.org/deed-427443-4.txt : name it 'fakeroot_1.18.4.orig.tar.bz2.asc'
0x17) Get http://deedbot.org/deed-427443-5.txt : name it 'gcc-4.9.2.tar.bz2.asc'
0x18) Get http://deedbot.org/deed-427443-6.txt : name it 'gdb-7.8.2.tar.xz.asc'
0x19) Get http://deedbot.org/deed-427443-7.txt : name it 'gmp-6.0.0a.tar.xz.asc'
0x1A) Get http://deedbot.org/deed-427443-8.txt : name it 'linux-3.18.14.tar.xz.asc'
0x1B) Get http://deedbot.org/deed-427443-9.txt : name it 'm4-1.4.17.tar.xz.asc'
0x1C) Get http://deedbot.org/deed-427443-10.txt : name it 'mpc-1.0.3.tar.gz.asc'
0x1D) Get http://deedbot.org/deed-427443-11.txt : name it 'mpfr-3.1.2.tar.xz.asc'
0x1E) Get http://deedbot.org/deed-427443-12.txt : name it 'musl-1.1.8.tar.gz.asc'
0x1F) Get http://deedbot.org/deed-427443-13.txt : name it 'ncurses-5.9.tar.gz.asc'
0x20) Get http://deedbot.org/deed-427443-14.txt : name it 'pkgconf-0.8.9.tar.bz2.asc'

0x21) Place the signed deed files (0D-20) into the 'deps' directory:

`
mv \
rotor.tar.gz.asc \
rotor-db-configure-fix.patch.asc \
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 \
deps
`

0x22) `make`
0x23) Upon successful build, `bitcoind' will be placed in 'trb54/bitcoin/bin'

Be sure to visit the Advertised Republican Nodes [http://thebitcoin.foundation/trusted-nodes.html] page to connect to other TRB nodes.

Start up example:
LC_ALL=C nohup ./bitcoind -myip=<yourip> -addnode=trusted_node_1 -addnode=trusted_node_2 -verifyall 2>&1 &



root@trb1:~# pwd

/root

root@trb1:~# ls


root@trb1:~# mkdir trb


root@trb1:~# cd trb


root@trb1:~/trb# wget http://thebitcoin.foundation/v/V-20170317.tar.gz

--2017-11-19 11:59:53-- http://thebitcoin.foundation/v/V-20170317.tar.gz
Resolving thebitcoin.foundation (thebitcoin.foundation)... 108.61.199.188
Connecting to thebitcoin.foundation (thebitcoin.foundation)|108.61.199.188|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 16083 (16K) [application/x-gzip]
Saving to: `V-20170317.tar.gz'

100%[======================================>] 16,083 --.-K/s in 0.08s

2017-11-19 11:59:53 (197 KB/s) - `V-20170317.tar.gz' saved [16083/16083]

root@trb1:~/trb# wget http://thebitcoin.foundation/v/V-20170317.tar.gz.mod6.sig

--2017-11-19 12:00:15-- http://thebitcoin.foundation/v/V-20170317.tar.gz.mod6.sig
Resolving thebitcoin.foundation (thebitcoin.foundation)... 108.61.199.188
Connecting to thebitcoin.foundation (thebitcoin.foundation)|108.61.199.188|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 834 [application/pgp-signature]
Saving to: `V-20170317.tar.gz.mod6.sig'

100%[======================================>] 834 --.-K/s in 0s

2017-11-19 12:00:15 (119 MB/s) - `V-20170317.tar.gz.mod6.sig' saved [834/834]

root@trb1:~/trb# mkdir .wot




Browse to freenode.net
- Click Knowledge Base [links to http://freenode.net/kb/all]
-- Click Finding Channels [links to http://freenode.net/kb/answer/findingchannels]
--- Finding Channels on freenode
With many thousands of channels on freenode and more being registered all the time, a good way to search for channels of interest to you is useful.
Enter
alis
, a network service designed for exactly that purpose.
At the most simple, you can use
/msg alis LIST *searchterm*
to find channels whose name contains the term in question - for instance,
/msg alis LIST *linux*
.
- Click Chat [links to http://webchat.freenode.net]
-- Nickname: stjohn_piano
-- Channels: freenode
-- No tick for Auth to services
-- Tick for captcha
-- Click Connect


A channel tab has been opened called #freenode. People are chatting. Here's what I see:

#freenode: Welcome to #freenode - You are welcome to message staff at any time, and you can find us using '/who freenode/staff/*' or '/stats p' to see if any staff is marked as immediately available. | Experiencing PM spam? Please report via PM to staff (not in the channel: a utility bot might catch you!) and '/mode yournick +R' might help.
[12:40] == stjohn_piano [520bb8b8@gateway/web/freenode/ip.[DELETED]] has joined #freenode
[12:40] <ryonaloli> with the potential to be far more accurate than humans in such detection (though right now it's a more simple setup, simply detecting unpredictability)
[12:40] <ryonaloli> jk: proof, or references? i can't show you empirical proof because i do not have such a system on hand to experiment with
[12:40] <`1997kB> what if someone hacked a self driving car?
[12:40] <ryonaloli> `1997kB: what if someone hacked a regular car?
[12:40] <r3kz> not the same
[12:40] <jk> Bottom line is, as a programmer, I will never trust someone else's shitty code in a car. I wouldn't trust my own code driving my car for that mater
[12:40] <ryonaloli> a self driving car and a regular modern car can both be controlled completely
[12:41] <letty> havent you seem teerminator 3?
[12:41] <letty> terminator* :s


Note: I have replaced my IP address with [DELETED].

There is a box at the bottom of the screen containing this message:
"chat here! you can also use commands, like /JOIN or /HELP"

I'll enter the command:
/msg alis LIST *deedbot*


hm. The output may have been public, as it's mixed into the other output in the channel.

[12:46] <purpleunicorn_> Self driving seems more vulnerable at getting hacked into bc it's so technical but it'll definitely have better reaction times
[12:46] *alis* LIST *deedbot*
[12:46] -alis- Returning maximum of 60 channel names matching '*deedbot*'
[12:46] -alis- #deedbot 1
[12:46] -alis- End of output
[12:46] <`1997kB> because i like driving, There will be no fun Id we just sit and watch driving Robots.
[12:46] <jk> I mean, look at companies that have a lot of electronics in a normal car. Like BMW. Those things are riddled with electrical issues


On the other hand, I know that it is possible to send private messages on IRC channels, so it's probable that the output was only sent to me and the other participants in the channel did not see it.

There is another tab named Status. There's also an entry box at the bottom.
I'll enter the command:
/msg alis LIST *deedbot*


[12:49] *alis* LIST *deedbot*
[12:49] -alis- Returning maximum of 60 channel names matching '*deedbot*'
[12:49] -alis- #deedbot 1
[12:49] -alis- End of output


Cool.

The #freenode tab has a small x in the top right corner. Click the x. The tab closes.

In the Status tab, in the entry box, I'll enter the command:
/join #deedbot


New tab opens, called #deedbot.

Enter command:
/msg deedbot !!key asciilifeform


New tab opens, called deedbot. Note the lack of #. I think this is the log of private messages between me and deedbot.

Output in deedbot tab:
[12:53] <deedbot> http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.asc


Browse to
http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.asc

Result:

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=LdtH
-----END PGP PUBLIC KEY BLOCK-----



In deedbot tab, enter these commands, pausing after each one for deedbot to reply.
/msg deedbot !!key ben_vulpes
/msg deedbot !!key mircea_popescu
/msg deedbot !!key mod6
/msg deedbot !!key trinque



All output on deedbot tab:

[12:53] <deedbot> http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.asc
[12:58] <stjohn_piano> !!key ben_vulpes
[12:58] <deedbot> http://wot.deedbot.org/4F7907942CA8B89B01E25A762AFA1A9FD2D031DA.asc
[12:59] <stjohn_piano> !!key mircea_popescu
[13:00] <deedbot> http://wot.deedbot.org/6160E1CAC8A3C52966FD76998A736F0E2FB7B452.asc
[13:00] <stjohn_piano> !!key mod6
[13:00] <deedbot> http://wot.deedbot.org/027A8D7C0FB8A16643720F40721705A8B71EADAF.asc
[13:00] <stjohn_piano> !!key trinque
[13:00] <deedbot> http://wot.deedbot.org/FC66C0C5D98C42A1D4A98B6B42F9985AFAB953C4.asc



Close all tabs on http://webchat.freenode.net (deedbot, #deedbot, and Status).

hm. Status doesn't have the little x. Close the browser tab.


On DigitalOcean droplet:

I'm going to use the wget command in the following format:
wget -O FILE URL

This should go to the URL, get the data, and save it in the specified file.

I'll construct the commands in my log file (the text file that will become this article):

wget -O asciilifeform.asc http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.asc

wget -O ben_vulpes.asc http://wot.deedbot.org/4F7907942CA8B89B01E25A762AFA1A9FD2D031DA.asc

wget -O mircea_popescu.asc http://wot.deedbot.org/6160E1CAC8A3C52966FD76998A736F0E2FB7B452.asc

wget -O mod6.asc http://wot.deedbot.org/027A8D7C0FB8A16643720F40721705A8B71EADAF.asc

wget -O trinque.asc http://wot.deedbot.org/FC66C0C5D98C42A1D4A98B6B42F9985AFAB953C4.asc



And then run them:


root@trb1:~/trb# wget -O asciilifeform.asc http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.asc

--2017-11-19 13:07:33-- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.asc
Resolving wot.deedbot.org (wot.deedbot.org)... 45.32.123.240
Connecting to wot.deedbot.org (wot.deedbot.org)|45.32.123.240|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5405 (5.3K) [text/plain]
Saving to: `asciilifeform.asc'

100%[======================================>] 5,405 20.3K/s in 0.3s

2017-11-19 13:07:33 (20.3 KB/s) - `asciilifeform.asc' saved [5405/5405]

root@trb1:~/trb# ls -1

asciilifeform.asc
V-20170317.tar.gz
V-20170317.tar.gz.mod6.sig

root@trb1:~/trb# ls -1a

.
..
asciilifeform.asc
V-20170317.tar.gz
V-20170317.tar.gz.mod6.sig
.wot

root@trb1:~/trb# wget -O ben_vulpes.asc http://wot.deedbot.org/4F7907942CA8B89B01E25A762AFA1A9FD2D031DA.asc

--2017-11-19 13:12:52-- http://wot.deedbot.org/4F7907942CA8B89B01E25A762AFA1A9FD2D031DA.asc
Resolving wot.deedbot.org (wot.deedbot.org)... 45.32.123.240
Connecting to wot.deedbot.org (wot.deedbot.org)|45.32.123.240|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6380 (6.2K) [text/plain]
Saving to: `ben_vulpes.asc'

100%[======================================>] 6,380 23.8K/s in 0.3s

2017-11-19 13:12:53 (23.8 KB/s) - `ben_vulpes.asc' saved [6380/6380]

root@trb1:~/trb# wget -O mircea_popescu.asc http://wot.deedbot.org/6160E1CAC8A3C52966FD76998A736F0E2FB7B452.asc

--2017-11-19 13:13:03-- http://wot.deedbot.org/6160E1CAC8A3C52966FD76998A736F0E2FB7B452.asc
Resolving wot.deedbot.org (wot.deedbot.org)... 45.32.123.240
Connecting to wot.deedbot.org (wot.deedbot.org)|45.32.123.240|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9797 (9.6K) [text/plain]
Saving to: `mircea_popescu.asc'

100%[======================================>] 9,797 18.7K/s in 0.5s

2017-11-19 13:13:04 (18.7 KB/s) - `mircea_popescu.asc' saved [9797/9797]

root@trb1:~/trb# wget -O mod6.asc http://wot.deedbot.org/027A8D7C0FB8A16643720F40721705A8B71EADAF.asc

--2017-11-19 13:13:11-- http://wot.deedbot.org/027A8D7C0FB8A16643720F40721705A8B71EADAF.asc
Resolving wot.deedbot.org (wot.deedbot.org)... 45.32.123.240
Connecting to wot.deedbot.org (wot.deedbot.org)|45.32.123.240|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3801 (3.7K) [text/plain]
Saving to: `mod6.asc'

100%[======================================>] 3,801 14.9K/s in 0.2s

2017-11-19 13:13:12 (14.9 KB/s) - `mod6.asc' saved [3801/3801]

root@trb1:~/trb# wget -O trinque.asc http://wot.deedbot.org/FC66C0C5D98C42A1D4A98B6B42F9985AFAB953C4.asc

--2017-11-19 13:13:18-- http://wot.deedbot.org/FC66C0C5D98C42A1D4A98B6B42F9985AFAB953C4.asc
Resolving wot.deedbot.org (wot.deedbot.org)... 45.32.123.240
Connecting to wot.deedbot.org (wot.deedbot.org)|45.32.123.240|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1684 (1.6K) [text/plain]
Saving to: `trinque.asc'

100%[======================================>] 1,684 6.41K/s in 0.3s

2017-11-19 13:13:19 (6.41 KB/s) - `trinque.asc' saved [1684/1684]



Pressing on with the recipe:


root@trb1:~/trb# gpg --import mod6.asc

gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key B71EADAF: public key "mod6 (mod6) <modsix@gmail.com>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
gpg: no ultimately trusted keys found

root@trb1:~/trb# mv asciilifeform.asc ben_vulpes.asc mircea_popescu.asc mod6.asc trinque.asc .wot


root@trb1:~/trb# gpg --verify V-20170317.tar.gz.mod6.sig V-20170317.tar.gz

gpg: Signature made Fri 17 Mar 2017 07:25:29 PM UTC 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


The warning is expected, as I have not added a trust rating to gpg for mod6.

The important line is this line:
gpg: Good signature from "mod6 (mod6) <modsix@gmail.com>"



root@trb1:~/trb# tar -xf V-20170317.tar.gz


root@trb1:~/trb# ls -1

V-20170317.tar.gz
V-20170317.tar.gz.mod6.sig
v.pl
v.pl.mod6.sig
v_quick_start.txt
v_quick_start.txt.mod6.sig
v_users_manual.txt
v_users_manual.txt.mod6.sig

root@trb1:~/trb# ls -1 .wot

asciilifeform.asc
ben_vulpes.asc
mircea_popescu.asc
mod6.asc
trinque.asc



Browse to
http://thebitcoin.foundation/v/patches

File list displayed:

asciilifeform-kills-integer-retardation.vpatch
asciilifeform_add_verifyall_option.vpatch
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
asciilifeform_and_now_we_have_eatblock.vpatch
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
asciilifeform_dnsseed_snipsnip.vpatch
asciilifeform_lets_lose_testnet.vpatch
asciilifeform_maxint_locks_corrected.vpatch
asciilifeform_orphanage_thermonuke.vpatch
asciilifeform_tx-orphanage_amputation.vpatch
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
asciilifeform_zap_hardcoded_seeds.vpatch
asciilifeform_zap_showmyip_crud.vpatch
bitcoin-asciilifeform.1.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
genesis.vpatch
makefiles.vpatch
malleus_mikehearnificarum.vpatch
mod6_der_high_low_s.vpatch
mod6_fix_dumpblock_params.vpatch
programmable-versionstring.vpatch
rm_rf_upnp.vpatch



Each of these filenames is a link to the file.

Clicking on asciilifeform-kills-integer-retardation.vpatch browses to
thebitcoin.foundation/v/patches/asciilifeform-kills-integer-retardation.vpatch, which displays:

diff -uNr a/bitcoin/src/bitcoinrpc.cpp b/bitcoin/src/bitcoinrpc.cpp
--- a/bitcoin/src/bitcoinrpc.cpp bc6c82ab1a129e9e74a6bf785df99ac939fef94d72afbee153913fd53cab5d05120047275342cb4d52a98a951184eed47cccd9710e3655c261b68d2f257614a3
+++ b/bitcoin/src/bitcoinrpc.cpp cfc24bce544ba71ed8e7e876a1074dc89da184c6aa7f0fc2ad8d0c213516b2b9539497d3176dd0a17ccb427d687ce8d3cc4d3b9969802c9da5f05a0617a2a30b
@@ -1758,8 +1758,8 @@
         result.push_back(Pair("version", pblock->nVersion));
         result.push_back(Pair("previousblockhash", pblock->hashPrevBlock.GetHex()));
         result.push_back(Pair("transactions", transactions));
-        result.push_back(Pair("coinbasevalue", (int64_t)pblock->vtx[0].vout[0].nValue));
-        result.push_back(Pair("time", (int64_t)pblock->nTime));
+        result.push_back(Pair("coinbasevalue", (boost::int64_t)pblock->vtx[0].vout[0].nValue));
+        result.push_back(Pair("time", (boost::int64_t)pblock->nTime));
 
         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
@@ -7,7 +7,7 @@
 
 #include "uint256.h"
 
-
+#include <stdint.h>
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/resource.h>



root@trb1:~/trb# cd patches



I'll construct a wget command to download the files located at
http://thebitcoin.foundation/v/patches

wget -r -l1 --no-parent --no-directories --no-verbose http://thebitcoin.foundation/v/patches


The
-r
option specifies recursive retrieval, so that wget will follow links found at the URL http://thebitcoin.foundation/v/patches and begin retrieval again at those links.

The
-l1
option specifies the maximum recursion depth away from the original URL. In this case, it is set to 1, so one hop away, e.g. all the linked files.

The
--no-parent
option tells wget not to follow links up the hierarchy.

The
--no-directories
option: From the man page: "With this option turned on, all files will get saved to the current directory, without clobbering (if a name shows up more than once, the filenames will get extensions .n)."

The
--no-verbose option
: From the man page: "Turn off verbose without being completely quiet (use
-q
for that), which means that error messages and basic information still get printed."


root@trb1:~/trb/patches# wget -r -l1 --no-parent --no-directories --no-verbose http://thebitcoin.foundation/v/patches

2017-11-19 15:53:53 URL:http://thebitcoin.foundation/v/patches/ [3020/3020] -> "patches" [1]
http://thebitcoin.foundation/robots.txt:
2017-11-19 15:53:53 ERROR 404: Not Found.
2017-11-19 15:53:53 URL:http://thebitcoin.foundation/v/ [676/676] -> "index.html" [1]
2017-11-19 15:53:53 URL:http://thebitcoin.foundation/v/patches/asciilifeform-kills-integer-retardation.vpatch [1495/1495] -> "asciilifeform-kills-integer-retardation.vpatch" [1]
2017-11-19 15:53:53 URL:http://thebitcoin.foundation/v/patches/asciilifeform_add_verifyall_option.vpatch [3538/3538] -> "asciilifeform_add_verifyall_option.vpatch" [1]
2017-11-19 15:53:53 URL:http://thebitcoin.foundation/v/patches/asciilifeform_and_now_we_have_block_dumper_corrected.vpatch [2690/2690] -> "asciilifeform_and_now_we_have_block_dumper_corrected.vpatch" [1]
2017-11-19 15:53:53 URL:http://thebitcoin.foundation/v/patches/asciilifeform_and_now_we_have_eatblock.vpatch [4034/4034] -> "asciilifeform_and_now_we_have_eatblock.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/asciilifeform_dns_thermonyukyoolar_kleansing.vpatch [10750/10750] -> "asciilifeform_dns_thermonyukyoolar_kleansing.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/asciilifeform_dnsseed_snipsnip.vpatch [4736/4736] -> "asciilifeform_dnsseed_snipsnip.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/asciilifeform_lets_lose_testnet.vpatch [11124/11124] -> "asciilifeform_lets_lose_testnet.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/asciilifeform_maxint_locks_corrected.vpatch [881/881] -> "asciilifeform_maxint_locks_corrected.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/asciilifeform_orphanage_thermonuke.vpatch [4193/4193] -> "asciilifeform_orphanage_thermonuke.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/asciilifeform_tx-orphanage_amputation.vpatch [5696/5696] -> "asciilifeform_tx-orphanage_amputation.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch [19407/19407] -> "asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/asciilifeform_zap_hardcoded_seeds.vpatch [9393/9393] -> "asciilifeform_zap_hardcoded_seeds.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/asciilifeform_zap_showmyip_crud.vpatch [5126/5126] -> "asciilifeform_zap_showmyip_crud.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/bitcoin-asciilifeform.1.vpatch [9780/9780] -> "bitcoin-asciilifeform.1.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/bitcoin-asciilifeform.2-https_snipsnip.vpatch [9145/9145] -> "bitcoin-asciilifeform.2-https_snipsnip.vpatch" [1]
2017-11-19 15:53:54 URL:http://thebitcoin.foundation/v/patches/bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch [9611/9611] -> "bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch" [1]
2017-11-19 15:53:55 URL:http://thebitcoin.foundation/v/patches/bitcoin-asciilifeform.4-goodbye-win32.vpatch [32917/32917] -> "bitcoin-asciilifeform.4-goodbye-win32.vpatch" [1]
2017-11-19 15:53:55 URL:http://thebitcoin.foundation/v/patches/bitcoin-v0_5_3-db_config.6.vpatch [1179/1179] -> "bitcoin-v0_5_3-db_config.6.vpatch" [1]
2017-11-19 15:53:55 URL:http://thebitcoin.foundation/v/patches/bitcoin-v0_5_3_1-rev_bump.7.vpatch [619/619] -> "bitcoin-v0_5_3_1-rev_bump.7.vpatch" [1]
2017-11-19 15:53:55 URL:http://thebitcoin.foundation/v/patches/bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch [618/618] -> "bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch" [1]
2017-11-19 15:53:56 URL:http://thebitcoin.foundation/v/patches/genesis.vpatch [860922/860922] -> "genesis.vpatch" [1]
2017-11-19 15:53:56 URL:http://thebitcoin.foundation/v/patches/makefiles.vpatch [15336/15336] -> "makefiles.vpatch" [1]
2017-11-19 15:53:56 URL:http://thebitcoin.foundation/v/patches/malleus_mikehearnificarum.vpatch [1012/1012] -> "malleus_mikehearnificarum.vpatch" [1]
2017-11-19 15:53:56 URL:http://thebitcoin.foundation/v/patches/mod6_der_high_low_s.vpatch [4831/4831] -> "mod6_der_high_low_s.vpatch" [1]
2017-11-19 15:53:56 URL:http://thebitcoin.foundation/v/patches/mod6_fix_dumpblock_params.vpatch [701/701] -> "mod6_fix_dumpblock_params.vpatch" [1]
2017-11-19 15:53:56 URL:http://thebitcoin.foundation/v/patches/programmable-versionstring.vpatch [6817/6817] -> "programmable-versionstring.vpatch" [1]
2017-11-19 15:53:56 URL:http://thebitcoin.foundation/v/patches/rm_rf_upnp.vpatch [13302/13302] -> "rm_rf_upnp.vpatch" [1]
FINISHED --2017-11-19 15:53:56--
Total wall clock time: 3.8s
Downloaded: 29 files, 1.0M in 0.9s (1.14 MB/s)



root@trb1:~/trb/patches# ls

asciilifeform_add_verifyall_option.vpatch
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
asciilifeform_and_now_we_have_eatblock.vpatch
asciilifeform_dnsseed_snipsnip.vpatch
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
asciilifeform-kills-integer-retardation.vpatch
asciilifeform_lets_lose_testnet.vpatch
asciilifeform_maxint_locks_corrected.vpatch
asciilifeform_orphanage_thermonuke.vpatch
asciilifeform_tx-orphanage_amputation.vpatch
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
asciilifeform_zap_hardcoded_seeds.vpatch
asciilifeform_zap_showmyip_crud.vpatch
bitcoin-asciilifeform.1.vpatch
bitcoin-asciilifeform.2-https_snipsnip.vpatch
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
bitcoin-asciilifeform.4-goodbye-win32.vpatch
bitcoin-v0_5_3_1-rev_bump.7.vpatch
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
bitcoin-v0_5_3-db_config.6.vpatch
genesis.vpatch
index.html
makefiles.vpatch
malleus_mikehearnificarum.vpatch
mod6_der_high_low_s.vpatch
mod6_fix_dumpblock_params.vpatch
patches
programmable-versionstring.vpatch
rm_rf_upnp.vpatch



This line:
2017-11-19 15:53:53 URL:http://thebitcoin.foundation/v/patches/ [3020/3020] -> "patches" [1]

indicates that wget saved a copy of the page itself to the file "patches". Looking at this file with
cat
confirms this.

These two lines are okay:
http://thebitcoin.foundation/robots.txt:
2017-11-19 15:53:53 ERROR 404: Not Found.


robots.txt
is a file conventionally used to contain messages for web crawlers run by various people (e.g. Google) to map the web. It isn't included here, but that doesn't mean that there is a seal missing.

Let's look at this line:
2017-11-19 15:53:53 URL:http://thebitcoin.foundation/v/ [676/676] -> "index.html" [1]


There is a link on the page http://thebitcoin.foundation/v/patches to the Parent Directory [http://thebitcoin.foundation/v]. I think this is why an item which would normally count as being "up the hierarchy" has been downloaded in this case.

Remove the non-vpatch files from the patches directory:
root@trb1:~/trb/patches# rm patches index.html


root@trb1:~/trb/patches# ls

asciilifeform_add_verifyall_option.vpatch
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
asciilifeform_and_now_we_have_eatblock.vpatch
asciilifeform_dnsseed_snipsnip.vpatch
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
asciilifeform-kills-integer-retardation.vpatch
asciilifeform_lets_lose_testnet.vpatch
asciilifeform_maxint_locks_corrected.vpatch
asciilifeform_orphanage_thermonuke.vpatch
asciilifeform_tx-orphanage_amputation.vpatch
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
asciilifeform_zap_hardcoded_seeds.vpatch
asciilifeform_zap_showmyip_crud.vpatch
bitcoin-asciilifeform.1.vpatch
bitcoin-asciilifeform.2-https_snipsnip.vpatch
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch
bitcoin-asciilifeform.4-goodbye-win32.vpatch
bitcoin-v0_5_3_1-rev_bump.7.vpatch
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
bitcoin-v0_5_3-db_config.6.vpatch
genesis.vpatch
makefiles.vpatch
malleus_mikehearnificarum.vpatch
mod6_der_high_low_s.vpatch
mod6_fix_dumpblock_params.vpatch
programmable-versionstring.vpatch
rm_rf_upnp.vpatch

root@trb1:~/trb/patches# cd ..


root@trb1:~/trb# mkdir .seals



If possible, I'd like to be able to specify the destination directory when downloading the seals.

This is the current command:

wget -r -l1 --no-parent --no-directories --no-verbose URL



root@trb1:~/trb# man wget


--directory-prefix=prefix
Set directory prefix to prefix. The directory prefix is the
directory where all other files and subdirectories will be saved
to, i.e. the top of the retrieval tree. The default is . (the
current directory).


New command:

wget -r -l1 --no-parent --no-directories --directory-prefix .seals --no-verbose http://thebitcoin.foundation/v/seals



root@trb1:~/trb# wget -r -l1 --no-parent --no-directories --directory-prefix .seals --no-verbose http://thebitcoin.foundation/v/seals

2017-11-19 16:03:51 URL:http://thebitcoin.foundation/v/seals/ [10666] -> ".seals/seals" [1]
http://thebitcoin.foundation/robots.txt:
2017-11-19 16:03:51 ERROR 404: Not Found.
2017-11-19 16:03:51 URL:http://thebitcoin.foundation/v/ [676/676] -> ".seals/index.html" [1]
2017-11-19 16:03:51 URL:http://thebitcoin.foundation/v/seals/asciilifeform-kills-integer-retardation.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform-kills-integer-retardation.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:51 URL:http://thebitcoin.foundation/v/seals/asciilifeform-kills-integer-retardation.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform-kills-integer-retardation.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:51 URL:http://thebitcoin.foundation/v/seals/asciilifeform-kills-integer-retardation.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform-kills-integer-retardation.vpatch.mod6.sig" [1]
2017-11-19 16:03:52 URL:http://thebitcoin.foundation/v/seals/asciilifeform_add_verifyall_option.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_add_verifyall_option.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:52 URL:http://thebitcoin.foundation/v/seals/asciilifeform_add_verifyall_option.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_add_verifyall_option.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:52 URL:http://thebitcoin.foundation/v/seals/asciilifeform_add_verifyall_option.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_add_verifyall_option.vpatch.mod6.sig" [1]
2017-11-19 16:03:52 URL:http://thebitcoin.foundation/v/seals/asciilifeform_and_now_we_have_block_dumper_corrected.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_and_now_we_have_block_dumper_corrected.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:52 URL:http://thebitcoin.foundation/v/seals/asciilifeform_and_now_we_have_block_dumper_corrected.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_and_now_we_have_block_dumper_corrected.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:52 URL:http://thebitcoin.foundation/v/seals/asciilifeform_and_now_we_have_block_dumper_corrected.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_and_now_we_have_block_dumper_corrected.vpatch.mod6.sig" [1]
2017-11-19 16:03:52 URL:http://thebitcoin.foundation/v/seals/asciilifeform_and_now_we_have_eatblock.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_and_now_we_have_eatblock.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:52 URL:http://thebitcoin.foundation/v/seals/asciilifeform_and_now_we_have_eatblock.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_and_now_we_have_eatblock.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:52 URL:http://thebitcoin.foundation/v/seals/asciilifeform_and_now_we_have_eatblock.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_and_now_we_have_eatblock.vpatch.mod6.sig" [1]
2017-11-19 16:03:52 URL:http://thebitcoin.foundation/v/seals/asciilifeform_dns_thermonyukyoolar_kleansing.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_dns_thermonyukyoolar_kleansing.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:52 URL:http://thebitcoin.foundation/v/seals/asciilifeform_dns_thermonyukyoolar_kleansing.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_dns_thermonyukyoolar_kleansing.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:53 URL:http://thebitcoin.foundation/v/seals/asciilifeform_dns_thermonyukyoolar_kleansing.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_dns_thermonyukyoolar_kleansing.vpatch.mod6.sig" [1]
2017-11-19 16:03:53 URL:http://thebitcoin.foundation/v/seals/asciilifeform_dnsseed_snipsnip.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_dnsseed_snipsnip.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:53 URL:http://thebitcoin.foundation/v/seals/asciilifeform_dnsseed_snipsnip.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_dnsseed_snipsnip.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:53 URL:http://thebitcoin.foundation/v/seals/asciilifeform_dnsseed_snipsnip.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_dnsseed_snipsnip.vpatch.mod6.sig" [1]
2017-11-19 16:03:53 URL:http://thebitcoin.foundation/v/seals/asciilifeform_lets_lose_testnet.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_lets_lose_testnet.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:53 URL:http://thebitcoin.foundation/v/seals/asciilifeform_lets_lose_testnet.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_lets_lose_testnet.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:53 URL:http://thebitcoin.foundation/v/seals/asciilifeform_lets_lose_testnet.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_lets_lose_testnet.vpatch.mod6.sig" [1]
2017-11-19 16:03:53 URL:http://thebitcoin.foundation/v/seals/asciilifeform_maxint_locks_corrected.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_maxint_locks_corrected.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:53 URL:http://thebitcoin.foundation/v/seals/asciilifeform_maxint_locks_corrected.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_maxint_locks_corrected.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:53 URL:http://thebitcoin.foundation/v/seals/asciilifeform_maxint_locks_corrected.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_maxint_locks_corrected.vpatch.mod6.sig" [1]
2017-11-19 16:03:53 URL:http://thebitcoin.foundation/v/seals/asciilifeform_orphanage_thermonuke.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_orphanage_thermonuke.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:54 URL:http://thebitcoin.foundation/v/seals/asciilifeform_orphanage_thermonuke.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_orphanage_thermonuke.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:54 URL:http://thebitcoin.foundation/v/seals/asciilifeform_orphanage_thermonuke.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_orphanage_thermonuke.vpatch.mod6.sig" [1]
2017-11-19 16:03:54 URL:http://thebitcoin.foundation/v/seals/asciilifeform_tx-orphanage_amputation.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_tx-orphanage_amputation.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:54 URL:http://thebitcoin.foundation/v/seals/asciilifeform_tx-orphanage_amputation.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_tx-orphanage_amputation.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:54 URL:http://thebitcoin.foundation/v/seals/asciilifeform_tx-orphanage_amputation.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_tx-orphanage_amputation.vpatch.mod6.sig" [1]
2017-11-19 16:03:54 URL:http://thebitcoin.foundation/v/seals/asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:54 URL:http://thebitcoin.foundation/v/seals/asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:54 URL:http://thebitcoin.foundation/v/seals/asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch.mod6.sig" [1]
2017-11-19 16:03:54 URL:http://thebitcoin.foundation/v/seals/asciilifeform_zap_hardcoded_seeds.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_zap_hardcoded_seeds.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:54 URL:http://thebitcoin.foundation/v/seals/asciilifeform_zap_hardcoded_seeds.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_zap_hardcoded_seeds.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:54 URL:http://thebitcoin.foundation/v/seals/asciilifeform_zap_hardcoded_seeds.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_zap_hardcoded_seeds.vpatch.mod6.sig" [1]
2017-11-19 16:03:55 URL:http://thebitcoin.foundation/v/seals/asciilifeform_zap_showmyip_crud.vpatch.asciilifeform.sig [490/490] -> ".seals/asciilifeform_zap_showmyip_crud.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:55 URL:http://thebitcoin.foundation/v/seals/asciilifeform_zap_showmyip_crud.vpatch.ben_vulpes.sig [801/801] -> ".seals/asciilifeform_zap_showmyip_crud.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:55 URL:http://thebitcoin.foundation/v/seals/asciilifeform_zap_showmyip_crud.vpatch.mod6.sig [834/834] -> ".seals/asciilifeform_zap_showmyip_crud.vpatch.mod6.sig" [1]
2017-11-19 16:03:55 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.1.vpatch.asciilifeform.sig [490/490] -> ".seals/bitcoin-asciilifeform.1.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:55 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.1.vpatch.ben_vulpes.sig [801/801] -> ".seals/bitcoin-asciilifeform.1.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:55 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.1.vpatch.mod6.sig [834/834] -> ".seals/bitcoin-asciilifeform.1.vpatch.mod6.sig" [1]
2017-11-19 16:03:55 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.2-https_snipsnip.vpatch.asciilifeform.sig [490/490] -> ".seals/bitcoin-asciilifeform.2-https_snipsnip.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:55 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.2-https_snipsnip.vpatch.ben_vulpes.sig [801/801] -> ".seals/bitcoin-asciilifeform.2-https_snipsnip.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:55 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.2-https_snipsnip.vpatch.mod6.sig [834/834] -> ".seals/bitcoin-asciilifeform.2-https_snipsnip.vpatch.mod6.sig" [1]
2017-11-19 16:03:55 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch.asciilifeform.sig [490/490] -> ".seals/bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:55 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch.ben_vulpes.sig [801/801] -> ".seals/bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:56 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch.mod6.sig [834/834] -> ".seals/bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch.mod6.sig" [1]
2017-11-19 16:03:56 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.4-goodbye-win32.vpatch.asciilifeform.sig [490/490] -> ".seals/bitcoin-asciilifeform.4-goodbye-win32.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:56 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.4-goodbye-win32.vpatch.ben_vulpes.sig [801/801] -> ".seals/bitcoin-asciilifeform.4-goodbye-win32.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:56 URL:http://thebitcoin.foundation/v/seals/bitcoin-asciilifeform.4-goodbye-win32.vpatch.mod6.sig [834/834] -> ".seals/bitcoin-asciilifeform.4-goodbye-win32.vpatch.mod6.sig" [1]
2017-11-19 16:03:56 URL:http://thebitcoin.foundation/v/seals/bitcoin-v0_5_3-db_config.6.vpatch.asciilifeform.sig [490/490] -> ".seals/bitcoin-v0_5_3-db_config.6.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:56 URL:http://thebitcoin.foundation/v/seals/bitcoin-v0_5_3-db_config.6.vpatch.ben_vulpes.sig [801/801] -> ".seals/bitcoin-v0_5_3-db_config.6.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:56 URL:http://thebitcoin.foundation/v/seals/bitcoin-v0_5_3-db_config.6.vpatch.mod6.sig [834/834] -> ".seals/bitcoin-v0_5_3-db_config.6.vpatch.mod6.sig" [1]
2017-11-19 16:03:56 URL:http://thebitcoin.foundation/v/seals/bitcoin-v0_5_3_1-rev_bump.7.vpatch.asciilifeform.sig [490/490] -> ".seals/bitcoin-v0_5_3_1-rev_bump.7.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:56 URL:http://thebitcoin.foundation/v/seals/bitcoin-v0_5_3_1-rev_bump.7.vpatch.ben_vulpes.sig [801/801] -> ".seals/bitcoin-v0_5_3_1-rev_bump.7.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:56 URL:http://thebitcoin.foundation/v/seals/bitcoin-v0_5_3_1-rev_bump.7.vpatch.mod6.sig [834/834] -> ".seals/bitcoin-v0_5_3_1-rev_bump.7.vpatch.mod6.sig" [1]
2017-11-19 16:03:56 URL:http://thebitcoin.foundation/v/seals/bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch.asciilifeform.sig [490/490] -> ".seals/bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:57 URL:http://thebitcoin.foundation/v/seals/bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch.ben_vulpes.sig [801/801] -> ".seals/bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:57 URL:http://thebitcoin.foundation/v/seals/bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch.mod6.sig [834/834] -> ".seals/bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch.mod6.sig" [1]
2017-11-19 16:03:57 URL:http://thebitcoin.foundation/v/seals/genesis.vpatch.asciilifeform.sig [490/490] -> ".seals/genesis.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:57 URL:http://thebitcoin.foundation/v/seals/genesis.vpatch.ben_vulpes.sig [801/801] -> ".seals/genesis.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:57 URL:http://thebitcoin.foundation/v/seals/genesis.vpatch.mircea_popescu.sig [836/836] -> ".seals/genesis.vpatch.mircea_popescu.sig" [1]
2017-11-19 16:03:57 URL:http://thebitcoin.foundation/v/seals/genesis.vpatch.mod6.sig [834/834] -> ".seals/genesis.vpatch.mod6.sig" [1]
2017-11-19 16:03:57 URL:http://thebitcoin.foundation/v/seals/genesis.vpatch.trinque.sig [455/455] -> ".seals/genesis.vpatch.trinque.sig" [1]
2017-11-19 16:03:57 URL:http://thebitcoin.foundation/v/seals/makefiles.vpatch.ben_vulpes.sig [801/801] -> ".seals/makefiles.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:57 URL:http://thebitcoin.foundation/v/seals/makefiles.vpatch.mod6.sig [834/834] -> ".seals/makefiles.vpatch.mod6.sig" [1]
2017-11-19 16:03:57 URL:http://thebitcoin.foundation/v/seals/makefiles.vpatch.trinque.sig [455/455] -> ".seals/makefiles.vpatch.trinque.sig" [1]
2017-11-19 16:03:58 URL:http://thebitcoin.foundation/v/seals/malleus_mikehearnificarum.vpatch.ben_vulpes.sig [801/801] -> ".seals/malleus_mikehearnificarum.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:58 URL:http://thebitcoin.foundation/v/seals/malleus_mikehearnificarum.vpatch.mod6.sig [834/834] -> ".seals/malleus_mikehearnificarum.vpatch.mod6.sig" [1]
2017-11-19 16:03:58 URL:http://thebitcoin.foundation/v/seals/mod6_der_high_low_s.vpatch.ben_vulpes.sig [801/801] -> ".seals/mod6_der_high_low_s.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:58 URL:http://thebitcoin.foundation/v/seals/mod6_der_high_low_s.vpatch.mod6.sig [834/834] -> ".seals/mod6_der_high_low_s.vpatch.mod6.sig" [1]
2017-11-19 16:03:58 URL:http://thebitcoin.foundation/v/seals/mod6_fix_dumpblock_params.vpatch.asciilifeform.sig [490/490] -> ".seals/mod6_fix_dumpblock_params.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:58 URL:http://thebitcoin.foundation/v/seals/mod6_fix_dumpblock_params.vpatch.ben_vulpes.sig [801/801] -> ".seals/mod6_fix_dumpblock_params.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:58 URL:http://thebitcoin.foundation/v/seals/mod6_fix_dumpblock_params.vpatch.mod6.sig [834/834] -> ".seals/mod6_fix_dumpblock_params.vpatch.mod6.sig" [1]
2017-11-19 16:03:58 URL:http://thebitcoin.foundation/v/seals/programmable-versionstring.vpatch.ben_vulpes.sig [801/801] -> ".seals/programmable-versionstring.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:58 URL:http://thebitcoin.foundation/v/seals/programmable-versionstring.vpatch.mod6.sig [834/834] -> ".seals/programmable-versionstring.vpatch.mod6.sig" [1]
2017-11-19 16:03:58 URL:http://thebitcoin.foundation/v/seals/rm_rf_upnp.vpatch.asciilifeform.sig [490/490] -> ".seals/rm_rf_upnp.vpatch.asciilifeform.sig" [1]
2017-11-19 16:03:58 URL:http://thebitcoin.foundation/v/seals/rm_rf_upnp.vpatch.ben_vulpes.sig [801/801] -> ".seals/rm_rf_upnp.vpatch.ben_vulpes.sig" [1]
2017-11-19 16:03:59 URL:http://thebitcoin.foundation/v/seals/rm_rf_upnp.vpatch.mod6.sig [834/834] -> ".seals/rm_rf_upnp.vpatch.mod6.sig" [1]
FINISHED --2017-11-19 16:03:59--
Total wall clock time: 7.8s
Downloaded: 82 files, 67K in 0.001s (67.7 MB/s)



Remove files that are not seals:
root@trb1:~/trb# rm .seals/seals .seals/index.html



root@trb1:~/trb# ./v.pl p v trb54 makefiles.vpatch

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.3-turdmeister-alert-snip.vpatch
patching file bitcoin/src/main.cpp
patching file bitcoin/src/main.h
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.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
asciilifeform_dnsseed_snipsnip.vpatch
patching file bitcoin/src/init.cpp
patching file bitcoin/src/net.cpp
asciilifeform_zap_hardcoded_seeds.vpatch
patching file bitcoin/src/net.cpp
asciilifeform-kills-integer-retardation.vpatch
patching file bitcoin/src/bitcoinrpc.cpp
patching file bitcoin/src/util.h
asciilifeform_zap_showmyip_crud.vpatch
patching file bitcoin/src/net.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_and_now_we_have_block_dumper_corrected.vpatch
patching file bitcoin/src/bitcoinrpc.cpp
mod6_fix_dumpblock_params.vpatch
patching file bitcoin/src/bitcoinrpc.cpp
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch
patching file bitcoin/src/makefile.unix
bitcoin-v0_5_3_1-rev_bump.7.vpatch
patching file bitcoin/src/serialize.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_orphanage_thermonuke.vpatch
patching file bitcoin/src/main.cpp
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
bitcoin-v0_5_3-db_config.6.vpatch
patching file bitcoin/src/db.cpp
asciilifeform_tx-orphanage_amputation.vpatch
patching file bitcoin/src/main.cpp
patching file bitcoin/src/main.h
asciilifeform_maxint_locks_corrected.vpatch
patching file bitcoin/src/db.cpp
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
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
malleus_mikehearnificarum.vpatch
patching file bitcoin/src/main.cpp
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



root@trb1:~/trb# ls -al

total 124
drwxr-xr-x 6 root root 4096 Nov 19 16:05 .
drwx------ 5 root root 4096 Nov 19 16:05 ..
drwxr-xr-x 2 root root 4096 Nov 19 16:01 patches
drwxr-xr-x 2 root root 12288 Nov 19 16:04 .seals
drwxr-xr-x 3 root root 4096 Nov 19 16:05 trb54
-rw-r--r-- 1 root root 16083 Mar 21 2017 V-20170317.tar.gz
-rw-r--r-- 1 root root 834 Mar 21 2017 V-20170317.tar.gz.mod6.sig
-rwxr-xr-x 1 1001 1001 33032 Mar 17 2017 v.pl
-rw-r--r-- 1 1001 1001 834 Mar 17 2017 v.pl.mod6.sig
-rw-r--r-- 1 1001 1001 1841 Mar 17 2017 v_quick_start.txt
-rw-r--r-- 1 1001 1001 834 Mar 17 2017 v_quick_start.txt.mod6.sig
-rw-r--r-- 1 1001 1001 19815 Mar 17 2017 v_users_manual.txt
-rw-r--r-- 1 1001 1001 834 Mar 17 2017 v_users_manual.txt.mod6.sig
drwxr-xr-x 2 root root 4096 Nov 19 13:15 .wot

root@trb1:~/trb# cd trb54/bitcoin


root@trb1:~/trb/trb54/bitcoin# ls -1a

.
..
bin
build
COPYING
deps
.gitignore
Makefile
src
verify.mk



Construct commands:

wget -O rotor.tar.gz.asc --no-verbose http://deedbot.org/deed-430460-2.txt
wget -O rotor-db-configure-fix.patch.asc --no-verbose http://deedbot.org/deed-430460-1.txt
wget -O boost_1_52_0.tar.bz2.asc --no-verbose http://deedbot.org/deed-422651-1.txt
wget -O buildroot-2015.05.tar.gz.asc --no-verbose http://deedbot.org/deed-422651-2.txt
wget -O db-4.8.30.tar.gz.asc --no-verbose http://deedbot.org/deed-422651-3.txt
wget -O openssl-1.0.1g.tar.gz.asc --no-verbose http://deedbot.org/deed-422651-4.txt
wget -O binutils-2.24.tar.bz2.asc --no-verbose --progress dot http://deedbot.org/deed-427443-1.txt
wget -O busybox-1.23.2.tar.bz2.asc --no-verbose http://deedbot.org/deed-427443-2.txt
wget -O expat-2.1.0.tar.gz.asc --no-verbose http://deedbot.org/deed-427443-3.txt
wget -O fakeroot_1.18.4.orig.tar.bz2.asc --no-verbose http://deedbot.org/deed-427443-4.txt
wget -O gcc-4.9.2.tar.bz2.asc --no-verbose http://deedbot.org/deed-427443-5.txt
wget -O gdb-7.8.2.tar.xz.asc --no-verbose http://deedbot.org/deed-427443-6.txt
wget -O gmp-6.0.0a.tar.xz.asc --no-verbose http://deedbot.org/deed-427443-7.txt
wget -O linux-3.18.14.tar.xz.asc --no-verbose http://deedbot.org/deed-427443-8.txt
wget -O m4-1.4.17.tar.xz.asc --no-verbose http://deedbot.org/deed-427443-9.txt
wget -O mpc-1.0.3.tar.gz.asc --no-verbose http://deedbot.org/deed-427443-10.txt
wget -O mpfr-3.1.2.tar.xz.asc --no-verbose http://deedbot.org/deed-427443-11.txt
wget -O musl-1.1.8.tar.gz.asc --no-verbose http://deedbot.org/deed-427443-12.txt
wget -O ncurses-5.9.tar.gz.asc --no-verbose http://deedbot.org/deed-427443-13.txt
wget -O pkgconf-0.8.9.tar.bz2.asc --no-verbose http://deedbot.org/deed-427443-14.txt



And run them:


root@trb1:~/trb/trb54/bitcoin# wget -O rotor.tar.gz.asc --no-verbose http://deedbot.org/deed-430460-2.txt

2017-11-19 20:27:49 URL:http://deedbot.org/deed-430460-2.txt [16404/16404] -> "rotor.tar.gz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O rotor-db-configure-fix.patch.asc --no-verbose http://deedbot.org/deed-430460-1.txt

2017-11-19 20:27:57 URL:http://deedbot.org/deed-430460-1.txt [2089/2089] -> "rotor-db-configure-fix.patch.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O boost_1_52_0.tar.bz2.asc --no-verbose http://deedbot.org/deed-422651-1.txt

2017-11-19 20:29:20 URL:http://deedbot.org/deed-422651-1.txt [73773287/73773287] -> "boost_1_52_0.tar.bz2.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O buildroot-2015.05.tar.gz.asc --no-verbose http://deedbot.org/deed-422651-2.txt

2017-11-19 20:33:40 URL:http://deedbot.org/deed-422651-2.txt [7146528/7146528] -> "buildroot-2015.05.tar.gz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O db-4.8.30.tar.gz.asc --no-verbose http://deedbot.org/deed-422651-3.txt

2017-11-19 20:34:17 URL:http://deedbot.org/deed-422651-3.txt [31026625/31026625] -> "db-4.8.30.tar.gz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O openssl-1.0.1g.tar.gz.asc --no-verbose http://deedbot.org/deed-422651-4.txt

2017-11-19 20:39:32 URL:http://deedbot.org/deed-422651-4.txt [6113885/6113885] -> "openssl-1.0.1g.tar.gz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O binutils-2.24.tar.bz2.asc --no-verbose --progress dot http://deedbot.org/deed-427443-1.txt

2017-11-19 20:40:38 URL:http://deedbot.org/deed-427443-1.txt [30795507/30795507] -> "binutils-2.24.tar.bz2.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O busybox-1.23.2.tar.bz2.asc --no-verbose http://deedbot.org/deed-427443-2.txt

2017-11-19 20:41:44 URL:http://deedbot.org/deed-427443-2.txt [3055393/3055393] -> "busybox-1.23.2.tar.bz2.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O expat-2.1.0.tar.gz.asc --no-verbose http://deedbot.org/deed-427443-3.txt

2017-11-19 20:41:55 URL:http://deedbot.org/deed-427443-3.txt [764293/764293] -> "expat-2.1.0.tar.gz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O fakeroot_1.18.4.orig.tar.bz2.asc --no-verbose http://deedbot.org/deed-427443-4.txt

2017-11-19 20:42:12 URL:http://deedbot.org/deed-427443-4.txt [420963/420963] -> "fakeroot_1.18.4.orig.tar.bz2.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O gcc-4.9.2.tar.bz2.asc --no-verbose http://deedbot.org/deed-427443-5.txt

2017-11-19 20:44:23 URL:http://deedbot.org/deed-427443-5.txt [121919932/121919932] -> "gcc-4.9.2.tar.bz2.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O gdb-7.8.2.tar.xz.asc --no-verbose http://deedbot.org/deed-427443-6.txt

2017-11-19 20:44:59 URL:http://deedbot.org/deed-427443-6.txt [23965875/23965875] -> "gdb-7.8.2.tar.xz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O gmp-6.0.0a.tar.xz.asc --no-verbose http://deedbot.org/deed-427443-7.txt

2017-11-19 20:45:47 URL:http://deedbot.org/deed-427443-7.txt [2582727/2582727] -> "gmp-6.0.0a.tar.xz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O linux-3.18.14.tar.xz.asc --no-verbose http://deedbot.org/deed-427443-8.txt

2017-11-19 20:48:04 URL:http://deedbot.org/deed-427443-8.txt [109770294/109770294] -> "linux-3.18.14.tar.xz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O m4-1.4.17.tar.xz.asc --no-verbose http://deedbot.org/deed-427443-9.txt

2017-11-19 20:48:26 URL:http://deedbot.org/deed-427443-9.txt [1559248/1559248] -> "m4-1.4.17.tar.xz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O mpc-1.0.3.tar.gz.asc --no-verbose http://deedbot.org/deed-427443-10.txt

2017-11-19 20:48:43 URL:http://deedbot.org/deed-427443-10.txt [909717/909717] -> "mpc-1.0.3.tar.gz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O mpfr-3.1.2.tar.xz.asc --no-verbose http://deedbot.org/deed-427443-11.txt

2017-11-19 20:48:54 URL:http://deedbot.org/deed-427443-11.txt [1457993/1457993] -> "mpfr-3.1.2.tar.xz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O musl-1.1.8.tar.gz.asc --no-verbose http://deedbot.org/deed-427443-12.txt

2017-11-19 20:49:14 URL:http://deedbot.org/deed-427443-12.txt [1227656/1227656] -> "musl-1.1.8.tar.gz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O ncurses-5.9.tar.gz.asc --no-verbose http://deedbot.org/deed-427443-13.txt

2017-11-19 20:50:12 URL:http://deedbot.org/deed-427443-13.txt [3833048/3833048] -> "ncurses-5.9.tar.gz.asc" [1]

root@trb1:~/trb/trb54/bitcoin# wget -O pkgconf-0.8.9.tar.bz2.asc --no-verbose http://deedbot.org/deed-427443-14.txt

2017-11-19 20:51:11 URL:http://deedbot.org/deed-427443-14.txt [110362/110362] -> "pkgconf-0.8.9.tar.bz2.asc" [1]



Note: Some of these took a little while. I changed one of them to use the
--progress dot
option but I think the
--no-verbose
option overrode it.


root@trb1:~/trb/trb54/bitcoin# ls -1a

.
..
bin
binutils-2.24.tar.bz2.asc
boost_1_52_0.tar.bz2.asc
build
buildroot-2015.05.tar.gz.asc
busybox-1.23.2.tar.bz2.asc
COPYING
db-4.8.30.tar.gz.asc
deps
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
.gitignore
gmp-6.0.0a.tar.xz.asc
linux-3.18.14.tar.xz.asc
m4-1.4.17.tar.xz.asc
Makefile
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
openssl-1.0.1g.tar.gz.asc
pkgconf-0.8.9.tar.bz2.asc
rotor-db-configure-fix.patch.asc
rotor.tar.gz.asc
src
verify.mk



Next:
0x21) Place the signed deed files (0D-20) into the 'deps' directory:

root@trb1:~/tmp# mv \
> rotor.tar.gz.asc \
> rotor-db-configure-fix.patch.asc \
> 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 \
> deps



root@trb1:~/trb/trb54/bitcoin# ls -1a

.
..
bin
build
COPYING
deps
.gitignore
Makefile
src
verify.mk

root@trb1:~/trb/trb54/bitcoin# ls -1a deps

.
..
binutils-2.24.tar.bz2.asc
boost_1_52_0.tar.bz2.asc
buildroot-2015.05.tar.gz.asc
busybox-1.23.2.tar.bz2.asc
db-4.8.30.tar.gz.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
Makefile
Manifest.sha512
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
openssl-1.0.1g.tar.gz.asc
pkgconf-0.8.9.tar.bz2.asc
rotor-db-configure-fix.patch.asc
rotor.tar.gz.asc



Next: 0x22) `make`


root@trb1:~/trb/trb54/bitcoin# make

[output not displayed here]

The make command took about 30-40 mins to run.

The following link contains the entire output of the make command (15.2 MB, 138900 lines).
trb_make_output.txt


root@trb1:~/trb/trb54/bitcoin# ls -1

bin
build
COPYING
deps
Makefile
src
verify.mk

root@trb1:~/trb/trb54/bitcoin# ls -1 build

bitcoind
boost_1_52_0
buildroot-2015.05
db-4.8.30
Makefile
Makefile.rotor
openssl-004-musl-termios.patch
openssl-1.0.1g
ourlibs
rotor_bitcoin_only.sh
rotor_buildroot_dot_config
rotor.sh
toolchain

root@trb1:~/trb/trb54/bitcoin# file build/bitcoind

build/bitcoind: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped

root@trb1:~/trb/trb54/bitcoin# ls -l build/bitcoind

-rwxr-xr-x 1 root root 4884960 Nov 19 21:34 build/bitcoind

root@trb1:~/trb/trb54/bitcoin# ls -lh build/bitcoind

-rwxr-xr-x 1 root root 4.7M Nov 19 21:34 build/bitcoind



It's statically linked, so I should be able to move the binary somewhere else and run it.


root@trb1:~/trb/trb54/bitcoin# cp build/bitcoind ~/


root@trb1:~/trb/trb54/bitcoin# cd ~


root@trb1:~# ls -1

bitcoind
trb



Browse to
http://thebitcoin.foundation/trusted-nodes.html

Advertised Republican Nodes

172.86.178.46 trinque
37.59.43.190 pete_dushenski
199.204.187.186 pete_dushenski
216.151.13.77 ben_vulpes
46.166.160.36 mircea_popescu
91.218.246.31 mircea_popescu
192.187.99.74 BingoBoingo



Start bitcoin:
root@trb1:~# LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1 &

[1] 31006
root@trb1:~#
nohup: ignoring input and appending output to `nohup.out'


[not included here: various exploratory attempts to start bitcoin, check that the process is running, and talk to it]

The
&
at the end of the command places the process in the background.

Output hangs without writing a new prompt. Press enter.

[1]+ Done LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1
root@trb1:~#


hm. Process has finished.

root@trb1:~# ls -1

bitcoind
nohup.out
trb

root@trb1:~# cat nohup.out

Error: To use bitcoind, you must set a rpcpassword in the configuration file:
/root/.bitcoin/bitcoin.conf
It is recommended you use the following random password:
rpcuser=bitcoinrpc
rpcpassword=5ZsHJYeXeSPPJW3cV1eAZbFeGcjm7CS8J9mvbxNQtg1S
(you do not need to remember this password)
If the file does not exist, create it with owner-readable-only file permissions.

root@trb1:~# mkdir .bitcoin

mkdir: cannot create directory `.bitcoin': File exists

root@trb1:~# ls -1a

.
..
.bash_history
.bash_logout
.bashrc
.bitcoin
bitcoind
.cloud-locale-test.skip
.gnupg
nohup.out
.profile
.ssh
trb

root@trb1:~# ls -1a .bitcoin/

.
..
addr.dat
blk0001.dat
blkindex.dat
database
db.log
debug.log
.lock
wallet.dat

root@trb1:~# echo "rpcuser=bitcoinrpc" > .bitcoin/bitcoin.conf


root@trb1:~# echo "rpcpassword=5ZsHJYeXeSPPJW3cV1eAZbFeGcjm7CS8J9mvbxNQtg1S" >> .bitcoin/bitcoin.conf


root@trb1:~# cat .bitcoin/bitcoin.conf

rpcuser=bitcoinrpc
rpcpassword=5ZsHJYeXeSPPJW3cV1eAZbFeGcjm7CS8J9mvbxNQtg1S

root@trb1:~# rm nohup.out


root@trb1:~# LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1 &

root@trb1:~#
nohup: ignoring input and appending output to `nohup.out'



Output hangs without writing a new prompt. Press enter. New prompt written to terminal.

root@trb1:~#


root@trb1:~# cat nohup.out


root@trb1:~# ps -ax | less

31028 pts/0 SLl 0:46 ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall

[other output not shown]


Need to be able to stop/start bitcoind.

root@trb1:~# jobs

[1]+ Running LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1 &

root@trb1:~# fg %1

LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1



Output hangs (no new prompt written). Press enter to confirm. Newline is written to terminal, but not a new prompt, so the process is running and is in the foreground.


Press ctrl-Z to suspend the process.

^Z
[1]+ Stopped LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1
root@trb1:~#


root@trb1:~# jobs

[1]+ Stopped LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1



Set the process running again in the background.

root@trb1:~# bg %1

[1]+ LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1 &
root@trb1:~#



root@trb1:~# ls -1 .bitcoin/

addr.dat
bitcoin.conf
blk0001.dat
blkindex.dat
database
__db.001
__db.002
__db.003
__db.004
__db.005
__db.006
db.log
debug.log
wallet.dat

root@trb1:~# ls -l .bitcoin/

total 1677916
-rw------- 1 root root 880640 Nov 20 12:52 addr.dat
-rw-r--r-- 1 root root 76 Nov 20 12:51 bitcoin.conf
-rw------- 1 root root 229991449 Nov 20 12:52 blk0001.dat
-rw------- 1 root root 118956032 Nov 20 12:52 blkindex.dat
drwx------ 2 root root 4096 Nov 20 12:52 database
-rw------- 1 root root 24576 Nov 20 12:51 __db.001
-rw------- 1 root root 416104448 Nov 20 12:52 __db.002
-rw------- 1 root root 270336 Nov 20 12:52 __db.003
-rw------- 1 root root 163840 Nov 20 12:52 __db.004
-rw------- 1 root root 1243430912 Nov 20 12:52 __db.005
-rw------- 1 root root 49152 Nov 20 12:52 __db.006
-rw------- 1 root root 0 Nov 19 21:45 db.log
-rw------- 1 root root 825313 Nov 20 12:52 debug.log
-rw------- 1 root root 98304 Nov 20 12:51 wallet.dat

root@trb1:~# ./bitcoind --help



************************
EXCEPTION: St13runtime_error
locale::facet::_S_create_c_locale name not valid
bitcoin in AppInit()

terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid
Aborted



Maybe a new instance of the program necessarily conflicts with a running instance.



Stop the program, using ctrl-C to terminate the process.

root@trb1:~# jobs

[1]+ Running LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1 &

root@trb1:~# fg %1

LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1
^C
root@trb1:~#



root@trb1:~# ./bitcoind --help



************************
EXCEPTION: St13runtime_error
locale::facet::_S_create_c_locale name not valid
bitcoin in AppInit()

terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid
Aborted



hm.

I'd like to be able to send a command to the bitcoin program. From some reading, it looks like I have to send RPC messages to a dedicated port, on which the bitcoin program (when running) will be listening and from which it will send a response.



Excerpt from:
en.bitcoin.it/wiki/API_reference_(JSON-RPC)

JSON-RPC

Running Bitcoin with the -server argument (or running bitcoind) tells it to function as a HTTP JSON-RPC server [http://json-rpc.org/wiki/specification], but Basic access authentication [http://en.wikipedia.org/wiki/Basic_access_authentication] must be used when communicating with it, and, for security, by default, the server only accepts connections from other processes on the same machine. If your HTTP or JSON library requires you to specify which 'realm' is authenticated, use 'jsonrpc'.

Bitcoin supports SSL (https) JSON-RPC connections beginning with version 0.3.14. See the rpcssl wiki page [http://en.bitcoin.it/wiki/Enabling_SSL_on_original_client_daemon] for setup instructions and a list of all bitcoin.conf configuration options.

Allowing arbitrary machines to access the JSON-RPC port (using the rpcallowip configuration option) is dangerous and strongly discouraged-- access should be strictly limited to trusted machines.

To access the server you should find a suitable library [http://json-rpc.org/wiki/implementations] for your language.



Browsing to
http://json-rpc.org/wiki/specification
produces:
This site can't be reached
json-rpc.org refused to connect.
ERR_CONNECTION_REFUSED

Browsing to
http://json-rpc.org/wiki/implementations
produces:
This site can't be reached
json-rpc.org refused to connect.
ERR_CONNECTION_REFUSED


Excerpt from:
en.bitcoin.it/wiki/API_reference_(JSON-RPC)

Command line (cURL)

You can also send commands and see results using cURL or some other command-line HTTP-fetching utility; for example:

curl --user user --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/


You will be prompted for your rpcpassword, and then will see something like:

{"result":{"balance":0.000000000000000,"blocks":59952,"connections":48,"proxy":"","generate":false,"genproclimit":-1,"difficulty":16.61907875185736},"error":null,"id":"curltest"}



[not included here: various exploratory attempts to talk to bitcoind by sending a json command via curl.]


Let's restart from scratch.

root@trb1:~# rm -rf .bitcoin/


root@trb1:~# LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1 &

[1] 2585
root@trb1:~#
nohup: ignoring input and appending output to `nohup.out'


Press enter to see new prompt.

root@trb1:~# ls

bitcoind nohup.out trb
[1]+ Done LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1

root@trb1:~# cat nohup.out

Error: To use bitcoind, you must set a rpcpassword in the configuration file:
/root/.bitcoin/bitcoin.conf
It is recommended you use the following random password:
rpcuser=bitcoinrpc
rpcpassword=EmjyjadwzpPpspHdzFpzLyC6sM9P89zfU2JCKKkbiXsL
(you do not need to remember this password)
If the file does not exist, create it with owner-readable-only file permissions.

root@trb1:~# echo "rpcuser=bitcoinrpc" > .bitcoin/bitcoin.conf


root@trb1:~# echo "rpcpassword=hello" >> .bitcoin/bitcoin.conf


root@trb1:~# cat .bitcoin/bitcoin.conf

rpcuser=bitcoinrpc
rpcpassword=hello

root@trb1:~# LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1 &

[1] 2599
root@trb1:~#
nohup: ignoring input and appending output to `nohup.out'


Press enter to see new prompt.

In
curl
command, change argument for
--user
option from "user" to "bitcoinrpc".

root@trb1:~# curl --user bitcoinrpc --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/

Enter host password for user 'bitcoinrpc':
{"result":{"version":99999,"balance":0.00000000,"blocks":71560,"connections":10,"proxy":"","generate":false,"genproclimit":-1,"difficulty":244.21322309,"hashespersec":0,"keypoololdest":1511185105,"keypoolsize":101,"paytxfee":0.00000000,"errors":""},"error":null,"id":"curltest"}


At the password prompt, I typed 'hello' and pressed enter.

Note the use of port 8332 for json rpc commands. I think the DigitalOcean default firewall settings block port 8332, but two processes (e.g.
curl
and
bitcoind
) can use it to communicate if they are on the same machine, because the communication never has to pass through the firewall.


Stop bitcoind:

root@trb1:~# jobs

[1]+ Running LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1 &

root@trb1:~# fg %1

LC_ALL=C nohup ./bitcoind -myip=104.131.66.253 -addnode=172.86.178.46 -addnode=37.59.43.190 -verifyall 2>&1
^Croot@trb1:~#




Cool. I now have a bitcoind hello world. I'll stop the project there.



The following links lead to my own archived copies of the public keys used to verify the digital signatures on the patches made to the bitcoin code.


Public keys:

asciilifeform.asc
ben_vulpes.asc
mircea_popescu.asc
mod6.asc
trinque.asc


The following links lead to my own archived copies of all the digital assets supplied by The Bitcoin Foundation that were used in this project.


V-patch software:

v-20170317.tar.gz
v-20170317.tar.gz.mod6.sig

Note: I have decapitalised "v" in these asset filenames.


Patches:

asciilifeform-kills-integer-retardation.vpatch
asciilifeform_add_verifyall_option.vpatch
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch
asciilifeform_and_now_we_have_eatblock.vpatch
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch
asciilifeform_dnsseed_snipsnip.vpatch
asciilifeform_lets_lose_testnet.vpatch
asciilifeform_maxint_locks_corrected.vpatch
asciilifeform_orphanage_thermonuke.vpatch
asciilifeform_tx-orphanage_amputation.vpatch
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch
asciilifeform_zap_hardcoded_seeds.vpatch
asciilifeform_zap_showmyip_crud.vpatch
bitcoin-asciilifeform.1.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
genesis.vpatch
makefiles.vpatch
malleus_mikehearnificarum.vpatch
mod6_der_high_low_s.vpatch
mod6_fix_dumpblock_params.vpatch
programmable-versionstring.vpatch
rm_rf_upnp.vpatch


Seals:

asciilifeform-kills-integer-retardation.vpatch.asciilifeform.sig
asciilifeform-kills-integer-retardation.vpatch.ben_vulpes.sig
asciilifeform-kills-integer-retardation.vpatch.mod6.sig
asciilifeform_add_verifyall_option.vpatch.asciilifeform.sig
asciilifeform_add_verifyall_option.vpatch.ben_vulpes.sig
asciilifeform_add_verifyall_option.vpatch.mod6.sig
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch.asciilifeform.sig
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch.ben_vulpes.sig
asciilifeform_and_now_we_have_block_dumper_corrected.vpatch.mod6.sig
asciilifeform_and_now_we_have_eatblock.vpatch.asciilifeform.sig
asciilifeform_and_now_we_have_eatblock.vpatch.ben_vulpes.sig
asciilifeform_and_now_we_have_eatblock.vpatch.mod6.sig
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch.asciilifeform.sig
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch.ben_vulpes.sig
asciilifeform_dns_thermonyukyoolar_kleansing.vpatch.mod6.sig
asciilifeform_dnsseed_snipsnip.vpatch.asciilifeform.sig
asciilifeform_dnsseed_snipsnip.vpatch.ben_vulpes.sig
asciilifeform_dnsseed_snipsnip.vpatch.mod6.sig
asciilifeform_lets_lose_testnet.vpatch.asciilifeform.sig
asciilifeform_lets_lose_testnet.vpatch.ben_vulpes.sig
asciilifeform_lets_lose_testnet.vpatch.mod6.sig
asciilifeform_maxint_locks_corrected.vpatch.asciilifeform.sig
asciilifeform_maxint_locks_corrected.vpatch.ben_vulpes.sig
asciilifeform_maxint_locks_corrected.vpatch.mod6.sig
asciilifeform_orphanage_thermonuke.vpatch.asciilifeform.sig
asciilifeform_orphanage_thermonuke.vpatch.ben_vulpes.sig
asciilifeform_orphanage_thermonuke.vpatch.mod6.sig
asciilifeform_tx-orphanage_amputation.vpatch.asciilifeform.sig
asciilifeform_tx-orphanage_amputation.vpatch.ben_vulpes.sig
asciilifeform_tx-orphanage_amputation.vpatch.mod6.sig
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch.asciilifeform.sig
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch.ben_vulpes.sig
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch.mod6.sig
asciilifeform_zap_hardcoded_seeds.vpatch.asciilifeform.sig
asciilifeform_zap_hardcoded_seeds.vpatch.ben_vulpes.sig
asciilifeform_zap_hardcoded_seeds.vpatch.mod6.sig
asciilifeform_zap_showmyip_crud.vpatch.asciilifeform.sig
asciilifeform_zap_showmyip_crud.vpatch.ben_vulpes.sig
asciilifeform_zap_showmyip_crud.vpatch.mod6.sig
bitcoin-asciilifeform.1.vpatch.asciilifeform.sig
bitcoin-asciilifeform.1.vpatch.ben_vulpes.sig
bitcoin-asciilifeform.1.vpatch.mod6.sig
bitcoin-asciilifeform.2-https_snipsnip.vpatch.asciilifeform.sig
bitcoin-asciilifeform.2-https_snipsnip.vpatch.ben_vulpes.sig
bitcoin-asciilifeform.2-https_snipsnip.vpatch.mod6.sig
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch.asciilifeform.sig
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch.ben_vulpes.sig
bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch.mod6.sig
bitcoin-asciilifeform.4-goodbye-win32.vpatch.asciilifeform.sig
bitcoin-asciilifeform.4-goodbye-win32.vpatch.ben_vulpes.sig
bitcoin-asciilifeform.4-goodbye-win32.vpatch.mod6.sig
bitcoin-v0_5_3-db_config.6.vpatch.asciilifeform.sig
bitcoin-v0_5_3-db_config.6.vpatch.ben_vulpes.sig
bitcoin-v0_5_3-db_config.6.vpatch.mod6.sig
bitcoin-v0_5_3_1-rev_bump.7.vpatch.asciilifeform.sig
bitcoin-v0_5_3_1-rev_bump.7.vpatch.ben_vulpes.sig
bitcoin-v0_5_3_1-rev_bump.7.vpatch.mod6.sig
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch.asciilifeform.sig
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch.ben_vulpes.sig
bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch.mod6.sig
genesis.vpatch.asciilifeform.sig
genesis.vpatch.ben_vulpes.sig
genesis.vpatch.mircea_popescu.sig
genesis.vpatch.mod6.sig
genesis.vpatch.trinque.sig
makefiles.vpatch.ben_vulpes.sig
makefiles.vpatch.mod6.sig
makefiles.vpatch.trinque.sig
malleus_mikehearnificarum.vpatch.ben_vulpes.sig
malleus_mikehearnificarum.vpatch.mod6.sig
mod6_der_high_low_s.vpatch.ben_vulpes.sig
mod6_der_high_low_s.vpatch.mod6.sig
mod6_fix_dumpblock_params.vpatch.asciilifeform.sig
mod6_fix_dumpblock_params.vpatch.ben_vulpes.sig
mod6_fix_dumpblock_params.vpatch.mod6.sig
programmable-versionstring.vpatch.ben_vulpes.sig
programmable-versionstring.vpatch.mod6.sig
rm_rf_upnp.vpatch.asciilifeform.sig
rm_rf_upnp.vpatch.ben_vulpes.sig
rm_rf_upnp.vpatch.mod6.sig


Dependencies:

binutils-2.24.tar.bz2.asc
boost_1_52_0.tar.bz2.asc
buildroot-2015.05.tar.gz.asc
busybox-1.23.2.tar.bz2.asc
db-4.8.30.tar.gz.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
openssl-1.0.1g.tar.gz.asc
pkgconf-0.8.9.tar.bz2.asc
rotor-db-configure-fix.patch.asc
rotor.tar.gz.asc





[start of notes]


- I have not always preserved the format of any excerpts from man pages (e.g. removing extra spaces, line-breaking newlines, word-breaking hyphens).
- I have not always preserved the format of any excerpts from webpages on other sites (e.g. not preserving the original bold/italic styles, changing the list structures, not preserving hyperlinks).
- I have sometimes added/removed newlines at the end of bash output in order to make a sequence of commands easier to read.

[end of notes]