-
Notifications
You must be signed in to change notification settings - Fork 68
Early API Node testing for Leap 5.0.0
Thank you for contributing to Leap Testing to ensure quality and a smooth rollout process. Leap v5.0.0 is packed with features, so we are taking several passes at testing to reduce the risks that such a large release creates.
NOTE: Due to updates Early Access Releases will need to be started from a snapshot Starting from an existing shared_memory.bin
will not work.
For this round of testing our goal is to test read only transactions. Since read only transactions are not relevant to block producer nodes, we can test on API nodes.
We'll be testing the following features:
- Read-only Transactions
- EOS VM OC
- Reduced Chainbase Size
- Prometheus Metrics
- Libary Upgrades (Boost, C++)
- P2P improvements ?? (need to check: sync, connections)
By exercising these features via the following test plan, we hope to confirm the following expectations:
- nodeos is stable (no crashes)
- nodeos has lower overall cpu utilization
- nodeos has smaller resident memory size
- nodeos has smaller chainbase size
- nodeos handles high quantity of simultaneous read only transactions
- OS: ubunutu 22.04
- Snapshot: need to start from snapshot Recommendation for early access; however earlier versions of ubunutu are supported
-
Copy the following Test Report Template:
- pre-5.0.0 version
- release version:
- baseline
- resident memory size:
- chainbase size:
- nodeos cpu utilization:
- Wharfkit & Wharf test suite
- correctness test: Remove mock data and re-run tests on new api node. Expect all tests should pass.
- note: some tests may have assumptions in mock data and fail. Failed tests will need to be reviewed.
- Early Testing Version
- tag name:
API-early-v5.0-185a13567
- baseline
- resident memory size:
- chainbase size:
- nodeos cpu utilization:
- Any crashes?
- Wharfkit & Wharf test suite
- correctness test: Remove mock data and re-run tests on new api node. Expect all tests should pass.
- during low read-only thread count test
- nodeos cpu utilization:
- Any crashes?
- during high read-only thread count test
- nodeos cpu utilization
- Any crashes?
- tag name:
- pre-5.0.0 version
-
Pre-5.0.0 version
With an API node with a pre-5.0.0 version:
-
Document the Baseline Scenario
- Ascertain Resident Memory Size
- Ascertain Chainbase Size
- Ascertain CPU utilization
- Document in your Test Report
-
Run the Wharfkit & Wharf test suite
- Run WharfKit + Wharf Antelope Core tests
- Ascertain Resident Memory Size
- Ascertain Chainbase Size
- Ascertain CPU utilization
- Document in your Test Report
-
-
Early Testing Version
With an API node running an Early Testing Version of Leap v5.0.0:
-
Document the Baseline Scenario
- Ascertain Resident Memory Size
- Ascertain Chainbase Size
- Ascertain CPU utilization
- Document in your Test Report
-
Run the Wharfkit & Wharf test suite
- Run WharfKit + Wharf Antelope Core tests
- Ascertain Resident Memory Size
- Ascertain Chainbase Size
- Ascertain CPU utilization
- Document in your Test Report
-
Low read-only thread counts
- set
read-only-threads = 32
- Spam network with read-only transactions (get-block, get-info)
- Ascertain CPU utilization
- Document in your Test Report
- set
-
High read-only thread counts
- set
read-only-threads = 256
- Spam network with read-only transactions (get-block, get-info)
- Ascertain CPU utilization
- Document in your Test Report
- set
-
Custom read-only contracts
- Deploy custom read-only contract (example)
- Spam network with transactions containing your custom read-only actions
- Ascertain CPU utilization
- Document in your Test Report
-
Auto EOS-VM-OC
- set
eos-vm-oc-enable = auto
- Spam network with system contract transactions
- Ascertain CPU utilization
- Document in your Test Report
- set
-
- take a snapshot
- backup your configuration
- build leap from source with tag API-early-v5.0-185a13567
- install updated software from build
- set
read-only-threads = 32
confirm settingread-only-read-window-time-us = 165000
confirm settingenable-account-queries = true
- restore from snapshot
- RSS: Resident Memory Size
- VSZ: Virtual Set Size
> ps -o pid,user,vsz,rss,comm,args -p 1831038 1831042 1831045
PID USER VSZ RSS COMMAND COMMAND
1831038 eric 4515168016 36008 nodeos nodeos
1831042 eric 1113320 2360 oc-monitor nodeos
1831045 eric 64744 2360 oc-trampoline nodeos
-
Ensure the following plugins are activated:
- eosio::http_plugin
- eosio::chain_plugin
- eosio::db_size_api_plugin
-
Make a call to
db_size
to find the current utilized space
http://api.example.com:8888/v1/db_size/get