Nervos CKB Development Update #9

Ian Yang
Nervos Network
Published in
2 min readApr 24, 2019

Covering Apr 8 to Apr 21

This post is co-authored by Ian Yang, Xuejie Xiao, Qian Linfeng and James Chen.

You may encounter 500 errors when opening some links below. It is a bug of GitHub. We are sorry for the inconvenience, you can take following workarounds: log into your account, open it in a mobile phone, append /file at the end of the URL.

TL;DR

  • RFC0019 has two pending changes: segwit (PR#98), removal of version from script (PR#91) and capacity unit (PR#103).
  • CKB has implemented tx valid since (#372) and cellbase maturity verification (#473).
  • CKB has improved the P2P network stability.

Changes in RFCs

New

  • PR#103 introduces the change to cell capacity unit.
  • PR#102 proposes W^X Memory and exec syscall for CKB VM.

Changes

  • We have revised the core data structure for two new features. RFC0019 will capture theses changes, where PR#98 is for segwit, and PR#91 has removed version from script.
  • PR#97 was merged, which finalized the design of valid_since.

Changes in CKB

CKB v0.9.0 has released, and v0.10.0 is ready.

Features highlights in v0.10.0:

This release contains many bug fixings to improve the P2P network stability:

Changes in CKB VM

  • #47: Use real trace existence test instead of testing address is non-zero, thanks Zhiwei for reporting this bug!
  • #45(still in review): Add new assembly based interpreter which leverages pure assembly for hot interpreter loop. Benchmarks show this is 3x the speed of our current optimized interpreter in Rust, this is even faster than our baseline JIT!

Changes in P2P

  • #98: Optional reopen handler when panic
  • #99: Fix memory leak bug
  • #102: Refactor discovery protocol
  • #105: Support gracefully shutdown service
  • #106: Fix set notify bug
  • #107: Change ProtocolId/SessionId type
  • #108: Change context API
  • #115: Use deadline to output handle block error

Changes in Toolchains

SDKs

  • Updated CKB core type structures
  • Implemented Bech32 hash and proposed address format (RFC PR #100)

ggCKB testnet faucet

  • Adapted CKB and Swift SDK v0.9.0
  • Implemented private key generating, tx sending, etc. and related APIs

CKB Explorer

  • Implemented Web API, added more tests
  • Refactored front-end components

--

--