從零開始學(xué)區(qū)塊鏈之初識dapp開發(fā)(區(qū)塊鏈dapp程序開發(fā))
背景
之前對區(qū)塊鏈的認知一直停留在挖礦、炒幣的階段。在國內(nèi)封禁了挖礦和炒幣之后,還以為區(qū)塊鏈的風(fēng)口就過去了。萬萬沒想到,大家的NTF還挺火的。于是有了更深入了解的動力。
什么是DApp
app大家熟悉吧。就是我們常用的各種應(yīng)用。那 d是什么呢? 區(qū)塊鏈的去中心化特性大家應(yīng)該是熟悉的,那去中心化用英語怎么說?decentralization 就是了。按照慣例,取個首字母加上去,就成了DApp,即去中心化應(yīng)用
DApp能干什么
你現(xiàn)在手機上的app能干嘛,從理論上基本都可以。但是對交易速度有要求的就不太合適了,畢竟區(qū)塊鏈的一個特性就是速度慢
狗頭
怎么開發(fā)DApp
作為一個多年的app開發(fā)人員,對DApp的開發(fā)欲望是無法控制的。那么我就聊下DApp的開發(fā)流程。
DApp的整體框架
DApp架構(gòu)圖
整個看來,架構(gòu)有三大部分
1、區(qū)塊鏈以及本身提供的能力
2、三方錢包等提供的能力
3、我們要寫的DApp部分
前兩部分,不需要我們參與開發(fā),我們能做的,最多就是選擇用哪個。 但是第三部分就不一樣了,這個才是我們的主戰(zhàn)場
DApp開發(fā)架構(gòu)
從我們開發(fā)的Dapp來說,也可以分為三層
1、和EVM交互的合約層
2、和合約層、錢包交互的交互庫
3、做業(yè)務(wù)的業(yè)務(wù)層,該層會和用戶以及第二層交互
DApp
開發(fā)DApp的準(zhǔn)備
技術(shù)選型
1、鏈用的是ETH
2、錢包使用了MetaMask,這是一個比較完善的錢包了
3、合約層用的是solidity
4、交互庫 用得比較多的是web3js
5、業(yè)務(wù)層框架的話,就看自己喜歡用什么了,vue、react 都是OK的
環(huán)境搭建
為了做開發(fā),那一定是要有一個好的開發(fā)環(huán)境的。
到DApp的開發(fā)中來說,4、5是前端的知識,這個部分自己去解決,默認大家都懂了;
那我們現(xiàn)在要解決的就是模擬鏈(畢竟真鏈上的操作都是要花錢的)、錢包和合約的問題測試環(huán)境
1、鏈的模擬的話,我們可以用ganache
2、錢包用MetaMask
3、solidity既然是一個編程語言,并且要跑在EVM上,那就有 編寫、編譯、測試和調(diào)試的地方,這里推薦使用remix
總結(jié)
大家先對DApp的開發(fā)有個整體的了解,我在后續(xù)會完善其他的后續(xù)部分
謝謝