Releases: witnet/witnet-rust
testnet-3 (0.3.0) — The One With Reputation
Testnet-3 is live! This new major release includes many features that extremely enhance the Witnet Testnet in many ways and bring us closer than ever to the eventual release of the Witnet Mainnet late this year:
- The Reputation Engine is already in place. This is one of the most important parts of the Witnet node, as it’s the one in charge of computing the reputation of every witness in the system, as well as their eligibility for solving data requests and producing new blocks in the chain.
- We have segregated transactions by type inside blocks. This change has indeed a deeper transcendence that its may seem at first sight, as it will allow more efficient block validation (which translates to a smaller CPU and memory footprint) and will dramatically reduce the gas cost of validating Witnet transactions in Ethereum, which is one key point in the Witnet Bridge Interface.
0.2.1
chore(cargo): update cargo.lock for 0.2.1 release
testnet-2 — The One That Grew A Lot
Testnet-2 is out! This new major release includes many changes that extremely improve the security and stability of the Witnet Testnet:
- Improved and more efficient validations for signatures, transactions, blocks and RADON scripts.
- Changed how transaction IDs are computed to ensure signatures won't affect them - thus preventing potential malleability-related attack vectors.
- All signature operations have been moved into a single Actix actor to ensure private keys are managed securely in memory. All our cryptographic algorithms have also been bundled into a single crate
- The wallet API now supports subscriptions (Pub/Sub), which enables client apps like Sheikah to receive transactions and blocks in real time.
- New RADON operators:
String::to_float
,Array::get
andMixed::to_array
. - The storage manager component now supports Transparent Data Encryption using AES-CBC.
- New Merkle tree building algorithm, supporting "progressive merkleization".
- We have updated the protobuf-convert Rust crate to add support for skipping specific fields of structs when serializing protocol messages.
- The Sheikah desktop client app is progressing smoothly, with many new features coming in the next week, including a visual editor for data requests and RADON scripts. UX FTW!
The witnet-rust basecode is growing at light speed, and it now comprises many different components intended to work in the Witnet ecosystem:
- node: a fully validating and archival Witnet blockchain node.
- wallet: a separate server for managing Witnet keys and abstracting the complexity of creating transactions.
- crypto: library implementing all the crypto-related operations used by Witnet, including signatures, hash functions and verifiable random functions.
- rad: an interpreter for [RADON] scripts included in Witnet data requests.
- storage: the convenient local storage solution used by node and wallet.
- p2p: modules for managing peer sessions and connections.
- data_structures: data structures common to all other components.
- validations: functions that validate Witnet protocol data structures.
- schemas: Protocol Buffer schemas for the Witnet protocol.
Members of the Witnet project are also developing and maintaining these other related Rust crates:-
- protobuf-convert: macros for convenient serialization of Rust data structures into/from Protocol Buffers.
- async-jsonrpc-client: event-driven JSON-RPC client with support for multiple transports
testnet-1.2 — The One With Protobuf
Includes many improvements and new features:
- Changed our serialization format from FlatBuffers to ProtoBuf, which is more standard and robust
- Revamped node synchronization process to make it more reliable and performant
- Implemented a novel strategy for preventing replay attacks in case of hard forks (nodes with incompatible protocol constants will refuse to peer with each other)
- Rewrote our TCP codec to support longer messages (bigger blocks, basically 😏)
- The logic for enabling mining once the node is synced is now smarter than ever
- Many dependencies have been upgraded to more stable versions
- You can now customize the synchronization period of your own node
- Started to build the
witnet-wallet
Rust module, which will act as the backend for Sheikah, our desktop wallet app. This will also make it super easy for anyone to write their own client apps (wallets, block explorers, etc)
testnet-1.1
General stability improvement.
testnet-1 — The First One (aka "The One On The Boat")
The testnet that is now live showcases the core features of the Witnet protocol and its blockchain as depicted in the Witnet whitepaper. Namely, it allows for decentralized and trustless retrieval, aggregation and consensus-building around datapoints from multiple online sources by using a game theoretic scheme that creates incentives for a subset of nodes in the network elected through a cryptographic sortition algorithm to perform such tasks without tampering with the data.
This testnet, which is already live and publicly available for anyone to join, is conceived as a sandbox for proving the robustness of the protocol and experimenting addition of new features.
In our road to to taking Witnet into the mainnet stage, we will be making subsequent releases of the testnet. This will allow us to keep the current pace of innovation and ship radical improvements without having to deal with backwards compatibility.