什么是松露套房? 功能、如何安装、如何运行智能合约

已发表: 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 是世界上最大的软件注册中心,允许个人通过其开源存储库使用共享资源。