ethereum / public-attacknets

Public attacknets available for eth2
Creative Commons Zero v1.0 Universal
72 stars 18 forks source link

[REQUEST FOR INFORMATION] Deployment of attacknet #6

Closed MatthiasEgli closed 4 years ago

MatthiasEgli commented 4 years ago

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.

protolambda commented 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:

The process looks like:

Have you tried running a single beacon node and validator already, on e.g. Altona testnet? I would recommend getting familiar first.

protolambda commented 4 years ago

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).