什麼是松露套房? 功能、如何安裝、如何運行智能合約
已發表: 2020-03-24早期,當區塊鏈剛剛開始進入主流技術領域時,您必須使用 Solidity 編程語言開發智能合約,並通過調用 geth 或 solc 函數來部署它們。
為了讓這個過程更容易一點,你必須編寫 bash 腳本,首先編譯然後部署合約。 現在,雖然後一種方法比前一種方法更好,但它還是相當初級的,因為 bash 腳本通常需要缺乏標準化。
為區塊鏈智能合約創建無縫和優化的開發和測試框架的需求催生了 Truffle Etheruem。
從世界頂級大學學習在線軟件工程課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
目錄
什麼是松露套房?
根據Truffle Suite的說法,Truffle 是“使用以太坊虛擬機 (EVM) 的世界級區塊鏈開發環境、測試框架和資產管道,旨在讓開發人員的生活更輕鬆。”
簡單來說,Truffle 是一個開發環境、測試框架和資產管道合二為一。 它基於以太坊區塊鏈,旨在促進 DApp(分佈式應用程序)的順利和無縫開發。 使用 Truffle,您可以編譯和部署智能合約,將它們注入 Web 應用程序,還可以為 DApps 開發前端。 今天,Truffle 是以太坊區塊鏈使用最廣泛的 IDE 之一。

Truffle Suite 包含三個核心元素:
- Truffle – 集成了智能合約的編譯、測試和部署的實際開發環境。
- Ganache – 這是一個本地部署的區塊鏈模擬器。 Ganache 具有圖形用戶界面,可以模擬區塊鍊網絡和實時測試智能合約,而無需您設置真實的測試網絡或使用遠程網絡。
- Drizzle – 它是各種前端庫,為開發可以與智能合約無縫連接的 Web 應用程序提供有用的組件。
閱讀:如何成為區塊鏈開發人員 - 初學者指南
松露的特點是什麼?
使 Truffle Etheruem 成為以太坊區塊鏈最廣泛使用的 IDE 之一的特性是:
- 它內置了對編譯、部署和鏈接智能合約的支持。
- 它允許使用 Mocha 和 Chai 進行自動化合約測試。
- Truffle 控制台讓您可以輕鬆地處理已編譯的合約。
- 它有一個可配置的構建管道,支持控制台應用程序和 Web 應用程序。
- 它內置了對 JavaScript、CoffeeScript、SASS、ES6 和 JSX 的支持。
- 它具有幫助創建新合約和測試的生成器(例如,rails generate)。
- 它有一個腳本運行器,允許您運行 JS/Coffee 文件,包括您的智能合約。
- 它允許在開發階段即時重建資產。
- 它使用您首選的 RPC 客戶端啟用合約編譯和部署。
- 它支持網絡和包管理。
如何安裝 Truffle 以太坊?
您可以使用節點包管理器 (npm) 安裝 Truffle Ethereum。 首先,您需要在您的計算機上設置 NPM ,然後安裝 Truffle。 為此,您需要打開終端並鍵入以下內容:
npm install -g 松露
但是,在 Linux 機器中,您可能需要在上述語句中添加“sudo”前綴。 安裝 Truffle 框架後,請確保下載並安裝 Ganache 區塊鏈模擬器。 您可以訪問Ganache 官方網站——它包含適用於大多數流行平台的安裝程序。
現在您已經成功安裝了 Truffle,您可以通過兩種方式啟動 Truffle 項目。 要創建一個裸項目,您可以鍵入以下語句:
松露初始化
但是,您也可以使用 Truffle unbox 命令使用現有代碼創建項目。 例如,您可以像這樣創建一個令牌:
松露拆箱元幣
運行此命令時,將從 Truffle box 創建一個項目。 您可以在官方網站上找到許多松露盒。 它們包含樣板代碼和構建項目所需的所有配置并快速啟動它們。
松露項目的結構
您創建的 Truffle 文件夾將如下所示:
├── 合約
│ ├── ConvertLib.sol
│ ├── MetaCoin.sol
│ └── Migrations.sol
├── 遷移
│ ├── 1_initial_migration.js
│ └── 2_deploy_contracts.js
├── 測試
│ ├── TestMetacoin.sol
│ └── metacoin.js
├── truffle-config.js
└── truffle.js
現在,我們將詳細討論 Truffle 文件夾中包含的不同子文件夾。
合同文件夾
Contracts 文件夾是存儲所有智能合約的文件夾。 在此文件夾中,還有一個稱為 Migrations.sol 文件的特殊文件。 通常,當 Truffle 編譯您的項目時,它會瀏覽 Contracts 文件夾以編譯所有兼容文件。
遷移文件夾
Truffle Migration 是指定義如何將智能合約部署到以太坊區塊鏈的腳本。 遷移是必不可少的,因為隨著您的項目變得越來越複雜,您的部署的複雜性也會增加。 借助 Truffle Migrations,您可以按順序自動執行智能合約的部署過程。

如果您回顧一下 Truffle 文件夾結構,您會看到一個名為1_initial_migration.js的文件。 此文件將 Migrations.sol 合約部署到以太坊區塊鏈。
遷移允許您:
- 設置部署的最大氣體限制
- 修改或更改部署地址。
- 調用任意合約函數。
- 部署庫
測試文件夾
談到智能合約,測試是必須的! 值得慶幸的是,Truffle 有一個內置的測試框架,允許你用 Solidity 或 JavaScript 編寫測試。 如果您在 Solidity 中編寫測試,則必須使用 Solidity 導入指令將智能合約導入測試,如下所示:
導入“../contracts/MetaCoin.sol”;
但是,如果您使用 JavaScript 編寫測試,則必須使用artifacts.require()輔助函數導入它們,如下所示:
var MetaCoin = artifacts.require(“./MetaCoin.sol”);
配置文件
配置文件,也稱為 truffle.js 或 truffle-config.js,定義了 Truffle 如何連接到以太坊網絡以及以下內容:
- 環境– 它允許您定義 geth 註釋的地址、network_id、部署的最大 gas 限制以及您願意支付的 gas 價格。
- 項目結構——您可以更改構建和存儲文件的位置。
- 編譯器版本和設置- 您可以修復 solc 版本並設置 -O(優化)參數。
- 包管理——Truffle 與 EthPM(以太坊包管理器)兼容。 您可以為您的 Truffle 項目設置 EthPM 的依賴項。
- 項目描述——它說明誰開發了項目,指定項目名稱、聯繫地址等。
另請閱讀:面向初學者的區塊鏈項目理念
如何運行智能合約?
以下是運行智能合約的不同方式——
- 要編譯智能合約,您必須運行以下代碼:
松露編譯
- 要運行遷移,您必須使用以下代碼:
松露遷移
您也可以通過提及特定環境來做到這一點:
松露遷移——網絡直播

- 為了測試智能合約,您可以運行以下代碼:
松露測試
您還可以使用以下代碼運行特定測試:
松露測試 ./path/to/FileTest.sol
在這篇文章中,我們旨在向您介紹 Truffle Etheruem 的基本概念及其運作方式。 Truffle 是一個強大的工具,它通過將標准開發實踐帶入區塊鏈圖片,使 DApp 和智能合約的開發更加方便。
包起來
區塊鏈技術的職業生涯正在興起,區塊鏈永遠極大地改變了技術行業的面貌。 如果您有興趣成為區塊鏈開發人員並構建智能合約和鏈碼,請查看 IIIT-B 和 upGrad 的區塊鏈技術高級證書計劃。
以太坊上的 Vyper 是什麼?
Vyper 是一種面向合約的、統計類型的、pythonic 編程語言,以以太坊虛擬世界為目標。 它被設計為對團結的改進。 Vyper 的主要原則和目標是安全性、語言和編譯器的簡單性以及可審計性。 Vyper 是一種強類型語言,因此不允許將一種數據類型用作另一種數據類型。 它帶有許多附加功能,例如邊界和溢出檢查、強類型、小型且易於理解的編譯器端、對純函數的有限支持、對有符號整數和十進制定點數的支持以及可判定性。 它還具有簡單的語法,使開發人員無法編寫模棱兩可的程序。
智能合約的缺點是什麼?
智能合約,即使它們有如此多的用途和更廣泛的普及,也受到許多限制。 智能合約的執行有一個完善的法律法規,這使得它更容易受到網絡攻擊。 更改智能合約流程幾乎是不可能的,因為任何代碼錯誤都是耗時且糾正成本高昂的。 第三方的介入雖然明顯減少,但不能完全消除。 例如,開發人員需要律師來理解為智能合約創建代碼的條款。 智能合約對程序員的依賴度也很高,並且容易出現漏洞,這是一個很大的劣勢。
什麼是區塊鏈中的網絡和包管理?
包管理器可幫助您自動執行安裝、更新、配置和應用程序刪除。 它們用於操作系統和編程環境,有助於避免依賴地獄。 包管理器的主要功能包括確保包的真實性、從在線存儲庫下載軟件、更新現有軟件等。包管理器有多種類型,二進制包、基於源代碼的包、混合系統、元包管理器、應用程序基於管理器等。還存在與區塊鏈相關的包管理器。 一個這樣的管理器是節點包管理器。 NPM 是世界上最大的軟件註冊中心,允許個人通過其開源存儲庫使用共享資源。