Releases: citahub/cita
v0.19 Osmanthus Cake
Kind of late... But happy Mid-Autumn Festival! Believe you all having had a wonderful time with family~
This weekend, we brought a new version, named Osmanthus Cake(桂花糕 in Chinese) to everyone!
In this version, we add several system contracts to help you better manage the system. One is called emergency braking. Once the emergency braking mode is activated, only the transactions sent by the admin account can be accepted by the chain. It can be used in some extreme conditions, such as the operators of the chain need to carry out some upgrades and maintenance without others to interfere.
Another is the version manager, which is prepared for the subsequent fork of CITA to solve the data compatibility problem.
We also add the quota price manager contract according to the feedback from customers and the market. Now, quota price can be set by the admin account in this version when building a public permissioned blockchain, check the document for more details.
Moreover, we put lots of efforts to improve CITA quality and stability in this month - more comprehensive testing under production environment and more detailed documentation.
CHANGELOG
CITA-Framework
- [refactoring] Improve the user experience of CITA scripts
Executor
- [feature] Support superadmin to set quota price
- [feature] Support that the block reward can be chosen to return to the certain address
- [optimization] SysConfig reload based on whether there is a parameter change
- [fix] Fix loading problem of SystemConfig configuration
- [fix] Fix the situation that the transfer cannot be successful if the charge mode is enabled
- [fix] Fix the situation that account balance may overflow when transferring in charge mode
Chain
- [feature] Add the cache_size entry to the configuration file
Auth
- [feature] Modify the judgment logic of the transaction under emergency braking situation
RPC
- [feature] GetMetaData support query economic model and protocol version number
- [optimization] Modify some ErrorMessage
Contract
- [feature] Isolate some permissions (send_tx, create_contract) to make them can be set separately in configuration
- [fix] Eliminate compilation warnings for system contracts
- [fix] Eliminate errors and warnings detected by Solium on system contracts
- [feature] Add Emergency braking system contract
- [feature] Add version control system contract
- [feature] Add quota price manager system contract
Test
- [ci] Increase the specification check of system contracts
- [ci] Add clippy for code review
- [optimization] Clean up smart contract unit tests that are no longer maintained
- [ci] Fix the problem of sporadic stuck in JSON Mock test
Doc
- [doc] Replace txtool with cita-cli in document
- [doc] Modify ‘amend’ operation related documents
v0.18 Egg Fried Rice
We are pleased to announce the release of CITA v0.18!
As the v1.0 release is getting closer, the focus is increasingly on ensuring the stability and reliability of CITA services. During this month's development, we pay lots of efforts on destructive testing to ensure that CITA can provide more reliable services.
In terms of feature, we further improved the usability of the cross-chain by adding the sidechain exit mechanism, in which two RPC interfaces were added to cross-check the data of the side chain.
We also add a system contract to do the batch transaction. when you want to make multiple calls to other contracts and the calls need to be in a strict order, this system contract can be used to ensure that the order of the transactions is exactly the same as expected.
Cryptographic Algorithm of CITA also made some changes. After combing the dependencies, we replace the sha3 algorithm of the C library with Keccak. Library of China Cryptographic Algorithm is also replaced by a new rust implementation with better performance, completed by a collaborative effort between the Cryptape Technology LLC. and BEIHANG KNOC LAB.
v0.18 remains compatible with v0.17. So you can upgrade from v0.17 to v0.18 by following the instructions below.
- Compared to v0.17, the v0.18 system contract has been modified. Users can choose to upgrade only binary, that is, replace all executable files in the bin folder in the distribution directory.
scripts/config_tool/config_example/auth.toml
addedwal_enable
, default value isfalse
- For existing nodes, add a line to each node's
auth.toml
configuration file:wal_enable = false
ps. This release is converted from Egg Fried Rice which is v0.18 release master's favorite homemade meal!
Change Log:
CITA-Framework
- [feature] Replaced sha3 with Keccak algorithm library
- [feature] New Library of China Cryptographic Algorithm
- [optimize] Remove useless code and dependencies
- [optimize] Add more CI
Executor
- [fix] Fix potential deadlock, multi-threaded data inconsistency
- [fix] Fix state machine state homing problem
- [fix] Fix Transaction decode logic error
- [fix] Fix blacklist problems that accounts cannot be removed from blacklist automatically when they come to have tokens
- [optimize] Add the monitor of chain status
- [feature] Modify some log levels
- [fix] Automatic synchronization when the Executor state is inconsistent with Chain
- [optimize] Optimize state synchronization speed between Executor and Chain
- [feature] Add the acquisition and verification of the state certificate
Chain
- [optimize] Add a notification of Executor status
- [fix] Fix the problem about saving the latest proof when syncing
- [fix] Fix some usability issues in the snapshot
Network
- [refactoring] Refactoring synchronization logic
- [feature] Output status log
- [fix] Close the connection to the deleted node when the Network configuration file is hot updated
Bft
- [fix] Fix the problem about saving temporary proof
Auth
- [feature] Transaction's value field validation is modified to be required to U256 or [u8;32], otherwise, an invalid value is returned.
- [fix] Transaction's to field validation is more strict, passing invalid parameters will return an error directly
RPC
- [feature] Separate the JSON-RPC type definition library for the client to use
System Contract
- [feature] Add cross-chain management contract to the process of state proof
- [feature] Supports batch transaction
Doc
- [feature] Update the cross-chain document with more description about sidechain exit mechanism.
v0.17 Flos Sophorae Pancake
Welcome to CITA v0.17!
This release represents a major milestone on the road to CITA v1.0 targeted for release in October 2018! Why do we say so?
In the first place, CITA v0.17 introduces several significant new features. The biggest feature in v0.17 is the support for the token contract, which means you can choose to introduce economics incentives when building your own network!
Another notable new feature is the support for the snapshot. CITA provided a tool to backup blockchain data by taking the snapshot, which can help you to re-sync the blockchain data in a short time. This largely increases the resiliency and reliability of CITA.
Moreover, lots of our work were focused on bug fixes to improve CITA quality in recent two months, which demonstrates v0.17 would be our most stable version so far!
ps. The most delicious food I can imagine is the food enjoyed with family. So this release is converted from a Chinese traditional homemade food - Flos Sophorae Pancake.
CHANGELOG
CITA-Framework
- [feature] Enable rabbitmq web management
- [fix] Merge env_cn.sh into env.sh
- [feature] Add economical model support Public-Permissioned Blockchain
Executor
- [fix] Fix EVM lost builtin
- [fix] Fix Executor Result cache
- [feature] Support contract amend, superadmin can modify the code and data of the contract
Chain
- [fix] Fix nodes concurrent start failed
- [fix] Fix block number go down
- [fix] Fix authorities list shuffle test
- [feature] Support set value in genesis
- [fix] Fix infinite loop triggered by sync block
Auth
- [refactoring] Refactor auth
Consensus
- [fix] Fix consensus stop after restart all nodes
Contract
- [fix] Fix quota check
- [fix] Fix smart contract static call bug
RPC
- [fix] Rename JSON-RPC methods.
- [Refactoring] Refactoring JSON-RPC types.
Test
- [optimize] Speed up CI
- [optimize] Add solc unit test
Doc
- [doc] Support multiversion
- [doc] Adjust table of contents
v0.16 Kutto Roti
CITA v0.16 is coming! Among the new changes we introduced in this release, the most shinny one is a simple cross-chain protocol, which will facilitate privacy and improve perforamce by side-chain method. Find more details in document here.
We add experimental support to Go executor, with which users can write and run native contract in Go!
An global account cache is added to improve the performance of executor, which substantially improve the transaction execution performance by nearly 15%.
This release is a preparation for public permissioned blockchain release on our roadmap.
ps. This release is converted from kottu roti, a popular Sri Lankan street food!
CHANGELOG
CITA-Framework
- [feature] Simple cross-chain protocol.
- [feature] Add chain_id for different CITA network, to prevent cross chain from replay attack.
- [feature][WIP] Prepare for public permissioned blockchain.
Executor
- [feature] Add global account cache.
Chain
- [optimize] Optimize block synchronization.
- [fix] Fix pre-execution bugs.
- [fix] Fix receipt error types.
Auth
- [fix] Fix transaction broadcasting.
- [fix] Fix transaction authentication.
Consensus
- [fix] Fix bft process in some critical conditions.
Contract
- [feature] Support group-based user management.
Doc
- [doc] Add more English documents.
Orient Express
CITA v0.15 is coming!
The first thing is document. We have a New document site include all the things you want to know about CITA.
The second thing is docker. Run CITA will be very easy if you use docker. See more details in document site.
We also have other improvements, such as EVM, SDK etc. Please check the CHANGLOG as below.
ps. This release is converted from Orient Express's hand-pulled beef noodles!
CHANGELOG
CITA Framework
- [refactoring] Refactor libproto. Send message between services will be more efficient and easy.
Executor
- [feature] Upgrade EVM to support new instructions. Such as RETURNDATACOPY, RETURNDATASIZE, STATICCALL and REVERT.
Chain
- [feature] Store contract ABI into Account. So SDK can generate Java/js code even without souce code of contract.
JSONRPC
- [refactoring] Improve code quality.
System Contracts
- [feature] Improve role-based permission contract.
Document
- [doc] New document site.
Toolchain
- [tool] New docker images CITA. We recommend to use docker now and we supply some scripts to simplify this task.
v0.13 Happy Chinese New Year
CITA v0.13 comes with something new in this last release of Rooster year!
Transaction execution is extracted out from Chain service, executors like EVM and native are running in their own processes now, which means better CPU & disk utilization. With independent executor, it's easy to swap in any program written in any language to process transactions. The next step is internal sharding, stay tuned.
As CITA grows we found many inefficiencies in design, one of them is in the protobuf message format used by all services. Refactoring on them is still under way.
The last exciting change comes from our partner iPaynow. Cryptape & iPaynow has been collaborating on account model based zero-knowledge proof transaction for a while. By using ZKP private transaction users are able to send confidential transactions on blockchain, with no leakage of transaction's amount etc. ZKP transaction is still an experimental feature, use it at your own risk.
Do you know what's the chinese zodiac of 2018?
CHANGELOG
CITA Framework
- [refactoring] Create new Executor service, better transaction execution customizability.
- [refactoring] Improve message format and protocols used by microservices.
- [experimental] Account model based zero-knowledge proof transaction. Feature turned off by default.
Chain
- [fix] fix memory leaking problem
Auth
- [refactoring] Improve code quality
- [fix] fix txpool transaction deletion bug
JSONRPC
- [doc] update documents
- [fix] fix transaction query bug
System Contracts
- [feature] Improve role-based permission contract
- [feature] Support read-only configurations
Toolchain
- [tool] Update txtool dependencies
- [tool] Update admintool
- [tool] Unify configurations to toml format
v0.12 Happy New Year
Release v0.12 includes a lot of refactoring and optimizations, which make CITA even more faster and stable.
Transaction pool and related transaction preprocessing has been extracted out to be a new microservice Auth. Now transaction preprocessing can be parallelized, boost system throughput to a new level.
More API including filter* family and WebSocket protocol support has been added to JSONRPC, to make blockchain application development more easier.
A role-based user and permission management system has been implemented for better access control.
CHANGELOG
CITA Framework
- [feature] Extract transaction pool and transaction preprocessing to new Auth service.
- [feature] Support log rotating.
- [refactoring] Move consensus service to its own repository.
- [optimization] Use clippy to check code quality.
Consensus
- [optimization] Optimize voting process to reach consensus faster.
- [optimization] Optimize voting messages to reduce network cost.
Chain
- [feature] Add chain resource management.
- [optimization] Preprocess consensus proposal.
- [optimization] Reduce latency in consensus message handling.
- [optimization] Optimize block processing.
- [optimization] Optimize quota management.
- [optimization] Optimize native contract execution.
JSONRPC
- [refactoring] Refactor service, rewrite to event-driven model.
- [feature] Support WebSocket protocol.
- [feature] Support filter* API.
- [doc] Update docs.
Network
- [refactoring] Refactor code
- [feature] New block synchronization protocol.
- [optimization] Optimize network message lock.
- [fix] fix config file watch.
System Contracts
- [feature] Add role-based user and permission management.
Toolchain
- [tool] Support more than 16 local variables in solidity function.
- [tool] Deployment tool for single node environment.
- [tool] Added new tool cita-forever to monitor microservices.