v3.0.0-rc1
Pre-release
Pre-release
Mandel v3.0.0-rc1 Release Notes
This is the first RELEASE CANDIDATE for the first Mandel release.
Mandel is a fork of eosio, developed by ƒractally with funding from the EOS Network Foundation. Mandel v3.0 is based on eosio v2.0.13, which provides a solid foundation for future development. It includes cherry-picked features from eosio v2.1.x and eosio develop-boxed. It also includes some new features.
Changes from v2.0.13
Hard Forks
Name | From | Description |
---|---|---|
GET_CODE_HASH |
new | The get_code_hash intrinsic allows contracts to check if an account has a contract set, get the hash of that account's contract, plus get the number of times that contract has changed. |
ACTION_RETURN_VALUE |
v2.1 | The set_action_return_value intrinsic allows actions to return values which appear in the action trace. |
CONFIGURABLE_WASM_LIMITS2 |
v2.1, new | This allows chain operators to increase various limits on WASM files. This is based on 2.1's CONFIGURABLE_WASM_LIMITS , but contains additional fixes. |
BLOCKCHAIN_PARAMETERS |
v2.1 | This provides an extensible mechanism to configure blockchain parameters. It includes the ability to configure the maximum return value size supported by ACTION_RETURN_VALUE . |
Other Notable Changes
- Chainbase ported from 2.1 has significant performance enhancements plus automatic huge page support. See EOSIO/eos#9577 for configuration changes.
- Supports snapshot versions 4 and 5 from v2.1.
- Has hooks to support
cltester
anddebug_plugin
.cltester
supports creating deterministic test cases for contracts.debug_plugin
supports debugging contracts usinggdb
andvscode
.cltester
anddebug_plugin
come with clsdk. onblock
logging helps diagnose system contract failures.- Enhanced snapshot reporting from v2.1:
v1/producer/create_snapshot
now includes the head block number, head block time, and snapshot format version in its output.
ABI Format Changes
The ABI is now at version 1.3
. A new field action_results
, a binary extension, is after the variants
field. action_results
is an array of struct with the following fields:
eosio::name name; // Name of the action
string result_type; // Return type
There's an entry in action_results
for each action which returns data using the set_action_return_value
intrinsic.
SHiP Format Changes
get_status_result_v0
has a new binary extension field,chain_id
.action_trace_v1
is a new struct version which addsreturn_value
.chain_config_v1
is a new struct version which addsmax_action_return_value_size
.wasm_config_v0
is a new struct which stores configurable wasm limits.global_property_v1
has a new binary extension field,wasm_configuration
.
PRs
- #1: Use a fork of 2.1's fc. The fc fork reintroduces code that 2.1 removed, but 2.0 still depends on. A future release may remove this reintroduced code.
- #2: Backport 2.1's eos-vm. This is a step toward backporting
CONFIGURABLE_WASM_LIMITS
. - #3: Backport 2.1's SHiP refactor, but without most of the SHiP format changes. This turns SHiP into a library, needed for
cltester
. Its only user-facing change is the addition ofchain_id
as a binary extension toget_status_result_v0
. - #4: Backport 2.1's chainbase. This includes significant performance enhancements plus automatic huge page support. See EOSIO/eos#9577 for configuration changes.
- #5: Lighter-weight cicd system based on GitHub Actions. This runs the in-repo test suite using Ubuntu 20.04 (unpinned build).
- #6: Backport 2.1's tester cmake changes. This allows tests in https://github.com/eosnetworkfoundation/mandel-contracts to build using Mandel.
- #7: Backport 2.1's
ACTION_RETURN_VALUE
hard fork. This adds theset_action_return_value
intrinsic, which allows contracts to place return values into the action trace. This PR addsaction_trace_v1
andchain_config_v1
to SHiP. - #8: Backport 2.1's
CONFIGURABLE_WASM_LIMITS
hard fork, with additional fixes. The resulting hardfork isCONFIGURABLE_WASM_LIMITS2
. This allows chain operators to increase various limits on WASM files. This PR also brings in 2.1's snapshot format versions 4 and 5. Mandel 3.0 should be able to import 2.1's snapshots as long as no 2.1 hard forks were active, though this hasn't been tested. - #11: Backport 2.1's
BLOCKCHAIN_PARAMETERS
hard fork. This provides an extensible mechanism to configure blockchain parameters. It includes the ability to configure the maximum return value size supported byACTION_RETURN_VALUE
. - #12: New
GET_CODE_HASH
hard fork provides theget_code_hash
intrinsic. This allows contracts to check if an account has a contract set, get the hash of that account's contract, plus get the number of times that contract has changed. - #14: Backport 2.1 WASM tests.
- #15: Add SHiP support for
CONFIGURABLE_WASM_LIMITS
. This addswasm_config_v0
andwasm_config
. It addswasm_configuration
as a binary extension toglobal_property_v1
. - #16: Switch to develop-boxed's eos-vm. This adds contract profiling support and is a step toward supporting WASM debugging.
- #17: Add hooks for clsdk or other development tools. This allows
cltester
to integrate with Mandel. It also allowsdebug_plugin
(comes with clsdk) to integrate with Mandel. - #18: Port onblock logging from EOSIO/eos#11038. This helps diagnose system contract failures.
- #19: Backport 2.1 enhanced snapshot reporting.
v1/producer/create_snapshot
now includes the head block number, head block time, and snapshot format version in its output. - #24: SHiP compressed deltas may exceed 4GB.
- #25: Replace N macro with operator ""_n.
- #26: Remove fc::optional and fc::static_variant.
- #27: Bump version to v3.0.0-rc1.
- #28: Increment codegen_version.