Bytom Dapp 開發筆記(一):架構設計

簡介

研究比原鏈已經一年了,用比原鏈做了幾個dapp,而且最近還做了一個基於他們插件錢包的dapp,總結了一些遇到的坑,還有一些技術細節,接下來我會分成三章,從dapp設計架構上,到深入到源碼分析去幫各位介紹一下比原鏈的dapp,還有分析比原官方最近發佈的dapp的架構。

Dapp架構設計

這個是所有工作的基礎,從看完比原鏈源碼使用過比原的錢包後,我們就在思考比原鏈的dapp如何做,應該說是區塊鏈應用應該如何做,我們之前嘗試過用以太坊、比特幣、超級賬本去做dapp。先總結一下區塊鏈dapp的痛點:

1)沒辦法保證上鍊前數據的真實性;

2)Tps很低;

3)接入成本高,需要自己搭建節點;

Dapp架構方案

我現在總結了兩個基於比原鏈的dapp架構方案:(如果有新版或者比較好的解決方案歡迎交流)

Dapp肯定離不開復雜的業務,所以肯定會用到比原鏈的智能合約,以下方案都支持智能合約。

一、搭建區塊鏈node

其實就是自己搭建個節點,然後應用直接調用節點提供的接口,完成了區塊鏈的業務內容,比原鏈的源碼整合了錢包功能,搭建也比較方便,幾句代碼就可以搭建完了,但是這樣的業務視乎不大合理,因爲這種後端整合比原源碼錢包(以下稱爲“pc錢包”)的方式,相當於把所有的賬戶信息都託管給dapp,其實就是一個集中的官方的錢包,所有的賬戶都歸官方管,這樣會有中心化問題,最後會被懷疑用不用這個區塊鏈是否有必要。

比原鏈自己有一套用戶的模塊,用戶可以使用pc錢包、客戶端錢包、手機錢包等,自己的用戶信息可以自己備份,交易信息全部公開全部可以到區塊鏈瀏覽器裏面查到。這個方案只是主要實現了交易上鍊。

ps: 當然其實還是可以變通一下,就是說把PC錢包的所有接口在dapp實現一次,然後結合業務,但是比原的源碼是會不斷更新,還要隨着它的版本更新,然後更新自己的應用,顯然不實際。

說一下里面的坑

1)賬戶BTM問題,這種方案每個dapp賬戶底層都要綁定一個錢包的用戶,可以展現地址用戶自己充值、直接在dapp裏面充值、完成任務派送這些等,但是初始化賬戶擁有BTM需要有時間過程,正常應用這樣的體驗,早就讓用戶關閉了。

2)UTXO問題,比原鏈是基於utxo未花費輸出交易模型,當自己的UTXO參與的交易沒有確定是無法使用的,但是dapp這裏綁定的用戶,不能保證他有足夠多的UTXO,除非自己轉賬的時候讓他拆分,否則會類似單線程的操作,也是比較慢。

3)用戶無法獲取自己的私鑰,在比原鏈PC錢包,是一套私鑰,派生多個賬號這樣,就是說一個錢包就一套私鑰,這個不能給用戶。這樣又違背了區塊鏈的去中心化的問題。

總的來說,這個方案是單純保證了dapp交易上鍊,但是各方面明顯不足。

二、插件錢包(Byone)方案

這個方案是今年比原鏈推出的dapp新型的解決方案,有解決到方案一的痛點,這個也是我比較提倡的方案,現在比原鏈的智能合約功能已經非常強大,如果做複雜的dapp,用這個方式比較好。

簡單來說就基於chrome開發了一個插件錢包,安裝完插件,用戶直接可以創建賬戶,使用賬戶的轉賬功能,裏面有BTM的轉賬功能,賬戶的備份功能....是比較完整的一個錢包,這個錢包最大的作用就是包含了豐富的開發者api,可以支持開發者去實現智能合約交易。


我們重點說一下這個結構的技術原理,如圖

1)Dapp前端,就是前端頁面,插件錢包是基於chrome的,所以這裏代表的就是新的頁面集成了插件錢包(Byone)的api。

2)Byone,就是在chrome應用商店裏面可以搜索到,點擊安裝就行,當前版本是2.0.0,非常好用。

3)Bufferserver服務器,官方提供demo裏面這模塊屬於緩存服務器,其實這個應該改成Dapp後端,實際業務邏輯還有很多需要後端輔助,例如排行榜、非BTM比原資產交易等。(這塊後面重點開一章去說清楚),現在理解稱爲後端就可以。

4)Blockcenter,其實就是官方提供的服務,直接提供接口可以觸發比原鏈的交易功能,這樣解決了上面的方案,避免需要自己搭建node節點,讓dapp開發者更加容易接入。

總結

兩套方案裏面,方案一個人認爲屬於早期的方案,隨着比原鏈的發展,我們可以適當瞭解有助於我們理解比原鏈的架構設計,而且在方案二里面,也一定要用到PC錢包,它可以協助我們開發者提高開發效率100倍,沒有誇張,是100倍。

插件錢包現在還在推廣還有完善當中,不過功能已經非常成熟了,所以Dapp開發者趕緊抓緊去使用來開發屬於自己的dapp吧。

下一章我們重點說一下Dapp的開發流程。以及遇到的一些坑,還有粘貼源碼。

作者:天才的飯桶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章