From 711f65b3928972a8bba1660f11e0a11b6e99b228 Mon Sep 17 00:00:00 2001 From: Sorin Stanculeanu Date: Tue, 30 Jul 2024 18:43:55 +0300 Subject: [PATCH 1/5] release v1.7.14 --- .../protocol/release-specs-v1.7.14-Interim.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 releases/protocol/release-specs-v1.7.14-Interim.md diff --git a/releases/protocol/release-specs-v1.7.14-Interim.md b/releases/protocol/release-specs-v1.7.14-Interim.md new file mode 100644 index 0000000..512db8b --- /dev/null +++ b/releases/protocol/release-specs-v1.7.14-Interim.md @@ -0,0 +1,121 @@ +[comment]: <> (tags/v1.7.14) + +# Contents + +This document explains the contents of the rc/v1.7.next1 release codenamed Interim. It is split in 2 sections: +- the **features** list containing detailed insights of the feature along with the external impact and the relevant + pull requests list +- the **smaller features and fixes** area contains the one-pull request small features or fixes along with the + external impact details + +This documentation is relevant for the `tags/v1.7.14` tag release. + +# Features + +## 1. Relayed v3 [#5741](https://github.com/multiversx/mx-chain-go/pull/5741) + +Relayed v3 feature brings a cheaper, improved version of relayed transactions, that can hold multiple inner transactions. +The inner transactions will be full transactions. + +With this feature, a fix on the base cost of relayed transactions was implemented, to follow the minimum gas rule. + +### Impact: +* There are new enable epochs definitions for this feature, called `RelayedTransactionsV3EnableEpoch`, `FixRelayedBaseCostEnableEpoch` +* There are changes to the configuration options in the `config.toml` file, a new section called `[RelayedTransactionConfig]` was added +* There is a new field in the `Transaction` structure, `InnerTransactions`, that can hold multiple other `Transaction` as part of relayed v3 +* No binary flags changes +* No API endpoints changes + +### Relevant PRs: +- [#5572](https://github.com/multiversx/mx-chain-go/pull/5572) - New approach for relayed V3, transaction structure changed +- [#5627](https://github.com/multiversx/mx-chain-go/pull/5627) - Separate fee handling for inner tx of type move balance +- [#5981](https://github.com/multiversx/mx-chain-go/pull/5981) - Added api check for recursive relayed v3 + fixed interceptor +- [#6252](https://github.com/multiversx/mx-chain-go/pull/6252) - RelayedV3 fixes +- [#6176](https://github.com/multiversx/mx-chain-go/pull/6176) - Append log events for all inner transactions failure +- [#6274](https://github.com/multiversx/mx-chain-go/pull/6274) - Rename FixRelayedMoveBalanceFlag to FixRelayedBaseCostFlag + proper fix +- [#6278](https://github.com/multiversx/mx-chain-go/pull/6278) - Fixed processTxFee for inner tx after base cost fix +- [#6280](https://github.com/multiversx/mx-chain-go/pull/6280) - Relayedv3 further fixes +- [#6297](https://github.com/multiversx/mx-chain-go/pull/6297) - Added more integration tests for non-executable inner tx + small fix on logs append +- [#6302](https://github.com/multiversx/mx-chain-go/pull/6302) - Change receivers ids relayed v3 and multi transfer integration +- [#6328](https://github.com/multiversx/mx-chain-go/pull/6328) - Fixed tests by using real FailedTxLogsAccumulator +- [#6147](https://github.com/multiversx/mx-chain-go/pull/6147) - Extra tests and coverage for relayed v3 with multiple inner transactions + +## 2. ESDT improvements [#5821](https://github.com/multiversx/mx-chain-go/pull/5821) + +The improvements implemented on ESDTs enable the dynamic NFT functionality. + +### Impact: +* There is a new enable epoch definition for this feature, called `DynamicESDTEnableEpoch` +* There are changes to the configuration options in the gas schedule files, new values were added for `ESDTModifyRoyalties`, `ESDTModifyCreator`,`ESDTNFTRecreate`,`ESDTNFTUpdate`, `ESDTNFTSetNewURIs` +* No binary flags changes +* API endpoints `/:address/nft/:tokenIdentifier/nonce/:nonce` and `/:address/esdt` will now return token type as well + +### Relevant PRs: +- [#5806](https://github.com/multiversx/mx-chain-go/pull/5806) - ESDT improvements integration +- [#5682](https://github.com/multiversx/mx-chain-go/pull/5682) - ESDT v2 implementations on SystemSC - dynamic tokens and tokenType +- [#6284](https://github.com/multiversx/mx-chain-go/pull/6284) - ESDT Improvements integration tests +- [#6194](https://github.com/multiversx/mx-chain-go/pull/6194) - ESDT improvements chain simulator tests and fixes +- [#6262](https://github.com/multiversx/mx-chain-go/pull/6262) - ESDT improvements integration tests part2 + fixes +- [#6250](https://github.com/multiversx/mx-chain-go/pull/6250) - Do not allow NFTs to be upgraded to dynamic +- [#6263](https://github.com/multiversx/mx-chain-go/pull/6263) - Add more testing scenarios +- [#6242](https://github.com/multiversx/mx-chain-go/pull/6242) - Add esdt token type api +- [#6220](https://github.com/multiversx/mx-chain-go/pull/6220) - Token type in altered accounts + +## 3. Crypto API and new Opcodes [#6139](https://github.com/multiversx/mx-chain-go/pull/6139) + +With this feature, new opcodes were enabled for developers, among with new crypto endpoints(`VerifySecp256r1`, `VerifyBLSSignatureShare`, `VerifyBLSMultiSig`). +Another improvement was EGLD as part of MultiESDTTransfer (EGLD-000000). + +### Impact: +* There are new enable epochs definitions for this feature, called `EGLDInMultiTransferEnableEpoch` and `CryptoOpcodesV2EnableEpoch` +* There are changes to the configuration options in the gas schedule files, new values were added for `VerifySecp256r1`, `VerifyBLSSignatureShare`,`VerifyBLSMultiSig` +* No binary flags changes +* No API endpoints changes + +### Relevant PRs: +- [#6334](https://github.com/multiversx/mx-chain-go/pull/6334) - Multi transfer execute by user flag +- [#6313](https://github.com/multiversx/mx-chain-go/pull/6313) - Added egld with multi transfer test scenario + +## 4. Refactor persister factory [#6001](https://github.com/multiversx/mx-chain-go/pull/6001) + +The storage unit package was refactored, adding the option of using static and non-static storers. + +### Impact: +* No activation epoch +* No configuration files changes +* No binary flags changes +* No API endpoints changes + +### Relevant PRs: +- [#5797](https://github.com/multiversx/mx-chain-go/pull/5797) - Use create with retries in persister factory +- [#5995](https://github.com/multiversx/mx-chain-go/pull/5995) - Persister tmp file path +- [#6010](https://github.com/multiversx/mx-chain-go/pull/6010) - Update to use latest storage version + +# Smaller features or fixes + +- [#5851](https://github.com/multiversx/mx-chain-go/pull/5851) - Overridable config structs +- [#6116](https://github.com/multiversx/mx-chain-go/pull/6116) - Added map support for overridable configs +- [#5897](https://github.com/multiversx/mx-chain-go/pull/5897) - Added the possibility to define more protocol IDs for p2p networks +- [#6186](https://github.com/multiversx/mx-chain-go/pull/6186) - Proposer optimisation +- [#6225](https://github.com/multiversx/mx-chain-go/pull/6225) - Update enable epochs flags +- [#6184](https://github.com/multiversx/mx-chain-go/pull/6184) - Chain simulator improvements +- [#6182](https://github.com/multiversx/mx-chain-go/pull/6182) - Chain simulator custom transactions sender component +- [#6173](https://github.com/multiversx/mx-chain-go/pull/6173) - Chain simulator force change of epoch +- [#6182](https://github.com/multiversx/mx-chain-go/pull/6182) - Chain simulator custom transactions sender component +- [#6150](https://github.com/multiversx/mx-chain-go/pull/6150) - Chain simulator updates for sovereign shards +- [#6217](https://github.com/multiversx/mx-chain-go/pull/6217) - Chain simulator tests refactor +- [#6320](https://github.com/multiversx/mx-chain-go/pull/6320) - Chain simulator extra parameter for delay between vm queries +- [#6268](https://github.com/multiversx/mx-chain-go/pull/6268) - Chain simulator verify tx on send +- [#6248](https://github.com/multiversx/mx-chain-go/pull/6248) - Chain simulator remove consensus group size +- [#6018](https://github.com/multiversx/mx-chain-go/pull/6018) - TrieRecreate refactor +- [#6238](https://github.com/multiversx/mx-chain-go/pull/6238) - FIX: Destination shard id in chain simulator for meta chain addresses +- [#6292](https://github.com/multiversx/mx-chain-go/pull/6292) - Extend delegation log events for multi claim and multi redelegate rewards +- [#6117](https://github.com/multiversx/mx-chain-go/pull/6117) - Integrate new vm-common: events for "claim developer rewards" +- [#6039](https://github.com/multiversx/mx-chain-go/pull/6039) - Added missing fields on the transaction/pool by-sender request +- [#6162](https://github.com/multiversx/mx-chain-go/pull/6162) - Adjust workflow runners (MacOS) +- [#6247](https://github.com/multiversx/mx-chain-go/pull/6247) - Fixed error on withKeys +- [#6161](https://github.com/multiversx/mx-chain-go/pull/6161) - Cleanup proposal misses +- [#6322](https://github.com/multiversx/mx-chain-go/pull/6322) - Optimize "DisplayProcessTxDetails": Early exit if log level is not TRACE +- [#6333](https://github.com/multiversx/mx-chain-go/pull/6333) - Fix node/termui dockerfiles +- [#6281](https://github.com/multiversx/mx-chain-go/pull/6281) - Update Dockerfiles +- [#6275](https://github.com/multiversx/mx-chain-go/pull/6275) - Added action for building keygenerator docker images From 299af7fe04f20c7a0bd2b7313c34a4e390d07871 Mon Sep 17 00:00:00 2001 From: Sorin Stanculeanu Date: Tue, 30 Jul 2024 18:58:39 +0300 Subject: [PATCH 2/5] small improvement --- releases/protocol/release-specs-v1.7.14-Interim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/protocol/release-specs-v1.7.14-Interim.md b/releases/protocol/release-specs-v1.7.14-Interim.md index 512db8b..ec33873 100644 --- a/releases/protocol/release-specs-v1.7.14-Interim.md +++ b/releases/protocol/release-specs-v1.7.14-Interim.md @@ -61,7 +61,7 @@ The improvements implemented on ESDTs enable the dynamic NFT functionality. - [#6242](https://github.com/multiversx/mx-chain-go/pull/6242) - Add esdt token type api - [#6220](https://github.com/multiversx/mx-chain-go/pull/6220) - Token type in altered accounts -## 3. Crypto API and new Opcodes [#6139](https://github.com/multiversx/mx-chain-go/pull/6139) +## 3. Crypto API, new Opcodes and EGLD in MultiESDTTransfer [#6139](https://github.com/multiversx/mx-chain-go/pull/6139) With this feature, new opcodes were enabled for developers, among with new crypto endpoints(`VerifySecp256r1`, `VerifyBLSSignatureShare`, `VerifyBLSMultiSig`). Another improvement was EGLD as part of MultiESDTTransfer (EGLD-000000). From cf8cd5d48509f4494c503d6c869b19482fcc1765 Mon Sep 17 00:00:00 2001 From: Sorin Stanculeanu Date: Wed, 31 Jul 2024 11:39:27 +0300 Subject: [PATCH 3/5] release v1.7.15 --- releases/protocol/release-specs-v1.7.14-Interim.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/releases/protocol/release-specs-v1.7.14-Interim.md b/releases/protocol/release-specs-v1.7.14-Interim.md index ec33873..2dbfac4 100644 --- a/releases/protocol/release-specs-v1.7.14-Interim.md +++ b/releases/protocol/release-specs-v1.7.14-Interim.md @@ -1,4 +1,4 @@ -[comment]: <> (tags/v1.7.14) +[comment]: <> (tags/v1.7.15) # Contents @@ -8,7 +8,7 @@ This document explains the contents of the rc/v1.7.next1 release codenamed Inter - the **smaller features and fixes** area contains the one-pull request small features or fixes along with the external impact details -This documentation is relevant for the `tags/v1.7.14` tag release. +This documentation is relevant for the `tags/v1.7.15` tag release. # Features @@ -60,6 +60,7 @@ The improvements implemented on ESDTs enable the dynamic NFT functionality. - [#6263](https://github.com/multiversx/mx-chain-go/pull/6263) - Add more testing scenarios - [#6242](https://github.com/multiversx/mx-chain-go/pull/6242) - Add esdt token type api - [#6220](https://github.com/multiversx/mx-chain-go/pull/6220) - Token type in altered accounts +- [#6350](https://github.com/multiversx/mx-chain-go/pull/6350) - Fix missing role + Use setSpecialRole function in tests ## 3. Crypto API, new Opcodes and EGLD in MultiESDTTransfer [#6139](https://github.com/multiversx/mx-chain-go/pull/6139) From fe7d6cfe6f81b5e4f3f77f766639edc7c3e9cfdf Mon Sep 17 00:00:00 2001 From: Sorin Stanculeanu Date: Thu, 1 Aug 2024 13:59:26 +0300 Subject: [PATCH 4/5] release v1.7.16 --- releases/protocol/release-specs-v1.7.14-Interim.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/releases/protocol/release-specs-v1.7.14-Interim.md b/releases/protocol/release-specs-v1.7.14-Interim.md index 2dbfac4..736deb5 100644 --- a/releases/protocol/release-specs-v1.7.14-Interim.md +++ b/releases/protocol/release-specs-v1.7.14-Interim.md @@ -1,4 +1,4 @@ -[comment]: <> (tags/v1.7.15) +[comment]: <> (tags/v1.7.16) # Contents @@ -8,7 +8,7 @@ This document explains the contents of the rc/v1.7.next1 release codenamed Inter - the **smaller features and fixes** area contains the one-pull request small features or fixes along with the external impact details -This documentation is relevant for the `tags/v1.7.15` tag release. +This documentation is relevant for the `tags/v1.7.16` tag release. # Features @@ -61,6 +61,7 @@ The improvements implemented on ESDTs enable the dynamic NFT functionality. - [#6242](https://github.com/multiversx/mx-chain-go/pull/6242) - Add esdt token type api - [#6220](https://github.com/multiversx/mx-chain-go/pull/6220) - Token type in altered accounts - [#6350](https://github.com/multiversx/mx-chain-go/pull/6350) - Fix missing role + Use setSpecialRole function in tests +- [#6357](https://github.com/multiversx/mx-chain-go/pull/6357) - Dynamic roles singular ## 3. Crypto API, new Opcodes and EGLD in MultiESDTTransfer [#6139](https://github.com/multiversx/mx-chain-go/pull/6139) @@ -108,6 +109,7 @@ The storage unit package was refactored, adding the option of using static and n - [#6320](https://github.com/multiversx/mx-chain-go/pull/6320) - Chain simulator extra parameter for delay between vm queries - [#6268](https://github.com/multiversx/mx-chain-go/pull/6268) - Chain simulator verify tx on send - [#6248](https://github.com/multiversx/mx-chain-go/pull/6248) - Chain simulator remove consensus group size +- [#6330](https://github.com/multiversx/mx-chain-go/pull/6330) - White list data verifier fixes chain simulator - [#6018](https://github.com/multiversx/mx-chain-go/pull/6018) - TrieRecreate refactor - [#6238](https://github.com/multiversx/mx-chain-go/pull/6238) - FIX: Destination shard id in chain simulator for meta chain addresses - [#6292](https://github.com/multiversx/mx-chain-go/pull/6292) - Extend delegation log events for multi claim and multi redelegate rewards From cc321828fe74ff3971f32d58ee4018849a5effb6 Mon Sep 17 00:00:00 2001 From: Sorin Stanculeanu Date: Fri, 2 Aug 2024 10:37:52 +0300 Subject: [PATCH 5/5] fixes after review --- .../protocol/release-specs-v1.7.14-Interim.md | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/releases/protocol/release-specs-v1.7.14-Interim.md b/releases/protocol/release-specs-v1.7.14-Interim.md index 736deb5..ccd6de2 100644 --- a/releases/protocol/release-specs-v1.7.14-Interim.md +++ b/releases/protocol/release-specs-v1.7.14-Interim.md @@ -17,14 +17,18 @@ This documentation is relevant for the `tags/v1.7.16` tag release. Relayed v3 feature brings a cheaper, improved version of relayed transactions, that can hold multiple inner transactions. The inner transactions will be full transactions. -With this feature, a fix on the base cost of relayed transactions was implemented, to follow the minimum gas rule. +Additionally, a fix on the base cost of relayed transactions was implemented, to follow the minimum gas rule. This fix affects all types of relayed transactions. +Note: Relayed v1 and v2 will be deprecated and marked for removal once v3 will be fully adopted. + +The official relayed v3 docs are found [here](https://docs.multiversx.com/developers/relayed-transactions/#relayed-transactions-version-3). ### Impact: +* A new type of transaction must be handled when reading blockchain data. * There are new enable epochs definitions for this feature, called `RelayedTransactionsV3EnableEpoch`, `FixRelayedBaseCostEnableEpoch` * There are changes to the configuration options in the `config.toml` file, a new section called `[RelayedTransactionConfig]` was added * There is a new field in the `Transaction` structure, `InnerTransactions`, that can hold multiple other `Transaction` as part of relayed v3 -* No binary flags changes -* No API endpoints changes +* No Node CLI arguments changes +* No Node HTTP API endpoints changes ### Relevant PRs: - [#5572](https://github.com/multiversx/mx-chain-go/pull/5572) - New approach for relayed V3, transaction structure changed @@ -45,9 +49,10 @@ With this feature, a fix on the base cost of relayed transactions was implemente The improvements implemented on ESDTs enable the dynamic NFT functionality. ### Impact: +* There are new roles added `ESDTModifyRoyalties`, `ESDTModifyCreator`, `ESDTNFTRecreate`, `ESDTNFTUpdate`, `ESDTNFTSetNewURIs` * There is a new enable epoch definition for this feature, called `DynamicESDTEnableEpoch` * There are changes to the configuration options in the gas schedule files, new values were added for `ESDTModifyRoyalties`, `ESDTModifyCreator`,`ESDTNFTRecreate`,`ESDTNFTUpdate`, `ESDTNFTSetNewURIs` -* No binary flags changes +* No Node CLI arguments changes * API endpoints `/:address/nft/:tokenIdentifier/nonce/:nonce` and `/:address/esdt` will now return token type as well ### Relevant PRs: @@ -65,14 +70,18 @@ The improvements implemented on ESDTs enable the dynamic NFT functionality. ## 3. Crypto API, new Opcodes and EGLD in MultiESDTTransfer [#6139](https://github.com/multiversx/mx-chain-go/pull/6139) -With this feature, new opcodes were enabled for developers, among with new crypto endpoints(`VerifySecp256r1`, `VerifyBLSSignatureShare`, `VerifyBLSMultiSig`). -Another improvement was EGLD as part of MultiESDTTransfer (EGLD-000000). +With this feature, new opcodes were enabled for developers, among with new crypto VM endpoints(`VerifySecp256r1`, `VerifyBLSSignatureShare`, `VerifyBLSMultiSig`). + +Additionally, EGLD(native tokens) can be now sent within MultiESDTTransfer (token identifier: EGLD-000000) along with custom tokens. + +Note: When using native tokens as part of MultiESDTTransfer, transaction value must be 0. ### Impact: +* EGLD transfers within MultiESDTTransfer must be handled when reading blockchain data. * There are new enable epochs definitions for this feature, called `EGLDInMultiTransferEnableEpoch` and `CryptoOpcodesV2EnableEpoch` * There are changes to the configuration options in the gas schedule files, new values were added for `VerifySecp256r1`, `VerifyBLSSignatureShare`,`VerifyBLSMultiSig` -* No binary flags changes -* No API endpoints changes +* No Node CLI arguments changes +* No Node HTTP API endpoints changes ### Relevant PRs: - [#6334](https://github.com/multiversx/mx-chain-go/pull/6334) - Multi transfer execute by user flag @@ -83,10 +92,7 @@ Another improvement was EGLD as part of MultiESDTTransfer (EGLD-000000). The storage unit package was refactored, adding the option of using static and non-static storers. ### Impact: -* No activation epoch -* No configuration files changes -* No binary flags changes -* No API endpoints changes +* No impact on validators/developers/integrators ### Relevant PRs: - [#5797](https://github.com/multiversx/mx-chain-go/pull/5797) - Use create with retries in persister factory