Proposal to elect new release rc--2024-11-14_03-07

proposal - 134185

Vote: ADOPT

Reason:

I successfully built and verified the guest image. All the commits matched their description. Important changes in regard to 64-bit WebAssembly in this release.

Hash Match: MATCH

2 Urls: MATCH

Feedback:

Proposer Check: MATCH

Overall Summary:

This proposal enables the deployment of 64-bit WebAssembly applications on the Internet Computer’s mainnet.

Introduces new metrics to measure how long messages take in canister ingress queues, which is crucial for optimizing canister performance.

Improve fuzz testing, this proposal increases the robustness and security of the codebase by allowing for better detection of bugs or vulnerabilities in Rust components before they reach production.

Commits Summary

675edd43b
After observing prev setting for ACCEPTABLE_FINALIZATION_CERTIFICATION_GAP behaved as expected the number go lowered from 2 to 1.

c8cfedb4e
New metrics added to IngressHistoryWriterImpl struct.

Three new histograms are added to measure message processing durations: from block inclusion to ingress queue, from creation to execution start, and from induction to execution.

9c2d3939f
Enables wasm64 to mainnet. Ship it!

72cf10cba
Tracking and aggregation of per-canister ingress queue latencies. A new CanisterIngressQueueLatencies struct calculates and observes message processing latencies.

set_status returns the previous ingress status wrapped in Arc<IngressStatus>, enabling tracking and efficient sharing of state transitions for latency measurement.

5d68669c9
SubnetInfo method in the management canister interface, allowing canisters to query details about their subnet, including the replica version.

44ab9f36f
Enhance fuzz testing capabilities for Rust binaries. A new allow_main parameter enables fuzzers to export a main function when needed, and logic was added to conditionally link the appropriate LLVM fuzzer runtime libraries based on this parameter.

123cf77ac
Enables canister backtraces on trap.

f96077d44
Reworks the ic-boundary CLI by regrouping and renaming commands, moving HTTP client/server functionality to ic-bn-lib, and transitioning to environment variable-based configuration like ic-gateway. Shedding is enabled for API boundary nodes, and size limits for governance and ledger canisters were increased to address dependency-related growth.

ed45bab1d
The PageMap and Storage components now support lazy loading, allowing for deferred initialization of storage structures to optimize memory and performance. This includes a new lazy_load method and checks for whether storage is loaded.

The checkpointing logic has been updated to include validation of storage overlays before marking checkpoints as verified. This ensures data integrity by validating all related files during checkpoint operations.

4e83be165
Rename and convert several configuration fields (e.g., nns_public_key_exists, use_ssh_authorized_keys, inject_ic_crypto) to booleans for clarity and efficiency. New fields, such as hostname and generate_ic_boundary_tls_cert, are added to GuestOSDevSettings to support testing and creating testnets with API boundary nodes. The configuration system now includes a config_version field, unit tests for versioning, a protocol for updates, and the decoupling of domain_name from ipv4_config.

b477d5932
Updated BASE_IMAGE with most recent image.

32d152815
Removes the retry logic with exponential backoff and associated exception handling.

01d3b177a
New package dante-server.

c582bfe2c
Updated BASE_IMAGE with most recent image.

bda7e8c90
recv_stream is dropped before any interaction with the send_stream on the receiving side. It also updates log statements to use debug formatting ({:?}), providing clearer insights into error causes. These changes enhance reliability and debugging clarity in the QuicTransport module.

e500f911f
ResetStreamOnDrop guard to replace the previous SendStreamDropGuard, ensuring QUIC streams reset properly on drop. Functions like read_request and write_response have been renamed to to_request and to_response_bytes for better alignment with their purpose, with minimal or no changes to their core logic.

c578a156b
Removes the addition of the peer_id as an extension to the RPC response, as it is unnecessary since the caller already knows the peer_id.

e5faeaaf7
interactive-install and interactive-debug modes for SetupOS, enabling automatic installation with reboot or interactive debugging without installation, streamlining testing and debugging workflows. Disk image handling is optimized by replacing tarballing with direct copying. Outdated launch-* targets are removed, HostOS and GuestOS installation processes are accelerated, and documentation is updated to guide developers in interactive SetupOS usage.

9c1e7fe78
Matches description of timestamp is regenerated whenever a new branch is checked out.

47a2a110a
Matches description of fix permissions for nftables and systemd-journald

fc375b15a
This is a revert of commit that introduced Move bootloader off dockerhub. Commit c582bfe2cc97e2dc2d49a55d050dd452dda9dbfc

896cafb19
Replacing the current RequestId structure, which includes PseudoRandomId and PreSigId, with the CallbackId directly. Compatibility with vet KD requests that lack PseudoRandomId or PreSigId.

6034537f7
Adds a validation step to distinguish between Ingress and Request calls for the NodeMetricsHistory method, explicitly rejecting unexpected Ingress calls.

Addresses potential vulnerability where malicious nodes could exploit this behavior.

3f7fcb995
Doesn’t pass wasm enabled arg to declare_variable.

7452471b7
Restructures and enhances the fuzzer execution. Dedicated fuzzer_sandbox module. This ensures a cleaner organization of fuzzer-related code.

If the intention was different or further technical details were observed, let me know for further refinement!

8b01b687e
Matches description of upgrading core crates.

b1c0f8ccc
Update multiple Rust dependencies to newer versions, including borsh, borsh-derive, rust_decimal, toml_datetime, and introducing new dependencies like cfg_aliases, once_cell, and winnow.

073f73166
Remove TODOS

2d68a2e31
observe_conn_error, observe_read_error, and observe_write_error to encapsulate error classification and increment metrics

into_request_bytes and to_response for handling request serialization and response deserialization.

3f1716678
Refactors the ConnectionHandle struct in the QUIC transport implementation for improved encapsulation and thread-safe connection ID management. Replaces the manual connection ID counter with a static AtomicU64 for generating unique connection IDs in a thread-safe manner.

4bd76d3bc
Refactoring of the ConnectionHandle struct to make the conn_id and metrics fields public and simplify their initialization. The RPC method documentation was updated to clarify its behavior and emphasize the transient nature of errors in the context of QUIC transport.

8b2932783
Add more logging HSM successfully detected.

7990ce66d
Update base image refs.

d7cac1965
Replaces the return type of get_ingress_status from an owned IngressStatus to a borrowed &IngressStatus, optimizing memory usage by avoiding unnecessary cloning.

3c3d9cd36
Migrates ECDSA and related cryptographic types (such as Schnorr and VetKd keys) from registry.crypto.v1 to a new module types.v1, resulting in a namespace shift across multiple Protobuf and Rust files. It replaces all references to these types, ensuring compatibility by updating imports and fields in generated Protobuf code and associated implementations.

da0106cac
Replace generate-replica-config.sh script with generate-ic-config.sh to centralize and standardize the generation of the ic.json5 configuration file. New service dependencies, such as generate-ic-config.service, are introduced to align with the updated configuration flow.

ae957017c
The HasId<NiDkgTag> trait for NiDkgTranscript ensures that the NiDkgTag can be derived directly from NiDkgTranscript, making the tag field in pb::TaggedNiDkgTranscript redundant.

3e0cf89b2
Replaces the build-time dependency include_bytes!("universal-canister.wasm.gz") with a runtime approach that reads the universal canister WASM file via the get_universal_canister_wasm() function. This aligns with treating the universal canister like other canisters, as described in the commit.

3ad26ca77
Refactors tests related to the cycles minting canister, improving clarity and modularity for validating operations like canister creation and top-ups. Dependencies and configurations are updated to support the reorganized tests.

proposal - 134186

Vote: ADOPT

Reason:

I successfully built and verified the guest image.

Hash Match: MATCH

2 Urls: MATCH

Feedback: NONE

Proposer Check: MATCH

e1e8a810e
ENABLE HASHES_IN_BLOCKS_FEATURE_ENABLED

proposal - 134187

Vote: ADOPT

Reason:

I successfully built and verified the guest image.

Hash Match: MATCH

2 Urls: MATCH

Feedback: NONE

Proposer Check: MATCH

34e659ec3
Update base images and kernel to 6.11

proposal - 134188

Vote: ADOPT

Reason:

I successfully built and verified the guest image.

Hash Match: MATCH

2 Urls: MATCH

Feedback: NONE

Proposer Check: MATCH

34e659ec3
Revert commit for feat: Upgrade GuestOS to 24.04.

Adjustments included aligning services like node_exporter with appropriate systemd targets and streamlining SELinux policies by removing redundant permissions.

1 Like