-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
The transition to SVM will be performed in 3 major phases:
Phase 1
- Identify all components that should be replaced by SVM functionality.
- Create issues on the SVM side to implement any missing functionality:
- Write and test a Template for Genesis Accounts (Simple Coin transfer) svm#426
Phase 2
- Transition
statepackage intosvmpackage go-spacemesh#2827 - Implement SVM API methods go-spacemesh#2828
- Move code for generating transactions and addresses in tests into SVM package go-spacemesh#2829
The last two issues can be worked on in parallel, although minor conflicts are to be expected.
Phase 3
Prerequisites
go-svm being fully implemented and exposing the following functions (click to expand)
validate_deploy(message) -> validation_errorvalidate_spawn(message) -> validation_errorvalidate_call(message) -> validation_errordeploy(envelope, message, context) -> deploy_receiptspawn(envelope, message, context) -> spawn_receiptverify(envelope, message, context) -> call_receiptcall(envelope, message, context) -> call_receipt- Expose
Get Accountin the FFI layer svm#373 - Expose
Commitin the FFI layer svm#374 - Return
Touched Accountsinside theSpawnandCallReceipts svm#375 - Expose
Rewindin the FFI layer svm#376 - Implement
Increase Balancefor anAccountsvm#377
SVM codec for encoding transactions implemented and ready (click to expand)
Should be exposed by go-svm as a utility, for go-spacemesh and sm-repl to use.
SVM codec instantiation boilerplate code: https://github.com/spacemeshos/go-svm-old/tree/master/codec
Tasks
- Add
go-svmtogo-spacemeshas a dependency (mostly about getting the build/linkage to work). - Encode transactions using SVM codec.
- Create an SVM package replacement with identical method signature and re-implement all methods using
go-svmexposed methods. - Ensure all unit tests and system tests pass.
Metadata
Metadata
Assignees
Labels
No labels