Skip to content
This repository was archived by the owner on Dec 18, 2023. It is now read-only.

iroh-one and iroh-p2p fail to build #294

@fabricedesre

Description

@fabricedesre

Steps to reproduce:

  • cd iroh-one
  • cargo build

Expected: build without error.

Observed: build failure:

   Compiling iroh-p2p v0.2.0 (/home/fabrice/dev/perso/beetle/iroh-p2p)
error[E0308]: mismatched types
  --> iroh-p2p/src/swarm.rs:44:41
   |
44 |     let quic_config = quic::Config::new(keypair);
   |                       ----------------- ^^^^^^^ expected enum `libp2p_core::identity::Keypair`, found enum `libp2p::identity::Keypair`
   |                       |
   |                       arguments to this function are incorrect
   |
   = note: enum `libp2p::identity::Keypair` and enum `libp2p_core::identity::Keypair` have similar names, but are actually distinct types
note: enum `libp2p::identity::Keypair` is defined in crate `libp2p_core`
  --> /home/fabrice/.cargo/registry/src/github.com-1ecc6299db9ec823/libp2p-core-0.38.0/src/identity.rs:68:1
   |
68 | pub enum Keypair {
   | ^^^^^^^^^^^^^^^^
note: enum `libp2p_core::identity::Keypair` is defined in crate `libp2p_core`
  --> /home/fabrice/.cargo/registry/src/github.com-1ecc6299db9ec823/libp2p-core-0.39.0/src/identity.rs:68:1
   |
68 | pub enum Keypair {
   | ^^^^^^^^^^^^^^^^
   = note: perhaps two different versions of crate `libp2p_core` are being used?
note: associated function defined here
  --> /home/fabrice/.cargo/registry/src/github.com-1ecc6299db9ec823/libp2p-quic-0.7.0-alpha.2/src/endpoint.rs:94:12
   |
94 |     pub fn new(keypair: &libp2p_core::identity::Keypair) -> Self {
   |            ^^^

error[E0599]: the method `map` exists for struct `OrTransport<GenTransport<libp2p::libp2p_quic::tokio::Provider>, Boxed<(PeerId, StreamMuxerBox)>>`, but its trait bounds were not satisfied
  --> iroh-p2p/src/swarm.rs:96:10
   |
96 |         .map(|o, _| match o {
   |          ^^^ method cannot be called on `OrTransport<GenTransport<libp2p::libp2p_quic::tokio::Provider>, Boxed<(PeerId, StreamMuxerBox)>>` due to unsatisfied trait bounds
   |
  ::: /home/fabrice/.cargo/registry/src/github.com-1ecc6299db9ec823/libp2p-core-0.38.0/src/transport/choice.rs:29:1
   |
29 | pub struct OrTransport<A, B>(#[pin] A, #[pin] B);
   | ----------------------------
   | |
   | doesn't satisfy `_: Iterator`
   | doesn't satisfy `_: libp2p::Transport`
   |
  ::: /home/fabrice/.cargo/registry/src/github.com-1ecc6299db9ec823/libp2p-quic-0.7.0-alpha.2/src/transport.rs:62:1
   |
62 | pub struct GenTransport<P: Provider> {
   | ------------------------------------ doesn't satisfy `_: libp2p::Transport`
   |
   = note: the following trait bounds were not satisfied:
           `GenTransport<libp2p::libp2p_quic::tokio::Provider>: libp2p::Transport`
           which is required by `OrTransport<GenTransport<libp2p::libp2p_quic::tokio::Provider>, Boxed<(PeerId, StreamMuxerBox)>>: libp2p::Transport`
           `OrTransport<GenTransport<libp2p::libp2p_quic::tokio::Provider>, Boxed<(PeerId, StreamMuxerBox)>>: Iterator`
           which is required by `&mut OrTransport<GenTransport<libp2p::libp2p_quic::tokio::Provider>, Boxed<(PeerId, StreamMuxerBox)>>: Iterator`

Some errors have detailed explanations: E0308, E0599.
For more information about an error, try `rustc --explain E0308`.
error: could not compile `iroh-p2p` due to 2 previous errors

There's a conflict between libp2p-core 0.38.0 and 0.39.0 which are both pulled by libp2p 0.50.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions