-
Notifications
You must be signed in to change notification settings - Fork 115
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
Content directory meeting summary #1925
Comments
EVM pallet can be used with both Substrate we are using in Babylon and Olympia releases. Frontier's RPC compatibility is yet to be confirmed.
Yes, we should. It will enable interaction with Metamask and other tools.
Ethereum transactions can be created from Substrate code (via extrinsic or inner logic). Also, Ethereum transactions can be received via Ethereum RPC (provided by Frontier).
In our implementation, Substrate account ids are associated with the Ethereum addresses. If you control the account with id
Blocks are executed in a virtual environment inside of Substrate. The currency is handled by native Substrate currency (there is no separate Ethereum currency), block info is stored into native logs, and contract code/state is saved into Substrate storage. Consensus shouldn't be affected because it is still achieved via rules written in Substrate.
It depends on how we can say that some contract is broken. We can programmatically check that contract fulfills some interface. We could maybe run some test inside another "Testing" smart contract, but other than that, we would need some consensus mechanism - maybe referendum or "second council". This seems like
This is yet to be researched/decided. |
The one thing still missing, which is quite important, is if the runtime calls a contract in the EVM,
|
Open questions
Which substrate version we need in order to have a stable evm pallet?
Should we include full Frontier functionality in our runtime, with
ethereum
andethereum-rpc
modules? (it would certainly have a lot of benefits on the frontend side as described in Smart contracts content directory - implementation plan #1816)How does the runtime process ethereum transactions / blocks in case we use Frontier?
how are the weights computed for extrinsics like
evm.call
where the execution cost depends on the contract logic that lives inside the evm?who should pay the cost of gas consumed by runtime "hooks" that execute smart contract methods (ie. when registering new member)?
since the council (or initially - sudo) can set any bridge contract address, can we avoid the possibility of breaking the runtime by setting a broken / malicous bridge contract address? (the runtime will try to call into it, for example, during member creation). If not - should the proposal stake in that case be close to that of a runtime upgrade?
should we include any new proposals allowing the council ie. to initialize bridge contract with existing members or will we only rely on sudo in the initial phase? What if we need to split the initialization into multiple blocks?
Contracts implementation - issues in scope for initial release:
setFeaturedVideos(_metadata)
,addFeaturedVideos(_metadata)
etc. that don't enforce any specifc format of the metadata and make them executable only by the lead. The query node will then be fully responsible of validating and handling this_metadata
(references to non-existent videos can probably be ignored. Once the video is deleted - we can use cascade delete on the database level or some other similar mechanism)Contracts implementation - issues out of scope for initial release
The text was updated successfully, but these errors were encountered: