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