愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计

本课程是以太坊钱包开发,后端使用的NodeJS搭建,客户端使用的web前端,VSCode开发工具,Ubuntu16.04开发环境,node v8.11.3,npm v5.6.0。

在Kovan测试网络上进行开发。

愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计_第1张图片
愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计_第2张图片

二、后端架构

这个钱包应用程序与以坊节点进行交互,使用web3.js库提供的jsAPI访问以太坊区块链数据,因此我们用NodeJS搭建后端服务,使用成熟的MVC架构,http框架是koa,需用到如下第三方库:

koa:富有强大功能的HTTP中间件框架,使Web应用程序和API更易于编写。它的特点优雅、简洁、表达力强、自由度高。

koa-body:功能齐全的koa body解析器中间件。支持multipart,urlencoded和json请求体。

koa-router:koa的路由中间件。

koa-static:静态文件服务器中间件。

koa-views:是模板渲染中间件,在模版引擎下使用,支持的模版引擎包含:ejs、jazz、haml、react等。

ejs:是一种JavaScript模版引擎,可以动态的设置变量值到html。需要与模板渲染中间件koa-views配合使用。

web3.js:以太坊JavaScript API。

ethereumjs-tx:用于创建、操作和签名以太坊交易的模块。

bip39:随机产生新的 mnemonic code,并可以将其转成 binary 的 种子。

ethereumjs-util:Ethereum 的一个工具库。

ethereumjs-wallet:生成和管理公私钥,下面使用其中 hdkey 子套件来创建 HD 钱包。

愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计_第3张图片
愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计_第4张图片
愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计_第5张图片
愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计_第6张图片
愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计_第7张图片
愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计_第8张图片
愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计_第9张图片
愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计_第10张图片

参考资料

koa的github:https://github.com/koajs/koa

koa-views的github:https://github.com/queckezz/koa-views

koa-body的github:https://github.com/dlau/koa-body

koa-router的github:https://github.com/alexmingoia/koa-router

koa-static的github:https://github.com/koajs/static

ejs的github:https://github.com/tj/ejs

web3.js的github:https://github.com/ethereum/web3.js

ethereumjs-tx的github:https://github.com/ethereumjs/ethereumjs-tx

BIP39的github:https://github.com/bitcoinjs/bip39

ethereumjs-wallet的github:https://github.com/ethereumjs/ethereumjs-wallet

ethereumjs-util的github:https://github.com/ethereumjs/ethereumjs-util

项目源码Github地址

版权声明:博客中的文章版权归博主所有,未经授权禁止转载,转载请联系作者(微信:lixu1770105)取得同意并注明出处。

本文地址: https://chaindesk.cn/witbook/1/11

愿码(ChainDesk.CN)——连接每个程序员的故事

“愿码”以线上社区线下实战型人才加速器相结合,立志打造全球最大的IT实战型多元化复合型人才生态圈。

免费技术交流群:263270946

技术提升、快速转型请关注微信公众号:愿码

你可能感兴趣的:(愿码(ChainDesk.CN):以太坊钱包开发 五-钱包项目整体架构设计)