DAPP 開發直通車-如何基於NEL 輕錢包來開發DAPP

來源:互聯網
上載者:User

標籤:定義   ddr   解釋   esc   ocs   log   個人   沒有   區分   

之前做了 DAPP 開發直通車,通講了一下開發一個DAPP的過程。

?

但是涉及多工種,多步驟。入手還是非常困難的。

?

經過不懈的努力,做了很多鋪墊工作之後,我終於可以告訴你:

?

開發DAPP for NEO,從未如此簡單

綠穀鎮樓。

?

?

首先請記住NEL的GITHUB首頁,這裡擁有NEO相關的一大堆開發成果,牛逼我就不吹了,你自己看一看這些項目,你至少可以感受到,我們真的是馬不停蹄。

唯一的問題是文檔化程度很低,我們歡迎有興趣的同志一起來提升建設NEL這個圍繞NEO的中國開發人員社區。

?

那麼輕錢包在哪裡呢?

找到這個項目,他還有一個兄弟項目

?

他們分別使用 c# 和 typescript 開發 的輕錢包SDK,提供你開發輕錢包的所需工具。

在仔細觀察過藍鯨濤代碼、neonjs等代碼後,他們均無法完成我們的目標。

開發一個開發人員使用的輕錢包,於是我們下定決心,繞了很大的彎路,重建立立了這些代碼。


目前c#的sdk完成度100%,目前在建設例子階段。

Ts的sdk完成度50%,但僅移植c#代碼,風險為零,大家只需要等待。

這是SDK 對不對,那麼輕錢包呢?

?

輕錢包就是SDK的例子,包含在SDK代碼中

雖然是例子,我們在功能性上面已經能讓大部分NEO錢包汗顏,而且還有我們馬不停蹄的開發熱情,會不斷提升開發NEO輕錢包的平均水準。

我想用不了多久,開發NEO輕錢包就會變成一件很困難的事情,因為你開發了半天,還要承擔著巨大的壓力。別人會說:你看那個錢包還不如一個例子。

?

C#的例子錢包長這樣

Ts的例子錢包長這樣

?

錢包和DAPP有什麼關係

我們的錢包定位是例子,也是開發人員工具,他只有一個功能,發交易,但做到啥交易都能發。

Nep5 交易,沒問題,ico募資,沒問題。

你會說,NEOGUI難道不是啥都能發嗎?使用者咋用?

確實如此,功能強,不代表好用。

DAPP就是為瞭解決這個不好用的問題產生的。

那DAPP的最小單位不就正是一個個交易嘛?

於是,我們的錢包有一個DAPP模組,你不需要寫代碼,只需要配置一下,這個DAPP 是由哪幾筆交易構成的,協助使用者填個參數,按個按鈕。

交易就發出去了,不就完成了讓使用者簡單使用的功能了嘛。

?

看DAPP功能在這裡

錢包的使用

之前說過錢包的使用,不再贅述。

http://www.cnblogs.com/crazylights/p/8338117.html

?

做實驗之前先load 一個key 進來。這個錢包保護不是很徹底,我知道出了問題是無法阻止你們發出WTF詛咒的,詛咒完,來github提個issue,甚好。或者直接發個pr幫我們修bug,更好。

這是個實驗錢包,所以只支援匯入一個key。你高興的話研究一下這個錢包的代碼,做點改裝。

?

注意這個DAPP地區,我劃分出了紅黃藍綠四個地區

黃區

黃區是選擇一個DAPP,對我們這個系統來說,一個DAPP就是一個json,這是跨平台的。

到時候我們的網頁版使用同樣的json,啥也不改,就跨平台了。

自動載入dapp路徑下所有的json

綠區

綠區是選擇一個dapp之後出現的,我們把dapp 分解為一個個的操作

比如Who am I 這個 DAPP 就三個操作,一個是查一個人的名字,輸入地址。

一個是設定名字,輸入地址和名字,設定名字我區分為 test 交易,和發送交易

綠區裡就是操作和輸入

藍區

藍區就是顯示你輸入的值而已

紅區

紅區是用來執行操作和顯示結果的

Check這個DAPP功能的操作就是從儲存區查詢,結果就是顯示一個string ,給這個地址取得名字是啥。

?

不寫代碼實現一個DAPP

因為我們是用json配置DAPP,那是不用寫代碼的。

當然,如果我們配置的功能無法滿足你的需求,你就需要寫代碼了。

讓我們開始看起來

這是WHO AM I dapp的全貌

他有三個功能,在紅色區,我摺疊了兩個,一個一個看

title部分

json裡面的title就指定這個DAPP的名字

Consts部分

Consts用來配置一些常量,後面可以引用,這樣能減少一些直接填值的錯誤

這裡consts.base 其實是whoami DAPP的 合約ScriptHash

主要是scriptcall 和 scriptparam 需要引用

Funcs部分一

Funcs部分,看起來很複雜,但是他一共就五個部分

Name desc inputs call results

Name 和 desc 對應圖上紅色,不用解釋。

Inputs對應圖上黃色

我們這裡指定需要輸入一個地址,上面就自動產生了這個UI

Funcs部分二

這裡看起來比較複雜的是Call部分,

Type表示這個dapp操作只需要去查一下儲存區。

查儲存區不需要調用合約

需要兩個參數,指令碼hash去const裡面拿,地址從輸入拿。這個(address)有這個,我們就會把這個string處理成address的scripthash。

還有其他的Call type,主要有invokescript,測試執行合約,和sendrawtransaction,發布交易。具體你就可以看代碼啦。

Funcs部分三

Results 配置輸出,對於getStorage 只能有一個輸出。做過智能合約開發你就知道,getstorage取到的是bytearray,我們這裡可以指定類型,會幫你翻譯好。

?

一個DAPP功能完成了

結果就是通過這樣的配置,這裡就得到了一個可以方便的查詢每個人的名字的小工具,這就是DAPP的意義了。

?

?

其他部分

瞭解了我們是如何簡單的開發DAPP的,其他功能,我就簡單說說了

?

SetName(test) 的 calltype 是invokescript,此時還是免費操作,適合做一些查詢NEP5餘額啦,查詢NNS地址啦之類的不需要對區塊鏈產生影響的功能

?

Setname(sendraw) 的calltype 是sendrawtransaction,這是要花gas的(NEO10個gas內的交易免費,基本還是免費的)

這裡的按鈕變成了兩個,第一個會把交易發出去。

第二個會讓你在交易面板看看你剛才產生的交易是啥。

?

我們這個用戶端,只有一個功能:發交易。

我們把DAPP定義為一種方便的協助使用者發起各種各樣交易的協助工具輔助。

根據我們提供的這些功能,你是不是覺得,開發DAPP,也不那麼複雜了呢。

?

One more thing

還有一個好訊息告訴大家,NNS (neo網域名稱服務 (DNS))TEST版就快放出了。NNS網域名稱服務 (DNS)還會發行代幣。

其實我們智能合約早就寫了,就是沒有一個合適的地方放DAPP,總不能讓大家都拿著NEOGUI去拼合約吧。萬事俱備,才敢告訴你。

現在這個未完成的NNS.TEST DAPP其實已經可以註冊網域名稱啦。

你要是高興的話,根據我們 nel github docs項目裡的NNS白皮書已經可以自己完成這套功能啦。

DAPP 開發直通車-如何基於NEL 輕錢包來開發DAPP

相關關鍵詞:
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.