Skip to content

Nimbus Verified Proxy #3101

Open
Open
@chirag-parmar

Description

@chirag-parmar

Required Features

Pricing Verification

  • eth_blobBaseFee
  • eth_gasPrice
  • eth_maxPriorityFeePerGas

Execution Block Header Verification (+ Tx Trie Verification)

Notes: we download execution payload from the beacon light client but they are not verified. Also to maintain memory usage if a block misses the cache we might need to re-download and re-verify the block

  • eth_getBlockByHash
  • eth_getBlockByNumber
  • eth_getUncleCountByBlockHash
  • eth_getUncleCountByBlockNumber

Transaction and Receipt Trie Verification

  • eth_getBlockReceipts
  • eth_getBlockTransactionCountByHash
  • eth_getBlockTransactionCountByNumber
  • eth_getTransactionByBlockHashAndIndex
  • eth_getTransactionByBlockNumberAndIndex
  • eth_getTransactionByHash
  • eth_getTransactionReceipt
  • eth_feeHistory

EVM execution for verification - In Progress

  • eth_call
  • eth_estimateGas
  • eth_sendRawTransaction
  • eth_createAccessList

Account Trie Verification - Complete

  • eth_getBalance
  • eth_getCode
  • eth_getStorageAt
  • eth_getTransactionCount

Methods requiring a wallet

Notes: requires an API so that control can be forwarded to user application

  • eth_accounts
  • eth_coinbase
  • eth_sign
  • eth_signTransaction
  • eth_sendTransaction

Logs Verification

  • eth_getFilterChanges
  • eth_getFilterLogs
  • eth_getLogs
  • eth_newFilter
  • eth_uninstallFilter

stuff that doesn't need verification or is irrelevant

  • eth_blockNumber
  • eth_chainId
  • eth_syncing
  • eth_newBlockFilter
  • eth_newPendingTransactionFilter

Other Improvements

  • use hardcoded bootstrapping light client peers for faster startup
  • reduce code duplication between fluffy and nimbus verified proxy
  • use REST API for light client updates
  • better error handling (error codes and json error strings)
  • Compilation for different Smartphones OSes and Archs
  • Compilation for different Desktop OSes and Archs
  • Mocked Integration tests for Wallets

Required Stuff to be Production Ready

  • Unit tests for verification (different forks, different transaction types etc.)
  • Mocked Integration tests for RPC provider

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions