mod6's Blog

2020/02/25

Multiple Vpatches Tested And Signed

Filed under: Bitcoin, Keccak, V — mod6 @ 21:20

Earlier this month I reground and began testing on three vpatches as detailed in the article . The testing has been completed and they are working as expected.

If you participated in testing these three vpatches since the posting of my article; you may discard my 'mod6-vpatch-testing' key and the signatures (seals) of those vpatches with that specific key. They are no longer needed. Next, simply add the new signatures (made with my main key) below. If you did not participate in the testing, please disregard.

Here are links to the vpatches as well as their signatures with my main key:

A. mod6_phexdigit_fix.vpatch  [sig]
B. mod6_excise_hash_truncation.vpatch  [sig]
C. mod6_whogaveblox.vpatch  [sig]

Please note that these vpatches and signatures have been published to The Foundation website  [with signatures]. The new leaf to press through, is 'mod6_whogaveblox.vpatch'. The Foundation's TRB HowTo guide has been updated to reflect this change.

Let me show some log snippets from the testing conducted:

Setup with a blkcut of blk0001.dat.  Will read them in via 'eatblock' from a local file system.  Will ensure that the log is spitting out what it should be
with regard to excise_hash_truncation and whogaveblox.

mod6@localhost ~/trb/v054/bitcoin/bin $ LC_ALL="C" ./bitcoind -myip=127.0.0.1 -nolisten -maxconnections=0 -caneat -verifyall &
[1] 11039
mod6@localhost ~/trb/v054/bitcoin/bin $

(from debug.log):

ThreadRPCServer method=eatblock
Attempting to create block #1 from file /home/mod6/blkcut/all/0001/blk0001.dat.0.blk
ERROR: ProcessBlock() : already have block 0 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f from peer LOCAL
ThreadRPCServer method=eatblock
Attempting to create block #1 from file /home/mod6/blkcut/all/0001/blk0001.dat.1.blk
SetBestChain: new best=00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048  height=1  work=8590065666
ProcessBlock: ACCEPTED block 00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048 from: LOCAL
ThreadRPCServer method=eatblock
Attempting to create block #2 from file /home/mod6/blkcut/all/0001/blk0001.dat.2.blk
SetBestChain: new best=000000006a625f06636b8bb6ac7b960a8d03705d1ace08b1a19da3fdcc99ddbd  height=2  work=12885098499
ProcessBlock: ACCEPTED block 000000006a625f06636b8bb6ac7b960a8d03705d1ace08b1a19da3fdcc99ddbd from: LOCAL

...

ThreadRPCServer method=eatblock
Attempting to create block #188526 from file /home/mod6/blkcut/all/0001/blk0001.dat.188526.blk
SetBestChain: new best=0000000000000775ff4ed4a434851e3fafe46617d595f06eb7d560d16b7d34a3  height=188526  work=383777361030021669687
ProcessBlock: ACCEPTED block 0000000000000775ff4ed4a434851e3fafe46617d595f06eb7d560d16b7d34a3 from: LOCAL
ThreadRPCServer method=eatblock
Attempting to create block #188527 from file /home/mod6/blkcut/all/0001/blk0001.dat.188527.blk
SetBestChain: new best=000000000000079da5ca35f89821bf77449b23e1ed9ca834a6db9813cf59da56  height=188527  work=383784883584756464688
ProcessBlock: ACCEPTED block 000000000000079da5ca35f89821bf77449b23e1ed9ca834a6db9813cf59da56 from: LOCAL
ThreadRPCServer method=eatblock
Attempting to create block #188528 from file /home/mod6/blkcut/all/0001/blk0001.dat.188528.blk
SetBestChain: new best=000000000000040167c69f7a835d124214316b72d9a9fc2ec2413a238b6ab6da  height=188528  work=383792406139491259689
ProcessBlock: ACCEPTED block 000000000000040167c69f7a835d124214316b72d9a9fc2ec2413a238b6ab6da from: LOCAL



Next, I stopped TRB, then restarted it while connected to a single republican node:

(starting...)

Loading block index...
LoadBlockIndex(): hashBestChain=000000000000040167c69f7a835d124214316b72d9a9fc2ec2413a238b6ab6da  height=188528
....
received block 0000000000000699f01c80a9cf8a59b9c2935124490a855015355269a48db237
SetBestChain: new best=0000000000000699f01c80a9cf8a59b9c2935124490a855015355269a48db237  height=188529  work=383799928694226054690
ProcessBlock: ACCEPTED block 0000000000000699f01c80a9cf8a59b9c2935124490a855015355269a48db237 from: 208.94.240.42
received block 0000000000000412be2534fd3c05b724016cd627cc7f9a3ced1eb7c1f046b341
SetBestChain: new best=0000000000000412be2534fd3c05b724016cd627cc7f9a3ced1eb7c1f046b341  height=188530  work=383807451248960849691
ProcessBlock: ACCEPTED block 0000000000000412be2534fd3c05b724016cd627cc7f9a3ced1eb7c1f046b341 from: 208.94.240.42
received block 00000000000001310f277d612633c98808dd1677cdb543ce5ca0e222a64d18d9
SetBestChain: new best=00000000000001310f277d612633c98808dd1677cdb543ce5ca0e222a64d18d9  height=188531  work=383814973803695644692
ProcessBlock: ACCEPTED block 00000000000001310f277d612633c98808dd1677cdb543ce5ca0e222a64d18d9 from: 208.94.240.42
received block 000000000000061f8b963a67d16c8fe5e0b136f0651b9f3905163d9159621c35
SetBestChain: new best=000000000000061f8b963a67d16c8fe5e0b136f0651b9f3905163d9159621c35  height=188532  work=383822496358430439693
ProcessBlock: ACCEPTED block 000000000000061f8b963a67d16c8fe5e0b136f0651b9f3905163d9159621c35 from: 208.94.240.42

2020/02/15

Three TRB Vpatches For Testing

Filed under: Bitcoin, Keccak, V — mod6 @ 01:27

I've been working on regrinding three vpatches that are being considered for integration into the current TRB vtree (keccak).

These three vpatches, along with their signatures, are placed into this article (see below) for testing. They have been signed with my 'mod6-vpatch-testing' key. (For those who do not know, I use a secondary key for signing vpatches that are still considered "not final", "experimental", or "testing".)

Here are the vpatches and their seals (signatures) with my 'mod6-vpatch-testing' key. Most importantly, let it not go unsaid: Any vpatch signed with my 'mod6-vpatch-testing' key is for TESTING ONLY. You should NEVER use a vpatch in 'production' or 'battlefield' mode that has been signed with my vpatch testing key. Also, as always, be sure to read ALL code before you put it into use! Only you, dear reader, can be the guardian of your own safety.

Below are the three vpatches, currently in testing, along with their corresponding seals. I am also linking their historical posts to the btc-dev Mailing List.

A. mod6_phexdigit_fix.vpatch  [sig]

   Historical Link for phexdigit_fix:
   * Original post to the btc-dev mailing list

B. mod6_excise_hash_truncation.vpatch  [sig]

   Historical Links for excise_hash_truncation:
     * Original post to the btc-dev mailing list by ben_vulpes
     * Second post, follow up to the original, by ben_vulpes
     * Third post, first regrind of the original by me.
     * Fourth post, second regrind of the original.
       Includes a manifest file, original vpatches and comments incorporated.

C. mod6_whogaveblox.vpatch  [sig]

   Historical Link for whogaveblox:
     * Original post to the btc-dev ML by asciilifeform
   ** New single line change by me in a conditional statement.
      Here's a small snip of a diff of the vpatches:

@@ -16,7 +35,7 @@
 +    // Whose block we are trying.
 +    string peer_ip;
 +
-+    if (pfrom) {
++    if (pfrom != NULL) {

Building a testing vtree with these new vpatches:
1. You'll need a Keccak vtron, find 'starter_v_2.tar.gz' here, by diana_coman.
2. You'll need a full copy of the current TRB vtree (keccak); vpatches and their corresponding seals.
3. Place these in your patches and .seals directories respectively.
4. You'll need to place the vpatches for testing (phexdigit_fix, excise_hash_truncation, whogaveblox) in your 'patches' directory.
5. You'll need to place the their corresponding seals (signed with my 'mod6-vpatch-testing' key) into your '.seals' directory.
6. You'll need to get my main key and place it in your '.wot' directory.
7. You'll need to get my mod6-vpatch-testing key and place it in your '.wot' directory.
8. Now you should have 'mod6_whogaveblox.vpatch' as a single leaf:

mod6@gentoo ~ $ vk.pl l
Leaf: mod6_whogaveblox.vpatch (mod6-vpatch-testing)

9. You should have a flow that looks like this:

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

10. A press-path that looks like this:

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

As far as my own testing, I have been able to place these vpatches, along with their seals into V, and press all the way up through the single leaf, 'mod6_whogaveblox.vpatch'. After successful press, I was able to successfully compile TRB. I haven't completed any further testing as of yet. Testing is on-going, currently. I anticipate about 7 to 10 days of further testing before completion.

That's all for now -- upon successful testing, will be issuing final signatures with my main key for these vpatches (see above) in a follow up article.

Powered by WordPress