-
Notifications
You must be signed in to change notification settings - Fork 1
Simple-Coin Integration #73
Comments
And... put any |
I've got nothing to add besides an observation I'd like to make: once iteration 1 starts more tasks will surface so it is best just to start it even w/o fully committing on the future iterations as they are going to be affected so most important thing is just to agree on outcomes and to move to building asap. |
|
lol, however these words of wisdom didn't prevent Mike from promoting shitcoins... |
See the |
Simple-Coin Integration
Overview
This document outlines an incremental plan of integrating SVM into
go-spacemesh
such that in the end, we'll be able to executeSimple-Coin
transactions using SVM while having all the required features for Mainnet.That said, this piece assumes that an
Account Nonce
is simply an increasing counter.In other words, the
Generalized Nonces Schemes
is out of scope for this SMIP.The implications are that implementing other future
Templates
such as Vault with vesting features won't be possible yet.Writing a future SMIP such as
Vesting Vaults Integration
might make sense to address the missing parts.Goals and Motivation
We want to integrate SVM into
go-spacemesh
to runSimple-Coin
transactions through SVM.This document details how to do that on iterations, such that each iteration builds upon its previous one by adding new features.
High-level design
Iteration 1
Outcome
Integrating SVM into
go-spacemesh
for the 1st time!What should be implemented?
GenesisAccount
holding all initial coins upon the system's start.go-spacemesh
should usego-svm
What would be possible?
Accounts
out of existing ones.Account
as part of theSpawn
transaction - this funding amount will be injected into theamount
field of the transaction'sEnvelope
.Call
transaction - this funding amount will be injected into theamount
field of the transaction'sEnvelope
.What won't be possible yet?
Signatures Schemes
- For now, theverify
method will always returntrue
.Self Spawn
newAccounts
- Instead,Genesis Account
will spawn the first fewAccounts
, and each of them will be able to spawn other accounts as well and so on.Immutable Storage
- we can defer that implementation since theverify
won't use it regardless, as explained above.Notes
Signatures Schemes
used, it means that everyone can send transactions on behalf of anyAccount
(including theGenesisAccount
). It's also recommended to work onProcess Explorer
integration. It'll allow viewing bothTransactions
andReceipts
.Iteration 2
Outcome
Being able to release a TestNet
What should be implemented?
Signature Scheme
implementation.Signature Scheme
implementation.verify
method of theSimpleCoin Template
to support Single Key verification.The algorithms used should be discussed before the implementation. (as well as the Hash function, Keys length, and anything else related).
What would be possible?
Signatures Schemes
- Once this iteration is completed. It's recommended to make theSimpleCoin Template
work with aMultiSig 2-3
scheme before jumping to the next iteration.What won't be possible yet?
Self Spawn
newAccounts
Immutable Storage
- The written code of the Template will make sure that the"Immutable Storage"
will be accessed only within theverify
function.Notes
Simple Coin Template
(one using aSingle Signature
and the otherMultiSig 2-3
we could run a transaction where thePrincipal
and theTarget
Accounts each belong to differentTemplates.
Simple Coin Template
- then make sure they are accessible in theProcess Explorer
. The logs are returned in the Receipts. More info in SVM Receipts EncodingIteration 3
Outcome
Supporting
Immutable Storage
as part ofAccount Storage
.What should be implemented?
What would be possible?
verify
to access onlyImmutable Storage
. Enforcing it on the SVM infrastructure level.What won't be possible yet?
Self Spawn
newAccounts
Iteration 4
Outcome
Being able to
Self Spawn
newAccounts
What should be implemented?
What would be possible?
Self Spawn
new accounts - now we can think of a newTemplate
to be implemented leveraging that feature.What won't be possible yet?
Account Nonce
is an increasing counter throughout the iterations.Questions/concerns
N/A
Stakeholders and reviewers
@noamnelke
@lrettig
@neysofu
@avive
@moshababo
The text was updated successfully, but these errors were encountered: