| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- use ::darkfi::{
- stakeholder::Stakeholder,
- blockchain::{EpochConsensus,},
- net::{Settings,},
- };
- use futures::executor::block_on;
- use url::Url;
- use std::thread;
- #[async_std::main]
- async fn main()
- {
- 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));
- /// read n from the cmd
- let n = 3;
- /// initialize n stakeholders
- let alice_settings = Settings {
- inbound: vec!(Url::parse("tls://127.0.0.1:12002").unwrap()),
- 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: vec!(Url::parse("tls://127.0.0.1:12002").unwrap()),
- peers: [Url::parse("tls://127.0.0.1:12003").unwrap()].to_vec(),
- seeds: [Url::parse("tls://irc0.dark.fi:11001").unwrap(),
- Url::parse("tls://irc1.dark.fi:11001").unwrap()
- ].to_vec(),
- ..Default::default()
- };
- let bob_settings = Settings {
- inbound: vec!(Url::parse("tls://127.0.0.1:12003").unwrap()),
- 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: vec!(Url::parse("tls://127.0.0.1:12003").unwrap()),
- peers: [Url::parse("tls://127.0.0.1:12002").unwrap()].to_vec(),
- seeds: [Url::parse("tls://irc0.dark.fi:11001").unwrap(),
- Url::parse("tls://irc1.dark.fi:11001").unwrap()
- ].to_vec(),
- ..Default::default()
- };
- let k : u32 = 13; //proof's number of rows
- let mut handles = vec!();
- let path = "/tmp/db";
- for i in 0..2 {
- let rel_path = format!("{}{}",path, i.to_string());
- let mut stakeholder = block_on(Stakeholder::new(epoch_consensus.clone(),
- if i==0 {
- alice_settings.clone()
- }
- else {
- bob_settings.clone()
- },
- &rel_path,
- i,
- Some(k))
- ).unwrap();
- let handle = thread::spawn(move || {
- block_on(stakeholder.background());
- });
- handles.push(handle);
- }
- for handle in handles {
- handle.join().unwrap();
- }
- }
|