web3.eth, web3.eth.personal, web3.eth.accounts look similar to me. As they all have same functions - sign, sendtransaction and etc. What is a good way to apply those packages on certain situations? I mean, how could we decide when to use each of the packages?
When I looked through the documentation, it tells me
1) web3.eth - interacting with ethereum blockchain and smartcontract
2) web3.eth.personal - interact with ethereum' nodes account
3) web3.eth.accounts - generate ethereum accounts and sign transactions and data
Does that mean I could manage a local node with personal package and others with accounts?
I included a reference to a more thorough medium article below on the topic.
But for the short answer. When using the web3.eth.accounts package, actions should be performed on the local node, because when the operations are performed on the local, the private keys will not be sent out to the network and they are safe.
You can use web3.eth.personal when you are working with another entity's account. Whatever password/information you send will be used by another node, as such you don't use this package to create user accounts or store keys;