[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 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpritamnikam%2Frust-blockchain-example" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-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-5-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-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 1f26285ab3c1efddc8d36491adf38e4e90ea124bbf009d57ad8dd1ff0f7c585f [INFO] running `Command { std: "docker" "start" "-a" "1f26285ab3c1efddc8d36491adf38e4e90ea124bbf009d57ad8dd1ff0f7c585f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1f26285ab3c1efddc8d36491adf38e4e90ea124bbf009d57ad8dd1ff0f7c585f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1f26285ab3c1efddc8d36491adf38e4e90ea124bbf009d57ad8dd1ff0f7c585f", kill_on_drop: false }` [INFO] [stdout] 1f26285ab3c1efddc8d36491adf38e4e90ea124bbf009d57ad8dd1ff0f7c585f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 71b3c5ebda092697740c39f63c2acd341179cbe7070bd45333dcbd64b6718aaf [INFO] running `Command { std: "docker" "start" "-a" "71b3c5ebda092697740c39f63c2acd341179cbe7070bd45333dcbd64b6718aaf", 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 memchr v2.7.1 [INFO] [stderr] Compiling pin-project-lite v0.2.13 [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 log v0.4.20 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling rustix v0.38.31 [INFO] [stderr] Compiling anyhow v1.0.79 [INFO] [stderr] Compiling linux-raw-sys v0.4.13 [INFO] [stderr] Compiling home v0.5.9 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling bytes v1.5.0 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling fixedbitset v0.2.0 [INFO] [stderr] Compiling unicode-segmentation v1.10.1 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling futures-sink v0.3.30 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling value-bag v1.7.0 [INFO] [stderr] Compiling multimap v0.8.3 [INFO] [stderr] Compiling futures-channel v0.3.30 [INFO] [stderr] Compiling futures-task v0.3.30 [INFO] [stderr] Compiling ppv-lite86 v0.2.17 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Compiling thiserror v1.0.56 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling block-padding v0.2.1 [INFO] [stderr] Compiling subtle v2.5.0 [INFO] [stderr] Compiling opaque-debug v0.3.0 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling crunchy v0.2.2 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Compiling tinyvec v1.6.0 [INFO] [stderr] Compiling smallvec v1.13.1 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Compiling spin v0.5.2 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Compiling num_cpus v1.16.0 [INFO] [stderr] Compiling unicode-bidi v0.3.15 [INFO] [stderr] Compiling syn v2.0.48 [INFO] [stderr] Compiling cpufeatures v0.2.12 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling untrusted v0.7.1 [INFO] [stderr] Compiling parking_lot_core v0.8.6 [INFO] [stderr] Compiling byteorder v1.5.0 [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 percent-encoding v2.3.1 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Compiling serde v1.0.196 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling unicode-normalization v0.1.22 [INFO] [stderr] Compiling petgraph v0.5.1 [INFO] [stderr] Compiling hashbrown v0.14.3 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling digest v0.9.0 [INFO] [stderr] Compiling block-buffer v0.9.0 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Compiling libsecp256k1-core v0.2.2 [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 parking_lot v0.11.2 [INFO] [stderr] Compiling sha2 v0.9.9 [INFO] [stderr] Compiling idna v0.5.0 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling data-encoding v2.5.0 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling tempfile v3.9.0 [INFO] [stderr] Compiling url v2.5.0 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Compiling indexmap v2.2.2 [INFO] [stderr] Compiling prost-build v0.8.0 [INFO] [stderr] Compiling unicode-xid v0.2.4 [INFO] [stderr] Compiling pin-project-internal v0.4.30 [INFO] [stderr] Compiling crypto-mac v0.8.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling base64 v0.12.3 [INFO] [stderr] Compiling arrayref v0.3.7 [INFO] [stderr] Compiling hmac v0.8.1 [INFO] [stderr] Compiling signature v1.6.4 [INFO] [stderr] Compiling libsecp256k1-gen-genmult v0.2.1 [INFO] [stderr] Compiling libsecp256k1-gen-ecmult v0.2.1 [INFO] [stderr] Compiling ed25519 v1.5.3 [INFO] [stderr] Compiling hmac-drbg v0.3.0 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling bs58 v0.4.0 [INFO] [stderr] Compiling futures-timer v3.0.2 [INFO] [stderr] Compiling crossbeam-utils v0.8.19 [INFO] [stderr] Compiling asn1_der v0.7.6 [INFO] [stderr] Compiling void v1.0.2 [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 libsecp256k1 v0.5.0 [INFO] [stderr] Compiling polling v2.8.0 [INFO] [stderr] Compiling event-listener v2.5.3 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling rustix v0.37.27 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling async-io v1.13.0 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling linux-raw-sys v0.3.8 [INFO] [stderr] Compiling waker-fn v1.1.1 [INFO] [stderr] Compiling fastrand v1.9.0 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.90 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling concurrent-queue v2.4.0 [INFO] [stderr] Compiling futures-lite v1.13.0 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling async-lock v2.8.0 [INFO] [stderr] Compiling futures-lite v2.2.0 [INFO] [stderr] Compiling event-listener v4.0.3 [INFO] [stderr] Compiling socket2 v0.4.10 [INFO] [stderr] Compiling ucd-trie v0.1.6 [INFO] [stderr] Compiling event-listener-strategy v0.4.0 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling async-lock v3.3.0 [INFO] [stderr] Compiling bumpalo v3.14.0 [INFO] [stderr] Compiling ipnet v2.9.0 [INFO] [stderr] Compiling pkg-config v0.3.29 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Compiling async-trait v0.1.77 [INFO] [stderr] Compiling async-task v4.7.0 [INFO] [stderr] Compiling atomic-waker v1.1.2 [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 async-executor v1.8.0 [INFO] [stderr] Compiling aho-corasick v1.1.2 [INFO] [stderr] Compiling ahash v0.7.7 [INFO] [stderr] Compiling blocking v1.5.1 [INFO] [stderr] Compiling match_cfg v0.1.0 [INFO] [stderr] Compiling regex-syntax v0.8.2 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling matches v0.1.10 [INFO] [stderr] Compiling wasm-bindgen v0.2.90 [INFO] [stderr] Compiling adler v1.0.2 [INFO] [stderr] Compiling idna v0.2.3 [INFO] [stderr] Compiling miniz_oxide v0.7.2 [INFO] [stderr] Compiling hostname v0.3.1 [INFO] [stderr] Compiling libz-sys v1.1.15 [INFO] [stderr] Compiling async-channel v1.9.0 [INFO] [stderr] Compiling kv-log-macro v1.0.7 [INFO] [stderr] Compiling base64 v0.13.1 [INFO] [stderr] Compiling httparse v1.8.0 [INFO] [stderr] Compiling linked-hash-map v0.5.6 [INFO] [stderr] Compiling resolv-conf v0.7.0 [INFO] [stderr] Compiling lru-cache v0.1.2 [INFO] [stderr] Compiling nohash-hasher v0.2.0 [INFO] [stderr] Compiling sha-1 v0.9.8 [INFO] [stderr] Compiling hashbrown v0.11.2 [INFO] [stderr] Compiling cipher v0.3.0 [INFO] [stderr] Compiling socket2 v0.5.5 [INFO] [stderr] Compiling mio v0.8.10 [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Compiling flate2 v1.0.28 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.90 [INFO] [stderr] Compiling webpki v0.21.4 [INFO] [stderr] Compiling sct v0.6.1 [INFO] [stderr] Compiling pin-project-lite v0.1.12 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling bytes v0.5.6 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Compiling keccak v0.1.5 [INFO] [stderr] Compiling if-watch v0.2.2 [INFO] [stderr] Compiling quicksink v0.1.2 [INFO] [stderr] Compiling rustls v0.19.1 [INFO] [stderr] Compiling webpki-roots v0.21.1 [INFO] [stderr] Compiling uint v0.9.5 [INFO] [stderr] Compiling sha3 v0.9.1 [INFO] [stderr] Compiling lru v0.6.6 [INFO] [stderr] Compiling regex-automata v0.4.5 [INFO] [stderr] Compiling salsa20 v0.8.1 [INFO] [stderr] Compiling dns-parser v0.8.0 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.90 [INFO] [stderr] Compiling humantime v1.3.0 [INFO] [stderr] Compiling cuckoofilter v0.5.0 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling if-addrs v0.6.7 [INFO] [stderr] Compiling arrayvec v0.5.2 [INFO] [stderr] Compiling hex_fmt v0.3.0 [INFO] [stderr] Compiling serde_json v1.0.113 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling parity-send-wrapper v0.1.0 [INFO] [stderr] Compiling ryu v1.0.16 [INFO] [stderr] Compiling itoa v1.0.10 [INFO] [stderr] Compiling atomic v0.5.3 [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] Compiling iana-time-zone v0.1.60 [INFO] [stderr] Compiling chrono v0.4.33 [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 wasm-bindgen-macro v0.2.90 [INFO] [stderr] Compiling polling v3.3.2 [INFO] [stderr] Compiling prost v0.8.0 [INFO] [stderr] Compiling zeroize v1.3.0 [INFO] [stderr] Compiling pin-project v0.4.30 [INFO] [stderr] Compiling prost-types v0.8.0 [INFO] [stderr] Compiling async-io v2.3.1 [INFO] [stderr] Compiling curve25519-dalek v3.2.1 [INFO] [stderr] Compiling regex v1.10.3 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling futures-rustls v0.21.1 [INFO] [stderr] Compiling async-global-executor v2.4.1 [INFO] [stderr] Compiling js-sys v0.3.67 [INFO] [stderr] Compiling minicbor v0.8.1 [INFO] [stderr] Compiling env_logger v0.7.1 [INFO] [stderr] Compiling pin-project v1.1.4 [INFO] [stderr] Compiling async-std v1.12.0 [INFO] [stderr] Compiling pest v2.7.6 [INFO] [stderr] Compiling x25519-dalek v1.2.0 [INFO] [stderr] Compiling pretty_env_logger v0.4.0 [INFO] [stderr] Compiling tokio v1.36.0 [INFO] [stderr] Compiling libp2p-core v0.29.0 [INFO] [stderr] Compiling libp2p-relay v0.3.0 [INFO] [stderr] Compiling libp2p-noise v0.32.0 [INFO] [stderr] Compiling libp2p-identify v0.30.0 [INFO] [stderr] Compiling libp2p-floodsub v0.30.0 [INFO] [stderr] Compiling libp2p-plaintext v0.29.0 [INFO] [stderr] Compiling libp2p-kad v0.31.0 [INFO] [stderr] Compiling libp2p-gossipsub v0.32.0 [INFO] [stderr] Compiling semver-parser v0.10.2 [INFO] [stderr] Compiling semver v0.11.0 [INFO] [stderr] Compiling rustc_version v0.3.3 [INFO] [stderr] Compiling snow v0.8.0 [INFO] [stderr] Compiling futures-executor v0.3.30 [INFO] [stderr] Compiling asynchronous-codec v0.6.2 [INFO] [stderr] Compiling trust-dns-proto v0.20.4 [INFO] [stderr] Compiling futures v0.3.30 [INFO] [stderr] Compiling rw-stream-sink v0.2.1 [INFO] [stderr] Compiling wasm-timer v0.2.5 [INFO] [stderr] Compiling soketto v0.4.2 [INFO] [stderr] Compiling yamux v0.9.0 [INFO] [stderr] Compiling libp2p-pnet v0.21.0 [INFO] [stderr] Compiling unsigned-varint v0.7.2 [INFO] [stderr] Compiling multihash v0.14.0 [INFO] [stderr] Compiling multistream-select v0.10.4 [INFO] [stderr] Compiling wasm-bindgen-futures v0.4.40 [INFO] [stderr] Compiling trust-dns-resolver v0.20.4 [INFO] [stderr] Compiling multiaddr v0.13.0 [INFO] [stderr] Compiling ed25519-dalek v1.0.1 [INFO] [stderr] Compiling async-std-resolver v0.20.4 [INFO] [stderr] Compiling libp2p-swarm v0.30.0 [INFO] [stderr] Compiling libp2p-dns v0.29.0 [INFO] [stderr] Compiling libp2p-websocket v0.30.0 [INFO] [stderr] Compiling libp2p-wasm-ext v0.29.0 [INFO] [stderr] Compiling libp2p-uds v0.29.0 [INFO] [stderr] Compiling libp2p-yamux v0.33.0 [INFO] [stderr] Compiling libp2p-deflate v0.29.0 [INFO] [stderr] Compiling libp2p-tcp v0.29.0 [INFO] [stderr] Compiling libp2p-mplex v0.29.0 [INFO] [stderr] Compiling libp2p-ping v0.30.0 [INFO] [stderr] Compiling libp2p-request-response v0.12.0 [INFO] [stderr] Compiling libp2p-mdns v0.31.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. [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, [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 2m 12s [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" "71b3c5ebda092697740c39f63c2acd341179cbe7070bd45333dcbd64b6718aaf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "71b3c5ebda092697740c39f63c2acd341179cbe7070bd45333dcbd64b6718aaf", kill_on_drop: false }` [INFO] [stdout] 71b3c5ebda092697740c39f63c2acd341179cbe7070bd45333dcbd64b6718aaf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 7063d14ae3500c0d626c80500aeb1dc9d33ca1a324245b8b848eee5a63b3b27d [INFO] running `Command { std: "docker" "start" "-a" "7063d14ae3500c0d626c80500aeb1dc9d33ca1a324245b8b848eee5a63b3b27d", 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. [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, [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.19s [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" "7063d14ae3500c0d626c80500aeb1dc9d33ca1a324245b8b848eee5a63b3b27d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7063d14ae3500c0d626c80500aeb1dc9d33ca1a324245b8b848eee5a63b3b27d", kill_on_drop: false }` [INFO] [stdout] 7063d14ae3500c0d626c80500aeb1dc9d33ca1a324245b8b848eee5a63b3b27d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] e8b11865dce44f235cc12a4200af697f74080b7df97e7346d3edc34269143bff [INFO] running `Command { std: "docker" "start" "-a" "e8b11865dce44f235cc12a4200af697f74080b7df97e7346d3edc34269143bff", 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. [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, [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.36s [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" "e8b11865dce44f235cc12a4200af697f74080b7df97e7346d3edc34269143bff", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e8b11865dce44f235cc12a4200af697f74080b7df97e7346d3edc34269143bff", kill_on_drop: false }` [INFO] [stdout] e8b11865dce44f235cc12a4200af697f74080b7df97e7346d3edc34269143bff