Go-Ethereum

如何使用 Geth 製作 GUI

  • September 29, 2016

實際上,我什至不確定我要問的是否可能。

目前,我可以在 Geth 控制台中執行一個腳本,該腳本正在本地創建契約。我想創建一個帶有 2 個輸入和一個送出按鈕的簡單界面來美化流程。

您對最簡單的方法有什麼想法嗎?

你應該看看web3 庫,它是一個用於乙太坊的 JavaScript 庫。因此,您將能夠建構一個簡單的 Web 界面來編譯和部署合約。

請找一個簡單的例子(大部分程式碼摘自web3文件):

// Import web3
var Web3 = require('web3');


// create an instance of web3 using the HTTP provider.
var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")); 


var contractSource = "" + 
   "contract test {\n" +
   "   function multiply(uint a) returns(uint d) {\n" +
   "       return a * 7;\n" +
   "   }\n" +
   "}\n";

// Compile the contract source
var contractCompiled = web3.eth.compile.solidity(contractSource);

// It should return sometihng like that
// contractCompiled  : {
 "test": {
   "code": "0x605280600c6000396000f3006000357c010000000000000000000000000000000000000000000000000000000090048063c6888fa114602e57005b60376004356041565b8060005260206000f35b6000600782029050604d565b91905056",
   "info": {
     "source": "contract test {\n\tfunction multiply(uint a) returns(uint d) {\n\t\treturn a * 7;\n\t}\n}\n",
     "language": "Solidity",
     "languageVersion": "0",
     "compilerVersion": "0.8.2",
     "abiDefinition": [
       {
         "constant": false,
         "inputs": [
           {
             "name": "a",
             "type": "uint256"
           }
         ],
         "name": "multiply",
         "outputs": [
           {
             "name": "d",
             "type": "uint256"
           }
         ],
         "type": "function"
       }
     ],
     "userDoc": {
       "methods": {}
     },
     "developerDoc": {
       "methods": {}
     }
   }
 }
}


// Deploy your contract
var contract = web3.eth.contract(contractCompiled.test.info.abiDefinition);
var contractInstance = contract.new();

希望這可以幫助您創建一個簡單的界面。

否則,我真的很喜歡Truffle,它是一個乙太坊框架,它提供了一個強大的命令行工具來開發、編譯、測試和部署合約。

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