Closed MatthiasEgli closed 4 years ago
Hey, that sounds great! I am happy to help you set up a similar network, but sadly the original approach how we set up the current attacknets is not so convenient. To change this, and scale to bigger multi-client attacknets, I started refactoring the ansible roles, vars, playbooks etc. into a new public repository, built to work more as a library. This way everyone should be able to spin up a testnet with their own ansible inventory definition. (if you are unfamiliar with Ansible, have a look at this great tutorial: https://www.youtube.com/watch?v=MfoAb50Br94)
Work in progress here: https://github.com/protolambda/ansible_eth2/
The set up, used in attacknets now, generally looks like:
beacon
runs an Eth2 beacon node. Publicly exposed on TCP and UDP port 9000validator
run an Eth2 validator, communicating with the beacon node on port 4000 (and 4001 for GRPC, prysm client)The process looks like:
beacon
docker container on each machine)validator
docker container on each machine)Have you tried running a single beacon node and validator already, on e.g. Altona testnet? I would recommend getting familiar first.
Also, something to add: you can run a beacon node without a validator, and still join the attacknet. That would be a good, easy, start to become familiar with things. And at the same time, you will have some attacknet data at hand by syncing the network (the API of the client you are running may be useful).
You could then maybe use trace logs or a debugger to find interesting things in the client, to then try and exploit in the other attacknet nodes.
If you want to avoid other attacknet users from accidentally finding your node, you can disable the "discv5" part of the client (this is the discovery part where node records are advertised).
Is it possible to share the way in which the attacknet has been deployed, including scripts to conveniently deploy private identical/similar test networks? We want to clone the full network to better try certain cases and have more insights into the behavior and debug messages of the validator nodes.