diff --git a/Cargo.lock b/Cargo.lock index eff00b6a..f80140dc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1795,6 +1795,7 @@ dependencies = [ "fastrand", "git-ref-format", "git2", + "localtime", "log", "multibase", "nonempty 0.8.1", diff --git a/radicle-node/src/address/store.rs b/radicle-node/src/address/store.rs index d2ce303e..9e48a7f6 100644 --- a/radicle-node/src/address/store.rs +++ b/radicle-node/src/address/store.rs @@ -3,12 +3,12 @@ use std::{fmt, io}; use radicle::node; use radicle::node::Address; +use radicle::prelude::Timestamp; use sqlite as sql; use thiserror::Error; use crate::address::types; use crate::address::{KnownAddress, Source}; -use crate::clock::Timestamp; use crate::service::NodeId; use crate::sql::transaction; use crate::wire::AddressType; diff --git a/radicle-node/src/address/types.rs b/radicle-node/src/address/types.rs index 5406ddcf..3edf819d 100644 --- a/radicle-node/src/address/types.rs +++ b/radicle-node/src/address/types.rs @@ -3,8 +3,8 @@ use std::ops::{Deref, DerefMut}; use nonempty::NonEmpty; use radicle::node; use radicle::node::Address; +use radicle::prelude::Timestamp; -use crate::clock::Timestamp; use crate::collections::HashMap; use crate::LocalTime; diff --git a/radicle-node/src/clock.rs b/radicle-node/src/clock.rs deleted file mode 100644 index fa0daa95..00000000 --- a/radicle-node/src/clock.rs +++ /dev/null @@ -1,2 +0,0 @@ -/// Milliseconds since epoch. -pub type Timestamp = u64; diff --git a/radicle-node/src/lib.rs b/radicle-node/src/lib.rs index 4e106ca8..d434d2f4 100644 --- a/radicle-node/src/lib.rs +++ b/radicle-node/src/lib.rs @@ -1,6 +1,5 @@ pub mod address; pub mod bounded; -pub mod clock; pub mod control; pub mod deserializer; pub mod logger; @@ -17,12 +16,12 @@ pub mod worker; pub use localtime::{LocalDuration, LocalTime}; pub use netservices::LinkDirection as Link; +pub use radicle::prelude::Timestamp; pub use radicle::{collections, crypto, git, identity, node, profile, rad, storage}; pub use runtime::Runtime; pub mod prelude { pub use crate::bounded::BoundedVec; - pub use crate::clock::Timestamp; pub use crate::crypto::{PublicKey, Signature, Signer}; pub use crate::deserializer::Deserializer; pub use crate::identity::{Did, Id}; @@ -31,5 +30,5 @@ pub mod prelude { pub use crate::service::{DisconnectReason, Event, Message, Network, NodeId}; pub use crate::storage::refs::Refs; pub use crate::storage::WriteStorage; - pub use crate::{LocalDuration, LocalTime}; + pub use crate::{LocalDuration, LocalTime, Timestamp}; } diff --git a/radicle-node/src/runtime.rs b/radicle-node/src/runtime.rs index 966e91fb..ef480d8e 100644 --- a/radicle-node/src/runtime.rs +++ b/radicle-node/src/runtime.rs @@ -21,8 +21,8 @@ use radicle::Storage; use crate::address; use crate::control; use crate::crypto::Signer; -use crate::node::NodeId; -use crate::service::{routing, tracking}; +use crate::node::{routing, NodeId}; +use crate::service::tracking; use crate::wire; use crate::wire::Wire; use crate::worker; diff --git a/radicle-node/src/service.rs b/radicle-node/src/service.rs index debf33c5..8ad86f7e 100644 --- a/radicle-node/src/service.rs +++ b/radicle-node/src/service.rs @@ -5,7 +5,6 @@ pub mod config; pub mod filter; pub mod message; pub mod reactor; -pub mod routing; pub mod session; pub mod tracking; @@ -22,12 +21,12 @@ use log::*; use crate::address; use crate::address::AddressBook; -use crate::clock::Timestamp; use crate::crypto; use crate::crypto::{Signer, Verified}; use crate::identity::IdentityError; use crate::identity::{Doc, Id}; use crate::node; +use crate::node::routing; use crate::node::{Address, Features, FetchResult, Seed, Seeds}; use crate::prelude::*; use crate::service::message::{Announcement, AnnouncementMessage, Ping}; diff --git a/radicle-node/src/test/peer.rs b/radicle-node/src/test/peer.rs index 09d15877..d6168ccd 100644 --- a/radicle-node/src/test/peer.rs +++ b/radicle-node/src/test/peer.rs @@ -7,11 +7,11 @@ use log::*; use crate::address; use crate::address::Store; -use crate::clock::Timestamp; use crate::crypto::test::signer::MockSigner; use crate::crypto::Signer; use crate::identity::Id; use crate::node; +use crate::node::routing; use crate::prelude::*; use crate::service; use crate::service::message::*; diff --git a/radicle-node/src/wire/protocol.rs b/radicle-node/src/wire/protocol.rs index 72bf910c..41c4fc59 100644 --- a/radicle-node/src/wire/protocol.rs +++ b/radicle-node/src/wire/protocol.rs @@ -21,12 +21,12 @@ use netservices::{NetConnection, NetProtocol, NetReader, NetSession, NetWriter}; use reactor::Timestamp; use radicle::collections::HashMap; -use radicle::node::NodeId; +use radicle::node::{routing, NodeId}; use radicle::storage::WriteStorage; use crate::crypto::Signer; use crate::service::reactor::{Fetch, Io}; -use crate::service::{routing, session, DisconnectReason, Message, Service}; +use crate::service::{session, DisconnectReason, Message, Service}; use crate::wire; use crate::wire::{Decode, Encode}; use crate::worker::{Task, TaskResult}; diff --git a/radicle/Cargo.toml b/radicle/Cargo.toml index 38d47e3f..4520c5f0 100644 --- a/radicle/Cargo.toml +++ b/radicle/Cargo.toml @@ -16,6 +16,7 @@ cyphernet = { version = "0.2.0", features = ["tor", "dns", "ed25519"] } fastrand = { version = "1.8.0" } git-ref-format = { version = "0", features = ["serde", "macro"] } multibase = { version = "0.9.1" } +localtime = { version = "1.2.0" } log = { version = "0.4.17", features = ["std"] } nonempty = { version = "0.8.1", features = ["serialize"] } once_cell = { version = "1.13" } diff --git a/radicle/src/lib.rs b/radicle/src/lib.rs index 521cf0d7..a355b73a 100644 --- a/radicle/src/lib.rs +++ b/radicle/src/lib.rs @@ -31,7 +31,7 @@ pub mod prelude { pub use crypto::{PublicKey, Signer, Verified}; pub use identity::{project::Project, Did, Doc, Id}; - pub use node::NodeId; + pub use node::{NodeId, Timestamp}; pub use profile::Profile; pub use storage::{BranchName, ReadRepository, ReadStorage, WriteRepository, WriteStorage}; } diff --git a/radicle/src/node.rs b/radicle/src/node.rs index 815584e4..e4bf1870 100644 --- a/radicle/src/node.rs +++ b/radicle/src/node.rs @@ -1,4 +1,5 @@ mod features; +pub mod routing; pub mod tracking; use std::collections::BTreeSet; @@ -32,6 +33,9 @@ pub const ADDRESS_DB_FILE: &str = "addresses.db"; /// Filename of tracking table database under the node directory. pub const TRACKING_DB_FILE: &str = "tracking.db"; +/// Milliseconds since epoch. +pub type Timestamp = u64; + /// Result of a command, on the node control socket. #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(tag = "status")] diff --git a/radicle-node/src/service/routing.rs b/radicle/src/node/routing.rs similarity index 99% rename from radicle-node/src/service/routing.rs rename to radicle/src/node/routing.rs index 06ab8da1..47e7f982 100644 --- a/radicle-node/src/service/routing.rs +++ b/radicle/src/node/routing.rs @@ -6,7 +6,7 @@ use sqlite as sql; use thiserror::Error; use crate::{ - clock::Timestamp, + prelude::Timestamp, prelude::{Id, NodeId}, }; diff --git a/radicle-node/src/service/routing/schema.sql b/radicle/src/node/routing/schema.sql similarity index 100% rename from radicle-node/src/service/routing/schema.sql rename to radicle/src/node/routing/schema.sql