EOS System Contracts v3.1.0-rc2 Release Notes
Pre-releaseThis is a RELEASE CANDIDATE for version 3.1.0. The latest STABLE release is v1.9.2.
Release 3.1.0-rc2 includes Ricardians specific to EOS in the generated ABI file for the core contract. Other contracts remain unchanged in behavior since the last stable release.
Read on for details.
Changes
The name of the repository was changed to reflect the fact that these system contracts are made specific to the needs of the EOS blockchain.
Core contract
Updated Ricardians
The Ricardians of the core contract now include the EOS User Agreement (EUA) as well as the Block Producer Agreement which is relevant to the regproducer
and regproducer2
actions.
The text of the Ricardians is included in the generated ABI file for the core contract. Note that CDT v3.0.0-rc1 had a regression which prevented the Ricardians from being included within the generated ABI file. To ensure the ABI files include the Ricardians, use CDT v3.0.0-rc2 at a minimum to compile the contracts.
Building, compatibility, and upgrading
Building
Instructions for building the system contracts are provided in the README.
This release depends on on CDT 3.0 at a minimum. A release candidate for CDT 3.0.0 is available.
Building the tests also requires Leap 3.1 at a minimum. A release candidate for Leap 3.1.0 is available. Building the tests is optional; see README for how to build with or without tests.
For now, the Leap dependency must be satisfied with a build of Leap 3.1 from source. Alternatively, look into DUNE for another way to build the contracts without needing to build CDT or Leap from source.
Note that this release has also simplified the build.sh
script and dropped some options. You can still run it with no options provided if you have CDT installed on your system and do not wish to build the tests. The script allows you to specify a custom location for CDT if you wish to use a build of CDT that you have not installed on your system. It also allows you to specify the build directory of Leap to also build the tests.
Compatibility
By default, the core contract adds additional requirements (beyond what existed in v1.9.2) that the blockchain has activated the following two protocol features: BLOCKCHAIN_PARAMETERS
and CONFIGURABLE_WASM_LIMITS2
.
The BLOCKCHAIN_PARAMETERS
protocol feature dependency is required for the enhanced setparams
action. You can choose to keep the old behavior of the setparams
action (and avoid this dependency on the BLOCKCHAIN_PARAMETERS
protocol feature) by passing -DSYSTEM_BLOCKCHAIN_PARAMETERS=OFF
to cmake.
The CONFIGURABLE_WASM_LIMITS2
protocol feature dependency is required for the new wasmcfg
action. You can avoid introducing the wasmcfg
action (and avoid this dependency on the CONFIGURABLE_WASM_LIMITS2
protocol feature) by passing -DSYSTEM_CONFIGURABLE_WASM_LIMITS=OFF
to cmake.
Upgrading
The core contract can be upgraded on an account with an already deployed v1.9.2 core contract, or v3.1.0-rc1 core contract, by simply deploying the .wasm
and .abi
files to the account. No additional actions need to be taken to complete the upgrade.
However, the blockchain must have first activated the necessary protocol features which includes BLOCKCHAIN_PARAMETERS
and CONFIGURABLE_WASM_LIMITS2
.
Further details on changes since last release
Contributors
Special thanks to the contributors that submitted patches for this release:
- @766C6164
- @arhag
Full list of changes since last release
PRs
Full Changelog: v3.1.0-rc1...v3.1.0-rc2