1. 程式人生 > >區塊鏈學習(四)以太坊truffle開發框架的安裝使用

區塊鏈學習(四)以太坊truffle開發框架的安裝使用

注意,區塊鏈技術在發展,以太坊的專案迭代速度也很快,現在的truffle的框架命令已經與一月份有很大不同了,我參照網上別人的部落格經驗,由於版本不同,當時的命令已經有所改變,也給我帶來很大困惑,總以為自己哪個步驟安裝的不對。建議大家最好參照官方文件,獲取最新版本的最新性質。

我本文記錄ubuntu下truffle的安裝與開發使用,對於windows環境下,我也嘗試進行了搭建,確實會遇到各種各樣莫名其妙的問題,首先要在windows下安裝truffle,要先安裝Node,git,python等環境,而且python的版本還有要求。對於其中的安裝過程報的錯誤,大家可以把錯誤資訊弄懂然後解決之後繼續安裝。對於一些許可權的錯誤,建議在命令列(管理員)下進行,或者在powershell下進行。經過一路折騰,我還時成功在windows上安裝了truffle框架環境,也能使用truffle init和truffle version等命令,然而在使用truffle compile 等命令的時候並沒有任何的反應,經過一段時間還是沒有解決這個問題,希望以後大家在windows平臺上搭建成功之後能發表一些見解分享一些經驗。

Ubuntu下安裝truffle:

一般truffle安裝的依賴環境有:Nodejs,git ,python,ubuntu下自帶python,這裡不做解釋。

安裝git:

首先,確認你的系統是否已安裝git,可以通過git指令進行檢視,如果沒有,在命令列模式下輸入sudo apt-get install git命令進行安裝。安裝完成後命令列輸入git,出現一些git的命令表示安裝成功,

安裝完成後,還需要最後一步設定,在命令列輸入:

$ git config --global user.name "YourName"

$ git config --global user.email"[email protected]

"

因為Git是分散式版本控制系統,所以,每個機器都必須自報家門:你的名字和Email地址。

安裝NodeJs,所以要先安裝NodeJs環境:

安裝nodeJS之前,如果沒有安裝g++及 libssl-dev,則先要安裝好,安裝方法如下:

$ sudo apt-get install g++

$ sudo apt-get install libssl-dev

接下來,就可以下載安裝nodeJS了,目前穩定版本為 Node.js 0.6.18,下面是安裝步驟:

$ wgethttp://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz

$ tar zxvf node-v0.8.16.tar.gz

進入解壓的目錄:

$ ./configure

$ make && make install

最後一步的時候需要一定的時間,請耐心等待。

安裝好後,在控制檯下輸入:

$ node -v

顯示出版本資訊則表示node安裝成功。

如果安裝過程包一些許可權的錯誤,就在命令前加上sudo

準備好依賴環境之後開始安裝truffle:

 $npm install -g truffle

等命令執行完之後,輸入truffle顯示出truffle的命令介面表示安裝成功。

安裝TestRPC:testrpc是以太坊區塊鏈的模擬環境,不同於geth,geth是真正的以太坊環境,testrpc是在本地使用記憶體模擬的一個以太坊環境,對於開發除錯來說,更為方便快捷,當你的合約在testrpc中測試通過後,再可以部署到geth中去。所以用truffle+testrpc進行本地開發測試方便快捷,能提升開發者開發測試效率。

安裝命令:

$ npm install -g ethereumjs-testrpc

安裝後在命令列裡輸入testrpc出現如下圖所示:


表示testrpc安裝成功,同時也開啟了區塊鏈測試環境,在進行開發部署中此視窗便一直開啟著不能關閉。從圖中也可以看到,此測試環境給你提供了是個賬戶,供開發者測試使用。

Truffle框架的使用:

新建一個test根目錄,在命令列中進入這個目錄,輸入truffle init webpack(建立一個web應用),而truffle init命令現在則不會生成上層web頁面例項。本文操作以truffle init webpack為例。

如圖所示


如果你遇到這個命令卡住或者報了錯誤如下圖


則在此命令前加一個sudo,即sudo truffle init webpack

當此命令執行完以後生成的框架檔案目錄如下:(將來要修改資料夾時候修改整個資料夾許可權的命令式sudo chmod -R 777 ./test 修改test資料夾和其子目錄許可權為777)。


app資料夾下包含前端介面(展示給使用者)與js檔案(與智慧合約互動)如下圖

 

contracts資料夾下存放你的只能合約檔案,如下圖他生成了一個用例智慧合約MetaCoin

將來你部署你自己的智慧合約的時候可以將這個刪除,把自己的只能合約放到此處


Migrations資料夾下包含對合約的配置檔案如下圖


下圖是2_deploy_contracts.js檔案程式碼,你可以部署自己的智慧合約後,在這裡修改此配置檔案。


node_modules資料夾不用管是依賴環境。

Test資料夾下是存放一些測試檔案。

開啟另一個視窗輸入testrpc開啟區塊鏈模擬環境。

然後再剛才的truffle生成的資料夾下輸入命令:truffle compile進行編譯如下圖顯示出了編譯智慧合約的資訊.


輸入truffle migrate命令,將只智慧合約部署在區塊鏈中如下圖

注意:此過程前提是保證testrpc已經在執行中。


接著輸入你npm run dev開啟服務如下圖所示:


開啟瀏覽器在瀏覽器中輸入:localhost:8080 回車看到如下圖所示

 

這是truffle為你自動生成的一個基於區塊鏈的web應用樣例,在testrpc中找一個賬戶可以操作一下這個MetaCoin的轉賬樣例。

我們可以在這個truffle生成的用例中學習他的結構,開發自己的web應用。

相關推薦

區塊學習truffle開發框架安裝使用

注意,區塊鏈技術在發展,以太坊的專案迭代速度也很快,現在的truffle的框架命令已經與一月份有很大不同了,我參照網上別人的部落格經驗,由於版本不同,當時的命令已經有所改變,也給我帶來很大困惑,總以為自己哪個步驟安裝的不對。建議大家最好參照官方文件,獲取最新版本的最新性

區塊學習學習簡介

很多人在剛接觸區塊鏈的時候疑惑以太坊是什麼東西,和區塊鏈有什麼關係,為什麼要學習以太坊等問題,本文將簡單介紹,目的是學習和理解以太坊方便以後深入學習。 這裡從區塊鏈的發展說起: 區塊鏈起源於比特幣,是比特幣的底層技術。具體介紹參照我對區塊鏈介紹的部落格:http://bl

區塊開發truffle開發框架安裝使用

下面介紹一下以太坊truffle開發框架的安裝使用,給大家提供一個參考。Ubuntu下安裝 truffle.一般truffle安裝的依賴環境有:Nodejs,git ,python,ubuntu下自帶python,這裡不做解釋。安裝git輸入一下命令:sudo apt-get

區塊實踐 Geth入門操作

進入Geth 命令列模式 在上一篇文章中,我們說到,我們可以用下面命令,建立一個新的私有鏈 geth --datadir "./" --nodiscover console 2>>geth.log 進入命令列模式,其中引數 –datadi

區塊實踐 網路+geth搭建私有網路實戰

一、乙太網網路 理解以太坊 PrivateNetwork 先要理解以太坊的兩種官方網路, 目前以太坊官方提供了兩種網 生產環境網路 測試網路 TestNet ** 1 以太坊生產網路 以太坊的生產網路顧名思義,也就是產生真正有價值的 的以太幣的網路

區塊學習--win10下構建

以太坊私鏈環境搭建構建以太坊私鏈1、環境是win10,下載對應的最新版本Ethereum-Wallet-win64-0-10-0.ziphttps://github.com/ethereum/mist/releases 2、解壓到指定目錄即可,運行Ethereum-Wallet初始化數據,私鏈搭建無需同步 3

區塊學習Windows下搭建私有環境

儘管windows下做以太坊區塊鏈開發環境搭建可能出現各種各樣未知錯誤,但大家還是應該積極的探索。 一:安裝geth客戶端          Windows要求必須是64位系統,從官方網站下載編譯好的win64客戶端,下載解壓後只有一個Geth.exe問價,執行安裝即可,

區塊快速入門——

hub rtg DApp 外部 試圖 技術 ransac 復雜 HERE 區塊鏈快速入門(八)——以太坊 一、以太坊簡介 以太坊(Ethereum)項目的最初目標是打造一個運行智能合約的平臺(Platform for Smart Contract),支持圖靈完備的應用,按照

區塊開發客戶端命令列選項彙總

本篇部落格的內容可通過以下命令在客戶端中進行檢視: geth --help 也可以訪問github上的wiki文件檢視,地址為: https://github.com/ethereum/g

區塊開發錢包 Mist

簡單說明一下之前用Geth搭建的私有網路 建立鏈條的geth命令 geth --datadir "./" init genesis.json geth --datadir "./" --nodiscover console 2>>geth.log 在命令列模式

區塊開發系統下truffle構建智慧合約

truffle環境安裝 針對truffle 環境安裝這裡不多敘述,可以搜一下… 初始化 開啟終端建立一個目錄 mkdir test cd test truffle init 會生成檔案 新建合約檔案 然後可以用vscod

區塊2開發框架Truffle教程Windows

概述 上一篇部落格介紹瞭如何搭建一個私有鏈的以太坊開發環境,並部署一個簡單“hello world”智慧合約到區塊鏈上,詳情請前往區塊鏈開發環境搭建。 本文進一步介紹區塊鏈的一個主流開發框架Truffle 環境搭建 使用 Truffle

區塊』從零構建Ethereum智慧合約到專案實戰-黎躍春-專題視訊課程...

『區塊鏈』從零構建以太坊(Ethereum)智慧合約到專案實戰—3317人已學習 課程介紹        區塊鏈技術被認為是繼蒸汽機、電力、網際網路之後,下一代性的核心技術。 如果說蒸汽機釋放了人們的生產力,電力解決了人們基本的生活需求,網際網路徹底改變了資訊傳遞的方式,那麼

區塊學習2錢包

rar 結構 nic 通過 可能 如果 基本 方式 樹狀 比特幣中的錢包並不包含比特幣,只包含私鑰,每一個用戶有一個包含多個私鑰的錢包。錢包中包含成對的私鑰和公鑰。用戶用這些私鑰來簽名交易。可以說錢包是私鑰的容器。 最開始的錢包只儲存隨機生成的私鑰。這種類型的錢包被稱作零型

區塊學習4交易

圖靈 比特幣 生成 入棧 部分 pub png 組合 數字 上次大致講了比特幣的交易模式。接著講講比特幣的交易。比特幣的交易驗證引擎依賴於兩類腳本來驗證比特幣交易:一個鎖定腳本和一個解鎖腳本。 鎖定腳本鎖定了一個輸出值,同時它明確了今後花費這筆輸出的條件。鎖定腳本往往含有一

區塊學習6區塊

有序 打包成 info 運算 區塊鏈 ash 互連 包含 hash 寫了幾篇區塊鏈的學習筆記,今天來寫寫比特幣中的區塊鏈。比特幣中區塊鏈是由包含交易信息的區塊從後向前有序鏈接起來的數據結構。每個區塊從後向前有序地鏈接在這個鏈條裏,每個區塊都指向前一個區塊。 區塊結構 區塊是

區塊,使用 Go-Ethereum 搭建私有

區塊鏈 私有鏈 以太坊 go語言 1、什麽是Ethereum(以太坊)  以太坊(Ethereum)並不是一個機構,而是一款能夠在區塊鏈上實現智能合約、開源的底層系統,以太坊從誕生到2017年5月,短短3年半時間,全球已有200多個以太坊應用誕生。以太坊是一個平臺和一種編程語言,使開發人員能夠

[區塊]1.Ubuntu Geth 搭建私有環境

  前言 1.1 本文基於Ubuntu 作業系統。 1.2 geth的全稱是go-ethereum,是一個以太坊客戶端,用go語言編寫,應該是目前最常用的客戶geth。 1.3 ubuntu預設root用不啟用的,終端下輸入sudo passwd root(即

原始碼解讀7的P2P網路基礎

一、分散式網路的來歷 基於P2P技術的應用有很多,包括檔案分享,即時通訊,協同處理,流媒體通訊等等。其中檔案分享和下載是p2p技術最集中體現。其中,DHT技術是目前很多分散式系統所普遍採用的方案,也包括以太坊。所以這裡先要對DHT技術有所瞭解。 二、DHT(Distributed Ha

原始碼解讀1核心概念

一、定義 以太坊是一個開源的帶有智慧合約功能的公共區塊鏈平臺。 特點: 1、支援智慧合約,以太坊不是給使用者一系列預先設定好的操作,而是充分允許使用者按照自己的意願建立複雜的邏輯操作; 2、以太坊同時還構建了較完整的、開源的生態系統:有底層的geth、程式設計的solid