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

什麼是DAPP

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

目前基於區塊鏈技術開發的應用程序普遍的接受使用了這一名稱。前端

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

什麼是NEL

NEL是 「NewEconoLab新經濟實驗室」的簡稱,成立於2017.11.9日,是一個年輕的社區型組織。程序員

致力於github

培養社區開發人才,推進項目落地,發展NEO社區生態數據庫

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

NEL會爲NEO的DAPP開發提供全面的支持,歡迎學習、交流、參與。瀏覽器

DAPP開發的幾種模式

目前DAPP開發有幾種模式緩存

 

以前作了一次基於全節2點開發DAPP的培訓,效果不太好。去的人都太帥了,顏值超越了程序員太多。服務器

因此這裏補上說明,退一步,更加系統的來講一下DAPP的開發。

不少時候,不少事情,並非只差一個程序員的狀態。每每,你差好幾個程序員。

咱們將分這幾種模式來討論一下。下文列出的須要程序員均可以一人身兼N職。

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

基於全節點客戶端開發DAPP是工做量最少的模式,你只須要修改NEO GUI 源碼,加上你的DAPP專屬的代碼.

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

須要程序員:

1.winform 程序員,會c#的程序員多半能夠用幾個小時掌握winform開發。

2.智能合約程序員,基於NEO區塊鏈開發智能合約,目前用c#開發智能合約是最成熟的。

NEL 已經爲此提供了項目NEO-GUI NEL版。

源碼 https://github.com/NewEconoLab/neo-gui-nel

這個版本增長了插件機制。

1.你不須要去閱讀neo-gui源碼了,關鍵部分經過插件接口能夠知道。

2.項目更加可控,多個dapp也不用整合代碼了

3.有例子能夠參考

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

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

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

官方已放棄此項目,這個模式 NEL也不會提供支持。

模式3、輕錢包先後臺模式開發DAPP

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

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

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

 

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

雖然這種開發模式體驗最好,可是尚未造成標準,因此後臺幾層須要自行開發。

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

採用這種模式你須要以下程序員

    1.能修改或者部署neo-cli節點的程序員或者網管

    2.能開發爬蟲之類程序的程序員,會寫數據庫

    3.能開發網頁API的程序員

    4.前端程序員

    5.智能合約程序員,推薦c#

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

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

不少項目還在開發中,後文會有介紹

DAPP開發的基礎

理解區塊鏈

區塊鏈是分佈式的帳本。

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

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

而全部的DAPP,最終也體現爲一筆筆的交易。

理解NEO智能合約

調用NEO智能合約也是一筆交易。

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

這些咱們之後會專門開一篇來講

調試NEO智能合約

  1. 如何編寫合約見NEO文檔
  2. 如何發佈合約見NEO文檔
  3. 如何調用合約NEOGUI 有提供調用合約的測試功能,見NEO文檔 
  4. 如何調試合約

鑑於NEO智能合約的執行是在鏈上,而發佈調用交易和交易被執行的過程是分離的,並且還不是本機執行。因此智能合約的調試一直缺少良好的方法

NEL爲此專門開設了區塊鏈瀏覽器項目

 

能夠分析已經執行過的智能合約交易,對其執行的過程徹底覆盤,並對應到源碼

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

NEL的一些支持工做

Neo-gui nel 版本

源碼 ,https://github.com/NewEconoLab/neo-gui-nel

(neo-gui項目)

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

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

Neo-cli nel版本

源碼 https://github.com/NewEconoLab/neo-gui-nel

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

目標 在NEOCIL的基礎上提供智能合約調試的數據。

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

NEL 節點統計入庫程序

目標 開發一個通用化、容易插件化擴展的節點數據統計入庫程序。

狀態 計劃中

NEL 查詢API

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

狀態 計劃中

NEL 智能合約交易瀏覽器

源碼 https://github.com/NewEconoLab/SmartContractBrowser

目標 提供已經完成的智能合約交易中精確的交易執行狀況的檢查,做爲一個很是有效的智能合約調測程序,補充智能合約開發環境。

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

等NEL 查詢API上線,就能夠開發online版本。

NEL 瀏覽器插件錢包

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

  1. 用戶的私鑰轉來轉去都在瀏覽器緩存中,風險較大的問題。插件錢包加密保存,DApp 找插件要地址就好了
  2. 私鑰加密保存在瀏覽器插件中,永遠不會給DAPP。須要對數據塊簽名時,DAPP 發送數據給瀏覽器插件進行簽名。簽名後返還給DAPP。DAPP 不會獲得私鑰,下降私鑰泄露風險
  3. 每次簽名插件會彈出提示,讓用戶確認,避免DAPP在用戶不知情的狀況下發送交易。
  4. 對接硬件錢包只須要插件支持,全部DAPP無需額外工做便可獲得硬件錢包的保護。

狀態 計劃中

 

做者:李劍英

原文連接:http://www.javashuo.com/article/p-fssbojlq-ec.html

相關文章
相關標籤/搜索