From 8fc489a80868fcf12fcdbc0551528bb73fc891a0 Mon Sep 17 00:00:00 2001 From: Ignotus Peverell Date: Tue, 15 Jan 2019 15:27:51 +0000 Subject: [PATCH] Finalized mainnet genesis block --- core/src/genesis.rs | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/core/src/genesis.rs b/core/src/genesis.rs index 442cfea523..aeb52754aa 100644 --- a/core/src/genesis.rs +++ b/core/src/genesis.rs @@ -170,20 +170,20 @@ pub fn genesis_floo() -> core::Block { pub fn genesis_main() -> core::Block { let gen = core::Block::with_header(core::BlockHeader { height: 0, - timestamp: Utc.ymd(2019, 1, 15).and_hms(12, 0, 0), // REPLACE - prev_root: Hash::default(), // REPLACE - output_root: Hash::default(), // REPLACE - range_proof_root: Hash::default(), // REPLACE - kernel_root: Hash::default(), // REPLACE - total_kernel_offset: BlindingFactor::zero(), // REPLACE +timestamp: Utc.ymd(2019, 1, 15).and_hms(16, 1, 26), +prev_root: Hash::from_hex("0000000000000000002a8bc32f43277fe9c063b9c99ea252b483941dcd06e217").unwrap(), +output_root: Hash::from_hex("fa7566d275006c6c467876758f2bc87e4cebd2020ae9cf9f294c6217828d6872").unwrap(), +range_proof_root: Hash::from_hex("1b7fff259aee3edfb5867c4775e4e1717826b843cda6685e5140442ece7bfc2e").unwrap(), +kernel_root: Hash::from_hex("e8bb096a73cbe6e099968965f5342fc1702ee2802802902286dcf0f279e326bf").unwrap(), +total_kernel_offset: BlindingFactor::from_hex("0000000000000000000000000000000000000000000000000000000000000000").unwrap(), output_mmr_size: 1, kernel_mmr_size: 1, pow: ProofOfWork { total_difficulty: Difficulty::from_num(2_u64.pow(34)), secondary_scaling: 1856, - nonce: 1, // REPLACE +nonce: 41, proof: Proof { - nonces: vec![0; 42], // REPLACE +nonces: vec![4391451, 36730677, 38198400, 38797304, 60700446, 72910191, 73050441, 110099816, 140885802, 145512513, 149311222, 149994636, 157557529, 160778700, 162870981, 179649435, 194194460, 227378628, 230933064, 252046196, 272053956, 277878683, 288331253, 290266880, 293973036, 305315023, 321927758, 353841539, 356489212, 373843111, 381697287, 389274717, 403108317, 409994705, 411629694, 431823422, 441976653, 521469643, 521868369, 523044572, 524964447, 530250249], edge_bits: 29, }, }, @@ -193,15 +193,15 @@ pub fn genesis_main() -> core::Block { features: core::KernelFeatures::Coinbase, fee: 0, lock_height: 0, - excess: Commitment::from_vec(vec![]), // REPLACE - excess_sig: Signature::from_raw_data(&[0; 64]).unwrap(), //REPLACE +excess: Commitment::from_vec(util::from_hex("096385d86c5cfda718aa0b7295be0adf7e5ac051edfe130593a2a257f09f78a3b1".to_string()).unwrap()), +excess_sig: Signature::from_raw_data(&[80, 208, 41, 171, 28, 224, 250, 121, 60, 192, 213, 232, 111, 199, 111, 105, 18, 22, 54, 165, 107, 33, 186, 113, 186, 100, 12, 42, 72, 106, 42, 20, 67, 253, 188, 178, 228, 246, 21, 168, 253, 18, 22, 179, 41, 63, 250, 218, 80, 132, 75, 67, 244, 11, 108, 27, 188, 251, 212, 166, 233, 103, 117, 237]).unwrap(), }; let output = core::Output { features: core::OutputFeatures::Coinbase, - commit: Commitment::from_vec(vec![]), // REPLACE +commit: Commitment::from_vec(util::from_hex("08b7e57c448db5ef25aa119dde2312c64d7ff1b890c416c6dda5ec73cbfed2edea".to_string()).unwrap()), proof: RangeProof { plen: SINGLE_BULLET_PROOF_SIZE, - proof: [0; SINGLE_BULLET_PROOF_SIZE], // REPLACE +proof: [147, 48, 173, 140, 222, 32, 95, 49, 124, 101, 55, 236, 169, 107, 134, 98, 147, 160, 72, 150, 21, 169, 162, 119, 180, 211, 165, 151, 200, 115, 84, 76, 130, 71, 73, 50, 182, 65, 224, 106, 200, 113, 150, 4, 238, 82, 232, 149, 232, 205, 70, 33, 182, 191, 184, 87, 128, 205, 155, 236, 206, 20, 208, 112, 11, 131, 166, 100, 219, 47, 82, 162, 108, 66, 95, 215, 119, 173, 136, 148, 76, 223, 255, 56, 4, 58, 39, 147, 237, 77, 154, 166, 126, 54, 203, 253, 85, 133, 87, 159, 198, 157, 218, 147, 4, 24, 175, 94, 175, 96, 54, 84, 246, 247, 81, 37, 141, 45, 252, 140, 33, 19, 193, 113, 225, 48, 243, 30, 193, 230, 204, 226, 167, 24, 228, 53, 41, 143, 206, 93, 100, 255, 225, 189, 52, 100, 253, 124, 135, 207, 169, 32, 147, 133, 91, 224, 52, 191, 228, 67, 158, 146, 139, 217, 42, 215, 127, 208, 160, 224, 3, 85, 238, 29, 26, 156, 235, 30, 208, 196, 8, 220, 253, 186, 140, 88, 62, 117, 152, 220, 112, 10, 170, 159, 145, 67, 32, 151, 37, 154, 64, 95, 91, 115, 21, 162, 247, 101, 136, 97, 227, 52, 155, 176, 220, 139, 248, 131, 114, 106, 33, 95, 1, 73, 222, 214, 97, 62, 90, 192, 103, 12, 12, 82, 2, 36, 125, 124, 39, 200, 167, 208, 59, 219, 3, 201, 207, 84, 85, 70, 63, 155, 66, 207, 135, 64, 62, 49, 248, 56, 60, 196, 244, 154, 52, 198, 42, 228, 89, 245, 128, 26, 158, 237, 79, 14, 227, 223, 213, 245, 91, 112, 17, 192, 202, 227, 147, 196, 116, 171, 214, 248, 199, 150, 91, 155, 95, 255, 49, 4, 221, 78, 57, 84, 32, 119, 192, 200, 221, 47, 143, 252, 235, 107, 181, 152, 81, 45, 144, 80, 109, 10, 113, 132, 242, 15, 20, 152, 207, 69, 135, 135, 242, 50, 132, 181, 72, 136, 201, 190, 65, 109, 16, 63, 118, 4, 6, 53, 122, 22, 182, 216, 65, 163, 3, 213, 201, 91, 107, 71, 77, 45, 127, 15, 234, 10, 42, 118, 200, 151, 221, 33, 16, 233, 48, 63, 84, 104, 65, 105, 66, 17, 71, 104, 76, 111, 24, 25, 195, 60, 239, 63, 56, 236, 153, 90, 80, 132, 80, 192, 44, 209, 135, 47, 128, 101, 253, 238, 114, 49, 9, 193, 139, 29, 210, 221, 222, 117, 130, 85, 70, 236, 240, 223, 7, 147, 195, 83, 178, 12, 148, 108, 214, 65, 34, 206, 168, 193, 22, 244, 50, 51, 104, 153, 161, 106, 210, 74, 42, 175, 203, 143, 144, 14, 9, 161, 20, 113, 53, 252, 242, 165, 76, 191, 129, 219, 48, 138, 71, 160, 138, 73, 199, 124, 19, 14, 93, 197, 230, 97, 205, 85, 165, 204, 105, 230, 7, 5, 90, 91, 8, 17, 27, 246, 26, 98, 234, 87, 120, 248, 81, 25, 4, 54, 51, 241, 202, 184, 199, 86, 215, 86, 197, 163, 72, 81, 2, 74, 195, 17, 165, 150, 177, 205, 145, 155, 188, 164, 50, 38, 240, 186, 5, 127, 107, 87, 222, 47, 105, 85, 176, 130, 60, 56, 38, 222, 127, 96, 150, 193, 193, 182, 185, 184, 228, 6, 62, 22, 69, 192, 191, 243, 47, 128, 86, 26, 170, 149, 157, 151, 18, 15, 188, 46, 205, 157, 43, 226, 139, 208, 193, 120, 17, 220, 89, 168, 128, 73, 246, 216, 149, 46, 233, 160, 160, 32, 118, 147, 200, 156, 163, 173, 17, 151, 233, 191, 223, 192, 59, 233, 216, 69, 174, 168, 214, 99, 150, 146, 23, 227, 180, 148, 206, 233, 230, 82, 188, 159, 135, 19, 226, 253, 92, 177, 132, 56, 72, 244, 108, 58, 106, 176, 36, 208, 227, 213, 124, 164, 84, 84, 205, 189, 164, 20, 173, 170, 131, 95, 161, 71, 222, 180, 255, 183, 18, 156, 243, 168, 216, 103, 38, 160, 20, 71, 148], }, }; gen.with_reward(output, kernel) @@ -229,13 +229,19 @@ mod test { ); } - // TODO hardcode the hashes once genesis is set #[test] fn mainnet_genesis_hash() { let gen_hash = genesis_main().hash(); println!("mainnet genesis hash: {}", gen_hash.to_hex()); let gen_bin = ser::ser_vec(&genesis_main()).unwrap(); - println!("mainnet genesis full hash: {}\n", gen_bin.hash().to_hex()); - //assert_eq!(gene_hash.to_hex, ""); + println!("floonet genesis full hash: {}\n", gen_bin.hash().to_hex()); + assert_eq!( + gen_hash.to_hex(), + "40adad0aec27797b48840aa9e00472015c21baea118ce7a2ff1a82c0f8f5bf82" + ); + assert_eq!( + gen_bin.hash().to_hex(), + "6be6f34b657b785e558e85cc3b8bdb5bcbe8c10e7e58524c8027da7727e189ef" + ); } }