Solidity
Metamask 無法將交易發送到乙太坊專用網路
我在 Google Chrome 上使用 Metamask.io 擴展。使用套接字地址(IP:埠號)將 Metamask.io 正確連接到 AWS EC2 實例上託管的私有網路。Basic Contract 已使用 Remix IDE 部署在區塊鏈上以進行可靠性程式。我能夠獲取資訊(getInstructor 函式)。但是,無法設置新的講師資訊。
腳步 -
- 在 Remix IDE 上,我呼叫了該函式。
- 它會打開 Metamask 彈出視窗,我使用預設的 gas 價格。
- 交易永遠不會被執行。
在乙太坊私有區塊鏈節點上,我試圖找到待處理的交易,但沒有。如圖所示,
> eth.pendingTransactions []
然而在嘗試這個時,
web3.eth.getBlock("pending") { difficulty: 25082169, extraData: "0xd583010701846765746885676f312e39856c696e7578", gasLimit: 4712388, gasUsed: 0, hash: null, logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", miner: null, mixHash: "0x0000000000000000000000000000000000000000000000000000000000000000", nonce: null, number: 1557557, parentHash: "0xf84ce5ff7845f399eb698bfc33abeb24a8e459096d7ad9c097de3eb6130a6360", receiptsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", size: 537, stateRoot: "0x017184c9d24daab688c39468af064cd3ab748f5adc9c5b1fd3c5bcc2f3a318a0", timestamp: 1523753000, totalDifficulty: 0, transactions: [], transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", uncles: [] }
幾天前,我能夠執行此基本交易,但現在我不能。無法理解是什麼問題。
可能的錯誤 -
根據這些討論
開發的“通常”設置不是將 Metamask 連接到您的 AWS 節點,因為您不想將 API 公開給該節點。我猜你正在使用 POA 對嗎?
只需在您的電腦上執行一個本地節點並將元遮罩連接到 localhost。
預設情況下,節點只接受來自 localhost 的連接。您可以將其更改為接受來自任何人的連接:–rpcaddr “0.0.0.0”。
請注意,只要私鑰被解鎖,網際網路上的任何人都可以通過查詢您的 rpc 伺服器並發送交易來使用此密鑰。
聽起來你有這個問題: https ://github.com/MetaMask/metamask-extension/issues/1722
嘗試將
chainId
和設置networkId
為相同的值,以幫助 MetaMask 保持 EIP-155 兼容。在 MetaMask 中使用自定義節點的指南在這裡: https ://github.com/MetaMask/faq/blob/master/USERS.md#using-a-local-node