据我了解,在使用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博客文章以获取其他信息。