[INFO] cloning repository https://github.com/Rust-for-bitcoiners/rust-for-bitcoiners-classroom-2-1-talking-bitcoin-rfb_2_2024_8 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Rust-for-bitcoiners/rust-for-bitcoiners-classroom-2-1-talking-bitcoin-rfb_2_2024_8" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRust-for-bitcoiners%2Frust-for-bitcoiners-classroom-2-1-talking-bitcoin-rfb_2_2024_8", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRust-for-bitcoiners%2Frust-for-bitcoiners-classroom-2-1-talking-bitcoin-rfb_2_2024_8'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3f7c1d1d3fab24905d2b575bbce0993a354bcca8 [INFO] testing Rust-for-bitcoiners/rust-for-bitcoiners-classroom-2-1-talking-bitcoin-rfb_2_2024_8 against try#16fbf98f22730e073c09e7b03f0eafb87a295545 for pr-145628-retry-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRust-for-bitcoiners%2Frust-for-bitcoiners-classroom-2-1-talking-bitcoin-rfb_2_2024_8" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Rust-for-bitcoiners/rust-for-bitcoiners-classroom-2-1-talking-bitcoin-rfb_2_2024_8 [INFO] finished tweaking git repo https://github.com/Rust-for-bitcoiners/rust-for-bitcoiners-classroom-2-1-talking-bitcoin-rfb_2_2024_8 [INFO] tweaked toml for git repo https://github.com/Rust-for-bitcoiners/rust-for-bitcoiners-classroom-2-1-talking-bitcoin-rfb_2_2024_8 written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Rust-for-bitcoiners/rust-for-bitcoiners-classroom-2-1-talking-bitcoin-rfb_2_2024_8 on toolchain 16fbf98f22730e073c09e7b03f0eafb87a295545 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+16fbf98f22730e073c09e7b03f0eafb87a295545" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Rust-for-bitcoiners/rust-for-bitcoiners-classroom-2-1-talking-bitcoin-rfb_2_2024_8 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+16fbf98f22730e073c09e7b03f0eafb87a295545" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] warning: /workspace/builds/worker-6-tc2/source/Cargo.toml: unused manifest key: workspace.workspace [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+16fbf98f22730e073c09e7b03f0eafb87a295545" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 060ff7948f61af815f2c3da9a688f50f1d0fc09a6925ea045252230ea53ab5de [INFO] running `Command { std: "docker" "start" "-a" "060ff7948f61af815f2c3da9a688f50f1d0fc09a6925ea045252230ea53ab5de", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "060ff7948f61af815f2c3da9a688f50f1d0fc09a6925ea045252230ea53ab5de", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "060ff7948f61af815f2c3da9a688f50f1d0fc09a6925ea045252230ea53ab5de", kill_on_drop: false }` [INFO] [stdout] 060ff7948f61af815f2c3da9a688f50f1d0fc09a6925ea045252230ea53ab5de [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+16fbf98f22730e073c09e7b03f0eafb87a295545" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 84fd129700bab52a528fc8dce23abf1bc02674ee6e58abc7e8e0e8625377190b [INFO] running `Command { std: "docker" "start" "-a" "84fd129700bab52a528fc8dce23abf1bc02674ee6e58abc7e8e0e8625377190b", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: workspace.workspace [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling cc v1.0.98 [INFO] [stderr] Compiling proc-macro2 v1.0.83 [INFO] [stderr] Compiling bitcoin-internals v0.3.0 [INFO] [stderr] Compiling arrayvec v0.7.4 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling bitcoin-io v0.1.2 [INFO] [stderr] Compiling hex_lit v0.1.1 [INFO] [stderr] Compiling bitcoin v0.32.2 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling log v0.4.21 [INFO] [stderr] Compiling thread_local v1.1.8 [INFO] [stderr] Compiling bech32 v0.11.0 [INFO] [stderr] Compiling hex-conservative v0.2.1 [INFO] [stderr] Compiling bitcoin-units v0.1.2 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling bitcoin_hashes v0.14.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling tracing-subscriber v0.3.18 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling secp256k1-sys v0.10.0 [INFO] [stderr] Compiling bitcoinconsensus v0.105.0+25.1 [INFO] [stderr] Compiling syn v2.0.66 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling socket2 v0.5.7 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling signal-hook-registry v1.4.2 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling num_cpus v1.16.0 [INFO] [stderr] Compiling dns-lookup v2.0.4 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling base58ck v0.1.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling secp256k1 v0.29.0 [INFO] [stderr] Compiling tokio v1.37.0 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling rust v0.1.0 (/opt/rustwide/workdir/rust) [INFO] [stdout] warning: unused import: `dns_lookup::lookup_host` [INFO] [stdout] --> rust/src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use dns_lookup::lookup_host; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Error`, `Ipv6Addr`, `Write`, `fs::File`, and `str::FromStr` [INFO] [stdout] --> rust/src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | fs::File, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 4 | io::{self, Error, ErrorKind, Write}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^^ [INFO] [stdout] 5 | net::{IpAddr, Ipv6Addr}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 6 | str::FromStr, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncWriteExt` [INFO] [stdout] --> rust/src/main.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | io::{AsyncReadExt, AsyncWriteExt}, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Block`, `deserialize_partial`, and `serialize_hex` [INFO] [stdout] --> rust/src/main.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | deserialize_partial, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | encode::{serialize_hex}, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 17 | }, [INFO] [stdout] 18 | Block, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Hash` and `sha256d` [INFO] [stdout] --> rust/src/main.rs:20:23 [INFO] [stdout] | [INFO] [stdout] 20 | use bitcoin::hashes::{sha256d, Hash}; [INFO] [stdout] | ^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> rust/src/main.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 77 | todo!("Initially test with regtest with debug=net option"); [INFO] [stdout] | ---------------------------------------------------------- any code following this expression is unreachable [INFO] [stdout] 78 | todo!("then test with your local full node"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] = note: this warning originates in the macro `$crate::panic` which comes from the expansion of the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> rust/src/main.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 124 | let version_msg = todo!("prepare version message"); [INFO] [stdout] | -------------------------------- any code following this expression is unreachable [INFO] [stdout] ... [INFO] [stdout] 127 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> rust/src/main.rs:144:5 [INFO] [stdout] | [INFO] [stdout] 143 | todo!("The bitcoin node will keep sending you messages like ping, inv etc.,"); [INFO] [stdout] | ----------------------------------------------------------------------------- any code following this expression is unreachable [INFO] [stdout] 144 | todo!("One of them will be your required block message"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `$crate::panic` which comes from the expansion of the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> rust/src/main.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | fn serialize_net_address(addr: &NetAddress) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `msg` [INFO] [stdout] --> rust/src/main.rs:42:26 [INFO] [stdout] | [INFO] [stdout] 42 | fn serialize_version_msg(msg: &VersionMessage) -> Vec { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_msg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hex_string` [INFO] [stdout] --> rust/src/main.rs:46:17 [INFO] [stdout] | [INFO] [stdout] 46 | fn hex_to_bytes(hex_string: &str) -> Result, std::num::ParseIntError> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hex_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash` [INFO] [stdout] --> rust/src/main.rs:51:26 [INFO] [stdout] | [INFO] [stdout] 51 | fn request_block_message(hash: &str) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `command` [INFO] [stdout] --> rust/src/main.rs:55:19 [INFO] [stdout] | [INFO] [stdout] 55 | fn create_message(command: &str, payload: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> rust/src/main.rs:55:34 [INFO] [stdout] | [INFO] [stdout] 55 | fn create_message(command: &str, payload: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> rust/src/main.rs:59:14 [INFO] [stdout] | [INFO] [stdout] 59 | fn is_verack(data: &[u8]) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stream` [INFO] [stdout] --> rust/src/main.rs:116:14 [INFO] [stdout] | [INFO] [stdout] 116 | let (mut stream, ip) = get_valid_ip().await.unwrap(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip6` [INFO] [stdout] --> rust/src/main.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | let ip6 = match ip { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ip6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `version_msg` [INFO] [stdout] --> rust/src/main.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | let version_msg = todo!("prepare version message"); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version_msg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> rust/src/main.rs:116:10 [INFO] [stdout] | [INFO] [stdout] 116 | let (mut stream, ip) = get_valid_ip().await.unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> rust/src/main.rs:142:22 [INFO] [stdout] | [INFO] [stdout] 142 | fn get_block_payload(buffer: &[u8]) -> &[u8] { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> rust/src/main.rs:148:22 [INFO] [stdout] | [INFO] [stdout] 148 | fn starts_with_magic(buffer: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PROTOCOL_VERSION` is never used [INFO] [stdout] --> rust/src/main.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const PROTOCOL_VERSION: i32 = 70015; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetAddress` is never constructed [INFO] [stdout] --> rust/src/main.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | struct NetAddress { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VersionMessage` is never constructed [INFO] [stdout] --> rust/src/main.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | struct VersionMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REGTEST_MAGIC` is never used [INFO] [stdout] --> rust/src/main.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const REGTEST_MAGIC: [u8; 4] = [0;4];// todo!(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAINNET_MAGIC` is never used [INFO] [stdout] --> rust/src/main.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | const MAINNET_MAGIC: [u8; 4] = [0;4];// todo!(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_net_address` is never used [INFO] [stdout] --> rust/src/main.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn serialize_net_address(addr: &NetAddress) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_version_msg` is never used [INFO] [stdout] --> rust/src/main.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn serialize_version_msg(msg: &VersionMessage) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hex_to_bytes` is never used [INFO] [stdout] --> rust/src/main.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn hex_to_bytes(hex_string: &str) -> Result, std::num::ParseIntError> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `request_block_message` is never used [INFO] [stdout] --> rust/src/main.rs:51:4 [INFO] [stdout] | [INFO] [stdout] 51 | fn request_block_message(hash: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_message` is never used [INFO] [stdout] --> rust/src/main.rs:55:4 [INFO] [stdout] | [INFO] [stdout] 55 | fn create_message(command: &str, payload: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_verack` is never used [INFO] [stdout] --> rust/src/main.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn is_verack(data: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `randomize_slice` is never used [INFO] [stdout] --> rust/src/main.rs:63:4 [INFO] [stdout] | [INFO] [stdout] 63 | fn randomize_slice<'a>(input: &'a [&'a str]) -> Vec<&'a str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DNS_SEEDS` is never used [INFO] [stdout] --> rust/src/main.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | const DNS_SEEDS: [&str; 4] = [ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `till_read_succeeds` is never used [INFO] [stdout] --> rust/src/main.rs:84:10 [INFO] [stdout] | [INFO] [stdout] 84 | async fn till_read_succeeds(stream: &mut TcpStream, buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_data_with_timeout` is never used [INFO] [stdout] --> rust/src/main.rs:133:10 [INFO] [stdout] | [INFO] [stdout] 133 | async fn get_data_with_timeout(mut stream: &mut TcpStream, mut buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_block_payload` is never used [INFO] [stdout] --> rust/src/main.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn get_block_payload(buffer: &[u8]) -> &[u8] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `starts_with_magic` is never used [INFO] [stdout] --> rust/src/main.rs:148:4 [INFO] [stdout] | [INFO] [stdout] 148 | fn starts_with_magic(buffer: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.13s [INFO] running `Command { std: "docker" "inspect" "84fd129700bab52a528fc8dce23abf1bc02674ee6e58abc7e8e0e8625377190b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "84fd129700bab52a528fc8dce23abf1bc02674ee6e58abc7e8e0e8625377190b", kill_on_drop: false }` [INFO] [stdout] 84fd129700bab52a528fc8dce23abf1bc02674ee6e58abc7e8e0e8625377190b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+16fbf98f22730e073c09e7b03f0eafb87a295545" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7c0079b19a08dddbef44ef14a70e55f0a32162c4806ef596b1192117fc984de6 [INFO] running `Command { std: "docker" "start" "-a" "7c0079b19a08dddbef44ef14a70e55f0a32162c4806ef596b1192117fc984de6", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: workspace.workspace [INFO] [stderr] Compiling rust v0.1.0 (/opt/rustwide/workdir/rust) [INFO] [stdout] warning: unused import: `dns_lookup::lookup_host` [INFO] [stdout] --> rust/src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use dns_lookup::lookup_host; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Error`, `Ipv6Addr`, `Write`, `fs::File`, and `str::FromStr` [INFO] [stdout] --> rust/src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | fs::File, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 4 | io::{self, Error, ErrorKind, Write}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^^ [INFO] [stdout] 5 | net::{IpAddr, Ipv6Addr}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 6 | str::FromStr, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncWriteExt` [INFO] [stdout] --> rust/src/main.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | io::{AsyncReadExt, AsyncWriteExt}, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Block`, `deserialize_partial`, and `serialize_hex` [INFO] [stdout] --> rust/src/main.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | deserialize_partial, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | encode::{serialize_hex}, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 17 | }, [INFO] [stdout] 18 | Block, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Hash` and `sha256d` [INFO] [stdout] --> rust/src/main.rs:20:23 [INFO] [stdout] | [INFO] [stdout] 20 | use bitcoin::hashes::{sha256d, Hash}; [INFO] [stdout] | ^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> rust/src/main.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 77 | todo!("Initially test with regtest with debug=net option"); [INFO] [stdout] | ---------------------------------------------------------- any code following this expression is unreachable [INFO] [stdout] 78 | todo!("then test with your local full node"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] = note: this warning originates in the macro `$crate::panic` which comes from the expansion of the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> rust/src/main.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 124 | let version_msg = todo!("prepare version message"); [INFO] [stdout] | -------------------------------- any code following this expression is unreachable [INFO] [stdout] ... [INFO] [stdout] 127 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> rust/src/main.rs:144:5 [INFO] [stdout] | [INFO] [stdout] 143 | todo!("The bitcoin node will keep sending you messages like ping, inv etc.,"); [INFO] [stdout] | ----------------------------------------------------------------------------- any code following this expression is unreachable [INFO] [stdout] 144 | todo!("One of them will be your required block message"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `$crate::panic` which comes from the expansion of the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> rust/src/main.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | fn serialize_net_address(addr: &NetAddress) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `msg` [INFO] [stdout] --> rust/src/main.rs:42:26 [INFO] [stdout] | [INFO] [stdout] 42 | fn serialize_version_msg(msg: &VersionMessage) -> Vec { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_msg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hex_string` [INFO] [stdout] --> rust/src/main.rs:46:17 [INFO] [stdout] | [INFO] [stdout] 46 | fn hex_to_bytes(hex_string: &str) -> Result, std::num::ParseIntError> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hex_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash` [INFO] [stdout] --> rust/src/main.rs:51:26 [INFO] [stdout] | [INFO] [stdout] 51 | fn request_block_message(hash: &str) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `command` [INFO] [stdout] --> rust/src/main.rs:55:19 [INFO] [stdout] | [INFO] [stdout] 55 | fn create_message(command: &str, payload: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> rust/src/main.rs:55:34 [INFO] [stdout] | [INFO] [stdout] 55 | fn create_message(command: &str, payload: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> rust/src/main.rs:59:14 [INFO] [stdout] | [INFO] [stdout] 59 | fn is_verack(data: &[u8]) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stream` [INFO] [stdout] --> rust/src/main.rs:116:14 [INFO] [stdout] | [INFO] [stdout] 116 | let (mut stream, ip) = get_valid_ip().await.unwrap(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip6` [INFO] [stdout] --> rust/src/main.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | let ip6 = match ip { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ip6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `version_msg` [INFO] [stdout] --> rust/src/main.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | let version_msg = todo!("prepare version message"); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version_msg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> rust/src/main.rs:116:10 [INFO] [stdout] | [INFO] [stdout] 116 | let (mut stream, ip) = get_valid_ip().await.unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> rust/src/main.rs:142:22 [INFO] [stdout] | [INFO] [stdout] 142 | fn get_block_payload(buffer: &[u8]) -> &[u8] { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> rust/src/main.rs:148:22 [INFO] [stdout] | [INFO] [stdout] 148 | fn starts_with_magic(buffer: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PROTOCOL_VERSION` is never used [INFO] [stdout] --> rust/src/main.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const PROTOCOL_VERSION: i32 = 70015; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetAddress` is never constructed [INFO] [stdout] --> rust/src/main.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | struct NetAddress { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VersionMessage` is never constructed [INFO] [stdout] --> rust/src/main.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | struct VersionMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REGTEST_MAGIC` is never used [INFO] [stdout] --> rust/src/main.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const REGTEST_MAGIC: [u8; 4] = [0;4];// todo!(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAINNET_MAGIC` is never used [INFO] [stdout] --> rust/src/main.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | const MAINNET_MAGIC: [u8; 4] = [0;4];// todo!(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_net_address` is never used [INFO] [stdout] --> rust/src/main.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn serialize_net_address(addr: &NetAddress) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_version_msg` is never used [INFO] [stdout] --> rust/src/main.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn serialize_version_msg(msg: &VersionMessage) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hex_to_bytes` is never used [INFO] [stdout] --> rust/src/main.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn hex_to_bytes(hex_string: &str) -> Result, std::num::ParseIntError> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `request_block_message` is never used [INFO] [stdout] --> rust/src/main.rs:51:4 [INFO] [stdout] | [INFO] [stdout] 51 | fn request_block_message(hash: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_message` is never used [INFO] [stdout] --> rust/src/main.rs:55:4 [INFO] [stdout] | [INFO] [stdout] 55 | fn create_message(command: &str, payload: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_verack` is never used [INFO] [stdout] --> rust/src/main.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn is_verack(data: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `randomize_slice` is never used [INFO] [stdout] --> rust/src/main.rs:63:4 [INFO] [stdout] | [INFO] [stdout] 63 | fn randomize_slice<'a>(input: &'a [&'a str]) -> Vec<&'a str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DNS_SEEDS` is never used [INFO] [stdout] --> rust/src/main.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | const DNS_SEEDS: [&str; 4] = [ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `till_read_succeeds` is never used [INFO] [stdout] --> rust/src/main.rs:84:10 [INFO] [stdout] | [INFO] [stdout] 84 | async fn till_read_succeeds(stream: &mut TcpStream, buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_data_with_timeout` is never used [INFO] [stdout] --> rust/src/main.rs:133:10 [INFO] [stdout] | [INFO] [stdout] 133 | async fn get_data_with_timeout(mut stream: &mut TcpStream, mut buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_block_payload` is never used [INFO] [stdout] --> rust/src/main.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn get_block_payload(buffer: &[u8]) -> &[u8] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `starts_with_magic` is never used [INFO] [stdout] --> rust/src/main.rs:148:4 [INFO] [stdout] | [INFO] [stdout] 148 | fn starts_with_magic(buffer: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.62s [INFO] running `Command { std: "docker" "inspect" "7c0079b19a08dddbef44ef14a70e55f0a32162c4806ef596b1192117fc984de6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7c0079b19a08dddbef44ef14a70e55f0a32162c4806ef596b1192117fc984de6", kill_on_drop: false }` [INFO] [stdout] 7c0079b19a08dddbef44ef14a70e55f0a32162c4806ef596b1192117fc984de6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+16fbf98f22730e073c09e7b03f0eafb87a295545" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] a4f50044bf2e1db900396a6c9c98479a0ba45f30b8188a22dff28e4fd1cd3994 [INFO] running `Command { std: "docker" "start" "-a" "a4f50044bf2e1db900396a6c9c98479a0ba45f30b8188a22dff28e4fd1cd3994", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: workspace.workspace [INFO] [stderr] warning: unused import: `dns_lookup::lookup_host` [INFO] [stderr] --> rust/src/main.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use dns_lookup::lookup_host; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ErrorKind`, `Error`, `Ipv6Addr`, `Write`, `fs::File`, and `str::FromStr` [INFO] [stderr] --> rust/src/main.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | fs::File, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 4 | io::{self, Error, ErrorKind, Write}, [INFO] [stderr] | ^^^^^ ^^^^^^^^^ ^^^^^ [INFO] [stderr] 5 | net::{IpAddr, Ipv6Addr}, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 6 | str::FromStr, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `AsyncWriteExt` [INFO] [stderr] --> rust/src/main.rs:9:24 [INFO] [stderr] | [INFO] [stderr] 9 | io::{AsyncReadExt, AsyncWriteExt}, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Block`, `deserialize_partial`, and `serialize_hex` [INFO] [stderr] --> rust/src/main.rs:15:10 [INFO] [stderr] | [INFO] [stderr] 15 | deserialize_partial, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 16 | encode::{serialize_hex}, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 17 | }, [INFO] [stderr] 18 | Block, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Hash` and `sha256d` [INFO] [stderr] --> rust/src/main.rs:20:23 [INFO] [stderr] | [INFO] [stderr] 20 | use bitcoin::hashes::{sha256d, Hash}; [INFO] [stderr] | ^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> rust/src/main.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 77 | todo!("Initially test with regtest with debug=net option"); [INFO] [stderr] | ---------------------------------------------------------- any code following this expression is unreachable [INFO] [stderr] 78 | todo!("then test with your local full node"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] = note: this warning originates in the macro `$crate::panic` which comes from the expansion of the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> rust/src/main.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 124 | let version_msg = todo!("prepare version message"); [INFO] [stderr] | -------------------------------- any code following this expression is unreachable [INFO] [stderr] ... [INFO] [stderr] 127 | Ok(()) [INFO] [stderr] | ^^^^^^ unreachable expression [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> rust/src/main.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 143 | todo!("The bitcoin node will keep sending you messages like ping, inv etc.,"); [INFO] [stderr] | ----------------------------------------------------------------------------- any code following this expression is unreachable [INFO] [stderr] 144 | todo!("One of them will be your required block message"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `$crate::panic` which comes from the expansion of the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `addr` [INFO] [stderr] --> rust/src/main.rs:38:26 [INFO] [stderr] | [INFO] [stderr] 38 | fn serialize_net_address(addr: &NetAddress) -> Vec { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `msg` [INFO] [stderr] --> rust/src/main.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | fn serialize_version_msg(msg: &VersionMessage) -> Vec { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_msg` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hex_string` [INFO] [stderr] --> rust/src/main.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | fn hex_to_bytes(hex_string: &str) -> Result, std::num::ParseIntError> { [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hex_string` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hash` [INFO] [stderr] --> rust/src/main.rs:51:26 [INFO] [stderr] | [INFO] [stderr] 51 | fn request_block_message(hash: &str) -> Vec { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hash` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command` [INFO] [stderr] --> rust/src/main.rs:55:19 [INFO] [stderr] | [INFO] [stderr] 55 | fn create_message(command: &str, payload: &[u8]) -> Vec { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `payload` [INFO] [stderr] --> rust/src/main.rs:55:34 [INFO] [stderr] | [INFO] [stderr] 55 | fn create_message(command: &str, payload: &[u8]) -> Vec { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> rust/src/main.rs:59:14 [INFO] [stderr] | [INFO] [stderr] 59 | fn is_verack(data: &[u8]) -> bool { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stream` [INFO] [stderr] --> rust/src/main.rs:116:14 [INFO] [stderr] | [INFO] [stderr] 116 | let (mut stream, ip) = get_valid_ip().await.unwrap(); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip6` [INFO] [stderr] --> rust/src/main.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | let ip6 = match ip { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_ip6` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `version_msg` [INFO] [stderr] --> rust/src/main.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | let version_msg = todo!("prepare version message"); [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version_msg` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> rust/src/main.rs:116:10 [INFO] [stderr] | [INFO] [stderr] 116 | let (mut stream, ip) = get_valid_ip().await.unwrap(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buffer` [INFO] [stderr] --> rust/src/main.rs:142:22 [INFO] [stderr] | [INFO] [stderr] 142 | fn get_block_payload(buffer: &[u8]) -> &[u8] { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buffer` [INFO] [stderr] --> rust/src/main.rs:148:22 [INFO] [stderr] | [INFO] [stderr] 148 | fn starts_with_magic(buffer: &[u8]) -> bool { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stderr] [INFO] [stderr] warning: constant `PROTOCOL_VERSION` is never used [INFO] [stderr] --> rust/src/main.rs:25:7 [INFO] [stderr] | [INFO] [stderr] 25 | const PROTOCOL_VERSION: i32 = 70015; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: struct `NetAddress` is never constructed [INFO] [stderr] --> rust/src/main.rs:28:8 [INFO] [stderr] | [INFO] [stderr] 28 | struct NetAddress { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `VersionMessage` is never constructed [INFO] [stderr] --> rust/src/main.rs:32:8 [INFO] [stderr] | [INFO] [stderr] 32 | struct VersionMessage { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `REGTEST_MAGIC` is never used [INFO] [stderr] --> rust/src/main.rs:35:7 [INFO] [stderr] | [INFO] [stderr] 35 | const REGTEST_MAGIC: [u8; 4] = [0;4];// todo!(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `MAINNET_MAGIC` is never used [INFO] [stderr] --> rust/src/main.rs:36:7 [INFO] [stderr] | [INFO] [stderr] 36 | const MAINNET_MAGIC: [u8; 4] = [0;4];// todo!(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `serialize_net_address` is never used [INFO] [stderr] --> rust/src/main.rs:38:4 [INFO] [stderr] | [INFO] [stderr] 38 | fn serialize_net_address(addr: &NetAddress) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `serialize_version_msg` is never used [INFO] [stderr] --> rust/src/main.rs:42:4 [INFO] [stderr] | [INFO] [stderr] 42 | fn serialize_version_msg(msg: &VersionMessage) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `hex_to_bytes` is never used [INFO] [stderr] --> rust/src/main.rs:46:4 [INFO] [stderr] | [INFO] [stderr] 46 | fn hex_to_bytes(hex_string: &str) -> Result, std::num::ParseIntError> { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `request_block_message` is never used [INFO] [stderr] --> rust/src/main.rs:51:4 [INFO] [stderr] | [INFO] [stderr] 51 | fn request_block_message(hash: &str) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `create_message` is never used [INFO] [stderr] --> rust/src/main.rs:55:4 [INFO] [stderr] | [INFO] [stderr] 55 | fn create_message(command: &str, payload: &[u8]) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_verack` is never used [INFO] [stderr] --> rust/src/main.rs:59:4 [INFO] [stderr] | [INFO] [stderr] 59 | fn is_verack(data: &[u8]) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `randomize_slice` is never used [INFO] [stderr] --> rust/src/main.rs:63:4 [INFO] [stderr] | [INFO] [stderr] 63 | fn randomize_slice<'a>(input: &'a [&'a str]) -> Vec<&'a str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `DNS_SEEDS` is never used [INFO] [stderr] --> rust/src/main.rs:71:11 [INFO] [stderr] | [INFO] [stderr] 71 | const DNS_SEEDS: [&str; 4] = [ [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `till_read_succeeds` is never used [INFO] [stderr] --> rust/src/main.rs:84:10 [INFO] [stderr] | [INFO] [stderr] 84 | async fn till_read_succeeds(stream: &mut TcpStream, buffer: &mut Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_data_with_timeout` is never used [INFO] [stderr] --> rust/src/main.rs:133:10 [INFO] [stderr] | [INFO] [stderr] 133 | async fn get_data_with_timeout(mut stream: &mut TcpStream, mut buffer: &mut Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_block_payload` is never used [INFO] [stderr] --> rust/src/main.rs:142:4 [INFO] [stderr] | [INFO] [stderr] 142 | fn get_block_payload(buffer: &[u8]) -> &[u8] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `starts_with_magic` is never used [INFO] [stderr] --> rust/src/main.rs:148:4 [INFO] [stderr] | [INFO] [stderr] 148 | fn starts_with_magic(buffer: &[u8]) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `rust` (bin "rust" test) generated 38 warnings (run `cargo fix --bin "rust" --tests` to apply 6 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust-b856b8edcfb823b2) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "a4f50044bf2e1db900396a6c9c98479a0ba45f30b8188a22dff28e4fd1cd3994", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a4f50044bf2e1db900396a6c9c98479a0ba45f30b8188a22dff28e4fd1cd3994", kill_on_drop: false }` [INFO] [stdout] a4f50044bf2e1db900396a6c9c98479a0ba45f30b8188a22dff28e4fd1cd3994