fail to compile substrate add-a-pallet - substrate

I got the compile error when I follow the latest substrate tutorial add-a-pallet.
compiler complain about the bind error u128 type doesn't satisfied with Event.
Using rustc version: rustc 1.57.0-nightly (54bb4fec6 2021-10-08)
Compiling node-template-runtime v3.0.0-monthly-2021-10 (/home/bruce/substrate-node-template/runtime)
error: failed to run custom build command for `node-template-runtime v3.0.0-monthly-2021-10 (/home/bruce/substrate-node-template/runtime)`
Caused by:
process didn't exit successfully: `/home/bruce/substrate-node-template/target/release/build/node-template-runtime-41f26d4f5bdef0b7/build-script-build` (exit status: 1)
--- stdout
Information that should be included in a bug report.
Executing build command: "rustup" "run" "nightly" "cargo" "rustc" "--target=wasm32-unknown-unknown" "--manifest-path=/home/bruce/substrate-node-template/target/release/wbuild/node-template-runtime/Cargo.toml" "--color=always" "--release"
Using rustc version: rustc 1.57.0-nightly (54bb4fec6 2021-10-08)
--- stderr
Compiling node-template-runtime v3.0.0-monthly-2021-10 (/home/bruce/substrate-node-template/runtime)
error[E0277]: the trait bound `u128: Currency<AccountId32>` is not satisfied in `Event`
--> /home/bruce/substrate-node-template/runtime/src/lib.rs:303:1
|
303 | / construct_runtime!(
304 | | pub enum Runtime where
305 | | Block = Block,
306 | | NodeBlock = opaque::Block,
... |
320 | | }
321 | | );
| |__^ within `Event`, the trait `Currency<AccountId32>` is not implemented for `u128`
|
note: required because it appears within the type `Event`
error: could not compile `node-template-runtime` due to 10 previous errors

Substrate Node Template does not compile on any version of Rust compiler compiler. I suggest to:
execute init.sh script in scripts directory
working versions on my end looks like below:
stable-x86_64-unknown-linux-gnu
rustup default stable-x86_64-unknown-linux-gnu
After applying those two suggestions you should be able to compile source code.

Related

Error while adding Nick Pallet to substrate

I have just started exploring substrate and I am following this tutorial, (https://docs.substrate.io/tutorials/v3/add-a-pallet/).
Under step Implement the Nicks pallet Config trait -> Add Nicks to the construct_runtime! macro., I added Nicks pallet to my runtime, as shown in the screenshot.
Now, when I run cargo check -p node-template-runtime, I get a lot of errors;
asad#asad-Z440:~/Dev/Blockchain/polkadot/substrate-node-template$ cargo check -p node-template-runtime
warning: /home/asad/Dev/Blockchain/polkadot/substrate-node-template/node/Cargo.toml: version requirement `3.0.0-monthly-2021-09+1` for dependency `node-template-runtime` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
warning: /home/asad/Dev/Blockchain/polkadot/substrate-node-template/runtime/Cargo.toml: version requirement `3.0.0-monthly-2021-09+1` for dependency `pallet-template` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
Updating git repository `https://github.com/paritytech/substrate.git`
Updating crates.io index
Updating git repository `https://github.com/paritytech/substrate.git`
Compiling node-template-runtime v3.0.0-monthly-2021-09+1 (/home/asad/Dev/Blockchain/polkadot/substrate-node-template/runtime)
error: failed to run custom build command for `node-template-runtime v3.0.0-monthly-2021-09+1 (/home/asad/Dev/Blockchain/polkadot/substrate-node-template/runtime)`
Caused by:
process didn't exit successfully: `/home/asad/Dev/Blockchain/polkadot/substrate-node-template/target/debug/build/node-template-runtime-c9c48352bd7ed47e/build-script-build` (exit status: 1)
--- stdout
Information that should be included in a bug report.
Executing build command: "rustup" "run" "nightly" "cargo" "rustc" "--target=wasm32-unknown-unknown" "--manifest-path=/home/asad/Dev/Blockchain/polkadot/substrate-node-template/target/debug/wbuild/node-template-runtime/Cargo.toml" "--color=always" "--release"
Using rustc version: rustc 1.57.0-nightly (aa7aca3b9 2021-09-30)
--- stderr
warning: /home/asad/Dev/Blockchain/polkadot/substrate-node-template/runtime/Cargo.toml: version requirement `3.0.0-monthly-2021-09+1` for dependency `pallet-template` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
Updating git repository `https://github.com/paritytech/substrate.git`
Compiling node-template-runtime v3.0.0-monthly-2021-09+1 (/home/asad/Dev/Blockchain/polkadot/substrate-node-template/runtime)
warning: unused doc comment
--> /home/asad/Dev/Blockchain/polkadot/substrate-node-template/runtime/src/lib.rs:253:1
|
253 | /// Nicks Config:
| ^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
|
= note: `#[warn(unused_doc_comments)]` on by default
= help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
error: duplicate lang item in crate `sp_io` (which `frame_support` depends on): `panic_impl`.
.........
310 | / construct_runtime!(
311 | | pub enum Runtime where
312 | | Block = Block,
313 | | NodeBlock = opaque::Block,
... |
327 | | }
328 | | );
| |__^
note: required by a bound in `sp_runtime::generic::UncheckedExtrinsic`
--> /home/asad/.cargo/git/checkouts/substrate-7e08433d4c370a21/20a9bbb/primitives/runtime/src/generic/unchecked_extrinsic.rs:39:40
|
39 | pub struct UncheckedExtrinsic<Address, Call, Signature, Extra>
| ^^^^ required by this bound in `sp_runtime::generic::UncheckedExtrinsic`
= note: this error originates in the macro `construct_runtime` (in Nightly builds, run with -Z macro-backtrace for more info)
For more information about this error, try `rustc --explain E0277`.
warning: `node-template-runtime` (lib) generated 1 warning
error: could not compile `node-template-runtime` due to 112 previous errors; 1 warning emitted
Things I have tried:
Removing Cargo.lock file and then running cargo check -p node-template-runtime.
PS: I am just starting with rust and substrate, so spare me if i am asking something obvious here.

Can’t build smart contract - error compiling elrond-wasm with erdpy build contract

When I try to build the ping-pong smart contract from here using:
erdpy build contract
I don't get the following expected output:
INFO:projects.core:WASM file generated: output/ping-pong.wasm
because of the following errors that appear in the sc_results.rs file:
Compiling elrond-codec v0.5.3
Compiling elrond-wasm v0.18.2
error[E0432]: unresolved import `core::ops::FromResidual`
--> /Users/<username>/elrondsdk/vendor-rust/registry/src/github.com-1ecc6299db9ec823/elrond-wasm-0.18.2/src/types/io/sc_result.rs:7:30
...
error[E0437]: type Output is not a member of trait `Try`
--> /Users/<username>/elrondsdk/vendor-rust/registry/src/github.com-1ecc6299db9ec823/elrond-wasm-0.18.2/src/types/io/sc_result.rs:62:5
...
error[E0437]: type Residual is not a member of trait `Try`
--> /Users/<username>/elrondsdk/vendor-rust/registry/src/github.com-1ecc6299db9ec823/elrond-wasm-0.18.2/src/types/io/sc_result.rs:63:5
...
error[E0407]: method branch is not a member of trait `Try`
--> /Users/<username>/elrondsdk/vendor-rust/registry/src/github.com-1ecc6299db9ec823/elrond-wasm-0.18.2/src/types/io/sc_result.rs:65:5
...
error[E0407]: method from_output is not a member of trait `Try`
--> /Users/<username>/elrondsdk/vendor-rust/registry/src/github.com-1ecc6299db9ec823/elrond-wasm-0.18.2/src/types/io/sc_result.rs:71:5
...
error aborting due to 5 previous errors
...
CRITICAL:cli:Build error: error code = 101, see output.
Environment:
elrond-wasm - v0.18.2
erdpy - v1.0.19
How to solve this build issue?
The problem was that Rust had a non-backwards-compatible change earlier this year.
So, there was an incompatibility with old versions, but it worked fine with newer versions.
Updating Rust using:
rustup update
solved the problem.
Now:
rustc --version | grep -o '^[^(]*'
prints
rustc 1.57.0-nightly

how to build gcc 11 cross compiler for jetson nano (arm64)

I'm following this guide but when I try to build the c++ library I get the following fatal error.
../../../../gcc-11.1.0/libsanitizer/asan/asan_linux.cpp: In function ‘void __asan::AsanCheckIncompatibleRT()’:
../../../../gcc-11.1.0/libsanitizer/asan/asan_linux.cpp:199:21: error: ‘PATH_MAX’ was not declared in this scope
199 | char filename[PATH_MAX];
| ^~~~~~~~
../../../../gcc-11.1.0/libsanitizer/asan/asan_linux.cpp:200:35: error: ‘filename’ was not declared in this scope; did you mean ‘rename’?
200 | MemoryMappedSegment segment(filename, sizeof(filename));
| ^~~~~~~~
|
This appears to be a bug in libsanitizer/asan/asan_linux.cpp. It seems to find the wrong limits.h file.
I was able to work around it by modifying asan_linux.cpp as follows.
-#include <limits.h>
+#include <linux/limits.h>

sbt - Scala - Brew - MacOS - Unable to connect to sbt shell at all: NoClassDefFoundError

So I'm just trying to get a project set up using JDK 15 / SBT 1.5.4 / Scala 2.13.6 all of which have been installed via brew on MacOS.
However before I even attempt to build via intellij etc. I'm unable to connect to the sbt shell via a normal terminal.
[info] welcome to sbt 1.5.4 (AdoptOpenJDK Java 15.0.2)
[info] loading global plugins from /Users/user/.sbt/1.0/plugins
[warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
Exception in thread "Thread-0" java.lang.NoClassDefFoundError: Could not initialize class com.swoval.runtime.ShutdownHooks
at com.swoval.runtime.ShutdownHooks$1.run(ShutdownHooks.java:25)
I've tried reinstalling all three dependancies a few times and cleared the cache but still nothing. I'm guessing something isn't configured right because it's unable to even connect to the shell.
Thanks!
EDIT: I've just followed the install steps on the sbt docs and the only requirements are JDK 11 or 8 and sbt itself. I've removed scala / JDK15 and re-downloaded JDK 11 via SDK-man this time and i'm still having the same issue.
EDIT 2: I've removed the .sbt directory and reinitiased and now sbt command is showing more output, hopefully this helps a little more.
java.lang.NoClassDefFoundError: Could not initialize class com.swoval.runtime.ShutdownHooks
at com.swoval.runtime.NativeLoader.loadPackaged(NativeLoader.java:143)
at com.swoval.runtime.NativeLoader.loadPackaged(NativeLoader.java:174)
at com.swoval.files.apple.FileEventMonitorImpl.<clinit>(FileEventMonitors.java:127)
at com.swoval.files.apple.FileEventMonitors.get(FileEventMonitors.java:47)
at com.swoval.files.ApplePathWatcher.<init>(ApplePathWatcher.java:258)
at com.swoval.files.ApplePathWatcher.<init>(ApplePathWatcher.java:194)
at com.swoval.files.ApplePathWatchers.get(ApplePathWatcher.java:331)
at com.swoval.files.PathWatchers.get(PathWatchers.java:84)
at com.swoval.files.FileTreeRepositories.get(FileTreeRepositories.java:64)
at com.swoval.files.FileTreeRepositories.get(FileTreeRepositories.java:32)
at sbt.internal.nio.FileTreeRepositoryImpl.<init>(FileTreeRepositoryImpl.scala:46)
at sbt.internal.nio.FileTreeRepository$.default(FileTreeRepository.scala:40)
at sbt.BuiltinCommands$.$anonfun$setupGlobalFileTreeRepository$1(Main.scala:985)
at sbt.BuiltinCommands$.$anonfun$doLoadProject$5(Main.scala:974)
at sbt.Project$.setProject(Project.scala:501)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:974)
at sbt.BuiltinCommands$.$anonfun$loadProjectImpl$2(Main.scala:912)
at sbt.Command$.$anonfun$applyEffect$4(Command.scala:150)
at sbt.Command$.$anonfun$applyEffect$2(Command.scala:145)
at sbt.Command$.process(Command.scala:189)
at sbt.MainLoop$.$anonfun$processCommand$5(MainLoop.scala:245)
at scala.Option.getOrElse(Option.scala:189)
at sbt.MainLoop$.process$1(MainLoop.scala:245)
at sbt.MainLoop$.processCommand(MainLoop.scala:278)
at sbt.MainLoop$.$anonfun$next$5(MainLoop.scala:163)
at sbt.State$StateOpsImpl$.runCmd$1(State.scala:289)
at sbt.State$StateOpsImpl$.process$extension(State.scala:325)
at sbt.MainLoop$.$anonfun$next$4(MainLoop.scala:163)
at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
at sbt.MainLoop$.next(MainLoop.scala:163)
at sbt.MainLoop$.run(MainLoop.scala:144)
at sbt.MainLoop$.$anonfun$runWithNewLog$1(MainLoop.scala:119)
at sbt.io.Using.apply(Using.scala:27)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:112)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:66)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:51)
at sbt.MainLoop$.runLogged(MainLoop.scala:42)
at sbt.StandardMain$.runManaged(Main.scala:218)
at sbt.xMain$.$anonfun$run$11(Main.scala:133)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
at scala.Console$.withIn(Console.scala:230)
at sbt.internal.util.Terminal$.withIn(Terminal.scala:560)
at sbt.internal.util.Terminal$.$anonfun$withStreams$1(Terminal.scala:350)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
at scala.Console$.withOut(Console.scala:167)
at sbt.internal.util.Terminal$.$anonfun$withOut$2(Terminal.scala:550)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
at scala.Console$.withErr(Console.scala:196)
at sbt.internal.util.Terminal$.withOut(Terminal.scala:550)
at sbt.internal.util.Terminal$.withStreams(Terminal.scala:350)
at sbt.xMain$.withStreams$1(Main.scala:87)
at sbt.xMain$.run(Main.scala:121)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at sbt.internal.XMainConfiguration.run(XMainConfiguration.java:56)
at sbt.xMain.run(Main.scala:46)
at xsbt.boot.Launch$.$anonfun$run$1(Launch.scala:149)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:176)
at xsbt.boot.Launch$.run(Launch.scala:149)
at xsbt.boot.Launch$.$anonfun$apply$1(Launch.scala:44)
at xsbt.boot.Launch$.launch(Launch.scala:159)
at xsbt.boot.Launch$.apply(Launch.scala:44)
at xsbt.boot.Launch$.apply(Launch.scala:21)
at xsbt.boot.Boot$.runImpl(Boot.scala:78)
at xsbt.boot.Boot$.run(Boot.scala:73)
at xsbt.boot.Boot$.main(Boot.scala:21)
at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.NoClassDefFoundError: Could not initialize class com.swoval.runtime.ShutdownHooks
[error] Use 'last' for the full log.
[warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
Exception in thread "Thread-0" java.lang.NoClassDefFoundError: Could not initialize class com.swoval.runtime.ShutdownHooks
at com.swoval.runtime.ShutdownHooks$1.run(ShutdownHooks.java:25)
EDIT3: Tried creating a new user and just downloading sbt and still getting the same issue. Will attempt completely removing Java as it seems to be the culprit and reinstalling.
Similar to Boris's suggestion the issue lied in the installation version of Java.
There are two versions for AdoptOpenJDK, .j9 an .hs as seen below if you are using sdk-man as a package manager:
AdoptOpenJDK | >>> | 16.0.1.j9 | adpt | installed | 16.0.1.j9-adpt
| | 16.0.1.hs | adpt | | 16.0.1.hs-adpt
| | 11.0.11.j9 | adpt | | 11.0.11.j9-adpt
| | 11.0.11.hs | adpt | | 11.0.11.hs-adpt
For some reason the OpenJDK version .hs-adpt shows this issue for every version but the .j9-adpt version works fine.
TLDR: Install the .j9-adpt version of Java that you need otherwise .hs-adpt is not working for me with sbt version 1.5.4.
I assume the reason - you are using wrong Java JDK for Mac OS with M1 chip. You need to install proper Java JDK version, I use sdkman for that.
Install sdk man:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
set up sdk man to not use rosetta2_compatbile versions:
vim .sdkman/etc/config
and set sdkman_rosetta2_compatbile=false
choose java JDK from the list:
sdk list java
================================================================================
Available Java Versions
================================================================================
Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------
Azul Zulu | | 16.0.1 | zulu | | 16.0.1-zulu
| | 11.0.11 | zulu | | 11.0.11-zulu
| | 8.0.292 | zulu | | 8.0.292-zulu
BellSoft | | 16.0.1 | librca | | 16.0.1-librca
| | 11.0.11 | librca | | 11.0.11-librca
| | 8.0.292 | librca | | 8.0.292-librca
Java.net | | 18.ea.3 | open | | 18.ea.3-open
| | 18.ea.2 | open | | 18.ea.2-open
| | 18.ea.1 | open | | 18.ea.1-open
| | 17.ea.28 | open | | 17.ea.28-open
| | 17.ea.27 | open | | 17.ea.27-open
| | 17.ea.26 | open | | 17.ea.26-open
| | 17.ea.25 | open | | 17.ea.25-open
================================================================================
and install it using command sdk install java IDENTIFIER, i.e.:
sdk install java 16.0.1-zulu

How to create a substraste chain?

I need HELP
I have two major errors in creating my first substraste chain (cf. https://substrate.dev/docs/en/tutorials/create-your-first-substrate-chain/setup)
Error in Installing the Front-End Template
~/Bureau/ETH-BIT/substrate/substrate-front-end-template$ ls LICENSE
package.json public README.md src yarn.lock
pclf#ubuntu:~/Bureau/ETH-BIT/substrate/substrate-front-end-template$
yarn install
ERROR: [Errno 2] No such file or directory: 'install'
Error in compiling Substrate
cargo build --release
error: failed to run custom build command for node-template-runtime v2.0.0 (/home/pclf/Bureau/ETH-BIT/substrate/substrate-node-template/runtime)
Caused by: process didn't exit successfully:
/home/pclf/Bureau/ETH-BIT/substrate/substrate-node-template/target/release/build/node-template-runtime-663c8dc25926c960/build-script-build
(exit code: 1) --- stdout Executing build command: "rustup" "run"
"nightly" "cargo" "rustc" "--target=wasm32-unknown-unknown"
"--manifest-path=/home/pclf/Bureau/ETH-BIT/substrate/substrate-node-template/target/release/wbuild/node-template-runtime/Cargo.toml" "--color=always" "--release"
--- stderr
Compiling wasm-build-runner-impl v1.0.0 (/home/pclf/Bureau/ETH-BIT/substrate/substrate-node-template/target/release/wbuild-runner/node-template-runtime4021631938540302808)
Finished release [optimized] target(s) in 7.49s
Running /home/pclf/Bureau/ETH-BIT/substrate/substrate-node-template/target/release/wbuild-runner/node-template-runtime4021631938540302808/target/x86_64-unknown-linux-gnu/release/wasm-build-runner-impl
Compiling sp-arithmetic v2.0.0
Compiling sp-io v2.0.0
Compiling sp-inherents v2.0.0
Compiling frame-metadata v12.0.0
Compiling sp-finality-tracker v2.0.0 error[E0282]: type annotations needed
--> /home/pclf/.cargo/registry/src/github.com-1ecc6299db9ec823/sp-arithmetic-2.0.0/src/fixed_point.rs:541:9
| 541 | let accuracy = P::ACCURACY.saturated_into();
| ^^^^^^^^ consider giving accuracy a type ... 1595 | / implement_fixed!( 1596 | | FixedI64,
1597 | | test_fixed_i64, 1598 | | i64, ... | 1601 | |
"Fixed Point 64 bits signed, range = [-9223372036.854775808,
9223372036.854775807]", 1602 | | );
| |__- in this macro invocation
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0282]: type annotations needed
--> /home/pclf/.cargo/registry/src/github.com-1ecc6299db9ec823/sp-arithmetic-2.0.0/src/fixed_point.rs:541:9
| 541 | let accuracy = P::ACCURACY.saturated_into();
| ^^^^^^^^ consider giving accuracy a type ... 1604 | / implement_fixed!( 1605 | | FixedI128,
1606 | | test_fixed_i128, 1607 | | i128, ... | 1611 |
| [-170141183460469231731.687303715884105728,
170141183460469231731.687303715884105727]_", 1612 | | );
| |__- in this macro invocation
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0282]: type annotations needed
--> /home/pclf/.cargo/registry/src/github.com-1ecc6299db9ec823/sp-arithmetic-2.0.0/src/fixed_point.rs:541:9
| 541 | let accuracy = P::ACCURACY.saturated_into();
| ^^^^^^^^ consider giving accuracy a type ... 1614 | / implement_fixed!( 1615 | | FixedU128,
1616 | | test_fixed_u128, 1617 | | u128, ... | 1621 |
| [0.000000000000000000,
340282366920938463463.374607431768211455]_", 1622 | | );
| |__- in this macro invocation
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 3 previous errors
For more information about this error, try rustc --explain E0282.
error: could not compile sp-arithmetic
error: build failed
You can just run yarn in the front end template directory, it will work. But where is the "Is LICENCE public" message coming from? You shouldn't see that. Did you clone the substrate-front-end-template repo or just create the directory? The exact process is:
clone it with git clone https://github.com/substrate-developer-hub/substrate-front-end-template
enter folder with cd substrate-front-end-template
run yarn
As for the Substrate compilation error, please downgrade your nightly to an older version, it happens due to a bug in Rust. Here is how to do that:
rustup uninstall nightly
rustup install nightly-2020-10-01
rustup target add wasm32-unknown-unknown --toolchain nightly-2020-10-01
First thing first solve the Substrate compiling first.
run this scrip
https://github.com/substrate-developer-hub/substrate-node-template/blob/master/scripts/init.sh
When you get the node up and running then start using frontend.

Resources