在 web3.js 中创建帐户而不运行 geth?

Posted

技术标签:

【中文标题】在 web3.js 中创建帐户而不运行 geth?【英文标题】:Creating an account in web3.js without running geth? 【发布时间】:2018-10-01 20:27:31 【问题描述】:

我想知道如何创建一个新的个人帐户,如何为该帐户进行挖掘以及如何使用 web3.js 从该帐户进行发送交易?我尝试使用(web3.eth. web3.js 中的personal.newAccount()) 通过与geth 连接。但是我想在不运行 geth 的情况下在 web3.js 中创建一个帐户、挖掘和发送交易?我正在关注 web3:1.0.0-beta.33 版本的文档。是否可以在不运行 geth 的情况下完成所有这些操作? 我的代码是

    var Web3 = require('web3');
    var web3 = new Web3(new 
    Web3.providers.HttpProvider('http://xx.xx.xx.xxx:xxxx'));
    web3.setProvider(new 
    Web3.providers.WebsocketProvider('ws://xx.xx.xx.xxx:xxxx'));
    var net = require('net');
    var web3 = new Web3(new 
    Web3.providers.IpcProvider('\\\\.\\pipe\\geth.ipc', net));
    var Web3EthPersonal = require('web3-eth-personal');
    var personal = new Web3EthPersonal('http://xx.xx.xx.xxx:xxxx');

    web3.eth.personal.newAccount('test123',function(error , response)
    if(!error)

    console.log(response);
    else
        console.log(error);

    
    );

【问题讨论】:

【参考方案1】:

除了 Infura 之外,还有 QuickNode 和Alchemy 等节点提供者。我们的工程团队使用 Alchemy,因为我们遇到了 Infura 的一致性问题。

【讨论】:

【参考方案2】:

您可以使用Infura 等第三方提供商创建帐户并提交交易,而无需运行本地节点。他们的网站上有大量关于如何创建 API 密钥并与他们的节点集群集成的文档。

但是,您需要运行一个节点才能进行挖矿。

【讨论】:

感谢亚当 Kipinis

以上是关于在 web3.js 中创建帐户而不运行 geth?的主要内容,如果未能解决你的问题,请参考以下文章

Geth 控制台使用及 Web3.js 使用实战

Geth控制台使用及Web3.js使用实战

从 Metamask 获取所有以太坊账户

仅使用 EVM API 在区块链上部署智能合约,而不使用 geth 或 tuffle 或 ganache?

使用 ethereumjs-wallet 作为浏览器模块

Web3.js sendSignedTransaction 给出“错误:无法检查交易收据”