Skip to content

Aida VM ADb

Petr Hanzl edited this page Apr 22, 2024 · 3 revisions

Aida VM ADb

Overview

A tool for simulating opera block processing on real world historical data (mainnet/testnet). TODO: extend overview

Classification

  • System Under Test
    • ArchiveDB
    • Virtual machine
  • Functional Tests
    • Substate: check per transaction the modified portion of world-state (ie. substate)
  • Data set (offline)
    • Mainnet
    • Testnet

Requirements

You need a configured Go language environment to build the CLI application. Please check the Go documentation for the details of installing the language compiler on your system.

TODO

Build

To build the aida-vm-adb application, run make aida-vm-adb.

The build process downloads all the needed modules and libraries, you don't need to install these manually. The aida-vm-adb executable application will be created in /build folder.

Run

./build/aida-vm-adb [command options] [arguments...]

Validation run

Executes full state transitions and check output consistency.

./build/aida-vm-adb --aida-db path/to/aida-db --db-src path/to/statedb/with/archive --vm-impl <geth, lfvm> --validate-tx <blockNumFirst> <blockNumLast>

executes transactions from block <blockNumFirst> to <blockNumLast> using the historic data in the provided archive validating the state after each transaction. Each transaction loads the historic state of its block and executes the transaction on it in read-only mode.

VM-ADb diagram

Options

GLOBAL:
   --validate-tx           enables validation after transaction processing (default: false)
   --workers value         Number of worker threads that execute in parallel (default: 4)
   --cpu-profile value     enables CPU profiling
   --chainid value         ChainID for replayer (default: 0)
   --log value, -l value   Level of the logging of the app action ("critical", "error", "warning", "notice", "info", "debug"; default: INFO) (default: "info")
   --db-logging value      sets path to file for db-logging output
   --track-progress        enables track progress logging (default: false)
   --no-heartbeat-logging  disables heartbeat logging (default: false)
   --err-logging value     defines path to error-log-file where any PROCESSING error is recorded
   --aida-db value         set substate, updateset and deleted accounts directory
   --db-src value          sets the directory contains source state DB data
   --shadow-db             use this flag when using an existing ShadowDb (default: false)
   --vm-impl value         select VM implementation (default: "geth")
Clone this wiki locally