-
Notifications
You must be signed in to change notification settings - Fork 757
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
VM v5 Release Planning #681
Comments
Just some notes, before I forget, will work this better into the description above and generally update the issue list early next week.
We generally have to look at the dependency tree (by @evertonfraga) really closely regarding all these things to not miss some updates. |
@holgerd77 Yes, I will start working on this Monday, April 20. |
some ideas from earlier days of
basicaclly scifi:
|
worth noting that ganache's forked blockchain feature also uses a json rpc client for state reads, this is how they are hooking in https://github.com/trufflesuite/ganache-core/blob/a5f43a4d666c82bce9da51f9ce1d15b6561e24f3/lib/utils/forkedblockchain.js#L89-L93 this usecase should be supported without having to override underscored properties/methods |
Wrote down some thoughts re making |
For notice: have substantially updated the initial TODO list here to keep track with our latest discussions around various questions. |
@evertonfraga Can you please give the TODO list from above an update, so that things won't get forgotten? One additional thing which comes to my mind: we should do a last npm ls ethereumjs-util check on the final VM version to ensure that we haven't forgotten anything along the Uti v7 update. Also: @ryanio what is the state of the MPT v4 update? Can we still manage to get this in? |
@holgerd77 sure. I will change the todo descriptions, if you don’t mind. |
@holgerd77 yes let's release mpt v4 on npm and i will finish my branch to include :) |
I think this should be checked by a linter/script on the CI. I have a script to do this in Buidler, I hadn't proposed importing it here before, because it works with a monorepo. I'll open a PR now. |
Thanks @alcuadrado! |
Can we release and use |
Sure @alcuadrado, that’s on my plan. To make things more clear, tomorrow I’ll start the day creating a milestone with all the issues for the v5. You all will be welcome to suggest as well. |
Some thoughts on what I think should be included in V5 (as addition to things already mentioned here):
Besides those, it might be a good idea to go over all issues and all currently open PRs in order to see if there are any breaking changes which we'd like to include in the V5 release. |
Have updated the TODO list from above so that we can finally close in on a release, please add if something is missing. |
How is the Berlin support gonna be released? I think it should be somehow marked as experimental, with no guarantees of stability, as Berlin may include a different set of eips. Did we have some experimental apis before? Just curious, I don't think this requieres too much thinking, just not making it default and a big warning. |
@alcuadrado Yes, a bit as you described. Analogous to the previous forks we won't switch the default fork yet and mark the HF support as experimental. Once this has finalized we will likely release a new minor version with the stable-marked HF (still not made default). This worked pretty well in the past, no complains there at any time. |
Oh, that's nice. I thought the previous HFs were released after they were settled/activated. |
Closed in favor of #907 |
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 , @evertonfragaVM
: Opcode refactor PR Refactor opcodes #664 by @rumkin, review/merge, @cgewecke, @alcuadradoVM
: IntegrateBlock
v3.0.0
and newBlockchain
versions, @evertonfragaBlock
library 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, @evertonfragaBlockchain
: IntegrateBlock
v3.0.0
, promisifiedBlockchain
version Promisify blockchain and ethash packages #833 , @evertonfraga @ryanioVM
: Integrate MPT release v4.0.0, @ryanio, PR Update merkle-patricia-tree to v4, move account trie-related methods to StateManager #787Block
: integrate intoBlock
library - eventually alongv3.0.0
Block release v3.0.0 #682, @evertonfragaAccount
: eventually integrate intoAccount
library (devDependencies
for tests), @ryanio, update: dependency removed, PR Update merkle-patricia-tree to v4, move account trie-related methods to StateManager #787VM
: 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 nowAll
: Updateethereumjs-util
tov7.0.2
, Updateethereumjs-util
to v7 #748 (double-check if all occurences updated!)All
: Update to a a newethereumjs-config
version integrating e.g. Upgrade primary build target to ES2017, add browser build ethereumjs-config#28 (ES2017 build target, separate browser build)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 proposalIstanbul
(MuirGlacier
is problematic since not available on all testnets (e.g.Rinkeby
which 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 reworkedInterpreter
API Sina @s1na introduced along the v4.0.0 release ( see "EVM Modularization and Structural Refactoring" section as well as linked PR within the section)?v5
but rather postponed to a subsequent major version releaseVM
,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 theBlock
and eventually theAccount
(only dev dependency) library)? @ryanioTODO
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 thatAnything else? Something missing? Other suggestions?
The text was updated successfully, but these errors were encountered: