rings-core 0.2.3

Chord DHT implementation with ICE
Documentation
use std::sync::Arc;

use crate::dht::Did;
use crate::dht::PeerRing;
use crate::ecc::SecretKey;
use crate::message::MessageHandler;
use crate::storage::PersistenceStorage;
use crate::swarm::Swarm;
use crate::swarm::SwarmBuilder;

mod test_message_handler;
mod test_stabilize;

pub async fn prepare_node(
    key: SecretKey,
) -> (Did, Arc<PeerRing>, Arc<Swarm>, MessageHandler, String) {
    let stun = "stun://stun.l.google.com:19302";
    let did = key.address().into();
    let path = PersistenceStorage::random_path("./tmp");
    let storage = PersistenceStorage::new_with_path(path.as_str())
        .await
        .unwrap();

    let swarm = Arc::new(SwarmBuilder::new(stun, storage).key(key).build().unwrap());
    let dht = swarm.dht();
    let node = swarm.create_message_handler(None, None);

    println!("key: {:?}", key.to_string());
    println!("did: {:?}", did);

    (did, dht, swarm, node, path)
}