modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0html
在命令行模式建立一個目錄,例如geths ,這裏geths目錄命名任意。命令:mkdir geths而後在ubuntu目錄下會出現一個geths文件夾。繼續進入到該文件夾目錄下,建立一個文件,genesis.json, 文件名也能夠任意。genesis.json 文件內容:(注意版本太早的複製進去,運行會出錯,能夠適當更改內容)
切換回命令行,執行命令,製造創世區塊進入到geths 目錄下,執行命令geth --datadir "./" init genesis.json此時當前geths目錄下面會新增出兩個文件夾geth和keystoregeth中保存的是區塊鏈的相關數據keystore中保存的是該鏈條中的用戶信息
geth --datadir "./" --nodiscover console 2>>geth.log注意這裏輸出打印日誌到log文件中
(4)建立一個新帳戶git
personal.newAccount(‘密碼')github
(5)帳戶賦值給某一個變量web
user1 = persnal.account[0]json
(6)上面提到過日誌文件,咱們再重開一個終端,咱們使用如下命令打開日誌:ubuntu
tail -f log.log函數
(7)在geth控制檯中啓動挖礦:學習
miner.start()區塊鏈
(8)中止挖礦ui
miner.stop()
(9)查看帳戶的帳戶餘額
eth.getBalance(user1)
(10)
user1向user2轉移以太幣
eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})
(11)解鎖帳戶後
eth.unlockAccount(user1,"123")
2)下面咱們來實現下在geth中編譯一個智能合約
source = "contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"
而後編譯該合約:
contract = eth.compile.solidity(source).test
編譯後的結果以下:
code:就是合約編譯後的字節碼文件,在以太坊虛擬機EVM上運行的就是這個字節碼;
abiDefinition:其實就是合約的二進制接口,可用來外部調用;
其餘的一些參數也都是能夠見名知意了。
而後就要獲取合約的abi(其實該真正要用的abi能夠經過https://ethereum.github.io/browser-solidity這個在線編譯器得到):
abi=[{"constant":false,"inputs":[{"name":"a","type":"uint256"}],"name":"multiply","outputs":[{"name":"d","type":"uint256"}],"payable":false,"type":"function"}]
而後是訪問abi接口:
MyContract=eth.contract(abi)
而後得到合約的實例:
myContract=MyContract.new({from:user1,data:contract.code})
若是提示你沒有解鎖的話,只要解鎖便可。
調用函數傳遞參數
。
函數作了乘以7的操做,輸出符合預期。合約執行成功。
以上就是對geth最基本的運用,咱們會在之後的開發中學習geth更爲深刻的功能。