Skip to content

Releases: nervosnetwork/ckb

v0.4.0

14 Jan 07:53
v0.4.0
922396b
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

Bug Fixes

  • unnecessary shared data clone (4bf9555)

Features

  • upgrade to Rust 1.31.1
  • cell model: rename CellBase to Cellbase (71dec8b)
  • cell model: rename CellStatus old -> dead, current -> live (ede5108)
  • cell model: rename OutofBound -> OutOfBound (f348821)
  • cell model: rename CellOutput#contract to CellOutput#_type (6e128c1)
  • consensus: add block level script cycle limit (22adb37)
  • consensus: past blocks median time based header timestamp verification (c63d64b)
  • infrastructure: new merkle tree implementation (#143) (bb83898)
  • infrastructure: upgrade config-rs and use enum in config parsing (#156) (aebeb7f)
  • p2p framework: remove broken kad discovery protocol (f2d86ba)
  • p2p framework: use SQLite implement PeerStore to replace current MemoryPeerStore (#127)
  • p2p protocol: add transaction filter (6717b1f)
  • p2p protocol: unify h256 and ProposalShortId serialization (#125) (62f57c0), closes #125
  • peripheral: add RPC max_request_body_size config (4ecf813)
  • peripheral: add cycle costs to CKB syscalls (6e10311)
  • peripheral: jsonrpc types wrappers: use hex in JSON for binary fields (dd1ed0b)
  • scripting: remove obsolete secp256k1 script in CKB (abf6b5b)
  • refactor: rename ambiguous tx error (58cb857)

BREAKING CHANGES

  • JSONRPC changes, see the diff of rpc/doc.md
    • Binary fields encoded as integer array are now all in 0x-prefix hex string.
    • Rename transaction output contract to type
    • Rename CellStatus old -> dead, current -> live
  • P2P message schema changes, see the diff of
    protocol/src/protocol.fbs
    • Add struct H256 for all H256 fields.
    • Add struct ProposalShortId
  • Config changes, see the diff of
    nodes_template/default.json
    • Add a new option max_request_body_size in section rpc.
    • Changed the default miner type_hash

v0.3.0

03 Jan 09:42
v0.3.0
11cb515
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

Bug Fixes

  • consensus: resolve mining old block issue (#87) (e5da1ae)
  • p2p framework: use new strategy to evict inbound peer (95451e7)
  • p2p protocol: fix calculation of headers sync timeout (06a5e29)
  • p2p protocol: sync header verification (366f077)
  • scripting: regulate parameters used in syscalls (09e7cc7)
  • cli panic (c55e076)
  • cli subcommand setting (bdf323f)
  • uncheck subtract overflow (#88) (36b541f)

Features

  • cell model: rename outpoint to out_point as its type is OutPoint (#93) (3abf2b1))
  • p2p framework: add peers registry for tests(9616a18)
  • p2p framework: impl NetworkGroup for peer and multiaddr (e1e5750)
  • p2p framework: peerStore implements scoring interface (d160d1e)
  • p2p framework: try evict inbound peers when inbound slots is full (d0db77e)
  • peripheral: jsonrpc API modules (f87d9a1)
  • peripheral: use crate faketime to fake time (#111) (5adfd82)
  • scripting: add DATA_HASH field type in syscall Load Cell By Field (2d0a378)
  • scripting: add dep cell loading support in syscalls (cae937f)
  • scripting: assign numeric numbers for syscall parameters (3af9535)
  • scripting: use serialized flatbuffer format in referenced cell (49fc513)

BREAKING CHANGES

  • In P2P and RPC, field outpoint is renamed to out_point.
  • Config has changed, please see the diff.

v0.2.0

17 Dec 06:03
v0.2.0
8b8612f
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

In this release, we have upgraded to Rust 2018. We also did 2 important refactoring:

  • The miner now runs as a separate process.
  • We have revised the VM syscalls according to VM contracts design experiments.

Bug Fixes

  • fix IBD sync process (8c8382a)
  • fix missing output lock hash (#46) (51b1675)
  • fix network unexpected connections to self (#21) (f4644b8)
  • fix syscall number (c21f5de)
  • fix syscall length calculation (#82) (fb23f33)
  • in case of missing cell, return ITEM_MISSING error instead of halting (707d661)
  • remove hash caches to avoid JSON deserialization bug (#84) (1274b03)
  • fix rpc_url (62e784f)
  • resolve mining old block issue (#87) (01e02e2)
  • uncheck subtract overflow (#88) (2b0976f)

Features

  • refactor: embrace Rust 2018 (#75) (313b2ea)
  • refactor: replace ethereum-types with numext (2cb8aca)
  • refactor: rpc and miner (#52) (7fef14d)
  • refactor: VM syscall refactoring (9573905)
  • add get_current_cell rpc for fetching unspent cells (781d5f5)
  • add LOAD_INPUT_BY_FIELD syscall (c9364f2)
  • add new syscall to fetch current script hash (#42) (d4ca022)
  • dockerfile for hub (#48) (f93e1da)
  • print full config error instead of just description (#23) (b7d092c)

BREAKING CHANGES

  • Miner is a separate process now, which must be started to produce new
    blocks.

  • The project now uses Rust 2018 edition, and the stable toolchain has to be
    reinstalled:

    rustup self update
    rustup toolchain uninstall stable
    rustup toolchain install stable
    

    If you still cannot compile the project, try to reinstall rustup.

v0.1.0

26 Nov 07:09
v0.1.0
daa2f8a
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

Bug Fixes

  • Chain index (8a28fd8)
  • Fix network kad discovery issue (bc99452)
  • Prevent multi times dialing kad connection to the same peer (#20) (01bcaf4)
  • Fix relay_compact_block_with_one_tx random failure (131d7e1)
  • Remove external lock reference of network::peer_registry (e088fd0)
  • Remove redundant debug lines (024177d)
  • Revert block builder (#2) (a42b2fa)
  • Temporarily give up timeout (6fcc0ff)

Features

  • config: Simplify config and data dir parsing (#19) (b4fdc29)
  • config: Unify config format with json (d279f34)
  • Add a new VM syscall to allow printing debug infos from contract (765ea25)
  • Add new type script to CellOutput (820d62a)
  • Add uncles_count to Header (324488c)
  • Adjust get_cells_by_redeem_script_hash RPC with more data (488f2af)
  • Build info version (d248885)
  • Print help when missing subcommand (#13) (1bbb3d0)
  • Default data dir (8310b39)
  • Default port (fea6688)
  • Relay block to peers after compact block reconstruction (380386d)
  • network: Reduce unnessacery identify_protocol query (40bb41d)
  • network: Use snappy to compress data in ckb protocol (52441df)
  • network: Use yamux to do multiplex (83824d5)
  • Introduce a maximum size for locators (143960d)
  • Relay msg to peers and network tweak (b957d2b)
  • Some VM syscall adjustments (99be228)

BREAKING CHANGES

  • config: Command line arguments and some config options and chan spec options have been
    changed. It may break scripts and integration tests that depends on the
    command line interface.

v0.1.0-pre10

20 Nov 15:15
v0.1.0-pre10
Compare
Choose a tag to compare
v0.1.0-pre10 Pre-release
Pre-release

In this release, we added syscalls which allow contract reads cells. We are working on contract SDK, and an RPC is added to get the cells. We also did many refactorings to make the code base easier to improve in the future.

  • Feature: Add an intermediate layer between the app and libp2p. @jjyr
  • Feature: Use custom serialization for the redeem script hash instead of bincode.
    @xxuejie
  • Feature: Add logs when pool rejects transactions.
    @xxuejie
  • Feature: Add RPC to get cells by the redeem script hash. @xxuejie
  • Feature: Implement mmap_tx/mmap_cell syscall to read cells in contract.
    @zhangsoledad
  • Refactoring: Replace RUSTFLAGS with cargo feature. @quake
  • Refactoring: Tweek Cuckoo. @quake
  • Refactoring: Rename TipHeader/HeaderView member to inner. @quake
  • Refactoring: Refactor ckb-core. Eliminate public fields to ease future
    refactoring. @quake
  • Bug: Add proper syscall number checking in VM. @xxuejie
  • Bug: Generate random secret key if not set. @jjyr
  • Bug: Fix input signing bug. @xxuejie
  • Test: Replace quickcheck with proptest. @zhangsoledad

VM & Contract:

  • Feature: Build a mruby based contract skeleton which provides a way to write full Ruby contract @xxuejie
  • Feature: Build pure Ruby secp256k1-sha3-sighash_all contract @xxuejie

v0.1.0-pre09

20 Nov 15:15
v0.1.0-pre09
Compare
Choose a tag to compare
v0.1.0-pre09 Pre-release
Pre-release

VM now uses RISCV 64 bit. PoW engine is configurable in runtime.

v0.1.0-pre08

20 Nov 15:14
v0.1.0-pre08
Compare
Choose a tag to compare
v0.1.0-pre08 Pre-release
Pre-release

This release has integrated VM to verify signatures, fixed various bugs, and added more tests.

It has also introduced a newly designed transaction pool.

  • Feature: Add a PoW engine which produces new blocks using RPC. @zhangsoledad
  • Feature: Enhance the integration test framework. @zhangsoledad
  • Feature: Add network integration test framework. @TheWaWaR
  • Feature: Redesign the pool for the new consensus rules, such as transactions proposal. @kilb
  • Feature: Integrate and use VM to verify signatures. @xxuejie
  • Feature: Verify uncles PoW. @zhangsoledad
  • Feature: Experiment flatbuffer. @quake
  • Bug: Fix the difficulty verification. @quake
  • Bug: Fix Cuckoo panic. @zhangsoledad
  • Refactoring: Add documentation and cleanup codebase according to code review feedbacks. @doitian
  • Chore: Move out integration test as a separate repository to speed up compilation and test. @zhangsoledad

v0.1.0-pre07

20 Nov 15:14
v0.1.0-pre07
Compare
Choose a tag to compare
v0.1.0-pre07 Pre-release
Pre-release

This release introduces the consensus rule that transactions must be proposed via blocks first.

PoW is refactored to ease switching between different implementations.

ckb:

  • Feature: Implement a consensus rule that requires proposing transactions before committing into a block. @zhangsoledad
  • Feature: UTXO index cache @kilb
  • Feature: Adapter layer for different PoW engines @quake
  • Feature: Cuckoo builtin miner @quake
  • Test: Network integration test @TheWaWaR
  • Test: Nodes integration test @zhangsoledad
  • Chore: Upgrade libp2p wrapper @TheWaWaR
  • Chore: Switch to Rust stable channel. @zhangsoledad
  • Chore: Setup template for the new crate in the repository. @zhangsoledad

ckb-riscv:

  • Feature: Implement RISC-V syscalls @xxuejie

v0.1.0-pre06

20 Nov 15:14
v0.1.0-pre06
Compare
Choose a tag to compare
v0.1.0-pre06 Pre-release
Pre-release

New PoW difficulty adjustment algorithm and some bug fixings and refactoring

  • Feature: new difficulty adjustment algorithm. @zhangsoledad
  • Fix: undetermined block verification result because of out of order transaction verification. @kilb
  • Refactor: transaction verifier. @quake

v0.1.0-pre05

20 Nov 15:14
v0.1.0-pre05
Compare
Choose a tag to compare
v0.1.0-pre05 Pre-release
Pre-release

This release introduces Uncle blocks

  • Feature: Uncle Blocks @zhangsoledad
  • Feature: Transaction dep double spending verification. @kilb
  • Fix: Cellbase should not be allowed in pool. @kilb
  • Fix: Prefer no orphan transactions when resolving pool conflict. @kilb
  • Feature: Integration test helpers. @quake
  • Fix: zero time block; IBD check @zhangsoledad
  • Refactoring: Avoid allocating db col in different places @doitian