美文网首页
以太坊钱包的开发1 -- NodeJs

以太坊钱包的开发1 -- NodeJs

作者: iRonCheng | 来源:发表于2018-03-23 10:45 被阅读2398次

以太坊官方提供了一些API(点我查看)给开发者使用,但是依靠这些API还不足以做成一个完整功能的钱包。

如何做一个功能完整的以太坊钱包,主要在转账这块,由于安全性考虑,在加解密,数字签名这块不可能有现成的API暴露给开发者。官方给了一个NodeJs的模块给我们使用!!

这个NodeJs的模块叫web3,主要连接以太坊暴露出来的RPC层,开发者利用web3连接RPC层,从而可以与区块链交互。

开始搭建


(本文开发环境是Mac/Linux, 以太坊客户端是Go-ethereum,需要NodeJs的环境)

NodeJS安装

nodejs官网 ,自己谷歌如何下载。

安装完nodejs环境,会自带一个npm的包管理器。

创建钱包目录,我们姑且叫 wallet

cd  wallet
npm  init     //初始化node模块,填写相关信息

在wallet目录下, 新建一个叫app.js的文件。
其内容如下:

var Web3 = require('web3');
if (typeof web3 !== 'undefined') {
    web3 = new Web3(web3.currentProvider);
} else {
    // set the provider you want from Web3.providers
    web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
var version = web3.version.api;
console.log(version);

然后

cd   wallet
node  app.js        //执行js文件

会发现报错,连接不到RPC层。因为要使用这个web3的模块,必须在本地搭一个以太坊的节点,如何搭建,请看这里

在本地搭建好以太坊节点后,记得启动节点的选项

geth --rinkeby --rpc --rpcaddr 0.0.0.0 --rpcapi eth,net,web3 --syncmode fast --cache 1028 --datadir data --rpccorsdomain 'http://localhost:8080' console

此处,--rinkeby 表示连接测试链 rinkeby(我使用测试链,因为我没钱买以太币啊,用这个测试链测试转、收钱,跟正式环境的一样的。);

--rpc 表示启用HTTP-RPC服务器,这样你的web3模块才能与这个本地节点交互,从而跟整个世界的以太坊区块链交互;

--rpcapi 表示HTTP-RPC提供的API;

--syncmode 表示同步模式,有fast、full、light

--rpccorsdomain 表示允许跨域请求的域名列表 用逗号分开

(更多Geth命令,可以看这个帖子)

启动完本地节点,此时再执行命令:

node  app.js        //执行js文件

就有输出了。


后续,如何转账、查看余额、查看交易等。。

相关文章

网友评论

      本文标题:以太坊钱包的开发1 -- NodeJs

      本文链接:https://www.haomeiwen.com/subject/qdbtcftx.html