What are the best practices for an Ethereum private network with n nodes (programmed with Geth), to be secure from possibles external attacks?

I mean, which config parameters are recommended during the initialization of the nodes, to achieve a better security? Should I put --nodiscover? Is it recommended to enable/disable rpc/ipc? Etc...

  • Is it a requirement to also restrict the read access to the blockchain? I would also suggest to be more specific with your question. It might get closed for being "too broad".
    – ivicaa
    Apr 1 '18 at 19:52
  • I edited the post. I hope this is clearer. Thank you for the advice! Apr 2 '18 at 7:20

It totally depends on what you want to do with your chain, but:

--nodiscover: Yes, use it. it's computing power used for nothing. It may be very small, but still, you don't want random people to connect.

genesis: Make a "complex" genesis file, not one found on internet and just copied and pasted it.

Restrict ports on your VMs

Depending on what you want to do: Desable RPC. If you enable it, specify which library can be used.

To finish, I agree with comments (in your original post), it's too broad, you don't provide enough information.

  • Thank you for your answer. I'm sorry if I am not very specific but, not knowing about ethereum private network security, I didn't know how to formulate the question so I decided to ask with an high range of possible different answers! Apr 3 '18 at 8:27

Not the answer you're looking for? Browse other questions tagged or ask your own question.