| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- use ::darkfi::{blockchain::EpochConsensus,
- net::Settings,
- stakeholder::Stakeholder,
- util::time::Timestamp,
-
- };
- use clap::Parser;
- use futures::executor::block_on;
- use std::thread;
- use url::Url;
- use vec;
- #[derive(Parser)]
- struct NetCli {
- #[clap(long,value_parser,default_value="tls://127.0.0.1:12003")]
- addr: String,
- #[clap(long,value_parser,default_value="/tmp/db")]
- path: String,
- #[clap(long,value_parser,default_value="tls://127.0.0.1:12004")]
- peers: Vec<String>,
- #[clap(long,value_parser,default_value="tls://lilith.dark.fi:25551")]
- seeds: Vec<String>,
- }
- #[async_std::main]
- async fn main() {
- let args = NetCli::parse();
- let addr = vec![Url::parse(args.addr.as_str()).unwrap()];
- let mut peers = vec![];
- for i in 0..args.peers.len() {
- peers.push(Url::parse(args.peers[i].as_str()).unwrap());
- }
- let mut seeds = vec![];
- for i in 0..args.seeds.len() {
- seeds.push(Url::parse(args.seeds[i].as_str()).unwrap());
- }
- let slots = 3;
- let epochs = 3;
- let ticks = 10;
- let reward = 1;
- let epoch_consensus = EpochConsensus::new(Some(slots), Some(epochs), Some(ticks), Some(reward));
- // initialize n stakeholders
- let settings = Settings {
- inbound: addr.clone(),
- outbound_connections: 4,
- manual_attempt_limit: 0,
- seed_query_timeout_seconds: 8,
- connect_timeout_seconds: 10,
- channel_handshake_seconds: 4,
- channel_heartbeat_seconds: 10,
- external_addr: addr.clone(),
- peers,
- seeds,
- ..Default::default()
- };
- //proof's number of rows
- let k: u32 = 13;
- let path = args.path;
- let id = Timestamp::current_time().0;
- let mut stakeholder = block_on(Stakeholder::new(
- epoch_consensus.clone(),
- settings.clone(),
- &path,
- id,
- Some(k),
- ))
- .unwrap();
-
- let handle = thread::spawn(move || {
- block_on(stakeholder.background(Some(9)));
- });
- handle.join().unwrap();
- }
|