mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-08 12:19:24 +00:00
Downscope usage of futures
This commit is contained in:
10
Cargo.lock
generated
10
Cargo.lock
generated
@@ -4306,6 +4306,7 @@ dependencies = [
|
|||||||
name = "monero-serai"
|
name = "monero-serai"
|
||||||
version = "0.1.4-alpha"
|
version = "0.1.4-alpha"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"async-lock",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"base58-monero",
|
"base58-monero",
|
||||||
"curve25519-dalek",
|
"curve25519-dalek",
|
||||||
@@ -4313,7 +4314,6 @@ dependencies = [
|
|||||||
"digest_auth",
|
"digest_auth",
|
||||||
"dleq",
|
"dleq",
|
||||||
"flexible-transcript",
|
"flexible-transcript",
|
||||||
"futures",
|
|
||||||
"group",
|
"group",
|
||||||
"hex",
|
"hex",
|
||||||
"hex-literal",
|
"hex-literal",
|
||||||
@@ -7337,7 +7337,7 @@ dependencies = [
|
|||||||
"env_logger",
|
"env_logger",
|
||||||
"flexible-transcript",
|
"flexible-transcript",
|
||||||
"frost-schnorrkel",
|
"frost-schnorrkel",
|
||||||
"futures",
|
"futures-util",
|
||||||
"hex",
|
"hex",
|
||||||
"libp2p",
|
"libp2p",
|
||||||
"log",
|
"log",
|
||||||
@@ -8981,7 +8981,8 @@ name = "tendermint-machine"
|
|||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"futures",
|
"futures-channel",
|
||||||
|
"futures-util",
|
||||||
"hex",
|
"hex",
|
||||||
"log",
|
"log",
|
||||||
"parity-scale-codec",
|
"parity-scale-codec",
|
||||||
@@ -9400,7 +9401,8 @@ dependencies = [
|
|||||||
"blake2",
|
"blake2",
|
||||||
"ciphersuite",
|
"ciphersuite",
|
||||||
"flexible-transcript",
|
"flexible-transcript",
|
||||||
"futures",
|
"futures-channel",
|
||||||
|
"futures-util",
|
||||||
"hex",
|
"hex",
|
||||||
"log",
|
"log",
|
||||||
"parity-scale-codec",
|
"parity-scale-codec",
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ frost = { package = "modular-frost", path = "../../crypto/frost", version = "0.8
|
|||||||
|
|
||||||
monero-generators = { path = "generators", version = "0.4", default-features = false }
|
monero-generators = { path = "generators", version = "0.4", default-features = false }
|
||||||
|
|
||||||
futures = { version = "0.3", default-features = false, features = ["alloc"], optional = true }
|
async-lock = { version = "3", default-features = false, optional = true }
|
||||||
|
|
||||||
hex-literal = "0.4"
|
hex-literal = "0.4"
|
||||||
hex = { version = "0.4", default-features = false, features = ["alloc"] }
|
hex = { version = "0.4", default-features = false, features = ["alloc"] }
|
||||||
@@ -92,7 +92,7 @@ std = [
|
|||||||
|
|
||||||
"monero-generators/std",
|
"monero-generators/std",
|
||||||
|
|
||||||
"futures?/std",
|
"async-lock?/std",
|
||||||
|
|
||||||
"hex/std",
|
"hex/std",
|
||||||
"serde/std",
|
"serde/std",
|
||||||
@@ -101,7 +101,7 @@ std = [
|
|||||||
"base58-monero/std",
|
"base58-monero/std",
|
||||||
]
|
]
|
||||||
|
|
||||||
cache-distribution = ["futures"]
|
cache-distribution = ["async-lock"]
|
||||||
http-rpc = ["digest_auth", "simple-request", "tokio"]
|
http-rpc = ["digest_auth", "simple-request", "tokio"]
|
||||||
multisig = ["transcript", "frost", "dleq", "std"]
|
multisig = ["transcript", "frost", "dleq", "std"]
|
||||||
binaries = ["tokio/rt-multi-thread", "tokio/macros", "http-rpc"]
|
binaries = ["tokio/rt-multi-thread", "tokio/macros", "http-rpc"]
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ use std_shims::sync::OnceLock;
|
|||||||
#[cfg(all(feature = "cache-distribution", not(feature = "std")))]
|
#[cfg(all(feature = "cache-distribution", not(feature = "std")))]
|
||||||
use std_shims::sync::Mutex;
|
use std_shims::sync::Mutex;
|
||||||
#[cfg(all(feature = "cache-distribution", feature = "std"))]
|
#[cfg(all(feature = "cache-distribution", feature = "std"))]
|
||||||
use futures::lock::Mutex;
|
use async_lock::Mutex;
|
||||||
|
|
||||||
use zeroize::{Zeroize, ZeroizeOnDrop};
|
use zeroize::{Zeroize, ZeroizeOnDrop};
|
||||||
|
|
||||||
|
|||||||
@@ -46,12 +46,11 @@ borsh = { version = "1", default-features = false, features = ["std", "derive",
|
|||||||
log = { version = "0.4", default-features = false, features = ["std"] }
|
log = { version = "0.4", default-features = false, features = ["std"] }
|
||||||
env_logger = { version = "0.10", default-features = false, features = ["humantime"] }
|
env_logger = { version = "0.10", default-features = false, features = ["humantime"] }
|
||||||
|
|
||||||
futures = { version = "0.3", default-features = false, features = ["std"] }
|
|
||||||
tokio = { version = "1", default-features = false, features = ["rt-multi-thread", "sync", "time", "macros"] }
|
tokio = { version = "1", default-features = false, features = ["rt-multi-thread", "sync", "time", "macros"] }
|
||||||
libp2p = { version = "0.52", default-features = false, features = ["tokio", "tcp", "noise", "yamux", "gossipsub", "mdns", "macros"] }
|
libp2p = { version = "0.52", default-features = false, features = ["tokio", "tcp", "noise", "yamux", "gossipsub", "mdns", "macros"] }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
futures = { version = "0.3", default-features = false, features = ["std"] }
|
futures-util = { version = "0.3", default-features = false, features = ["std"] }
|
||||||
tributary = { package = "tributary-chain", path = "./tributary", features = ["tests"] }
|
tributary = { package = "tributary-chain", path = "./tributary", features = ["tests"] }
|
||||||
sp-application-crypto = { git = "https://github.com/serai-dex/substrate", default-features = false, features = ["std"] }
|
sp-application-crypto = { git = "https://github.com/serai-dex/substrate", default-features = false, features = ["std"] }
|
||||||
sp-runtime = { git = "https://github.com/serai-dex/substrate", default-features = false, features = ["std"] }
|
sp-runtime = { git = "https://github.com/serai-dex/substrate", default-features = false, features = ["std"] }
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ use std::{
|
|||||||
|
|
||||||
use zeroize::Zeroizing;
|
use zeroize::Zeroizing;
|
||||||
use rand_core::{RngCore, CryptoRng, OsRng};
|
use rand_core::{RngCore, CryptoRng, OsRng};
|
||||||
use futures::{task::Poll, poll};
|
use futures_util::{task::Poll, poll};
|
||||||
|
|
||||||
use ciphersuite::{
|
use ciphersuite::{
|
||||||
group::{ff::Field, GroupEncoding},
|
group::{ff::Field, GroupEncoding},
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ log = { version = "0.4", default-features = false, features = ["std"] }
|
|||||||
serai-db = { path = "../../common/db" }
|
serai-db = { path = "../../common/db" }
|
||||||
|
|
||||||
scale = { package = "parity-scale-codec", version = "3", default-features = false, features = ["std", "derive"] }
|
scale = { package = "parity-scale-codec", version = "3", default-features = false, features = ["std", "derive"] }
|
||||||
futures = { version = "0.3", default-features = false, features = ["std"] }
|
futures-util = { version = "0.3", default-features = false, features = ["std", "sink", "channel"] }
|
||||||
|
futures-channel = { version = "0.3", default-features = false, features = ["std", "sink"] }
|
||||||
tendermint = { package = "tendermint-machine", path = "./tendermint" }
|
tendermint = { package = "tendermint-machine", path = "./tendermint" }
|
||||||
|
|
||||||
tokio = { version = "1", default-features = false, features = ["sync", "time", "rt"] }
|
tokio = { version = "1", default-features = false, features = ["sync", "time", "rt"] }
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ use zeroize::Zeroizing;
|
|||||||
use ciphersuite::{Ciphersuite, Ristretto};
|
use ciphersuite::{Ciphersuite, Ristretto};
|
||||||
|
|
||||||
use scale::Decode;
|
use scale::Decode;
|
||||||
use futures::{StreamExt, SinkExt, channel::mpsc::UnboundedReceiver};
|
use futures_channel::mpsc::UnboundedReceiver;
|
||||||
|
use futures_util::{StreamExt, SinkExt};
|
||||||
use ::tendermint::{
|
use ::tendermint::{
|
||||||
ext::{BlockNumber, Commit, Block as BlockTrait, Network},
|
ext::{BlockNumber, Commit, Block as BlockTrait, Network},
|
||||||
SignedMessageFor, SyncedBlock, SyncedBlockSender, SyncedBlockResultReceiver, MessageSender,
|
SignedMessageFor, SyncedBlock, SyncedBlockSender, SyncedBlockResultReceiver, MessageSender,
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ log = { version = "0.4", default-features = false, features = ["std"] }
|
|||||||
|
|
||||||
parity-scale-codec = { version = "3", default-features = false, features = ["std", "derive"] }
|
parity-scale-codec = { version = "3", default-features = false, features = ["std", "derive"] }
|
||||||
|
|
||||||
futures = { version = "0.3", default-features = false, features = ["std", "async-await"] }
|
futures-util = { version = "0.3", default-features = false, features = ["std", "async-await-macro", "sink", "channel"] }
|
||||||
|
futures-channel = { version = "0.3", default-features = false, features = ["std", "sink"] }
|
||||||
tokio = { version = "1", default-features = false, features = ["time"] }
|
tokio = { version = "1", default-features = false, features = ["time"] }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ use std::{
|
|||||||
|
|
||||||
use parity_scale_codec::{Encode, Decode};
|
use parity_scale_codec::{Encode, Decode};
|
||||||
|
|
||||||
use futures::{
|
use futures_channel::mpsc;
|
||||||
|
use futures_util::{
|
||||||
FutureExt, StreamExt, SinkExt,
|
FutureExt, StreamExt, SinkExt,
|
||||||
future::{self, Fuse},
|
future::{self, Fuse},
|
||||||
channel::mpsc,
|
|
||||||
};
|
};
|
||||||
use tokio::time::sleep;
|
use tokio::time::sleep;
|
||||||
|
|
||||||
@@ -367,7 +367,7 @@ impl<N: Network + 'static> TendermintMachine<N> {
|
|||||||
let mut queue_future =
|
let mut queue_future =
|
||||||
if self.queue.is_empty() { Fuse::terminated() } else { future::ready(()).fuse() };
|
if self.queue.is_empty() { Fuse::terminated() } else { future::ready(()).fuse() };
|
||||||
|
|
||||||
if let Some((our_message, msg, mut sig)) = futures::select_biased! {
|
if let Some((our_message, msg, mut sig)) = futures_util::select_biased! {
|
||||||
// Handle a new block occurring externally (an external sync loop)
|
// Handle a new block occurring externally (an external sync loop)
|
||||||
// Has the highest priority as it makes all other futures here irrelevant
|
// Has the highest priority as it makes all other futures here irrelevant
|
||||||
msg = self.synced_block_recv.next() => {
|
msg = self.synced_block_recv.next() => {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ use std::{
|
|||||||
collections::HashMap,
|
collections::HashMap,
|
||||||
};
|
};
|
||||||
|
|
||||||
use futures::{FutureExt, future};
|
use futures_util::{FutureExt, future};
|
||||||
use tokio::time::sleep;
|
use tokio::time::sleep;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
@@ -80,9 +80,9 @@ impl<N: Network> RoundData<N> {
|
|||||||
let propose_timeout = timeout_future(Step::Propose);
|
let propose_timeout = timeout_future(Step::Propose);
|
||||||
let prevote_timeout = timeout_future(Step::Prevote);
|
let prevote_timeout = timeout_future(Step::Prevote);
|
||||||
let precommit_timeout = timeout_future(Step::Precommit);
|
let precommit_timeout = timeout_future(Step::Precommit);
|
||||||
futures::pin_mut!(propose_timeout, prevote_timeout, precommit_timeout);
|
futures_util::pin_mut!(propose_timeout, prevote_timeout, precommit_timeout);
|
||||||
|
|
||||||
futures::select_biased! {
|
futures_util::select_biased! {
|
||||||
step = propose_timeout => step,
|
step = propose_timeout => step,
|
||||||
step = prevote_timeout => step,
|
step = prevote_timeout => step,
|
||||||
step = precommit_timeout => step,
|
step = precommit_timeout => step,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ use async_trait::async_trait;
|
|||||||
|
|
||||||
use parity_scale_codec::{Encode, Decode};
|
use parity_scale_codec::{Encode, Decode};
|
||||||
|
|
||||||
use futures::SinkExt;
|
use futures_util::sink::SinkExt;
|
||||||
use tokio::{sync::RwLock, time::sleep};
|
use tokio::{sync::RwLock, time::sleep};
|
||||||
|
|
||||||
use tendermint_machine::{
|
use tendermint_machine::{
|
||||||
|
|||||||
@@ -33,4 +33,4 @@ dkg = { path = "../../crypto/dkg", default-features = false }
|
|||||||
bitcoin-serai = { path = "../../coins/bitcoin", default-features = false, features = ["hazmat"] }
|
bitcoin-serai = { path = "../../coins/bitcoin", default-features = false, features = ["hazmat"] }
|
||||||
|
|
||||||
monero-generators = { path = "../../coins/monero/generators", default-features = false }
|
monero-generators = { path = "../../coins/monero/generators", default-features = false }
|
||||||
monero-serai = { path = "../../coins/monero", default-features = false }
|
monero-serai = { path = "../../coins/monero", default-features = false, features = ["cache-distribution"] }
|
||||||
|
|||||||
Reference in New Issue
Block a user