-
Notifications
You must be signed in to change notification settings - Fork 838
Closed
Milestone
Description
Now with the monorepo transition being in its latests phases we can start on planning the next major VM release, various things are on the door for this. I'll try to collect here what I can think of and we can further discuss, if we have some agreement on further additions please just add to the list below:
TODO List
-
VM: Init method to prevent race conditions PR Add initialization method to prevent race conditions #665 by @rumkin, review/merge , @evertonfraga -
VM: Opcode refactor PR Refactor opcodes #664 by @rumkin, review/merge, @cgewecke, @alcuadrado -
VM: IntegrateBlockv3.0.0and newBlockchainversions, @evertonfraga-
Blocklibrary TypeScriptv3.0.0(see New release v3.0.0 ethereumjs-block#74, work already done, just needs release PR + npm publishing), PR Block release v3.0.0 #682, @evertonfraga -
Blockchain: IntegrateBlockv3.0.0, promisifiedBlockchainversion Promisify blockchain and ethash packages #833 , @evertonfraga @ryanio
-
-
VM: Integrate MPT release v4.0.0, @ryanio, PR Update merkle-patricia-tree to v4, move account trie-related methods to StateManager #787-
Block: integrate intoBlocklibrary - eventually alongv3.0.0Block release v3.0.0 #682, @evertonfraga -
Account: eventually integrate intoAccountlibrary (devDependenciesfor tests), @ryanio, update: dependency removed, PR Update merkle-patricia-tree to v4, move account trie-related methods to StateManager #787
-
-
VM: Extract the state manager to have its own package, see section in VM README for context, @ryanio, update: decided (missing reference, can't find) to keep it integrated for now- Integrate promises into StateManager, Integrate promises into StateManager #719
- Add Interface for StateManager, StateManager interface #763
-
All: Updateethereumjs-utiltov7.0.2, Updateethereumjs-utilto v7 #748 (double-check if all occurences updated!) -
All: Update to a a newethereumjs-configversion integrating e.g. Upgrade primary build target to ES2017, add browser build ethereumjs-config#28 (ES2017 build target, separate browser build) - Analyze and fix speed deterioration of MPT v4 library, see Analyze speed deterioration of v4 merkle-patricia-tree#124, @ryanio
- Add simple benchmarking tool to VM, PR VM: add simple benchmarking tool for mainnet blocks #794, @s1na, @ryanio, @holgerd77
- Run benchmarks on pre-deteriorated, post-deteriorated and fixed MPT and compare
- Compare with MPTs own benchmarks and see if consistent
- Finish all Hardfork backports for VM, @jochem-brouwer
- SpuriousDragon HF support, SpuriousDragon HF Support #791, @holgerd77
- TangerineWhistle HF support, TangerineWhistle HF Support #807, @holgerd77, @jochem-brouwer
- Finalize and review Homestead support PR, [VM] fix blockchain tests and add Homestead support #815, @jochem-brouwer, all
- Finalize and review chainstart (Frontier) support PR, Add frontier support #828, @jochem-brouwer, all
- Optional but nice (shouldn't bee too much extra work and then we are really complete): add DAO HF, all
- Add Berlin HF EIPs
-
Finalize and review BLS precompile EIP PR, VM: Implement EIP 2537 (BLS12-381 precompiles) #785, @jochem, all-> Postponed/skipped on release due to EIP HF integration uncertainties due to EVM384 alternative proposal - Review, eventually finalize subroutine EIP PR, Implement EIP-2315: subroutines #754, @cgewecke, all
-
- Set VM default HF to
Istanbul(MuirGlacieris problematic since not available on all testnets (e.g.Rinkebywhich would lead to unexpected behavior if people just change the network without further thinking about this (which is likely))
Be Happy! 🦄 😄 🌻
Discussion
Related: VM: Run transaction with custom EVM/Interpreter / API Discussion #636VM: Do we finally want to expose the reworkedInterpreterAPI Sina @s1na introduced along the v4.0.0 release ( see "EVM Modularization and Structural Refactoring" section as well as linked PR within the section)?- Update: agreement that there is currently still too much movement around this, so won't be integrated in
v5but rather postponed to a subsequent major version release
- Update: agreement that there is currently still too much movement around this, so won't be integrated in
VM,merkle-patricia-tree: Do we want to also wait for the TypeScript / Promisification v4.0.0 release of the merkle tree library to add here or do we want to give this a bit more time (this would also need an update on theBlockand eventually theAccount(only dev dependency) library)? @ryanio- -> Update: MPT release is imminent, so this can be integrated, have moved to
TODO
- -> Update: MPT release is imminent, so this can be integrated, have moved to
Notes
-
Ownership: I've assigned team members already involved or I thought fitting to the tasks, if you can't/don't want to take over just replace with OPEN or something. -
Date: Just as some orientation, I would roughly target a date within a range of 2-3 weeks for a possible release, let's take April 22, Wednesday as a starter, let me know if you have comments on that
Anything else? Something missing? Other suggestions?
evertonfraga