Skip to content

Commit b35cab6

Browse files
committed
can work with mainnet
1 parent c929225 commit b35cab6

File tree

3 files changed

+94
-5
lines changed

3 files changed

+94
-5
lines changed

Cargo.lock

Lines changed: 38 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ chrono = "0.4.7"
1515
crossbeam-channel = "0.3.8"
1616
crossbeam-queue = "0.1.2"
1717
crossbeam-utils = "0.6.5"
18+
structopt = "0.2.18"

src/main.rs

Lines changed: 55 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,37 +7,67 @@ use std::sync::{Arc, Mutex, RwLock};
77
use std::thread;
88
use std::time::Duration;
99

10-
use grin_core::genesis::genesis_floo;
10+
use grin_core::genesis::{genesis_floo, genesis_main};
1111
use grin_core::global::{set_mining_mode, ChainTypes};
1212
use grin_p2p::types::{Capabilities, P2PConfig, PeerAddr};
1313
use grin_p2p::Peer;
1414
use log::*;
1515
use std::collections::{HashMap, VecDeque};
16+
use std::fs::File;
17+
use std::io::{Error, Write};
1618

1719
mod adapter;
1820
use crate::adapter::FakeAdapter;
1921
use crossbeam_queue::SegQueue;
2022
use crossbeam_utils::sync::ShardedLock;
23+
use structopt::StructOpt;
2124

2225
type Storage = HashMap<PeerAddr, Option<Vec<PeerAddr>>>;
2326

27+
#[derive(StructOpt, Debug)]
28+
#[structopt(name = "basic")]
29+
struct Args {
30+
#[structopt(short, long)]
31+
floonet: bool,
32+
}
33+
2434
const NTHREADS: u8 = 100;
2535

36+
// mainnet nodes
37+
// 5.9.152.75 mainnet.seed.grin-tech.org / mainnet.seed.grin.lesceller.com
38+
// 139.162.168.18 mainnet.seed.grin.icu
39+
// 94.130.229.193 mainnet.seed.713.mw
40+
// 159.69.37.136 mainnet.seed.grin.prokapi.com
41+
// 109.74.202.16 grinseed.yeastplume.org
42+
2643
fn main() {
2744
env_logger::init();
2845
info!("Hello, world!");
29-
set_mining_mode(ChainTypes::Floonet);
46+
47+
let args = Args::from_args();
48+
3049
let mut cfg = P2PConfig::default();
3150
cfg.host = "0.0.0.0".parse().unwrap();
3251
cfg.port = 13415;
3352

34-
let handshake = Arc::new(Handshake::new(genesis_floo().hash(), cfg.clone()));
53+
let mut peer_addr: PeerAddr;
54+
let mut handshake: Arc<Handshake>;
55+
56+
if args.floonet {
57+
set_mining_mode(ChainTypes::Floonet);
58+
peer_addr = PeerAddr(SocketAddr::new("35.157.247.209".parse().unwrap(), 13414)); // zion
59+
handshake = Arc::new(Handshake::new(genesis_floo().hash(), cfg.clone()));
60+
} else {
61+
set_mining_mode(ChainTypes::Mainnet);
62+
//let peer_addr = PeerAddr(SocketAddr::new("109.74.202.16".parse().unwrap(), 3414)); // mainnet
63+
peer_addr = PeerAddr(SocketAddr::new("127.0.0.1".parse().unwrap(), 3414)); // mainnet
64+
handshake = Arc::new(Handshake::new(genesis_main().hash(), cfg.clone()));
65+
}
3566

3667
let queue = Arc::new(SegQueue::new());
3768
let hm: HashMap<PeerAddr, Option<Vec<PeerAddr>>> = HashMap::new();
3869
let storage = Arc::new(ShardedLock::new(hm));
39-
//let peer_addr = PeerAddr(SocketAddr::new("127.0.0.1".parse().unwrap(), 13414));
40-
let peer_addr = PeerAddr(SocketAddr::new("35.157.247.209".parse().unwrap(), 13414));
70+
4171
let local_addr = PeerAddr(SocketAddr::new(cfg.host, cfg.port));
4272

4373
let mut count = 1;
@@ -92,6 +122,7 @@ fn main() {
92122
storage.read().unwrap().len(),
93123
public
94124
);
125+
store(&*storage.read().unwrap()).unwrap();
95126
}
96127

97128
fn worker(
@@ -164,3 +195,22 @@ fn connect(
164195

165196
adapter.get_peers().map_err(|e| format!("{:?}", e))
166197
}
198+
199+
fn store(hm: &Storage) -> Result<(), Error> {
200+
let mut f = File::create("./result.csv")?;
201+
for (k, v) in hm {
202+
write!(f, "{},[", k)?;
203+
if v.is_some() {
204+
let peers = v
205+
.as_ref()
206+
.unwrap()
207+
.into_iter()
208+
.map(|addr| addr.as_key())
209+
.collect::<Vec<String>>()
210+
.join(",");
211+
write!(f, "{}", peers)?;
212+
}
213+
write!(f, "]\n")?;
214+
}
215+
Ok(())
216+
}

0 commit comments

Comments
 (0)