There are lots of exciting new features and bugfixes. Here is a more complete list of changes:
* Consensus: Fix to avoid purging initial dealings
* Consensus: Populate ECDSA summary in genesis CUP
* Consensus: Remove LMDB version test
* Crypto: Remove ThresholdSigVerifier<CatchUpContent> from CryptoComponentForVerificationOnly
* Crypto: Adapt CSP-APIs to propagate potential RPC errors
* Crypto: Adjusting config of ic-crypto-csp binary
* Crypto: Test parallelization of CSP vault calls
* Execution: Add bitcoin_get_utxos endpoint to management canister
* Execution: Add idle consumption rate to canister status
* Execution: Add the `bitcoin_get_balance` endpoint to the management canister
* Execution: Bitcoin: Support for syncing bitcoin mainnet
* Execution: Restore instruction limit for install_code messages on verified subnets
* Execution: Use new heartbeat code
* Message Routing: read_state: allow fetching full routing table
* Message Routing: Bump `CURRENT_CERTIFICATION_VERSION` to `V9`
* Message Routing: Speed up `CanisterQueues::has_input()`
* Message Routing: Speed up `induct_messages_on_same_subnet()`
* Message Routing: Speed up handling of untouched canisters
* Networking: Canister http client setup
* Networking: Explicitly pass the tokio runtime instead of assuming the call context is within it
* Networking: Make regedit main async
* Networking: Make the Response type of NonBlockingChannel an associated type
* Networking: Move the LocalStore in its own crate
* Node: Fix SELinux context of /etc/machine-id on first boot
* Node: Install 'zstd' package to support archives with Zstandard (zstd) compression
* Node: Policy issues for manageboot
* Runtime: Limit ECDSA signature queue size
* Runtime: Move xnet msg checks to routing
* Various bug fixes and test updates
And a complete list of changes can of course be found on github.
Please reply to this message if you have any questions or comments.
Execution: Add idle consumption rate to canister status
Execution: Use new heartbeat code
These sounds really interesting. Any chance you can explain what they do? I’m not sure I understand what “idle consumption rate” and “new heartbeat code” refer to.
Networking: Canister http client setup
Is this for the feature that allows canisters to make external HTTP requests?
Yes. This is related to that feature that allows canisters to make outgoing HTTP requests. But there is more work that needs to come into the feature before it becomes generally available.
@levi Thanks so much for reporting a mismatch. Let’s try to get to the bottom of it.
We tested it on 4 independent machines at DFINITY for this release, but I’m now retrying on a completely new (clean) machine that I personally own, at my home.
Can you please try to rebuild with these commands, to avoid possible issues with some stale data:
These sounds really interesting. Any chance you can explain what they do? I’m not sure I understand what “idle consumption rate” and “new heartbeat code” refer to.
Execution: Add idle consumption rate to canister status
The idle consumption rate in this commit refers to the idle rate consumption of resources that the canister is using, and it could be used to compute the freezing threshold in cycles.
Execution: Use new heartbeat code
The second change refers to a refactoring needed for deterministic time slicing, which is a work in progress.
@levi, thank you for providing this information. The differences on Fedora happen due to Btrfs filesystem. I’ve compared the image I get from Fedora 36 with default configuration and I got the same SHA cryptographic digest as you and the differences seen on the images showed that the directories have different hard link count. Btrfs is differnt with that by design.
We will take note of this and improve our utility script. Until then, please verify the build on Ubuntu 20.04 machine. You can do so using one of the public cloud providers and feeding the following cloud-config:
Thank you again for providing this information, we will improve our validation utility script and instructions so this doesn’t happen again. Please let me know if this doesn’t clear your doubts or concerns or if you have any questions about it.
@marko thanks for looking into this. I’ll try to verify the build on ubuntu using a bootable usb on my machine.
I’ll keep an eye out for the build to match on Fedora.
Hi @levi. I’m sharing the snippet with which you can see I got the same SHA digest on Fedora 36 as you did and with which you can see the exact differences that happen due to Btrfs.
$ mkdir /tmp/b90edb9897718730f65e92eb4ff6057b1b25f766
$ cd /tmp/b90edb9897718730f65e92eb4ff6057b1b25f766
$ mkdir ubuntu fedora
$
$ curl -sS https://download.dfinity.systems/ic/b90edb9897718730f65e92eb4ff6057b1b25f766/guest-os/update-img/update-img.tar.gz -o ubuntu/update-img.tar.gz
$ curl -sS https://download.dfinity.systems/ic/fedora36/b90edb9897718730f65e92eb4ff6057b1b25f766/guest-os/update-img/update-img.tar.gz -o fedora/update-img.tar.gz
$ sha256sum */update-img.tar.gz
303926f3d814c084dd92e8c2f26a2513c26f2395796dce4187b59c6da185df20 fedora/update-img.tar.gz
50b59237df70d50b77af06b8c6737585cb5490b276a81d3797e6310a11c6fbd1 ubuntu/update-img.tar.gz
$
$ curl -sS https://download.dfinity.systems/ic/fedora36/b90edb9897718730f65e92eb4ff6057b1b25f766/guest-os/update-img/boot.diff -O
$ curl -sS https://download.dfinity.systems/ic/fedora36/b90edb9897718730f65e92eb4ff6057b1b25f766/guest-os/update-img/root.diff -O
$ # you can inspect the diff that we can see with diffoscope (upper diff is produced by commands below)
$ (cd fedora; tar -xzf update-img.tar.gz)
$ (cd ubuntu; tar -xzf update-img.tar.gz)
$ sudo diffoscope ubuntu/boot.img fedora/boot.img
$ sudo diffoscope ubuntu/root.img fedora/root.img
Oops, this was supposed to be a DM…my apologies.
Hey Levi. I just wanted to reach out again to see if we could discuss replica version management proposal topics.
Do you review them on a regular basis? If so, do you publicly share your voting neuron ID? I be happy to promote your work in my communications for the CodeGov project. I think it’s important for many people and organizations to participate in these reviews.
If you have any interest in participating in these reviews with the CodeGov project, then please let me know. It would be awesome to have you on our team of reviewers. The commitment is very flexible.
However, my main interest is just learning who in the IC ecosystem is making any type of effort to review code changes and to encourage more of it. I would love to chat with you more about this topic.