github nervosnetwork/ckb v0.118.0-rc1
ckb 0.118.0-rc1 (63ae338 2024-08-19)

latest release: v0.118.0-rc2
pre-releaseone month ago

This is an RC version to preview the changes in the next release.

See details in #4598

Compatibility Table

Network Consensus Version Minimal CKB Version
dev ckb2023 since epoch 0
testnet ckb2021 since epoch 3113 v0.101.0
mainnet ckb2021 since epoch 5414 v0.103.0

Downloads

OS Arch Runtime Dependencies Package Sign
macOS x64 macOS 10.15 or above zip PGP
macOS (Portable) x64 macOS 10.15 or above zip PGP
macOS ARM64 macOS 10.15 or above zip PGP
macOS (Portable) ARM64 macOS 10.15 or above zip PGP
Linux x64 glibc, libstdc++ tarball PGP
Linux (Portable) x64 glibc, libstdc++ tarball PGP
CentOS x64 glibc, libstdc++ tarball PGP
CentOS (Portable) x64 glibc, libstdc++ tarball PGP
Windows x64 VC++ Redistributable zip PGP
Linux ARM64 glibc, libstdc++ tarball PGP

The .asc files are signatures. It is wise and more secure to check out for the files integrity.

Try the portable variants if the binaries complains about illegal instructions.

Changes since v0.117.0

Features

  • #4365: Asynchronous Block Download and Verification (@eval-exec)

    This PR introduces several enhancements to the CKB Synchronizer to reduce synchronization time
    during the initial block download (IBD) phase. Key changes include:

    1. Asynchronous Operations: The Synchronizer sliding window movement is now decoupled from the block verification process in the ChainService, allowing asynchronous handling. This improves the efficiency of block requests and verification.
    2. Changes to sync_state RPC:
      • Added tip_hash and tip_number to represent the current chain tip.
      • Added unverified_tip_hash and unverified_tip_number to track the latest received but not yet verified blocks.
      • Removed the orphan_blocks_size field.
    3. Log Format Update: The format of CKB logs has been updated, specifically changing the prefix and content of log entries to provide clearer and more structured information.

    These updates lead to a more efficient synchronization process, reducing the overall time
    required for IBD. Note that removing the orphan_blocks_size field constitutes a BREAKING CHANGE
    in the sync_state RPC.

  • #4380: New spawn with scheduler (@mohanson)

    This change is only available in the next version of CKB consensus rules.

    In this PR, we refactored the implementation of spawn. The refactored syscall API is defined as follows: https://github.com/XuJiandong/ckb-c-stdlib/blob/syscall-spawn/ckb_syscall_apis.h#L54-L68.

    Review Introduction: #4380 (comment)

    Documentation: nervosnetwork/rfcs#436

  • #4291: New script verify with ckb-vm pause (@chenyukang)

    1. Use a job queue for pending transactions waiting for verifying
    2. Multiple workers trigger the verification process by picking task from queue
    3. Verification is changed to async style
    4. Use channel to resume/suspend vm
    5. No snapshot from VM machines
    6. No Suspend state from cache
    7. All transactions from remote peer will be added into queue

Bug Fixes

  • #4562: Fix sync relayer collaboration (@driftluo)

  • #4576: Add limit to get cells (@driftluo)

    This is a breaking change to RPC. The RPC to get cells may fail when exceeding the limit.

Improvements

  • #4529: Add jsonrpc batch request limit (@chenyukang)

  • #4583: Add tx_index to TxStatus for get_transaction RPC (@eval-exec)

    This is a breaking change to the RPC.

  • #4591: VerifyQueue: re_notify other Worker when OnlySmallCycleTx received a large cycle tx (@eval-exec)

Don't miss a new ckb release

NewReleases is sending notifications on new releases.