ipld-eth-server/test
Thomas E Lackey 190d0d7ac9
Improved logging and metrics. (#227)
1. Improve logging to include API method, user ID, etc in the output. We do this by intercepting the request details in the "middleware" and adding them to the request context, as well as adding a wrapper to logrus that simplifies including the fields in the output.

2. Breakdown API metrics by method. This will allow us to differentiate call counts and durations by API method (eg, eth_call vs eth_getStorageAt).
2023-01-20 19:39:26 -06:00
..
contract Run CI tests using stack-orchestrator 2022-05-04 13:05:48 +05:30
direct_proxy_integration_test.go Cerc refactor (#193) 2022-09-20 11:52:06 -04:00
helper.go Add integration tests for service to fill indexing gap 2022-04-21 17:03:37 +05:30
integration_suite_test.go Improved logging and metrics. (#227) 2023-01-20 19:39:26 -06:00
integration_test.go Cerc refactor (#193) 2022-09-20 11:52:06 -04:00
README.md Support debug_traceCall API (#192) 2022-09-21 17:15:03 +05:30
watch_address_integration_test.go Support debug_traceCall API (#192) 2022-09-21 17:15:03 +05:30

Test Insructions

Setup

  • Clone stack-orchestrator, ipld-eth-db go-ethereum repositories.

  • Checkout v4 release in ipld-eth-db repo.

    # In ipld-eth-db repo.
    git checkout v4.2.1-alpha
    
  • Checkout v4 release in go-ethereum repo.

    # In go-ethereum repo.
    git checkout v1.10.23-statediff-4.2.0-alpha
    
  • Checkout working commit in stack-orchestrator repo.

    # In stack-orchestrator repo.
    git checkout f2fd766f5400fcb9eb47b50675d2e3b1f2753702
    

Run

  • Run unit tests:

    # In ipld-eth-server root directory.
    ./scripts/run_unit_test.sh
    
  • Run integration tests:

    • In stack-orchestrator repo, create config file:

      cd helper-scripts
      
      ./create-config.sh
      

      A config.sh will be created in the root directory.

    • Update/Edit the generated config file with:

      #!/bin/bash
      
      # Path to ipld-eth-server repo.
      vulcanize_ipld_eth_db=~/ipld-eth-db/
      
      # Path to go-ethereum repo.
      vulcanize_go_ethereum=~/go-ethereum/
      
      # Path to ipld-eth-server repo.
      vulcanize_ipld_eth_server=~/ipld-eth-server/
      
      # Path to test contract.
      vulcanize_test_contract=~/ipld-eth-server/test/contract
      
      genesis_file_path='start-up-files/go-ethereum/genesis.json'
      db_write=true
      eth_forward_eth_calls=false
      eth_proxy_on_error=false
      eth_http_path="go-ethereum:8545"
      
    • Run stack-orchestrator:

      # In stack-orchestrator root directory.
      cd helper-scripts
      
      ./wrapper.sh \
      -e docker \
      -d ../docker/local/docker-compose-db-sharding.yml \
      -d ../docker/local/docker-compose-go-ethereum.yml \
      -d ../docker/local/docker-compose-ipld-eth-server.yml \
      -d ../docker/local/docker-compose-contract.yml \
      -v remove \
      -p ../config.sh
      
    • Run test:

      # In ipld-eth-server root directory.
      ./scripts/run_integration_test.sh
      
    • Update stack-orchestrator config.sh file:

      #!/bin/bash
      
      # Path to go-ethereum repo.
      vulcanize_go_ethereum=~/go-ethereum/
      
      # Path to ipld-eth-server repo.
      vulcanize_ipld_eth_server=~/ipld-eth-server/
      
      # Path to test contract.
      vulcanize_test_contract=~/ipld-eth-server/test/contract
      
      genesis_file_path='start-up-files/go-ethereum/genesis.json'
      db_write=false
      eth_forward_eth_calls=true
      eth_proxy_on_error=false
      eth_http_path="go-ethereum:8545"
      
    • Stop the stack-orchestrator and start again using the same command

    • Run integration tests for direct proxy fall-through of eth_calls:

      ./scripts/run_integration_test_forward_eth_calls.sh