mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2025-01-29 00:37:14 -05:00
77fc5743a2
Upgrade bitcoin harness dependency to latest commit Upgrade backoff to fix failing tests. The previous version of backoff had a broken version of the retry function. Upgraded to a newer comit which fixes this problem. Upgrade hyper to 0.14 as the 0.13 was bringing in tokio 0.2.24 Upgraded bitcoin harness to version that uses tokio 1.0 and reqwest 0.11 Upgrade reqwest to 0.11. Reqwest 0.11 uses tokio 1.0 Upgrade libp2p to 0.34 in preparation for tokio 1.0 upgrade
44 lines
1.2 KiB
Rust
44 lines
1.2 KiB
Rust
use anyhow::Result;
|
|
use libp2p::{
|
|
core::{
|
|
identity,
|
|
muxing::StreamMuxerBox,
|
|
transport::Boxed,
|
|
upgrade::{SelectUpgrade, Version},
|
|
Transport,
|
|
},
|
|
dns::DnsConfig,
|
|
mplex::MplexConfig,
|
|
noise::{self, NoiseConfig, X25519Spec},
|
|
yamux, PeerId,
|
|
};
|
|
|
|
/// Builds a libp2p transport without Tor with the following features:
|
|
/// - TcpConnection
|
|
/// - DNS name resolution
|
|
/// - authentication via noise
|
|
/// - multiplexing via yamux or mplex
|
|
pub fn build(id_keys: identity::Keypair) -> Result<SwapTransport> {
|
|
use libp2p::tcp::TokioTcpConfig;
|
|
|
|
let dh_keys = noise::Keypair::<X25519Spec>::new().into_authentic(&id_keys)?;
|
|
let noise = NoiseConfig::xx(dh_keys).into_authenticated();
|
|
|
|
let tcp = TokioTcpConfig::new().nodelay(true);
|
|
let dns = DnsConfig::new(tcp)?;
|
|
|
|
let transport = dns
|
|
.upgrade(Version::V1)
|
|
.authenticate(noise)
|
|
.multiplex(SelectUpgrade::new(
|
|
yamux::YamuxConfig::default(),
|
|
MplexConfig::new(),
|
|
))
|
|
.map(|(peer, muxer), _| (peer, StreamMuxerBox::new(muxer)))
|
|
.boxed();
|
|
|
|
Ok(transport)
|
|
}
|
|
|
|
pub type SwapTransport = Boxed<(PeerId, StreamMuxerBox)>;
|