Web3js

奇偶校驗的奇怪問題

  • December 18, 2017

我剛剛安裝了 Parity (1.8.2) 並確保它完全同步,並且遇到了一些奇怪的問題。(我通過 Homebrew 在 MacBook 上安裝了 Parity,配置都是預設值)

  1. 我可以通過http://localhost:8545使用 MetaMask 連接到我的本地節點,但無法使用 MEW(下載/離線版本)連接到它。我不斷收到此錯誤:

無法連接到節點。刷新您的頁面,嘗試不同的節點(右上角),檢查您的防火牆設置。如果是自定義節點,請檢查您的配置。

我注意到我有一個與此處所述類似的問題:https ://github.com/kvhnuke/etherwallet/issues/922 ,我沒有看到請求有效負載。

  1. 當使用 Parity 的 Javascript 控制台時,像web3.eth.blockNumber,之類的命令web3.eth.syncing都可以工作並返回值。但是,當我通過 npm 安裝 web3.js 時,然後執行以下命令:

var Web3 = require('web3'); var web3 = new Web3(); web3.setProvider(new web3.providers.HttpProvider('http://127.0.0.1:8545'));

所有命令web3.eth.blockNumber都返回未定義。但是,web3.eth.getBlockNumber().then(console.log);返回一個值。

謝謝您的幫助!

更新:我還嘗試了以下所有命令(或它們的組合):

parity --jsonrpc-cors '*' --jsonrpc-hosts all --jsonrpc-interface all

parity --jsonrpc-cors '*' --jsonrpc-hosts all --jsonrpc-interface all --rpccorsdomain 127.0.0.1

它們都不起作用。MEW 拋出此錯誤(在控制台中):

index.html:1 無法載入http://127.0.0.1:8545/:對預檢請求的響應未通過訪問控制檢查:請求的資源上不存在“Access-Control-Allow-Origin”標頭。因此,Origin ’null’ 不允許訪問。

最後,parity --jsonrpc-cors null成功了。它通過 AFAIK 禁用了 CORS,但現在我的本地 MEW 能夠連接到我的本地奇偶校驗。

但是,當使用 web3.js 時,我仍然不確定,例如

var Web3 = require('web3'); var web3 = new Web3(); web3.setProvider(new web3.providers.HttpProvider('http://127.0.0.1:8545')); console.log(web3.eth.blockNumber);

最後一行的輸出返回未定義。

+1 @shuxy,我在使用時遇到了同樣的問題--rpccorsdomain "*",但--jsonrpc-cors null解決了問題。

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