以太坊–智能合约开发介绍及环境搭建

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

1. 智能合约的概念

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

智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。

2. 智能合约的优点

与传统合同相比,智能合约有一些显著优点:

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

    image.gif

    3. 智能合约开发

    3.1 支持智能合约的区块链

           

    虽然以太坊(Ethereum)是最流行支持智能合约的区块链平台,但它并不是唯一支持智能合约的平台。

    超级账本(Hyperledger) 是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目。通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换,例如资产合约、能源交易、结婚证书、能够安全和高效低成本的进行追踪和交易。

    另外,还有其他很多区块链平台支持智能合约,可以参考相关资料。

    3.2 以太坊智能合约开发工具

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

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

      3.3 以太坊智能合约开发语言

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

      还有另外一些智能合约开发语言:

        等等。

        4. 智能合约开发环境搭建

        4.1 准备工作

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

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

          4.2 Node 与 NPM

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

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

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

          $ node -v

          image.gif

          4.3 Truffle 框架

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

          使用npm安装Truffle框架:

          $ npm install -g truffle

          image.gif

          验证truffle安装:

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

          image.gif

          4.4 Ganache

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

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

          4.5 Metamask

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

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

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

          4.6 VS code 与 Solidity插件

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

          目录
          相关文章
          |
          JSON JavaScript 前端开发
          以太坊 – 部署智能合约到Ganache
          将编译好的智能合约部署到本地的Ganache区块链网络。步骤如下:更新项目的配置文件,修改网络配置连接到本地区块链网络(Ganache)。创建迁移脚本,告诉Truffle如何部署智能合约。运行新创建的迁移脚本,部署智能合约。...
          1848 0
          以太坊 – 部署智能合约到Ganache
          |
          安全 区块链 数据安全/隐私保护
          基于以太坊的智能合约Fomo3D游戏开发规则部署
          基于以太坊的智能合约Fomo3D游戏开发规则部署
          |
          区块链
          DAPP智能合约正式版开发源码技术
          This article is compiled and released by WeChaT: kaifa873, which is only for reference of project development requirements! telegram @ sleu88
          118 0
          |
          区块链
          DAPP智能合约系统丨DAPP智能合约系统开发成功案例分析丨DAPP智能合约源码平台
          QueryContract(contractName,method string,kvs[]*common.KeyValuePair,timeout int64)(*common.TxResponse,error)
          |
          存储 机器学习/深度学习 人工智能
          智能合约简介
          智能合约远胜于传统交易流程,因为它们有可能实现自动化,在某些情况下,甚至可以完全取代整个行业。同时,智能合约使交易更加公平、透明和安全。但是,除了实现自动化和改进单一的交易过程之外,智能合约还能发挥更大的作用。
          472 0
          智能合约简介
          |
          区块链
          区块链开发(七)truffle使用入门汇总
          区块链开发(七)truffle使用入门汇总
          175 0
          区块链开发(七)truffle使用入门汇总
          |
          JSON JavaScript API
          区块链开发(六)truffle使用入门和testrpc安装
          区块链开发(六)truffle使用入门和testrpc安装
          445 0
          区块链开发(六)truffle使用入门和testrpc安装
          |
          前端开发 JavaScript 区块链
          以太坊智能合约开发入门
          以太坊合约就是以太坊区块链特定账户地址上的一串代码(functions)和数据(state)。合约账户不仅可以相互间通讯,还可以执行几乎所有的图灵完备计算。以太坊区块链上的合约代码是特定的二进制形式,被称作以太坊虚拟机(EVM)二进制代码。本文以最受欢迎的Solidity为例说明以太坊开发如何入门。
          5598 0
          |
          JavaScript 测试技术 区块链
          使用truffle部署以太坊智能合约到区块链
          truffle是以太坊(ethereum)开发智能合约(smart contract)过程中最受欢迎的框架,本教程来安装构建一个基本的Truffle项目并部署一个智能合约到区块链。
          2232 0