1pub mod dms;
2pub mod nat_traversal;
3pub mod peers;
4
5#[cfg(never)]
6mod peer_discovery;
7pub mod storage;
8
9use serde::{Deserialize, Serialize};
10use simperby_core::{crypto::*, MemberName, Timestamp};
11use std::collections::BTreeMap;
12use std::net::SocketAddrV4;
13
14pub type Error = eyre::Error;
15pub type Dms<T> = dms::DistributedMessageSet<storage::StorageImpl, T>;
16
17pub use dms::{Config, DmsKey, DmsMessage, MessageCommitmentProof};
18pub use storage::{Storage, StorageError, StorageImpl};
19
20#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
22pub struct Peer {
23 pub public_key: PublicKey,
24 pub name: MemberName,
25 pub address: SocketAddrV4,
27 pub ports: BTreeMap<String, u16>,
30 pub message: String,
31 pub recently_seen_timestamp: Timestamp,
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct ClientNetworkConfig {
36 pub peers: Vec<Peer>,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
41pub struct ServerNetworkConfig {
42 pub port: u16, }
44
45pub mod keys {
46 use simperby_core::*;
47
48 use crate::DmsMessage;
49
50 pub fn dms_key<D: DmsMessage>(lfh: &BlockHeader) -> String {
51 format!("{}-{}", D::DMS_TAG, lfh.to_hash256())
52 }
53
54 pub fn port_key_dms<D: DmsMessage>() -> String {
55 format!("dms-{}", D::DMS_TAG)
56 }
57}