什么是DAPP
DAPP 是以太坊發(fā)明的詞匯?Decentralized Application.
目前基于區(qū)塊鏈技術(shù)開(kāi)發(fā)的應(yīng)用程序廣泛的接受使用了這一名稱。
NEL將為開(kāi)發(fā)DAPP提供全面的服務(wù)
什么是NEL
NEL是 “NewEconoLab新經(jīng)濟(jì)實(shí)驗(yàn)室”的簡(jiǎn)稱,成立于2017.11.9日,是一個(gè)年輕的社區(qū)型組織。
致力于
培養(yǎng)社區(qū)開(kāi)發(fā)人才,推動(dòng)項(xiàng)目落地,發(fā)展NEO社區(qū)生態(tài)
主要活動(dòng)區(qū)域是:https://github.com/NewEconoLab/
NEL會(huì)為NEO的DAPP開(kāi)發(fā)提供全面的支持,歡迎學(xué)習(xí)、交流、參與。
DAPP開(kāi)發(fā)的幾種模式
目前DAPP開(kāi)發(fā)有幾種模式
之前做了一次基于全節(jié)2點(diǎn)開(kāi)發(fā)DAPP的培訓(xùn),效果不太好。去的人都太帥了,顏值超越了程序員太多。
所以這里補(bǔ)上說(shuō)明,退一步,更加系統(tǒng)的來(lái)說(shuō)一下DAPP的開(kāi)發(fā)。
很多時(shí)候,很多事情,并不是只差一個(gè)程序員的狀態(tài)。往往,你差好幾個(gè)程序員。
我們將分這幾種模式來(lái)討論一下。下文列出的需要程序員都可以一人身兼N職。
模式一、基于全節(jié)點(diǎn)客戶端開(kāi)發(fā)DAPP
基于全節(jié)點(diǎn)客戶端開(kāi)發(fā)DAPP是工作量最少的模式,你只需要修改NEO GUI 源碼,加上你的DAPP專屬的代碼.
如果你是要測(cè)試一個(gè)DAPP的概念,這種方式比較適合,快。
需要程序員:
1.winform 程序員,會(huì)c#的程序員多半可以用幾個(gè)小時(shí)掌握winform開(kāi)發(fā)。
2.智能合約程序員,基于NEO區(qū)塊鏈開(kāi)發(fā)智能合約,目前用c#開(kāi)發(fā)智能合約是最成熟的。
NEL 已經(jīng)為此提供了項(xiàng)目NEO-GUI NEL版。
源碼?https://github.com/NewEconoLab/neo-gui-nel
這個(gè)版本增加了插件機(jī)制。
1.你不需要去閱讀neo-gui源碼了,關(guān)鍵部分通過(guò)插件接口可以知道。
2.項(xiàng)目更加可控,多個(gè)dapp也不用整合代碼了
3.有例子可以參考
模式二、快速全節(jié)點(diǎn)客戶端開(kāi)發(fā)DAPP
這個(gè)模式是在同步區(qū)塊鏈時(shí)有所選擇,只同步和自己的錢(qián)包有關(guān)的,所以同步速度較快。
但還是要同步。NEO官方有用ts實(shí)現(xiàn)一版,代碼比較復(fù)雜。
官方已放棄此項(xiàng)目,這個(gè)模式 NEL也不會(huì)提供支持。
模式三、輕錢(qián)包前后臺(tái)模式開(kāi)發(fā)DAPP
首先很多介入DAPP開(kāi)發(fā)的愛(ài)好者們基本上都低估了輕錢(qián)包前后臺(tái)模式的開(kāi)發(fā)難度。如果一頭扎進(jìn)來(lái),基本上幾個(gè)月的時(shí)間扔進(jìn)去還是一頭霧水。
藍(lán)鯨淘或者區(qū)塊鏈瀏覽器或者別的什么采用這種模式的項(xiàng)目開(kāi)發(fā),都不是一個(gè)小工程。
他們基本的系統(tǒng)結(jié)構(gòu)是這樣
看了這個(gè)系統(tǒng)結(jié)構(gòu),我相信DAPP的開(kāi)發(fā)者能夠更清醒的認(rèn)識(shí)到開(kāi)發(fā)一個(gè)這種模式的DAPP,并非一件輕松愉快的事情。
雖然這種開(kāi)發(fā)模式體驗(yàn)最好,但是還沒(méi)有形成標(biāo)準(zhǔn),所以后臺(tái)幾層需要自行開(kāi)發(fā)。
有一些瀏覽器開(kāi)放了他們的API出來(lái),但對(duì)整個(gè)系統(tǒng)缺乏說(shuō)明。
采用這種模式你需要如下程序員
????1.能修改或者部署neo-cli節(jié)點(diǎn)的程序員或者網(wǎng)管
????2.能開(kāi)發(fā)爬蟲(chóng)之類(lèi)程序的程序員,會(huì)寫(xiě)數(shù)據(jù)庫(kù)
????3.能開(kāi)發(fā)網(wǎng)頁(yè)API的程序員
????4.前端程序員
????5.智能合約程序員,推薦c#
很不幸 2 3 4 很難列出推薦的語(yǔ)言或者技術(shù),因?yàn)閷?shí)現(xiàn)這類(lèi)功能的方案實(shí)在太多了。
NEL將會(huì)為這種開(kāi)發(fā)模式提供一整套的方案,助力DAPP開(kāi)發(fā)。
很多項(xiàng)目還在開(kāi)發(fā)中,后文會(huì)有介紹
DAPP開(kāi)發(fā)的基礎(chǔ)
理解區(qū)塊鏈
區(qū)塊鏈?zhǔn)欠植际降馁~本。
需要了解區(qū)塊鏈的共識(shí)過(guò)程,每一個(gè)區(qū)塊都是在每一個(gè)節(jié)點(diǎn)上被執(zhí)行。
和傳統(tǒng)的服務(wù)器不一樣,每一個(gè)節(jié)點(diǎn)都要逐一執(zhí)行區(qū)塊鏈上的每一筆交易。
而所有的DAPP,最終也體現(xiàn)為一筆筆的交易。
理解NEO智能合約
調(diào)用NEO智能合約也是一筆交易。
智能合約主要的輸出方式是寫(xiě)入storage。
這些我們以后會(huì)專門(mén)開(kāi)一篇來(lái)說(shuō)
調(diào)試NEO智能合約
如何編寫(xiě)合約見(jiàn)NEO文檔
如何發(fā)布合約見(jiàn)NEO文檔
如何調(diào)用合約NEOGUI 有提供調(diào)用合約的測(cè)試功能,見(jiàn)NEO文檔?
如何調(diào)試合約
????鑒于NEO智能合約的執(zhí)行是在鏈上,而發(fā)布調(diào)用交易和交易被執(zhí)行的過(guò)程是分離的,而且還不是本機(jī)執(zhí)行。所以智能合約的調(diào)試一直缺乏良好的方法
????NEL為此專門(mén)開(kāi)設(shè)了區(qū)塊鏈瀏覽器項(xiàng)目
可以分析已經(jīng)執(zhí)行過(guò)的智能合約交易,對(duì)其執(zhí)行的過(guò)程完全復(fù)盤(pán),并對(duì)應(yīng)到源碼
智能合約瀏覽器還在開(kāi)發(fā)中,目前已經(jīng)可以使用,歡迎開(kāi)發(fā)者入坑。以后我們會(huì)專門(mén)撰文來(lái)說(shuō)這個(gè)話題。
NEL的一些支持工作
Neo-gui nel 版本
源碼 ,https://github.com/NewEconoLab/neo-gui-nel
????????(neo-gui項(xiàng)目)
目標(biāo) 簡(jiǎn)化開(kāi)發(fā)基于neo-gui的dapp
狀態(tài) 已完成,將關(guān)注neo 官方 neo項(xiàng)目 neovm項(xiàng)目 neo gui項(xiàng)目,隨時(shí)升級(jí)同步。
Neo-cli nel版本
????源碼?https://github.com/NewEconoLab/neo-gui-nel
????????????(neo-cli項(xiàng)目,和上面的在同一個(gè)倉(cāng)庫(kù))
????目標(biāo) 在NEOCIL的基礎(chǔ)上提供智能合約調(diào)試的數(shù)據(jù)。
? ? 狀態(tài) 已完成,隨時(shí)升級(jí)同步
NEL 節(jié)點(diǎn)統(tǒng)計(jì)入庫(kù)程序
????目標(biāo) 開(kāi)發(fā)一個(gè)通用化、容易插件化擴(kuò)展的節(jié)點(diǎn)數(shù)據(jù)統(tǒng)計(jì)入庫(kù)程序。
????狀態(tài) 計(jì)劃中
NEL 查詢API
????目標(biāo) 為輕錢(qián)包前后臺(tái)模式的DAPP 或一個(gè)者neo瀏覽器 提供查詢功能支持
????狀態(tài) 計(jì)劃中
NEL 智能合約交易瀏覽器
????源碼?https://github.com/NewEconoLab/SmartContractBrowser
????目標(biāo) 提供已經(jīng)完成的智能合約交易中精確的交易執(zhí)行情況的檢查,作為一個(gè)非常有效的智能合約調(diào)測(cè)程序,補(bǔ)充智能合約開(kāi)發(fā)環(huán)境。
????狀態(tài) 開(kāi)發(fā)中,完成50%,已經(jīng)可以配合Neo-gui nel版本 或者neo-cil nel版本 進(jìn)行本地化調(diào)測(cè)。
? ? 等NEL 查詢API上線,就可以開(kāi)發(fā)online版本。
NEL 瀏覽器插件錢(qián)包
????目標(biāo) 解決各個(gè)瀏覽器DAPP 各自實(shí)現(xiàn)各自錢(qián)包導(dǎo)致的各種問(wèn)題。
用戶的私鑰轉(zhuǎn)來(lái)轉(zhuǎn)去都在瀏覽器緩存中,風(fēng)險(xiǎn)較大的問(wèn)題。插件錢(qián)包加密保存,DApp 找插件要地址就行了
私鑰加密保存在瀏覽器插件中,永遠(yuǎn)不會(huì)給DAPP。需要對(duì)數(shù)據(jù)塊簽名時(shí),DAPP 發(fā)送數(shù)據(jù)給瀏覽器插件進(jìn)行簽名。簽名后返還給DAPP。DAPP 不會(huì)得到私鑰,降低私鑰泄露風(fēng)險(xiǎn)
每次簽名插件會(huì)彈出提示,讓用戶確認(rèn),避免DAPP在用戶不知情的情況下發(fā)送交易。
對(duì)接硬件錢(qián)包只需要插件支持,所有DAPP無(wú)需額外工作即可得到硬件錢(qián)包的保護(hù)。
????狀態(tài) 計(jì)劃中
作者:李劍英
原文鏈接:https://www.cnblogs.com/crazylights/p/8016653.html
評(píng)論