raw
v_mod6_genesis          1      ..::[ The Bitcoin Foundation: V Users Manual ]::..
v_mod6_genesis 2
v_mod6_genesis 3
v_mod6_99993 4 Doc Version: 99993 K
v_mod6_genesis 5 Author: mod6
v_mod6_genesis 6 Fingerprint: 0x027A8D7C0FB8A16643720F40721705A8B71EADAF
v_mod6_genesis 7
v_mod6_genesis 8 0x00]: Introduction
v_mod6_genesis 9
v_mod6_genesis 10 Welcome to V!
v_mod6_genesis 11
v_mod6_genesis 12 This document is intended to be a users manual for mod6's perl implementation
v_mod6_genesis 13 of V. Contained herein the user will find usage explanations and examples of
v_mod6_genesis 14 the many options available.
v_mod6_genesis 15
v_mod6_genesis 16 0x01]: Getting Started
v_mod6_genesis 17
v_mod6_genesis 18 [ Check if perl is installed & version ]:
v_mod6_genesis 19
v_mod6_genesis 20 First, in order to execute the perl version of V, the user must have perl
v_mod6_genesis 21 version 5.005 or greater installed on the local UNIX environment. Perl
v_mod6_genesis 22 typically comes installed on many UNIX environments ahead of time, but just
v_mod6_genesis 23 to be sure, do the following from the command prompt:
v_mod6_genesis 24
v_mod6_genesis 25 perl --version
v_mod6_genesis 26
v_mod6_genesis 27 The user should see a lengthy version message that starts with something
v_mod6_genesis 28 like this:
v_mod6_genesis 29
v_mod6_genesis 30 `This is perl 5, version 18, subversion 2 (v5.18.2) ...'
v_mod6_genesis 31
v_mod6_genesis 32 If not, please install perl 5.005 or greater before going any further:
v_mod6_genesis 33
v_mod6_genesis 34 Ubuntu:
v_mod6_genesis 35 apt-get install -y perl
v_mod6_genesis 36
v_mod6_genesis 37 Gentoo:
v_mod6_genesis 38 emerge =perl-5.20.2.ebuild
v_mod6_genesis 39
v_mod6_genesis 40 [ Install CPAN ]:
v_mod6_genesis 41
v_mod6_genesis 42 If it is desired to at all use the graphing feature of V the user will need
v_mod6_genesis 43 to install CPAN [ `cpan` or `cpanm` or on gentoo, `g-cpan` ] so that the
v_mod6_genesis 44 Graph::Easy perl library can be installed.
v_mod6_genesis 45
v_mod6_genesis 46 Ubuntu:
v_mod6_genesis 47 apt-get install cpanminus
v_mod6_genesis 48 cpanm -i Graph::Easy
v_mod6_genesis 49
v_mod6_genesis 50 Gentoo [x86-64]:
v_mod6_genesis 51 emerge g-cpan
v_mod6_genesis 52
v_mod6_99993 53 [ NOTE: Copy the next nine lines exactly as they are presented here and ]
v_mod6_99993 54 [ then paste them into the shell. ]
v_mod6_genesis 55
v_mod6_genesis 56 cat <<EOF > /etc/portage/package.accept_keywords
v_mod6_genesis 57 # required by perl-gcpan/JSON-MaybeXS-1.003005::x-g-cpan
v_mod6_genesis 58 # required by JSON-MaybeXS (argument)
v_mod6_genesis 59 =dev-perl/Test-Without-Module-0.180.0 ~amd64
v_mod6_genesis 60 # required by perl-gcpan/Cpanel-JSON-XS-3.0115::x-g-cpan
v_mod6_genesis 61 # required by Cpanel-JSON-XS (argument)
v_mod6_genesis 62 =dev-perl/common-sense-3.730.0 ~amd64
v_mod6_genesis 63 EOF
v_mod6_genesis 64
v_mod6_genesis 65 g-cpan -i Graph::Easy
v_mod6_genesis 66
v_mod6_genesis 67 [ Install GnuPG ]:
v_mod6_genesis 68
v_mod6_genesis 69 The user will need GnuPG installed locally to run V, if you already have
v_mod6_genesis 70 this installed, skip this step.
v_mod6_genesis 71
v_mod6_genesis 72 Ubuntu:
v_mod6_genesis 73 sudo apt-get install -y gnupg
v_mod6_genesis 74
v_mod6_genesis 75 [NOTE: 1.4.19 seems to be the oldest portage a recent gentoo ships with)]:
v_mod6_genesis 76 Gentoo:
v_mod6_genesis 77 emerge =gnupg-1.4.19
v_mod6_genesis 78
v_mod6_genesis 79 [ Install wget ]:
v_mod6_genesis 80
v_mod6_genesis 81 Many UNIX systems come with `wget` installed already, if yours does not,
v_mod6_genesis 82 install it:
v_mod6_genesis 83
v_mod6_genesis 84 Ubuntu:
v_mod6_genesis 85 sudo apt-get install -y wget
v_mod6_genesis 86
v_mod6_genesis 87 Gentoo:
v_mod6_genesis 88 emerge wget
v_mod6_genesis 89
v_mod6_99993 90 [ Additional UNIX Commands Required ]:
v_mod6_99993 91
v_mod6_99993 92 Recent distributions of Linux seem ship without tools that one would
v_mod6_99993 93 automatically imagine are included by default. Unfortunate users have
v_mod6_99993 94 found this out the hard way. You will need the following binaries
v_mod6_99993 95 on your system, or V will not run. If V does not find one of these
v_mod6_99993 96 binaries on your system, it will report which one it can not find and exit.
v_mod6_99993 97
v_mod6_99993 98 They are, as follows (instructions on `gpg` and `wget are posted above):
v_mod6_99993 99
v_mod6_99993 100 gpg [GnuPG]
v_mod6_99993 101 wget
v_mod6_99993 102 cat
v_mod6_99993 103 echo
v_mod6_99993 104 ls
v_mod6_99993 105 mkdir
v_mod6_99993 106 patch
v_mod6_99993 107 pwd
v_mod6_99993 108 rm
v_mod6_99993 109 sha512sum
v_mod6_99993 110 sort
v_mod6_99993 111 which
v_mod6_99993 112 mktmp
v_mod6_99993 113
v_mod6_99993 114 If you do not have one of these binaries on your system, for whatever
v_mod6_99993 115 reason, consult your OS documentation to determine how to install it.
v_mod6_99993 116
v_mod6_genesis 117 [ Install GraphViz ]:
v_mod6_genesis 118
v_mod6_genesis 119 In addition to Graph::Easy, if you wish to have V automatically build the
v_mod6_genesis 120 SVG graph in an HTML output file for you from the Dot language output file,
v_mod6_genesis 121 also output by V, you need to install GraphViz.
v_mod6_genesis 122
v_mod6_genesis 123 Ubuntu:
v_mod6_genesis 124 sudo apt-get install -y graphviz
v_mod6_genesis 125
v_mod6_genesis 126 Gentoo:
v_mod6_genesis 127 emerge -a graphviz
v_mod6_genesis 128 etc-update [ enter -5 when prompted ]
v_mod6_genesis 129 emerge -a graphviz [ Answer Yes at prompt ]
v_mod6_genesis 130
v_mod6_99993 131 NOTE: Some people have had issue with getting a proper graphviz installed,
v_mod6_99993 132 and subsequently no `dot` binary on their system. It may be resolved by
v_mod6_99993 133 doing the following:
v_mod6_99993 134
v_mod6_99993 135 emerge media-gfx/graphviz
v_mod6_99993 136
v_mod6_genesis 137 [ Download V Archive ]:
v_mod6_genesis 138
v_mod6_genesis 139 Now you must obtain the V archive & signature from:
v_mod6_genesis 140
v_mod6_99993 141 http://thebitcoin.foundation/v/V-20180222.tar.gz
v_mod6_99993 142 http://thebitcoin.foundation/v/V-20180222.tar.gz.mod6.sig
v_mod6_genesis 143
v_mod6_genesis 144 Then check the PGP signatures supplied:
v_mod6_genesis 145
v_mod6_genesis 146 wget http://mod6.net/mod6.asc -O mod6.asc
v_mod6_genesis 147 gpg --import mod6.asc
v_mod6_genesis 148
v_mod6_genesis 149 [ Key Fingerprint: 0x027A8D7C0FB8A16643720F40721705A8B71EADAF ]
v_mod6_genesis 150
v_mod6_99993 151 gpg --verify V-20180222.tar.gz.mod6.sig V-20180222.tar.gz
v_mod6_genesis 152
v_mod6_genesis 153 Then unpack the archive:
v_mod6_genesis 154
v_mod6_99993 155 tar -xf V-20180222.tar.gz
v_mod6_genesis 156
v_mod6_genesis 157 [ Start V for the first time ]:
v_mod6_genesis 158
v_mod6_genesis 159 First, set the executable bit on v.pl:
v_mod6_genesis 160
v_mod6_genesis 161 chmod 0755 v.pl
v_mod6_genesis 162
v_mod6_genesis 163 Before you get any further, create a '.wot' directory (V looks for '.wot'
v_mod6_genesis 164 in the current working directory by default) and populate it with PGP public
v_mod6_genesis 165 keys manually. Name the pubkey files as such: <wotid>.asc
v_mod6_genesis 166
v_mod6_genesis 167 For example: mod6.asc
v_mod6_genesis 168
v_mod6_genesis 169 Now have V sync the required Seals and Patches directories from a signed
v_mod6_genesis 170 mirror. To view the list of mirrors, run the following command, the output
v_mod6_genesis 171 you'll see below.
v_mod6_genesis 172
v_mod6_genesis 173 ./v.pl m v_mirrors
v_mod6_genesis 174 Mirrors signed by (mod6):
v_mod6_genesis 175 http://thebitcoin.foundation
v_mod6_genesis 176
v_mod6_genesis 177 As stated from mirrors output we can use URL from The Bitcoin Foundation to
v_mod6_genesis 178 sync V up-to-date with all the latest WoT entries (PGP Public Keys), VPatch
v_mod6_genesis 179 Signatures (Seals) and Vpatches.
v_mod6_genesis 180
v_mod6_genesis 181 To begin this initial sync do the following:
v_mod6_genesis 182
v_mod6_genesis 183 ./v.pl i http://thebitcoin.foundation
v_mod6_genesis 184
v_mod6_genesis 185
v_mod6_genesis 186 0x01]: V Usage
v_mod6_genesis 187
v_mod6_genesis 188 At this point the user has installed all of V's requirements, performed a
v_mod6_99993 189 look up of available signed mirrors, and sync'd the WoT, Patches and Seals.
v_mod6_genesis 190
v_mod6_genesis 191 What follows are usages and definitions of V's options with examples.
v_mod6_genesis 192
v_mod6_genesis 193 A note about option syntax. Any option enclosed with parenthesis ( ) is
v_mod6_genesis 194 required. The | separates any aliases of commands. Square brackets [ ]
v_mod6_genesis 195 denote optional options. Angle brackets < > denote required arguments to
v_mod6_genesis 196 a given command.
v_mod6_genesis 197
v_mod6_genesis 198 [ m | mirrors ]:
v_mod6_genesis 199 Arguments:
v_mod6_genesis 200 (<output_dir>)
v_mod6_genesis 201
v_mod6_genesis 202 The m or mirrors command is available to connect to the main V site:
v_mod6_genesis 203 http://thebitcoin.foundation Here, V can connect and pull the list of
v_mod6_genesis 204 available mirrors, signed by mirror administrators with L1 trust with
v_mod6_99993 205 deedbot and are in good standing in the WoT. Ask mod6 about this if you
v_mod6_genesis 206 want to run an authorized, signed mirror of V.
v_mod6_genesis 207
v_mod6_genesis 208 The mirrors command takes one required argument, an output directory for the
v_mod6_genesis 209 list of mirrors and the signatures so V can verify the list.
v_mod6_genesis 210
v_mod6_genesis 211 Example:
v_mod6_genesis 212 ./v.pl m v_mirrors
v_mod6_genesis 213 Mirrors signed by (mod6):
v_mod6_genesis 214 http://thebitcoin.foundation
v_mod6_genesis 215
v_mod6_genesis 216 [ i | init ]:
v_mod6_genesis 217
v_mod6_genesis 218 Arguments & Options:
v_mod6_genesis 219 (mirror_url) [(<pdir> <sdir>)]
v_mod6_genesis 220
v_mod6_genesis 221 The i or init command is intended to be utilized the first time running V
v_mod6_genesis 222 on an environment. It takes one required option, and two optional
v_mod6_genesis 223 options. The required argument is a V mirror URL to sync from. Next, the
v_mod6_genesis 224 user can choose to use the default Patches ('patches' in the current working
v_mod6_genesis 225 directory) and Seals (.seals in the current working directory) directories
v_mod6_genesis 226 by not setting the two <pdir> or <sdir> options -- only passing a mirror URL
v_mod6_genesis 227 argument to the init command. If the user wishes to use their own named
v_mod6_99993 228 directories, simply pass in those arguments in the exact order specified.
v_mod6_genesis 229
v_mod6_genesis 230 Example:
v_mod6_genesis 231 ./v.pl i http://thebitcoin.foundation
v_mod6_genesis 232 Full vpatch sync complete to "/home/mod6/patches"
v_mod6_genesis 233 Seal sync complete to "/home/mod6/.seals"
v_mod6_genesis 234
v_mod6_genesis 235 Example:
v_mod6_genesis 236 ./v.pl i http://thebitcoin.foundation wot vpatches seals
v_mod6_genesis 237 Full vpatch sync complete to "vpatches"
v_mod6_genesis 238 Seal sync complete to "seals"
v_mod6_genesis 239
v_mod6_genesis 240 [ wd | wotdir ]:
v_mod6_genesis 241
v_mod6_genesis 242 Arguments:
v_mod6_genesis 243 (<wotdir>)
v_mod6_genesis 244
v_mod6_genesis 245 The wd or wotdir command is available to point V at a specific WoT
v_mod6_genesis 246 directory rather than the default: '.wot' (in the current working directory)
v_mod6_genesis 247 There is one required argument: a WoT directory.
v_mod6_genesis 248
v_mod6_genesis 249 Example case, only mod6.asc exists in wot2:
v_mod6_genesis 250 ./v.pl f wd wot2
v_mod6_genesis 251 genesis.vpatch (mod6)
v_mod6_genesis 252 bitcoin-asciilifeform.1.vpatch (mod6)
v_mod6_genesis 253 rm_rf_upnp.vpatch (mod6)
v_mod6_genesis 254 ...
v_mod6_genesis 255
v_mod6_genesis 256 [ pd | patchdir ]:
v_mod6_genesis 257
v_mod6_genesis 258 Arguments:
v_mod6_genesis 259 (<patchdir>)
v_mod6_genesis 260
v_mod6_genesis 261 The pd or patchdir command is available to point V at a specific patch
v_mod6_genesis 262 directory rather than the default: 'patches', in V's present working
v_mod6_genesis 263 directory. There is one required argument: a vpatches directory.
v_mod6_genesis 264
v_mod6_genesis 265 Example case, only genesis.vpatch exists in patches2:
v_mod6_genesis 266 ./v.pl f pd patches2
v_mod6_genesis 267 genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
v_mod6_genesis 268
v_mod6_genesis 269 [ sd | sealdir ]:
v_mod6_genesis 270
v_mod6_genesis 271 Arguments:
v_mod6_genesis 272 (<sealdir>)
v_mod6_genesis 273
v_mod6_genesis 274 The sd or sealdir command is available to point V at a specific seal
v_mod6_genesis 275 directory rather than the default: '.seals' (in the current working
v_mod6_genesis 276 directory)
v_mod6_genesis 277 There is one required argument: a seals directory.
v_mod6_genesis 278
v_mod6_genesis 279 Example case, only seals created by mod6 exist in seal2:
v_mod6_genesis 280 ./v.pl f sd seals2/
v_mod6_genesis 281 genesis.vpatch (mod6)
v_mod6_genesis 282 bitcoin-asciilifeform.1.vpatch (mod6)
v_mod6_genesis 283 rm_rf_upnp.vpatch (mod6)
v_mod6_genesis 284 ...
v_mod6_genesis 285
v_mod6_genesis 286 [ w | wot ]:
v_mod6_genesis 287
v_mod6_genesis 288 Options:
v_mod6_genesis 289 [ finger ]
v_mod6_genesis 290
v_mod6_99993 291 The w or wot command will build a list of WoT entities eligible for
v_mod6_genesis 292 creating seals for approved vpatches. If a specific vpatch has not
v_mod6_genesis 293 been signed by a WoT entity, it is considered a 'WILD' vpatch, and will be
v_mod6_99993 294 ignored. A vpatch must be signed by both Co-Chairs of The Bitcoin Foundation
v_mod6_99993 295 to be considered approved for release.
v_mod6_genesis 296
v_mod6_genesis 297 Example:
v_mod6_genesis 298 ./v.pl w
v_mod6_genesis 299 asciilifeform:17215D118B7239507FAFED98B98228A001ABFFC7:Stanislav Datskovskiy <stas@loper-os.org>
v_mod6_genesis 300 ben_vulpes:4F7907942CA8B89B01E25A762AFA1A9FD2D031DA:Ben Vulpes <benkay@gmail.com>
v_mod6_genesis 301 mircea_popescu:6160E1CAC8A3C52966FD76998A736F0E2FB7B452:Mircea Popescu (Acest articol are apriori avantajul aliteralitatii alaturi.) <office@polimedia.us>
v_mod6_genesis 302 mod6:027A8D7C0FB8A16643720F40721705A8B71EADAF:mod6 (mod6) <modsix@gmail.com>
v_mod6_genesis 303 trinque:FC66C0C5D98C42A1D4A98B6B42F9985AFAB953C4:Michael Trinque <mike@trinque.org>
v_mod6_genesis 304
v_mod6_genesis 305 ./v.pl w finger
v_mod6_genesis 306 asciilifeform-B98228A001ABFFC7:17215D118B7239507FAFED98B98228A001ABFFC7:Stanislav Datskovskiy <stas@loper-os.org>
v_mod6_genesis 307 ben_vulpes-2AFA1A9FD2D031DA:4F7907942CA8B89B01E25A762AFA1A9FD2D031DA:Ben Vulpes <benkay@gmail.com>
v_mod6_genesis 308 mircea_popescu-8A736F0E2FB7B452:6160E1CAC8A3C52966FD76998A736F0E2FB7B452:Mircea Popescu (Acest articol are apriori avantajul aliteralitatii alaturi.) <office@polimedia.us>
v_mod6_genesis 309 mod6-721705A8B71EADAF:027A8D7C0FB8A16643720F40721705A8B71EADAF:mod6 (mod6) <modsix@gmail.com>
v_mod6_genesis 310 trinque-42F9985AFAB953C4:FC66C0C5D98C42A1D4A98B6B42F9985AFAB953C4:Michael Trinque <mike@trinque.org>
v_mod6_genesis 311
v_mod6_genesis 312 [ r | roots ]:
v_mod6_genesis 313
v_mod6_genesis 314 The r or roots command takes no options or arguments, unless a different
v_mod6_genesis 315 pd or patchdir is specified. It simply traverses the vpatch directories
v_mod6_genesis 316 contained vpatches and returns any root vpatches found in the topological
v_mod6_genesis 317 order.
v_mod6_genesis 318
v_mod6_genesis 319 Examples:
v_mod6_genesis 320 ./v.pl r
v_mod6_genesis 321 Root: genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
v_mod6_genesis 322
v_mod6_genesis 323 Examples:
v_mod6_genesis 324 ./v.pl r pd patches2
v_mod6_genesis 325 Root: genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
v_mod6_genesis 326
v_mod6_genesis 327 [ l | leafs ]:
v_mod6_genesis 328
v_mod6_genesis 329 The l or leafs command takes no options or arguments, unless a different
v_mod6_99993 330 pd or patchdir is specified. It simply traverses the vpatches in the
v_mod6_99993 331 vpatch directory and returns any leaf vpatches found in the topological
v_mod6_genesis 332 order.
v_mod6_genesis 333
v_mod6_genesis 334 Examples:
v_mod6_genesis 335 ./v.pl l
v_mod6_genesis 336 Leaf: asciilifeform_add_verifyall_option.vpatch (asciilifeform, mod6)
v_mod6_genesis 337 Leaf: asciilifeform_maxint_locks_corrected.vpatch (asciilifeform, mod6)
v_mod6_genesis 338
v_mod6_genesis 339 Example case, only genesis.vpatch exists in patches2:
v_mod6_genesis 340 ./v.pl l pd patches2
v_mod6_genesis 341 Leaf: genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
v_mod6_genesis 342
v_mod6_genesis 343 [ f | flow ]:
v_mod6_genesis 344
v_mod6_99993 345 The f or flow command prints a topological flow of vpatches based on
v_mod6_genesis 346 precedence. By default will look for the 'patches' directory in the present
v_mod6_genesis 347 working directory of V and print the flow to stdout.
v_mod6_genesis 348
v_mod6_genesis 349 Example:
v_mod6_genesis 350 ./v.pl f
v_mod6_genesis 351 genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
v_mod6_genesis 352 bitcoin-asciilifeform.1.vpatch (asciilifeform, mod6)
v_mod6_genesis 353 rm_rf_upnp.vpatch (asciilifeform, mod6)
v_mod6_genesis 354 bitcoin-asciilifeform.3-turdmeister-alert-snip.vpatch (asciilifeform, mod6)
v_mod6_genesis 355 bitcoin-asciilifeform.2-https_snipsnip.vpatch (asciilifeform, mod6)
v_mod6_genesis 356 bitcoin-asciilifeform.4-goodbye-win32.vpatch (asciilifeform, mod6)
v_mod6_genesis 357 asciilifeform_dnsseed_snipsnip.vpatch (asciilifeform, mod6)
v_mod6_genesis 358 asciilifeform_zap_hardcoded_seeds.vpatch (asciilifeform, mod6)
v_mod6_genesis 359 asciilifeform-kills-integer-retardation.vpatch (asciilifeform, mod6)
v_mod6_genesis 360 asciilifeform_zap_showmyip_crud.vpatch (asciilifeform, mod6)
v_mod6_genesis 361 asciilifeform_dns_thermonyukyoolar_kleansing.vpatch (asciilifeform, mod6)
v_mod6_genesis 362 asciilifeform_and_now_we_have_block_dumper_corrected.vpatch (asciilifeform, mod6)
v_mod6_genesis 363 mod6_fix_dumpblock_params.vpatch (asciilifeform, mod6)
v_mod6_genesis 364 bitcoin-v0_5_3_1-static_makefile_v002.8.vpatch (asciilifeform, mod6)
v_mod6_genesis 365 bitcoin-v0_5_3_1-rev_bump.7.vpatch (asciilifeform, mod6)
v_mod6_genesis 366 asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ip.vpatch (asciilifeform, mod6)
v_mod6_genesis 367 asciilifeform_orphanage_thermonuke.vpatch (asciilifeform, mod6)
v_mod6_genesis 368 asciilifeform_and_now_we_have_eatblock.vpatch (asciilifeform, mod6)
v_mod6_genesis 369 bitcoin-v0_5_3-db_config.6.vpatch (asciilifeform, mod6)
v_mod6_genesis 370 asciilifeform_tx-orphanage_amputation.vpatch (asciilifeform, mod6)
v_mod6_genesis 371 asciilifeform_maxint_locks_corrected.vpatch (asciilifeform, mod6)
v_mod6_genesis 372 asciilifeform_lets_lose_testnet.vpatch (asciilifeform, mod6)
v_mod6_genesis 373 asciilifeform_add_verifyall_option.vpatch (asciilifeform, mod6)
v_mod6_genesis 374
v_mod6_genesis 375 Example case, only genesis.vpatch exists in patches2:
v_mod6_genesis 376 ./v.pl f pd patches2
v_mod6_genesis 377 genesis.vpatch (asciilifeform, mircea_popescu, mod6, trinque)
v_mod6_genesis 378
v_mod6_genesis 379 [ p | press ]:
v_mod6_genesis 380
v_mod6_genesis 381 Arguments:
v_mod6_genesis 382 (<press_dir> <head>)
v_mod6_genesis 383
v_mod6_genesis 384 The p or press command is available to apply vpatches up through <head> in
v_mod6_99993 385 topological order (see press-path command) to an output directory
v_mod6_99993 386 <press_dir>. There are two required arguments; an output directory for
v_mod6_99993 387 applied patches <press_dir> and a vpatch <head> as the tip of the tree to
v_mod6_99993 388 press up through. By default, no output is shown; however if the user
v_mod6_99993 389 supplies `v' or `verbose' directly after the p or press command then the
v_mod6_99993 390 output from the patching application process will be directed to stdout.
v_mod6_genesis 391
v_mod6_genesis 392 Example:
v_mod6_genesis 393 ./v.pl p press_output genesis.vpatch
v_mod6_genesis 394
v_mod6_genesis 395 Example:
v_mod6_genesis 396 ./v.pl p verbose press_verbose genesis.vpatch
v_mod6_genesis 397 genesis.vpatch
v_mod6_genesis 398 patching file bitcoin/.gitignore
v_mod6_genesis 399 patching file bitcoin/COPYING
v_mod6_genesis 400 patching file bitcoin/src/base58.h
v_mod6_genesis 401 patching file bitcoin/src/bignum.h
v_mod6_genesis 402 patching file bitcoin/src/bitcoinrpc.cpp
v_mod6_genesis 403 patching file bitcoin/src/bitcoinrpc.h
v_mod6_genesis 404 patching file bitcoin/src/checkpoints.cpp
v_mod6_genesis 405 patching file bitcoin/src/checkpoints.h
v_mod6_genesis 406 patching file bitcoin/src/crypter.cpp
v_mod6_genesis 407 patching file bitcoin/src/crypter.h
v_mod6_genesis 408 patching file bitcoin/src/db.cpp
v_mod6_genesis 409 patching file bitcoin/src/db.h
v_mod6_genesis 410 patching file bitcoin/src/headers.h
v_mod6_genesis 411 patching file bitcoin/src/init.cpp
v_mod6_genesis 412 ...
v_mod6_genesis 413
v_mod6_99993 414
v_mod6_99993 415 *** SEE ALSO 'press-path' ***
v_mod6_99993 416
v_mod6_99993 417 [ pp | press-path ]:
v_mod6_99993 418
v_mod6_99993 419 Arguments:
v_mod6_99993 420 (<head>)
v_mod6_99993 421
v_mod6_99993 422 The pp or press-path command is available to allow the user to view (via
v_mod6_99993 423 stdout) the actual path to be pressed, given a <head> found in the flow.
v_mod6_99993 424
v_mod6_99993 425 It is encouraged that a V user run this command before pressing to a given
v_mod6_99993 426 <head>. From release 99993 forward, the flow is no longer used to calculate
v_mod6_99993 427 the press path from a given <head>. Instead, with a given <head>, recurse
v_mod6_99993 428 all of the <head>'s antecedents and press those only.
v_mod6_99993 429
v_mod6_genesis 430 [ ss | sync-seals ]:
v_mod6_genesis 431
v_mod6_genesis 432 Arguments:
v_mod6_genesis 433 (<mirror_url> <sdir>)
v_mod6_genesis 434
v_mod6_99993 435 The ss or sync-seals command is available to allow the user to sync seal to
v_mod6_genesis 436 an alternative directory. Two arguments are required; the <mirror_url>
v_mod6_genesis 437 from which to sync and the alternative or existing seals directory <sdir>.
v_mod6_genesis 438
v_mod6_genesis 439 Example:
v_mod6_genesis 440 ./v.pl ss http://thebitcoin.foundation seals2
v_mod6_genesis 441 Seal sync complete to "seals2"
v_mod6_genesis 442
v_mod6_genesis 443 [ sv | sync-vpatches ]:
v_mod6_genesis 444
v_mod6_genesis 445 Arguments:
v_mod6_genesis 446 (<mirror_url> <pdir> <vpatches>... )
v_mod6_genesis 447
v_mod6_99993 448 The sv or sync-vpatches command is available to allow the user to sync one or
v_mod6_genesis 449 more individual vpatches to a alternative output directory. Three arguments
v_mod6_genesis 450 are required; the <mirror_url> from which to sync, the alternative or
v_mod6_genesis 451 existing directory <pdir> and one or more <vpatches>.
v_mod6_genesis 452
v_mod6_genesis 453 Example case, sync one vpatch to an existing patches directory:
v_mod6_genesis 454 ./v.pl sv http://thebitcoin.foundation patches genesis.vpatch
v_mod6_genesis 455 genesis.vpatch sync complete to "patches"
v_mod6_genesis 456
v_mod6_genesis 457 Example case, sync more than one vpatch to an alternative patches directory:
v_mod6_genesis 458 ./v.pl sv http://thebitcoin.foundation patches2 genesis.vpatch rm_rf_upnp.vpatch
v_mod6_genesis 459 genesis.vpatch sync complete to "patches2"
v_mod6_genesis 460 rm_rf_upnp.vpatch sync complete to "patches2"
v_mod6_genesis 461
v_mod6_genesis 462 [ sa | sync-all-vpatches ]:
v_mod6_genesis 463
v_mod6_genesis 464 Arguments:
v_mod6_genesis 465 (<mirror_url> <pdir>)
v_mod6_genesis 466
v_mod6_99993 467 The sa or sync-all-vpatches command is available to allow the user to sync
v_mod6_genesis 468 all vpatches from a given mirror to an alternative output directory. Two
v_mod6_genesis 469 arguments are required; the <mirror_url> from which to sync and the
v_mod6_genesis 470 alternative or existing patches directory <pdir>.
v_mod6_genesis 471
v_mod6_genesis 472 Example case, sync all vpatches to the pre-existing patches directory:
v_mod6_genesis 473 ./v.pl sa http://thebitcoin.foundation patches
v_mod6_genesis 474 Full vpatch sync complete to "patches"
v_mod6_genesis 475
v_mod6_genesis 476 Example case, sync all vpatches to an alternative patches directory:
v_mod6_genesis 477 ./v.pl sa http://thebitcoin.foundation patches2
v_mod6_genesis 478 Full vpatch sync complete to "patches2"
v_mod6_genesis 479
v_mod6_genesis 480 [ se | sync-everything ]:
v_mod6_genesis 481
v_mod6_genesis 482 Arguments:
v_mod6_genesis 483 (<mirror_url> <pdir> <sdir>)
v_mod6_genesis 484
v_mod6_genesis 485 The se or sync-everything command is available to allow the user to sync
v_mod6_genesis 486 all patches and seals from a given mirror to either existing or alternative
v_mod6_genesis 487 directories. Three arguments are required; the <mirror_url> from which to
v_mod6_genesis 488 sync, the existing or alternative output patches directory <pdir>, and the
v_mod6_genesis 489 existing or alternative seals directory <sdir>.
v_mod6_genesis 490
v_mod6_genesis 491 ./v.pl se http://thebitcoin.foundation patches2 seals2
v_mod6_genesis 492 Full vpatch sync complete to "patches2"
v_mod6_genesis 493 Seal sync complete to "seals2"
v_mod6_genesis 494
v_mod6_genesis 495 [ a | ante | antecedents ]:
v_mod6_genesis 496
v_mod6_genesis 497 Arguments:
v_mod6_genesis 498 (<vpatch>)
v_mod6_genesis 499
v_mod6_genesis 500 The a or ante or antecedents command is available to allow the user to view
v_mod6_genesis 501 the antecedents of a given vpatch. One argument is required, the name of a
v_mod6_genesis 502 <vpatch>.
v_mod6_genesis 503
v_mod6_genesis 504 Example:
v_mod6_genesis 505 ./v.pl a mod6_fix_dumpblock_params.vpatch
v_mod6_genesis 506 Antecedent: asciilifeform_and_now_we_have_block_dumper_corrected.vpatch \
v_mod6_genesis 507 (asciilifeform, mod6) [ a/bitcoin/src/bitcoinrpc.cpp ]
v_mod6_genesis 508
v_mod6_genesis 509 Example case, examine the antecedents of a given vpatch from an alternative
v_mod6_genesis 510 directory:
v_mod6_genesis 511 ./v.pl a asciilifeform_zap_showmyip_crud.vpatch pd patches2
v_mod6_genesis 512 Antecedent: asciilifeform_zap_hardcoded_seeds.vpatch (asciilifeform, mod6) \
v_mod6_genesis 513 [ a/bitcoin/src/net.cpp ]
v_mod6_genesis 514
v_mod6_genesis 515 [ d | desc | descendants ]:
v_mod6_genesis 516
v_mod6_genesis 517 Arguments:
v_mod6_genesis 518 (<vpatch>)
v_mod6_genesis 519
v_mod6_genesis 520 The d or desc or descendants command is available to allow the user to view
v_mod6_genesis 521 the descendants of a given <vpatch>. One argument is required, the name of
v_mod6_genesis 522 a <vpatch>.
v_mod6_genesis 523
v_mod6_genesis 524 Example:
v_mod6_genesis 525 ./v.pl d mod6_fix_dumpblock_params.vpatch
v_mod6_genesis 526 Descendant: asciilifeform_and_now_we_have_eatblock.vpatch \
v_mod6_genesis 527 (asciilifeform, mod6) [ a/bitcoin/src/bitcoinrpc.cpp ]
v_mod6_genesis 528
v_mod6_genesis 529 Example case, examine the descendants of a given vpatch from an alternative
v_mod6_genesis 530 directory:
v_mod6_genesis 531 ./v.pl d asciilifeform_zap_showmyip_crud.vpatch pd patches2
v_mod6_genesis 532 Descendant: asciilifeform_dns_thermonyukyoolar_kleansing.vpatch \
v_mod6_genesis 533 (asciilifeform, mod6) [ a/bitcoin/src/net.cpp ]
v_mod6_genesis 534
v_mod6_genesis 535 [ o | origin ]:
v_mod6_genesis 536
v_mod6_genesis 537 Arguments:
v_mod6_genesis 538 (<sha512_hash>)
v_mod6_genesis 539
v_mod6_99993 540 The o or origin command is available to allow the user to pass a sha512
v_mod6_genesis 541 hash and view where the given hash originated in the source tree.
v_mod6_genesis 542
v_mod6_genesis 543 [ g | graph ]:
v_mod6_genesis 544
v_mod6_genesis 545 Arguments & Options:
v_mod6_genesis 546 (<output_dotfile> [<output_svg_html_file>])
v_mod6_genesis 547
v_mod6_99993 548 The g or graph command is available to produce a topological flow graph in
v_mod6_genesis 549 SVG format. The command has a required argument, the <output_dotfile>.
v_mod6_genesis 550 The output Dot language file can be used to generate the SVG HTML output
v_mod6_genesis 551 file with the `dot` binary. To produce the output Dot language file, the
v_mod6_genesis 552 perl library Graph::Easy must be installed on the local environment.
v_mod6_genesis 553 The optional command is given as a name for the <output_svg_html_file>.
v_mod6_genesis 554 If 'graphviz' is installed on the local environment, then the `dot` binary
v_mod6_genesis 555 should be available for V to invoke and generate the SVG HTML output for
v_mod6_genesis 556 the user automatically. If it is not possible for the user to install
v_mod6_genesis 557 'graphviz' on the local environment for whatever reason, the Dot language
v_mod6_99993 558 output file can be copied to a separate environment where 'graphviz' can be
v_mod6_genesis 559 installed. A command like this is used to generate the SVG HTML output
v_mod6_genesis 560 with the `dot` binary: `dot -Tsvg v-graph.dot > v-graph.html`.
v_mod6_genesis 561
v_mod6_genesis 562 Example:
v_mod6_genesis 563 ./v.pl g vpatch.dot vpatch-graph.html
v_mod6_genesis 564 Printed Graphviz dot file to vpatch.dot
v_mod6_genesis 565 Executed `dot` and built svg html output file: vpatch-graph.html
v_mod6_genesis 566
v_mod6_genesis 567 Example case, build a graph from an alternative WoT, Patches and Seals
v_mod6_genesis 568 directory:
v_mod6_genesis 569 ./v.pl g vpatch-graph2.dot vpatch-graph2.html wd wot2 pd patches2 sd seals2
v_mod6_genesis 570 Printed Graphviz dot file to vpatch-graph2.dot
v_mod6_genesis 571 Executed `dot` and built svg html output file: vpatch-graph2.html
v_mod6_genesis 572
v_mod6_genesis 573 [ v | version ]:
v_mod6_genesis 574
v_mod6_genesis 575 The v or version command simply prints the current version of V to stdout.
v_mod6_genesis 576 This command takes no options or arguments.
v_mod6_genesis 577
v_mod6_99993 578 [ h | help ]:
v_mod6_genesis 579
v_mod6_99993 580 The h or help command will print a longer, more verbose help message
v_mod6_genesis 581 to stdout. This command takes no options or arguments.