From 8444b78e01e6dee8fdd5c8b80f4f1aa5186097a5 Mon Sep 17 00:00:00 2001 From: teor Date: Tue, 16 Mar 2021 11:30:54 +1000 Subject: [PATCH] Add Mainnet Canopy block test vectors Including one block that just happened to be 72 kB, in binary format. --- .../src/vectors/block-main-1-046-399.txt | 1 + .../src/vectors/block-main-1-046-400.txt | 1 + .../src/vectors/block-main-1-046-401.bin | Bin 0 -> 73079 bytes .../src/vectors/block-main-1-180-900.txt | 1 + zebra-test/src/vectors/block.rs | 32 ++++++++++++++---- 5 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 zebra-test/src/vectors/block-main-1-046-399.txt create mode 100644 zebra-test/src/vectors/block-main-1-046-400.txt create mode 100644 zebra-test/src/vectors/block-main-1-046-401.bin create mode 100644 zebra-test/src/vectors/block-main-1-180-900.txt diff --git a/zebra-test/src/vectors/block-main-1-046-399.txt b/zebra-test/src/vectors/block-main-1-046-399.txt new file mode 100644 index 00000000..36c75269 --- /dev/null +++ b/zebra-test/src/vectors/block-main-1-046-399.txt @@ -0,0 +1 @@ +04000000d2fb294141b1c692681d11e2118566b021e25ed6c07aa0ca5bedf1000000000070cdf7ffd6ae0d1acec03627a27c44c813284cfb107c9df6682ee2a2abe1cc59567586ffd5fb09b349c149385f5b6ea544370172737b05e54007b1869031d8f5c214b55f2e16021cf803a43f00000000000000000000000000000200000000000000000000009de8fd400500ddfe68ea5d29b1536591da5b1980ba45fa1634ce18cd7a4eab15f370c7a0422e3236865d143e59b7940f1242bf66c5eaa2b001b21dd330fd7db3908f62c012ecb4943116451d77bb61ac4374402ad4301c59112218794c84d84d117f7c2397f4556ede0f895e391e2c920f179f681021b4e654681f6b5665222b1505a32dbfcbb72f9f3c94fdd5690ef5e6f3527fef59740b37a3ff6220603d11b0123583c2e7669d8a1893008705d205ab106cf30df05431e30fb15304da4916d4502425879e6be10b992bd71560d3b3bbd9a3d01de93212cba18eada34b57a722231aac6b08c11e0f3790e215f9d686769edb655011a4bb88d065e9660a7ed5310881ca97de312b8bb57321a91744f715585ab537620af68dd5eedba7bb5f70e2ed707723a228fa74be101c04f21efa13cd9de8c7c272c12dc85b54aa9f88196bf60563cda765879929c72c7b3f199e2b7cf62c79017fbe5582a3ed47e654c4be97d14e220aebdc896e0e4c2bb379b33067fc2ec2d0269da6e971d5342a2c0af9beb98885a05f60f5646548d6a8339d06dfa4ec54fe373c292d4143c82f2591ac66291f657b9b848e1b88d4a0bc4a8c87adac7234926dcee118c05eedf34da06508f0a484b5688975128a39745619533e04da1eed3c594d342c05fccfc30903ba75e1526356ac1534d95651a3d538a1c464e880ee6eaafb360ebb3685069dadd85fe92153acdb637ba1d4b1111ab33a3fbe4d1592bcb5e6a44fbf1356c46edf638ad78c19fb3916239e347f171366c3cee3c66c77bec50025d7e65139948e9d7bd1b9abe340242896f852c3b1dcbfc67c11152e8e74c7da417ab5e11c1d0ec52121691fb1234e1e94e560204e23cef529d385732727ea483fa1bc13e29639d5c5b2aea5d502ddd5318a710cfadf74a4489eee7451eb8353a2b5b59fd9e910bb6a2ebd7f09021c8fca20dfd425a0b4862df5f5850731bc5d8c7e14c0662bba0cf72acab021682ec558d1c045945983069a6bfe6d466eccb3f01169677265b5a64956872b0a58121c656570a96c368212ba597c99603bb13f1402962a82198f16b56ffb990f7f6734b734e9bf25222429f172ed896eaae7970306109bcd895ccf108f6b0fd2b0a17d14b85d72b5f5ccbaed0496b61c3e7fd42fd7bd17a0627e77454a993489621b76e800fc9f78051251faa6a275c7853cf6f2a071986718a71fb5a90ca65e95df09068b6aabd208f8a5c9ca55517345c93c7113f4ca685289c24006dcb9e3317a5b07f86a9a4ec745a6135fd1376fc23534cf66440aab9b1aff720e307d7d71271e599af5b15b33a77cdcb02abf04475279b600c4ebe341762e961261dc3e21ebbf9da97c26408fcae835f7a9dda685670866d4d9756f365511449d54b990e6ee31d10fd589b0dc10c1a73e8d42f002acec98bfd87ba5773a00b0c594ace8a50df785440d58011f93a025bfea9a0120754ca8af993c5fed5d0466ea7eff613311af675480a52ebbe521c2de4ae40dfd9c6053d2180b3758a2bc8c604ce90a4cbcc23a16e45d2af21a19e3be9c72b544b7c66d4c12b79bdd375a34ded4d66260f766b4081743633605dc35d0e620110cf14adfafe990e2025fbe27cd15aded7a65b845a1ad1a026f7c13e951564bacfdb3db63a61dc76402fb2b44250f588cdd9632f99b58b33965fe729ded12a4e9853a8ecc254825a660d566da39c9a9585d01193b89aea3a7a63dc1cfc27f4453036d3e585fb60c41dec7b493685fc5a16e3984cc6a4042c1bfbc1d4903c414dfdd44a5044db044648d69c2463fe1f9ae0f0d698f2248d267c9cd0b229dbbcbb5328f4a5955c911a201e1a0d3a1b3d6ffd147f43e0d1d4946b61d744e2d2e2913206e0b4ec4352c10b58b3179d856d502010400008085202f89010000000000000000000000000000000000000000000000000000000000000000ffffffff05037ff70f00ffffffff020065cd1d000000001976a914be62da59de8993dd79965ddd27629b1ffe55e46e88ac405973070000000017a9143770b379a58159d907f6b83868ca65e1a450753a8700000000000000000000000000000000000000 diff --git a/zebra-test/src/vectors/block-main-1-046-400.txt b/zebra-test/src/vectors/block-main-1-046-400.txt new file mode 100644 index 00000000..e631d511 --- /dev/null +++ b/zebra-test/src/vectors/block-main-1-046-400.txt @@ -0,0 +1 @@ +040000008c739e06a2b504ce080d86112d26e60f3f3c4ab7d8cd59b2573916000000000065f41fdaa837e7ab65f743883e8ba3fec6a78130ad280bdca90232bbdabd4aba3c008b249a9bda2c022c3188b86f8e3ea5f839fecfe1003b37e5e04f8f8a2148c814b55f5213021c1304783146d10c0300000000000000000000000000000000000000006fe95eacfd40050023a558af567945f27ae37099acd46a552cd67acd041c67ce81ee440d9d29904b80ab2c80c56fed95dd11749f01f4af279d7c5035b334461b92e5565c60e92d75ece1b03825b9f6bc34946edff9c30ec77ba08209c010d4210c9cc2d623b1b9a0340a2076c8b336980f7dea5197f862b1ebde56908bbedfe2db7dbbd5eb23d8cac929dc13319c4dc4fd5a481ded8b03edac12281bbb76140a908d968614691ad4bbe56eb19c5bd602ba9fef2b873f50dd2130e6a0de6c80daa49c3e7610d440ef9dcdc247877d510fcb2dca2d09723f9d7611d26d2f8297e16db7baa36e5c32b1619e7a0d887d287d93d59ae6c8f3c183481be0cc6ac60a63db3b35043d3374e24e693d4a331132bac8ac14a6bbd1f4d011f3737ad08fec9718b62541a7b6350697e8363c901eeac97c82340565f4d523ac8c217531730ddeb528272b5f0a02e21edb8f76034e2cd5184775b51cf66c01bb40b7ac5158590406740982230b7db1886e6b9a072e2907085edbf7bf0a20add334a7aeb6009651f12c72db5c33da0a5b606f931231c5ba9f0cd7da3cd0541384f4c25610e1944ab54b4dfb496d57e90e8ab702daf8db6d2a7cb35dfce067e9288270ac68599f1a034f4ddd8ded26b3a78f2271ef53d03e5af8b5dbbe04f679cc8af31795a881e25257218d32d38c99a4e9515df6d334a26f396419cb7f4667bc7f116e590df802d60462d1cc4618715f406429e7f2fdb7a85be76817ce8a330de2e08d6866663349ef247b365ede69ee10d6fff2066b5989a6f0d2064af370599a3d96428a54395b3b78556e1f1ff2a5f6edc4ed5ebbc836b19505169554550730e4905c13f1232de36f62007fb13b0dce6ea86684dea593d7125888a6b0668b197497200a9bab485d85a1827648c0d1afaae58991185b2fed521d23b00758d54cf26ba66f56fbf39f06c27873700139248e2707bb47657a702cdf87c9f6bb031963c0146220c03a58dfff8962a4661a5269a53037327a36056a92f730c713c31d5e6534dd38181574ab8f84c71653ee210dd45be72cfa15948252868972fc1d22430296e7c9c341cb60fe1522a4773e2c90ac07c9c0b0149d6548c88e4ad770a3a2478055a52f474e1baa160acc54bf3a87805a723cc18373ab3db12a6bead7af29ca295e2e9b395da59d037f14e612695fc5b353680215d5bf0e4aee7d1af0320dc9b7b305302f5abdab288b97002c12d919c3dfc31bfc65792dd336d796bc040f07ab84795055d89f90db54ab30c8c31feb20e5043d50b155ef17cdc1399345fced6578eb905e7cc90e0e8e9e84e23139e340c1e972bf7291d0b7afe6e00ff91ef44133ea25c88268e6efdcd27672be7e76ce17101b6f6ecf64e2d69223dc30b38c26840c9ba3478dcd4d2fabf0bfd5f0ccea880f577bdaf0e1bda340027a64d292c0f5bb93827469fe69c8d210545ad06517e9bb3b7452a9817edf44f8786d904ab6b0172ada07a86a0101f0415da931958370c11451dd2cf0774c2dde2a221a52c7a4e016351a8b63c3a97c2ebef3f60379613f03c981f7278313469cc6036996d65ca3fe53984348779585abb94dd5835dfb19dd6feb3e12ea2721e54a22237cd1960c2464f2a71dcd92911ec76039c835874917db11c04853d5eeabdaa51acc8a89b809a9fb2c9791d33168ca527407f6d5f4e30c17670011182d86358d23bce2267411abb1b2f5624bf689cf10811ae1838d4e5d52fb2265ee2a5f731d073bb378117fb63a3de2fa814a44a262f06ffc81e75855634410f391b4aad7bc82daf9313efceb12605f7153e2f02b263d22faa4c0718a4449834fd24caf3cfc9af9ac1e22dd94a37391e3f2e556471d6b1c335785bc19a02f9d3c93efd2521db05373ced8760aaa2e6d3ee799010400008085202f89010000000000000000000000000000000000000000000000000000000000000000ffffffff050380f70f00ffffffff0480b2e60e000000001976a914588219b4d6bba2e535c2f92af7f85f5687ce82ce88ac38c94d010000000017a91418304d852fb0f7cba26908c85a5573933be60cb28740787d010000000017a914931fec54c1fea86e574462cc32013f5400b8912987286bee000000000017a914d45cb1adffb5215a42720532a076f02c7c778c908700000000000000000000000000000000000000 diff --git a/zebra-test/src/vectors/block-main-1-046-401.bin b/zebra-test/src/vectors/block-main-1-046-401.bin new file mode 100644 index 0000000000000000000000000000000000000000..5702fb3eb133132f021a12996d8cbd53f31d67a4 GIT binary patch literal 73079 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 literal 0 HcmV?d00001 diff --git a/zebra-test/src/vectors/block-main-1-180-900.txt b/zebra-test/src/vectors/block-main-1-180-900.txt new file mode 100644 index 00000000..c19771fc --- /dev/null +++ b/zebra-test/src/vectors/block-main-1-180-900.txt @@ -0,0 +1 @@ +04000000f2e94c8ecbb5398ea71b920efe058639edb8a3caaa5e08a7a746920000000000bbc9e4c8ab69b7e9fd48542e622518e3d17f0c28c2bea4bfa9546bc4335e46850376d888c704bc035aba2879271f519e5f5788d378fbb7d2db6a5007ef765e8db3d94f6057ae011cf89d36d200000000000000000000000000000700000000000000000000011333fd4005003a74a5c982672fb13ce414d674e785cf94303d4d0fd2561839aac001b3808678fbee15b5ad4b57d7852a69fa69fe996c0fd21f184548d1ca72271d13d13432c24cb54bd3a10f021b08c4cee2933af4d818d4940c9c0a31fd4ca834d68922fef23029118f4b7c97361a7ae245dd13faa7f6f0854ec5cef42e8ada9742d00f3042af7d6eeb2bb94775219bbb88ea9a30bf93e217e0212cb2c81ac4b90e85707361f8135ce6dcec1202d2b8987f89feb70b74006c00e1a72d5b625784e5187571b201da39db892664f46976615f5c95bdbcd70c83588f1ac685be99a42177b2701982a968df8be91153ac2066a03583ea8644c14f4c5bc2c55fdb9d7f0335efbe1bda4a71dabae0504e30f5c1276f2de54e1c62defd79a29c6139ff54ed4b276e8a2d1fdda94c076f2bc9431810df328b04f5873bdba620dc799c5c25d49f51815c2085b43a6819d061939a503619727e00c8f6c74a85014fda83e3681aead92abfb29f79562610abd25915a465235e6711e9b9fdc244da9b92590106e8302c092575406f435b8b799f3bc4a0dfc40d07a8cfa2aa8e648d88a19217fdc4ecdca0a57a586212041ffb368b07ab17ca669b487af55e32993e05dc41de87fd666136f183f7c5c12a431b16fc7198c8db2cc095b546d01e5bc8da836f515d5912a3739606f835a6ba7c169b8147804e1a9677e25493132639c9df093cbef22fa4ce0d95186138ffb4d1f5f79d1a0cdb0f9cadb339d76fddcc8022b67225c44f2c477e607f10175ef9cb0d2e73e8886118a2a4e53945457d6c9921533c6a39533cac9b382251ce5c1ad15d0c589c490cd089dd17da1291b0c3517bd8154999db605c71af0eb42662fb4e3612d098959303d82f6b1d2dfe507a3afdc48085d51799926f244cdf2bb179c146bb26416dd945f6f92232b564fcfa0feb576adaebb41ae23503d8326953ad091f7463c224b9e64a3cd058f232e20bd0abeeae65870ba587b47e2dcc7761522075758d04d80418c81d8709ed0fe1ffbe7b22f57442ce309a098fd6c4a084c4ed8250b59c82d1056de2313349650d8cc07d3b1a14f0eb6541333bb8d038cef789d10527272dfc171acae59cbff836fc7f2cb3395e7c6f8f2c292a112d0f6d114c120462114f170121a749d50a38f89bdc30d698bfe89ac5e9d663c3fd8075bcb1b204a4d636a58a14f7cb12f34d196624612ca54b1d9c074d2d94c8a9f791c800384e5a50f93311b8bea0ef067c9d01a188bd4282cfe35117ae052eee26da749625ed31d13eceed430592041bf15d23c27903df20d81a79f10b140e3418812441ac59ddea89a78b7a2c70207fd97d06173187387933cdc6fd5f2d4118cf45b1234b8a0110234099c6e433a7606756b93ca74f52cf60d905d5a7e31129faa05ae08af4282f44f99adbfe056863d02b99cbd9471c05a8d87edd09d5c6fbf34b07ceb6831097450502f6b34e3475c36e07019a57150aeea9903fc484dd23c445765df5593ac1749e00ca1bf233ab01a3b40d84e1d6a6a1dc4099d2380f61070a117e63ae89f731795d20f435fee242c3be3f85bf39d76669a3f64f2fcffc4507acb1979af31c7ddfa223cf6e47d40900a345d8c498f1334bed862dbd735f252d23c28292c24d8f70b73b6341f849cfd1dd96e2082ec22e1e759997bc4fb10115af4ff56eafebfd872df1baa35e1264fdb28ca4bc51affc5602ee706cd8084cef71d8d696e4b553d0ac367c5449918134d2882735ba2a5a2a96bde66214223cbc1ab1a1f0efa9190d3715e38ed9e46b041a810ca9ef76a8d580305f4a10d52dfd2175e3e1e37eb52e6348be796f2b92f2a21cbc53c6e409d5c58942e344b3b4bff50bee0d449225f4dc70149538f352ff25bbaa733159c8eabb3d47010400008085202f89010000000000000000000000000000000000000000000000000000000000000000ffffffff1103e40412002f706f6f6c696e2e636f6d2fffffffff0480b2e60e000000001976a914be62da59de8993dd79965ddd27629b1ffe55e46e88ac40787d010000000017a914931fec54c1fea86e574462cc32013f5400b891298738c94d010000000017a914a85005215405d5931d4c7090e164add7f458f1e287286bee000000000017a914d45cb1adffb5215a42720532a076f02c7c778c908700000000000000000000000000000000000000 diff --git a/zebra-test/src/vectors/block.rs b/zebra-test/src/vectors/block.rs index 29353171..9104af02 100644 --- a/zebra-test/src/vectors/block.rs +++ b/zebra-test/src/vectors/block.rs @@ -82,7 +82,12 @@ lazy_static! { (949_496, BLOCK_MAINNET_949496_BYTES.as_ref()), (975_066, BLOCK_MAINNET_975066_BYTES.as_ref()), (982_681, BLOCK_MAINNET_982681_BYTES.as_ref()), - // TODO: Canopy and First Halving, see #1099 + // Last Heartwood + (1_046_399, BLOCK_MAINNET_1046399_BYTES.as_ref()), + // Canopy and First Coinbase Halving + (1_046_400, BLOCK_MAINNET_1046400_BYTES.as_ref()), + (1_046_401, BLOCK_MAINNET_1046401_BYTES.as_ref()), + (1_180_900, BLOCK_MAINNET_1180900_BYTES.as_ref()), ].iter().cloned().collect(); /// Testnet blocks, indexed by height @@ -276,14 +281,29 @@ lazy_static! { >::from_hex(include_str!("block-main-0-982-681.txt").trim()) .expect("Block bytes are in valid hex representation"); - // TODO: Canopy transition, after mainnet canopy activation - // for i in 1046399 1046400 1046401; do + // Canopy transition and Coinbase Halving + // (On mainnet, Canopy happens at the same block as the first coinbase halving) + // for i in 1046399 1046400; do // zcash-cli getblock $i 0 > block-main-$[i/1000000]-0$[i/1000%1000]-$[i%1000].txt // done + pub static ref BLOCK_MAINNET_1046399_BYTES: Vec = + >::from_hex(include_str!("block-main-1-046-399.txt").trim()) + .expect("Block bytes are in valid hex representation"); + pub static ref BLOCK_MAINNET_1046400_BYTES: Vec = + >::from_hex(include_str!("block-main-1-046-400.txt").trim()) + .expect("Block bytes are in valid hex representation"); + // Block 1046401 is 72 kB in size (currently the second-largest test vector), so we store it in binary. + // i=1046401 + // zcash-cli getblock $i 0 | xxd -revert -plain > block-main-$[i/1000000]-0$[i/1000%1000]-$[i%1000].bin + pub static ref BLOCK_MAINNET_1046401_BYTES: Vec = include_bytes!("block-main-1-046-401.bin").to_vec(); - // TODO: one more Canopy Mainnet block - // (so that we have at least 3 blocks from Canopy) - // Note: don't use the highest block, it must be below the reorg limit! + // One more Canopy/Post-Halving block + // (so that we have at least 3 blocks after canopy/halving) + // i=1180900 + // zcash-cli getblock $i 0 > block-main-$[i/1000000]-$[i/1000%1000]-$[i%1000].txt + pub static ref BLOCK_MAINNET_1180900_BYTES: Vec = + >::from_hex(include_str!("block-main-1-180-900.txt").trim()) + .expect("Block bytes are in valid hex representation"); // Testnet