Thomas E Lackey
190d0d7ac9
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). |
||
---|---|---|
.. | ||
contract | ||
direct_proxy_integration_test.go | ||
helper.go | ||
integration_suite_test.go | ||
integration_test.go | ||
README.md | ||
watch_address_integration_test.go |
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
-