想知道更多關於區塊鏈技術知識,請百度【鏈客區塊鏈技術問答社區】 鏈客,有問必答!!
前言
本課程是比特幣錢包開發,後端使用的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