Skip to content

Commit 860c827

Browse files
authored
make test data generation more consistent (#32)
* make test data generation more consistent For benchmarking purposes, test data should be fairly consistent between runs. test_data modules have been refactored for that purpose. * Update version to 0.4.0 * formatting and linting * Minor refactoring
1 parent 8f3c65d commit 860c827

File tree

16 files changed

+302
-290
lines changed

16 files changed

+302
-290
lines changed

chainbench/main.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
@click.group(
3939
help="Tool for flexible blockchain infrastructure benchmarking.",
4040
)
41+
@click.version_option(message="%(prog)s-%(version)s")
4142
@click.pass_context
4243
def cli(ctx: click.Context):
4344
ctx.obj = ContextData()

chainbench/profile/avalanche/general.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from locust import constant_pacing, tag, task
1919

2020
from chainbench.user.evm import EVMBenchUser
21+
from chainbench.util.rng import get_rng
2122

2223

2324
class AvalancheProfile(EVMBenchUser):
@@ -43,15 +44,15 @@ def get_block_by_number_task(self):
4344
self.make_call(
4445
name="get_block_by_number",
4546
method="eth_getBlockByNumber",
46-
params=self._block_by_number_params_factory(),
47+
params=self._block_params_factory(get_rng()),
4748
),
4849

4950
@task(17)
5051
def get_transaction_receipt_task(self):
5152
self.make_call(
5253
name="get_transaction_receipt",
5354
method="eth_getTransactionReceipt",
54-
params=self._transaction_by_hash_params_factory(),
55+
params=self._transaction_by_hash_params_factory(get_rng()),
5556
),
5657

5758
@task(15)
@@ -73,15 +74,15 @@ def get_balance_task(self):
7374
self.make_call(
7475
name="get_balance",
7576
method="eth_getBalance",
76-
params=self._get_balance_params_factory_latest(),
77+
params=self._get_balance_params_factory_latest(get_rng()),
7778
),
7879

7980
@task(10)
8081
def get_transaction_by_hash_task(self):
8182
self.make_call(
8283
name="get_transaction_by_hash",
8384
method="eth_getTransactionByHash",
84-
params=self._transaction_by_hash_params_factory(),
85+
params=self._transaction_by_hash_params_factory(get_rng()),
8586
),
8687

8788
@task(5)
@@ -110,7 +111,7 @@ def get_block_by_hash_task(self):
110111
self.make_call(
111112
name="get_block_by_hash",
112113
method="eth_getBlockByHash",
113-
params=self._block_by_hash_params_factory(),
114+
params=self._block_by_hash_params_factory(get_rng()),
114115
),
115116

116117
@task(3)
@@ -138,5 +139,5 @@ def get_logs_task(self):
138139
self.make_call(
139140
name="get_logs",
140141
method="eth_getLogs",
141-
params=self._get_logs_params_factory(),
142+
params=self._get_logs_params_factory(get_rng()),
142143
),

chainbench/profile/bsc/general.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from locust import constant_pacing, tag, task
1818

1919
from chainbench.user.evm import EVMBenchUser
20+
from chainbench.util.rng import get_rng
2021

2122

2223
class BscProfile(EVMBenchUser):
@@ -42,7 +43,7 @@ def get_transaction_receipt_task(self):
4243
self.make_call(
4344
name="get_transaction_receipt",
4445
method="eth_getTransactionReceipt",
45-
params=self._transaction_by_hash_params_factory(),
46+
params=self._transaction_by_hash_params_factory(get_rng()),
4647
),
4748

4849
@task(28)
@@ -66,31 +67,31 @@ def get_block_by_number_task(self):
6667
self.make_call(
6768
name="get_block_by_number",
6869
method="eth_getBlockByNumber",
69-
params=self._block_by_number_params_factory(),
70+
params=self._block_params_factory(get_rng()),
7071
),
7172

7273
@task(9)
7374
def get_transaction_by_hash_task(self):
7475
self.make_call(
7576
name="get_transaction_by_hash",
7677
method="eth_getTransactionByHash",
77-
params=self._transaction_by_hash_params_factory(),
78+
params=self._transaction_by_hash_params_factory(get_rng()),
7879
),
7980

8081
@task(5)
8182
def get_balance_task(self):
8283
self.make_call(
8384
name="get_balance",
8485
method="eth_getBalance",
85-
params=self._get_balance_params_factory_latest(),
86+
params=self._get_balance_params_factory_latest(get_rng()),
8687
),
8788

8889
@task(3)
8990
def get_block_by_hash_task(self):
9091
self.make_call(
9192
name="get_block_by_hash",
9293
method="eth_getBlockByHash",
93-
params=self._block_by_hash_params_factory(),
94+
params=self._block_by_hash_params_factory(get_rng()),
9495
),
9596

9697

@@ -104,5 +105,5 @@ def get_logs_task(self):
104105
self.make_call(
105106
name="get_logs",
106107
method="eth_getLogs",
107-
params=self._get_logs_params_factory(),
108+
params=self._get_logs_params_factory(get_rng()),
108109
),

chainbench/profile/ethereum/general.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from locust import constant_pacing, tag, task
1919

2020
from chainbench.user.evm import EVMBenchUser
21+
from chainbench.util.rng import get_rng
2122

2223

2324
class EthereumProfile(EVMBenchUser):
@@ -43,7 +44,7 @@ def get_transaction_receipt_task(self):
4344
self.make_call(
4445
name="get_transaction_receipt",
4546
method="eth_getTransactionReceipt",
46-
params=self._transaction_by_hash_params_factory(),
47+
params=self._transaction_by_hash_params_factory(get_rng()),
4748
),
4849

4950
@task(19)
@@ -59,7 +60,7 @@ def get_balance_task(self):
5960
self.make_call(
6061
name="get_balance",
6162
method="eth_getBalance",
62-
params=self._get_balance_params_factory_latest(),
63+
params=self._get_balance_params_factory_latest(get_rng()),
6364
),
6465

6566
@task(11)
@@ -75,15 +76,15 @@ def get_block_by_number_task(self):
7576
self.make_call(
7677
name="get_block_by_number",
7778
method="eth_getBlockByNumber",
78-
params=self._block_by_number_params_factory(),
79+
params=self._block_params_factory(get_rng()),
7980
),
8081

8182
@task(8)
8283
def get_transaction_by_hash_task(self):
8384
self.make_call(
8485
name="get_transaction_by_hash",
8586
method="eth_getTransactionByHash",
86-
params=self._transaction_by_hash_params_factory(),
87+
params=self._transaction_by_hash_params_factory(get_rng()),
8788
),
8889

8990
@tag("debug")
@@ -114,5 +115,5 @@ def get_logs_task(self):
114115
self.make_call(
115116
name="get_logs",
116117
method="eth_getLogs",
117-
params=self._get_logs_params_factory(),
118+
params=self._get_logs_params_factory(get_rng()),
118119
),

chainbench/profile/evm/get_logs.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from locust import constant_pacing, task
66

77
from chainbench.user.evm import EVMBenchUser
8+
from chainbench.util.rng import get_rng
89

910

1011
class GetLogsProfile(EVMBenchUser):
@@ -15,5 +16,5 @@ def get_logs_task(self):
1516
self.make_call(
1617
name="get_logs",
1718
method="eth_getLogs",
18-
params=self._get_logs_params_factory(),
19+
params=self._get_logs_params_factory(get_rng()),
1920
),

chainbench/profile/evm/heavy.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from locust import constant_pacing, tag, task
77

88
from chainbench.user.evm import EVMBenchUser
9+
from chainbench.util.rng import get_rng
910

1011

1112
class EthereumHeavyProfile(EVMBenchUser):
@@ -16,15 +17,15 @@ def debug_trace_transaction_task(self):
1617
self.make_call(
1718
name="debug_trace_transaction",
1819
method="debug_traceTransaction",
19-
params=self._trace_transaction_by_hash_params_factory(),
20+
params=self._trace_transaction_params_factory(get_rng()),
2021
),
2122

2223
@task
2324
def trace_block_task(self):
2425
self.make_call(
2526
name="trace_block",
2627
method="trace_block",
27-
params=self._block_by_number_params_factory(),
28+
params=self._block_params_factory(get_rng()),
2829
),
2930

3031
@tag("get-logs")
@@ -33,31 +34,31 @@ def eth_get_logs_task(self):
3334
self.make_call(
3435
name="eth_get_logs",
3536
method="eth_getLogs",
36-
params=self._get_logs_params_factory(),
37+
params=self._get_logs_params_factory(get_rng()),
3738
),
3839

3940
@task
4041
def eth_get_blocks_receipts_task(self):
4142
self.make_call(
4243
name="eth_get_block_receipts",
4344
method="eth_getBlockReceipts",
44-
params=[self.test_data.get_random_block_number_hex()],
45+
params=[hex(self.test_data.get_random_block_number(get_rng()))],
4546
)
4647

4748
@task
4849
def trace_replay_transaction_task(self):
4950
self.make_call(
5051
name="trace_replay_transaction",
5152
method="trace_replayTransaction",
52-
params=self._trace_replay_transaction_by_hash_params_factory(),
53+
params=self._trace_replay_transaction_params_factory(get_rng()),
5354
)
5455

5556
@task
5657
def trace_replay_block_transactions_task(self):
5758
self.make_call(
5859
name="trace_replay_block_transactions",
5960
method="trace_replayBlockTransactions",
60-
params=self._trace_replay_block_transaction_by_block_number_params_factory(), # noqa E501
61+
params=self._trace_replay_block_transaction_params_factory(get_rng()),
6162
)
6263

6364
@task
@@ -80,7 +81,7 @@ def trace_filter_task(self):
8081
self.make_call(
8182
name="trace_filter",
8283
method="trace_filter",
83-
params=self._trace_filter_params_factory(),
84+
params=self._trace_filter_params_factory(get_rng()),
8485
)
8586

8687
@task
@@ -120,21 +121,21 @@ def debug_trace_block_by_number_task(self):
120121
self.make_call(
121122
name="debug_trace_block_by_number",
122123
method="debug_traceBlockByNumber",
123-
params=self._trace_block_by_number_params_factory(),
124+
params=self._trace_block_by_number_params_factory(get_rng()),
124125
)
125126

126127
@task
127128
def debug_trace_block_by_hash_task(self):
128129
self.make_call(
129130
name="debug_trace_block_by_hash",
130131
method="debug_traceBlockByHash",
131-
params=self._trace_block_by_hash_params_factory(),
132+
params=self._trace_block_by_hash_params_factory(get_rng()),
132133
)
133134

134135
@task
135136
def eth_estimate_gas_task(self):
136137
self.make_call(
137138
name="eth_estimate_gas",
138139
method="eth_estimateGas",
139-
params=self._eth_estimate_gas_params_factory(),
140+
params=self._eth_estimate_gas_params_factory(get_rng()),
140141
)

chainbench/profile/evm/light.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from locust import constant_pacing, task
55

66
from chainbench.user.evm import EVMBenchUser
7+
from chainbench.util.rng import get_rng
78

89

910
class EthereumLightProfile(EVMBenchUser):
@@ -14,7 +15,7 @@ def get_transaction_receipt_task(self):
1415
self.make_call(
1516
name="get_transaction_receipt",
1617
method="eth_getTransactionReceipt",
17-
params=self._transaction_by_hash_params_factory(),
18+
params=self._transaction_by_hash_params_factory(get_rng()),
1819
),
1920

2021
@task
@@ -30,7 +31,7 @@ def get_balance_task(self):
3031
self.make_call(
3132
name="get_balance",
3233
method="eth_getBalance",
33-
params=self._get_balance_params_factory_latest(),
34+
params=self._get_balance_params_factory_latest(get_rng()),
3435
),
3536

3637
@task
@@ -46,15 +47,15 @@ def get_block_by_number_task(self):
4647
self.make_call(
4748
name="get_block_by_number",
4849
method="eth_getBlockByNumber",
49-
params=self._block_by_number_params_factory(),
50+
params=self._block_params_factory(get_rng()),
5051
),
5152

5253
@task
5354
def get_transaction_by_hash_task(self):
5455
self.make_call(
5556
name="get_transaction_by_hash",
5657
method="eth_getTransactionByHash",
57-
params=self._transaction_by_hash_params_factory(),
58+
params=self._transaction_by_hash_params_factory(get_rng()),
5859
),
5960

6061
@task

chainbench/profile/oasis/general.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from locust import constant_pacing, task
22

33
from chainbench.user.evm import EVMBenchUser
4+
from chainbench.util.rng import get_rng
45

56

67
class OasisProfile(EVMBenchUser):
@@ -11,39 +12,39 @@ def get_block_by_number_task(self):
1112
self.make_call(
1213
name="get_block_by_number",
1314
method="eth_getBlockByNumber",
14-
params=self._block_by_number_params_factory(),
15+
params=self._block_params_factory(get_rng()),
1516
),
1617

1718
@task
1819
def get_balance_task(self):
1920
self.make_call(
2021
name="get_balance",
2122
method="eth_getBalance",
22-
params=self._get_balance_params_factory(),
23+
params=self._get_balance_params_factory(get_rng()),
2324
),
2425

2526
@task
2627
def get_transaction_count_task(self):
2728
self.make_call(
2829
name="get_transaction_count",
2930
method="eth_getTransactionCount",
30-
params=self._get_balance_params_factory(),
31+
params=self._get_balance_params_factory(get_rng()),
3132
),
3233

3334
@task
3435
def get_code_task(self):
3536
self.make_call(
3637
name="get_code",
3738
method="eth_getCode",
38-
params=self._get_balance_params_factory(),
39+
params=self._get_balance_params_factory(get_rng()),
3940
),
4041

4142
@task
4243
def get_transaction_by_hash_task(self):
4344
self.make_call(
4445
name="get_transaction_by_hash",
4546
method="eth_getTransactionByHash",
46-
params=self._transaction_by_hash_params_factory(),
47+
params=self._transaction_by_hash_params_factory(get_rng()),
4748
),
4849

4950
@task
@@ -65,5 +66,5 @@ def get_block_transaction_count_by_number_task(self):
6566
self.make_call(
6667
name="get_block_transaction_count_by_number",
6768
method="eth_getBlockTransactionCountByNumber",
68-
params=self._random_block_number_params_factory(),
69+
params=self._random_block_number_params_factory(get_rng()),
6970
),

0 commit comments

Comments
 (0)