-
Notifications
You must be signed in to change notification settings - Fork 212
FireFly Performance Testing Guide
Alex Shorsher edited this page Jan 20, 2023
·
14 revisions
Minimum recommended instance specs:
- 4 vCPU
- 8 GiB memory
Make sure the following are installed:
- latest FireFly CLI
- Docker
- Git
In the same directory, clone the FireFly Performance CLI and FireFly Core.
The FireFly Performance CLI is the program we use to benchmark FireFly. It can be configured, through a file named instances.yml
, to test various parts of the FireFly system at high throughput over an extended period of time. For more information about configuring the CLI, please see the project's GitHub.
Here is the default instances.yml
typically used for testing FireFly:
stackJSONPath: <path to FF CLI stack json>
wsConfig:
wsPath: /ws
readBufferSize: 16000
writeBufferSize: 16000
initialDelay: 250ms
maximumDelay: 30s
initialConnectAttempts: 5
heartbeatInterval: 5s
instances:
- name: long-run
tests: [{"name": "msg_broadcast", "workers":50},{"name": "msg_private", "workers":50},{"name": "blob_broadcast", "workers":30},{"name": "blob_private", "workers":30},{"name": "custom_ethereum_contract", "workers":20},{"name": "token_mint", "workers":10}]
length: 500h
sender: 0
recipient: 1
messageOptions:
longMessage: false
tokenOptions:
tokenType: fungible
contractOptions: {"address": "<custom contract address>"}
Next, use the included prep.sh
script to configure and start your firefly stack for testing.
$ ./prep.sh -h
Must provide exactly three arguments:
1. Old stack name to remove
2. New stack name to create
3. Stack's blockchain type (ex. geth, besu, fabric, corda)
ex: ./prep.sh old_stack new_stack geth
An example command would be:
$ ./prep.sh oldstack newstack geth