Centos创建以太坊私有链

首先第一部当然是更新,然后使用yum命令安装golang语言

yum –y updateyum install golanggit clone https://github.com/ethereum/go-ethereum.git  cd go-ethereum  make allcd go-ethereummake all

这里出现了编译错误,提示go的版本1.8.3,编译需要最少1.9。前往https://www.golangtc.com/download goland中国下载go1.10.1.linux-amd64.tar.gz,再次安装前需要卸载原有的golang,yum –y remove golang

tar -C /usr/local -xzf go1.10.1.linux-amd64.tar.gzexport PATH=$PATH:/usr/local/go/bin

重复make,在go-ethereum/build/bin使用ll命令,会罗列文件夹内的在go-ethereum/build/bin目录下创建init.json的文本文件,内容如下:

{  “config”: {        “chainId”: 14,        “homesteadBlock”: 0,        “eip155Block”: 0,        “eip158Block”: 0    },  “alloc”      : {},  “coinbase”   : “0x0000000000000000000000000000000000000000”,  “difficulty” : “0x05000”,  “extraData”  : “”,  “gasLimit”   : “0x2fefd8”,  “nonce”      : “0x0000000000000042”,  “mixhash”    : “0x0000000000000000000000000000000000000000000000000000000000000000”,  “parentHash” : “0x0000000000000000000000000000000000000000000000000000000000000000”,  “timestamp”  : “0x00”}

保存并退出文件,同目录下执行./geth –datadir “/app/chain” init init.json完成创世区块的创建,同目录下执行./geth –rpc –rpccorsdomain “*” –datadir “/app/chain” –port “30303” –rpcapi “db,eth,net,web3” –networkid 100000 console每次启动多使用此命令。

这时进入geth命令,可以创建账户转账查余额等操作

//查看coinbase账户余额baseAccount = eth.accounts[0]num = eth.getBalance(baseAccount)//换算单位为ethweb3.fromWei(num)//新建一个账户personal.newAccount(“account”)//查看新建账户的余额account1 = eth.accounts[1]eth.getBalance(account1)//从coinbase账户转给account1账户1ethpersonal.unlockAccount(baseAccount ,”coinbase”)eth.sendTransaction({from:baseAccount,to:account1,value:web3.toWei(1,”ether”)})//观察挖矿shell的输出,等待交易打包完成后,查询account1的账户余额eth.getBalance(account1)

此时账户余额为零,因为我们的交易还未成功写进区块,写进区块的方式是挖矿,我们再次开启挖矿,挖矿成功后,并停止挖矿,再次查看余额。到这里就完成了私有链创建,账户创建,挖矿,转账等操作。私有链用于调试,在私有链上挖矿是没有意义的。

 

参考文献:

https://www.cnblogs.com/beyang/p/8469227.html

https://blog.csdn.net/wo541075754/article/details/78926177

https://blog.csdn.net/koastal/article/details/78737543

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *