BSV Planaria框架技术总结一 节点搭建

BSV Planaria框架技术总结一 节点搭建

变形虫Planaria是Unwriter大神基于bitdb在bsv链上开发的一个可编程化的持久层框架,关于变形虫的特点和编程思想,可以参考我之前的文章,强烈建议先看完前文再阅读本文。

Bitcoin SV的开发哲学——变形虫框架

这篇文章从纯技术的角度总结一下使用变形虫框架进行开发所需要的注意的一些点和踩过的一些坑。

Unwriter大神在变形虫的技术支持文档中已经很详细的写了如何去部署和搭建一个节点,以及如何去调用节点提供的接口来实现应用程序的功能。我自己也照着文档去尝试着搭建节点,在搭建的过程中也遇到了一些坑,也遇到过各种各样的异常情形不能成功运行节点,也为了解决这些异常去详细地研读过源代码。现在将一些心得和学习记录总结出来分享。

一般使用Planaria实现一个bsv的链上应用需要以下的一些步骤:

  1. 搭建一个变形虫的实现节点(machine),根据业务逻辑,编写变形虫的planaria(面向区块链的爬虫)和planarium(面向人类的接口),决定变形虫如何去爬行区块链,如何规范化地将链上数据存储为可读数据。这是一个变形虫开发的重点,之后专门学习总结如何编写planaria.js和planarium.js。
  2. 客户端使用比特币的SDK构造特定格式交易来生成应用数据,广播这些交易让数据上链。然后由变形虫去监听这些数据并储存到mongoDB中提供给客户端使用。构造交易也是应用开发的重点,可以借助各种已有的库,比如bitcoinj-sv,比如money button维护的bsv.js,或者使用unwriter大神封装好的datapay.js
  3. 客户端使用刚才搭建好的节点,或者使用第三方已经提供的节点,使用bitquery查询语句调用节点的api,从节点的mongoDB中获取链上数据或者监听区块链事件
  4. 客户端获取到数据或者监听到事件之后,采取相应的动作,此处的开发就和一般的应用没有区别了

节点搭建和部署

如果想定制化的开发变形虫,指定变形虫的特征和行为,就需要自行搭建节点,自行编写planaria和planarium。

因为搭建和维护一个节点目前需要相对较高的成本,如果应用本身不需要定制化的变形虫,可以使用unwriter已经公开的一些endpoint。这些已经实现了和部署了的节点包括genesis,chronos,babel,c协议,以及新出的file-server这些变形虫的变体节点(这些变体节点的功能在之前的文章有说明),可以根据自身的需要去调用这些公开api。如果不清楚具体需要哪一种功能,可以调用genesis,具备全量的且相对原始的数据。

已经公开注册的变形虫节点

目前版本的变形虫需要将bsv全节点和变形虫节点置于同一台服务器(这是代码在配置上的原因,planaria在代码中共用了mongoDB的HOST和bitcoind的HOST),应该会在后续的版本上优化。我开始的时候将bsv全节点和变形虫节点搭建在两个不同的服务器上,结果吃了不少亏,研究了源码才发现这个问题。

另外为了部署方便,变形虫采用的是docker compose进行自动化的容器化部署,首次部署时我采用的操作系统是Ubuntu 18.04,但是在启动planaria容器后一直报异常,深入到docker内部查看npm的异常日志发现了如下的错误信息,大概是在build zeromq的时候出现了问题,照理说docker容器应该是可以跨平台使用的,我目前还没有很好的解决掉这个问题,不知道底层的原因是什么。后面更换了操作系统Ubuntu 16.04,一切正常,我把错误日志贴出来,希望知道原因的朋友多指教。

13592 silly saveTree `-- zeromq@4.6.0
13592 silly saveTree   `-- prebuild-install@2.5.3
13592 silly saveTree     +-- expand-template@1.1.1
13592 silly saveTree     +-- minimist@1.2.0
13592 silly saveTree     `-- pump@2.0.1
13593 warn planaria@0.0.1 No description
13594 warn planaria@0.0.1 No repository fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值