【问题标题】:web3.eth.accounts.create 和 web3.eth.personal.newAccount 有什么区别
【发布时间】:2018-10-09 13:43:09
【问题描述】:

据我了解,在使用 web3.eth.accounts.create() 时,它不会将帐户添加到链中(我使用 ganache-cli 进行测试),但 web3.eth.personal.newAccount() 会.

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

web3.js 版本:1.0.0-beta.34

【问题讨论】:

标签: web3js web3


【解决方案1】:

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

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

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

【讨论】:

  • 嗯,我认为他们应该将API名称更改为localremote,这样更容易理解。
猜你喜欢
  • 2019-06-23
  • 2018-08-18
  • 2022-07-08
  • 2019-06-23
  • 2019-09-13
  • 2019-01-10
  • 2018-08-23
  • 2023-03-10
  • 2018-12-01
相关资源
最近更新 更多