Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v1.7.14 #55

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
130 changes: 130 additions & 0 deletions releases/protocol/release-specs-v1.7.14-Interim.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
[comment]: <> (tags/v1.7.16)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should pick a proper semver tag, 1.8 (new features), even if we've mistakenly used 1.7next1 until now?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed 1.8 would be the correct choice, considering that features were also added. But we somehow reserved 1.8.0 for Andromeda release, thus only increased the last number.


# Contents

This document explains the contents of the rc/v1.7.next1 release codenamed Interim. It is split in 2 sections:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codename should be a star name.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decided with @schimih that this one would be called Interim for now.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- 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.16` tag release.

# Features

## 1. Relayed v3 [#5741](https://github.com/multiversx/mx-chain-go/pull/5741)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe link towards docs, as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added. it was not pushed yet when I initially opened the PR.


Relayed v3 feature brings a cheaper, improved version of relayed transactions, that can hold multiple inner transactions.
The inner transactions will be full transactions.

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:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should split the impact section into more sections - impact on validator, on developers, on integrators etc.?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional note for integrators that read blockchain data - they need to handle relayed V3 transactions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added a note that v1 and v2 will be deprecated, should be pretty clear that this is a new type of tx that must be handled separately

* 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 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
- [#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.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe link towards docs, as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not yet merged, will be updated once it is done


### Impact:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe mention the new available transactions, or why was this feature implemented?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right, added them

* 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 Node CLI arguments 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
- [#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)

With this feature, new opcodes were enabled for developers, among with new crypto VM endpoints(`VerifySecp256r1`, `VerifyBLSSignatureShare`, `VerifyBLSMultiSig`).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Formatting / missing space.


Additionally, EGLD(native tokens) can be now sent within MultiESDTTransfer (token identifier: EGLD-000000) along with custom tokens.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Formatting / missing space before parenthesis.


Note: When using native tokens as part of MultiESDTTransfer, transaction value must be 0.

### Impact:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional note for integrators that read blockchain data - they need to handle EGLD transfers within MultiESDTTransfer.

* 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 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
- [#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 impact on validators/developers/integrators

### 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
- [#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
- [#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