NEO區塊鏈-DAPP開發直通車-第零篇

NEO技術飯發表於2018-12-12

什麼是DAPP

DAPP 是以太坊發明的詞彙 Decentralized Application.

目前基於區塊鏈技術開發的應用程式廣泛的接受使用了這一名稱。

NEL將為開發DAPP提供全面的服務

什麼是NEL

NEL是 “NewEconoLab新經濟實驗室”的簡稱,成立於2017.11.9日,是一個年輕的社群型組織。

致力於

培養社群開發人才,推動專案落地,發展NEO社群生態

主要活動區域是:https://github.com/NewEconoLab/

NEL會為NEO的DAPP開發提供全面的支援,歡迎學習、交流、參與。

DAPP開發的幾種模式

目前DAPP開發有幾種模式

clipboard.png

之前做了一次基於全節2點開發DAPP的培訓,效果不太好。去的人都太帥了,顏值超越了程式設計師太多。

所以這裡補上說明,退一步,更加系統的來說一下DAPP的開發。

很多時候,很多事情,並不是只差一個程式設計師的狀態。往往,你差好幾個程式設計師。

我們將分這幾種模式來討論一下。下文列出的需要程式設計師都可以一人身兼N職。

模式一、基於全節點客戶端開發DAPP

基於全節點客戶端開發DAPP是工作量最少的模式,你只需要修改NEO GUI 原始碼,加上你的DAPP專屬的程式碼.

如果你是要測試一個DAPP的概念,這種方式比較適合,快。

需要程式設計師:

1.winform 程式設計師,會c#的程式設計師多半可以用幾個小時掌握winform開發。

2.智慧合約程式設計師,基於NEO區塊鏈開發智慧合約,目前用c#開發智慧合約是最成熟的。

NEL 已經為此提供了專案NEO-GUI NEL版。

原始碼 https://github.com/NewEconoLa…

這個版本增加了外掛機制。

1.你不需要去閱讀neo-gui原始碼了,關鍵部分通過外掛介面可以知道。

2.專案更加可控,多個dapp也不用整合程式碼了

3.有例子可以參考

模式二、快速全節點客戶端開發DAPP

這個模式是在同步區塊鏈時有所選擇,只同步和自己的錢包有關的,所以同步速度較快。

但還是要同步。NEO官方有用ts實現一版,程式碼比較複雜。

官方已放棄此專案,這個模式 NEL也不會提供支援。

模式三、輕錢包前後臺模式開發DAPP

首先很多介入DAPP開發的愛好者們基本上都低估了輕錢包前後臺模式的開發難度。如果一頭扎進來,基本上幾個月的時間扔進去還是一頭霧水。

藍鯨淘或者區塊鏈瀏覽器或者別的什麼採用這種模式的專案開發,都不是一個小工程。

他們基本的系統結構是這樣

clipboard.png

看了這個系統結構,我相信DAPP的開發者能夠更清醒的認識到開發一個這種模式的DAPP,並非一件輕鬆愉快的事情。

雖然這種開發模式體驗最好,但是還沒有形成標準,所以後臺幾層需要自行開發。

有一些瀏覽器開放了他們的API出來,但對整個系統缺乏說明。

採用這種模式你需要如下程式設計師

1.能修改或者部署neo-cli節點的程式設計師或者網管

2.能開發爬蟲之類程式的程式設計師,會寫資料庫

3.能開發網頁API的程式設計師

4.前端程式設計師

5.智慧合約程式設計師,推薦c#

很不幸 2 3 4 很難列出推薦的語言或者技術,因為實現這類功能的方案實在太多了。

NEL將會為這種開發模式提供一整套的方案,助力DAPP開發。

很多專案還在開發中,後文會有介紹

DAPP開發的基礎

理解區塊鏈

區塊鏈是分散式的賬本。

需要了解區塊鏈的共識過程,每一個區塊都是在每一個節點上被執行。

和傳統的伺服器不一樣,每一個節點都要逐一執行區塊鏈上的每一筆交易。

而所有的DAPP,最終也體現為一筆筆的交易。

理解NEO智慧合約

呼叫NEO智慧合約也是一筆交易。

智慧合約主要的輸出方式是寫入storage。

這些我們以後會專門開一篇來說

除錯NEO智慧合約

如何編寫合約見NEO文件
如何釋出合約見NEO文件
如何呼叫合約NEOGUI 有提供呼叫合約的測試功能,見NEO文件
如何除錯合約
鑑於NEO智慧合約的執行是在鏈上,而釋出呼叫交易和交易被執行的過程是分離的,而且還不是本機執行。所以智慧合約的除錯一直缺乏良好的方法

NEL為此專門開設了區塊鏈瀏覽器專案

clipboard.png

可以分析已經執行過的智慧合約交易,對其執行的過程完全覆盤,並對應到原始碼

智慧合約瀏覽器還在開發中,目前已經可以使用,歡迎開發者入坑。以後我們會專門撰文來說這個話題。

NEL的一些支援工作

Neo-gui nel 版本

原始碼 ,https://github.com/NewEconoLa…

(neo-gui專案)

目標 簡化開發基於neo-gui的dapp

狀態 已完成,將關注neo 官方 neo專案 neovm專案 neo gui專案,隨時升級同步。

Neo-cli nel版本

原始碼 https://github.com/NewEconoLa…

(neo-cli專案,和上面的在同一個倉庫)

目標 在NEOCIL的基礎上提供智慧合約除錯的資料。

狀態 已完成,隨時升級同步

NEL 節點統計入庫程式

目標 開發一個通用化、容易外掛化擴充套件的節點資料統計入庫程式。

狀態 計劃中

NEL 查詢API

目標 為輕錢包前後臺模式的DAPP 或一個者neo瀏覽器 提供查詢功能支援

狀態 計劃中

NEL 智慧合約交易瀏覽器

原始碼 https://github.com/NewEconoLa…

目標 提供已經完成的智慧合約交易中精確的交易執行情況的檢查,作為一個非常有效的智慧合約調測程式,補充智慧合約開發環境。

狀態 開發中,完成50%,已經可以配合Neo-gui nel版本 或者neo-cil nel版本 進行本地化調測。

等NEL 查詢API上線,就可以開發online版本。

NEL 瀏覽器外掛錢包

目標 解決各個瀏覽器DAPP 各自實現各自錢包導致的各種問題。

使用者的私鑰轉來轉去都在瀏覽器快取中,風險較大的問題。外掛錢包加密儲存,DApp 找外掛要地址就行了

私鑰加密儲存在瀏覽器外掛中,永遠不會給DAPP。需要對資料塊簽名時,DAPP 傳送資料給瀏覽器外掛進行簽名。簽名後返還給DAPP。DAPP 不會得到私鑰,降低私鑰洩露風險

每次簽名外掛會彈出提示,讓使用者確認,避免DAPP在使用者不知情的情況下傳送交易。

對接硬體錢包只需要外掛支援,所有DAPP無需額外工作即可得到硬體錢包的保護。

狀態 計劃中

作者:李劍英

原文連結:https://www.cnblogs.com/crazy…

相關文章