Skip to content

Pending activities on Kontrol's VM module #696

Open
@ACassimiro

Description

@ACassimiro

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:

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions