[INFO] cloning repository https://github.com/johnaco96/RustBlockchain
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/johnaco96/RustBlockchain" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjohnaco96%2FRustBlockchain", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjohnaco96%2FRustBlockchain'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6acb6901c7a614a75b0d8ef1cd666ff6901ac59e
[INFO] testing johnaco96/RustBlockchain against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjohnaco96%2FRustBlockchain" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/johnaco96/RustBlockchain
[INFO] finished tweaking git repo https://github.com/johnaco96/RustBlockchain
[INFO] tweaked toml for git repo https://github.com/johnaco96/RustBlockchain written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/johnaco96/RustBlockchain on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/johnaco96/RustBlockchain 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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1fa7451c6eadec988d6b42052c92553672ab3e01e308aa7e5ffdb942d0b410a3
[INFO] running `Command { std: "docker" "start" "-a" "1fa7451c6eadec988d6b42052c92553672ab3e01e308aa7e5ffdb942d0b410a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1fa7451c6eadec988d6b42052c92553672ab3e01e308aa7e5ffdb942d0b410a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1fa7451c6eadec988d6b42052c92553672ab3e01e308aa7e5ffdb942d0b410a3", kill_on_drop: false }`
[INFO] [stdout] 1fa7451c6eadec988d6b42052c92553672ab3e01e308aa7e5ffdb942d0b410a3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 70a5d5d8d1447d2c62f1d816541679a643253b71a9ab4d75b2edf1886ea4de09
[INFO] running `Command { std: "docker" "start" "-a" "70a5d5d8d1447d2c62f1d816541679a643253b71a9ab4d75b2edf1886ea4de09", kill_on_drop: false }`
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling aws-lc-rs v1.13.0
[INFO] [stderr]    Compiling rustls-pki-types v1.11.0
[INFO] [stderr]    Compiling zerocopy v0.8.24
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling rustls v0.23.25
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling deranged v0.4.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling socket2 v0.5.9
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling quinn-udp v0.5.11
[INFO] [stderr]    Compiling time-core v0.1.4
[INFO] [stderr]    Compiling cc v1.2.18
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling tinyvec v1.9.0
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling mio v1.0.3
[INFO] [stderr]    Compiling quinn v0.11.7
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling anyhow v1.0.97
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling rustls-native-certs v0.8.1
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling hashbrown v0.13.2
[INFO] [stderr]    Compiling time v0.3.41
[INFO] [stderr]    Compiling pem v3.0.5
[INFO] [stderr]    Compiling chrono v0.4.40
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]    Compiling data-encoding v2.8.0
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling lru v0.10.1
[INFO] [stderr]    Compiling yasna v0.5.2
[INFO] [stderr]    Compiling aws-lc-sys v0.28.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling tokio v1.44.2
[INFO] [stderr]    Compiling rcgen v0.13.2
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling rustls-webpki v0.103.1
[INFO] [stderr]    Compiling rustls-platform-verifier v0.5.1
[INFO] [stderr]    Compiling quinn-proto v0.11.10
[INFO] [stderr]    Compiling blockchain v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/blockchain/block.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[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 import: `std::thread`
[INFO] [stdout]   --> src/blockchain/block.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `gen_save_kp`, `load_kp`, and `ver_sig`
[INFO] [stdout]   --> src/blockchain/block.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::keygen::{gen_save_kp, load_kp, sign_msg, ver_sig};
[INFO] [stdout]    |                     ^^^^^^^^^^^  ^^^^^^^            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blockchain::transaction::Transaction`
[INFO] [stdout]  --> src/blockchain/validation.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blockchain::transaction::Transaction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDateTime`
[INFO] [stdout]  --> src/blockchain/validation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::NaiveDateTime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stdout]  --> src/blockchain/validation.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]   |                 ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]  --> src/blockchain/validation.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{fmt, thread};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls::ServerConfig as RustlsServerConfig`
[INFO] [stdout]  --> src/keygen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rustls::ServerConfig as RustlsServerConfig;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ServerConfig`
[INFO] [stdout]  --> src/network/p2p.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use quinn::{Endpoint, Connection, ServerConfig};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]  --> src/network/p2p.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/network/sync.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncBufReadExt`
[INFO] [stdout]   --> src/network/sync.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::AsyncBufReadExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::broadcast`
[INFO] [stdout]   --> src/network/sync.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::broadcast;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::BufReader`
[INFO] [stdout]   --> src/network/sync.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tokio::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc`
[INFO] [stdout]   --> src/network/sync.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/blockchain/block.rs:146:62
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let datetime: NaiveDateTime = chrono::NaiveDateTime::from_timestamp(self.timestamp as i64, 0);
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyPair`
[INFO] [stdout]  --> src/keygen.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ring::signature::{Ed25519KeyPair, KeyPair, UnparsedPublicKey, ED25519};
[INFO] [stdout]   |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures_util::StreamExt`
[INFO] [stdout]  --> src/network/sync.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use futures_util::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]  --> src/network/sync.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]  --> src/network/sync.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/blockchain/block.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         index: u32,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_path`
[INFO] [stdout]   --> src/network/p2p.rs:32:41
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub async fn start_listener(addr: &str, key_path: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFFICULTY` is never used
[INFO] [stdout]   --> src/blockchain/block.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const DIFFICULTY: usize = 2;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         send.finish();
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         send.finish();
[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] 88 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/blockchain/block.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[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 import: `std::thread`
[INFO] [stdout]   --> src/blockchain/block.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `gen_save_kp`, `load_kp`, and `ver_sig`
[INFO] [stdout]   --> src/blockchain/block.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::keygen::{gen_save_kp, load_kp, sign_msg, ver_sig};
[INFO] [stdout]    |                     ^^^^^^^^^^^  ^^^^^^^            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blockchain::transaction::Transaction`
[INFO] [stdout]  --> src/blockchain/validation.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blockchain::transaction::Transaction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDateTime`
[INFO] [stdout]  --> src/blockchain/validation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::NaiveDateTime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stdout]  --> src/blockchain/validation.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]   |                 ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]  --> src/blockchain/validation.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{fmt, thread};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ServerConfig`
[INFO] [stdout]  --> src/network/p2p.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use quinn::{Endpoint, Connection, ServerConfig};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]  --> src/network/p2p.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/network/sync.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncBufReadExt`
[INFO] [stdout]   --> src/network/sync.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::AsyncBufReadExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::broadcast`
[INFO] [stdout]   --> src/network/sync.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::broadcast;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::BufReader`
[INFO] [stdout]   --> src/network/sync.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tokio::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc`
[INFO] [stdout]   --> src/network/sync.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls::ServerConfig as RustlsServerConfig`
[INFO] [stdout]  --> src/keygen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rustls::ServerConfig as RustlsServerConfig;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sync`
[INFO] [stdout]  --> src/main.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::network::{p2p, sync};
[INFO] [stdout]   |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gen_save_kp`
[INFO] [stdout]  --> src/main.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | use keygen::{gen_save_kp, load_kp, sign_msg, ver_sig};
[INFO] [stdout]   |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sha256`
[INFO] [stdout]  --> src/main.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 | use sha2::{Digest, Sha256};
[INFO] [stdout]   |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/main.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::{Duration, SystemTime, UNIX_EPOCH};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use anyhow::Result;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/blockchain/block.rs:146:62
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let datetime: NaiveDateTime = chrono::NaiveDateTime::from_timestamp(self.timestamp as i64, 0);
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp_opt`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/main.rs:102:39
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let end_datetime = NaiveDateTime::from_timestamp_opt(end_timestamp as i64, 0).unwrap();
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures_util::StreamExt`
[INFO] [stdout]  --> src/network/sync.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use futures_util::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]  --> src/network/sync.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]  --> src/network/sync.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyPair`
[INFO] [stdout]  --> src/keygen.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ring::signature::{Ed25519KeyPair, KeyPair, UnparsedPublicKey, ED25519};
[INFO] [stdout]   |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/main.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use sha2::{Digest, Sha256};
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/blockchain/block.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         index: u32,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_path`
[INFO] [stdout]   --> src/network/p2p.rs:32:41
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub async fn start_listener(addr: &str, key_path: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFFICULTY` is never used
[INFO] [stdout]   --> src/main.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const DIFFICULTY: usize = 2;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFFICULTY` is never used
[INFO] [stdout]   --> src/blockchain/block.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const DIFFICULTY: usize = 2;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_hash` is never used
[INFO] [stdout]   --> src/blockchain/block.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Block {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn update_hash(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_node` is never used
[INFO] [stdout]   --> src/network/p2p.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn start_node(bind_addr: &str) -> anyhow::Result<Endpoint> {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connect_to_peer` is never used
[INFO] [stdout]   --> src/network/p2p.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn connect_to_peer(endpoint: &Endpoint, peer_addr: &str) -> anyhow::Result<Connection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GossipMessage` is never used
[INFO] [stdout]   --> src/network/sync.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum GossipMessage {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnectionCache` is never constructed
[INFO] [stdout]   --> src/network/sync.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ConnectionCache {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `insert` are never used
[INFO] [stdout]   --> src/network/sync.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl ConnectionCache {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 36 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get(&self, id: &str) -> Option<quinn::Connection> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn insert(&self, id: String, conn: quinn::Connection) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_sync_loop` is never used
[INFO] [stdout]   --> src/network/sync.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub async fn run_sync_loop(conn: quinn::Connection) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_save_kp` is never used
[INFO] [stdout]   --> src/keygen.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn gen_save_kp(filepath: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         send.finish();
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         send.finish();
[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] 88 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 58.66s
[INFO] running `Command { std: "docker" "inspect" "70a5d5d8d1447d2c62f1d816541679a643253b71a9ab4d75b2edf1886ea4de09", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "70a5d5d8d1447d2c62f1d816541679a643253b71a9ab4d75b2edf1886ea4de09", kill_on_drop: false }`
[INFO] [stdout] 70a5d5d8d1447d2c62f1d816541679a643253b71a9ab4d75b2edf1886ea4de09
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 218495001bb13bdec0f672ceffa6e72a19622d8c43c5494e640cfef68759f7d9
[INFO] running `Command { std: "docker" "start" "-a" "218495001bb13bdec0f672ceffa6e72a19622d8c43c5494e640cfef68759f7d9", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/blockchain/block.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[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 import: `std::thread`
[INFO] [stdout]   --> src/blockchain/block.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `gen_save_kp`, `load_kp`, and `ver_sig`
[INFO] [stdout]   --> src/blockchain/block.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::keygen::{gen_save_kp, load_kp, sign_msg, ver_sig};
[INFO] [stdout]    |                     ^^^^^^^^^^^  ^^^^^^^            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blockchain::transaction::Transaction`
[INFO] [stdout]  --> src/blockchain/validation.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blockchain::transaction::Transaction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDateTime`
[INFO] [stdout]  --> src/blockchain/validation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::NaiveDateTime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stdout]  --> src/blockchain/validation.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]   |                 ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]  --> src/blockchain/validation.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{fmt, thread};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls::ServerConfig as RustlsServerConfig`
[INFO] [stdout]  --> src/keygen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rustls::ServerConfig as RustlsServerConfig;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ServerConfig`
[INFO] [stdout]  --> src/network/p2p.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use quinn::{Endpoint, Connection, ServerConfig};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]  --> src/network/p2p.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/network/sync.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncBufReadExt`
[INFO] [stdout]   --> src/network/sync.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::AsyncBufReadExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::broadcast`
[INFO] [stdout]   --> src/network/sync.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::broadcast;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::BufReader`
[INFO] [stdout]   --> src/network/sync.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tokio::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc`
[INFO] [stdout]   --> src/network/sync.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/blockchain/block.rs:146:62
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let datetime: NaiveDateTime = chrono::NaiveDateTime::from_timestamp(self.timestamp as i64, 0);
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyPair`
[INFO] [stdout]  --> src/keygen.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ring::signature::{Ed25519KeyPair, KeyPair, UnparsedPublicKey, ED25519};
[INFO] [stdout]   |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures_util::StreamExt`
[INFO] [stdout]  --> src/network/sync.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use futures_util::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]  --> src/network/sync.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]  --> src/network/sync.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/blockchain/block.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         index: u32,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_path`
[INFO] [stdout]   --> src/network/p2p.rs:32:41
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub async fn start_listener(addr: &str, key_path: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFFICULTY` is never used
[INFO] [stdout]   --> src/blockchain/block.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const DIFFICULTY: usize = 2;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         send.finish();
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         send.finish();
[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] 88 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling blockchain v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/blockchain/block.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[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 import: `std::thread`
[INFO] [stdout]   --> src/blockchain/block.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `gen_save_kp`, `load_kp`, and `ver_sig`
[INFO] [stdout]   --> src/blockchain/block.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::keygen::{gen_save_kp, load_kp, sign_msg, ver_sig};
[INFO] [stdout]    |                     ^^^^^^^^^^^  ^^^^^^^            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blockchain::transaction::Transaction`
[INFO] [stdout]  --> src/blockchain/validation.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blockchain::transaction::Transaction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDateTime`
[INFO] [stdout]  --> src/blockchain/validation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::NaiveDateTime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stdout]  --> src/blockchain/validation.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]   |                 ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]  --> src/blockchain/validation.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{fmt, thread};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ServerConfig`
[INFO] [stdout]  --> src/network/p2p.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use quinn::{Endpoint, Connection, ServerConfig};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]  --> src/network/p2p.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/network/sync.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncBufReadExt`
[INFO] [stdout]   --> src/network/sync.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::AsyncBufReadExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::broadcast`
[INFO] [stdout]   --> src/network/sync.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::broadcast;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::BufReader`
[INFO] [stdout]   --> src/network/sync.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tokio::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc`
[INFO] [stdout]   --> src/network/sync.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls::ServerConfig as RustlsServerConfig`
[INFO] [stdout]  --> src/keygen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rustls::ServerConfig as RustlsServerConfig;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sync`
[INFO] [stdout]  --> src/main.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::network::{p2p, sync};
[INFO] [stdout]   |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gen_save_kp`
[INFO] [stdout]  --> src/main.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | use keygen::{gen_save_kp, load_kp, sign_msg, ver_sig};
[INFO] [stdout]   |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sha256`
[INFO] [stdout]  --> src/main.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 | use sha2::{Digest, Sha256};
[INFO] [stdout]   |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/main.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::{Duration, SystemTime, UNIX_EPOCH};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use anyhow::Result;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/blockchain/block.rs:146:62
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let datetime: NaiveDateTime = chrono::NaiveDateTime::from_timestamp(self.timestamp as i64, 0);
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp_opt`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/main.rs:102:39
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let end_datetime = NaiveDateTime::from_timestamp_opt(end_timestamp as i64, 0).unwrap();
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures_util::StreamExt`
[INFO] [stdout]  --> src/network/sync.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use futures_util::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]  --> src/network/sync.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]  --> src/network/sync.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyPair`
[INFO] [stdout]  --> src/keygen.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ring::signature::{Ed25519KeyPair, KeyPair, UnparsedPublicKey, ED25519};
[INFO] [stdout]   |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/main.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use sha2::{Digest, Sha256};
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/blockchain/block.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         index: u32,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_path`
[INFO] [stdout]   --> src/network/p2p.rs:32:41
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub async fn start_listener(addr: &str, key_path: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFFICULTY` is never used
[INFO] [stdout]   --> src/main.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const DIFFICULTY: usize = 2;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFFICULTY` is never used
[INFO] [stdout]   --> src/blockchain/block.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const DIFFICULTY: usize = 2;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_hash` is never used
[INFO] [stdout]   --> src/blockchain/block.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Block {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn update_hash(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_node` is never used
[INFO] [stdout]   --> src/network/p2p.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn start_node(bind_addr: &str) -> anyhow::Result<Endpoint> {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connect_to_peer` is never used
[INFO] [stdout]   --> src/network/p2p.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn connect_to_peer(endpoint: &Endpoint, peer_addr: &str) -> anyhow::Result<Connection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GossipMessage` is never used
[INFO] [stdout]   --> src/network/sync.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum GossipMessage {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnectionCache` is never constructed
[INFO] [stdout]   --> src/network/sync.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ConnectionCache {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `insert` are never used
[INFO] [stdout]   --> src/network/sync.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl ConnectionCache {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 36 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get(&self, id: &str) -> Option<quinn::Connection> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn insert(&self, id: String, conn: quinn::Connection) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_sync_loop` is never used
[INFO] [stdout]   --> src/network/sync.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub async fn run_sync_loop(conn: quinn::Connection) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_save_kp` is never used
[INFO] [stdout]   --> src/keygen.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn gen_save_kp(filepath: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         send.finish();
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         send.finish();
[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] 88 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/blockchain/block.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[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 import: `std::thread`
[INFO] [stdout]   --> src/blockchain/block.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `gen_save_kp`, `load_kp`, and `ver_sig`
[INFO] [stdout]   --> src/blockchain/block.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::keygen::{gen_save_kp, load_kp, sign_msg, ver_sig};
[INFO] [stdout]    |                     ^^^^^^^^^^^  ^^^^^^^            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blockchain::transaction::Transaction`
[INFO] [stdout]  --> src/blockchain/validation.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blockchain::transaction::Transaction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDateTime`
[INFO] [stdout]  --> src/blockchain/validation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::NaiveDateTime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stdout]  --> src/blockchain/validation.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]   |                 ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]  --> src/blockchain/validation.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{fmt, thread};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls::ServerConfig as RustlsServerConfig`
[INFO] [stdout]  --> src/keygen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rustls::ServerConfig as RustlsServerConfig;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ServerConfig`
[INFO] [stdout]  --> src/network/p2p.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use quinn::{Endpoint, Connection, ServerConfig};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]  --> src/network/p2p.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/network/sync.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncBufReadExt`
[INFO] [stdout]   --> src/network/sync.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::AsyncBufReadExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::broadcast`
[INFO] [stdout]   --> src/network/sync.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::broadcast;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::BufReader`
[INFO] [stdout]   --> src/network/sync.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tokio::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc`
[INFO] [stdout]   --> src/network/sync.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/blockchain/block.rs:146:62
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let datetime: NaiveDateTime = chrono::NaiveDateTime::from_timestamp(self.timestamp as i64, 0);
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/blockchain/block.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[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 import: `std::thread`
[INFO] [stdout]   --> src/blockchain/block.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `gen_save_kp`, `load_kp`, and `ver_sig`
[INFO] [stdout]   --> src/blockchain/block.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::keygen::{gen_save_kp, load_kp, sign_msg, ver_sig};
[INFO] [stdout]    |                     ^^^^^^^^^^^  ^^^^^^^            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::blockchain::transaction::Transaction`
[INFO] [stdout]  --> src/blockchain/validation.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::blockchain::transaction::Transaction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::NaiveDateTime`
[INFO] [stdout]  --> src/blockchain/validation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::NaiveDateTime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stdout]  --> src/blockchain/validation.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]   |                 ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]  --> src/blockchain/validation.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{fmt, thread};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ServerConfig`
[INFO] [stdout]  --> src/network/p2p.rs:1:35
[INFO] [stdout]   |
[INFO] [stdout] 1 | use quinn::{Endpoint, Connection, ServerConfig};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::StreamExt`
[INFO] [stdout]  --> src/network/p2p.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/network/sync.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncBufReadExt`
[INFO] [stdout]   --> src/network/sync.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::AsyncBufReadExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::broadcast`
[INFO] [stdout]   --> src/network/sync.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::broadcast;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::BufReader`
[INFO] [stdout]   --> src/network/sync.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tokio::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc`
[INFO] [stdout]   --> src/network/sync.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls::ServerConfig as RustlsServerConfig`
[INFO] [stdout]  --> src/keygen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rustls::ServerConfig as RustlsServerConfig;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sync`
[INFO] [stdout]  --> src/main.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::network::{p2p, sync};
[INFO] [stdout]   |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gen_save_kp`
[INFO] [stdout]  --> src/main.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | use keygen::{gen_save_kp, load_kp, sign_msg, ver_sig};
[INFO] [stdout]   |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sha256`
[INFO] [stdout]  --> src/main.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 | use sha2::{Digest, Sha256};
[INFO] [stdout]   |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/main.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::{Duration, SystemTime, UNIX_EPOCH};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use anyhow::Result;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyPair`
[INFO] [stdout]  --> src/keygen.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ring::signature::{Ed25519KeyPair, KeyPair, UnparsedPublicKey, ED25519};
[INFO] [stdout]   |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures_util::StreamExt`
[INFO] [stdout]  --> src/network/sync.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use futures_util::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]  --> src/network/sync.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]  --> src/network/sync.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/blockchain/block.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         index: u32,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_path`
[INFO] [stdout]   --> src/network/p2p.rs:32:41
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub async fn start_listener(addr: &str, key_path: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncWriteExt`
[INFO] [stdout]  --> tests/network_test.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::AsyncWriteExt;
[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 import: `tokio::io::AsyncReadExt`
[INFO] [stdout]   --> tests/network_test.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::AsyncReadExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFFICULTY` is never used
[INFO] [stdout]   --> src/blockchain/block.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const DIFFICULTY: usize = 2;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         send.finish();
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         send.finish();
[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] 88 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/blockchain/block.rs:146:62
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let datetime: NaiveDateTime = chrono::NaiveDateTime::from_timestamp(self.timestamp as i64, 0);
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp_opt`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/main.rs:102:39
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let end_datetime = NaiveDateTime::from_timestamp_opt(end_timestamp as i64, 0).unwrap();
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures_util::StreamExt`
[INFO] [stdout]  --> src/network/sync.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use futures_util::StreamExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]  --> src/network/sync.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]  --> src/network/sync.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyPair`
[INFO] [stdout]  --> src/keygen.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ring::signature::{Ed25519KeyPair, KeyPair, UnparsedPublicKey, ED25519};
[INFO] [stdout]   |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/main.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use sha2::{Digest, Sha256};
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/blockchain/block.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         index: u32,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_path`
[INFO] [stdout]   --> src/network/p2p.rs:32:41
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub async fn start_listener(addr: &str, key_path: &str) -> anyhow::Result<()> {
[INFO] [stdout]    |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFFICULTY` is never used
[INFO] [stdout]   --> src/main.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const DIFFICULTY: usize = 2;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFFICULTY` is never used
[INFO] [stdout]   --> src/blockchain/block.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const DIFFICULTY: usize = 2;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_hash` is never used
[INFO] [stdout]   --> src/blockchain/block.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Block {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn update_hash(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_node` is never used
[INFO] [stdout]   --> src/network/p2p.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn start_node(bind_addr: &str) -> anyhow::Result<Endpoint> {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connect_to_peer` is never used
[INFO] [stdout]   --> src/network/p2p.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn connect_to_peer(endpoint: &Endpoint, peer_addr: &str) -> anyhow::Result<Connection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GossipMessage` is never used
[INFO] [stdout]   --> src/network/sync.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum GossipMessage {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConnectionCache` is never constructed
[INFO] [stdout]   --> src/network/sync.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct ConnectionCache {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `insert` are never used
[INFO] [stdout]   --> src/network/sync.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl ConnectionCache {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 36 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get(&self, id: &str) -> Option<quinn::Connection> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn insert(&self, id: String, conn: quinn::Connection) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_sync_loop` is never used
[INFO] [stdout]   --> src/network/sync.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub async fn run_sync_loop(conn: quinn::Connection) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gen_save_kp` is never used
[INFO] [stdout]   --> src/keygen.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn gen_save_kp(filepath: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         send.finish();
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/network/sync.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |         send.finish();
[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] 88 |         let _ = send.finish();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.19s
[INFO] running `Command { std: "docker" "inspect" "218495001bb13bdec0f672ceffa6e72a19622d8c43c5494e640cfef68759f7d9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "218495001bb13bdec0f672ceffa6e72a19622d8c43c5494e640cfef68759f7d9", kill_on_drop: false }`
[INFO] [stdout] 218495001bb13bdec0f672ceffa6e72a19622d8c43c5494e640cfef68759f7d9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9d1cfba5fc42a98e4edf268ef02c256ee9800fe6203973d0596de44cf786f09f
[INFO] running `Command { std: "docker" "start" "-a" "9d1cfba5fc42a98e4edf268ef02c256ee9800fe6203973d0596de44cf786f09f", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> src/blockchain/block.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]   --> src/blockchain/block.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::thread;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `gen_save_kp`, `load_kp`, and `ver_sig`
[INFO] [stderr]   --> src/blockchain/block.rs:11:21
[INFO] [stderr]    |
[INFO] [stderr] 11 | use crate::keygen::{gen_save_kp, load_kp, sign_msg, ver_sig};
[INFO] [stderr]    |                     ^^^^^^^^^^^  ^^^^^^^            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::blockchain::transaction::Transaction`
[INFO] [stderr]  --> src/blockchain/validation.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::blockchain::transaction::Transaction;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `chrono::NaiveDateTime`
[INFO] [stderr]  --> src/blockchain/validation.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use chrono::NaiveDateTime;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stderr]  --> src/blockchain/validation.rs:5:17
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stderr]   |                 ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `fmt`
[INFO] [stderr]  --> src/blockchain/validation.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::{fmt, thread};
[INFO] [stderr]   |           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rustls::ServerConfig as RustlsServerConfig`
[INFO] [stderr]  --> src/keygen.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use rustls::ServerConfig as RustlsServerConfig;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ServerConfig`
[INFO] [stderr]  --> src/network/p2p.rs:1:35
[INFO] [stderr]   |
[INFO] [stderr] 1 | use quinn::{Endpoint, Connection, ServerConfig};
[INFO] [stderr]   |                                   ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `futures::StreamExt`
[INFO] [stderr]  --> src/network/p2p.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use futures::StreamExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/network/sync.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::io::AsyncBufReadExt`
[INFO] [stderr]   --> src/network/sync.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use tokio::io::AsyncBufReadExt;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::sync::broadcast`
[INFO] [stderr]   --> src/network/sync.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use tokio::sync::broadcast;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::io::BufReader`
[INFO] [stderr]   --> src/network/sync.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use tokio::io::BufReader;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::sync::mpsc`
[INFO] [stderr]   --> src/network/sync.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use tokio::sync::mpsc;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stderr]    --> src/blockchain/block.rs:146:62
[INFO] [stderr]     |
[INFO] [stderr] 146 |         let datetime: NaiveDateTime = chrono::NaiveDateTime::from_timestamp(self.timestamp as i64, 0);
[INFO] [stderr]     |                                                              ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `KeyPair`
[INFO] [stderr]  --> src/keygen.rs:2:39
[INFO] [stderr]   |
[INFO] [stderr] 2 | use ring::signature::{Ed25519KeyPair, KeyPair, UnparsedPublicKey, ED25519};
[INFO] [stderr]   |                                       ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `futures_util::StreamExt`
[INFO] [stderr]  --> src/network/sync.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use futures_util::StreamExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AsyncReadExt`
[INFO] [stderr]  --> src/network/sync.rs:9:17
[INFO] [stderr]   |
[INFO] [stderr] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stderr]   |                 ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AsyncWriteExt`
[INFO] [stderr]  --> src/network/sync.rs:9:31
[INFO] [stderr]   |
[INFO] [stderr] 9 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stderr]   |                               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `index`
[INFO] [stderr]   --> src/blockchain/block.rs:50:9
[INFO] [stderr]    |
[INFO] [stderr] 50 |         index: u32,
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_path`
[INFO] [stderr]   --> src/network/p2p.rs:32:41
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub async fn start_listener(addr: &str, key_path: &str) -> anyhow::Result<()> {
[INFO] [stderr]    |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_path`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DIFFICULTY` is never used
[INFO] [stderr]   --> src/blockchain/block.rs:14:7
[INFO] [stderr]    |
[INFO] [stderr] 14 | const DIFFICULTY: usize = 2;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/network/sync.rs:69:9
[INFO] [stderr]    |
[INFO] [stderr] 69 |         send.finish();
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 69 |         let _ = send.finish();
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/network/sync.rs:88:9
[INFO] [stderr]    |
[INFO] [stderr] 88 |         send.finish();
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 88 |         let _ = send.finish();
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `blockchain` (lib) generated 25 warnings (run `cargo fix --lib -p blockchain` to apply 17 suggestions)
[INFO] [stderr] warning: unused import: `sync`
[INFO] [stderr]  --> src/main.rs:6:27
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::network::{p2p, sync};
[INFO] [stderr]   |                           ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `gen_save_kp`
[INFO] [stderr]  --> src/main.rs:7:14
[INFO] [stderr]   |
[INFO] [stderr] 7 | use keygen::{gen_save_kp, load_kp, sign_msg, ver_sig};
[INFO] [stderr]   |              ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Sha256`
[INFO] [stderr]  --> src/main.rs:9:20
[INFO] [stderr]   |
[INFO] [stderr] 9 | use sha2::{Digest, Sha256};
[INFO] [stderr]   |                    ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Duration`
[INFO] [stderr]   --> src/main.rs:10:17
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::time::{Duration, SystemTime, UNIX_EPOCH};
[INFO] [stderr]    |                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `anyhow::Result`
[INFO] [stderr]   --> src/main.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use anyhow::Result;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp_opt`: use `DateTime::from_timestamp` instead
[INFO] [stderr]    --> src/main.rs:102:39
[INFO] [stderr]     |
[INFO] [stderr] 102 |     let end_datetime = NaiveDateTime::from_timestamp_opt(end_timestamp as i64, 0).unwrap();
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Digest`
[INFO] [stderr]  --> src/main.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 | use sha2::{Digest, Sha256};
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DIFFICULTY` is never used
[INFO] [stderr]   --> src/main.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | const DIFFICULTY: usize = 2;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DIFFICULTY` is never used
[INFO] [stderr]   --> src/blockchain/block.rs:14:7
[INFO] [stderr]    |
[INFO] [stderr] 14 | const DIFFICULTY: usize = 2;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `update_hash` is never used
[INFO] [stderr]   --> src/blockchain/block.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 26 | impl Block {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 45 |     pub fn update_hash(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `start_node` is never used
[INFO] [stderr]   --> src/network/p2p.rs:12:14
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub async fn start_node(bind_addr: &str) -> anyhow::Result<Endpoint> {
[INFO] [stderr]    |              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `connect_to_peer` is never used
[INFO] [stderr]   --> src/network/p2p.rs:25:14
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub async fn connect_to_peer(endpoint: &Endpoint, peer_addr: &str) -> anyhow::Result<Connection> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `GossipMessage` is never used
[INFO] [stderr]   --> src/network/sync.rs:23:10
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub enum GossipMessage {
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConnectionCache` is never constructed
[INFO] [stderr]   --> src/network/sync.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub struct ConnectionCache {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `get`, and `insert` are never used
[INFO] [stderr]   --> src/network/sync.rs:36:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | impl ConnectionCache {
[INFO] [stderr]    | -------------------- associated items in this implementation
[INFO] [stderr] 36 |     pub fn new(size: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn get(&self, id: &str) -> Option<quinn::Connection> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub fn insert(&self, id: String, conn: quinn::Connection) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_sync_loop` is never used
[INFO] [stderr]   --> src/network/sync.rs:54:14
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub async fn run_sync_loop(conn: quinn::Connection) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `gen_save_kp` is never used
[INFO] [stderr]   --> src/keygen.rs:20:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub fn gen_save_kp(filepath: &str) {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::io::AsyncWriteExt`
[INFO] [stderr]  --> tests/network_test.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use tokio::io::AsyncWriteExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::io::AsyncReadExt`
[INFO] [stderr]   --> tests/network_test.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use tokio::io::AsyncReadExt;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `blockchain` (bin "blockchain") generated 41 warnings (24 duplicates) (run `cargo fix --bin "blockchain" -p blockchain` to apply 5 suggestions)
[INFO] [stderr] warning: `blockchain` (test "network_test") generated 2 warnings
[INFO] [stderr] warning: `blockchain` (bin "blockchain" test) generated 41 warnings (41 duplicates)
[INFO] [stderr] warning: `blockchain` (lib test) generated 25 warnings (25 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/blockchain-494649ad6e606c64)
[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] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/blockchain-a0e5dfdbd4adb953)
[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] [stderr]      Running unittests src/bin/quic_main.rs (/opt/rustwide/target/debug/deps/quic_main-b97594873f3ac05e)
[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] [stderr]      Running tests/network_test.rs (/opt/rustwide/target/debug/deps/network_test-de24d69f1edc54bc)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr] error: test failed, to rerun pass `--test network_test`
[INFO] [stdout] test test_quic_connection ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_quic_connection stdout ----
[INFO] [stdout] Error: timed out
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <anyhow::Error as core::convert::From<quinn_proto::connection::ConnectionError>>::from
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.97/src/backtrace.rs:27:14
[INFO] [stdout]    1: <core::result::Result<(), anyhow::Error> as core::ops::try_trait::FromResidual<core::result::Result<core::convert::Infallible, quinn_proto::connection::ConnectionError>>>::from_residual
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/result.rs:2189:27
[INFO] [stdout]    2: network_test::test_quic_connection::{closure#0}
[INFO] [stdout]              at ./tests/network_test.rs:46:20
[INFO] [stdout]    3: <core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>> as core::future::future::Future>::poll
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/future/future.rs:133:9
[INFO] [stdout]    4: <core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>> as core::future::future::Future>::poll
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/future/future.rs:133:9
[INFO] [stdout]    5: <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on::<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}::{closure#0}::{closure#0}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/scheduler/current_thread/mod.rs:733:70
[INFO] [stdout]    6: tokio::task::coop::with_budget::<core::task::poll::Poll<core::result::Result<(), anyhow::Error>>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}::{closure#0}::{closure#0}>
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/task/coop/mod.rs:167:5
[INFO] [stdout]    7: tokio::task::coop::budget::<core::task::poll::Poll<core::result::Result<(), anyhow::Error>>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}::{closure#0}::{closure#0}>
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/task/coop/mod.rs:133:5
[INFO] [stdout]    8: <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on::<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}::{closure#0}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/scheduler/current_thread/mod.rs:733:25
[INFO] [stdout]    9: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<core::result::Result<(), anyhow::Error>>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/scheduler/current_thread/mod.rs:432:19
[INFO] [stdout]   10: <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on::<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/scheduler/current_thread/mod.rs:732:44
[INFO] [stdout]   11: <tokio::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}, core::option::Option<core::result::Result<(), anyhow::Error>>>::{closure#0}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/scheduler/current_thread/mod.rs:820:68
[INFO] [stdout]   12: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}, core::option::Option<core::result::Result<(), anyhow::Error>>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<core::result::Result<(), anyhow::Error>>)>
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   13: tokio::runtime::context::set_scheduler::<(alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<core::result::Result<(), anyhow::Error>>), <tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}, core::option::Option<core::result::Result<(), anyhow::Error>>>::{closure#0}>::{closure#0}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/context.rs:180:38
[INFO] [stdout]   14: <std::thread::local::LocalKey<tokio::runtime::context::Context>>::try_with::<tokio::runtime::context::set_scheduler<(alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<core::result::Result<(), anyhow::Error>>), <tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}, core::option::Option<core::result::Result<(), anyhow::Error>>>::{closure#0}>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<core::result::Result<(), anyhow::Error>>)>
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/local.rs:513:12
[INFO] [stdout]   15: <std::thread::local::LocalKey<tokio::runtime::context::Context>>::with::<tokio::runtime::context::set_scheduler<(alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<core::result::Result<(), anyhow::Error>>), <tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}, core::option::Option<core::result::Result<(), anyhow::Error>>>::{closure#0}>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<core::result::Result<(), anyhow::Error>>)>
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/local.rs:477:20
[INFO] [stdout]   16: tokio::runtime::context::set_scheduler::<(alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<core::result::Result<(), anyhow::Error>>), <tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}, core::option::Option<core::result::Result<(), anyhow::Error>>>::{closure#0}>
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/context.rs:180:17
[INFO] [stdout]   17: <tokio::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>::{closure#0}, core::option::Option<core::result::Result<(), anyhow::Error>>>
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/scheduler/current_thread/mod.rs:820:27
[INFO] [stdout]   18: <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on::<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/scheduler/current_thread/mod.rs:720:24
[INFO] [stdout]   19: <tokio::runtime::scheduler::current_thread::CurrentThread>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>::{closure#0}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/scheduler/current_thread/mod.rs:200:33
[INFO] [stdout]   20: tokio::runtime::context::runtime::enter_runtime::<<tokio::runtime::scheduler::current_thread::CurrentThread>::block_on<core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>::{closure#0}, core::result::Result<(), anyhow::Error>>
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   21: <tokio::runtime::scheduler::current_thread::CurrentThread>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/scheduler/current_thread/mod.rs:188:9
[INFO] [stdout]   22: <tokio::runtime::runtime::Runtime>::block_on_inner::<core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/runtime.rs:368:52
[INFO] [stdout]   23: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.44.2/src/runtime/runtime.rs:342:18
[INFO] [stdout]   24: network_test::test_quic_connection
[INFO] [stdout]              at ./tests/network_test.rs:70:7
[INFO] [stdout]   25: network_test::test_quic_connection::{closure#0}
[INFO] [stdout]              at ./tests/network_test.rs:13:36
[INFO] [stdout]   26: <network_test::test_quic_connection::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   27: <fn() -> core::result::Result<(), alloc::string::String> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   28: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:663:18
[INFO] [stdout]   29: test::run_test_in_process::{closure#0}
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:74
[INFO] [stdout]   30: <core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure#0}> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   31: std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure#0}>, core::result::Result<(), alloc::string::String>>
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   32: std::panicking::catch_unwind::<core::result::Result<(), alloc::string::String>, core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure#0}>>
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   33: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure#0}>, core::result::Result<(), alloc::string::String>>
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   34: test::run_test_in_process
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:27
[INFO] [stdout]   35: test::run_test::{closure#0}
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:607:43
[INFO] [stdout]   36: test::run_test::{closure#1}
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:637:41
[INFO] [stdout]   37: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   38: std::thread::lifecycle::spawn_unchecked::<test::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   39: <core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   40: std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   41: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   42: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   43: std::thread::lifecycle::spawn_unchecked::<test::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   44: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   45: <alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output = ()> + core::marker::Send> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   46: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]              at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   47: <unknown>
[INFO] [stdout]   48: clone
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_quic_connection
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 30.11s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9d1cfba5fc42a98e4edf268ef02c256ee9800fe6203973d0596de44cf786f09f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9d1cfba5fc42a98e4edf268ef02c256ee9800fe6203973d0596de44cf786f09f", kill_on_drop: false }`
[INFO] [stdout] 9d1cfba5fc42a98e4edf268ef02c256ee9800fe6203973d0596de44cf786f09f
