Skip to content
/ bazooka Public

Load testing tool for Ethereum clients

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

quilt/bazooka

Repository files navigation

bazooka

License: LGPL v3 Go Report Card

A p2p load testing tool for Ethereum clients.

Overview

Like a rocket launcher, bazooka is designed to overwhelm its target. It carries out pre-defined load testing strategies in a deterministic fashion. By executing atop devp2p it is portable across all proper Ethereum clients. Unlike other tools [1] [2] that focus on consistency & compliance, bazooka focuses on creating maximally adverse operating conditions for honest nodes. These conditions can be used to detect performance regressions and DoS attack vectors in candidate modifications to clients.

Usage

To initialize a patched version of Geth and run the sample routine against it, use the following commands:

$ ./run.sh build && ./run.sh run fixtures/sample.yaml

Specifying an Routine

A routine has two main parts: the initialization and routine.

Initialization

The first section allows you to define how many (empty) blocks the chain should start with and the accounts to generate. The key of the accounts map is the account's address. This should be derived from either the private key key or using the create2 formula. The depoyer's address is 0xD2192C7F2EAEb1f05279c45D19828118e3D6f46C.

Routines

There are 4 types of routines:

id name description
0 NewTxs Announces transactions to the target node
1 NewBlock Announces a new block to the target node
2 Sleep Sleeps for a certain amount of time
3 Exit Ends the current routine

A script build-aa.sh has also been included to generate input for the sample AA contract.

Examples

sample.yaml aa-sample.yaml

Contributions

TODO

About

Load testing tool for Ethereum clients

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING

Stars

Watchers

Forks