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

简介: 智能合约(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插件,以便支持语法高亮功能。

          目录
          相关文章
          |
          开发工具 Linux
          Keepalived 日志配置与启动配置
          在Redhat系统下,可以使用下面的方法将keepalived的日志输出到/var/log/下的某个文件里:  1.将keepalived日志输出到local0:  vim /etc/sysconfig/keepalived  KEEPALIVED_OPTIONS="-D -d -S 0"  2.
          3623 0
          pip install --upgrade transformers
          pip install --upgrade transformers
          736 1
          |
          Web App开发 域名解析 缓存
          如何在 Ubuntu 20.04 上安装 Node.js 和 npm
          本文我们主要为大家介绍在 Ubuntu 20.04 上安装 Node.js 和 npm 的三种不同的方式。
          164294 7
          如何在 Ubuntu 20.04 上安装 Node.js 和 npm
          |
          传感器 监控 安全
          闭环反馈系统原理概述
          有时,为了获得系统的一致性和稳定性并产生控制系统的期望输出,我们使用反馈回路。反馈只不过是输出信号的一部分。这个概念在控制系统中最常见和最重要,以实现输出的稳定性。根据反馈连接,控制系统分为两种类型。它们是开环控制系统和闭环控制系统。下面简单介绍下闭环反馈系统。
          4393 0
          闭环反馈系统原理概述
          |
          存储 Oracle 测试技术
          《Solidity 简易速速上手小册》第6章:优化 Gas 消耗和性能(2024 最新版)(下)
          《Solidity 简易速速上手小册》第6章:优化 Gas 消耗和性能(2024 最新版)
          271 1
          |
          5月前
          |
          算法 前端开发 计算机视觉
          在线照片眨眼生成器,一键生成眨眼照片, 手机制作人脸眨眼张嘴
          本系统基于Flask、OpenCV和dlib实现,包含后端服务、前端界面和动画算法三大模块。支持上传照片实时检测人脸关键点,利用薄板样条变换生成自然眨眼动画效果
          |
          8月前
          |
          安全
          【📕分布式锁通关指南 07】源码剖析redisson利用看门狗机制异步维持客户端锁
          Redisson 的看门狗机制是解决分布式锁续期问题的核心功能。当通过 `lock()` 方法加锁且未指定租约时间时,默认启用 30 秒的看门狗超时时间。其原理是在获取锁后创建一个定时任务,每隔 1/3 超时时间(默认 10 秒)通过 Lua 脚本检查锁状态并延长过期时间。续期操作异步执行,确保业务线程不被阻塞,同时仅当前持有锁的线程可成功续期。锁释放时自动清理看门狗任务,避免资源浪费。学习源码后需注意:避免使用带超时参数的加锁方法、控制业务执行时间、及时释放锁以优化性能。相比手动循环续期,Redisson 的定时任务方式更高效且安全。
          515 24
          【📕分布式锁通关指南 07】源码剖析redisson利用看门狗机制异步维持客户端锁
          |
          9月前
          |
          XML JSON 算法
          智能冰箱食材识别
          本案例设计了一个囤菜系统原型,主要方法是利用冰箱内安装的摄像头,通过目标检测算法识别食材类别,判断存取动作,增加或者减少相应的食材的数量,并记录存取时间等相关数据,设计出了具备提示清理和补货等功能的智能化囤菜系统原型。
          569 7
          |
          IDE JavaScript 编译器
          《Solidity 简易速速上手小册》第2章:搭建 Solidity 开发环境(2024 最新版)
          《Solidity 简易速速上手小册》第2章:搭建 Solidity 开发环境(2024 最新版)
          3040 0
          |
          监控 机器人 区块链
          深度分析——狩猎者defi夹子机器人系统开发技术原理
          过去一年的时间里,DeFi可谓是迅速崛起,发展态势极其迅猛。虽然DeFi尚处于发展早期阶段,但活跃度和参与度都呈指数地在增长。在DeFi中,交易被打包的顺序极大地影响了DeFi的经济利益。例如,在 UniSwap 中,同样两个针对某交易对的买单,先被执行的交易将获得更多代币。若你在一笔买单前买入同样的代币,然后又赶紧卖出,则将毫无风险的获利。
          深度分析——狩猎者defi夹子机器人系统开发技术原理