web3.eth.accounts.create和web3.eth.personal.newAccount之间有什么区别

时间:2018-04-29 06:25:48

标签: web3js web3

据我所知,在使用web3.eth.accounts.create()时,它不会将帐户添加到链(我使用ganache-cli进行测试),而是web3.eth.personal。 newAccount()确实。

这是主要目的还是错误? 还有其他差异吗?

web3.js版本:1.0.0-beta.34

1 个答案:

答案 0 :(得分:5)

两个版本都在区块链上创建一个新帐户。不同之处在于您与节点交互以及如何访问私钥。如果您有本地节点,则可以使用web3.eth.accounts.create创建帐户,并为您提供对私钥生成的访问权限,以便可以在本地存储。但是,由于通过连接返回私钥并不安全,因此如果您通过Infura等提供商进行连接,则不应使用此方法创建帐户。

另一方面,您可以使用web3.eth.personal在远程节点上创建新帐户。在这种情况下,私钥不会退还给您,因此您在访问帐户时会失去一些灵活性。如果您没有私钥,则无法在本地签署事务。要运行事务,您必须在远程节点上调用unlockAccount。请注意,您必须使用web3.eth.personal发送密码才能创建/解锁帐户,因此您仍需要确保使用安全连接。

查看此Medium blog post了解更多信息。