[crypsinous: example/crypsinous] finalize crypsinous sim

This commit is contained in:
mohab metwally
2022-08-14 16:46:43 +02:00
parent 346cb9046b
commit 3521e84865
7 changed files with 39 additions and 55 deletions

76
example/crypsinous.rs Normal file
View File

@@ -0,0 +1,76 @@
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: Some(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: Some(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(),
};
let bob_settings = Settings {
inbound: Some(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: Some(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(),
};
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();
}
}