區塊鏈開發環境搭建總結__區塊鏈

來源:互聯網
上載者:User

最近在開發一個基於Ethereum區塊鏈的應用,於是上網搜尋資料,發現網上資料太少,由於這項技術在國內較少人研究,許多問題都無法找到答案,我將這兩天自己的總結寫出來,希望能幫到大家


首先我們要下載以太坊的用戶端工具,我參考的是網上的視頻《明說》http://ethcast.com/v1,由於我對這方面沒有任何的基礎完全按照視頻的內容進行操作下載的是go語言的用戶端,

我用的是Ubuntu系統,具體安裝代碼是

sudo apt-get install software-properties-commonsudo add-apt-repository -y ppa:ethereum/ethereumsudo apt-get updatesudo apt-get install ethereums

安裝成功後


首先我們開啟服務命令是  geth --datadir "~/ethdev" --dev
之後我們進入控制台命令 geth --dev console 2>>file_to_log_output
進入控制台後查看當前賬戶命令:eth.accouonts
建立賬戶:

personal.newAccount('123456')//參數是帳號的密碼

查看使用者
eth.accounts

建立第二個賬戶
personal.newAccount('123456')//參數是密碼
我們將兩個賬戶分別賦值給user1和user2

建立第二個賬戶
personal.newAccount('123456')


我們將這兩個賬戶分別賦值給user1和user2
user1 = eth.accounts[0]user2 = eth.accounts[1]


下面是用戶端操作的一些命令

查看賬戶餘額:eth.getBalance(user1) 查看當前的區塊號:eth.blockNumber() 開啟日誌:tail -f file_to_log_output(新視窗中開啟) 挖礦命令:miner.start() 停止挖礦:miner.stop()

轉賬命令:eth.sendTransaction({from :user1,to:user2,value:web3.toWei(3,"ether")}) 此時執行挖礦命令會報錯因為user1時預設鎖定的,我們應該先解鎖賬戶
personal.unlockAccount("0xshbfksugfksjb24sfsd","123456")//參數分別是賬戶和密碼
之後重新執行轉賬命令,轉賬需要挖礦進行確認


在上述操作完成之後我開始搭建ethereum中一個架構truffle,這個架構安裝整整花費我3天的時間才完成,基本上所有的問題都在這上面,所以我重點描述這方面

首先安裝truffle之前我們要先安裝nodejs和npm(git在後面的安裝中會用到,必須安裝)

安裝命令        

        sudo apt-get install git        sudo apt-get install nodejs-legacy        sudo apt-get install npm



注意:我們安裝的nodejs和npm必須是較新的版本,不然在之後安裝truffle的時候會出問題,下面提供升級的方法

升級版本    
    sudo npm cache clean -f    sudo npm install -g n    sudo n stable

安裝solc和solc-cli    
    sudo npm install -g solc solc-cli --save-dev



因為我們要在geth中使用solidity編譯,所以還要安裝solc二進位包
   
    sudo add-apt-repository ppa:ethereum/ethereum    sudo apt-get update    sudo apt-get install solc


接下來我們安裝testrpc

testrpc不同於geth,geth是真正的以太坊環境,testrpc是在本地使用記憶體類比的一個以太坊環境,對於開發調試來說更為方便快捷,當你的合約在testrpc中測試通過後再部署到geth中去


安裝testrpc   

      sudo npm install -g ethereumjs-testrpc

安裝truffle   
      sudo npm install -g truffle

可能遇到的問題:truffle安裝失敗的機率很高,還會報很多錯誤 解決辦法:使用淘寶鏡像安裝可順利安裝
npm config set registry https://registry.npm.taobao.orgnpm install -g truffleln -s /usr//local/nodejs/node-v7.0.4/bin/truffle /usr/local/bin/truffle


根據網上的教程我們安裝truffle成功後先建立一個檔案夾

mkdir test

進入該檔案夾中

cd test

我們先執行truffle init 命令

網上介紹執行之後檔案夾中會產生一下檔案和檔案夾

app、contracts、migrations、test、truffle.js


但是我們發現我們的檔案夾中並沒有app檔案夾,當時我抱著試一試的想法繼續按照網上的教程進行操作

註:以下操作並沒有成功

執行 truffle compile命令,發現出現些許問題,沒有理會繼續執行


開啟我們的testrpc,重新啟動一個新的控制台輸入testrpc即可


在原來的test檔案夾下執行truffle migrate命令


再執行truffle serve

之後訪問localhost:8080

操作成功的話會顯示如下介面



但是我們訪問時發現介面顯示 cannot get connect



以上是完全按照教程執行,但是並沒有成功

為瞭解決這個問題在網上搜尋了很久,最後發現問題是網上教程使用的truffle是2.x的版本,而我們現在下載的版本是3.x的,3.x的版本與2.x的有許多改動,但是網上並沒有3.x的教程,苦尋無果的情況下我只好將版本回退到2.x,網上搜到這樣一條命令



若要安裝 truffle 2 版本

npm install -g truffle@2.1.1 (編譯過程出現其他問題)


卸載 後重新安裝
npm uninstall trufflenpm install -g truffle@~2.1.1 (解決上述問題)

按照命令操作以後果然回退到2.x的版本(npm執行非常慢,大家一定要有耐心)

興高采烈的執行 truffle init命令(重新建立一個空的檔案夾)

果然沒有問題產生了app、contracts、migrations、test、truffle.js這幾個檔案

接著執行

truffle compile



結果

Could not find expected contract or library in ‘ConvertLib.sol’: contract or library ‘ConvertLib’ not found. Compilation failed. See above.

實在沒辦法了,弄個架構就這麼麻煩嗎


好在最後在https://bitshuo.com/topic/58a55366598da39107dd7e81中找到解決方案


其實好多人從3.x版本回退到2.x版本後都遇到和我一樣的問題,解決的方法讓我崩潰,升級到3.x版本但是在專案檔夾中執行


 
truffle init webpack


抱著試試看的態度執行


sudo npm install -g truffle


將版本升級到3.x之後執行


truffle init webpack

果然產生的檔案中包含app檔案夾,並且其中有一個README.md其中有操作步驟
First run truffle compile, then run truffle migrate to deploy the contracts onto your network of choice (default “development”).
Then run npm run dev to build the app and serve it on http://localhost:8080
按照上述步驟執行後終於獲得成功




現在我將整個正確的步驟貼出來


1.安裝truffle
   1.1 安裝git和npm


        sudo apt-get install git        sudo apt-get install nodejs-legacy        sudo apt-get install npm

 1.2 升級版本

    sudo npm cache clean -f    sudo npm install -g n    sudo n stable


1.3安裝solc和solc-cli


1.4安裝solc二進位包
    

    sudo add-apt-repository ppa:ethereum/ethereum    sudo apt-get update    sudo apt-get install solc


1.5安裝testrpc
    
sudo npm install -g ethereumjs-testrpc

1.6安裝truffle
    
sudo npm install -g truffle

1.7  控制台輸入truffle得到相應的提示則說明成功



2 執行truffle命令
   2.1建立專案檔夾

mkdir  linux


2.2進入檔案夾中
cd linux


3.3執行一系列命令
truffle init  webpack

 

truffle compile




testrpc(在新的控制台視窗中執行)

 


truffle migrate




npm run dev



至此操作結束,開啟瀏覽器輸入 localhost:8080就能看到期望的轉賬demo介面



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.