Nervos CKB Development Update #38

Ian Yang
Nervos Network
Published in
2 min readJul 14, 2020

By Ian Yang.

Jun 29 to Jul 12, 2020

TL;DR

  • The latest release of ckb is v0.33.1, which fixed a security advisory GHSA-r9rv-9mh8-pxf4.
  • We are working to limit ckb memory usage.
  • Tentacle now has a Go version.

Status Update

The latest release is v0.33.1.

CKB v0.33.1 has been released to address the issue of GHSA-r9rv-9mh8-pxf4. We observed a surge of uncle rate on Jul 1st. It in turn increased the block interval. From a consensus algorithm’s perspective, a large block interval should lower the uncle rate. However, it did not work. The root cause was that a miner did not synchronize the local time, which was about 15 seconds ahead, and there was a bug in the code that would ban peers which relay the block more than 15 seconds in the future. Thus that miner was banned by most peers and could not catch up with the network’s latest block and continuously produced uncle blocks.

We received some complaints that the ckb node consumes too much memory. Xuejie met a similar issue when he tried to port ckb into ARM and ran ckb on his Raspberry Pi which only has 1G memory. So Boyu has started a series of work to confine the memory usage of CKB. He has already achieved some progress, such as not caching all headers in memory during header sync.

Chao had submitted a PR to schedule block download tasks between peers according to the history latency statistics. We are running more simulation tests to find better parameters.

Chao also finished the first version of Tentacle Go. Implementing the framework in another language taught Chao a lot and he started reflecting and refactoring the Rust version.

There are more and more requirements to use ckb as a library. So Quake had made various refactoring to make ckb more friendly to be used this way.

We know that our RPC error messages are not ideal. Ian recently submitted three PRs to improve the RPC error messages.

Join our community: DiscordGithubNervos Talk ForumTwitter

For discussions or questions join the conversation on Discord or check out one of our community Telegram channels: English, Korean, Russian, Japanese, Spanish, Vietnamese and Chinese

--

--