bitcore源码阅读-概览

bitcore源码阅读-概览

bitcore是bitpay开发的比特币node.js库,支持用node.js开发区块浏览器,钱包等功能库,该库需要包含一个具有地址索引功能的bitcoin全节点库。

实际上该库只是一个集成库,没有实际的代码,都是依赖其他库实现其功能的,本文会简要说明其构成部分。

使用

bitcore使用较为简单,通过全局安装就可以使用。在使用过程中,在linux系统中采用cnpm安装成功, 在苹果系统上下载苹果版本的全节点失败。不过还是不建议在个人电脑上安装该库(需要大约500G的空间)。
安装好后,就可以启动一个实例,缺省启动insight-ui和insight-api服务,区块浏览器可以通过http://locahost:3001/insight访问。
如果是通过nginx代理,需要配置如下路径:

# insight angularjs服务路径
location /insight {
    proxy_pass http://localhost:3001/insight;
}
# insight-api路径
location /insight-api {
    proxy_pass http://localhost:3001/insight-api;
}
# WebSocket
location /socket.io {
    proxy_pass http://localhost:3001/socket.io;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

依赖库

通过查看bitcore项目路径下的package.json就知道该项目依赖的库了:

  • “bitcore-lib”: “5.0.0-beta.1”,
  • “bitcore-node”: “5.0.0-beta.44”,
  • “insight-api”: “5.0.0-beta.44”,
  • “insight-ui”: “bitpay/insight#v5.0.0-beta.44”

以上四个库分别是:bitcore核心库bitcode-node js的全节点库(提供node.js版本的全节点封装),insight-api库提供insight-ui的API接口,insight-ui是用angularjs实现的前端界面。
bitcore采用服务方式把各组件构建在一起,bitcode-node,insight-api, insight-ui都是一个服务,通过一个Web服务器(Express)构建

需要注意的是,目前(2018.3.15),采用npm安装的节点是4.1.1的版本,采用0.12.0版本的比特币,该版本比bitcoin官方的源代码增加了地址索引功能。而github上的代码是5.0.0版本。

软件架构

看源代码是学习架构的一个很好方法。该项目用javascript语言编写,基于node.js平台,是学习node.js开发和javascript的好地方。
5.0.0在4.1.1版本上做了更细的拆分,总体架构没有太多变化。
bitcore的源码只有bin目录下的两个文件,是用于启动比特币node.js全节点的,他依赖于bitcore-node模块。
bitcore-node模块依赖于bitcore-lib库,还包括bitcored-rpc, socket.io, zmp等库。
bitcore-node采用服务架构实现,4.1.1版本具有四个服务:bitcoind, web, insight-api, insight-ui,web依赖于bitcoind服务,insight-api, insightui依赖于bitcoind和web服务。

服务就是bitcore-node的软件架构,bitcore充分利用了javascript的动态语言的特性,把服务的API方法绑定到自己实例上,这样一个服务调用其他服务是就不需要知道服务的提供者是谁,实现了解耦。一个服务需要实现几个特定的结构,包括构造函数,start函数,getAPIMethods函数, setRoute函数等,具体可以参考服务文档.

Bus是服务件消息系统,订阅一个消息可以无需知道消息有哪个服务模块发布,通过统一的Bus总线就可以实现消息的订阅和发布。Bus文档请看这里.

实现服务的简介文档在这里

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值