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

当前位置:首页 > 币圈百科 > 比特币钱包开发:钱包项目整体架构设计

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

2023-01-19币圈百科316

目标

构建NodeJS后端框架构建前端web框架前端交互

前言[X] [X]本课程是比特币钱包的开发、后端使用的NodeJS的构建、客户端使用的web前端、VSCode的开发工具、Ubuntu16.04系统(当然还有Mac和windows系统)

一、前端架构

我们的开发重点是后端的实现,所以在web客户端不使用其他流行的框架,只用jQuery框架来简化代码,还有一个jQuery Validate插件来简化表单验证。

web前端整体技术:

html css javascript jQuery。

web前端功能:

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

二、后端架构

未命名文件另外,后端Http框架使用了功能强大的express,封装了很多功能,因为bitcore-wallet-client库中提供的API会通过异步回调返回数据,所以不需要koa。

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

bitcore-wallet-client:是bitcore-wallet-service的客户端库,使用REST API与BWS bitcore-wallet-service进行通信,所有REST端点都封装成简单的异步方法。Bitcore-wallet-service库实现了多签名比特币高清钱包服务,Copay和Bitpay钱包都使用该服务。Express:是web框架,提供的HTTP服务器工具非常强大,集成和使用简单,类似koa。Ejs:它是一个JavaScript模板引擎,可以动态地将变量值设置为html。它需要与模板渲染中间件koa-views结合使用。整体架构采用成熟的MVC架构。项目的入口是index.js文件,对项目进行配置。后端服务绑定到端口3000,处于简化状态。前端访问服务时,router.js路由文件根蓑衣网小编2022据URL将任务分配给controllers文件夹下的业务文件。

这里为了快速入门开发比特币钱包项目,在一个项目上同时开发前端和后端,前端的页面文件放在static和views文件夹中。当然也支持移动终端(iOS和Android)的通话。如果需要分离前端和后端,可以直接从views文件夹中分离static。第三部分。项目初始化

新建一个项目和文件夹BTCWallet,然后按照以下步骤执行

新建一个项目和文件夹BTCWallet。然后按照以下步骤执行

徐丽@ Ubuntu:~ $ CD '/home/徐丽/桌面/demo/BTC钱包/'徐丽@ Ubuntu:~/桌面/demo/BTC钱包$ NPM init

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

,"依赖项":{ " bit core-wallet-client ":" 6 . 7 . 5 "," EJS": "2.6.1 "," express ":" 4 . 16 . 4 " }

[x

NPM install

下载完成后,所有的依赖库都会下载到项目根目录下自动创建的node_modules文件夹中。第四章。项目源代码

按照下面的结构构建项目。项目的

1a 0b 838 e-50e 6-44FC-Ab9b-3d 95 c6a 467 c 7

index . js

条目文件。首先实例化express对象,然后向中间件注册express.urlencoded、ejs、视图和静态路由,服务绑定到端口3000。蓑衣网小编2022C17777E7-A36C-4DB9-B8F3-0F329647EAD1

每个字包含:

bws _ URL:bit pay的地址。我们使用BitPay的地址。也可以自己搭建钱包服务器。

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

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

copayerName:钱包的所有者,创建钱包所必需的断词,我在这里将它指定为常量“徐丽”。

walletFilePath:创建wallet后导出文件的存储位置。1A0B838E-50E6-44FC-AB9B-3D95C6A467C7

models/Wallet client . js

钱包的模型文件出来了。只有一种方法可以实例化bitcore-wallet客户端。

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

module . exports={

?getWalletClient: ()={

?var 蓑衣网小编2022 Client=require(' bit core-wallet-Client ');

?var client=new Client({

?baseUrl: config。BWS _网址,

?verbose: false,

?});

?返回客户端

?},

}

router/router . js

路由文件。

let router=require(' express ')。路由器();

router.get("/wallet.html ",(req,res)={

?RES . render(" wallet . html ");

})

模块。exports=router

utils/myutils . js

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

资源

GitHub of Express: 3330。Bitcore的EJS

Github-钱包-客户端:https://GitHub。com/bit pay/bit core-Wallet-Client

项目来源GitHub地址

版权声明:博客中的文章版权归博主所有,未经授权禁止转载。请联系作者获得许可并注明出处。

未经授权禁止转载和改编。转载请注明出处!

比特币钱包开发:钱包项目整体架构设计 | 分享给朋友: