[INFO] cloning repository https://github.com/hustxiaoc/learningblockchain [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hustxiaoc/learningblockchain" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhustxiaoc%2Flearningblockchain", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhustxiaoc%2Flearningblockchain'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a541eea6172e3e526cbd40469c77755aa7c3e070 [INFO] testing hustxiaoc/learningblockchain against try#c066bf6804adc55193b71afdff6a56922f4a8689+target=x86_64-unknown-linux-musl for musl_upgrade_1_2_5_in_2025-retry-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhustxiaoc%2Flearningblockchain" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/hustxiaoc/learningblockchain [INFO] finished tweaking git repo https://github.com/hustxiaoc/learningblockchain [INFO] tweaked toml for git repo https://github.com/hustxiaoc/learningblockchain written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/hustxiaoc/learningblockchain on toolchain c066bf6804adc55193b71afdff6a56922f4a8689 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c066bf6804adc55193b71afdff6a56922f4a8689" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/hustxiaoc/learningblockchain 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" "+c066bf6804adc55193b71afdff6a56922f4a8689" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+c066bf6804adc55193b71afdff6a56922f4a8689" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8d06f1468a9c7ea619f667992b65747eb8d1023daea4bd93d419cf3ed7fb6886 [INFO] running `Command { std: "docker" "start" "-a" "8d06f1468a9c7ea619f667992b65747eb8d1023daea4bd93d419cf3ed7fb6886", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8d06f1468a9c7ea619f667992b65747eb8d1023daea4bd93d419cf3ed7fb6886", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8d06f1468a9c7ea619f667992b65747eb8d1023daea4bd93d419cf3ed7fb6886", kill_on_drop: false }` [INFO] [stdout] 8d06f1468a9c7ea619f667992b65747eb8d1023daea4bd93d419cf3ed7fb6886 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+c066bf6804adc55193b71afdff6a56922f4a8689" "build" "--frozen" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] bce47149d5618c028ec6a851ab60331ad2c8a523a4fbb1b9393967e4224126c1 [INFO] running `Command { std: "docker" "start" "-a" "bce47149d5618c028ec6a851ab60331ad2c8a523a4fbb1b9393967e4224126c1", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.77 [INFO] [stderr] Compiling typenum v1.12.0 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling proc-macro2 v1.0.21 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling syn v1.0.41 [INFO] [stderr] Compiling serde_derive v1.0.116 [INFO] [stderr] Compiling rand_core v0.4.2 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling serde v1.0.116 [INFO] [stderr] Compiling rustc-hex v2.1.0 [INFO] [stderr] Compiling crunchy v0.2.2 [INFO] [stderr] Compiling autocfg v0.1.7 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling getrandom v0.1.15 [INFO] [stderr] Compiling byte-tools v0.3.1 [INFO] [stderr] Compiling opaque-debug v0.2.3 [INFO] [stderr] Compiling nodrop v0.1.14 [INFO] [stderr] Compiling block-padding v0.1.5 [INFO] [stderr] Compiling ppv-lite86 v0.2.9 [INFO] [stderr] Compiling heapsize v0.4.2 [INFO] [stderr] Compiling radium v0.3.0 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling crunchy v0.1.6 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling fake-simd v0.1.2 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling bitvec v0.17.4 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling rlp v0.4.5 [INFO] [stderr] Compiling byte-slice-cast v0.3.5 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling generic-array v0.12.3 [INFO] [stderr] Compiling generic-array v0.8.3 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling cc v1.0.41 [INFO] [stderr] Compiling arrayvec v0.5.1 [INFO] [stderr] Compiling block-cipher-trait v0.6.2 [INFO] [stderr] Compiling digest v0.8.1 [INFO] [stderr] Compiling block-buffer v0.7.3 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling subtle v1.0.0 [INFO] [stderr] Compiling crypto-mac v0.7.0 [INFO] [stderr] Compiling digest v0.6.2 [INFO] [stderr] Compiling impl-rlp v0.2.1 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling constant_time_eq v0.1.5 [INFO] [stderr] Compiling safemem v0.3.3 [INFO] [stderr] Compiling crypto-mac v0.4.0 [INFO] [stderr] Compiling base64 v0.9.3 [INFO] [stderr] Compiling hmac v0.7.1 [INFO] [stderr] Compiling sha2 v0.8.2 [INFO] [stderr] Compiling fixed-hash v0.2.5 [INFO] [stderr] Compiling aes-soft v0.3.3 [INFO] [stderr] Compiling stream-cipher v0.3.2 [INFO] [stderr] Compiling rand v0.5.6 [INFO] [stderr] Compiling net2 v0.2.35 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Compiling uint v0.8.5 [INFO] [stderr] Compiling secp256k1-sys v0.1.2 [INFO] [stderr] Compiling tiny-keccak v1.5.0 [INFO] [stderr] Compiling fixed-hash v0.6.1 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling rand_jitter v0.1.4 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling byte-tools v0.2.0 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling slab v0.4.2 [INFO] [stderr] Compiling pbkdf2 v0.3.0 [INFO] [stderr] Compiling block-buffer v0.2.0 [INFO] [stderr] Compiling mio v0.6.22 [INFO] [stderr] Compiling ctr v0.3.2 [INFO] [stderr] Compiling hmac v0.4.2 [INFO] [stderr] Compiling uint v0.4.1 [INFO] [stderr] Compiling serde_json v1.0.57 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling arc-swap v0.4.7 [INFO] [stderr] Compiling hmac-drbg v0.1.2 [INFO] [stderr] Compiling aes-ctr v0.3.0 [INFO] [stderr] Compiling scrypt v0.2.0 [INFO] [stderr] Compiling mio-uds v0.6.8 [INFO] [stderr] Compiling signal-hook-registry v1.2.1 [INFO] [stderr] Compiling sha2 v0.6.0 [INFO] [stderr] Compiling aes v0.3.2 [INFO] [stderr] Compiling ripemd160 v0.8.0 [INFO] [stderr] Compiling secp256k1 v0.17.2 [INFO] [stderr] Compiling block-modes v0.3.3 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling zeroize v1.1.1 [INFO] [stderr] Compiling bytes v0.5.6 [INFO] [stderr] Compiling pin-project-lite v0.1.7 [INFO] [stderr] Compiling arrayref v0.3.6 [INFO] [stderr] Compiling subtle v2.3.0 [INFO] [stderr] Compiling itoa v0.4.6 [INFO] [stderr] Compiling futures-core v0.3.5 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling libsecp256k1 v0.2.2 [INFO] [stderr] Compiling bytes v0.4.12 [INFO] [stderr] Compiling parity-bytes v0.1.2 [INFO] [stderr] Compiling hex v0.4.2 [INFO] [stderr] Compiling tokio-macros v0.2.5 [INFO] [stderr] Compiling tokio v0.2.22 [INFO] [stderr] Compiling parity-scale-codec v1.3.5 [INFO] [stderr] Compiling impl-serde v0.3.1 [INFO] [stderr] Compiling ethereum-types-serialize v0.2.2 [INFO] [stderr] Compiling ethbloom v0.5.3 [INFO] [stderr] Compiling ethbloom v0.9.2 [INFO] [stderr] Compiling ethereum-types v0.4.2 [INFO] [stderr] Compiling keccak-hash v0.1.2 [INFO] [stderr] Compiling impl-codec v0.4.2 [INFO] [stderr] Compiling primitive-types v0.7.2 [INFO] [stderr] Compiling ethereum-types v0.9.2 [INFO] [stderr] Compiling parity-crypto v0.6.2 [INFO] [stderr] Compiling rusteth v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Read` and `Write` [INFO] [stdout] --> src/main.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `keccak` and `write_keccak` [INFO] [stdout] --> src/main.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | use keccak_hash::{keccak, write_keccak}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message`, `RecoveryId`, and `Signature` [INFO] [stdout] --> src/main.rs:6:39 [INFO] [stdout] | [INFO] [stdout] 6 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RlpStream` and `Rlp` [INFO] [stdout] --> src/main.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use rlp::{Rlp, RlpStream}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TcpListener` and `TcpStream` [INFO] [stdout] --> src/main.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::net::{ TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::mpsc` [INFO] [stdout] --> src/main.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `delay_for` [INFO] [stdout] --> src/main.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::time::{delay_for, Duration}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncReadExt`, `AsyncWriteExt`, and `self` [INFO] [stdout] --> src/main.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::io::{self, AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Generator`, `KeyPair`, `Public`, `Random`, `ecdh`, `ecies`, `recover`, and `sign` [INFO] [stdout] --> src/main.rs:14:32 [INFO] [stdout] | [INFO] [stdout] 14 | use parity_crypto::publickey::{Generator, KeyPair, Public, Random, recover, Secret, sign, ecdh, ecies}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^ ^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read` and `Write` [INFO] [stdout] --> src/peer.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng` and `thread_rng` [INFO] [stdout] --> src/peer.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sign` [INFO] [stdout] --> src/peer.rs:6:71 [INFO] [stdout] | [INFO] [stdout] 6 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature, sign, recover}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RlpStream` [INFO] [stdout] --> src/peer.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | use rlp::{Rlp, RlpStream}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/peer.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TcpListener` [INFO] [stdout] --> src/peer.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::net::{ TcpListener, UdpSocket as TokioUdp}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UnboundedReceiver` [INFO] [stdout] --> src/peer.rs:11:42 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::sync::mpsc::{UnboundedSender, UnboundedReceiver, self}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LittleEndian` [INFO] [stdout] --> src/message.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use byteorder::{LittleEndian, BigEndian, WriteBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/dht.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read` and `Write` [INFO] [stdout] --> src/dht.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hex` [INFO] [stdout] --> src/dht.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use hex; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng` and `thread_rng` [INFO] [stdout] --> src/dht.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `keccak_hash::keccak` [INFO] [stdout] --> src/dht.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use keccak_hash::keccak; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message`, `PublicKey`, `RecoveryId`, `SecretKey`, `Signature`, `recover`, and `sign` [INFO] [stdout] --> src/dht.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature, sign, recover}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RlpStream` and `Rlp` [INFO] [stdout] --> src/dht.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | use rlp::{Rlp, RlpStream}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/dht.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SocketAddr` [INFO] [stdout] --> src/dht.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use std::net::{ SocketAddr }; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TcpListener` and `UdpSocket as TokioUdp` [INFO] [stdout] --> src/dht.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::net::{ TcpListener, UdpSocket as TokioUdp}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `UnboundedReceiver`, `UnboundedSender`, and `self` [INFO] [stdout] --> src/dht.rs:13:25 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::sync::mpsc::{UnboundedSender, UnboundedReceiver, self}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `delay_for` [INFO] [stdout] --> src/dht.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::time::{delay_for, Duration}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::Cell` [INFO] [stdout] --> src/dht.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::cell::Cell; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/dht.rs:16:22 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::message::{self, PeerInfo}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hex` [INFO] [stdout] --> src/node.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use hex; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `LittleEndian`, and `WriteBytesExt` [INFO] [stdout] --> src/node.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{LittleEndian, BigEndian, WriteBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message`, `RecoveryId`, `SecretKey`, and `Signature` [INFO] [stdout] --> src/node.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/node.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TcpListener` [INFO] [stdout] --> src/node.rs:11:30 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::net::{ TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `delay_for` [INFO] [stdout] --> src/node.rs:13:19 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::time::{delay_for, Duration}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/node.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::io::{self, split, ReadHalf, WriteHalf, AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `recover` [INFO] [stdout] --> src/node.rs:15:68 [INFO] [stdout] | [INFO] [stdout] 15 | use parity_crypto::publickey::{Generator, KeyPair, Public, Random, recover, Secret, sign, ecdh, ecies}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::future::Future` [INFO] [stdout] --> src/node.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::future::Future; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Context` and `Poll` [INFO] [stdout] --> src/node.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | use std::task::{Context, Poll}; [INFO] [stdout] | ^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::Pin` [INFO] [stdout] --> src/node.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::pin::Pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut` and `Buf` [INFO] [stdout] --> src/node.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | use bytes::{Buf, BufMut}; [INFO] [stdout] | ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PeerInfo` [INFO] [stdout] --> src/node.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | use crate::message::{self, PeerInfo}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/node.rs:107:10 [INFO] [stdout] | [INFO] [stdout] 107 | /// MAC for egress data [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 108 | egress_mac: Keccak::v256(), [INFO] [stdout] | -------------------------- rustdoc does not generate documentation for expression fields [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/node.rs:109:10 [INFO] [stdout] | [INFO] [stdout] 109 | /// MAC for ingress data [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 110 | ingress_mac: Keccak::v256(), [INFO] [stdout] | --------------------------- rustdoc does not generate documentation for expression fields [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/node.rs:184:57 [INFO] [stdout] | [INFO] [stdout] 184 | fn read_header(&mut self, mut header: Bytes) -> Result<(usize), Box> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 184 - fn read_header(&mut self, mut header: Bytes) -> Result<(usize), Box> { [INFO] [stdout] 184 + fn read_header(&mut self, mut header: Bytes) -> Result> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dht::DHT` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use dht::DHT; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `peer::Peer` [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use peer::Peer; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `private_key` [INFO] [stdout] --> src/peer.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | let private_key = &self.private_key; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_private_key` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash_signed` [INFO] [stdout] --> src/peer.rs:160:21 [INFO] [stdout] | [INFO] [stdout] 160 | let hash_signed = keccak(&read_buf[32..]); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_signed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peer.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let mut socket = TokioUdp::bind(local_udp_addr).await?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peer.rs:131:14 [INFO] [stdout] | [INFO] [stdout] 131 | let (mut tx, mut rx) = mpsc::unbounded_channel::>(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rx` [INFO] [stdout] --> src/node.rs:498:22 [INFO] [stdout] | [INFO] [stdout] 498 | let (tx, mut rx) = mpsc::unbounded_channel::>(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/node.rs:498:18 [INFO] [stdout] | [INFO] [stdout] 498 | let (tx, mut rx) = mpsc::unbounded_channel::>(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/node.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/node.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash_bytes` [INFO] [stdout] --> src/peer.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | let hash_bytes = rlp.at(1)?.data()?; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_bytes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pubkey` [INFO] [stdout] --> src/peer.rs:67:74 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn on_packet(&self, message_type: u8, rlp: Rlp, read_buf: &[u8], pubkey: PublicKey) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pubkey` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/dht.rs:31:29 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn bootstrap(&self, peer: PeerInfo) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `protocol_id` [INFO] [stdout] --> src/node.rs:200:7 [INFO] [stdout] | [INFO] [stdout] 200 | let protocol_id = header_rlp.val_at::(0)?; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `header` [INFO] [stdout] --> src/node.rs:405:13 [INFO] [stdout] | [INFO] [stdout] 405 | let header = &buf[..16]; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mac` [INFO] [stdout] --> src/node.rs:406:13 [INFO] [stdout] | [INFO] [stdout] 406 | let mac = &buf[16..32]; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_mac` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_message_type` is never used [INFO] [stdout] --> src/peer.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn print_message_type(message_type: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NodePoint` is never constructed [INFO] [stdout] --> src/peer.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | struct NodePoint { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Peer` is never constructed [INFO] [stdout] --> src/peer.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct Peer { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `on_packet`, and `run` are never used [INFO] [stdout] --> src/peer.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl Peer { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 55 | pub fn new(addr: SocketAddr, private_key: SecretKey) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn on_packet(&self, message_type: u8, rlp: Rlp, read_buf: &[u8], pubkey: PublicKey) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub async fn run(&mut self) -> Result<(), Box> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXPIRY_TIME` is never used [INFO] [stdout] --> src/message.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const EXPIRY_TIME: Duration = Duration::from_secs(20); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ip`, `udp_port`, and `tcp_port` are never read [INFO] [stdout] --> src/message.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct PeerInfo { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 15 | ip: IpAddr, [INFO] [stdout] | ^^ [INFO] [stdout] 16 | udp_port: u16, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 17 | tcp_port: u16, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PeerInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `RlpItem` is never used [INFO] [stdout] --> src/message.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub type RlpItem = Vec; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `RlpList` is never used [INFO] [stdout] --> src/message.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | pub type RlpList = Vec; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `from_sock_addr`, `encode_rlp`, and `get_ip_bytes` are never used [INFO] [stdout] --> src/message.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl PeerInfo { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 34 | pub fn new(ip: IpAddr, port: u16) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn from_sock_addr(addr: &SocketAddr) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn encode_rlp(&self, rlp: &mut RlpStream) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn get_ip_bytes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Capabilitiy` is never constructed [INFO] [stdout] --> src/message.rs:122:12 [INFO] [stdout] | [INFO] [stdout] 122 | pub struct Capabilitiy { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `int_u16_2buttfer` is never used [INFO] [stdout] --> src/message.rs:143:4 [INFO] [stdout] | [INFO] [stdout] 143 | fn int_u16_2buttfer(number: u16) -> [u8; 2] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `int_u32_2buttfer` is never used [INFO] [stdout] --> src/message.rs:149:4 [INFO] [stdout] | [INFO] [stdout] 149 | fn int_u32_2buttfer(number: u32) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_ping` is never used [INFO] [stdout] --> src/message.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn encode_ping(from: &PeerInfo, to: &PeerInfo, secret: &SecretKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_pong` is never used [INFO] [stdout] --> src/message.rs:196:8 [INFO] [stdout] | [INFO] [stdout] 196 | pub fn encode_pong(from: &PeerInfo, hashbuf: &Vec, timestamp: &u64, secret: &SecretKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encode_find_node` is never used [INFO] [stdout] --> src/message.rs:232:8 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn encode_find_node(secret: &SecretKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `nodes` is never read [INFO] [stdout] --> src/dht.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct DHT { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 21 | nodes: Vec [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `bootstrap` are never used [INFO] [stdout] --> src/dht.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl DHT { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 25 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn bootstrap(&self, peer: PeerInfo) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Header` and `Body` are never constructed [INFO] [stdout] --> src/node.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 30 | enum NodeState { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 33 | Header, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 34 | Body, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NodeState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Rx` is never used [INFO] [stdout] --> src/node.rs:39:6 [INFO] [stdout] | [INFO] [stdout] 39 | type Rx = UnboundedReceiver>; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `secret`, `id`, `remote_ephemeral_public_key`, and `remote_nonce` are never read [INFO] [stdout] --> src/node.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct Node { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 47 | secret: Secret, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | id: Public, [INFO] [stdout] | ^^ [INFO] [stdout] 51 | remote_ephemeral_public_key: RefCell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 52 | remote_nonce: RefCell, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RECEIVE_PAYLOAD` is never used [INFO] [stdout] --> src/node.rs:66:7 [INFO] [stdout] | [INFO] [stdout] 66 | const RECEIVE_PAYLOAD: Duration = Duration::from_secs(30); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PAYLOAD_SOFT_LIMIT` is never used [INFO] [stdout] --> src/node.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | pub const PAYLOAD_SOFT_LIMIT: usize = (1 << 22) - 1; // 4Mb [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PACKET_DISCONNECT` is never used [INFO] [stdout] --> src/node.rs:75:7 [INFO] [stdout] | [INFO] [stdout] 75 | const PACKET_DISCONNECT: u8 = 0x01; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PACKET_PING` is never used [INFO] [stdout] --> src/node.rs:76:7 [INFO] [stdout] | [INFO] [stdout] 76 | const PACKET_PING: u8 = 0x02; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PACKET_PONG` is never used [INFO] [stdout] --> src/node.rs:77:7 [INFO] [stdout] | [INFO] [stdout] 77 | const PACKET_PONG: u8 = 0x03; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PACKET_GET_PEERS` is never used [INFO] [stdout] --> src/node.rs:78:7 [INFO] [stdout] | [INFO] [stdout] 78 | const PACKET_GET_PEERS: u8 = 0x04; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PACKET_PEERS` is never used [INFO] [stdout] --> src/node.rs:79:7 [INFO] [stdout] | [INFO] [stdout] 79 | const PACKET_PEERS: u8 = 0x05; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PACKET_USER` is never used [INFO] [stdout] --> src/node.rs:80:7 [INFO] [stdout] | [INFO] [stdout] 80 | const PACKET_USER: u8 = 0x10; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PACKET_LAST` is never used [INFO] [stdout] --> src/node.rs:81:7 [INFO] [stdout] | [INFO] [stdout] 81 | const PACKET_LAST: u8 = 0x7f; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `encode_frame`, `read_payload`, `handle_header`, and `write` are never used [INFO] [stdout] --> src/node.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 83 | impl Node { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 114 | fn encode_frame(message_code: u64, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | fn read_payload(&mut self, mut payload: Bytes, payload_len: usize) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 404 | fn handle_header(&self, buf: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 409 | async fn write(&self, rx: &mut Rx, stream: &mut WriteHalf) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/peer.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | tx.send(bytes); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 86 | let _ = tx.send(bytes); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/peer.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | tx.send(bytes); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 99 | let _ = tx.send(bytes); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/peer.rs:149:17 [INFO] [stdout] | [INFO] [stdout] 149 | tx.send(ping); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 149 | let _ = tx.send(ping); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `cecoveryId` should have a snake case name [INFO] [stdout] --> src/message.rs:176:21 [INFO] [stdout] | [INFO] [stdout] 176 | let (signature, cecoveryId) = match sign(&Message::parse_slice(&sighash).unwrap(), secret) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `cecovery_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `cecoveryId` should have a snake case name [INFO] [stdout] --> src/message.rs:212:21 [INFO] [stdout] | [INFO] [stdout] 212 | let (signature, cecoveryId) = match sign(&Message::parse_slice(&sighash).unwrap(), secret) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `cecovery_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `cecoveryId` should have a snake case name [INFO] [stdout] --> src/message.rs:253:21 [INFO] [stdout] | [INFO] [stdout] 253 | let (signature, cecoveryId) = match sign(&Message::parse_slice(&sighash).unwrap(), secret) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `cecovery_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/node.rs:142:3 [INFO] [stdout] | [INFO] [stdout] 142 | &mut enc[..].copy_from_slice(prev.as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 142 | let _ = &mut enc[..].copy_from_slice(prev.as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/node.rs:166:3 [INFO] [stdout] | [INFO] [stdout] 166 | &mut packet[..HEADER_LEN].copy_from_slice(&mut header); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 166 | let _ = &mut packet[..HEADER_LEN].copy_from_slice(&mut header); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/node.rs:170:3 [INFO] [stdout] | [INFO] [stdout] 170 | &mut packet[32..32 + len].copy_from_slice(payload); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 170 | let _ = &mut packet[32..32 + len].copy_from_slice(payload); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit status: 1 [INFO] [stdout] | [INFO] [stdout] = note: "cc" "-m64" "/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained/rcrt1.o" "/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained/crti.o" "/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained/crtbeginS.o" "/tmp/rustciXLEAt/symbols.o" "<5 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/opt/rustwide/target/x86_64-unknown-linux-musl/debug/deps/{libparity_bytes-343a3637436f1cce.rlib,libbytes-c01d48d7f4430331.rlib,libparity_crypto-857d2b356bd7b387.rlib,libripemd160-566f02d3ab0ad1ad.rlib,libsubtle-5b03249ff571a1a4.rlib,libscrypt-f29644b360245a32.rlib,libpbkdf2-538dea39812cbb5a.rlib,librand-a8fe1610079eaee1.rlib,libbase64-10fe3bb58fa9f6fc.rlib,libsafemem-415ebfa147efdd91.rlib,libsecp256k1-0c95d26d86faaafa.rlib,libsecp256k1_sys-9a60d7deaeeca414.rlib,libethereum_types-9dc3b2342c6acc56.rlib,libethbloom-3ee277b5a2b34d3c.rlib,libtiny_keccak-d55932e17d172cbf.rlib,libprimitive_types-90ee98302e0b0315.rlib,libimpl_codec-297be2e6114b94a8.rlib,libparity_scale_codec-ed54542bb9e31bdb.rlib,libbyte_slice_cast-20c6588856f486bd.rlib,libarrayvec-a59e30b1adef2cb4.rlib,libuint-a1fa213829d645af.rlib,libimpl_serde-e770df57a4af3524.rlib,libimpl_rlp-d0fefd5add61d0f9.rlib,libfixed_hash-5dd61e01174d970b.rlib,librand-acbef01b068283e7.rlib,librand_chacha-1e9ce603e679f1bc.rlib,libppv_lite86-fe4748cb9a4a903e.rlib,librand_core-af31ddfb116860d3.rlib,libgetrandom-3d65a302698658d7.rlib,libstatic_assertions-df27c3b343cf637f.rlib,libzeroize-24385476d1dcebb1.rlib,libhmac-391256afe02d0a4e.rlib,libcrypto_mac-0bcb6b0bd8cef702.rlib,libsubtle-fe6a1df58196288a.rlib,libsha2-62df610653018b36.rlib,libblock_buffer-eb4e7de01c627299.rlib,libdigest-5931225e8b843731.rlib,libblock_modes-78225502b72a44e1.rlib,libblock_padding-5934d35e69a00a24.rlib,libbyte_tools-bed8c652a5ea9f13.rlib,libaes_ctr-b8c1984f2ccae825.rlib,libctr-c571f38d45f6b2c6.rlib,libstream_cipher-a53ad6d3ecc324b0.rlib,libaes-d9598a5acefff8d7.rlib,libaes_soft-479dc5b5a4e27e20.rlib,libopaque_debug-a7962e22a4dc4c30.rlib,libblock_cipher_trait-3cbba3f1bbdbf02a.rlib,libgeneric_array-4de0f8b9c26a19bb.rlib,libtokio-021f8398e90b7646.rlib,libsignal_hook_registry-e2116d37d73e7e96.rlib,libarc_swap-072139ab8f6eebb4.rlib,libnum_cpus-27adeaa48ca3a367.rlib,libmemchr-ef72552adde229fb.rlib,libfnv-81596130b397d5c3.rlib,libmio_uds-3787970fde13918f.rlib,libmio-03b354f476a9ccb3.rlib,liblog-e27f9015365cb9c5.rlib,libslab-7c577fd9ceb1ab41.rlib,libiovec-1e55316724a945cd.rlib,libnet2-623bc233639fd9a4.rlib,libcfg_if-2d17986ae484e939.rlib,libfutures_core-1fa6d914b49bd78d.rlib,liblazy_static-4b136fc9bfbd2c4b.rlib,libbytes-3e6aab9f92fa68ff.rlib,libpin_project_lite-9425618866ebf4ff.rlib,librlp-13de9a7eff14759f.rlib,libsecp256k1-f493febbc3d7a7e7.rlib,libarrayref-762a58c2a3b122f9.rlib,libsha2-ea79d61e37f2b76f.rlib,libfake_simd-a91f2f775e698a8f.rlib,libblock_buffer-a7c8e13f92676ac3.rlib,libbyte_tools-f2662633f190a098.rlib,libhmac_drbg-a37c2287ad353d39.rlib,libhmac-5cf57341774b065a.rlib,libcrypto_mac-b38b56edf9db7277.rlib,libconstant_time_eq-5cfd50e7e287192a.rlib,libdigest-64162f7da1375bd3.rlib,libgeneric_array-8c6c1510696f6040.rlib,libnodrop-d2288700c14892b1.rlib,libtypenum-0d13c3a14e20be66.rlib,libkeccak_hash-7e4813ccddaf5f3d.rlib,libethereum_types-8c81915d8184a57d.rlib,libethbloom-cd32b8dfad91ecb4.rlib,libethereum_types_serialize-c1609236d8a2dbd2.rlib,libserde-c8c8fdbfc48204fe.rlib,libtiny_keccak-6863d19a43cde2e9.rlib,libcrunchy-0d7649c6c0ee0812.rlib,libfixed_hash-44924c0becaa03b0.rlib,librand-4b14188f2ce360be.rlib,libuint-3548fc849e0070f1.rlib,librustc_hex-2854fe4a3a282aa8.rlib,libheapsize-23d01fd61ed40295.rlib,libbyteorder-549def2b2525ef52.rlib,libcrunchy-ae9d6b54d1dc7869.rlib,librand-0b57dd06400ebdeb.rlib,librand_xorshift-aa5357808be79a45.rlib,librand_pcg-3caf58f80121b1fe.rlib,librand_hc-e4bbfb76d423f45e.rlib,librand_chacha-7039a91eb5a4ba11.rlib,librand_isaac-3b919c4b77e2ce9e.rlib,librand_core-4a159a921d63a3e0.rlib,librand_os-1daab1a204e1ae4b.rlib,liblibc-ef7905a6c382df03.rlib,librand_jitter-b5788f9d55ce55e9.rlib,librand_core-5dd93ed12702f197.rlib,libhex-06cfbc8d0a660e4b.rlib}.rlib" "/lib/rustlib/x86_64-unknown-linux-musl/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*}.rlib" "-lunwind" "/lib/rustlib/x86_64-unknown-linux-musl/lib/{libcfg_if-*,liblibc-*}.rlib" "-lc" "/lib/rustlib/x86_64-unknown-linux-musl/lib/{librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-L" "/tmp/rustciXLEAt/raw-dylibs" "-Wl,-Bdynamic" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-nostartfiles" "-L" "/opt/rustwide/target/x86_64-unknown-linux-musl/debug/build/secp256k1-sys-e479df27093001e9/out" "-L" "/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained" "-L" "/lib/rustlib/x86_64-unknown-linux-musl/lib" "-o" "/opt/rustwide/target/x86_64-unknown-linux-musl/debug/deps/rusteth-f8b15626bea92417" "-Wl,--gc-sections" "-static-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained/crtendS.o" "/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained/crtn.o" [INFO] [stdout] = note: some arguments are omitted. use `--verbose` to show all linker arguments [INFO] [stdout] = note: /usr/bin/ld: /opt/rustwide/target/x86_64-unknown-linux-musl/debug/deps/libgetrandom-3d65a302698658d7.rlib(getrandom-3d65a302698658d7.getrandom.cca278e80fb4fe2-cgu.0.rcgu.o): in function `getrandom::util_libc::open_readonly': [INFO] [stdout] /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.1.15/src/util_libc.rs:112:(.text._ZN9getrandom9util_libc13open_readonly17hc224e8524e837b27E+0x79): undefined reference to `open64' [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified [INFO] [stdout] = note: use the `-l` flag to specify native libraries to link [INFO] [stdout] = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#rustc-link-lib) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rusteth` (bin "rusteth") due to 1 previous error; 103 warnings emitted [INFO] running `Command { std: "docker" "inspect" "bce47149d5618c028ec6a851ab60331ad2c8a523a4fbb1b9393967e4224126c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bce47149d5618c028ec6a851ab60331ad2c8a523a4fbb1b9393967e4224126c1", kill_on_drop: false }` [INFO] [stdout] bce47149d5618c028ec6a851ab60331ad2c8a523a4fbb1b9393967e4224126c1