Bytom Dapp 開發(fā)筆記(一):架構(gòu)設(shè)計(jì)

簡(jiǎn)介

研究比原鏈已經(jīng)一年了闻鉴,用比原鏈做了幾個(gè)dapp茵乱,而且最近還做了一個(gè)基于他們插件錢包的dapp,總結(jié)了一些遇到的坑孟岛,還有一些技術(shù)細(xì)節(jié)瓶竭,接下來我會(huì)分成三章,從dapp設(shè)計(jì)架構(gòu)上渠羞,到深入到源碼分析去幫各位介紹一下比原鏈的dapp斤贰,還有分析比原官方最近發(fā)布的dapp的架構(gòu)。

Dapp架構(gòu)設(shè)計(jì)

這個(gè)是所有工作的基礎(chǔ)次询,從看完比原鏈源碼使用過比原的錢包后荧恍,我們就在思考比原鏈的dapp如何做,應(yīng)該說是區(qū)塊鏈應(yīng)用應(yīng)該如何做屯吊,我們之前嘗試過用以太坊送巡、比特幣摹菠、超級(jí)賬本去做dapp。先總結(jié)一下區(qū)塊鏈dapp的痛點(diǎn):

1)沒辦法保證上鏈前數(shù)據(jù)的真實(shí)性授艰;

2)Tps很低辨嗽;

3)接入成本高,需要自己搭建節(jié)點(diǎn)淮腾;

Dapp架構(gòu)方案

我現(xiàn)在總結(jié)了兩個(gè)基于比原鏈的dapp架構(gòu)方案:(如果有新版或者比較好的解決方案歡迎交流)

Dapp肯定離不開復(fù)雜的業(yè)務(wù)糟需,所以肯定會(huì)用到比原鏈的智能合約,以下方案都支持智能合約谷朝。

一洲押、搭建區(qū)塊鏈node

其實(shí)就是自己搭建個(gè)節(jié)點(diǎn),然后應(yīng)用直接調(diào)用節(jié)點(diǎn)提供的接口圆凰,完成了區(qū)塊鏈的業(yè)務(wù)內(nèi)容杈帐,比原鏈的源碼整合了錢包功能,搭建也比較方便专钉,幾句代碼就可以搭建完了挑童,但是這樣的業(yè)務(wù)視乎不大合理,因?yàn)檫@種后端整合比原源碼錢包(以下稱為“pc錢包”)的方式跃须,相當(dāng)于把所有的賬戶信息都托管給dapp站叼,其實(shí)就是一個(gè)集中的官方的錢包,所有的賬戶都?xì)w官方管菇民,這樣會(huì)有中心化問題尽楔,最后會(huì)被懷疑用不用這個(gè)區(qū)塊鏈?zhǔn)欠裼斜匾?/p>

比原鏈自己有一套用戶的模塊,用戶可以使用pc錢包第练、客戶端錢包阔馋、手機(jī)錢包等,自己的用戶信息可以自己備份娇掏,交易信息全部公開全部可以到區(qū)塊鏈瀏覽器里面查到呕寝。這個(gè)方案只是主要實(shí)現(xiàn)了交易上鏈。

ps: 當(dāng)然其實(shí)還是可以變通一下婴梧,就是說把PC錢包的所有接口在dapp實(shí)現(xiàn)一次壁涎,然后結(jié)合業(yè)務(wù),但是比原的源碼是會(huì)不斷更新志秃,還要隨著它的版本更新,然后更新自己的應(yīng)用嚼酝,顯然不實(shí)際浮还。

說一下里面的坑

1)賬戶BTM問題,這種方案每個(gè)dapp賬戶底層都要綁定一個(gè)錢包的用戶闽巩,可以展現(xiàn)地址用戶自己充值钧舌、直接在dapp里面充值担汤、完成任務(wù)派送這些等,但是初始化賬戶擁有BTM需要有時(shí)間過程洼冻,正常應(yīng)用這樣的體驗(yàn)崭歧,早就讓用戶關(guān)閉了。

2)UTXO問題撞牢,比原鏈?zhǔn)腔趗txo未花費(fèi)輸出交易模型率碾,當(dāng)自己的UTXO參與的交易沒有確定是無法使用的,但是dapp這里綁定的用戶屋彪,不能保證他有足夠多的UTXO所宰,除非自己轉(zhuǎn)賬的時(shí)候讓他拆分,否則會(huì)類似單線程的操作畜挥,也是比較慢仔粥。

3)用戶無法獲取自己的私鑰,在比原鏈PC錢包蟹但,是一套私鑰躯泰,派生多個(gè)賬號(hào)這樣,就是說一個(gè)錢包就一套私鑰华糖,這個(gè)不能給用戶麦向。這樣又違背了區(qū)塊鏈的去中心化的問題。

總的來說缅阳,這個(gè)方案是單純保證了dapp交易上鏈磕蛇,但是各方面明顯不足。

二十办、插件錢包(Byone)方案

這個(gè)方案是今年比原鏈推出的dapp新型的解決方案秀撇,有解決到方案一的痛點(diǎn),這個(gè)也是我比較提倡的方案向族,現(xiàn)在比原鏈的智能合約功能已經(jīng)非常強(qiáng)大呵燕,如果做復(fù)雜的dapp,用這個(gè)方式比較好件相。

簡(jiǎn)單來說就基于chrome開發(fā)了一個(gè)插件錢包再扭,安裝完插件,用戶直接可以創(chuàng)建賬戶夜矗,使用賬戶的轉(zhuǎn)賬功能泛范,里面有BTM的轉(zhuǎn)賬功能,賬戶的備份功能....是比較完整的一個(gè)錢包紊撕,這個(gè)錢包最大的作用就是包含了豐富的開發(fā)者api罢荡,可以支持開發(fā)者去實(shí)現(xiàn)智能合約交易。


我們重點(diǎn)說一下這個(gè)結(jié)構(gòu)的技術(shù)原理,如圖

1)Dapp前端区赵,就是前端頁面惭缰,插件錢包是基于chrome的,所以這里代表的就是新的頁面集成了插件錢包(Byone)的api笼才。

2)Byone漱受,就是在chrome應(yīng)用商店里面可以搜索到,點(diǎn)擊安裝就行骡送,當(dāng)前版本是2.0.0昂羡,非常好用。

3)Bufferserver服務(wù)器各谚,官方提供demo里面這模塊屬于緩存服務(wù)器紧憾,其實(shí)這個(gè)應(yīng)該改成Dapp后端,實(shí)際業(yè)務(wù)邏輯還有很多需要后端輔助昌渤,例如排行榜赴穗、非BTM比原資產(chǎn)交易等。(這塊后面重點(diǎn)開一章去說清楚)膀息,現(xiàn)在理解稱為后端就可以般眉。

4)Blockcenter,其實(shí)就是官方提供的服務(wù)潜支,直接提供接口可以觸發(fā)比原鏈的交易功能甸赃,這樣解決了上面的方案,避免需要自己搭建node節(jié)點(diǎn)冗酿,讓dapp開發(fā)者更加容易接入埠对。

總結(jié)

兩套方案里面,方案一個(gè)人認(rèn)為屬于早期的方案裁替,隨著比原鏈的發(fā)展项玛,我們可以適當(dāng)了解有助于我們理解比原鏈的架構(gòu)設(shè)計(jì),而且在方案二里面弱判,也一定要用到PC錢包襟沮,它可以協(xié)助我們開發(fā)者提高開發(fā)效率100倍,沒有夸張昌腰,是100倍开伏。

插件錢包現(xiàn)在還在推廣還有完善當(dāng)中,不過功能已經(jīng)非常成熟了遭商,所以Dapp開發(fā)者趕緊抓緊去使用來開發(fā)屬于自己的dapp吧固灵。

下一章我們重點(diǎn)說一下Dapp的開發(fā)流程。以及遇到的一些坑劫流,還有粘貼源碼巫玻。

作者:天才的飯桶

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末暑认,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子大审,更是在濱河造成了極大的恐慌,老刑警劉巖座哩,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徒扶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡根穷,警方通過查閱死者的電腦和手機(jī)姜骡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屿良,“玉大人圈澈,你說我怎么就攤上這事〕揪澹” “怎么了康栈?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)喷橙。 經(jīng)常有香客問我啥么,道長(zhǎng),這世上最難降的妖魔是什么贰逾? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任悬荣,我火速辦了婚禮,結(jié)果婚禮上疙剑,老公的妹妹穿的比我還像新娘氯迂。我一直安慰自己,他們只是感情好言缤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布嚼蚀。 她就那樣靜靜地躺著,像睡著了一般轧简。 火紅的嫁衣襯著肌膚如雪驰坊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天哮独,我揣著相機(jī)與錄音拳芙,去河邊找鬼。 笑死皮璧,一個(gè)胖子當(dāng)著我的面吹牛舟扎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播悴务,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼睹限,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼譬猫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起羡疗,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤染服,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后叨恨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柳刮,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年痒钝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秉颗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡送矩,死狀恐怖蚕甥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情栋荸,我是刑警寧澤菇怀,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蒸其,受9級(jí)特大地震影響敏释,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摸袁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一钥顽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧靠汁,春花似錦蜂大、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至踢星,卻和暖如春澳叉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背沐悦。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工成洗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人藏否。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓瓶殃,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親副签。 傳聞我的和親對(duì)象是個(gè)殘疾皇子遥椿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 從目前已經(jīng)發(fā)布的DAPP來看基矮,DAPP架構(gòu)大致可以分成3種類型:插件錢包模式、全節(jié)點(diǎn)錢包模式和兼容模式冠场。 插件錢包...
    比原鏈Bytom閱讀 813評(píng)論 0 0
  • 簡(jiǎn)介 這章的內(nèi)容詳細(xì)分析一下涉及智能合約Dapp的整個(gè)開發(fā)流程家浇,注意是涉及只能合約,如果你只要一些基本轉(zhuǎn)BTM功能...
    比原鏈Bytom閱讀 462評(píng)論 1 0
  • 以太坊白皮書地址:https://github.com/ethereum/wiki/wiki/White-Pape...
    rectinajh閱讀 17,828評(píng)論 0 46
  • 兩個(gè)月,眨眼就過去了青团。此刻的我正坐在回國(guó)的飛機(jī)上,又開始了15個(gè)小時(shí)的飛行咖楣。 這是我第五次逗留加國(guó)督笆,沒...
    何必曾相逢閱讀 841評(píng)論 8 15
  • 敢問一句娃肿,從事養(yǎng)老行業(yè)的你,想過退縮么珠十? 說實(shí)話料扰,我想過,這個(gè)想法出現(xiàn)在經(jīng)歷了太多的傷心之后 我們這個(gè)工作焙蹭,說的好...
    愛吃蝦滑的生煎包閱讀 288評(píng)論 0 2