ckb 0.118.0 (b0bde9f 2024-09-14)
Breaking Changes
RPC
- #4365 removes the
orphan_blocks_size
field in thesync_state
RPC. - #4576 adds limit to the RPC methods to get cells.
- #4583 adds
tx_index
toTxStatus
forget_transaction
RPC.
Highlights
The featured changes in the new release are:
-
Asynchronous Block Download and Verification: This enhancement improves the efficiency of block requests and verification during the initial block download (IBD) phase. It introduces asynchronous operations, changes to the sync_state RPC, and updates to the log format.
-
New spawn with scheduler: This change is only available in the next version of CKB consensus rules. It refactors the implementation of spawn and introduces a new syscall API.
-
New script verify with ckb-vm pause: This change introduces several improvements to the script verification process. It uses a job queue for pending transactions, multiple workers for verification, and changes the verification style to async. It also includes changes related to resuming/suspending the VM, removing snapshots from VM machines, and removing the "Suspend" state from cache. All transactions from remote peers will be added to the queue for verification.
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 |
See how to connect to various chains in Wiki.
Default assume valid target
- Mainnet: 0xd07c7f0fcea6e2a20a51dabbf0caae7ebff49723bcd8bac81a8b8c021a546a32
- Testnet: 0xab6f81474ccbc1cdd5f42cda7029a6f6e52fc242c3487861e8abb62b6a6ea8a9
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 |
Docker | dockerhub |
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:- 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.
- Changes to sync_state RPC:
- Added
tip_hash
andtip_number
to represent the current chain tip. - Added
unverified_tip_hash
andunverified_tip_number
to track the latest received but not yet verified blocks. - Removed the
orphan_blocks_size
field.
- Added
- 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 theorphan_blocks_size
field constitutes a BREAKING CHANGE
in thesync_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)
- Use a job queue for pending transactions waiting for verifying
- Multiple workers trigger the verification process by picking task from queue
- Verification is changed to
async
style - Use channel to resume/suspend vm
- No snapshot from VM machines
- No
Suspend
state from cache - All transactions from remote peer will be added into queue
Bug Fixes
-
#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.
-
#4612: Verify worker exit when
signal_exit
is cancelled (@chenyukang)
Improvements
-
#4529: Add jsonrpc batch request limit (@chenyukang)
-
#4583: Add
tx_index
toTxStatus
forget_transaction
RPC (@eval-exec)This is a breaking change to the RPC.
-
#4591:
VerifyQueue
: re_notify other Worker whenOnlySmallCycleTx
received a large cycle tx (@eval-exec)