主页 > imtoken最新安卓版本下载 > 比特币钱包开发:钱包项目的整体架构设计

比特币钱包开发:钱包项目的整体架构设计

imtoken最新安卓版本下载 2023-07-25 05:08:39

目标 搭建一个NodeJS后端框架 搭建一个前端web框架 前端交互系统也可用),node v8.11.3,npm v5.6.0。 1.前端架构我们的开发重点是后端实现,所以为了让大家快速上手,web客户端没有使用其他流行的框架。 这里我们只使用jQuery框架来简化代码,还有jQuery Validate插件来简化表单验证。

整体web前端技术:

html + css + javascript + jQuery。

Web前端功能:

钱包模块创建钱包助记词导入钱包钱包列表导出钱包助记词账户模块查询余额创建子账户查询子账户:地址、路径、私钥比特币转账交易记录

未命名文件

2. 后端架构 该钱包应用程序与比特币区块链交互。 我们使用的是Bitpay开发的bitcore-wallet-client库,方便我们的开发,封装了比较完善的API供我们使用。

另外,后端Http框架使用了强大的express,封装了很多功能,因为bitcore-wallet-client库中提供的API会通过异步回调的方式返回数据比特币wallet文件分析,所以没有使用koa。

本项目使用的第三方库较少,如下:

bitcore-wallet-client:是bitcore-wallet-service的客户端库,使用REST API与BWS bitcore-wallet-service通信,所有REST端点都封装为简单的异步方法。 bitcore-wallet-service 库实现了 Copay 和 Bitpay 钱包使用的多重签名 Bitcoin HD 钱包服务。 express:是一个web框架,提供了非常强大的HTTP服务器工具,并且易于集成和使用,类似于koa。 ejs:是一个JavaScript模板引擎,可以动态给html设置变量值 。 需要配合模板渲染中间件koa-views使用。 整体架构采用成熟的MVC架构。 项目的入口是index.js文件,配置项目,后端服务绑定3000端口,处于Simplified状态,前端访问服务时,router.js路由文件根据controllers文件夹分配任务到商业文档中的 URL。

这里为了快速开发比特币钱包项目,前后端在同一个项目上同时开发,前端页面文件放在static和views文件夹下。 当然同时支持移动端(iOS、Android)。 如果需要前后端分离,可以直接将static和views文件夹分离。 3. 项目初始化新建一个项目和文件夹BTCWallet,然后按照下面的步骤执行

新建项目和文件夹BTCWallet,然后按照下面的步骤操作

lixu@ubuntu:~$ cd '/home/lixu/Desktop/demo/BTCWallet/'lixu@ubuntu:~/Desktop/demo/BTCWallet$ npm init

然后一直按回车初始化项目。 然后自动生成package.json文件,就是项目包的配置文件。 接下来我们导入项目中需要用到的库,将下面的json复制到package.json文件的最后一个字段中。

,"dependencies": {"bitcore-wallet-client": "^6.7.5","ejs": "^2.6.1","express": "^4.16.4"}

项目界面如下:

C17777E7-A36C-4DB9-B8F3-0F329647EAD1

然后根据上面的依赖库运行如下命令。

npm 安装

下载完成后,所有依赖库会被下载到项目根目录下自动创建的node_modules文件夹中。 4. 项目源码

根据以下结构构建项目。

1A0B838E-50E6-44FC-AB9B-3D95C6A467C7

1A0B838E-50E6-44FC-AB9B-3D95C6A467C7

索引.js

项目的入口文件。 先实例化express对象,然后向中间件注册express.urlencoded、ejs、views、静态路由,并绑定服务到3000端口。

比特币wallet文件分析_比特币病毒中毒后文件_比特币挖矿源代码分析

每个音节包含:

BWS_URL:bitcore-wallet服务器地址,我们使用bitpay地址,你也可以自己搭建钱包服务器。

networkType:钱包连接的网络类型,支持官方网络和测试网络,分别表示为:livenet和testnet。

coinType:货币类型,支持比特币和比特币现金,分别表示为:btc、bch。

copayerName:钱包所有者,创建钱包必填词比特币wallet文件分析,这里我指定为常量“lixu”。

walletFilePath:创建钱包后导出文件的存放位置。

模型/walletClient.js

钱包的模型文件出来了。 这里只有一种方法,就是实例化bitcore-wallet客户端。

让 config = require("../config/config")

模块.exports = {

getWalletClient: () => {

var Client = require('bitcore-wallet-client');

变种客户=新客户({

baseUrl: config.BWS_URL,

详细:错误,

});

回头客

},

}

路由器/router.js

路由文件。

让 router = require('express').Router();

路由器。 get("/wallet.html", (req, res) => {

水库 render("wallet.html");

})

module.exports = 路由器

工具/myUtils.js

项目工具类提供成功和失败返回给前端的基本数据结构,判断字符串是否以某个字符串结尾。

比特币挖矿源代码分析_比特币wallet文件分析_比特币病毒中毒后文件

比特币wallet文件分析_比特币挖矿源代码分析_比特币病毒中毒后文件

比特币挖矿源代码分析_比特币wallet文件分析_比特币病毒中毒后文件

比特币wallet文件分析_比特币挖矿源代码分析_比特币病毒中毒后文件

2018-10-29 10.36.04

参考

表达-github:

ejs的github:

bitcore-wallet-client的github:

项目源码Github地址