Introducing ic-nix, a ready made, cross-platform, and bleeding edge dev environment!

Hello Paul, this is a neat project … we are having issues trying to get a docker to run the prebuilt aarch64 binaries on an ubuntu:latest docker running on a M1 chip … the dfx start works and launches a replica and icx-proxy nicely, but when launching even the “dfx new hello” project with a “dfx deploy” it crashes the replica and starts to “stop” and then “start” after trying to create the default identity and wallet … here is the output:


[nix-shell:~]$ cd hello/

[nix-shell:~/hello]$ dfx start --background
binding to: 127.0.0.1:43861
Oct 16 19:08:25.513 INFO ic-starter. Configuration: ValidatedConfig { replica_path: Some("/nix/store/aiz4fvbd72yl3z9abb26brjrjv6adjpx-dfx-env/bin/replica"), replica_version: "0.8.0", log_level: Warning, debug_overrides: [], cargo_bin: "cargo", cargo_opts: "", state_dir: "/home/icpipeline/hello/.dfx/state/replicated_state", http_listen_addr: 127.0.0.1:0, http_port_file: Some("/home/icpipeline/hello/.dfx/replica-configuration/replica-1.port"), metrics_addr: None, provisional_whitelist: Some(All), artifact_pool_dir: "/home/icpipeline/hello/.dfx/state/replicated_state/node-100/ic_consensus_pool", crypto_root: "/home/icpipeline/hello/.dfx/state/replicated_state/node-100/crypto", state_manager_root: "/home/icpipeline/hello/.dfx/state/replicated_state/node-100/state", registry_local_store_path: "/home/icpipeline/hello/.dfx/state/replicated_state/ic_registry_local_store", unit_delay: None, initial_notary_delay: Some(600ms), dkg_interval_length: None, detect_consensus_starvation: None, consensus_pool_backend: Some("rocksdb"), subnet_features: SubnetFeatures { canister_sandboxing: false, http_requests: false, bitcoin_testnet_feature: None, bitcoin: None }, ecdsa_keyid: Some(EcdsaKeyId { curve: Secp256k1, name: "dfx_test_key" }), subnet_type: Application, bitcoin_testnet_uds_path: None, canister_http_uds_path: None, _state_dir_holder: None }, Application: starter
Oct 16 19:08:25.513 INFO Initialize replica configuration "/home/icpipeline/hello/.dfx/state/replicated_state/ic.json5", Application: starter
Oct 16 19:08:26.128 INFO Executing "/nix/store/aiz4fvbd72yl3z9abb26brjrjv6adjpx-dfx-env/bin/replica" "--replica-version" "0.8.0" "--config-file" "/home/icpipeline/hello/.dfx/state/replicated_state/ic.json5", Application: starter
Oct 16 19:08:26.748 ERRO s:cyuno-ysfo5-vyjnf-wg5cg-slonx-45dwi-hxtvq-guekf-uzxij-7fjta-nae/n:4pp23-zpnro-pilqs-g7ocq-4w2gj-3drhv-wy3o7-2eggg-6djqd-3axuo-aae/ic_canister_http_adapter_client/ic_canister_http_adapter_client Unable to connect to the canister http adapter. No UDS path provided.
Oct 16 19:08:26.748 WARN s:cyuno-ysfo5-vyjnf-wg5cg-slonx-45dwi-hxtvq-guekf-uzxij-7fjta-nae/n:4pp23-zpnro-pilqs-g7ocq-4w2gj-3drhv-wy3o7-2eggg-6djqd-3axuo-aae/ic_p2p/advert_utils AdvertRequestBuilder::new(): advert_config = Some(GossipAdvertConfig { best_effort_percentage: 20 })
version: 0.9.0
 Oct 16 19:08:26.940 INFO Log Level: INFO
 Oct 16 19:08:26.946 INFO Starting server. Listening on http://127.0.0.1:8000/

[nix-shell:~/hello]$

[nix-shell:~/hello]$

[nix-shell:~/hello]$

[nix-shell:~/hello]$ dfx deploy
Creating the "default" identity.
WARNING: The "default" identity is not stored securely. Do not use it to control a lot of cycles/ICP.
To create a more secure identity, create and use an identity that is protected by a password using the following commands:
    dfx identity create <my-secure-identity-name> # creates a password protected identity
    dfx identity use <my-secure-identity-name> # uses this identity by default

  - generating new key at /home/icpipeline/.config/dfx/identity/default/identity.pem
Created the "default" identity.
Creating a wallet canister on the local network.
thread 'MR Batch Processor' panicked at 'called `Option::unwrap()` on a `None` value', memory_tracker/src/lib.rs:282:73
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
 Oct 16 19:08:34.996 WARN Internal Error during request:
hyper::Error(
    Io,
    Os {
        code: 104,
        kind: ConnectionReset,
        message: "Connection reset by peer",
    },
)
Error: Failed to get wallet canister caller for identity 'default' on network 'local'.
Caused by: Failed to get wallet canister caller for identity 'default' on network 'local'.
  Failed to get wallet for identity 'default' on network 'local'.
    Failed to create wallet for identity 'default' on network 'local'.
      Failed while installing wasm.
        The replica returned an HTTP Error: Http Error: status 500 Internal Server Error, content type "", content: Internal Server Error

[nix-shell:~/hello]$ Oct 16 19:08:35.158 INFO ic-starter. Configuration: ValidatedConfig { replica_path: Some("/nix/store/aiz4fvbd72yl3z9abb26brjrjv6adjpx-dfx-env/bin/replica"), replica_version: "0.8.0", log_level: Warning, debug_overrides: [], cargo_bin: "cargo", cargo_opts: "", state_dir: "/home/icpipeline/hello/.dfx/state/replicated_state", http_listen_addr: 127.0.0.1:0, http_port_file: Some("/home/icpipeline/hello/.dfx/replica-configuration/replica-1.port"), metrics_addr: None, provisional_whitelist: Some(All), artifact_pool_dir: "/home/icpipeline/hello/.dfx/state/replicated_state/node-100/ic_consensus_pool", crypto_root: "/home/icpipeline/hello/.dfx/state/replicated_state/node-100/crypto", state_manager_root: "/home/icpipeline/hello/.dfx/state/replicated_state/node-100/state", registry_local_store_path: "/home/icpipeline/hello/.dfx/state/replicated_state/ic_registry_local_store", unit_delay: None, initial_notary_delay: Some(600ms), dkg_interval_length: None, detect_consensus_starvation: None, consensus_pool_backend: Some("rocksdb"), subnet_features: SubnetFeatures { canister_sandboxing: false, http_requests: false, bitcoin_testnet_feature: None, bitcoin: None }, ecdsa_keyid: Some(EcdsaKeyId { curve: Secp256k1, name: "dfx_test_key" }), subnet_type: Application, bitcoin_testnet_uds_path: None, canister_http_uds_path: None, _state_dir_holder: None }, Application: starter
Oct 16 19:08:35.159 INFO Initialize replica configuration "/home/icpipeline/hello/.dfx/state/replicated_state/ic.json5", Application: starter
Oct 16 19:08:35.159 INFO Executing "/nix/store/aiz4fvbd72yl3z9abb26brjrjv6adjpx-dfx-env/bin/replica" "--replica-version" "0.8.0" "--config-file" "/home/icpipeline/hello/.dfx/state/replicated_state/ic.json5", Application: starter
Oct 16 19:08:35.717 ERRO s:cyuno-ysfo5-vyjnf-wg5cg-slonx-45dwi-hxtvq-guekf-uzxij-7fjta-nae/n:4pp23-zpnro-pilqs-g7ocq-4w2gj-3drhv-wy3o7-2eggg-6djqd-3axuo-aae/ic_canister_http_adapter_client/ic_canister_http_adapter_client Unable to connect to the canister http adapter. No UDS path provided.
Oct 16 19:08:35.717 WARN s:cyuno-ysfo5-vyjnf-wg5cg-slonx-45dwi-hxtvq-guekf-uzxij-7fjta-nae/n:4pp23-zpnro-pilqs-g7ocq-4w2gj-3drhv-wy3o7-2eggg-6djqd-3axuo-aae/ic_p2p/advert_utils AdvertRequestBuilder::new(): advert_config = Some(GossipAdvertConfig { best_effort_percentage: 20 })
Stopping icx-proxy...
Stopped.
version: 0.9.0
 Oct 16 19:08:35.775 INFO Log Level: INFO
 Oct 16 19:08:35.775 INFO Starting server. Listening on http://127.0.0.1:8000/
thread 'MR Batch Processor' panicked at 'called `Option::unwrap()` on a `None` value', memory_tracker/src/lib.rs:282:73
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace