区块链分布式应用DAPP开发与学习初探
Posted zsheep
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链分布式应用DAPP开发与学习初探相关的知识,希望对你有一定的参考价值。
本人目前在上海区块链工程技术研究中心做一些区块链方向研究,研究兴趣包括区块链数据隐私保护,智能合约安全漏洞检测等,欢迎csdn的同行专家不吝赐教,交流讨论,分享研究经验与成果。
首先做一个简单的说明:已经好几个月没有更新专栏了,今天看到《区块链技术第3次学习总结--区块链共识机制综述》有一千多的阅读量,确实有一种小确幸的感觉。在这里我简单说一下为什么间隔这么长时间没有发新的博文。
1.csdn的审核机制,肯定是人工智能加人工的方式,在讨论区块链这个新兴前沿技术,有很多的名词术语都成了“敏感词”,会被屏蔽导致审核不通过,但是系统又不会具体报告哪些词语是敏感词,所以导致博文总是无法通过审核,让我感觉特别麻烦,所以写文章的积极性打了折扣。
2.现在写技术博文当然是完全免费公益的,写文章分享研究与学习心得,也不是为了什么回报。当然如果能把博文整理成书,是比较好的一种结果。其实现在写书的收益也不大,所以有的时候,写技术博客和写书,都是一种情怀,一种对自己的研究材料做整理和总结,希望获得读者的认可。
3.现在是短视频时代,一些技术博主也会选择在B站,tiktok等app发布自己的短视频来增加粉丝和流量,对于文字的阅读,特别是大段文字的阅读就相应的减少了,所以现在有耐心写博文和有耐心看博文的人都减少了,这也是文章更新频次低的一个原因。就像纸媒体的衰落一样,网文博客也受到短视频这种新媒体的冲击,希望csdn的所有师友能够支持我鼓励我写博文,写书;csdn鼓励原创,原创不易,请各位专家和技术大咖给予我指正。
对于区块链的开发,个人认为大量工作岗位会出现在dapp开发这个领域。下面我简单谈谈最近在学习的以太坊dapp开发。
DApp是Decentralized Application的缩写,即去中心化应用,也有人称为分布式应用。它被认为开启了区块链3.0时代。DApp就是在底层区块链平台衍生的各种分布式应用,是区块链世界中的服务提供形式。 DApp大小写是不敏感的,你很可能在其它的文献资料里看到DAPP或者dapp这样的写法,其实都一样,没有任何区别。
学习DApp开发之前,必须具有区块链,智能合约和编程语言作为基础。简单一点讲,dapp=智能合约+UI, 也就是人机交互,前台是UI,后台是智能合约。不同的区块链平台可以选用不同的语言来编写智能合约,前台UI可以使用html5+CSS3+JS的技术路线,也就是一些web开发技术。如果你不是全栈工程师,你就无法独立开发一个dapp.
智能合约是区块链2.0和区块链1.0的显著区别。
有关智能合约的基本概念,请自行百度或知乎。
学习dapp开发,推荐从以太坊(Home | ethereum.org)开始学习,以太坊上智能合约语言首选是Solidity.
有关Solidity的中文参考资料,推荐这个网站
Solidity 最新(0.8.0)中文文档 — Solidity中文文档 — 登链社区
Solidity开发环境,推荐remix,无需安装即可使用
对于Remix如何使用,有问题可以联系我,虽谈不上精通,但自认为有能力带大家Remix Solidity入个门,资深一点的软件工程师一天能搞定Remix简单上手。
有了Solidity的基础以后,可以开始学习智能合约开发框架,这里推荐Truffle和Hardhat两个框架。我目前使用的是Truffle.
Truffle的主网站是Sweet Tools for Smart Contracts | Truffle Suite
Truffle中文参考资料Truffle 翻译说明及概述 | Truffle 中文文档 - DApp 开发框架 | 深入浅出区块链
我目前的学习主要看的是这份中文文档,网上一些dapp开发的书,不是最新的不推荐购买。最近搜了一下当当网,发现好多EOS dapp开发的书上市了,号称是区块链3.0DApp程序设计。个人观点是,学习了以太坊智能合约和dapp开发再去学其它区块链平台的dapp开发,经验肯定是有用的,也可以直接学习EOS DApp开发,这里存在潜在的技术风险是不知道学以太坊dapp还是EOS dapp哪个收益更大,我们在这里就不讨论了。
在Windows平台和Linux平台都可以做DApp开发。
我使用的平台是Windows10+VMWare Workstation 15 Player虚拟机,虚拟机里安装Ubuntu64位操作系统。
Windows环境下是需要安装Ganache.
Linux环境下应该是无需安装,下载下来的文件是可执行文件,如下图。
注意:
1.使用truffle unbox无法执行可能的错误是无法连接国外的服务器,比如github服务器连不上,这时候首先要保证你的机器能够连接上提供文件的境外服务器。
2. 如果unbox成功了,下载到本地的文件也可能无法执行,比如你的index.html里如果引用了google服务器上的jquery.min.js文件,你的电脑如果连不上Google服务器,那么这个Web UI页面也是无法打开的。
我试着运行宠物商店dappTruffle & Web3.js 教程:教你开发、部署第一个去中心化应用(Dapp) - 宠物商店 | 登链社区 | 深入浅出区块链技术实例后的一些界面截图
我这里的http端口不是3001,而是3000.教程上是3000 .
系统创建的十个账户中的第3个账户也导入MetaMask钱包了,可以进行领养宠物了。
点击第一排第4只小狗的Adopt按钮后,确认领养成功了
学习以太坊DApp开发的师友们不妨也以宠物商店作为自己的第一个dapp学习实例。
千里之行始于足下,技术探索之路没有止境,新技术值得大家关注和研究,愿与诸君共勉。
以上是关于区块链分布式应用DAPP开发与学习初探的主要内容,如果未能解决你的问题,请参考以下文章
以太坊 DApp 开发入门实战! 用Node.js和truffle框架搭建——区块链投票系统!
Nodejs + React 实战开发区块链慕课Dapp 专门为前端工程师设计