Skip to content

Releases: nervosnetwork/ckb

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

v0.1.0-pre04

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

Fix serious network issues in v0.1.0-pre03

  • Refactoring: Use fnv for small key hash. @TheWaWaR
  • Feature: Introduce chain spec. @zhangsoledad
  • Refactoring: Rename prefix nervos to ckb. @zhangsoledad
  • Feature: Ensure txid is unique in chain. @doitian
  • Feature: Modify tx struct, remove module, change capacity to u64. @doitian
  • Feature: Sync timeout @zhangsoledad
  • Feature: simple tx signing and verification implementation. @quake
  • Chore: Upgrade libp2p. @TheWaWaR
  • Fix: Network random disconnecting bug. @TheWaWaR
  • Feature: verify tx deps in tx pool. @kilb

v0.1.0-pre03

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

It is a version intended to be able to mint and transfer cells.

It has two limitation:

  • The node stops work randomly because of network disconnecting bug.
  • Cell is not signed and spending is not verified.