Changed magic number and seeds for Floonet (#2188)

* Changed magic number and seeds for Floonet.
* Genesis generator now loads a local wallet seed to build coinbase.
This commit is contained in:
Ignotus Peverell 2018-12-20 11:08:01 -08:00 committed by GitHub
parent b0c72827d9
commit 7284cfec72
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 43 additions and 13 deletions

View file

@ -17,14 +17,20 @@ path = "src/bin/gen_gen.rs"
chrono = "0.4.4"
cuckoo_miner = "0.4.2"
curl = "0.4.19"
grin_core = "0.4.2"
grin_chain = "0.4.2"
grin_keychain = "0.4.2"
grin_core = { path = "../../core" }
grin_chain = { path = "../../chain" }
grin_keychain = { path = "../../keychain" }
grin_miner_plugin = "0.4.2"
grin_store = "0.4.2"
grin_util = "0.4.2"
grin_store = { path = "../../store" }
grin_util = { path = "../../util" }
grin_wallet = { path = "../../wallet" }
rpassword = "2.0.0"
serde_json = "1"
[patch.crates-io]
grin_api = { path = "../../api" }
grin_core = { path = "../../core" }
grin_chain = { path = "../../chain" }
grin_keychain = { path = "../../keychain" }
grin_util = { path = "../../util" }
grin_wallet = { path = "../../wallet" }

View file

@ -21,6 +21,7 @@ use std::{fs, io, path, process};
use chrono::prelude::Utc;
use chrono::{Datelike, Duration, Timelike};
use curl;
use rpassword;
use serde_json;
use cuckoo_miner as cuckoo;
@ -29,6 +30,7 @@ use grin_core as core;
use grin_miner_plugin as plugin;
use grin_store as store;
use grin_util as util;
use grin_wallet as wallet;
use grin_core::core::hash::Hashed;
use grin_core::core::verifier_cache::LruVerifierCache;
@ -40,6 +42,7 @@ static BCHAIR_URL: &str = "https://api.blockchair.com/bitcoin/blocks?limit=2";
static GENESIS_RS_PATH: &str = "../../core/src/genesis.rs";
static PLUGIN_PATH: &str = "./cuckaroo_mean_cuda_29.cuckooplugin";
static WALLET_SEED_PATH: &str = "./wallet.seed";
fn main() {
if !path::Path::new(GENESIS_RS_PATH).exists() {
@ -54,6 +57,12 @@ fn main() {
PLUGIN_PATH
);
}
if !path::Path::new(WALLET_SEED_PATH).exists() {
panic!(
"File {} not found, make sure you're running this from the gen_gen directory",
WALLET_SEED_PATH
);
}
// get the latest bitcoin hash
let h1 = get_bchain_head();
@ -72,10 +81,14 @@ fn main() {
gen.header.timestamp = Utc::now() + Duration::minutes(30);
gen.header.prev_root = core::core::hash::Hash::from_hex(&h1).unwrap();
// TODO get the proper keychain and/or raw coinbase
let keychain = ExtKeychain::from_random_seed().unwrap();
let key_id = ExtKeychain::derive_key_id(0, 1, 0, 0, 0);
let reward = core::libtx::reward::output(&keychain, &key_id, 0, 0).unwrap();
// build the wallet seed and derive a coinbase from local wallet.seed
let seed = wallet::WalletSeed::from_file(
&wallet::WalletConfig::default(),
&rpassword::prompt_password_stdout("Password: ").unwrap()
).unwrap();
let keychain: ExtKeychain = seed.derive_keychain().unwrap();
let key_id = ExtKeychain::derive_key_id(2, 1, 0, 0, 0);
let reward = core::libtx::reward::output(&keychain, &key_id, 0).unwrap();
gen = gen.with_reward(reward.0, reward.1);
{
@ -284,6 +297,7 @@ fn setup_chain(dir_name: &str, genesis: core::core::Block) -> chain::Chain {
core::pow::verify_size,
verifier_cache,
false,
Arc::new(util::Mutex::new(util::StopState::new())),
)
.unwrap()
}
@ -322,3 +336,4 @@ fn get_json(url: &str) -> serde_json::Value {
}
serde_json::from_slice(&body).unwrap()
}

View file

@ -36,7 +36,7 @@ pub const PROTOCOL_VERSION: u32 = 1;
pub const USER_AGENT: &'static str = concat!("MW/Grin ", env!("CARGO_PKG_VERSION"));
/// Magic number expected in the header of every message
const MAGIC: [u8; 2] = [0x54, 0x34];
const MAGIC: [u8; 2] = [0x53, 0x35];
/// Max theoretical size of a block filled with outputs.
const MAX_BLOCK_SIZE: u64 =

View file

@ -24,14 +24,18 @@ use std::net::{SocketAddr, ToSocketAddrs};
use std::sync::{mpsc, Arc};
use std::{cmp, io, str, thread, time};
use crate::core::global;
use crate::p2p;
use crate::p2p::ChainAdapter;
use crate::pool::DandelionConfig;
use crate::util::{Mutex, StopState};
// DNS Seeds with contact email associated
const DNS_SEEDS: &'static [&'static str] = &[
"t4.seed.grin-tech.org", // igno.peverell@protonmail.com
const MAINNET_DNS_SEEDS: &'static [&'static str] = &[
"mainnet.seed.grin-tech.org", // igno.peverell@protonmail.com
];
const FLOONET_DNS_SEEDS: &'static [&'static str] = &[
"floonet.seed.grin-tech.org", // igno.peverell@protonmail.com
];
pub fn connect_and_monitor(
@ -331,7 +335,12 @@ fn listen_for_addrs(
pub fn dns_seeds() -> Box<dyn Fn() -> Vec<SocketAddr> + Send> {
Box::new(|| {
let mut addresses: Vec<SocketAddr> = vec![];
for dns_seed in DNS_SEEDS {
let net_seeds = if global::is_testnet() {
FLOONET_DNS_SEEDS
} else {
MAINNET_DNS_SEEDS
};
for dns_seed in net_seeds {
let temp_addresses = addresses.clone();
debug!("Retrieving seed nodes from dns {}", dns_seed);
match (dns_seed.to_owned(), 0).to_socket_addrs() {