Let's say I have a small application running on a server that interacts with the Ethereum blockchain to occasionally send ETH to random addresses at random times. This application also has other functionality like talking to external APIs. It's not a webapp though and has no web interface. In fact, the only way of configuring / accessing the server is SSH access.
Presumably, on the server you're going to be running either geth or parity locally in order to send transactions. These transactions need to be able to be sent without any user input (entirely automated).
- What are the best practices here for working with parity or geth? Are there specific args that can be used to lock them down, yet still be able to send transactions?
- Should the local accounts be always unlocked? Should the private key encryption passphrase be stored as a file on system, environment variable, other?
- Is using cloud server providers not recommended (vs. running on your own hardware)?