乐趣区

比原Bapp红包应用

喜迎国庆期间,比原链在自己的移动端钱包 Bycoin(下载地址) 和 google 插件钱 byone 中推出了红包应用,在国庆期间深受大家好评。

那我们今天就来大概介绍一下比原红包,以及基于比原链开发 dapp 应用的一些流程梳理。

我们知道绝大多数公有区块链项目的 TPS 都只有几十上百。所以像红包这种及时到账的应用在公链上实现还是有一定的技术难度,但是比原链却在自己的侧链上率先推出了红包应用。比原侧链的 TPS 有数十万,整个红包应用程序的并发量有将近 2000。所以在国庆期间数万人同时抢红包都完全没出现任何问题,这足以说明比原链侧链性能优越,适合开发区块链应用。下面我们来看一下整个红包的实现过程。

下图是整个红包的架构图:

由于红包是基于侧链的应用,如果你是主链资产。要通过 federation 进行资产跨链,资产跨链到侧链就可以使用红包应用。整个红包应用有四大模块组成,第一个模块是 Blockcenter,你可以把看成一个与比原侧链交互的中间件。第二个模块就是智能合约,第三个模块是整个红包应用的服务端和存储模块使用的 Mysql 和 Redis,最后一个模块是前端应用,主要包括移动端的 Bycoin 和网页端的 Byone。

对整个红包框架做一个大概的拆分以后,我们就能明白整个红包应用的开发流程就是我们的 Bapp 开发流程。那我们首先从 Bapp 的前端来看,基于 Google 插件钱包的网页应用和 Bycoin 上的应用都属于 Bapp 的前端。这个模块都是一些基本的功能,主要是收红包,发红包,以及红包记录等几个页面。

红包的智能合约模块使用了猜谜合约,这个模块的实现需要参考合约的开发流程,将合约部署好以后的参数配置在后端服务器。为什么使用猜谜合约呢?其实发红包的过程就是发起一个猜谜合约,红包口令就是谜底,用户领取红包的时候,输入的口令其实就是谜底,然后资产就可以自动转移,就是领取红包的这个过程。

下面我们来介绍一下 Server 模块做的事情,整个 Server 是红包的核心业务逻辑和数据处理模块, 数据存储则是存放在 Mysql 和 Redis 中。同是 Server 也和 Blockcenter 相互调用 (Blockcenter 管理了 BUTXO 和一些主侧链的接口封装,可以看成中间件),和比原的侧链进行交互。

通过我们对整个红包应用的模块拆分,我们就能很清楚看到,Bapp 的开发是多个模块组合,技术社区已经将一些标准的模块进行封装,做成中间件方便开发者调用。开发其他类似的 Bapp 应用就可以参考这个流程。

对红包应用的基础介绍就这些,如果你想了解详细的过程,开发流程,以及某个模块的具体实现,可以在开源库中查看源码,和相关接口文档。如果有技术问题可以加微信:pymgdsb1314

退出移动版