[INFO] cloning repository https://github.com/pritamnikam/rust-blockchain-example
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pritamnikam/rust-blockchain-example" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-blockchain-example", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-blockchain-example'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cd064901da420b44393c9987d7129b5962adc14d
[INFO] testing pritamnikam/rust-blockchain-example against beta-2024-12-08 for beta-1.84.0-4-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-blockchain-example" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/pritamnikam/rust-blockchain-example on toolchain beta-2024-12-08
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/pritamnikam/rust-blockchain-example
[INFO] finished tweaking git repo https://github.com/pritamnikam/rust-blockchain-example
[INFO] tweaked toml for git repo https://github.com/pritamnikam/rust-blockchain-example written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/pritamnikam/rust-blockchain-example 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" "+beta-2024-12-08" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] testing pritamnikam/rust-blockchain-example against beta-2024-12-08 for beta-1.84.0-4-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-blockchain-example" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/pritamnikam/rust-blockchain-example on toolchain beta-2024-12-08
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/pritamnikam/rust-blockchain-example
[INFO] finished tweaking git repo https://github.com/pritamnikam/rust-blockchain-example
[INFO] tweaked toml for git repo https://github.com/pritamnikam/rust-blockchain-example written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/pritamnikam/rust-blockchain-example 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" "+beta-2024-12-08" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] testing pritamnikam/rust-blockchain-example against beta-2024-12-08 for beta-1.84.0-4-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-blockchain-example" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/pritamnikam/rust-blockchain-example on toolchain beta-2024-12-08
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/pritamnikam/rust-blockchain-example
[INFO] finished tweaking git repo https://github.com/pritamnikam/rust-blockchain-example
[INFO] tweaked toml for git repo https://github.com/pritamnikam/rust-blockchain-example written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/pritamnikam/rust-blockchain-example 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" "+beta-2024-12-08" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] testing pritamnikam/rust-blockchain-example against beta-2024-12-08 for beta-1.84.0-4-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-blockchain-example" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/pritamnikam/rust-blockchain-example on toolchain beta-2024-12-08
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/pritamnikam/rust-blockchain-example
[INFO] finished tweaking git repo https://github.com/pritamnikam/rust-blockchain-example
[INFO] tweaked toml for git repo https://github.com/pritamnikam/rust-blockchain-example written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/pritamnikam/rust-blockchain-example 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" "+beta-2024-12-08" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] testing pritamnikam/rust-blockchain-example against beta-2024-12-08 for beta-1.84.0-4-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-blockchain-example" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/pritamnikam/rust-blockchain-example on toolchain beta-2024-12-08
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/pritamnikam/rust-blockchain-example
[INFO] finished tweaking git repo https://github.com/pritamnikam/rust-blockchain-example
[INFO] tweaked toml for git repo https://github.com/pritamnikam/rust-blockchain-example written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/pritamnikam/rust-blockchain-example 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" "+beta-2024-12-08" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e18af59fc460d38e142c71226612ed7ae67f804f36bf9ff152f2311b70e2705e
[INFO] running `Command { std: "docker" "start" "-a" "e18af59fc460d38e142c71226612ed7ae67f804f36bf9ff152f2311b70e2705e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e18af59fc460d38e142c71226612ed7ae67f804f36bf9ff152f2311b70e2705e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e18af59fc460d38e142c71226612ed7ae67f804f36bf9ff152f2311b70e2705e", kill_on_drop: false }`
[INFO] [stdout] e18af59fc460d38e142c71226612ed7ae67f804f36bf9ff152f2311b70e2705e
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 67da38e99d98169615e12217fec55826d2870ccd7c07c0885678fd0da30fbbae
[INFO] running `Command { std: "docker" "start" "-a" "67da38e99d98169615e12217fec55826d2870ccd7c07c0885678fd0da30fbbae", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling pin-project-lite v0.2.13
[INFO] [stderr]    Compiling memchr v2.7.1
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling bitflags v2.4.2
[INFO] [stderr]    Compiling futures-io v0.3.30
[INFO] [stderr]    Compiling fastrand v2.0.1
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling log v0.4.20
[INFO] [stderr]    Compiling rustix v0.38.31
[INFO] [stderr]    Compiling anyhow v1.0.79
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling linux-raw-sys v0.4.13
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling home v0.5.9
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stderr]    Compiling bytes v1.5.0
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling unicode-segmentation v1.10.1
[INFO] [stderr]    Compiling fixedbitset v0.2.0
[INFO] [stderr]    Compiling futures-sink v0.3.30
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling multimap v0.8.3
[INFO] [stderr]    Compiling value-bag v1.7.0
[INFO] [stderr]    Compiling futures-channel v0.3.30
[INFO] [stderr]    Compiling futures-task v0.3.30
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling petgraph v0.5.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling thiserror v1.0.56
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling tempfile v3.9.0
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling block-padding v0.2.1
[INFO] [stderr]    Compiling prost-build v0.8.0
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling subtle v2.5.0
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling opaque-debug v0.3.0
[INFO] [stderr]    Compiling tinyvec v1.6.0
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling smallvec v1.13.1
[INFO] [stderr]    Compiling crunchy v0.2.2
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling spin v0.5.2
[INFO] [stderr]    Compiling cpufeatures v0.2.12
[INFO] [stderr]    Compiling unicode-bidi v0.3.15
[INFO] [stderr]    Compiling untrusted v0.7.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling instant v0.1.12
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling unicode-normalization v0.1.22
[INFO] [stderr]    Compiling serde v1.0.196
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling indexmap v2.2.2
[INFO] [stderr]    Compiling libsecp256k1-core v0.2.2
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling idna v0.5.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling toml_datetime v0.6.5
[INFO] [stderr]    Compiling winnow v0.5.37
[INFO] [stderr]    Compiling url v2.5.0
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling sha2 v0.9.9
[INFO] [stderr]    Compiling unicode-xid v0.2.4
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling pin-project-internal v0.4.30
[INFO] [stderr]    Compiling data-encoding v2.5.0
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling libsecp256k1-gen-ecmult v0.2.1
[INFO] [stderr]    Compiling libsecp256k1-gen-genmult v0.2.1
[INFO] [stderr]    Compiling crypto-mac v0.8.0
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling hmac v0.8.1
[INFO] [stderr]    Compiling libsecp256k1 v0.5.0
[INFO] [stderr]    Compiling arrayref v0.3.7
[INFO] [stderr]    Compiling base64 v0.12.3
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling thiserror-impl v1.0.56
[INFO] [stderr]    Compiling serde_derive v1.0.196
[INFO] [stderr]    Compiling prost-derive v0.8.0
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling pin-project-internal v1.1.4
[INFO] [stderr]    Compiling zeroize v1.3.0
[INFO] [stderr]    Compiling curve25519-dalek v3.2.1
[INFO] [stderr]    Compiling futures-util v0.3.30
[INFO] [stderr]    Compiling signature v1.6.4
[INFO] [stderr]    Compiling ed25519 v1.5.3
[INFO] [stderr]    Compiling prost v0.8.0
[INFO] [stderr]    Compiling pin-project v1.1.4
[INFO] [stderr]    Compiling hmac-drbg v0.3.0
[INFO] [stderr]    Compiling bs58 v0.4.0
[INFO] [stderr]    Compiling prost-types v0.8.0
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling pin-project v0.4.30
[INFO] [stderr]    Compiling asn1_der v0.7.6
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling futures-timer v3.0.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling parking v2.2.0
[INFO] [stderr]    Compiling getrandom v0.2.12
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling concurrent-queue v2.4.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling event-listener v4.0.3
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]    Compiling rustix v0.37.27
[INFO] [stderr]    Compiling multihash-derive v0.7.2
[INFO] [stderr]    Compiling event-listener-strategy v0.4.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling linux-raw-sys v0.3.8
[INFO] [stderr]    Compiling futures-executor v0.3.30
[INFO] [stderr]    Compiling asynchronous-codec v0.6.2
[INFO] [stderr]    Compiling libp2p-core v0.29.0
[INFO] [stderr]    Compiling futures v0.3.30
[INFO] [stderr]    Compiling unsigned-varint v0.7.2
[INFO] [stderr]    Compiling rw-stream-sink v0.2.1
[INFO] [stderr]    Compiling wasm-timer v0.2.5
[INFO] [stderr]    Compiling waker-fn v1.1.1
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling multistream-select v0.10.4
[INFO] [stderr]    Compiling fastrand v1.9.0
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.90
[INFO] [stderr]    Compiling futures-lite v1.13.0
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling multihash v0.14.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling async-lock v3.3.0
[INFO] [stderr]    Compiling async-lock v2.8.0
[INFO] [stderr]    Compiling futures-lite v2.2.0
[INFO] [stderr]    Compiling socket2 v0.4.10
[INFO] [stderr]    Compiling ucd-trie v0.1.6
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling pest v2.7.6
[INFO] [stderr]    Compiling async-trait v0.1.77
[INFO] [stderr]    Compiling async-task v4.7.0
[INFO] [stderr]    Compiling bumpalo v3.14.0
[INFO] [stderr]    Compiling pkg-config v0.3.29
[INFO] [stderr]    Compiling ipnet v2.9.0
[INFO] [stderr]    Compiling multiaddr v0.13.0
[INFO] [stderr]    Compiling ed25519-dalek v1.0.1
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.90
[INFO] [stderr]    Compiling piper v0.2.1
[INFO] [stderr]    Compiling async-channel v2.1.1
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling blocking v1.5.1
[INFO] [stderr]    Compiling libz-sys v1.1.15
[INFO] [stderr]    Compiling async-executor v1.8.0
[INFO] [stderr]    Compiling semver-parser v0.10.2
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.90
[INFO] [stderr]    Compiling ahash v0.7.7
[INFO] [stderr]    Compiling semver v0.11.0
[INFO] [stderr]    Compiling aho-corasick v1.1.2
[INFO] [stderr]    Compiling matches v0.1.10
[INFO] [stderr]    Compiling wasm-bindgen v0.2.90
[INFO] [stderr]    Compiling regex-syntax v0.8.2
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling match_cfg v0.1.0
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling miniz_oxide v0.7.2
[INFO] [stderr]    Compiling enum-as-inner v0.3.4
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.90
[INFO] [stderr]    Compiling hostname v0.3.1
[INFO] [stderr]    Compiling rustc_version v0.3.3
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling async-channel v1.9.0
[INFO] [stderr]    Compiling webpki v0.21.4
[INFO] [stderr]    Compiling kv-log-macro v1.0.7
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling httparse v1.8.0
[INFO] [stderr]    Compiling lru-cache v0.1.2
[INFO] [stderr]    Compiling trust-dns-proto v0.20.4
[INFO] [stderr]    Compiling flate2 v1.0.28
[INFO] [stderr]    Compiling snow v0.8.0
[INFO] [stderr]    Compiling resolv-conf v0.7.0
[INFO] [stderr]    Compiling sct v0.6.1
[INFO] [stderr]    Compiling regex-automata v0.4.5
[INFO] [stderr]    Compiling nohash-hasher v0.2.0
[INFO] [stderr]    Compiling js-sys v0.3.67
[INFO] [stderr]    Compiling rustls v0.19.1
[INFO] [stderr]    Compiling libp2p-swarm v0.30.0
[INFO] [stderr]    Compiling polling v3.3.2
[INFO] [stderr]    Compiling async-io v2.3.1
[INFO] [stderr]    Compiling trust-dns-resolver v0.20.4
[INFO] [stderr]    Compiling hashbrown v0.11.2
[INFO] [stderr]    Compiling if-watch v0.2.2
[INFO] [stderr]    Compiling libp2p-noise v0.32.0
[INFO] [stderr]    Compiling async-global-executor v2.4.1
[INFO] [stderr]    Compiling async-std v1.12.0
[INFO] [stderr]    Compiling regex v1.10.3
[INFO] [stderr]    Compiling libp2p-floodsub v0.30.0
[INFO] [stderr]    Compiling libp2p-plaintext v0.29.0
[INFO] [stderr]    Compiling libp2p-gossipsub v0.32.0
[INFO] [stderr]    Compiling libp2p-identify v0.30.0
[INFO] [stderr]    Compiling libp2p-relay v0.3.0
[INFO] [stderr]    Compiling libp2p-kad v0.31.0
[INFO] [stderr]    Compiling minicbor-derive v0.6.4
[INFO] [stderr]    Compiling tokio-macros v2.2.0
[INFO] [stderr]    Compiling sha-1 v0.9.8
[INFO] [stderr]    Compiling cipher v0.3.0
[INFO] [stderr]    Compiling mio v0.8.10
[INFO] [stderr]    Compiling socket2 v0.5.5
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling bytes v0.5.6
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling pin-project-lite v0.1.12
[INFO] [stderr]    Compiling keccak v0.1.5
[INFO] [stderr]    Compiling soketto v0.4.2
[INFO] [stderr]    Compiling quicksink v0.1.2
[INFO] [stderr]    Compiling uint v0.9.5
[INFO] [stderr]    Compiling tokio v1.36.0
[INFO] [stderr]    Compiling sha3 v0.9.1
[INFO] [stderr]    Compiling async-std-resolver v0.20.4
[INFO] [stderr]    Compiling salsa20 v0.8.1
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.40
[INFO] [stderr]    Compiling futures-rustls v0.21.1
[INFO] [stderr]    Compiling lru v0.6.6
[INFO] [stderr]    Compiling yamux v0.9.0
[INFO] [stderr]    Compiling minicbor v0.8.1
[INFO] [stderr]    Compiling webpki-roots v0.21.1
[INFO] [stderr]    Compiling dns-parser v0.8.0
[INFO] [stderr]    Compiling humantime v1.3.0
[INFO] [stderr]    Compiling cuckoofilter v0.5.0
[INFO] [stderr]    Compiling x25519-dalek v1.2.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling if-addrs v0.6.7
[INFO] [stderr]    Compiling hex_fmt v0.3.0
[INFO] [stderr]    Compiling arrayvec v0.5.2
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling parity-send-wrapper v0.1.0
[INFO] [stderr]    Compiling serde_json v1.0.113
[INFO] [stderr]    Compiling libp2p-wasm-ext v0.29.0
[INFO] [stderr]    Compiling libp2p-yamux v0.33.0
[INFO] [stderr]    Compiling env_logger v0.7.1
[INFO] [stderr]    Compiling libp2p-mdns v0.31.0
[INFO] [stderr]    Compiling libp2p-request-response v0.12.0
[INFO] [stderr]    Compiling libp2p-websocket v0.30.0
[INFO] [stderr]    Compiling libp2p-dns v0.29.0
[INFO] [stderr]    Compiling libp2p-pnet v0.21.0
[INFO] [stderr]    Compiling libp2p-uds v0.29.0
[INFO] [stderr]    Compiling libp2p-ping v0.30.0
[INFO] [stderr]    Compiling libp2p-deflate v0.29.0
[INFO] [stderr]    Compiling libp2p-mplex v0.29.0
[INFO] [stderr]    Compiling libp2p-swarm-derive v0.24.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.60
[INFO] [stderr]    Compiling ryu v1.0.16
[INFO] [stderr]    Compiling atomic v0.5.3
[INFO] [stderr]    Compiling itoa v1.0.10
[INFO] [stderr]    Compiling chrono v0.4.33
[INFO] [stderr]    Compiling pretty_env_logger v0.4.0
[INFO] [stderr]    Compiling libp2p-tcp v0.29.0
[INFO] [stderr]    Compiling libp2p v0.39.1
[INFO] [stderr]    Compiling rust-blockchain-example v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     /// We create a JSON-representation of our block data using the current nonce and
[INFO] [stdout] 66 | |     /// put it through sha2‘s SHA256 hasher, returning a Vec<u8>.
[INFO] [stdout]    | |_________________________________________________________________^
[INFO] [stdout] 67 | /     let data = serde_json::json!({
[INFO] [stdout] 68 | |         "id": id,
[INFO] [stdout] 69 | |         "previous_hash": previous_hash,
[INFO] [stdout] 70 | |         "data": data,
[INFO] [stdout] 71 | |         "timestamp": timestamp,
[INFO] [stdout] 72 | |         "nonce": nonce
[INFO] [stdout] 73 | |     });
[INFO] [stdout]    | |_______- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:259:5
[INFO] [stdout]     |
[INFO] [stdout] 259 |       /// We start an endless loop and use Tokio’s select! macro to race multiple async functions.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |       /// 
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |       /// The first event emitter is our buffered reader, which will give us input lines from the user.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |       /// If we get one, we create an EventType::Input with the line.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:263:5
[INFO] [stdout]     |
[INFO] [stdout] 263 |       /// 
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |       /// Then, we listen to the response channel and the init channel, creating their events respectively.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:265:5
[INFO] [stdout]     |
[INFO] [stdout] 265 |       /// 
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |       /// And if events come in on the swarm itself, this means they are events that are neither handled
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:267:5
[INFO] [stdout]     |
[INFO] [stdout] 267 |       /// by our Mdns behavior nor our FloodSub behavior and we just log them. They’re mostly noise,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 268 |       /// such as connection/disconnection in our case, but helpful for debugging.
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |       /// such as connection/disconnection in our case, but helpful for debugging.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:289:9
[INFO] [stdout]     |
[INFO] [stdout] 289 |           /// With the corresponding events created (or no event created), we go about handling them.
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 290 | /         if let Some(event) = evt {
[INFO] [stdout] 291 | |             match event {
[INFO] [stdout] 292 | |                 /// For our Init event, we call genesis() on our app, creating our genesis block.
[INFO] [stdout] 293 | |                 /// If we’re connected to nodes, we trigger a LocalChainRequest to the last one in the list.
[INFO] [stdout] ...   |
[INFO] [stdout] 336 | |             }
[INFO] [stdout] 337 | |         }
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:292:17
[INFO] [stdout]     |
[INFO] [stdout] 292 | /                 /// For our Init event, we call genesis() on our app, creating our genesis block.
[INFO] [stdout] 293 | |                 /// If we’re connected to nodes, we trigger a LocalChainRequest to the last one in the list.
[INFO] [stdout]     | |____________________________________________________________________________________________________________^
[INFO] [stdout] 294 | /                 p2p::EventType::Init => {
[INFO] [stdout] 295 | |                     let peers = p2p::get_list_peers(&swarm);
[INFO] [stdout] 296 | |                     swarm.behaviour_mut().app.genesis();
[INFO] [stdout] ...   |
[INFO] [stdout] 313 | |                     }
[INFO] [stdout] 314 | |                 }
[INFO] [stdout]     | |_________________- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:316:17
[INFO] [stdout]     |
[INFO] [stdout] 316 |                   /// if we get a LocalChainResponse event, that means something was sent on the response channel.
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 317 | /                 p2p::EventType::LocalChainResponse(resp) => {
[INFO] [stdout] 318 | |                     let json = serde_json::to_string(&resp).expect("can jsonify response");
[INFO] [stdout] 319 | |                     swarm
[INFO] [stdout] 320 | |                         .behaviour_mut()
[INFO] [stdout] 321 | |                         .floodsub
[INFO] [stdout] 322 | |                         .publish(p2p::CHAIN_TOPIC.clone(), json.as_bytes());
[INFO] [stdout] 323 | |                 }
[INFO] [stdout]     | |_________________- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:325:17
[INFO] [stdout]     |
[INFO] [stdout] 325 | /                 /// Finally, for user input, we have three commands:
[INFO] [stdout] 326 | |                 ///
[INFO] [stdout] 327 | |                 /// ls p lists all peers
[INFO] [stdout] 328 | |                 /// ls c prints the local blockchain
[INFO] [stdout] 329 | |                 /// create b $data creates a new block with $data as it’s string content
[INFO] [stdout]     | |________________________________________________________________________________________^
[INFO] [stdout] 330 | /                 p2p::EventType::Input(line) => match line.as_str() {
[INFO] [stdout] 331 | |                     "ls p" => p2p::handle_print_peers(&swarm),
[INFO] [stdout] 332 | |                     cmd if cmd.starts_with("ls c") => p2p::handle_print_chain(&swarm),
[INFO] [stdout] 333 | |                     cmd if cmd.starts_with("create b") => p2p::handle_create_block(cmd, &mut swarm),
[INFO] [stdout] 334 | |                     _ => error!("unknown command"),
[INFO] [stdout] 335 | |                 },
[INFO] [stdout]     | |_________________- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `init_sender` is never read
[INFO] [stdout]   --> src/p2p.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct AppBehaviour {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub init_sender: mpsc::UnboundedSender<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 41s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: snow v0.8.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "67da38e99d98169615e12217fec55826d2870ccd7c07c0885678fd0da30fbbae", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "67da38e99d98169615e12217fec55826d2870ccd7c07c0885678fd0da30fbbae", kill_on_drop: false }`
[INFO] [stdout] 67da38e99d98169615e12217fec55826d2870ccd7c07c0885678fd0da30fbbae
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ddc44a628d4e5c171975a58f3be11e9ca92bee05fcee0e826b1b0a0a46e7d68b
[INFO] running `Command { std: "docker" "start" "-a" "ddc44a628d4e5c171975a58f3be11e9ca92bee05fcee0e826b1b0a0a46e7d68b", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust-blockchain-example v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     /// We create a JSON-representation of our block data using the current nonce and
[INFO] [stdout] 66 | |     /// put it through sha2‘s SHA256 hasher, returning a Vec<u8>.
[INFO] [stdout]    | |_________________________________________________________________^
[INFO] [stdout] 67 | /     let data = serde_json::json!({
[INFO] [stdout] 68 | |         "id": id,
[INFO] [stdout] 69 | |         "previous_hash": previous_hash,
[INFO] [stdout] 70 | |         "data": data,
[INFO] [stdout] 71 | |         "timestamp": timestamp,
[INFO] [stdout] 72 | |         "nonce": nonce
[INFO] [stdout] 73 | |     });
[INFO] [stdout]    | |_______- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:259:5
[INFO] [stdout]     |
[INFO] [stdout] 259 |       /// We start an endless loop and use Tokio’s select! macro to race multiple async functions.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |       /// 
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |       /// The first event emitter is our buffered reader, which will give us input lines from the user.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |       /// If we get one, we create an EventType::Input with the line.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:263:5
[INFO] [stdout]     |
[INFO] [stdout] 263 |       /// 
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |       /// Then, we listen to the response channel and the init channel, creating their events respectively.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:265:5
[INFO] [stdout]     |
[INFO] [stdout] 265 |       /// 
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |       /// And if events come in on the swarm itself, this means they are events that are neither handled
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:267:5
[INFO] [stdout]     |
[INFO] [stdout] 267 |       /// by our Mdns behavior nor our FloodSub behavior and we just log them. They’re mostly noise,
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 268 |       /// such as connection/disconnection in our case, but helpful for debugging.
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |       /// such as connection/disconnection in our case, but helpful for debugging.
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 269 | /     loop {
[INFO] [stdout] 270 | |         let evt = {
[INFO] [stdout] 271 | |             select! {
[INFO] [stdout] ...   |
[INFO] [stdout] 337 | |         }
[INFO] [stdout] 338 | |     }
[INFO] [stdout]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:289:9
[INFO] [stdout]     |
[INFO] [stdout] 289 |           /// With the corresponding events created (or no event created), we go about handling them.
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 290 | /         if let Some(event) = evt {
[INFO] [stdout] 291 | |             match event {
[INFO] [stdout] 292 | |                 /// For our Init event, we call genesis() on our app, creating our genesis block.
[INFO] [stdout] 293 | |                 /// If we’re connected to nodes, we trigger a LocalChainRequest to the last one in the list.
[INFO] [stdout] ...   |
[INFO] [stdout] 336 | |             }
[INFO] [stdout] 337 | |         }
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:292:17
[INFO] [stdout]     |
[INFO] [stdout] 292 | /                 /// For our Init event, we call genesis() on our app, creating our genesis block.
[INFO] [stdout] 293 | |                 /// If we’re connected to nodes, we trigger a LocalChainRequest to the last one in the list.
[INFO] [stdout]     | |____________________________________________________________________________________________________________^
[INFO] [stdout] 294 | /                 p2p::EventType::Init => {
[INFO] [stdout] 295 | |                     let peers = p2p::get_list_peers(&swarm);
[INFO] [stdout] 296 | |                     swarm.behaviour_mut().app.genesis();
[INFO] [stdout] ...   |
[INFO] [stdout] 313 | |                     }
[INFO] [stdout] 314 | |                 }
[INFO] [stdout]     | |_________________- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:316:17
[INFO] [stdout]     |
[INFO] [stdout] 316 |                   /// if we get a LocalChainResponse event, that means something was sent on the response channel.
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 317 | /                 p2p::EventType::LocalChainResponse(resp) => {
[INFO] [stdout] 318 | |                     let json = serde_json::to_string(&resp).expect("can jsonify response");
[INFO] [stdout] 319 | |                     swarm
[INFO] [stdout] 320 | |                         .behaviour_mut()
[INFO] [stdout] 321 | |                         .floodsub
[INFO] [stdout] 322 | |                         .publish(p2p::CHAIN_TOPIC.clone(), json.as_bytes());
[INFO] [stdout] 323 | |                 }
[INFO] [stdout]     | |_________________- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/main.rs:325:17
[INFO] [stdout]     |
[INFO] [stdout] 325 | /                 /// Finally, for user input, we have three commands:
[INFO] [stdout] 326 | |                 ///
[INFO] [stdout] 327 | |                 /// ls p lists all peers
[INFO] [stdout] 328 | |                 /// ls c prints the local blockchain
[INFO] [stdout] 329 | |                 /// create b $data creates a new block with $data as it’s string content
[INFO] [stdout]     | |________________________________________________________________________________________^
[INFO] [stdout] 330 | /                 p2p::EventType::Input(line) => match line.as_str() {
[INFO] [stdout] 331 | |                     "ls p" => p2p::handle_print_peers(&swarm),
[INFO] [stdout] 332 | |                     cmd if cmd.starts_with("ls c") => p2p::handle_print_chain(&swarm),
[INFO] [stdout] 333 | |                     cmd if cmd.starts_with("create b") => p2p::handle_create_block(cmd, &mut swarm),
[INFO] [stdout] 334 | |                     _ => error!("unknown command"),
[INFO] [stdout] 335 | |                 },
[INFO] [stdout]     | |_________________- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `init_sender` is never read
[INFO] [stdout]   --> src/p2p.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct AppBehaviour {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub init_sender: mpsc::UnboundedSender<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.27s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: snow v0.8.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "ddc44a628d4e5c171975a58f3be11e9ca92bee05fcee0e826b1b0a0a46e7d68b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ddc44a628d4e5c171975a58f3be11e9ca92bee05fcee0e826b1b0a0a46e7d68b", kill_on_drop: false }`
[INFO] [stdout] ddc44a628d4e5c171975a58f3be11e9ca92bee05fcee0e826b1b0a0a46e7d68b
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] df32843aa6891315ba6b7a0f2ca663914b48a276a4580b9410a7a9d2280b40ac
[INFO] running `Command { std: "docker" "start" "-a" "df32843aa6891315ba6b7a0f2ca663914b48a276a4580b9410a7a9d2280b40ac", kill_on_drop: false }`
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/main.rs:65:5
[INFO] [stderr]    |
[INFO] [stderr] 65 | /     /// We create a JSON-representation of our block data using the current nonce and
[INFO] [stderr] 66 | |     /// put it through sha2‘s SHA256 hasher, returning a Vec<u8>.
[INFO] [stderr]    | |_________________________________________________________________^
[INFO] [stderr] 67 | /     let data = serde_json::json!({
[INFO] [stderr] 68 | |         "id": id,
[INFO] [stderr] 69 | |         "previous_hash": previous_hash,
[INFO] [stderr] 70 | |         "data": data,
[INFO] [stderr] 71 | |         "timestamp": timestamp,
[INFO] [stderr] 72 | |         "nonce": nonce
[INFO] [stderr] 73 | |     });
[INFO] [stderr]    | |_______- rustdoc does not generate documentation for statements
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `//` for a plain comment
[INFO] [stderr]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:259:5
[INFO] [stderr]     |
[INFO] [stderr] 259 |       /// We start an endless loop and use Tokio’s select! macro to race multiple async functions.
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 269 | /     loop {
[INFO] [stderr] 270 | |         let evt = {
[INFO] [stderr] 271 | |             select! {
[INFO] [stderr] ...   |
[INFO] [stderr] 337 | |         }
[INFO] [stderr] 338 | |     }
[INFO] [stderr]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:260:5
[INFO] [stderr]     |
[INFO] [stderr] 260 |       /// 
[INFO] [stderr]     |       ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 269 | /     loop {
[INFO] [stderr] 270 | |         let evt = {
[INFO] [stderr] 271 | |             select! {
[INFO] [stderr] ...   |
[INFO] [stderr] 337 | |         }
[INFO] [stderr] 338 | |     }
[INFO] [stderr]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:261:5
[INFO] [stderr]     |
[INFO] [stderr] 261 |       /// The first event emitter is our buffered reader, which will give us input lines from the user.
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 269 | /     loop {
[INFO] [stderr] 270 | |         let evt = {
[INFO] [stderr] 271 | |             select! {
[INFO] [stderr] ...   |
[INFO] [stderr] 337 | |         }
[INFO] [stderr] 338 | |     }
[INFO] [stderr]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:262:5
[INFO] [stderr]     |
[INFO] [stderr] 262 |       /// If we get one, we create an EventType::Input with the line.
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 269 | /     loop {
[INFO] [stderr] 270 | |         let evt = {
[INFO] [stderr] 271 | |             select! {
[INFO] [stderr] ...   |
[INFO] [stderr] 337 | |         }
[INFO] [stderr] 338 | |     }
[INFO] [stderr]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:263:5
[INFO] [stderr]     |
[INFO] [stderr] 263 |       /// 
[INFO] [stderr]     |       ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 269 | /     loop {
[INFO] [stderr] 270 | |         let evt = {
[INFO] [stderr] 271 | |             select! {
[INFO] [stderr] ...   |
[INFO] [stderr] 337 | |         }
[INFO] [stderr] 338 | |     }
[INFO] [stderr]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:264:5
[INFO] [stderr]     |
[INFO] [stderr] 264 |       /// Then, we listen to the response channel and the init channel, creating their events respectively.
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 269 | /     loop {
[INFO] [stderr] 270 | |         let evt = {
[INFO] [stderr] 271 | |             select! {
[INFO] [stderr] ...   |
[INFO] [stderr] 337 | |         }
[INFO] [stderr] 338 | |     }
[INFO] [stderr]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:265:5
[INFO] [stderr]     |
[INFO] [stderr] 265 |       /// 
[INFO] [stderr]     |       ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 269 | /     loop {
[INFO] [stderr] 270 | |         let evt = {
[INFO] [stderr] 271 | |             select! {
[INFO] [stderr] ...   |
[INFO] [stderr] 337 | |         }
[INFO] [stderr] 338 | |     }
[INFO] [stderr]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:266:5
[INFO] [stderr]     |
[INFO] [stderr] 266 |       /// And if events come in on the swarm itself, this means they are events that are neither handled
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 269 | /     loop {
[INFO] [stderr] 270 | |         let evt = {
[INFO] [stderr] 271 | |             select! {
[INFO] [stderr] ...   |
[INFO] [stderr] 337 | |         }
[INFO] [stderr] 338 | |     }
[INFO] [stderr]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:267:5
[INFO] [stderr]     |
[INFO] [stderr] 267 |       /// by our Mdns behavior nor our FloodSub behavior and we just log them. They’re mostly noise,
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 268 |       /// such as connection/disconnection in our case, but helpful for debugging.
[INFO] [stderr] 269 | /     loop {
[INFO] [stderr] 270 | |         let evt = {
[INFO] [stderr] 271 | |             select! {
[INFO] [stderr] ...   |
[INFO] [stderr] 337 | |         }
[INFO] [stderr] 338 | |     }
[INFO] [stderr]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:268:5
[INFO] [stderr]     |
[INFO] [stderr] 268 |       /// such as connection/disconnection in our case, but helpful for debugging.
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 269 | /     loop {
[INFO] [stderr] 270 | |         let evt = {
[INFO] [stderr] 271 | |             select! {
[INFO] [stderr] ...   |
[INFO] [stderr] 337 | |         }
[INFO] [stderr] 338 | |     }
[INFO] [stderr]     | |_____- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:289:9
[INFO] [stderr]     |
[INFO] [stderr] 289 |           /// With the corresponding events created (or no event created), we go about handling them.
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 290 | /         if let Some(event) = evt {
[INFO] [stderr] 291 | |             match event {
[INFO] [stderr] 292 | |                 /// For our Init event, we call genesis() on our app, creating our genesis block.
[INFO] [stderr] 293 | |                 /// If we’re connected to nodes, we trigger a LocalChainRequest to the last one in the list.
[INFO] [stderr] ...   |
[INFO] [stderr] 336 | |             }
[INFO] [stderr] 337 | |         }
[INFO] [stderr]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:292:17
[INFO] [stderr]     |
[INFO] [stderr] 292 | /                 /// For our Init event, we call genesis() on our app, creating our genesis block.
[INFO] [stderr] 293 | |                 /// If we’re connected to nodes, we trigger a LocalChainRequest to the last one in the list.
[INFO] [stderr]     | |____________________________________________________________________________________________________________^
[INFO] [stderr] 294 | /                 p2p::EventType::Init => {
[INFO] [stderr] 295 | |                     let peers = p2p::get_list_peers(&swarm);
[INFO] [stderr] 296 | |                     swarm.behaviour_mut().app.genesis();
[INFO] [stderr] ...   |
[INFO] [stderr] 313 | |                     }
[INFO] [stderr] 314 | |                 }
[INFO] [stderr]     | |_________________- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:316:17
[INFO] [stderr]     |
[INFO] [stderr] 316 |                   /// if we get a LocalChainResponse event, that means something was sent on the response channel.
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 317 | /                 p2p::EventType::LocalChainResponse(resp) => {
[INFO] [stderr] 318 | |                     let json = serde_json::to_string(&resp).expect("can jsonify response");
[INFO] [stderr] 319 | |                     swarm
[INFO] [stderr] 320 | |                         .behaviour_mut()
[INFO] [stderr] 321 | |                         .floodsub
[INFO] [stderr] 322 | |                         .publish(p2p::CHAIN_TOPIC.clone(), json.as_bytes());
[INFO] [stderr] 323 | |                 }
[INFO] [stderr]     | |_________________- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/main.rs:325:17
[INFO] [stderr]     |
[INFO] [stderr] 325 | /                 /// Finally, for user input, we have three commands:
[INFO] [stderr] 326 | |                 ///
[INFO] [stderr] 327 | |                 /// ls p lists all peers
[INFO] [stderr] 328 | |                 /// ls c prints the local blockchain
[INFO] [stderr] 329 | |                 /// create b $data creates a new block with $data as it’s string content
[INFO] [stderr]     | |________________________________________________________________________________________^
[INFO] [stderr] 330 | /                 p2p::EventType::Input(line) => match line.as_str() {
[INFO] [stderr] 331 | |                     "ls p" => p2p::handle_print_peers(&swarm),
[INFO] [stderr] 332 | |                     cmd if cmd.starts_with("ls c") => p2p::handle_print_chain(&swarm),
[INFO] [stderr] 333 | |                     cmd if cmd.starts_with("create b") => p2p::handle_create_block(cmd, &mut swarm),
[INFO] [stderr] 334 | |                     _ => error!("unknown command"),
[INFO] [stderr] 335 | |                 },
[INFO] [stderr]     | |_________________- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: field `init_sender` is never read
[INFO] [stderr]   --> src/p2p.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub struct AppBehaviour {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub init_sender: mpsc::UnboundedSender<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `rust-blockchain-example` (bin "rust-blockchain-example" test) generated 16 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.42s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: snow v0.8.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_blockchain_example-9d0f3af5490626c0)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "df32843aa6891315ba6b7a0f2ca663914b48a276a4580b9410a7a9d2280b40ac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "df32843aa6891315ba6b7a0f2ca663914b48a276a4580b9410a7a9d2280b40ac", kill_on_drop: false }`
[INFO] [stdout] df32843aa6891315ba6b7a0f2ca663914b48a276a4580b9410a7a9d2280b40ac
