Bytom Dapp 开发笔记(一):架构设计

简介

研究比原链已经一年了,用比原链作了几个dapp,并且最近还作了一个基于他们插件钱包的dapp,总结了一些遇到的坑,还有一些技术细节,接下来我会分红三章,从dapp设计架构上,到深刻到源码分析去帮各位介绍一下比原链的dapp,还有分析比原官方最近发布的dapp的架构。前端

Dapp架构设计

这个是全部工做的基础,从看完比原链源码使用过比原的钱包后,咱们就在思考比原链的dapp如何作,应该说是区块链应用应该如何作,咱们以前尝试过用以太坊、比特币、超级帐本去作dapp。先总结一下区块链dapp的痛点:node

1)没办法保证上链前数据的真实性;chrome

2)Tps很低;后端

3)接入成本高,须要本身搭建节点;api

Dapp架构方案

我如今总结了两个基于比原链的dapp架构方案:(若是有新版或者比较好的解决方案欢迎交流)浏览器

Dapp确定离不开复杂的业务,因此确定会用到比原链的智能合约,如下方案都支持智能合约。缓存

1、搭建区块链node

其实就是本身搭建个节点,而后应用直接调用节点提供的接口,完成了区块链的业务内容,比原链的源码整合了钱包功能,搭建也比较方便,几句代码就能够搭建完了,可是这样的业务视乎不大合理,由于这种后端整合比原源码钱包(如下称为“pc钱包”)的方式,至关于把全部的帐户信息都托管给dapp,其实就是一个集中的官方的钱包,全部的帐户都归官方管,这样会有中心化问题,最后会被怀疑用不用这个区块链是否有必要。服务器

比原链本身有一套用户的模块,用户可使用pc钱包、客户端钱包、手机钱包等,本身的用户信息能够本身备份,交易信息所有公开所有能够到区块链浏览器里面查到。这个方案只是主要实现了交易上链。架构

ps: 固然其实仍是能够变通一下,就是说把PC钱包的全部接口在dapp实现一次,而后结合业务,可是比原的源码是会不断更新,还要随着它的版本更新,而后更新本身的应用,显然不实际。app

说一下里面的坑

1)帐户BTM问题,这种方案每一个dapp帐户底层都要绑定一个钱包的用户,能够展示地址用户本身充值、直接在dapp里面充值、完成任务派送这些等,可是初始化帐户拥有BTM须要有时间过程,正常应用这样的体验,早就让用户关闭了。

2)UTXO问题,比原链是基于utxo未花费输出交易模型,当本身的UTXO参与的交易没有肯定是没法使用的,可是dapp这里绑定的用户,不能保证他有足够多的UTXO,除非本身转帐的时候让他拆分,不然会相似单线程的操做,也是比较慢。

3)用户没法获取本身的私钥,在比原链PC钱包,是一套私钥,派生多个帐号这样,就是说一个钱包就一套私钥,这个不能给用户。这样又违背了区块链的去中心化的问题。

总的来讲,这个方案是单纯保证了dapp交易上链,可是各方面明显不足。

2、插件钱包(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的开发流程。以及遇到的一些坑,还有粘贴源码。

做者:天才的饭桶

相关文章
相关标签/搜索