networking 0.1.1

networking library that underpins the artifice network
Documentation
use networking::{
    encryption::PubKeyPair, random_string, ArtificeConfig, ArtificePeer, Layer3Addr,
    Layer3SocketAddr,
};
use std::fs::File;
use std::io::Write;
fn main() {
    let global_peer_hash = random_string(50);
    let peer_hash = random_string(50);
    let addr: Layer3Addr = Layer3Addr::V4([0, 0, 0, 0]);
    let peer_addr = Layer3SocketAddr::from_layer3_addr(Layer3Addr::V4([127, 0, 0, 1]), 6464);
    println!("generating config");
    let config: ArtificeConfig = ArtificeConfig::generate(addr.clone());

    let priv_key = config.host_data().private_key();
    let pubkey = PubKeyPair::from_parts(priv_key.n(), priv_key.e());

    let peer: ArtificePeer = ArtificePeer::new(peer_hash, global_peer_hash, peer_addr, pubkey);
    println!("saving files");
    let mut file = File::create("peer.json").unwrap();
    file.write_all(&serde_json::to_string(&peer).unwrap().into_bytes())
        .unwrap();

    let mut host_file = File::create("host.json").unwrap();
    host_file
        .write_all(&serde_json::to_string(&config).unwrap().into_bytes())
        .unwrap();
}