casper-network / casper-network/casper-node
2.x VM with no CLType or CTType dependency
- Dominant language
- Rust
- Stars
- 399
- Forks
- 224
- Avg merge
- 15h 44m
- Merged PRs (30d)
- 2
Description
Create a second VM with a tighter FFI and makes different decisions on how to handle/pass around values that does not rely on the CLValue mechanism. Deploy structure will be updated with an additional field to signal the target VM (1.0 or 2.0). The additional field will be defaulted to 2.0.
Requires new documentation.
handling of calling the appropriate VM (including natives) will be handled behind the interface - the node itself will not be impacted by this change - behind the EE facade.
Also requires reworking of EE tests to target new VM.
Need a migration strategy - send a deploy to install a new contract, targeting the new VM(EE/FFI), take data from previous version and migrate it to the new version. This is a one time action per contract. Need to figure out the cost and rules. The next breaking change release will deprecate the original VM. Any left behind contracts and data will be eligible for pruning (similar to era summary report).
CLValue is a 1.x concept and will not be brought to 2.x
Simplicity & Efficiency (no unnecessary allocation) is the objective.
Ticket based on this recording: https://drive.google.com/drive/folders/1Jx82eFFoYAwhv5W9_lGzMphKYNap-X6f
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.