bitcoin-pro icon indicating copy to clipboard operation
bitcoin-pro copied to clipboard

Cannot install Bitcoin Pro 0.1.0-beta.2 on macOS Big Sur

Open louneskmt opened this issue 3 years ago • 17 comments

Hey!

I tried to install Bitcoin Pro using with cargo:

cargo install bitcoin-pro --version 0.1.0-beta.2   

But it couldn't compile rgb-core and the installation resulted in the following errors.

   Compiling lnpbp v0.3.3
   Compiling rgb-core v0.3.1
error[E0599]: the method `strict_encode` exists for struct `secp256k1zkp::SecretKey`, but its trait bounds were not satisfied
   --> /Users/lounesksouri/.cargo/registry/src/github.com-1ecc6299db9ec823/rgb-core-0.3.1/src/contract/value.rs:255:17
    |
255 |                 strict_encode_list!(e; EncodingTag::U64, self.value, self.blinding),
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method cannot be called on `secp256k1zkp::SecretKey` due to unsatisfied trait bounds
    | 
   ::: /Users/lounesksouri/.cargo/registry/src/github.com-1ecc6299db9ec823/amplify-3.1.1/src/strategy.rs:86:1
    |
86  | pub struct Holder<T, S>(T, PhantomData<S>);
    | ------------------------------------------- doesn't satisfy `_: strict_encoding::StrictEncode`
    | 
   ::: /Users/lounesksouri/.cargo/registry/src/github.com-1ecc6299db9ec823/grin_secp256k1zkp-0.7.10/src/key.rs:34:1
    |
34  | pub struct SecretKey(pub [u8; constants::SECRET_KEY_SIZE]);
    | -----------------------------------------------------------
    | |
    | doesn't satisfy `_: strict_encoding::StrictEncode`
    | doesn't satisfy `secp256k1zkp::SecretKey: strict_encoding::Strategy`
    |
    = note: the following trait bounds were not satisfied:
            `secp256k1zkp::SecretKey: strict_encoding::Strategy`
            which is required by `secp256k1zkp::SecretKey: strict_encoding::StrictEncode`
            `Holder<secp256k1zkp::SecretKey, _>: strict_encoding::StrictEncode`
            which is required by `secp256k1zkp::SecretKey: strict_encoding::StrictEncode`
    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0599]: the function or associated item `strict_decode` exists for struct `secp256k1zkp::SecretKey`, but its trait bounds were not satisfied
   --> /Users/lounesksouri/.cargo/registry/src/github.com-1ecc6299db9ec823/rgb-core-0.3.1/src/contract/value.rs:266:47
    |
266 |                     blinding: BlindingFactor::strict_decode(&mut d)?,
    |                                               ^^^^^^^^^^^^^ function or associated item cannot be called on `secp256k1zkp::SecretKey` due to unsatisfied trait bounds
    | 
   ::: /Users/lounesksouri/.cargo/registry/src/github.com-1ecc6299db9ec823/amplify-3.1.1/src/strategy.rs:86:1
    |
86  | pub struct Holder<T, S>(T, PhantomData<S>);
    | ------------------------------------------- doesn't satisfy `_: strict_encoding::StrictDecode`
    | 
   ::: /Users/lounesksouri/.cargo/registry/src/github.com-1ecc6299db9ec823/grin_secp256k1zkp-0.7.10/src/key.rs:34:1
    |
34  | pub struct SecretKey(pub [u8; constants::SECRET_KEY_SIZE]);
    | -----------------------------------------------------------
    | |
    | doesn't satisfy `_: strict_encoding::StrictDecode`
    | doesn't satisfy `secp256k1zkp::SecretKey: strict_encoding::Strategy`
    |
    = note: the following trait bounds were not satisfied:
            `secp256k1zkp::SecretKey: strict_encoding::Strategy`
            which is required by `secp256k1zkp::SecretKey: strict_encoding::StrictDecode`
            `Holder<secp256k1zkp::SecretKey, _>: strict_encoding::StrictDecode`
            which is required by `secp256k1zkp::SecretKey: strict_encoding::StrictDecode`
            `&secp256k1zkp::SecretKey: strict_encoding::Strategy`
            which is required by `&secp256k1zkp::SecretKey: strict_encoding::StrictDecode`
            `Holder<&secp256k1zkp::SecretKey, _>: strict_encoding::StrictDecode`
            which is required by `&secp256k1zkp::SecretKey: strict_encoding::StrictDecode`
            `&mut secp256k1zkp::SecretKey: strict_encoding::Strategy`
            which is required by `&mut secp256k1zkp::SecretKey: strict_encoding::StrictDecode`
            `Holder<&mut secp256k1zkp::SecretKey, _>: strict_encoding::StrictDecode`
            which is required by `&mut secp256k1zkp::SecretKey: strict_encoding::StrictDecode`

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0599`.
error: could not compile `rgb-core`

Rust version:

➜  ~ rustc -V
rustc 1.52.0-nightly (35dbef235 2021-03-02)

macOS version: Big Sur 11.0.1 (latest) Xcode and Xcode CLT: latest versions

Any ideas?

louneskmt avatar Mar 09 '21 11:03 louneskmt

I just tested on an Ubuntu 20.04.2 VM, same error.

louneskmt avatar Mar 12 '21 09:03 louneskmt

Same with OSX Mojave

➜  bitcoin-pro git:(master)  sw_vers
ProductName:	Mac OS X
ProductVersion:	10.14.6
BuildVersion:	18G6032

➜  bitcoin-pro git:(master)  rustup -V
rustup 1.23.1 (3df2264a9 2020-11-30)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active rustc version is rustc 1.52.0-nightly (4a8b6f708 2021-03-11)

EDIT : With cargo update and cargo build --all-features i managed to build the bitcoin-pro binary

vafanassieff avatar Mar 12 '21 17:03 vafanassieff

Hey @vafanassieff! I've the same error manually building it from the v0.1.0-beta.2 branch. I also tried from master and it couldn't compile amplify_derive_helpers (error: unknown 'doc' attribute 'hide').

louneskmt avatar Mar 12 '21 20:03 louneskmt

I went from master and run the cargo command in the previous comment I guess it's missing some stuff for osx i have no icon with this build.

See here https://github.com/pandoracore/bitcoin-pro/issues/7#issuecomment-785303604

vafanassieff avatar Mar 12 '21 21:03 vafanassieff

@vafanassieff I managed to build from master, but only on Ubuntu. Thanks!

louneskmt avatar Mar 13 '21 08:03 louneskmt

Try the commands: git checkout master git pull origin cargo clean cargo update cargo build --all-features

Than go to bitcoin-pro/target/debug and run there ./bitcoin-pro

Goosie avatar Mar 15 '21 16:03 Goosie

alternatively after the new release you can use cargo install bitcoin-pro which will install 0.1.0 version

dr-orlovsky avatar Mar 17 '21 07:03 dr-orlovsky

NIce tried it, and it is working. Some small warnings comes up on my machine: image small errors

Goosie avatar Mar 17 '21 08:03 Goosie

Thanks for your answer @dr-orlovsky. Unfortunately, I'm facing the following error:

   Compiling amplify_derive_helpers v0.0.4
error: unknown `doc` attribute `hide`
   --> /Users/lounesksouri/.cargo/registry/src/github.com-1ecc6299db9ec823/amplify_derive_helpers-0.0.4/src/attr.rs:492:7
    |
492 | #[doc(hide)]
    |       ^^^^

error: unknown `doc` attribute `hide`
   --> /Users/lounesksouri/.cargo/registry/src/github.com-1ecc6299db9ec823/amplify_derive_helpers-0.0.4/src/attr.rs:494:11
    |
494 |     #[doc(hide)]
    |           ^^^^

error: unknown `doc` attribute `hide`
   --> /Users/lounesksouri/.cargo/registry/src/github.com-1ecc6299db9ec823/amplify_derive_helpers-0.0.4/src/attr.rs:501:11
    |
501 |     #[doc(hide)]
    |           ^^^^

   Compiling zeroize_derive v0.9.3
error: aborting due to 3 previous errors

error: could not compile `amplify_derive_helpers`

louneskmt avatar Mar 17 '21 12:03 louneskmt

@louneskmt seems you are using outdated rust compiler version. Can you try to compile with nightly? cargo +nightly install bitcoin-pro or, if you are cloning the repo, cargo +nightly build --release

dr-orlovsky avatar Mar 17 '21 15:03 dr-orlovsky

@dr-orlovsky I'm using the nightly compiler version.

➜  bitcoin-pro git:(master) rustup -V
rustup 1.23.1 (3df2264a9 2020-11-30)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.52.0-nightly (35dbef235 2021-03-02)`
➜  bitcoin-pro git:(master) rustc -V                                            
rustc 1.52.0-nightly (35dbef235 2021-03-02)

I get the exact same error with both commands you provided me.

louneskmt avatar Mar 18 '21 06:03 louneskmt

We experience very strange behaviour of Cargo (rust package manager) using wrong versions of dependencies and unable to understand the reasons of it... Have not the situation changed after removing the repo, cloning it back, doing cargo clear and building from scratch?

Related discussion from here: https://github.com/LNP-BP/lnp-node/issues/22#issuecomment-803466587

dr-orlovsky avatar Mar 21 '21 10:03 dr-orlovsky

@dr-orlovsky Still the exact same error as here: https://github.com/pandoracore/bitcoin-pro/issues/8#issuecomment-801038862

louneskmt avatar Mar 21 '21 11:03 louneskmt

@louneskmt v0.1.1 with upstream dependency problems fixed is out. Can you try it? (It works on my Mac OS Big Sur).

Just do cargo install bitcoin-pro from anywhere or pull the latest master and do cargo run from inside the repo

dr-orlovsky avatar May 14 '21 21:05 dr-orlovsky

Thanks @dr-orlovsky, will try asap and report back.

louneskmt avatar May 14 '21 21:05 louneskmt

@dr-orlovsky Unfortunately, still the same issue. I tried both the cargo install and running from master, it fails at the same point https://github.com/pandoracore/bitcoin-pro/issues/8#issuecomment-801038862.

louneskmt avatar May 15 '21 19:05 louneskmt

Well, it certainly builds on my local machine with Mac OS Big Sure, so this seems to be some cache/cargo issue. Try delete the repo, git clone it again, do cargo update inside of it and run cargo run - it must work after that. If not, do cargo clean once again.

dr-orlovsky avatar Jun 06 '21 12:06 dr-orlovsky