想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答!!
前言
本课程是比特币钱包开发,后端使用的NodeJS搭建,客户端使用的web前端,VSCode开发工具,Ubuntu16.04系统(固然,Mac、windows系统也能够),node v8.11.3,npm v5.6.0。
1、前端架构
我们的开发重点是在后端实现上,所以为了让你们快速上手,web客户端没有使用其它流行的框架,这里只使用了jQuery框架简化代码,另外还有个jQuery Validate 插件简化了表单验证。javascript
web前端总体技术:css
html + css + javascript + jQuery。html
web前端功能:前端
钱包模块
建立钱包
助记词导入钱包
钱包列表
导出钱包助记词
帐号模块
查询余额
建立子帐号
查询子帐号:地址、路径、私钥
比特币转帐
交易记录java
2、后端架构
这个钱包应用程序与比特币区块链交互,咱们使用了Bitpay开发的bitcore-wallet-client库,使用它便于咱们的开发,封装了比较全面的API给咱们使用。
另外,后端Http框架使用的是强大的express,里面封装了不少功能,由于bitcore-wallet-client库中提供的API会经过异步callback返回数据,因此就不用koa。
在这个项目中使用了第三方库较少,以下:
bitcore-wallet-client:是bitcore-wallet-service的客户端库,使用REST API 与BWS bitcore-wallet-service进行通讯,全部REST端点都包装为简单的异步方法。bitcore-wallet-service库实现了多重签名的比特币HD钱包服务,使用该服务的有Copay、Bitpay钱包。
express:是一个web框架,提供的HTTP服务器工具很是强大,且集成与使用简单,与koa相似。
ejs:是一种JavaScript模版引擎,能够动态的设置变量值到html。须要与模板渲染中间件koa-views配合使用。
总体架构使用了成熟的MVC架构。项目的入口是index.js文件,对项目作了配置,将后端服务绑定到了3000端口并处于简体状态,当前端访问服务时,router.js路由文件根据URL将任务分配到controllers文件夹下的业务文件中。
这里为了让快速上手开发比特币钱包项目,先后端都在一个项目上同时开发,将前端的页面文件放在了static与views文件夹中,固然,同时支持移动端(iOS、安卓)的调用。如果须要先后端分离,可直接将static与views文件夹分离出来便可。
3、项目初始化
新建项目跟文件夹BTCWallet,而后按照以下步骤执行
lixu@ubuntu:~$ cd '/home/lixu/Desktop/demo/BTCWallet/'
lixu@ubuntu:~/Desktop/demo/BTCWallet$ npm initnode
而后不断回车初始化项目。而后后自动生成package.json文件,是项目包的配置文件,下面咱们引入项目中须要用到的库,拷贝下面json到package.json文件的最后一个字段。
,
"dependencies": {web
"bitcore-wallet-client": "^6.7.5", "ejs": "^2.6.1", "express": "^4.16.4"
}express