Skip to content

Releases: citahub/cita

v0.23.1

05 May 12:15
b1e3048
Compare
Choose a tag to compare

Fix the issue about showing the wrong version.
Check the details at [#538]

v0.23.0 Braised Prawn

26 Apr 13:04
12420de
Compare
Choose a tag to compare

Hi, all. A new version called "Braised Prawn" released! "Braised Prawn" is one of the most famous dishes in Shandong cuisine which takes the first place in the eight famous Chinese cuisines. The code of CITA is also as excellent as the flavor of "Braised Prawn". 😝

In this version, CITA adds two RPC interfaces for users to get the version number and peers' information. And CITA now supports output log as stdout.

We optimize the usage of bin/cita script. Besides, we also fixed some bugs. In the old version, Auth might crash when it was not ready and high CPU usage, but now it is quite stable all the time!

CITA is going forward to the 1.0.0 version, thus, the stability is the most important thing. This version adds abundant test cases in VM and P2P.

CITA 1.0.0, coming soon.


这次 CITA 为大家带来的美味是八大菜系之首的鲁菜中的经典名菜——“油焖大虾”,油焖大虾鲜甜味美,CITA 的代码,更美。

在这次的版本中,CITA 新增了两个 RPC 接口供用户方便的获取版本号和节点信息,同时 CITA 的日志现已支持控制台输出。CITA 升级了 P2P 的版本,新的版本中 discovery 协议发生变更。

我们优化了 bin/cita 脚本的使用方式,同时我们也修复了一些 Bug,比如 Auth 可能崩溃的问题,Network 的高 CPU 使用率的问题等等。

CITA 正在向 1.0.0 的版本迈进,在这个过程中,稳定性尤为重要,新版本对 VM 和 P2P 增加了大量的测试用例,尽可能的提高稳定性。

CITA v1.0.0,敬请期待。

Braised-Prawn

Changelog

Upgrade Note

In v0.23.0, CITA upgraded the P2P discovery protocol, which leads to Incompatibility with v0.22.0. So the nodes with CITA v0.23.0 and the nodes with CITA v0.22.0 cannot discover each other in the network. Therefore, when upgrading, all nodes in the network need to be upgraded to v0.23.0 at the same time.

Following Upgrade Instructions to upgrade the nodes.

New Feature Description

The v0.23.0 version added two RPC interfaces:

curl -X POST --data '{"jsonrpc":"2.0","method":"getVersion","params":[],"id":83}'
curl -X POST --data '{"jsonrpc":"2.0","method":"peersInfo","params":[],"id":83}'

Breaking Change

In this version, the usage of bin/cita script has changed. For detail, run bin/cita help.

Framework

  • [Optimization] Update default rust toolchain to v1.34.0. [@yangby-cryptape] [@kaikai1024]
  • [Optimization] Update cita-sdk-js version. [@kaikai1024]
  • [Fix] Reorganize toml path. [@ouwenkg]
  • [Feature] Log output mode can be configured as stdout or file. [@Kayryu]

Executor

  • [Optimization] Integrate vm-test. [@ouwenkg]
  • [Optimization] Add unit test of calling contract. [@kaikai1024]

Auth

  • [Fix] Auth crashes when it is not ready. [@leeyr338]

Network

  • [Fix] High CPU usage. [@leeyr338]
  • [Fix] Refuse connect when reach max connections. [@leeyr338]
  • [Optimization] Add discovery test of network. [@leeyr338]
  • [Optimization] Use new version P2P to fix network run crash. [@jerry-yu]

Consensus

  • [Optimization] Set the default NTP service to false. [@kaikai1024]
  • [Fix] Not generate a block. [@jerry-yu]

RPC

  • [Feature] Add getVersion interface. [@luqz]
  • [Feature] Add peersInfo interface. [@leeyr338]
  • [Fix] Get logs break down the chain when toBlock very large. [@leeyr338]

Scripts

  • [Optimization] Installation && Exectution Optimization: new usage of bin/cita script. [@clearloop]
  • [Fix] Redirect the stdout and stderr for daemon processes in docker. [@yangby-cryptape]
  • [Fix] Eliminate warnings when create nodes in docker. [@ouwenkg]
  • [Fix] Generate privkey file when use authorities option. [@leeyr338]
  • [Optimization] Logrotate output log as a relative path. [@leeyr338]
  • [Optimization] Patch to absolute paths' in starting scripts. [@clearloop]
  • [Optimization] Format the env.sh using ShellCheck. [@clearloop]

Doc


更新日志

升级说明

v0.23.0 升级了 P2P 节点发现协议,与运行中的 v0.22.0 的 CITA 节点不兼容,因此,v0.23.0 的 CITA 节点与 v0.22.0 的 CITA 节点之间不能相互发现 。所以,在升级时,需要将网络中的所有节点同时升级成到 v0.23.0

请参考 升级操作说明 升级节点。

新特性描述

v0.23.0 增加了两个 RPC 接口:

  • 获取软件版本号
curl -X POST --data '{"jsonrpc":"2.0","method":"getVersion","params":[],"id":83}'
  • 获取节点信息
curl -X POST --data '{"jsonrpc":"2.0","method":"peersInfo","params":[],"id":83}'

重大更改

在这个版本中,我们优化了bin/cita脚本的使用,通过 bin/cita help 查看更多信息。

Framework

  • [Optimization] 升级 Rust 版本至 v1.34.0。[@yangby-cryptape] [@kaikai1024]
  • [Optimization] 升级 cita-sdk-js 版本。[@kaikai1024]
  • [Fix] 修正一些配置文件的路径。 [@ouwenkg]
  • [Feature] 日志输出可配置为控制台输出或输出到文件。[@Kayryu]

Executor

  • [Optimization] 增加 VM 的测试用例。 [@ouwenkg]
  • [Optimization] 增加调用合约的单元测试。 [@kaikai1024]

Auth

  • [Fix] 修复当未就绪时 Auth 可能崩溃的问题。[@leeyr338]

Network

  • [Fix] 修复高 CPU 使用率的问题。[@leeyr338]
  • [Fix] 修复当达到最大连接数量时拒绝连接的问题。[@leeyr338]
  • [Optimization] 增加对 discovery 协议的测试。[@leeyr338]
  • [Optimization] 升级P2P版本,修复网络可能崩溃的问题。[@jerry-yu]

Consensus

  • [Optimization] 默认关闭 NTP 服务。 [@kaikai1024]
  • [Fix] 修复由于共识列表未持久化导致可能不出块的问题。[@jerry-yu]

RPC

  • [Feature] 增加getVersion接口。[@luqz]
  • [Feature] 增加peersInfo接口。[@leeyr338]
  • [Fix] 修复当toBlock过大时获取日志崩溃的问题。[@leeyr338]

Script

  • [Optimization] 优化了 bin/cita 脚本的使用方式。[@clearloop]
  • [Fix] 在 Docker 中运行时将控制台输出重定向。[@yangby-cryptape]
  • [FIx] 消除在 Docker 中创建节点时的警告。[@ouwenkg]
  • [Fix] 当使用authorities选项时生成私钥文件。[@leeyr338]
  • [Optimization] 日志输出改为相对路径。[@leeyr338]
  • [Optimization] 修复启动脚本中的绝对路径。[@clearloop]
  • [Optimization] 使用ShellcCheck格式化env.sh。[@clearloop]

Doc

v0.22.0 Braised Pork

29 Mar 04:23
2f12229
Compare
Choose a tag to compare

Sorry to keep you waiting for a long time! With the release of this version, we will present a new dish for you - "Braised Pork". This is a must-have traditional dish in South China for festival days and always has a good moral which means "ride on the crest of success".

In this version, our P2P protocol has been released finally! You just need to fill in a known node in the network and P2P protocol will discover other nodes automatically instead of adding or deleting nodes through changing the network profile by yourselves.

As a regular user of CITA, you must also be very concerned about the disk usage. This version will help you to save more than 90% of the disk space (Without no transactions, the daily disk growth will be reduced from 500M to 50M). This is an amazing optimization!

Certainly, we also fixed some bugs that you have discovered or that you have not found. For example, JSON-RPC can't cross-domain access, Executor is inexplicably quit, and so on.

In a word, Spring is coming and here we present this "Braised Pork". Hope all of you could enjoy it.


抱歉让大家久等了!随着此次版本发布,我们将为大家呈上一道新菜——“扣肉”。“扣肉”是中国南方喜事中必备的一道传统大菜,又名“大展宏图”,寓意非凡。

在这次的版本中,P2P 协议终于和大家见面了!你再也不用通过更改网络配置文件来添加或删除节点,只需填写一个网络中已知的节点,P2P 将自动发现网络中其它节点并加入这个网络。

作为 CITA 的忠实用户,你也一定非常关心磁盘占用率的问题,这次的版本将为你节省 90% 以上的磁盘空间(在没有交易的情况下,每天的磁盘增长从 500M 降到 50M 以内),这是一个了不起的优化!

当然,我们还修复了一些你已经发现的或者你没有发现的 Bug。比如说 JSON-RPC 不能跨域访问的问题,Executor 被莫名退出的问题等等。

总之,喜事已至,为大家呈上“扣肉”这道新菜,敬请细细品尝。

braised-pork

Changelog

Upgrade Note

The v0.22.0 version of the node configurations is compatible with the v0.21 version. Means that you can run v0.22.0 directly using the v0.21 node configurations. However, due to the refactoring of the network, the nodes executed with v0.22.0 are incompatible with the original nodes (they have different node discovery and transfer protocols), so all nodes need to be upgraded to v0.22.0 at the same time.

Following Upgrade Instructions to upgrade the nodes.

New Feature Description

The new feature of integrating P2P to network service, we add discovery of the network node when the original configuration is compatible. But we still need to make some changes to the network configuration file definition:

The old version network.toml looks like:

port = 4000
enable_tls = true
id_card = 9
[[peers]]
    ip = "127.0.0.1"
    port = 4001
    common_name = "test1.cita"
[[peers]]
    ip = "127.0.0.1"
    port = 4002

In the version of v0.22.0, we will discard the item id_card and common_name.

In the old version, when a new node is added to the network, we need to change the item [[peers]] in all
nodes' network.toml to reconstruct the network. It is a very complicated operation. But in v0.22.0, the item [[peers]] means known nodes in the network, you can set only one [[peers]], then it can discovery all the network nodes through a discovery protocol.

Framework

  • [Optimization] Replace std channel with crossbeam channel. @kaikai @Yaorong
  • [Optimization] Reconfigure the parameters of rocksdb, and this can greatly reduce the .sst files in the database. @jerry-yu

Executor

  • [Fix] Executor crashes when receives staled BlockWithProof. @WPF @keroro520

Network

  • [Feature] The network service is refactored by using the P2P protocol. @Yaorong

Consensus

  • [Fix] Consensus goes into panic when timer min peek is extremely close to Instant::now(). @KaoImin

RPC

  • [Optimization] Update test token info. @kaikai
  • [Feature] Add from to body of getBlockByNumber and getBlockByHash. @CL
  • [Fix] Fix the missing CORS header. @yangby

Scripts

  • [Optimization] Format Python codes. @WPF

Doc

  • [Doc] Update Rust SDK info in readme. @u2
  • [Doc] More info about automatic execution. @wangfh666
  • [Doc] Fix start CITA command in log management. @77liyan

更新日志

升级说明

v0.22.0 版本的节点配置文件可以与 v0.21 的兼容,这意味着你可以直接使用 v0.21 的节点配置文件来启动v0.22.0。但是,由于在 v0.22.0 版本引入了 P2P 协议,这是与 v.21 运行的节点不兼容的 (两者采用了不同的节点发现和数据传输协议)。所以,在升级时,需要将网络中的所有节点同时升级成到 v0.22.0 。

请参考 升级操作说明 升级节点。

新特性描述

在 v0.22.0,我们将 P2P 集成到了网络服务中,可以使节点之间能够自动发现。在设计上,我们对网络配置文件做了向前兼容。不过,与 v0.21 的配置文件相比,v0.22.0 的配置文件还是做了如下一些改变:

v0.21 的配置文件如下:

port = 4000
enable_tls = true
id_card = 9
[[peers]]
    ip = "127.0.0.1"
    port = 4001
    common_name = "test1.cita"
[[peers]]
    ip = "127.0.0.1"
    port = 4002

在 v0.22.0 的配置文件中,我们将忽略 id_cardcommon_name 这两个配置项(如果你重新写配置文件,这两个配置项可以不写)。

在 v0.21 以前的版本,如果你打算新添加一个节点到网络中的话,需要更改所有已经在运行的节点配置文件 network.toml 来重构建这个网络,这是一个很麻烦的操作!但在 v0.22.0 中,配置项中的 [[peers]] 代表的是网络中的已经节点,你只需要配置一个已经节点,它就能通过网络发现协议发现其它节点并自动加入到网络中。

Framework

  • [Optimization] 使用 crossbeam channel 替换 std channel。@kaikai @Yaorong
  • [Optimization] 重新优化 rocksdb 的配置参数, 使数据库中的 .sst 文件大幅减少。 @jerry-yu

Executor

  • [Fix] 修复因 staled BlockWithProof 而引起 executor 崩溃的问题。 @WPF @keroro520

Network

  • [Feature] 使用 P2P 协议重构 network 服务。 @Yaorong

Consensus

  • [Fix] 修复因时钟间隔非常接近当前时间而引起共识崩溃的问题。 @KaoImin

RPC

  • [Optimization] 更新测试token的信息。 @kaikai
  • [Feature] 在 getBlockByNumbergetBlockByHashbody 中添加 from 字段。 @CL
  • [Fix] 修复 JSON-RPC 跨域访问问题。 @yangby

Scripts

  • [Optimization] 格式化 Python 代码。 @WPF

Doc

  • [Doc] 在 readme 中更新 Rust SDK 的信息。 @u2
  • [Doc] 为自动执行这个特性添加更多说明。 @wangfh666
  • [Doc] 在日志管理中修复 CITA 启动命令说明。@77liyan

v0.21.1

15 Mar 14:11
Compare
Choose a tag to compare

Fix the issue about high CPU usage caused by too many sst files.
Check the details at #206


修复了由于 sst 文件过多导致的 CPU 占用过高的问题。
更多细节请查看 #206

v0.20.3

11 Mar 11:13
Compare
Choose a tag to compare

Fix the issue about high CPU usage caused by too many sst files.
Check the details at #206


修复了由于 sst 文件过多导致的 CPU 占用过高的问题。
更多细节请查看 #206

v0.21 Knife-Shaved-Noodles

19 Feb 12:30
83b1f1e
Compare
Choose a tag to compare

After the Lunar New Year, we are pleased to announce that CITA v0.21 is coming!

In this new version, we spent a lot of time on optimization. We refactored the executor module to make it more simple and readable, removed some useless dependencies and updated script to simplify user usage.
Fixing bug is also essential.
Moreover, We have added a few new features, such as contract auto-execution, which gives chain owners more flexible management, enable parsing hostname directly in network.toml.

The most exciting news is that our new documentation site is online, providing a more detailed description and friendly interface to help everyone use CITA.


农历中国年后,期待已久的新版本 CITA v0.21 来了 !

在新版本中,我们花费很多时间在项目优化方面。重构了复杂难懂的 Executor 模块,去掉了一些无用的依赖,重写了部分脚本简化用户使用。 修复 bug 是必不可少的,与此同时我们也增加了少许新特性,例如合约自动执行功能,为链的拥有者提供了更灵活的管理方式。

令人兴奋的是我们的新版文档网站上线了,提供了更详细的说明和更友好的界面来帮助大家使用 CITA,欢迎大家使用 CITA 来做一些酷酷的事情。

Knife-Shaved-Noodles

CHANGELOG

CITA-Framework

  • [Optimization] Upgrade default rust toolchain to stable. @yangby
  • [Optimization] Remove useless dependencies. @yangby
  • [Optimization] Compact block Relay. @u2 @yangby

Executor

  • [Feature] Automatic execution. @kaikai
  • [Optimization] Enable changing size of global cache in StateDB. @lhf
  • [Refactor] Decouple executor and postman. @keroro520 @WPF
  • [Configuration] Deprecate --genesis command option, instead place into executor.toml. @keroro520
  • [Configuration] Add argument about timestamp uint in executor.toml to compatibility with Ethereum.@zhiwei
  • [Optimization] Change state db type to ensure safe reference. @WPF
  • [Optimization] Remove unused code in state db. @WPF
  • [Optimization] Add more tests in executor and postman. @WPF
  • [Optimization] Add block priority in postman. @keroro520
  • [Refactor] Decouple global sysconfig from transactionOptions. @kaikai
  • [Optimization] Deprecate some dangerous clone usage in block and state. @keroro520
  • [Optimization] Remove cached latest hashes. @zhiwei
  • [Fix] Fix problem in zk privacy. @zhiwei
  • [Fix] Fix defects in snapshot. @keroro520

Chain

  • [Optimization] Rename crypto enum. @zhiwei

Auth

  • [Optimization] Introduce a quick check for history heights. @zhiwei

Network

  • [Feature] Enable parsing hostname directly in network.toml. @driftluo
  • [Fix] Fix bug for network not send all msg. @jerry-yu

Consensus

  • [Optimization] Add a min-heap timer. @KaoImin
  • [Optimization] Optimize wait time for proposal, prevote and precommit. @jerry-yu

RPC

  • [Fix] The chainIdV1 in the response of getMetaData is hex string, so it should have 0x-prefix. @yangby
  • [Optimization] Split libproto operations from Jsonrpc. @zeroqn
  • [Feature] Add from field in Gettransaction rpc interface. @zeroqn
  • [Optimization] Upgrade hyper version and split Service and Server. @zeroqn
  • [Fix] Fix getFilterChanges interface, the hash array returned in the case of a block filter starts from the next block. @WPF

System Contract

  • [Feature] Change default quotaPrice to 1000000. @WPF
  • [Optimization] Take interfaces and test contracts out as a dependent submodule. @kaikai

Scripts

  • [Feature] Store their own address for each node. @yangby
  • [Configuration] Rename checkPermission to checkCallPermission. @kaikai
  • [Feature] Check the maximum number of consensus nodes. @zhiwei
  • [Configuration] Optimize usage of backup and clean command. @keroro520
  • [Optimization] Add exit info about creating genesis. @kaikai
  • [Feature] Support start 4 nodes in docker compose. @zhiwei

Test

  • [Optimization] Split large CI jobs. @u2
  • [Optimization] Add test about amend operation. @zhiwei
  • [Optimization] Add test to ensure genesis compatibility. @kaikai
  • [Optimization] Add test about snapshot. @keroro520

Doc

Tool

  • [Optimization] Split util module into standalone crates. @yangby
  • [Refactor] Combing the snapshot logic and rewrite snapshot_tools. @keroro520

更新日志

CITA-Framework

  • [Optimization] 升级默认的 Rust toolchain 到稳定版 @yangby
  • [Optimization] 移除无用的依赖. @yangby
  • [Optimization] Compact block Relay. @u2 @yangby

Executor

  • [Feature] 自动执行功能 @kaikai
  • [Optimization] StateDB 全局缓存大小可修改 @lhf
  • [Refactor] 接耦 executor 和 postman @keroro520 @WPF
  • [Configuration] 去掉 --genesis 命令行项,在 executor.toml 配置中指定 @keroro520
  • [Configuration] 在executor.toml 添加关于时间戳的参数,以保持对以太坊的兼容 @zhiwei
  • [Optimization] 为了保证安全引用改变 state db 类型 @WPF
  • [Optimization] 移除 state db 无用的代码. @WPF
  • [Optimization] executor 和 postman 中添加更多的测试 @WPF
  • [Optimization] postman 中添加块优先级 @keroro520
  • [Refactor] 从 transactionOptions 解耦出 global sysconfig @kaikai
  • [Optimization] Deprecate some dangerous clone usage in block and state. @keroro520
  • [Optimization] 移除最新哈希的缓存 @zhiwei
  • [Fix] 修复zk privacy 问题 @zhiwei
  • [Fix] 修复快照缺陷. @keroro520

Chain

  • [Optimization] 重命名 crypto 枚举. @zhiwei

Auth

  • [Optimization] 采用历史高度的快速检查 @zhiwei

Network

  • [Feature] 在 network.toml 直接解析主机名. @driftluo
  • [Fix] 修复 network 没有发送所有消息的 bug @jerry-yu

Consensus

  • [Optimization] 添加一个最小堆计时器 @KaoImin
  • [Optimization] 优化 proposal, prevote 和 precommit 的等待时间 @jerry-yu

RPC

  • [Fix] getMetaData 返回的 chainIdV1 是一个字符串,应包含 0x前缀 @yangby
  • [Optimization] Split libproto operations from Jsonrpc. @zeroqn
  • [Feature] 在 Gettransaction rpc 接口中添加 from 字段 @zeroqn
  • [Optimization] 更新 hyper 版本并拆分 ServiceServer @zeroqn
  • [Fix] 修复 getFilterChanges 接口,当 block filter 从下一个块开始监听时返回包含当前块的哈希数组 @WPF

System Contract

  • [Feature] 默认 quotaPrice 改为 1000000. @WPF
  • [Optimization] 合约接口和测试合约作为单独的 submodule @kaikai

Scripts

  • [Feature] 保存每个节点的地址 @yangby
  • [Configuration] 重命名 checkPermissioncheckCallPermission @kaikai
  • [Feature] 检查共识节点的最大个数 @zhiwei
  • [Configuration] 优化 backupclean 命令的用法 @keroro520
  • [Optimization] 添加生成创世文件的错误信息 @kaikai
  • [Feature] 支持用 docker compose 启动四个节点. @zhiwei

Test

  • [Optimization] 拆分大的 CI 任务. @u2
  • [Optimization] 添加关于 amend 操作的测试 @zhiwei
  • [Optimization] 添加创世文件兼容性的测试 @kaikai
  • [Optimization] 添加关于快照的测试 @keroro520

Doc

  • [Doc] 完成系统合约接口的文档 @kaikai
  • [Doc] 更新 executor.toml 中的 crypto 类型和时间戳配置. @zhiwei
  • [Doc] cita-bft 共识更多细节描述 @KaoImin
  • [Doc] 更新 readme 中的 SDK 信息. @zhouyun-zoe
  • [Doc] 添加节点命令的描述 @WPF
  • [Doc] 添加一个新的 文档网站 @zhouyun-zoe

Tool

  • [Optimization] 把 util 模块拆分为独立的 crates @yangby
  • [Refactor] 梳理快照逻辑并重写 snapshot_tools @keroro520

Upgrade Note

Older version upgrades the v0.21 version requires node configuration modifications.

  • Adding the following three configurations in each node's executor.toml

The old version executor.toml:

Journaldb_type = "archive"
Prooftype = 2
Grpc_port = 5000

The new version executor.toml:

Journaldb_type = "archive"
Prooftype = 2
Grpc_port = 5000
Genesis_path = "./genesis.json"
Statedb_cache_size = 5242880
Eth_compatibility = false
  • Modifying cita-execuror configuration item in each node's forever.toml:

The old version forever.toml:

[[process]]
Name = "cita-executor"
Command = "cita-executor"
Args = ["-g","genesis.json","-c","executor.toml"]
Pidfile = ".cita-executor.pid"
Respawn = 3

The new version forever.toml:

[[process]]
Name = "cita-executor"
Command = "cita-executor"
Args = ["-c","executor.toml"]
Pidfile = ".cita-executor.pid"
Respawn = 3

After completing the above modifications, following Upgrade Instructions.


升级提示

旧版本升级 v0.21 最新版本所需节点配置修改如下:

  • 新版本节点 executor.toml 添加如下三项配置:

旧版本如下:

journaldb_type = "archive"
prooftype = 2
grpc_port = 5000

新版本如下:

journaldb_type = "archive"
prooftype = 2
grpc_port = 5000
genesis_path = "./genesis.json"
statedb_cache_size = 5242880
eth_compatibility = false
  • 新版本节点 forever.toml 关于 cita-execuror 配置项:

旧版本如下:

[[process]]
name = "cita-executor"
command = "cita-executor"
args = ["-g","genesis.json","-c","executor.toml"]
pidfile = ".cita-executor.pid"
respawn = 3

新版本如下:

[[process]]
name = "cita-executor"
command = "cita-executor"
args = ["-c",...
Read more

v0.19.1

31 Jan 09:07
e60a088
Compare
Choose a tag to compare

Fix the bug of version 0.19 that ordinary nodes can't sync blocks from the consensus nodes with a special situation.

Check the details at issue 201.

v0.20.2

27 Nov 14:02
Compare
Choose a tag to compare

CHANGELOG

Fixed a bug that getting blockhash in solidity contract will get uncertain result.

pragma solidity ^0.4.24;
contract Test {
    bytes32 public hash;

    function testblockhash() public {
        hash = blockhash(block.number-1);
    }
}

Deploy this contract, then send transaction to call testblockhash.
Once one of the nodes receives the transaction, the chain will stop growing.

It is recommended that users of previous versions upgrade to the latest version.

v0.20.1

15 Nov 05:59
c011688
Compare
Choose a tag to compare

CHANGELOG

Fixed a bug that Network could not process domain names.

v0.20 Mitten Crab

09 Nov 11:10
d6df26c
Compare
Choose a tag to compare

CHANGELOG

We are pleased to announce that CITA v0.20 is released! In this season of eating crabs, we brought a new version of Mitten Crab.
In this new version, we finally supported the fork! This means that our following version will always be forward compatible. At the same time, the new version also supports for TLS communication encryption based on self-signed certificates, so the communication between nodes will become more secure. In the new version, we further optimized the network, upgraded the related infrastructure (rustc compiler and rocksdb, etc.), fixed some bugs, and added a lot of documentation.

Mitten Crab

Compatibility

  • You need to upgrade all the nodes at the same time, follow the steps below:
    • Stop all the nodes;
    • Upgrade all the nodes;
    • Use the bft-wal tool to manually convert the log format of BFT wal;
    • Restart all the nodes.
    DATA_PATH=./test-chain/0/data ./bin/bft-wal

Protocol

Bootstrap

  • [Optimization] Force the use of --super_admin to configure the administrator account when using create_cita_config.py to create a new chain.

Framework

  • [Upgrade] Upgrade rustc to nightly-2018-10-05, and update the docker image (latest image cita/cita-run:ubuntu-18.04-20181009).

Executor

  • [Deprecated] Deprecate the use of delay_block_number.
  • [Refactor] Use BlockID explicitly in methods that require the use of BlockID instead of using a fuzzy Default value.
  • [Refactor] Refactor duplicated codes in both of Executor and Chain.
  • [Refactor] Refactor some unsafe codes.

Chain

  • [Upgrade] Upgrade RocksDB.

Auth

  • [Feature] Add the check of the version field in the transaction.

Network

  • [Refactor] Refactor network client.
  • [Upgrade] Upgrade network server.
  • [Feature] Support for TLS communication encryption based on self-signed certificate.
  • [Fix] Parsing will stop immediately when the body of messages between nodes is too large.

RPC

  • [Fix] Fix the problem that the website returned by the getMetaData interface is incorrect.
  • [Fix] The error information returned by the sendRawTransaction interface may be inconsistent when there are duplicate transactions.
  • [Feature] Add the pending type in the BlockTag type.
  • [Fix] The exit code caused by the configuration file exception is corrected to 2.

System Contract

  • [Fix] Fix user authentication problem inside the group when the permission management is enabled.

Test

  • [Optimization] Optimize the efficiency of system contract testing.

Doc

  • [Docs] Add system contract interface documents.
  • [Docs] Add more English document.