Skip to content

Releases: nervosnetwork/ckb

v0.17.0-pre1

06 Jul 10:21
46155b6
Compare
Choose a tag to compare
v0.17.0-pre1 Pre-release
Pre-release

This is the preview of 0.17.0, which is not compatible with current testnet.

Downloads

OS Arch Runtime Dependencies Package Sign
macOS x64 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.

Changes since v0.15.0

Features

  • #1119: Remove rules of special reserve blocks (@doitian)

    This is a breaking change: b:consensus, b:database

    For block 1~11, the reward target is genesis block. Yes the reward for genesis is issued multiple times.

    Genesis block must have the lock serialized in the cellbase witness, which is set to bootstrap_lock.

  • #1125: Add get_header and get_header_by_number RPC methods (@TheWaWaR)

    Add two RPC methods

    • get_header
    • get_header_by_number

    Usage scenario:

    • ckb-cli get genesis block header to distinguish testnet and mainnet
    • SPV client just get headers to verify a transaction
  • #1124: Allow TransactionScriptsVerifier set custom debugger printer (@TheWaWaR)

    Current Debugger only log the output and can not detected by outside.

    Here we pass a callback to process debug output.

  • #1094: Secondary miner issurance, split DAO as a separate contract (@xxuejie)

    This is a breaking change: b:consensus, b:database

  • #1137: Remove output for bootstrap lock in genesis block (@doitian)

    The lock has already been written into the cellbase witness in the genesis block.

  • #1138: --ba-data requires --ba-arg or --ba-code-hash (@doitian)

Bug Fixes

  • #1092: Random failure caused by dirty exit in RPC test (@doitian)

    Close the server before exit RPC test.

  • #1097: IBD should remain false once returned false (@quake)

    This PR is trying to resolve IBD peer timeout slow switching issue for some special case, e.x. node resume after hibernation, it's a performance optimization also.

    bitcoin reference: https://github.com/bitcoin/bitcoin/blob/0b68fca700713e8e4c843c982b6047dc04410bc0/src/validation.cpp#L1027

  • #1100: Resolve compact block switch fork issue (@quake)

  • #1101: Fix debug log state error (@driftluo)

    fix debug log state error

  • #1103: Fix sync logic (@driftluo)

    1. fix protect node count
    2. fix header sync eviction condition
  • #1108: Potential error in alert version compare (@jjyr)

    As @keroro520 mentioned, there is a potential bug in case like: "0.10.0" < "0.9.10"

  • #1117: RPC test (@jjyr)

  • #1127: Process orphan blocks when their parents were relayed (@keroro520)

    • test: Add an integration-test test_relay_parent_of_orphan_block
    • feat: Move orphan_block_pool into SyncSharedState
    • fix: Process orphan blocks when their parents were relayed. If relayer does not process the orphan_block_pool when inserting a new relaying block, it may leave some orphan blocks that be unable to re-process any further. This change makes synchronizer and relayer share the same one implementation of insert_new_block, so the above bug been fixed.
  • #1109: Mark failed dialing as feeler (@jjyr)

  • #1134: Integration test broken by #1094 (@xxuejie)

  • #1135: Total difficulty comparison should include hash (@quake)

    resolve similar bug as #1100 and refactor the previous fix to method.

  • #1139: Resolve fresh proposal txs checking bug (@quake)

  • #1144: Prof tps exclude cellbase (@jjyr)

  • #1150: Correct block number from tx_pool_excutor (@keroro520)

    • fix: The block number of the coming block should be tip_number + 1

    NOTE: This is a breaking change

  • #1196: Reserved only do nothing except for connect all reserved peers (@driftluo)

    Reserved only do nothing except for connect all reserved peers

Improvements

  • #1072: Reveal network errors and involver handle it (@keroro520)

    • feat: Reveal network errors. Currently, when CKBProtocolContext receives an error from p2p, it only logs the error and doesn't return to the caller. I change to CKBProtocolContext return the error to the caller, and caller handles it.

    • perf: Short-circuiting break if occurs network error, Synchronizer responses Blocks and Transactions. This is the original intention of this PR. To achieve it, I have to make CKBProtocolContext reveals the network errors, which introduces most of the change code.

  • #1073: Define a general Filter struct (@keroro520)

  • #1098: Avoid re-requesting blocks in orphan pool (@keroro520)

  • #1032 storage: Use flatbuffer instead of bincode in storage (@yangby-cryptape)

    This is a breaking change: b:database

  • #1126: Skip stored block processing (@quake)

Misc

ckb 0.15.5 (rylai-v4 8a788e54 2019-07-06)

06 Jul 10:11
v0.15.5
8a788e5
Compare
Choose a tag to compare
  • Code Name: rylai-v4
  • Genesis Hash: 0xd5c54b0c699ef009edfedb00d8fb8198ac5ce1e9e266b9110a8972e1b05aba88
  • Secp256k1 Code Hash: 0x94334bdda40b69bae067d84937aa6bbccf8acd0df6626d4b9ac70d4612a11933
  • Launch Time: 2019-06-29 UTC 6:00 AM
  • End Time: 2019-07-13 UTC 5:00 AM

This is a bug fixing release and is compatible with v0.15.0.

Ensure you are running the correct node by checking the genesis hash in the log output.

Downloads

OS Arch Runtime Dependencies Package Sign
macOS x64 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.

Changes since v0.15.0

Features

Bug Fixes

  • #1176: Use tip header to ignore compact block (@TheWaWaR)

  • #1179: Random failure caused by dirty exit in RPC test (@doitian)

    Close the server before exit RPC test.

  • #1195: Hotfix rc0.15 (@zhangsoledad)

    • fix fetch invalid block
    • fix response invalid block
    • fix repeat process block overwrite block ext
  • #1164: Ban peer when validate received block failed (@TheWaWaR)

  • #1167: Proposal reward calculate consistency (@zhangsoledad)

  • #1169: Only sync with outbound peer in IBD mode (@quake)

  • #1143: get_ancestor is inconsistent (@zhangsoledad)

  • #1148: Sync block download filter (@zhangsoledad)

    Node should fetch download from all peers which have better chain,
    no matter it's known best's ancestor or not.

ckb 0.15.3 (rylai-v4 a0d2cba3 2019-07-02)

02 Jul 06:30
v0.15.3
a0d2cba
Compare
Choose a tag to compare
  • Code Name: rylai-v4
  • Genesis Hash: 0xd5c54b0c699ef009edfedb00d8fb8198ac5ce1e9e266b9110a8972e1b05aba88
  • Secp256k1 Code Hash: 0x94334bdda40b69bae067d84937aa6bbccf8acd0df6626d4b9ac70d4612a11933
  • Launch Time: 2019-06-29 UTC 6:00 AM
  • End Time: 2019-07-13 UTC 5:00 AM

This is a bug fixing release and is compatible with v0.15.0.

Ensure you are running the correct node by checking the genesis hash in the log output.

Downloads

OS Arch Runtime Dependencies Package Sign
macOS x64 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.

Changes since v0.15.0

Bug Fixes

  • #1143: Get_ancestor consistent (@zhangsoledad)

  • #1148: Sync block download filter (@zhangsoledad)

    Node should fetch download from all peers which have better chain,
    no matter it's known best's ancestor or not.

ckb 0.15.0 (rylai-v4 7cb6cff7 2019-06-29)

29 Jun 06:03
v0.15.0
7cb6cff
Compare
Choose a tag to compare

!!Attention!!: We found a serious bug in this version and are working on a solution. We'll publish a new release when it is fixed.

  • Code Name: rylai-v4
  • Genesis Hash: 0xd5c54b0c699ef009edfedb00d8fb8198ac5ce1e9e266b9110a8972e1b05aba88
  • Secp256k1 Code Hash: 0x94334bdda40b69bae067d84937aa6bbccf8acd0df6626d4b9ac70d4612a11933
  • Launch Time: 2019-06-29 UTC 6:00 AM
  • End Time: 2019-07-13 UTC 5:00 AM

Ensure you are running the correct node by checking the genesis hash in the log output.

Downloads

OS Arch Runtime Dependencies Package Sign
macOS x64 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.

Changes since v0.14.2

RPC changes

  • Add new RPC module Indexer.
  • Response schema of get_current_epoch, get_epoch_by_number has changed.
     "result": {
-        "block_reward": "100000000000",
         "difficulty": "0x3e8",
-        "last_block_hash_in_previous_epoch": "0x0000000000000000000000000000000000000000000000000000000000000000",
+        "epoch_reward": "125000000000000",
         "length": "1250",
         "number": "0",
-        "remainder_reward": "0",
         "start_number": "0"
     }
  • Response schema of get_blockchain_info has changed
     "result": {
+        "alerts": [],
         "chain": "main",
         "difficulty": "0x3e8",
         "epoch": "0",
         "is_initial_block_download": true,
-        "median_time": "1557311762",
-        "warnings": ""
+        "median_time": "1557311762"
     }

Config files changes

ckb-miner.toml

chain.spec

 [chain]
-spec = "specs/testnet.toml"
+spec = { file = "specs/testnet.toml" }

ckb.toml

chain.spec

 [chain]
-spec = "specs/testnet.toml"
+spec = { file = "specs/testnet.toml" }

New options network.upnp and network.discovery_local_address

 [network]
+# If set to true, try to register upnp
+upnp = false
+# If set to true, network service will add discovered local address to peer store, it's helpful for private net development
+discovery_local_address = false

New option block_assembler.data

+# Also, ckb allows the miners to add any data to the cellbase that they have dug out.
+# The data must be A 0x-prefixed hex string.
+#
+# note: The data field is optional.
+#
+# **WARNING**: if data is larger than the capacity value of the current cellbase,
+# it will be truncated
+#
+# [block_assembler]
+# code_hash = "0xf1951123466e4479842387a66fabfd6b65fc87fd84ae8e6cd3053edb27fff2fd"
+# args = [ "ckb cli blake160 <compressed-pubkey>" ]
+# data = "0x prefix hex string"

Highlights

Features

  • #937: Initial windows support (@xxuejie)

  • #931: Add a function to select all tx-hashes from storage for a block (@yangby-cryptape)

  • #910: Implement the alert system in CKB for urgent situation (@jjyr)

    This is a breaking change: b:p2p, b:rpc

  • #939: Explicitly specify bundled or file system (@doitian)

  • #972: Add load_code syscall (@xxuejie)

  • #977: Upgrade p2p (@driftluo)

    • upgrade p2p dependence
    • support upnp optional
  • #978: Use new identify protocol (@driftluo)

    The current identify protocol does not play a role in identifying the capabilities of both parties, and the message structure is not reasonable.

    So, I rewrote it and added the capability ID and network ID.

  • #1000: Allow miner add an arbitrary message into the cellbase (@driftluo)

  • #1047: Stats uncle rate (@zhangsoledad)

  • #905: Add indexer related rpc (@quake)

  • #1035: ckb init allows setting ba-data (@driftluo)

  • #1088: Revise epoch rpc (@zhangsoledad)

    This is a breaking change: b:rpc

Bug Fixes

Improvements

  • #938: Remove low S check from util-crypto (@jjyr)
  • #959: Remove redundant interface from ChainProvider (@zhangsoledad)
  • #970 sync: Fix get ancestor performance issue (@TheWaWaR)
  • #976: Flatten network protocol state into SyncSharedState (@keroro520)
  • #1051: Get tip_header from store instead of from chain_state (@jjyr)
  • #971: Abstract data loader layer to decouple ckb-script and ckb-store (@jjyr)
  • #994: Wrap lock methods to avoid locking a long time (@keroro520)

ckb v0.15.0-rc2 (rylai-v4 1c031e8 2019-06-28)

28 Jun 13:23
1c031e8
Compare
Choose a tag to compare

This is a preview release for v0.15.0, which will be released on Jun 29, 2019. See details in #1091.

The package contains ckb-cli as well starting from this version.

Attention: It is not compatible with current testnet, please always use the latest release

ckb 0.15.0-rc1 (rylai-v4 c08d4eae 2019-06-21)

21 Jun 14:18
v0.15.0-rc1
Compare
Choose a tag to compare

This is a preview release for v0.15.0, which will be released on Jun 29, 2019. See details in #1091.

Attention: It is not compatible with current testnet, please always use the latest release

ckb 0.14.2 (rylai-v3 v0.14.2 2019-06-21)

21 Jun 11:52
v0.14.2
82acb54
Compare
Choose a tag to compare
  • Code Name: rylai-v3
  • Genesis Hash: 0xc3b42742ea8658c93de23f16a10c43212bd8b24a6bde5a93b8446dba3fb2a728
  • Secp256k1 Code Hash: 0xf1951123466e4479842387a66fabfd6b65fc87fd84ae8e6cd3053edb27fff2fd
  • Launch Time: 2019-06-15 UTC 6:00 AM
  • End Time: 2019-06-29 UTC 6:00 AM

This is a bug fixing release and is compatible with v0.14.0 and v0.14.1.

If your node stops synchronizing blocks with other nodes, please download this new version.

Downloads

OS Arch Runtime Dependencies Package Sign
macOS x64 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.

Changes since v0.14.0

Bug Fixes

ckb 0.14.1 (rylai-v3 v0.14.1 2019-06-16)

16 Jun 07:48
v0.14.1
114efcb
Compare
Choose a tag to compare
  • Code Name: rylai-v3
  • Genesis Hash: 0xc3b42742ea8658c93de23f16a10c43212bd8b24a6bde5a93b8446dba3fb2a728
  • Secp256k1 Code Hash: 0xf1951123466e4479842387a66fabfd6b65fc87fd84ae8e6cd3053edb27fff2fd
  • Launch Time: 2019-06-15 UTC 6:00 AM
  • End Time: 2019-06-29 UTC 6:00 AM

This is a bug fixing release and is compatible with v0.14.0. The miner log now prints the correct block hash.

Downloads

OS Arch Runtime Dependencies Package Sign
macOS x64 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.

Changes since v0.14.0

Bug Fixes

ckb 0.14.0 (rylai-v3 v0.14.0 2019-06-15)

15 Jun 04:32
v0.14.0
03f2534
Compare
Choose a tag to compare
  • Code Name: rylai-v3
  • Genesis Hash: 0xc3b42742ea8658c93de23f16a10c43212bd8b24a6bde5a93b8446dba3fb2a728
  • Secp256k1 Code Hash: 0xf1951123466e4479842387a66fabfd6b65fc87fd84ae8e6cd3053edb27fff2fd
  • Launch Time: 2019-06-15 UTC 6:00 AM
  • End Time: 2019-06-29 UTC 6:00 AM

Attention: The default secp256k1 code hash has changed, remember to check the block assembler config.

Ensure you are running the correct node by checking the genesis hash in the log output.

Downloads

OS Arch Runtime Dependencies Package Sign
macOS x64 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.

Changes since v0.13.0

Features

  • #913: New verification model (@xxuejie)

    This is a breaking change: b:consensus, b:database, b:p2p, b:rpc

    Based on feedbacks gathered earlier, we are revising our verification
    model with the following changes:

    • When validating a transaction, CKB will grab all lock scripts from
      all inputs, and group them based on lock script hash. The script in
      each group will only be run once. The lock script itself will have
      to do the validation task for all inputs in the same group
    • CKB will also grab all type scripts from inputs and outputs(notice
      different from previous version, the type scripts in inputs are
      included here as well), and group them based on type script hash as
      well. Each type script in each group will also be run once. The type
      script itself needs to handle the validation task within the group
    • Syscalls are also revised to allow fetching all the
      inputs/outputs/witnesses within a single group.
    • Input args is removed since the functionality can be replicated elsewhere
  • #908: Peers handle disconnect (@keroro520)

  • #891: Secp256k1 multisig (@jjyr)

  • #845: Limit TXO set memory usage (@yangby-cryptape)

    This is a breaking change: b:database

  • #874: Revise uncle rule (@zhangsoledad)

    This is a breaking change: b:consensus, b:database

    1. get rid uncle age limit
    2. try include disconnected block as uncle
  • #920: Tweak consensus params (@zhangsoledad)

    This is a breaking change: b:consensus

    tweak block_cycles_limit and min_block_interval

  • #897: Wrap the log macros to fix ill formed macros (@yangby-cryptape)

    And, we have to update the log filters, add prefix ckb- for all our crates.

  • #919: Synchronizer and relayer share BlocksInflight (@keroro520)

  • #924: Add a transaction error InsufficientCellCapacity (@yangby-cryptape)

  • #926: Make a better error message for miner when method not found (@yangby-cryptape)

  • #961: Display miner worker status (@quake)

    BREAKCHANGE: config file ckb-miner.toml changed

  • #1001: ckb init supports setting block assembler (@doitian)

    • ckb init accepts options --ba-code-hash and --ba-arg (which can
      repeat multiple times) to set block assembler.
    • ckb cli secp256k1-lock adds an output format cmd to prints the
      command line options for ckb init to set block assembler.

    The two commands can combine into one to init the directory with a secp256k1 compressed pub key:

      ckb init $(ckb cli secp256k1-lock <pubkey> --format cmd)
    
  • #996: Tweak consensus parameters (@doitian)

    • Change target epoch duration to 4 hours
    • Reduce epoch reward to 1/4
    • Increase secondary epoch reward to 600,000 bytes

Bug Fixes

  • #878: Calculate the current median time from tip (@keroro520)

    This is a breaking change: b:consensus

    Original implementation use [Tip-BlockMedianCount .. Tip-1] to calculate the current block median time. According to the notion of BlockMedianTime in bip-0113 , here change to use [Tip-BlockMedianCount+1 .. Tip] instead.

  • #915: Sync blocked by protected peer (@TheWaWaR)

  • #906: Proposal table reload (@zhangsoledad)

  • #983: Uncle number should smaller than block (@zhangsoledad)

    This is a breaking change: b:consensus

Improvements

  • #981 sync: Fix get ancestor performance issue (@TheWaWaR)

    It's a backport of PR #970

Misc

  • #966: Backport windows support and sentry cleanup to v0.14.0 (@doitian)

v0.14.0-rc2

13 Jun 08:44
v0.14.0-rc2
175a53d
Compare
Choose a tag to compare
v0.14.0-rc2 Pre-release
Pre-release

This is a pre-release. It is not compatible with the current testnet, which is running the latest release.

OS Arch Runtime Dependencies Package Sign
macOS x64 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.

Changes since v0.14.0-rc1

Features

  • #961: Display miner worker status (@quake)

    BREAKCHANGE: config file ckb-miner.toml changed

    • feat: display miner worker status
    • refactor: add miner worker trait, prepare for Cuckoo cpu and gpu miner plugin

Bug Fixes

  • #983: Uncle number should smaller than block (@zhangsoledad)

    This is a breaking change: b:consensus

Improvements

  • #981 sync: Fix get ancestor performance issue (@TheWaWaR)

    It's a backport of PR #970