[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] checking pritamnikam/rust-blockchain-example against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-blockchain-example" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[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-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pritamnikam/rust-blockchain-example on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_derive v1.0.196
[INFO] [stderr]   Downloaded value-bag v1.7.0
[INFO] [stderr]   Downloaded pretty_env_logger v0.4.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.40
[INFO] [stderr]   Downloaded libp2p-dns v0.29.0
[INFO] [stderr]   Downloaded libp2p-tcp v0.29.0
[INFO] [stderr]   Downloaded libp2p-swarm-derive v0.24.0
[INFO] [stderr]   Downloaded enum-as-inner v0.3.4
[INFO] [stderr]   Downloaded minicbor-derive v0.6.4
[INFO] [stderr]   Downloaded salsa20 v0.8.1
[INFO] [stderr]   Downloaded if-addrs v0.6.7
[INFO] [stderr]   Downloaded piper v0.2.1
[INFO] [stderr]   Downloaded async-executor v1.8.0
[INFO] [stderr]   Downloaded libp2p-mplex v0.29.0
[INFO] [stderr]   Downloaded libp2p-deflate v0.29.0
[INFO] [stderr]   Downloaded libp2p-floodsub v0.30.0
[INFO] [stderr]   Downloaded ghash v0.4.4
[INFO] [stderr]   Downloaded async-channel v2.1.1
[INFO] [stderr]   Downloaded async-global-executor v2.4.1
[INFO] [stderr]   Downloaded libp2p-noise v0.32.0
[INFO] [stderr]   Downloaded atomic v0.5.3
[INFO] [stderr]   Downloaded smallvec v1.13.1
[INFO] [stderr]   Downloaded async-trait v0.1.77
[INFO] [stderr]   Downloaded ctr v0.7.0
[INFO] [stderr]   Downloaded futures-lite v2.2.0
[INFO] [stderr]   Downloaded libp2p-swarm v0.30.0
[INFO] [stderr]   Downloaded blake2 v0.9.2
[INFO] [stderr]   Downloaded polling v3.3.2
[INFO] [stderr]   Downloaded trust-dns-resolver v0.20.4
[INFO] [stderr]   Downloaded pest v2.7.6
[INFO] [stderr]   Downloaded unicode-segmentation v1.10.1
[INFO] [stderr]   Downloaded libp2p-gossipsub v0.32.0
[INFO] [stderr]   Downloaded aes-gcm v0.9.2
[INFO] [stderr]   Downloaded winnow v0.5.37
[INFO] [stderr]   Downloaded serde_json v1.0.113
[INFO] [stderr]   Downloaded x25519-dalek v1.2.0
[INFO] [stderr]   Downloaded async-std v1.12.0
[INFO] [stderr]   Downloaded chrono v0.4.33
[INFO] [stderr]   Downloaded trust-dns-proto v0.20.4
[INFO] [stderr]   Downloaded libp2p-core v0.29.0
[INFO] [stderr]   Downloaded libp2p-kad v0.31.0
[INFO] [stderr]   Downloaded chacha20poly1305 v0.8.2
[INFO] [stderr]   Downloaded indexmap v2.2.2
[INFO] [stderr]   Downloaded event-listener v4.0.3
[INFO] [stderr]   Downloaded async-task v4.7.0
[INFO] [stderr]   Downloaded async-lock v3.3.0
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.19
[INFO] [stderr]   Downloaded pin-project v0.4.30
[INFO] [stderr]   Downloaded pin-project v1.1.4
[INFO] [stderr]   Downloaded chacha20 v0.7.3
[INFO] [stderr]   Downloaded libp2p-relay v0.3.0
[INFO] [stderr]   Downloaded libp2p-request-response v0.12.0
[INFO] [stderr]   Downloaded async-io v2.3.1
[INFO] [stderr]   Downloaded asn1_der v0.7.6
[INFO] [stderr]   Downloaded synstructure v0.12.6
[INFO] [stderr]   Downloaded regex-automata v0.4.5
[INFO] [stderr]   Downloaded snow v0.8.0
[INFO] [stderr]   Downloaded multihash v0.14.0
[INFO] [stderr]   Downloaded multiaddr v0.13.0
[INFO] [stderr]   Downloaded serde v1.0.196
[INFO] [stderr]   Downloaded web-sys v0.3.67
[INFO] [stderr]   Downloaded event-listener-strategy v0.4.0
[INFO] [stderr]   Downloaded blocking v1.5.1
[INFO] [stderr]   Downloaded libsecp256k1 v0.5.0
[INFO] [stderr]   Downloaded multistream-select v0.10.4
[INFO] [stderr]   Downloaded prost v0.8.0
[INFO] [stderr]   Downloaded prost-types v0.8.0
[INFO] [stderr]   Downloaded pin-project-internal v0.4.30
[INFO] [stderr]   Downloaded pin-project-internal v1.1.4
[INFO] [stderr]   Downloaded libp2p-mdns v0.31.0
[INFO] [stderr]   Downloaded libp2p-ping v0.30.0
[INFO] [stderr]   Downloaded concurrent-queue v2.4.0
[INFO] [stderr]   Downloaded libp2p-wasm-ext v0.29.0
[INFO] [stderr]   Downloaded libp2p-websocket v0.30.0
[INFO] [stderr]   Downloaded prost-derive v0.8.0
[INFO] [stderr]   Downloaded asynchronous-codec v0.6.2
[INFO] [stderr]   Downloaded waker-fn v1.1.1
[INFO] [stderr]   Downloaded async-std-resolver v0.20.4
[INFO] [stderr]   Downloaded libp2p-pnet v0.21.0
[INFO] [stderr]   Downloaded lru v0.6.6
[INFO] [stderr]   Downloaded poly1305 v0.7.2
[INFO] [stderr]   Downloaded libp2p-plaintext v0.29.0
[INFO] [stderr]   Downloaded unsigned-varint v0.7.2
[INFO] [stderr]   Downloaded libp2p-yamux v0.33.0
[INFO] [stderr]   Downloaded libp2p v0.39.1
[INFO] [stderr]   Downloaded libp2p-uds v0.29.0
[INFO] [stderr]   Downloaded libp2p-identify v0.30.0
[INFO] [stderr]   Downloaded sha-1 v0.9.8
[INFO] [stderr]   Downloaded libz-sys v1.1.15
[INFO] [stderr]   Downloaded prost-build v0.8.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6c809e33faa0cef1d15e19f9077a97bfa98b5a4ca86800adba8399df96b6b6d3
[INFO] running `Command { std: "docker" "start" "-a" "6c809e33faa0cef1d15e19f9077a97bfa98b5a4ca86800adba8399df96b6b6d3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6c809e33faa0cef1d15e19f9077a97bfa98b5a4ca86800adba8399df96b6b6d3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6c809e33faa0cef1d15e19f9077a97bfa98b5a4ca86800adba8399df96b6b6d3", kill_on_drop: false }`
[INFO] [stdout] 6c809e33faa0cef1d15e19f9077a97bfa98b5a4ca86800adba8399df96b6b6d3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 63751d4e219ad57c8de26d2494e402a9ddb1e0bc73e94fc6af0df61189dfc403
[INFO] running `Command { std: "docker" "start" "-a" "63751d4e219ad57c8de26d2494e402a9ddb1e0bc73e94fc6af0df61189dfc403", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling anyhow v1.0.79
[INFO] [stderr]    Compiling log v0.4.20
[INFO] [stderr]    Compiling rustix v0.38.31
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling bitflags v2.4.2
[INFO] [stderr]    Compiling linux-raw-sys v0.4.13
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling home v0.5.9
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling bytes v1.5.0
[INFO] [stderr]    Compiling fastrand v2.0.1
[INFO] [stderr]     Checking futures-sink v0.3.30
[INFO] [stderr]    Compiling fixedbitset v0.2.0
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling unicode-segmentation v1.10.1
[INFO] [stderr]     Checking value-bag v1.7.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling multimap v0.8.3
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]     Checking block-padding v0.2.1
[INFO] [stderr]     Checking opaque-debug v0.3.0
[INFO] [stderr]     Checking subtle v2.5.0
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling crunchy v0.2.2
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]     Checking unicode-normalization v0.1.22
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]     Checking unicode-bidi v0.3.15
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]     Checking spin v0.5.2
[INFO] [stderr]     Checking untrusted v0.7.1
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stderr]    Compiling serde v1.0.196
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling winnow v0.5.37
[INFO] [stderr]    Compiling toml_datetime v0.6.5
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]    Compiling petgraph v0.5.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]    Compiling libsecp256k1-core v0.2.2
[INFO] [stderr]    Compiling unicode-xid v0.2.4
[INFO] [stderr]    Compiling pin-project-internal v0.4.30
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking crypto-mac v0.8.0
[INFO] [stderr]    Compiling indexmap v2.2.2
[INFO] [stderr]     Checking arrayref v0.3.7
[INFO] [stderr]     Checking signature v1.6.4
[INFO] [stderr]     Checking hmac v0.8.1
[INFO] [stderr]     Checking base64 v0.12.3
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking bs58 v0.4.0
[INFO] [stderr]     Checking ed25519 v1.5.3
[INFO] [stderr]     Checking hmac-drbg v0.3.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]     Checking asn1_der v0.7.6
[INFO] [stderr]     Checking futures-timer v3.0.2
[INFO] [stderr]    Compiling libsecp256k1-gen-genmult v0.2.1
[INFO] [stderr]    Compiling libsecp256k1-gen-ecmult v0.2.1
[INFO] [stderr]     Checking parking v2.2.0
[INFO] [stderr]     Checking url v2.5.0
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling libsecp256k1 v0.5.0
[INFO] [stderr]    Compiling rustix v0.37.27
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]     Checking waker-fn v1.1.1
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.90
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking futures-lite v2.2.0
[INFO] [stderr]     Checking concurrent-queue v2.4.0
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]     Checking event-listener v4.0.3
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]    Compiling ucd-trie v0.1.6
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]    Compiling memchr v2.7.1
[INFO] [stderr]     Checking event-listener-strategy v0.4.0
[INFO] [stderr]    Compiling async-trait v0.1.77
[INFO] [stderr]     Checking async-lock v3.3.0
[INFO] [stderr]     Checking ipnet v2.9.0
[INFO] [stderr]    Compiling bumpalo v3.14.0
[INFO] [stderr]     Checking async-task v4.7.0
[INFO] [stderr]     Checking piper v0.2.1
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling tempfile v3.9.0
[INFO] [stderr]    Compiling libz-sys v1.1.15
[INFO] [stderr]     Checking async-channel v2.1.1
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking blocking v1.5.1
[INFO] [stderr]     Checking async-executor v1.8.0
[INFO] [stderr]    Compiling ahash v0.7.7
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]    Compiling prost-build v0.8.0
[INFO] [stderr]     Checking matches v0.1.10
[INFO] [stderr]     Checking match_cfg v0.1.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.90
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking hostname v0.3.1
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking kv-log-macro v1.0.7
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]     Checking resolv-conf v0.7.0
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]     Checking mio v0.8.10
[INFO] [stderr]     Checking socket2 v0.5.5
[INFO] [stderr]     Checking sha-1 v0.9.8
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]     Checking pin-project-lite v0.1.12
[INFO] [stderr]     Checking sha3 v0.9.1
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking salsa20 v0.8.1
[INFO] [stderr]     Checking quicksink v0.1.2
[INFO] [stderr]     Checking uint v0.9.5
[INFO] [stderr]     Checking dns-parser v0.8.0
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking cuckoofilter v0.5.0
[INFO] [stderr]     Checking if-addrs v0.6.7
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking parity-send-wrapper v0.1.0
[INFO] [stderr]    Compiling serde_json v1.0.113
[INFO] [stderr]     Checking hex_fmt v0.3.0
[INFO] [stderr]     Checking atomic v0.5.3
[INFO] [stderr]     Checking iana-time-zone v0.1.60
[INFO] [stderr]     Checking lru v0.6.6
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]     Checking chrono v0.4.33
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.90
[INFO] [stderr]     Checking webpki v0.21.4
[INFO] [stderr]     Checking sct v0.6.1
[INFO] [stderr]     Checking rustls v0.19.1
[INFO] [stderr]     Checking webpki-roots v0.21.1
[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 zeroize_derive v1.4.2
[INFO] [stderr]    Compiling pin-project-internal v1.1.4
[INFO] [stderr]    Compiling tokio-macros v2.2.0
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]     Checking if-watch v0.2.2
[INFO] [stderr]     Checking polling v3.3.2
[INFO] [stderr]     Checking zeroize v1.3.0
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.90
[INFO] [stderr]     Checking curve25519-dalek v3.2.1
[INFO] [stderr]     Checking tokio v1.36.0
[INFO] [stderr]     Checking async-io v2.3.1
[INFO] [stderr]     Checking async-global-executor v2.4.1
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking async-std v1.12.0
[INFO] [stderr]     Checking thiserror v1.0.56
[INFO] [stderr]    Compiling pest v2.7.6
[INFO] [stderr]     Checking futures-rustls v0.21.1
[INFO] [stderr]     Checking x25519-dalek v1.2.0
[INFO] [stderr]     Checking pin-project v1.1.4
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.90
[INFO] [stderr]    Compiling prost-derive v0.8.0
[INFO] [stderr]    Compiling multihash-derive v0.7.2
[INFO] [stderr]    Compiling enum-as-inner v0.3.4
[INFO] [stderr]    Compiling minicbor-derive v0.6.4
[INFO] [stderr]    Compiling libp2p-swarm-derive v0.24.0
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]     Checking js-sys v0.3.67
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking minicbor v0.8.1
[INFO] [stderr]     Checking pretty_env_logger v0.4.0
[INFO] [stderr]     Checking pin-project v0.4.30
[INFO] [stderr]    Compiling prost v0.8.0
[INFO] [stderr]    Compiling semver-parser v0.10.2
[INFO] [stderr]    Compiling prost-types v0.8.0
[INFO] [stderr]    Compiling semver v0.11.0
[INFO] [stderr]    Compiling rustc_version v0.3.3
[INFO] [stderr]    Compiling snow v0.8.0
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking asynchronous-codec v0.6.2
[INFO] [stderr]     Checking trust-dns-proto v0.20.4
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking unsigned-varint v0.7.2
[INFO] [stderr]     Checking rw-stream-sink v0.2.1
[INFO] [stderr]     Checking wasm-timer v0.2.5
[INFO] [stderr]     Checking soketto v0.4.2
[INFO] [stderr]     Checking yamux v0.9.0
[INFO] [stderr]     Checking libp2p-pnet v0.21.0
[INFO] [stderr]     Checking multihash v0.14.0
[INFO] [stderr]     Checking multistream-select v0.10.4
[INFO] [stderr]    Compiling libp2p-core v0.29.0
[INFO] [stderr]    Compiling libp2p-gossipsub v0.32.0
[INFO] [stderr]    Compiling libp2p-plaintext v0.29.0
[INFO] [stderr]    Compiling libp2p-relay v0.3.0
[INFO] [stderr]    Compiling libp2p-floodsub v0.30.0
[INFO] [stderr]    Compiling libp2p-identify v0.30.0
[INFO] [stderr]    Compiling libp2p-noise v0.32.0
[INFO] [stderr]    Compiling libp2p-kad v0.31.0
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.40
[INFO] [stderr]     Checking multiaddr v0.13.0
[INFO] [stderr]     Checking ed25519-dalek v1.0.1
[INFO] [stderr]     Checking trust-dns-resolver v0.20.4
[INFO] [stderr]     Checking async-std-resolver v0.20.4
[INFO] [stderr]     Checking libp2p-swarm v0.30.0
[INFO] [stderr]     Checking libp2p-websocket v0.30.0
[INFO] [stderr]     Checking libp2p-deflate v0.29.0
[INFO] [stderr]     Checking libp2p-mplex v0.29.0
[INFO] [stderr]     Checking libp2p-tcp v0.29.0
[INFO] [stderr]     Checking libp2p-yamux v0.33.0
[INFO] [stderr]     Checking libp2p-uds v0.29.0
[INFO] [stderr]     Checking libp2p-dns v0.29.0
[INFO] [stderr]     Checking libp2p-wasm-ext v0.29.0
[INFO] [stderr]     Checking libp2p-request-response v0.12.0
[INFO] [stderr]     Checking libp2p-ping v0.30.0
[INFO] [stderr]     Checking libp2p-mdns v0.31.0
[INFO] [stderr]     Checking libp2p v0.39.1
[INFO] [stderr]     Checking 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)]` (part of `#[warn(unused)]`) 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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: 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)]` (part of `#[warn(unused)]`) 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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)]` (part of `#[warn(unused)]`) on by default
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 15s
[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" "63751d4e219ad57c8de26d2494e402a9ddb1e0bc73e94fc6af0df61189dfc403", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "63751d4e219ad57c8de26d2494e402a9ddb1e0bc73e94fc6af0df61189dfc403", kill_on_drop: false }`
[INFO] [stdout] 63751d4e219ad57c8de26d2494e402a9ddb1e0bc73e94fc6af0df61189dfc403
