Skip to content

修改并编译web3.js文件

Agzs edited this page Sep 17, 2018 · 3 revisions

go-ethereum的js交互是靠web3.js实现的。

web3.js文件在go-ethereum/internal/jsre/deps/目录下,修改完该文件后,需要打包,放到Go Ethereum里测试,以下就是编译过程说明:

  1. 安装go-bindata
go get -u github.com/jteeuwen/go-bindata/...

配置GOPATH后,上述指令可在Home目录下执行,执行完该指令,将编译出go-bindata可执行文件了,位于gopath/bin目录下。

  1. 编译web3.js
cd go-ethereum/internal/jsre/deps
go-bindata -nometadata -pkg deps -o bindata.go bignumber.js web3.js

该指令位于同目录下的deps.go的倒数第二行

  1. 查看版本
运行geth命令行
web3.version.api

显示web3.js版本为v0.20.1,更多操作可参考JavaScript API

  1. 运行geth
编译go-ethereum
运行geth命令行,调用新修改添加的接口函数,比如某个交易
web3.version.api

显示web3.js版本为v0.20.1,更多操作可参考JavaScript API

  1. 参考

JavaScript API中文文档

以太坊 web3.js 打包编译发布过程

以太坊官方文档

1. 方案设计

VNT零知识设计方案

方案设计图

2. 方案实现

实现细节思考

2.1 libsnark模块实现

2.2 ethereum模块实现

2.3 cgo模块实现

3. 方案测试

部分问题

整体测试出的问题

3.1 libsnark模块测试

3.2 整体测试

4. 修改汇总

4.1 libsnark模块修改汇总

4.2 ethereum模块修改汇总

4.3 cgo模块修改汇总

5. 开发技巧

修改并编译web3.js文件

libsnark遇到的大“坑”

FZQA

CGO

MPT trie

transaction 部分修改

简易以太坊测试

Clone this wiki locally