MinaProtocol / mina

Mina is a cryptocurrency protocol with a constant size blockchain, improving scaling while maintaining decentralization and security.
https://minaprotocol.com
Apache License 2.0
1.99k stars 529 forks source link

Complete testnet terraform code for deploying bootstrap benchmarks using bot and agent accounts #11556

Closed stevenplatt closed 2 years ago

stevenplatt commented 2 years ago

This task is to document work require to generate testnet code for running Mina bootstrap benchmarks with a network that contains bot and agent accounts.

This testnet code is expected to be based on the currently running Berkeley testnet: https://github.com/MinaProtocol/mina/tree/develop/automation/terraform/testnets/berkeley

Once this testnet code is complete, it can be used to run testnets for bootstrap benchmark by changing the baked image run by the testnet nodes.

stevenplatt commented 2 years ago

There are a number of tools that are used to place test transactions and configure bots. The origin code used in the Berkeley testnet is using an Ocaml tool named batch_txn_tool.ml. This tools is run using a special docker toolchain container that completes the required Dune build (including build of dependencies). After a few attempts at running this image, it was difficult to sort out Ocaml related errors and the path was abandoned for an alternate approach.

For posterity documentation, the sources were:

batch-txn-tool: https://github.com/MinaProtocol/mina/blob/develop/src/app/batch_txn_tool/batch_txn_tool.ml txn-burst container image: https://github.com/MinaProtocol/mina/blob/develop/src/app/batch_txn_tool/Dockerfile_txn_burst

stevenplatt commented 2 years ago

This item is completed. The final implementation is using the standard mina daemon command line commands to unlock the local wallet and send payments. The source file for this new txn-burst.py file is located here: https://github.com/MinaProtocol/mina-deployments/blob/main/benchmarks/bootstrap_process/txn-burst.py

By using the mina daemon commands has the following benefits:

Documentation for the mina daemon commands to send payments are located here: https://docs.minaprotocol.com/en/using-mina/send-payment