Experimental setup with a docker traffic shaper

Hi,

I am working on experiments that evaluate how some Libra Rust functions scale in terms of #nodes or #transactions. Furthermore, I am planning to gain insight how well Libra scales(performance wise) in terms of #nodes and transactions load. To make this as fair as possible I want to run the docker containers on a beefy machine with a traffic shaper, eg: “https://github.com/lukaszlach/docker-tc”. This allows for bandwidth and message delays simulation. I would like to hear some opinions about this approach.

Furthermore, I would like to know, approximately, the transactions size. I found an old post that estimated a transaction to be 400Bytes, is this still the case? If so, can I find some evidence somewhere? Its about this post:

Thanks!

Regards,
Jeanpierre

Hi Jeanpierre,

We have already been using tc to run experiments on effects bandwidth and latency on Libra network performance at scale. You can find the experiments that we have here : https://github.com/libra/libra/blob/master/testsuite/cluster-test/src/experiments/

Regarding transaction size, the size of a peer to peer transfer signed transaction is around 450 bytes. So your estimate of ~400 bytes is not too far :slight_smile:

Hi Ankushagarwal,

Thank you for your response, I was not aware of these experiments but they are helpful to me. Is it true that I cannot run these experiments with the docker containers setup in master branch? Would it be much work to get it to work with docker peers? Because I have the feeling that the docker containers are faster than running libra-swarm. You mentioned that you are using tc to run these experiments with libra-swarm, how can I configure this mechanism with the libra-swarm experiments?

Lastly, the docker nodes do run on the master branch while libra-swarm does not. What branch do you recommend to program in? Master or testnet?

Thanks for your help!

Regards,
Jeanpierre