Go-Ethereum

我可以使用什麼來允許使用者通過網站發送交易?

  • July 20, 2016

我正在嘗試建立一個網站,允許多個使用者發送乙太坊交易而無需安裝節點。我的伺服器正在執行一個節點,該節點被配置為接受來自任何 Internet 地址的請求,看來我應該能夠通過 Web 瀏覽器從任何設備連接到該節點。乙太坊 JavaScript API 對這樣做有用嗎?謝謝!

是的,您可以使用web3.ETH.sendTransaction向網路發送交易。

web3.eth.sendTransaction(transactionObject [, callback])

例子

// compiled solidity source code using https://chriseth.github.io/cpp-ethereum/
var code = "603d80600c6000396000f3007c01000000000000000000000000000000000000000000000000000000006000350463c6888fa18114602d57005b6007600435028060005260206000f3";

web3.eth.sendTransaction({data: code}, function(err, address) {
 if (!err)
   console.log(address); // "0x7f9fade1c0d57a7af66ab4ead7c2eb7b11a91385"
});

設置您的節點,然後創建一個接受簽名原始交易輸入的面向公眾的 api。你可以使用 hooked web3 來做到這一點,你的使用者可以使用ConsenSys 的eth- lightwallet。

signing.signTx(keystore, pwDerivedKey, rawTx, signingAddress, hdPathString)

使用與signingAddress 對應的私鑰對交易進行簽名。

輸入

  • 密鑰庫:用於簽署 TX 的密鑰庫實例。
  • pwDerivedKey:使用者密碼派生密鑰(Uint8Array)
  • rawTx:定義 RLP 編碼的原始交易的十六進製字元串。
  • 簽名地址:十六進製字元串,定義發送交易的地址。
  • hdPathString:(可選)創建加密密鑰的路徑。

返回值

對應於 RLP 編碼的原始交易的十六進製字元串。

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