Highlights
Here are the highlights of the version v0.112.0:
- Introduce the new method
generate_epochs
in theIntegrationTest
module (#4128) - Add feature of Replace-by-fee for tx-pool (#4079, #4108, #4232)
We introduce a huge code refactor on the transaction pool
module and added the feature of RBF(Replace by Fee) in this release.
Here are two points need to be noted:
- Double-spending check now will work before any transaction is added to the transaction pool, a transaction that conflicts with current transactions in the pool will be rejected, the only way to add the new transaction into the pool is by improving the fee and if RBF checking passed, transaction pool will remove old conflicted transactions, then add the new one into pool.
- The RBF feature enables users to replace a transaction with a higher fee rate when pending in tx-pool, which is useful when the transaction is stuck in the tx-pool.
More details about RBF:
The most important rule is fee
, you need to pay an extra fee to replace old transactions with the new one. The default min_rbf_rate
in ckb.toml is 1500
, which means the minimum extra fee rate for RBF, the unit is shannons/KB
.
min_replace_fee = sum(replaced_tx_fee) + (min_rbf_rate * size)
The replaced transaction will be removed from tx-pool and with the status Rejected. The RBF may replace a transaction in the status of Pending
or Proposed
, but the old transaction may still be committed if it was in Proposed
.
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.
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.110.0
Features
- #4128 rpc: Introduce the new method
generate_epochs
in theIntegrationTest
module (@EthanYuan) - #4079: Tx pool Replace-by-fee (@chenyukang)
- #4108: Add feature of Replace-by-fee for tx-pool (@chenyukang)
- #4232: RBF will also replace tx not in Pending (@chenyukang)
Bug Fixes
- #4172: Fix
ckb-hash
dependsblake2b-ref
multiple times (@eval-exec) - #4171 light-client: Could not check MMR for fork chains (@yangby-cryptape)
- #4182: Should only return main chain data (@quake)
- #4208: Fix orphan pool issue for long pending tx (@chenyukang)
Improvements
- #3993: Tx pool rewrite with multi_index_map (@chenyukang)
- #4146: Upgrade CKB's
rust-toolchain
from1.67.1
to1.71.1
(@eval-exec) - #4160: Remove useless
--cfg disable_faketime
fromRUSTFLAGS
(@eval-exec) - #4158: Remove useless
non_owning_clone
method forChainController
andNetworkController
(@eval-exec) - #4161: Remove
#[derive(Clone)]
fromSynchronizer
(@eval-exec) - #4113 (molecule): Remove deprecated
SyncMessage
union items. (@eval-exec) - #4186: Remove
Consensus.dao_type_hash
'sOption
wrapper (@eval-exec)