Web3js

Web3js 未連接到本地主機中的 TestRPC

  • February 18, 2019

我只是想在節點控制台中執行 web3js 並將其連接到在 localhost 中執行的 testrpc。

我像這樣執行我的 testrpc:

> ganache-cli
Ganache CLI v6.0.3 (ganache-core: 2.0.2)

Available Accounts
==================
(0) 0x131f68e69281532b0ced46cb5da5a5b8cd676b81
(1) 0xb7f672193eb7653912fdbe623699aa21c5d6a9c7
(2) 0x4b6021ac75768c1872ec10d4da31046f37e64d31
(3) 0x0d1f5030fbca0b6ed939093882e3fd788ddb91c6
(4) 0xb4d33e34e1743b07b2599bc532bcf9583f7019b2                                                                                                                                                                      [16/3254](5) 0x160343f0e731075149608a48aed614328127336f
(6) 0xf0c9c25fa5d496263176c07ea0d73172f8566d4f
(7) 0xffcc8d7d07334fc0af7d027378a20289b708e5be
(8) 0x453fca917e47ed8786a05613c3f3de89d57b3c8f
(9) 0x377a23e76fa9bc0574c30a64df4ca9b186c3976b

Private Keys
==================
(0) 8e79cd0667cf265d7241087af29788a7bbe6e2608b436cfe9f775153b5516f31
(1) c90108c817b0648f7fb7795f5b21c45bd3ba016aefa8dafc0d74d39ff68960ef
(2) bf7b186071640f8e986f2e78edf41643e3e1f8aedbfc51fb9410ad9f2a5d502b                                                                                                                                                 [5/3254](3) f40c6a05337b137cc084991a2743d67bf24d27206ffaba8432864e10edb66860
(4) de0008cef56816baea1f0363e6c9af3a1e69821380d72879fc0e2270cceb2044
(5) 0b73cbb9226ec939084831cb749f198dce80b39057b66c121cbdfc6627994f69
(6) a37f478448aabb7ff895d53165bb74b27c9913a2d7130b9e0cd587915615f08d
(7) 40790b3db911d0e4812a164f1778e2d74c3f79589c4e84ee4a1a6b87e25ad69a
(8) 42536e4ddc80bfb0104a265f94c50e65d2484007a9d56200a409de27d86358f0
(9) 572432cf3dc96494900175b66428a40f107de0a9ff832cce9e8aad2385ae22be

HD Wallet
==================
Mnemonic:      between trust fossil over stand make suffer behind raccoon long engage height
Base HD Path:  m/44'/60'/0'/0/{account_index}

Listening on localhost:8545

這對我來說一切都很好,然後我打開一個 tmux 會話並在一個簡單的節點 cli 中執行以下行:

// Load Libraries
 var solc = require("solc");
 var fs = require("fs");
 var Web3 = require("web3");

// Connect Web3 Instance
 var web3 = new Web3(new Web3.providers.HttpProvider(`http://localhost:8545`));

// Global Account Accessors
 var acct1 = web3.eth.accounts[0];

> acct1
undefined

如您所見,acct1 的值為空,當我返回執行 testrpc 的 tmux 會話時,我看不到應該執行的 eth_account 命令。

如果我執行,netstat -tuplen我確實可以看到 testrpc 正在埠 8545 上執行:

tcp6       0      0 :::8545                 :::*                    LISTEN      1000       3431613     50196/node
udp        0      0 0.0.0.0:68              0.0.0.0:*                           0          15715

看起來 web3 中進行了許多更改,因此現在要訪問您需要使用以下內容的帳戶:

web3.eth.personal.getAccounts().then(res => console.log(res)) 列出所有帳戶…..或 web3.eth.personal.getAccounts().then(res => console.log (水庫

$$ 0 $$)) 顯示帳戶$$ 0 $$ETC

安裝使用

複製儲存庫並執行

npm install

然後啟動 testpc 伺服器

npm run ganache

並從一個單獨的外殼

npm run http_server

然後將您的瀏覽器指向http://localhost:8000網路版的投票應用程序。

server.js文件包括 VotingContract 設置和部署。為了進行比較,您應該能夠按照原始教程了解從 1.0 之前的綁定web3到 1.0web3綁定的變化。

請嘗試一下沒有工作和 幫助連結 謝謝

引用自:https://ethereum.stackexchange.com/questions/38620