Skip to content
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

Pending activities on Kontrol's VM module #696

Open
7 tasks
ACassimiro opened this issue Jul 15, 2024 · 0 comments
Open
7 tasks

Pending activities on Kontrol's VM module #696

ACassimiro opened this issue Jul 15, 2024 · 0 comments
Labels
documentation Improvements or additions to documentation

Comments

@ACassimiro
Copy link

Pending activities on Kontrol's VM module. Updated on 15/07/2024.

The implementation of Kontrol's JSON RPC server is done mostly in the src/kontrol/rpc.py and src/kontrol/kdist/vm.md modules. Within them, the following should be handled:

  • If a transaction fails to be correctly executed in KEVM, we should gracefully handle it and reply with the proper information to the client. Right now, if a rewriting operation fails, the function call crashes, and an empty reply is sent back to the client.
  • If a transaction fails to be correctly executed in KEVM, we should clean the K cell and ensure that the model has not been affected by the operations that have been performed by the failed transaction. The following transactions should not be affected.
  • Properly extract the values of the <blockStorage> map. This was being developed in the _get_all_block_storage_dict function in the rpc.py module. This is necessary to achieve the following:
    • In the eth_getTransactionReceipt reply, we're only returning the txn status, id, block number, to address, transaction hash, and from address. This is roughly half of what is needed to implement this end point. More information here: https://www.quicknode.com/docs/ethereum/eth_getTransactionReceipt
    • In the eth_getTransactionByHash reply, we're missing the blockHash and transactionIndex fields.
    • All data in this map cell should be needed to complete the eth_getBlockByNumber operation. It's current implementation doesn't work.
    • When fetching the account balance with eth_getBalance, we can only fetch the balance of the account in its latest state. The data within the blockStorage cell should provide us with what we need for providing the correct values.

By completing the above, we should be able to run the sample scenarios for Simbolik.

More information about the requests and parameters handled by an Ethereum JSON RPC node:

@ACassimiro ACassimiro added the documentation Improvements or additions to documentation label Jul 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant