Skip to content

ckb 0.100.0 (c978940 2021-09-13)

Compare
Choose a tag to compare
@doitian doitian released this 22 Sep 01:43
· 3937 commits to develop since this release
c978940

This version is compatible with v0.25.0 and above. However, it is recommended to upgrade the node, since we will only release security patches based on the latest release.

See how to connect to various chains in Wiki.

The version v0.100.0 will bring incompatible changes for the next hard fork but it will not activate the hard fork for testnet and mainnet. So it is compatible with the current testnet and mainnet.

  • The block header as a new field extra_hash, which replaced uncles_hash.
  • The block has a new field extension but no blocks may set it before the hard fork activation.
  • The field hash_type has a new allowed value "data1" but it is invalid before the hard fork activation.
  • The default value of the parameter OutputsValidator in the JSON RPC send_transaction is well_known_scripts_only now. See #2821 for details.

Downloads

OS Arch Runtime Dependencies Package Sign
macOS x64 macOS 10.12 or above zip PGP
Linux x64 glibc, libstdc++ tarball PGP
CentOS x64 glibc, libstdc++, openssl tarball PGP
Windows* x64 VC++ Redistributable zip PGP
Docker dockerhub

* Windows support is experimental.

** The binaries require following CPU instructions: call (MODE64), cmovbe (CMOV), xorps (SSE1), movq (SSE2)

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

Changes since v0.43.2

This version contains the fork features in ckb2021 which are disabled in testnet and mainnet.

Features

Bug Fixes

Improvements

  • #2755: Avoid unnecessary db creation (@zhangsoledad)

  • #2685: Replace RwLock/Mutex<HashMap/HashSet> with DashMap (@quake)

  • #2736: Move state flag to HeadersSyncState enum (@quake)

    We are using 3 fields sync_started / sync_connected / not_sync_until in the headers sync process, this PR refactored them to a state machine enum HeadersSyncState

  • #2707: Use KeyedPriorityQueue to replace BTreeMap/HashSet (@quake)

  • #2791: Verify the epoch in block headers explicitly (@yangby-cryptape)

    The data of epoch in bytes is not same as the EpochNumberWithFraction, which causes a few unintended consequences.

  • #2822: Compatibility policy for configuration files (@yangby-cryptape)

    • Deny unknown configuration items.

      To avoid several kinds of mistakes, for example, typos.

    • Allow deprecated configuration items, but they will be ignored; and warning messages will be output.
      After several versions, if these deprecated items satisfied any of the following conditions, they will be fully removed (denied):

      • Not list in the default configuration files.
      • Be tagged as "Experimental".
    • The default configuration files will not include any deprecated configuration items.

    • The default configuration files will not enable any experimental configuration items.

  • #2770: Use community contributed site for script error codes (@doitian)

  • #2779: Give an unique id to each global runtime thread (@yangby-cryptape)

  • #3006 rpc: Change struct from "TxPoolVerbosity" to "TxPoolEntries… (@chanhsu001)

    Breaking change for using ckb crates.

  • #2841: Remove redudant as_ref (@doitian)

  • #2863: Avoid duplicate cell check (@zhangsoledad)

  • #2870: Replace metrics-rs with opentelemetry-rust (@yangby-cryptape)

  • #2925: Enum tuple struct (@zhangsoledad)

  • #2948: Remove dependency on tempfile in ckb-resource (@chanhsu001)

  • #2982: Regex new is expensive (@driftluo)

  • #2964: Refactor peer store (@driftluo)