Nodejs实现以太坊钱包-概述

􏰲􏰳􏰴􏰩􏰵􏰶􏰷􏰸􏰹􏰬􏰺􏰻􏰼􏰽􏰾􏰲􏰳􏰴􏰩􏰵􏰶􏰷􏰸􏰹􏰬􏰺􏰻􏰼􏰽􏰾􏰲􏰳􏰴􏰩􏰵􏰶􏰷􏰸􏰹􏰬􏰺􏰻􏰼􏰽􏰾􏰲􏰳􏰴􏰩􏰵􏰶􏰷􏰸􏰹􏰬 如何做一个功能完整的以太坊钱包?以太坊官方提供了一些API()给开发者使用,但是依靠这些API不足以做成一个完整功能的钱包。主要在转账这块,由于安全性考虑,在加解密,数字签名这块不可能有现成的API暴露给开发者。官方给了一个Nodejs的模块给我们使用,叫web3。

web3

web3模块主要连接以太坊暴露出来的RPC层。开发者利用web3连接RPC层,可以连接任何暴露了RPC接口的节点,从而与区块链交互。

web3中有eth对象-web.eth具体来表示与以太坊区块链和智能合约之间的交互。web3.util有一些辅助函数。另外还有shh和bzz用于通信和文件存储的对象。

github地址:web3

文档:web3

Koa

我们的钱包项目使用web3可以与区块链交互了,这个web3是Nodejs的库,那么我们就用nodejs提供后台接口供前端调用即可,这里使用Koa框架。

Koa是富有表现力的HTTP中间件框架,使web应用程序和API更易于编写,他的特点优雅、简洁、表达力强、自由度高。

github地址:Koa

中间件

Koa的最大特色,也是最重要的一个设计,就是中间件。Koa中间件是简单的函数,调用app.use()传入MiddlewareFunction函数带有两个参数(ctx,next)。中间件处在HTTP RequestHTTP Response之间,用来实现某种中间功能。如:

app.use(async (ctx, next) => {
    console.log(`Process ${ctx.request.method} ${ctx.request.url} ...`);
    await next();
});

ctx 是一个请求的上下文,该对象封装了一个传入的http消息,并对该消息进行了相应的响应。Koa提供了一个Request对象作为Contextrequest属性。KoaRequest对象提供了用于处理http请求的方法。Koa提供了一个Response对象作为Contextresponse属性。KoaResponse对象提供了用于处理http响应的方法。

next是一个被调用来执行下游中间件的函数,必须手动调用next()以运行下游中间件。

感谢李旭(旭哥)指导

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦