Releases: nervosnetwork/ckb
ckb 0.118.0 (b0bde9f 2024-09-14)
Breaking Changes
RPC
- #4365 removes the
orphan_blocks_sizefield in thesync_stateRPC. - #4576 adds limit to the RPC methods to get cells.
- #4583 adds
tx_indextoTxStatusforget_transactionRPC.
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_hashandtip_numberto represent the current chain tip. - Added
unverified_tip_hashandunverified_tip_numberto track the latest received but not yet verified blocks. - Removed the
orphan_blocks_sizefield.
- 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_sizefield constitutes a BREAKING CHANGE
in thesync_stateRPC. -
#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
asyncstyle - Use channel to resume/suspend vm
- No snapshot from VM machines
- No
Suspendstate 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_exitis cancelled (@chenyukang)
Improvements
-
#4529: Add jsonrpc batch request limit (@chenyukang)
-
#4583: Add
tx_indextoTxStatusforget_transactionRPC (@eval-exec)This is a breaking change to the RPC.
-
#4591:
VerifyQueue: re_notify other Worker whenOnlySmallCycleTxreceived a large cycle tx (@eval-exec)
ckb 0.118.0-rc2 (921868e 2024-09-04)
This is an RC version to preview the changes in the next release.
See #4598 for details.
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.118.0-rc1
ckb 0.118.0-rc1 (63ae338 2024-08-19)
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:- 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_hashandtip_numberto represent the current chain tip. - Added
unverified_tip_hashandunverified_tip_numberto track the latest received but not yet verified blocks. - Removed the
orphan_blocks_sizefield.
- 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_sizefield constitutes a BREAKING CHANGE
in thesync_stateRPC. -
#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
asyncstyle - Use channel to resume/suspend vm
- No snapshot from VM machines
- No
Suspendstate 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.
Improvements
-
#4529: Add jsonrpc batch request limit (@chenyukang)
-
#4583: Add
tx_indextoTxStatusforget_transactionRPC (@eval-exec)This is a breaking change to the RPC.
-
#4591:
VerifyQueue: re_notify other Worker whenOnlySmallCycleTxreceived a large cycle tx (@eval-exec)
ckb 0.117.0 (4920ecf 2024-07-29)
Highlights
There are two improvements applied for the RPC:
- #4454: Add
include_tx_pool: Option<bool>param toChainRpcImpl::get_live_cell' (@eval-exec) - #4486: Add
assume_valid_target_reached: booltoNetRpc::sync_state(@eval-exec)
Please note that these changes are considered breaking changes and may cause compatibility issues with older versions of RPC clients.
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: 0x84ef5fe7cbf4242bdcac76326aa33f15b9cc41958e9d891157b8a6066dad0f31
- Testnet: 0xc39d482e1c9cba7bdef254ff13e430f42cb5407e15464c029284cd5811e4c8df
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.116.1
Features
-
#4454: Add
include_tx_pool: Option<bool>param toChainRpcImpl::get_live_cell' (@eval-exec)This is a breaking change to the RPC.
-
#4486: Add
assume_valid_target_reached: booltoNetRpc::sync_state(@eval-exec)This is a breaking change to the RPC.
Bug Fixes
- #4484: Fix rich indexer
partialquery by args performance issue (@EthanYuan) - #4505: Fix websocket subscription performance issue (@chenyukang)
Improvements
- #4487: tweak
max_ancestors_count(@zhangsoledad) - #4459: Use standalone runtime for RPC service (@chenyukang)
- #4511: Modify the record scope of tx-pool reject record and fix rule for orphan tx. (@zhangsoledad)
- #4531: Early return
process_fetch_cmdif ckb received exit signal (@eval-exec)
ckb 0.117.0-rc5 (b853641 2024-07-22)
This is an RC version to preview the changes in the next release.
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-rc4
Improvements
- #4531: Backport #4527 Early return
process_fetch_cmdif ckb received exit signal (@eval-exec)
ckb 0.117.0-rc4 (7d4ce27 2024-07-15)
This is an RC version to preview the changes in the next release.
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-rc3
Features
-
#4454: Add
include_tx_pool: Option<bool>param toChainRpcImpl::get_live_cell' (@eval-exec)This is a breaking change: b:rpc
-
#4486: Add
assume_valid_target_reached: booltoNetRpc::sync_state(@eval-exec)This is a breaking change: b:rpc
Bug Fixes
- #4484: Fix rich indexer
partialquery by args performance issue (@EthanYuan) - #4505: Fix websocket subscription performance issue (@chenyukang)
- #4507: Fix websocket subscription performance issue (@chenyukang)
Improvements
- #4459: Use standalone runtime for RPC service (@chenyukang)
- #4511: Modify the record scope of tx-pool reject record and fix rule for orphan tx. (@zhangsoledad)
ckb 0.117.0-rc3 (54907ef 2024-06-21)
This is an RC version to preview the changes in the next release.
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-rc1
Full Changelog: v0.117.0-rc1...v0.117.0-rc3
ckb 0.117.0-rc1 (97cbc1e 2024-06-04)
This is an RC version to preview the changes in the next release.
Assume Valid Target:
- MainNet: the 60 days ago block is: 12623864 0x84ef5fe7cbf4242bdcac76326aa33f15b9cc41958e9d891157b8a6066dad0f31 in Thu Apr 4 02:32:20 AM UTC 2024
you can view this block in https://explorer.nervos.org/block/0x84ef5fe7cbf4242bdcac76326aa33f15b9cc41958e9d891157b8a6066dad0f31 - TestNet: the 60 days ago block is: 12811906 0xc39d482e1c9cba7bdef254ff13e430f42cb5407e15464c029284cd5811e4c8df in Thu Apr 4 02:32:39 AM UTC 2024
you can view this block in https://pudge.explorer.nervos.org/block/0xc39d482e1c9cba7bdef254ff13e430f42cb5407e15464c029284cd5811e4c8df
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.116.1
Trivial improvements and bug fixings
ckb 0.116.1 (b2e36e7 2024-05-11)
Highlights
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: 0x9264d3b444e765d2801d13e800adb520865523a09cd9895bdaeae2c87403fd7f
- Testnet: 0x40e4479ef397e98f226b469ae1fd3d0a064433100f610fb409f0ebc49ccc284e
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.115.0
Features
- #4433: Add
PoolRpc::test_tx_pool_accept, check if the transaction can be accepted by TxPool (@eval-exec)
Bug Fixes
-
#4405: Fix default
ckb.toml's[notifier]to[notify](@eval-exec)This is a breaking change in the config file format.
Improvements
- #4254: Hardcoding a Default
assume_valid_targetto Reduce the Timecost of Block Synchronization in IBD mode (@eval-exec) - #4390: Limit txpool size when inserting an Entry (@chenyukang)
- #4418: Set ChainService
process_blockchannel size to zero (@eval-exec) - #4417: Add
tokio-tracefeature fortokio-consoledebug tool (@eval-exec) - #4366: Adjusting the default dev chain epoch parameter (@EthanYuan)
ckb 0.116.0-rc2 (ccc42d7 2024-04-25)
This is an RC version to preview the changes in the next release.
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.116.0-rc1
- Fix windows integration test compile error by @eval-exec in #4424
- Disable PoolPersisted on windows CI by @eval-exec in #4431
- chore: fix some typos in comments by @racequite in #4423
- chore: bury rfc0044 deploy by @zhangsoledad in #4430
- Add
PoolRpc::test_tx_pool_accept, check if the transaction can be accepted by TxPool by @eval-exec in #4433
Full Changelog: v0.116.0-rc1...v0.116.0-rc2