百由工场
区块链客户端的应用开发思路
鲁义明 2019.11

  思考一下机构主导的区块链应用的客户端(C端)的应用开发思路(不是区块链本身的开发思路)。

  C端可能是自己本地有全部账本数据,或者自己连接的某个代理节点(中继服务器)有全部账本数据。

  于是C端可以在自己本地写代码,调用区块链账库的API接口,或者把代码上传到代理节点(中继服务器,某种云服务器),在那个服务器里面调用区块链账库的API。

  这些API应该非常简单。

  1. C端注册接口,应该不会有。每一个C端需要通过另外的可确认身份的注册途径成为合法用户(类似于银行柜台开户),之后机构端会在账本总服务器上加入这个C端用户。

  2. C端提交(某种)交易的接口。也就是向机构总账服务器提交一条交易记账记录。总账服务器记录后做成区块(可能还有后台的交易审核),定期把新增账本区块同步到所有的C端或代理借点。

  3. C端查询所有自己提交的交易记录的接口。

  4. C端查询所有别人向自己发起交易的记录的接口。

  所有这些交易应该每一个都有交易流水ID,或者可以用交易双方的身份ID加时间,组成一个交易ID,用来唯一标识一笔交易。

  之后C端可以在自己的个人(或自己公司)的应用程序(比如财务系统、订单系统)中,记录这个交易ID,并可通过这个交易ID在区块链API接口中查到这笔交易的更详细的信息。

  而个人自己的应用,或者自己公司的应用,都有自己的本地数据库,也有自己的本地系统,只不过有一个区块链的API可以调用。

  或者,其实,对C端应用系统来说,这个区块链账库的API,每次调用,到底是读取的本地区块账本的数据,还是直接远程去读取了总账服务器的账本数据,其实是不知道的,也不用关心的。或者说,即使想关心,也没用的,因为自己没有总账本的记账权,自己只能信任总账本。再或者说,自己只能信任总账本服务器是按照约定(或规定)的那样,一个区块账本、一个区块账本的在记录,而不是总账服务器实际是运行的一个某种SQL数据库服务器,只不过每隔一个定时,dump出来一堆数据,弄成区块的样子,发给各C端,或代理节点。

  再多设想一下总账服务器。总账服务器,每接收到一条来自C端或代理中介的交易记录后,在没打包成下一个区块之前,应该先把这个交易记录在本地安全的保存下来。那怎么又简易又便宜的保存呢?嗯,存在一个SQL数据库里面。

  所以总账服务器,所有的交易,无论是日志性质的保存,还是交易审核,以及风控等,应该都是首先存在SQL数据库里,只不过,每隔一个定时,打包成区块,同步给其他所有人。

  我们上交所的股票交易系统,所有的股民的股票交易,应该都是把通过营业部这个代理节点,把交易数据打包成FOXBASE数据库格式(或者起码以前是这样的,现在改没改不知道了),提交给交易所的,交易所自己有自己的数据库系统,然后撮合完交易,然后再把交易增量数据,打包成FOXBASE数据库,同步给全国几千家营业部(现在可能是先同步给证券公司总部,然后由总部同步给各营业部?)。

  这个大概也有点像区块链,只不过各营业部没有能力,也不需要,自己存储完整的所有交易请求以及撮合成功的交易,成本太高了。

关于我们  |  联系方式  |  粤ICP备19086705号