-
Notifications
You must be signed in to change notification settings - Fork 772
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
v6 Breaking Release Planning #1717
Comments
This was referenced Feb 16, 2022
This was referenced Feb 23, 2022
8 tasks
This was referenced Apr 30, 2022
This was referenced May 16, 2022
This was referenced May 25, 2022
Some update and reference here: this list won't be updated any more. Finalization of tasks/inclusions has been done within the realm of the Beta 1 releases #1957 being released on June 30, 2022. This issue should nevertheless stay open as some point of reference until the final releases are done (and likely also some 2-3 weeks after that). |
Closed by #2270 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Follow-up on #907
Work branch:
develop
Replaces #1024
Update of
develop
branch: no merges / only rebase (~weekly by @holgerd77)Update of feature branches: no merges / only rebase
Planned Release Date (Timeframe): Latest somewhat before Merge HF (~Summer 2022), eventually earlier
Breaking Changes / Deprecation Tasks
Monorepo / All Releases
Error Management
BigInt Support
BN.js
to native JS BigInts for external API usage and/or inner-functional computations and data handling, so on the entire stack (also switch along API on BN.js using functions (e.g.Common.nextHardforkBlock()
)).ethereum-cryptography
v1.0
, since the underlying noble libraries useBigInt
anyhow which would be an implicit decision to integrate native BigInts throughout the stack.TODOs
BNLike
, what values to allow as input and the like, Convert bn to bigint #1744ES2020
strategy:ES2018
+ES2020.BigInt
,ES2019.Object
, Monorepo: Limit ES2020 Support to BigInt #1729Consensus Encapsulation / Separation
ESM Support
[ In Discussion / Needs Decision ]
protected
VM, Blockchain, Client: fix storing unsettled promises (develop) #1811VM
Standalone StateManager
StateManager
package together with a state manager functionality rework (leave all VM related stuff in the VM) and an API overhaul (all interface functions necessary? Genesis functionality?) Issue: Create standalone StateManager package #1599Related TODOs / Decisions
Note: all the TODOs should be re-evaluated in the context of the StateManager rework (still desired to add a certain method? Stuff like that.)
VM: stateManager -> add modifyAccountFields method
, PR VM: stateManager -> add modifyAccountFields method #1369 and PR vm: reintroduce modifyAccountFields #1763Standalone EVM
evm
folder as a standalone package and define a stable API. This allows for a cleaner interface towards the EVM and to easier extend the core EVM or to switch out the EVM entirely which will be useful for L2 and other integrations, PR EVM/VM refactor #1862Bloom
, other?, unified type location, type/interface exposure,index.ts
->vm.ts
+index.ts
only for exports), this needs another look once the EVM extraction is done, also: generally have one alignment look along all the packages (included in the releases)?Other
Below tasks resolved with #1815
state
(Trie) constructor optiongenerateTxReceipt
function inrunBlock
(preferring newer version located inrunTx
), removeReceipt
re-exportsStateManager.getStateRoot()
force=true
parameter (also in interface)EIP2930Receipt
andEIP1559Receipt
typesgasRefund
to a tx-level result object instead ofExecResult
todo linkgasUsed
deduplication Difference between gasUsed and execResult.gasUsed #1446 (comment)runCode
throws ifgasLimit
isundefined
: thegasLimit
parameter is mandatoryBlockchain
TODOs
getHead()
/setHead()
iterator head functions + eventually rename canonical head functions, Blockchain: Deprecation Tasks / Head Function Renamings / Iterator adjustments #1754. PR: Blockchain, VM, Client: Head function renamings #1784Blockchain.iterator()
to return anumber
in function and interface, alsoVM.runBlockchain()
andvmPromise
in client full sync module, Blockchain: Deprecation Tasks / Head Function Renamings / Iterator adjustments #1754[ In Discussion / Needs Decision ]
None.
Block
Centralized Default Value Setting
BlockHeader.fromHeaderData
(would need some check forBlock.fromBlockData
, likely as well) simply an alias for the main constructor instantiation using the same (typed) API, see changes/updates in the tx library for reference Block: Rework fromHeaderData() and main BlockHeader constructor #1738Other TODOs
bloom
andbaseFee
parameters and types, Block: Deprecation Tasks #1747BlockHeader.validateGasLimit()
, throw with more appropriate error messages (e.g. EIP-1559 specific), see Implement EIP1559 Fee Market + EIP3198 BaseFee #1148 (comment), Issue Block: Directly throw in validation functions #1889[ In Discussion / Needs Decision ]
None.
Transaction
transactionType
property in favor oftype
, execute on other deprecations, Tx: Execute on Deprecation Notes #1739senderR
,senderS
,yParity
)hash()
is called on unsigned legacy txs (so: align with behavior from typed txs), see also comment added along with Block, Tx: Caching for hash method #1445, Issue Tx: Throw when hash() is called on unsigned legacy txs #1890[ In Discussion / Needs Decision ]
None.
Common
Common.forCustomChain()
method), Common: Execute on all Deprecation Notes for Breaking Release #1633supportedHardforks
,onlySupported
andonlyActive
HF [options] Deprecate supportedHardforks/onlySupported/onlyActive HF options #1274common.param
return BigInt (since in most cases it is converted)Number(common.param())
, Issue Common: Return BigInt for param() functionality #1846any
responses (chains, hardforks, params) (or otherwise framed: remove remainingany
usages fromCommon
, try to keep low-level though and avoid new data/type structures and rather reuse (or adopt a bit) where possible), Issue Common: More Type Safety / any Usage Removal #1888[ In Discussion / Needs Decision ]
"type": "module"
withoutesModuleInterop
being true in their tsconfig.Util
Library Renaming
ethereumjs-util
naming scheme. This should be brought into the new naming scheme and library renamed to@ethereumjs/util
BigInt Util Functionality/Support
Signing / Hashing Functionality Removal
signature
andhash
modules should be completely removed and instead ethereum-cryptography functionality being used directly, Issues Util: Remove signature module in favor of direct ethereum-cryptography usage (needs analysis) #1845 Util: Removal of the hash utility module / direct ethereum-cryptography usage #1844Other TODOs
object
module, Remove deprecatedbnToRlp()
method (types
) Deprecateutil/object
#1809bigIntToHex()
andbigIntToUnpaddedBuffer()
methods (and tests) fromtypes
to thebytes
module, util: move misplaced functions #1825[ In Discussion / Needs Decision ]
Following TODOs only if no
signature
module removal (see above):ecsign
and always returnBuffer
, remove function overloading, merge interfaces likeECDSASignature
andECDSASignatureBuffer
(to:ECDSASignature
)homesteadOrLater
parameter inisValidSignature()
fromRpcSig()
function, see doc comment (toRpcSig()
?)Trie
Trie.setRoot()
function, trie: convert constructor to options interface, remove deprecated setRoot #1874The text was updated successfully, but these errors were encountered: