Installation Help?

I’m at the “install wallet” phase from the instructions on Github.

I’m installing on Linux (Debian) and get this error:Compiling nockapp-grpc-proto v0.1.0 (/home/scorpio/nockchain/crates/nockapp-grpc-proto)
error: failed to run custom build command for nockapp-grpc-proto v0.1.0 (/home/scorpio/nockchain/crates/nockapp-grpc-proto)
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.

Caused by:
process didn’t exit successfully: /home/scorpio/nockchain/target/release/build/nockapp-grpc-proto-5a6285158957173d/build-script-build (exit status: 1)
— stdout
cargo:rerun-if-changed=proto/nockchain/common/v1/blockchain.proto
cargo:rerun-if-changed=proto/nockchain/common/v1/pagination.proto
cargo:rerun-if-changed=proto/nockchain/common/v1/primitives.proto
cargo:rerun-if-changed=proto/nockchain/monitoring/v1/monitoring.proto
cargo:rerun-if-changed=proto/nockchain/private/v1/nockapp.proto
cargo:rerun-if-changed=proto/nockchain/public/v1/nockchain.proto

— stderr
cargo:rerun-if-changed=proto/nockchain/common/v1/blockchain.proto
cargo:rerun-if-changed=proto/nockchain/common/v1/pagination.proto
cargo:rerun-if-changed=proto/nockchain/common/v1/primitives.proto
cargo:rerun-if-changed=proto/nockchain/monitoring/v1/monitoring.proto
cargo:rerun-if-changed=proto/nockchain/private/v1/nockapp.proto
cargo:rerun-if-changed=proto/nockchain/public/v1/nockchain.proto
Error: Custom { kind: Other, error: “protoc failed: nockchain/common/v1/blockchain.proto: This file contains proto3 optional fields, but --experimental_allow_proto3_optional was not set.\n” }
warning: build failed, waiting for other jobs to finish…
error: failed to compile nockchain-wallet v0.1.0 (/home/scorpio/nockchain/crates/nockchain-wallet), intermediate artifacts can be found at /home/scorpio/nockchain/target.
To reuse those artifacts with a future compilation, set the environment variable CARGO_TARGET_DIR to that path.
make: *** [Makefile:64: install-nockchain-wallet] Error 101ronment variable CARGO_TARGET_DIR to that path.
make: *** [Makefile:64: install-nockchain-wallet] Error 101

I use Mint like a pleb so I have no idea what the deal is.

Pls halp.

1 Like

The proto3 optional feature became standard in protoc 3.15+. You likely have an older version.

Check your version:

protoc --version

If it’s below 3.15, update it.

Updated.

New error:

warning: use of deprecated method ibig::pow::<impl ibig::UBig>::pow: This uses global allocator. Use pow_stack instead to prevent memory leaks
→ crates/nockchain-libp2p-io/src/tip5_util.rs:45:39
|
45 | *acc += UBig::from(value) * prime.pow(i);
| ^^^
|
= note: #[warn(deprecated)] on by default

Compiling bitcoincore-rpc v0.19.0
Compiling nockapp-grpc v0.1.0 (/home/scorpio/nockchain/crates/nockapp-grpc)
Compiling hoonc v0.2.0 (/home/scorpio/nockchain/crates/hoonc)
warning: unused variable: arbitrary
→ crates/hoonc/src/lib.rs:207:5
|
207 | arbitrary: bool,
| ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: _arbitrary
|
= note: #[warn(unused_variables)] on by default

warning: variable prewarm_state_file is assigned to, but never used
→ crates/hoonc/src/lib.rs:232:13
|
232 | let mut prewarm_state_file: Option = None;
| ^^^^^^^^^^^^^^^^^^
|
= note: consider using _prewarm_state_file instead

warning: value assigned to prewarm_state_file is never read
→ crates/hoonc/src/lib.rs:237:9
|
237 | prewarm_state_file = Some(tmp);
| ^^^^^^^^^^^^^^^^^^
|
= help: maybe it is overwritten before being read?
= note: #[warn(unused_assignments)] on by default

warning: unused import: AsyncWriteExt
→ crates/hoonc/src/lib.rs:17:31
|
17 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
| ^^^^^^^^^^^^^
|
= note: #[warn(unused_imports)] on by default

warning: hoonc (lib) generated 4 warnings
Compiling kernels v0.1.0 (/home/scorpio/nockchain/crates/kernels)
Compiling termcolor v1.4.1
warning: use of deprecated function rand::thread_rng: Renamed to rng
→ crates/nockchain/src/mining.rs:422:29
|
422 | let mut rng = rand::thread_rng();
| ^^^^^^^^^^
|
= note: #[warn(deprecated)] on by default

warning: use of deprecated method rand::Rng::gen: Renamed to random to avoid conflict with the new gen keyword in Rust 2024.
→ crates/nockchain/src/mining.rs:424:68
|
424 | … let mut nonce_cell = Atom::from_value(&mut nonce_slab, rng.gen::<…
| ^^^

warning: use of deprecated method rand::Rng::gen: Renamed to random to avoid conflict with the new gen keyword in Rust 2024.
→ crates/nockchain/src/mining.rs:428:68
|
428 | … let nonce_atom = Atom::from_value(&mut nonce_slab, rng.gen::…
| ^^^

warning: nockchain (lib) generated 3 warnings
warning: nockchain-libp2p-io (lib) generated 1 warning
error: could not write output to /home/scorpio/nockchain/target/release/deps/nockchain-b90cbb4153128d38.libp2p_memory_connection_limits-07ce0483e93ba762.libp2p_memory_connection_limits.d5a3ec5dccec6e31-cgu.0.rcgu.o.rcgu.o: File name too long

error: could not compile nockchain (bin “nockchain”) due to 1 previous error
error: failed to compile nockchain v0.1.0 (/home/scorpio/nockchain/crates/nockchain), intermediate artifacts can be found at /home/scorpio/nockchain/target.
To reuse those artifacts with a future compilation, set the environment variable CARGO_TARGET_DIR to that path.
make: *** [Makefile:59: install-nockchain] Error 101
scorpio@scorpio-Latitude-E7470:~/nockchain$

The root cause here is Linux limits on file name lengths. The deeply nested dependency chain (nockchainlibp2p_memory_connection_limits → more nesting) creates extremely long intermediate filenames.

For a local fix, you may have to rename the Cargo build directory:

```
# Set a short target path
export CARGO_TARGET_DIR=/tmp/nc-build
# Build with the shorter path
make install-nockchain
```

Ok, now it’s saying that the mining key is invalid.

I think the issue is that I got a v0 key and it’s looking for a v1 key (right?)

If so, how do I fix this. If not, what’s the issue?

I ran command “nockchain-wallet list-active-addresses” and it likewise gave me a v0 key.

Super appreciate your patience.

1 Like

Easiest solution is to generate a new key pair with nockchain-wallet keygen and use that one. (Keep ahold of the old v0 secrets inasmuch as you used them for anything, of course.)

It just generated another v0

1 Like

Are you on the latest wallet?

git pull  # <-- do this again
make install-nockchain-wallet