编译过程记录
- 基础环境:OceanDigital纽约的服务器。
- 基本上按照官方指导,详见:https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum
- 其中Ubuntu16.04中的Golang默认是1.6版本,编译过程中会报错,通过http://www.cuiliang.com/post/229的指导完成,升级到go1.9beta2版本。(PS:也可以遵循https://tecadmin.net/install-go-on-ubuntu/的指导,升级到go1.9.4版本)
- 通过whereis得到go的地址和go1.9beta2,使用mv指令替换掉对应的bin(让运行go的时候直接运行go1.9beta2达到升级版本目的)
- 其中go1.9beta2版本执行make geth后的编译过程中,会出现错误,错误信息:
vendor/gopkg.in/olebedev/go-duktape.v3/api.go:153:2: note: in expansion of macro ‘duk_error’
duk_error(ctx, err_code, "%s", str);
github.com/ethereum/go-ethereum/vendor/gopkg.in/olebedev/go-duktape.v3
vendor/gopkg.in/olebedev/go-duktape.v3/duktape.go:132: constant 18446744073709551615 overflows int64
util.go:45: exit status 2
- 解决方案参考https://github.com/ethereum/go-ethereum/issues/15752 :
修改change line 192 of vendor/gopkg.in/olebedev/go-duktape.v3
从
func (d *Context) PushCFunction(fn *[0]byte, nargs int64) int {
到
func (d *Context) PushCFunction(fn *[0]byte, nargs uint64) int {
- 重新运行make geth成功,再然后就可以执行build/bin/geth 看自己的BlockChain节点了。
-
完成万里长征第一步,区块链技术学习探索~
image.png
网友评论