開(kāi)發(fā)環(huán)境準(zhǔn)備
首先要明確需要安裝哪些工具
1.以太坊客戶(hù)端:以太坊客戶(hù)端有很多版本,這里說(shuō)明Go語(yǔ)言版本的Geth
以太坊客戶(hù)端能做什么:搭建以太坊區(qū)塊鏈,我們作為新手入門(mén),搭建的是私有鏈
Go語(yǔ)言以太坊客戶(hù)端命令
geth acount list ?查看用戶(hù)(需要指定--datadir)
geth --datadir "~/ethdev" --dev console 2>> geth.log啟動(dòng)
//--datadir "~/ethdev”指定路徑參數(shù)
--dev指定開(kāi)發(fā)環(huán)境
console 2>> geth.log打開(kāi)控制臺(tái),并將日志輸出到指定文件
Geth控制臺(tái)命令(進(jìn)入了控制臺(tái)之后)
eth.accounts查看當(dāng)前所有賬戶(hù)([]是返回空數(shù)組)
personal.newAccount(‘123456’)(參數(shù)是密碼,生成的是地址)
eth.getBalance(賬戶(hù))(查看賬戶(hù)余額)
eth.blockNumber(查看當(dāng)前區(qū)塊號(hào))
tial -f geth.log打開(kāi)日志
miner.start()開(kāi)始挖礦(挖礦默認(rèn)充值到第一個(gè)賬戶(hù))
miner.stop()停止挖礦
eth.sendTransaction({from:user1,to:user2,value:web3.toWei(3,"ether")})發(fā)送交易(參數(shù),從user1發(fā)送到user2,發(fā)送的數(shù)量是3個(gè)"ether")
personal.unlockAccount("地址","密碼")解鎖賬戶(hù)
2.testrpc,這個(gè)應(yīng)用同樣可以幫助我們進(jìn)行私有鏈的測(cè)試,與Geth不同的是,Geth的交易需要通過(guò)網(wǎng)絡(luò)請(qǐng)求,在測(cè)試的時(shí)候比較費(fèi)時(shí).testrpc是純本地生成的address
啟動(dòng)testrpc直接在終端輸入命令testrpc
3.truffle
truffle是node.js的一個(gè)模塊,所以依賴(lài)于node.js,如何安裝node.js,度娘上教程很多
安裝完node.js 終端輸入命令 npm install -g truffle ?(其中-g參數(shù)指定將包安裝到全局環(huán)境中)
安裝完成后使用 truffle version 來(lái)檢測(cè)truffle版本 我這里使用的是2.1.2版本,因?yàn)?.x版本的有很多命令跟2.x版本不同
出現(xiàn)下圖的版本號(hào)就表示你的truffle已經(jīng)安裝成功了
寫(xiě)一個(gè)簡(jiǎn)單的合約
我們先創(chuàng)建一個(gè)文件夾 mkdir test
進(jìn)入這個(gè)文件夾 cd ~/test
執(zhí)行 truffle init (這時(shí)truffle會(huì)自動(dòng)生成一個(gè)簡(jiǎn)單的合約代碼)
app表示界面,contracts表示合約 migration裝有合約發(fā)布的配置文件,test表示你的測(cè)試用例,測(cè)試代碼寫(xiě)在里面
接下來(lái)我們要編譯合約 truffle compile?
編譯完成后,文件夾中會(huì)多出一個(gè)build文件夾,里面裝有編譯完成后自動(dòng)生成的.js代碼
然后其實(shí)這已經(jīng)是一個(gè)可以發(fā)布的合約了,我們打開(kāi)testrpc架設(shè)一個(gè)私有鏈,然后執(zhí)行truffle migrate發(fā)布合約(在版本2.x之前是truffle deployed)
發(fā)布合約之后,我們就可以利用合約來(lái)存儲(chǔ)數(shù)據(jù)了(使用truffle serve搭建一個(gè)可視化的界面localhost:8080,進(jìn)行測(cè)試),這個(gè)truffle自動(dòng)給我們生成的合約是一個(gè)轉(zhuǎn)賬功能合約.通過(guò)填寫(xiě)轉(zhuǎn)賬用戶(hù)地址和轉(zhuǎn)賬金額來(lái)實(shí)現(xiàn)轉(zhuǎn)賬
自己寫(xiě)一個(gè)合約
接下來(lái)就是自己寫(xiě)合約了.合約所用的語(yǔ)言有很多種,最常用的是Solidity,是一種類(lèi)JavaScript的語(yǔ)言,坑比較多,想系統(tǒng)學(xué)習(xí)的朋友可能需要自己慢慢研究.樓主這里也不是很明白
如果是自己寫(xiě)一個(gè)合約,那么在發(fā)布配置文件里要加上一行deployer.deploy(<#合約文件名#>),也就是在truffle migrate之前要修改配置文件;
發(fā)布之后再執(zhí)行就可以了.
作為一個(gè)新手教程,希望能幫到想學(xué)這個(gè)的少年-.-