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



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

这是主要目的还是错误? 还有其他区别吗?

web3.js版本:1.0.0-beta.34

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

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

查看此 Medium 博客文章以获取更多信息。

最新更新