Performance harness



Introduce the harness.

What is the harness?

It's a tool that allows running test scenarios against an rchain network.

So, what is the harness?

A grpc client extracted from the rchain project and bridged to gatling (

Where can it be found? in the folder templater

It should become part of rchain soon.

How can I use it?

Prerequisite: an rchain network running (e.g. one standalone node).

Three approaches to running the harness:

  1. run it as a test
  2. run it as a standalone application
  3. bypass gatling and run it directly

Ad. 1)

This simulation is configured in templater/runner/test/reources/appliaction.conf

sbt runner/gatling:test

Ad. 2)


This is a typical Main style app. behaves similar to the above simulation but can be run instead of tested.

The params are as follows:

Ad. 3)


You can use these in any way.

But I don't have a network!

There  a myriad ways of setting up a network:


Dupe Contract

We encountered an issue with the contract:

The scenario was as follows:

10 deploys, 1 propose, 10 threads running "at once", 100 loops. A network of 5 rnodes.

The problem observed was Kamon Http client throwing exceptions. This was most likely due to node running out of memory and becoming unstable.

A good starting point would be to reproduce, make sure it's the heap running out and getting heap dumps.