Ethereumjs
如果我發送由 ethereumjs-wallet 生成的私鑰簽名的交易,交易將不會送出到一個塊
問題
所以基本上我要做的是發送由 ethereumjs-wallet 生成的帳戶簽名的交易,這樣我的節點就不會保留 UTC 文件,因此如果有人竊取帳戶 UTC 文件,我沒有問題。但是,如果節點上沒有用於簽署我的交易的地址的 UTC 文件,我的契約將不會執行。
這是我用於發送 Tx 的程式碼的一部分。
utils.askForInput('Owner address: ') .then((ownerAddr) => { Tx.ownerAddr = ownerAddr; return utils.askForInput('New wallet address: '); }).then(async (newAddr) => { const data = await utils.prepareData('addWallet', newAddr); const nonce = await utils.getAccountNonce(Tx.ownerAddr); console.log('Data: ' + data); console.log('Nonce: ' + nonce); return utils.askForInput('Signed Transaction: '); }).then(async (signedTx) => { await utils.sendRawTransaction(signedTx); utils.closeReadLine(); }).catch((err) => { console.log(err); utils.closeReadLine(); });
可能的解決方案
我可以創建 UTC 文件並呼叫契約,在我完成所有操作後,我可以刪除 UTC 文件。但我認為這是一個黑客。我的問題是為什麼會出現這種情況,是否有必要像這樣解決它。
只是為了指出我的程式碼有效,如果為該帳戶創建了 UTC 文件。
我發現我需要在創建的地址上有一些乙太幣,這樣地址才能執行天然氣價格為 0 的交易。所以我需要在發送原始交易之前用乙太幣填充賬戶。