crypsinous.rs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. use ::darkfi::{
  2. stakeholder::Stakeholder,
  3. blockchain::{EpochConsensus,},
  4. net::{Settings,},
  5. };
  6. use futures::executor::block_on;
  7. use url::Url;
  8. use std::thread;
  9. use vec;
  10. use clap::Parser;
  11. #[derive(Parser)]
  12. struct NetCli {
  13. addr: String,
  14. path: String,
  15. peers: Vec<String>,
  16. }
  17. #[async_std::main]
  18. async fn main()
  19. {
  20. let args = NetCli::parse();
  21. let addr = vec!(Url::parse(args.addr.as_str()).unwrap());
  22. let mut peers = vec![];
  23. for i in 0..args.peers.len() {
  24. peers.push(Url::parse(args.peers[i].as_str()).unwrap());
  25. }
  26. let seeds = [Url::parse("tls://irc0.dark.fi:11001").unwrap(),
  27. Url::parse("tls://irc1.dark.fi:11001").unwrap()].to_vec();
  28. let slots=3;
  29. let epochs=3;
  30. let ticks=10;
  31. let reward=1;
  32. let epoch_consensus = EpochConsensus::new(Some(slots), Some(epochs), Some(ticks), Some(reward));
  33. // initialize n stakeholders
  34. let settings = Settings {
  35. inbound: addr.clone(),
  36. outbound_connections: 4,
  37. manual_attempt_limit: 0,
  38. seed_query_timeout_seconds: 8,
  39. connect_timeout_seconds: 10,
  40. channel_handshake_seconds: 4,
  41. channel_heartbeat_seconds: 10,
  42. external_addr: addr.clone(),
  43. peers: peers,
  44. seeds: seeds,
  45. ..Default::default()
  46. };
  47. //proof's number of rows
  48. let k : u32 = 13;
  49. let mut handles = vec!();
  50. let path = args.path;
  51. for i in 0..2 {
  52. let rel_path = format!("{}{}",path, i.to_string());
  53. let mut stakeholder = block_on(Stakeholder::new(epoch_consensus.clone(),
  54. settings.clone(),
  55. &rel_path,
  56. i,
  57. Some(k))).unwrap();
  58. let handle = thread::spawn(move || {
  59. block_on(stakeholder.background(Some(9)));
  60. });
  61. handles.push(handle);
  62. }
  63. for handle in handles {
  64. handle.join().unwrap();
  65. }
  66. }