Ubuntu编译区块链BlockChain成功笔记

编译过程记录

  • 基础环境: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节点了。
  • 完成万里长征第一步,区块链技术学习探索~


    Ubuntu编译区块链BlockChain成功笔记_第1张图片
    image.png

你可能感兴趣的:(Ubuntu编译区块链BlockChain成功笔记)