智能合约开发【上】|猿创征文

前言

智能合约(Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于1995年由Nick Szabo首次提出。智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。

一、智能合约的优点

在这里插入图片描述

  • 不需要中间人
  • 费用低
  • 代码就是规则
  • 区块链网络中有多个备份,不用担心丢失
  • 避免人工错误
  • 无需信任,就可履行协议
  • 匿名履行协议

二、以太坊(Ethereum) – 智能合约开发概述

2.1 以太坊(Ethereum)智能合约开发工具

通常,开发智能合约需要用到工具:

  • Mist – 以太坊节点/钱包。
  • Truffle 框架 – 流行的以太坊开发框架,内置了智能合约编译、链接、部署等功能。
  • Metamask – Chrome插件方式的以太坊节点/钱包。
  • Remix – Remix是一个基于web浏览器的智能合约开发环境(IDE)。

2.2 以太坊(Ethereum)智能合约开发语言

目前主要的智能合约开发语言是 Solidity语言,是一种开发以太坊智能合约的静态高级语言,语法类似于JavaScript。
还有另外一些智能合约开发语言:

  • Vyper
  • Flint
  • Idris
    等等。

2.3 以太坊(Ethereum) – 智能合约开发环境搭建

为了构建开发智能合约或者dApp,我们需要安装以下模块:

  • Node 与 NPM
  • Truffle 框架
  • Ganache
  • Metamask
  • VScode 与 Solidity插件

1、Node 与 NPM

Truffle 框架依赖Node,需要使用npm安装。

首先需要安装node,npm会同时安装,下载node,按提示安装。

安装完后,可以验证一下node版本:

$ node -v

2、Truffle 框架

Truffle框架是流行的以太坊开发框架,内置了智能合约编译、链接、部署等功能。

使用npm安装Truffle框架:

$ npm install -g truffle

验证truffle安装:

$  truffle --version
Truffle v5.0.35 - a development framework for Ethereum
...

3、Ganache
在实际的以太坊网络上测试、部署Dapp或智能合约,需要消耗Gas。Ganache可以在本地创建区块链网络来测试我们的程序。

可以从Truffle Framework网站下载Ganache来安装。它将创建一个本地区块链网络,给我们分配10个外部账号,每个帐户都有100个假的以太币。

4、Metamask
Metamask是一个Chrome插件形式的以太坊节点/钱包。

我们可以使用Metamask连接到本地区块链网络或实际的以太坊网络,并与我们的智能合约交互。

要安装Metamask,请在谷歌Chrome web store中搜索Metamask Chrome插件并安装。一旦安装,请确保打开启用按钮。安装后,你会在Chrome浏览器的右上角看到狐狸图标。

5、VS code 与 Solidity插件
推荐使用vs code编辑器编写solidity代码,vs code可以安装一下Solidity插件,以便支持语法高亮功能。

三、以太坊(Ethereum) – Ganache本地区块链

3.1 主界面

本地区块链可以模拟公共区块链,开发人员可以在本地区块链上测试智能合约。打开Ganache,界面如下图所示:
在这里插入图片描述
本地区块链缺省有10个外部账号,每个账号都有100个假的以太币,这些可以通过设置改变。

Ganache界面中有下面几个主要页面:

  • ACCOUNTS – 账号页面,这显示了自动生成的所有帐户及其余额。
  • BLOCKS – 区块页面,显示了在本地区块链网络上挖掘的每个区块,及其Gas成本和包含的交易。
  • TRANSACTIONS – 交易页面,列出了在本地区块链上发生的所有交易。
  • CONTRACS – 合约页面
  • EVENTS – 事件页面
  • LOGS – 日志页面

3.2 搜索区块或交易

界面顶部的搜索栏,可以让你搜索本地区块链网络上的区块或交易。

3.3 设置

可以通过设置来定制Ganache的一些功能,单击主界面右上角的⚙图标进入设置页面。

猜你喜欢

转载自blog.csdn.net/qq_41250372/article/details/125521707