DApp是Decentralized Application的缩写,译为:分散式的应用程序。App我们都知道,我们在智能手机上安装的应用程序也就是App。而DApp比App多了一个‘D’,‘D’的意思是分散式的。意思是 分散式的应用程序/去中心化的应用程序。与传统的App最大的区别是:DApp运行在去中心化的网络上,也就是区块链网络中。这里的DApp开发用以太坊智能合约为例,智能合约是记录在链上的一段能够控制链行为事件的一段协议,如:合约下关联账户转币、查账、投票、购买等等,合约里涉及的变量、常量都是记录在链上的数据,凡是写入数据就必须要消耗以太坊作为写入数据的矿工费,所以开发时我们把链作为数据库操作。

1、开发流程:
(1)根据需求编写出智能合约,以public函数为单元测试

(2)部署合约进行调试,可以用metamask链接以太坊测试网络调试,也可以使用以太坊本地私有链,或者模拟环境ganache测试,这里推荐安装ganache(testrpc是在本地使用内存模拟的一个以太坊环境,目前已被ganache取代)

(3)结合需求定制前端功能模块

(4)前端功能链接合约,每完成一个功能函数链接可以做一次测试

(5)没有问题后发布在主网

2、环境的部署

转载于:https://blog.51cto.com/13238147/2341871

区块链学习(3)--以太坊Dapp开发相关推荐

  1. 区块链学习(3) 以太坊测试环境编译并部署智能合约(mac版)

    选择编写智能合约的语言 Ethereum上的智能合约需要使用solidity语言来撰写.虽然还有其他能用来撰写智能合约的语言如Serpent(类Python).lll(类Fortran),但目前看到所 ...

  2. 以太坊DApp开发入门教程——Node.js和truffle框架打造区块链投票系统

    第一节 课程概述 本课程面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 -- 区块链投票系统. 通过本课程的学习,你将掌握: 以太坊区块链的 ...

  3. 头歌-信息安全技术-用Python实现自己的区块链、支持以太坊的云笔记服务器端开发、编写并测试用于保存云笔记的智能合约、支持以太坊的云笔记小程序开发基础

    头歌-信息安全技术-用Python实现自己的区块链.支持以太坊的云笔记服务器端开发.编写并测试用于保存云笔记的智能合约.支持以太坊的云笔记小程序开发基础 一.用Python实现自己的区块链 1.任务描 ...

  4. 区块链技术之以太坊ETH白皮书

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 基于中本聪区块链比特币1.0之后,天才少年Vitalik Buterin(V神)在2013年年末发布了以太坊白皮书,其实 ...

  5. 【区块链 | ENS】以太坊(Ethereum)中的ENS已支持DNS,怎么使用DNS解析地址?

    上篇文章:[区块链 | Ens]以太坊(Ethereum)中的ENS是什么?如何购买ENS? 我们可以了解到什么是ENS,ENS该怎么购买,但它只支持.eth对应后缀域名,并不支持.com .cn . ...

  6. 以太坊DApp开发环境搭建

    2019独角兽企业重金招聘Python工程师标准>>> 以太坊DApp开发环境搭建分为Ubuntu.Windows.mac下的搭建.目的为开发者提供一个以太坊开发.测试的搭建开发环境 ...

  7. V神又在操心区块链技术落地,以太坊大涨!

    V神又在操心区块链技术落地,以太坊大涨! 12月1日,以太坊联合创始人 Joseph Lubin 连发20条推特,详细阐述了区块链技术和去中心化现状.在他认为,如今的以太坊社区比以往任何时候都更加健康 ...

  8. 以太坊Dapp开发通过truffle部署合约

    以太坊Dapp开发通过truffle部署合约 Truffle是一个非常流行 DApp 开发框架,他可以帮我们处理掉大量无关紧要的小事情,让我们可以迅速开始写代码-编译-部署-测试-打包DApp这个流程 ...

  9. 区块链2.0以太坊漫谈(4)

    智能合约 什么是智能合约 以太坊上的程序称之为智能合约, 它是代码和数据(状态)的集合. 智能合约可以理解为在区块链上可以自动执行的(由消息驱动的).以代码形式编写的合同(特殊的交易). 智能合约英文 ...

最新文章

  1. OSPF协议将其管理的网络划分为不同类型的若干区域(Area),其中标准区域特点是(64);存根区域(stub)的特点是(65)。【答案】C B
  2. 【转载】ATI显卡在Ubuntu下设置方法(很全面)
  3. Unisys:信息安全新关键——微分割
  4. QT的QCameraImageCapture类的使用
  5. TreeMap源码分析——深入分析(基于JDK1.6)
  6. blazeds调用java_Flex使用Blazeds与Java交互及自定义对象转换详解(转)
  7. python表达式352的值为_表达式 3 and 5 的值为
  8. [Python] - 批处理git conflict文件
  9. 苹方字体 for linux,苹果苹方字体/苹方黑体全套完整版下载(ttf版)
  10. 干货:大米云LAMP使用说明
  11. 2018 Multi-University Training Contest 3 hdu多校第三场 Problem A:Ascending Rating(单调队列)
  12. 华为LTC流程再造(BPR)的来龙去脉,看一篇文就够了!管理变革专家许浩明老师
  13. element-ui按需引入报错 Error: Cannot find module ‘babel-preset-es2015‘
  14. Swift 优化OC接口 NS_REFINED_FOR_SWIFT
  15. 关于减肥的科学理解和准则
  16. python ValueError: No JSON object could be decoded
  17. 标准SPI,Dual SPI和Qual SPI
  18. 服务器任务栏运行程序不见了,Win7系统任务栏上正在运行的程序图标不见了怎么办...
  19. 缓冲区溢出的基本原理
  20. 在Z-stack中,我们调用数据发送函数,可以发送的最大字节数即ASDU最大是多少呢?

热门文章

  1. 针对piix4_smbus ****host smbus controller not enabled的解决方法
  2. Center Loss
  3. Centos7 安装 Kubernetes dashboard (安装篇)
  4. Web前端 — Bootstrap(2)
  5. 从动态表单得到的一些思考
  6. 通过一个用户管理实例学习路由react-router-dom知识
  7. linux服务器svn安装配置
  8. Linux rpm 命令参数使用详解[介绍和应用](转)
  9. 国内首个基于liftweb开发的项目上线运营
  10. 使用 ExpandableListView 实现折叠ListView