Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related requests:
filestar-project/specs-actors#7
filestar-project/geth#1
filestar-project/solidity#1
Background
The main goal is to add ability of smart managing data in filestar network. Smart-contracts is a convinient and efficient solution for it. The idea is to add implementation of Ethereum Virtual Machine (EVM) and ways to communicate with it from FileStar.
Proposal
First of all, it's a EVM realization. It's located at evm-adapter library and play a key role in our model.
The ChainAdapter provides access to chain functionality.
To use EVM, at first, you need to implement this interface on your chain. It's like a bridge between lotus and EVM.
Another important moment is a CallActor - Actor, for whose we create this bridge.
actors/builtin/contract/contract_actor.go - here is new actor methods impl.
And here is new structs:
Also, we add extra functionality for EVM - new operation code CALLACTOR, special for FileStar network. Now it's possible to call specific actor from solidity code for your own purposes.
Effect
It's really important for FileStar ecosystem in the way of managing data. this improvement is aimed at users. Now they are able to store, manage or manipulate with data in a new smart way. Observing the success of Ethereum, we hope that this technology will show itself well in practice.