#substrate
Вопрос:
Я следовал этому уроку.
https://substrate.dev/docs/en/tutorials/create-your-first-substrate-chain/setup
когда я бегу cargo build --release
, то получаю ошибку:
error[E0277]: `[parity_wasm::elements::Instruction; 15]` is not an iterator
--> /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/pwasm-utils-0.18.2/src/stack_height/mod.rs:300:23
|
300 | new_instrs.extend(new_seq);
| ^^^^^^^
| |
| expected an implementor of trait `IntoIterator`
| help: consider borrowing here: `amp;new_seq`
|
= note: the trait bound `[parity_wasm::elements::Instruction; 15]: IntoIterator` is not satisfied
= note: required because of the requirements on the impl of `IntoIterator` for `[parity_wasm::elements::Instruction; 15]`
Compiling unsigned-varint v0.7.0
Я использовал Ubuntu и грузовую версию 1.51.0
Спасибо
Ответ №1:
Похоже, что ваша ночная цепочка инструментов rust несовместима с кодом, написанным выше. Вам нужно понизить его с nightly-2020-10-01 или какая-то другая версия ночной цепочки инструментов с использованием rustup install nightly-2020-10-01
Ответ №2:
Всякий раз, когда вы сомневаетесь в том, что ночная версия, которая, как известно, работает, лучше всего посмотреть shell.nix
файл на подложке в теге/выпуске/ветке, с которой вы строите. Например, по master
состоянию на 2021-10-11 гг.:
rust-nightly = with nixpkgs; ((rustChannelOf { date = "2021-09-10"; channel = "nightly"; }).rust.override {...}
Вы можете понизить свой набор инструментов (также для цели wasm, необходимой для сборки подложки) с любой версией, используя:
rustup uninstall nightly
rustup install nightly-<YYYY-MM-DD>
rustup target add wasm32-unknown-unknown --toolchain nightly-<YYYY-MM-DD>
Затем постройте с:
WASM_BUILD_TOOLCHAIN=nightly-<yyyy-MM-dd> cargo build --release
Комментарии:
1. У меня есть версия на shell.nix
toolchain = with nixpkgs; (rustChannelOf { date = "2021-09-14"; channel = "nightly"; });
, но у меня все еще есть ошибкаrustup default nightly-2021-09-14-x86_64-unknown-linux-gnu (default)
2. ошибка в чем?
rustup target add wasm32-unknown-unknown --toolchain nightly-<YYYY-MM-DD>
?3. Нет, я успешно изменил значение по умолчанию на 2021-09-14, но получил ту же ошибку после запуска
cargo build --release
, похоже, что версия на shell.nix не является правильной версией.4. В некоторых репо на Github нет файла shell.nix. Где еще я могу найти эту версию?
5. Я успешно пробежал
cargo nightly-2021-09-14-x86_64-unknown-linux-gnu build --release
, спасибо вам!