安装go环境:
1、下载二进制包:go1.4.linux-amd64.tar.gz。
2、将下载的二进制包解压至 /usr/local目录。
tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz
3、设置环境变量
$ vi ~/.bashrc
export GOROOT=/local/tools/go
PATH=$PATH:$GOROOT/bin
$ source ~/.bashrc
知识点:
当登陆一个linux系统时,bash shell依次会从4个不同的地方启动文件里的读取命令,顺序是: (echo $HOME = /root)
1: /etc/profile
2:$HOME/.bash_profile
3:$HOME/.bash_login
4:$HOME/.bashrc
安装etherum:
搭建私链:
1. 创建创世区块命名为 genesis.json,并存放到geth安装目录下。
{
"config": {
"chainId": 10, 设置为0可能会出错
"homesteadBlock": 0, 硬分叉高度
"eip155Block": 0,
"eip158Block": 0
},
"alloc" : {}, 用来预置账号以及账号的以太币数量
"coinbase" : "0x0000000000000000000000000000000000000000", 矿工的账号,随便填
"difficulty" : "0x2000", 设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度
"extraData" : "this is lvv’s first go-ethum", 附加信息,随便填,可以填你的个性信息
"gasLimit" : "0x2fefd8", 该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和
"nonce" : "0x0000000000000042", nonce就是一个64位随机数,用于挖矿
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000", 与nonce配合用于挖矿,由上一个区块的一部分生成的hash
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", 上一个区块的hash值,因为是创世块,所以这个值是0
"timestamp" : "0x00" 设置创世快时间戳
}
2. 执行命令:> geth --datadir "/root/chain" init genesis.json ,会创建 /root/chain 目录。如果已有/root/chain目录命令会执行失败,执行 geth removedb 可以消除错误。
3. 启动私链:> geth --identity "phoenix" --rpc --rpccorsdomain "*" --datadir "/root/chain" --port "30303" --rpcapi "db,eth,net,web3" --networkid 98888 console
Identity:区块链标志,用于标志目前网络的名称。
Init:指定传世块的位置,并创建初始块。
Datadir:设置当前区块链网络数据存放的位置
Port:网络监听端口,默认是8080
Rpc:启动rpc通信,可以进行智能合约的部署和调试,在geth中默认激活。
Rpcapi:设置允许连接的rpc客户端,一般为:db eth net web3
Networkid:设置当前区块链的网络ID,用于区分不同的网络,是一个数字
Console:启动命令行模式,可以再geth中执行命令
4.执行 > admin.nodeInfo 查看当前节点的信息
> personal.newAccount("weiwei") 创建账户
"0x9e01ad42d2470b95210f372373c22e2fdaaca3f5"
查看账户:
eth.accounts
查看第一个账户的余额:
eth.getBalance(“账户hash”)
balance = web3.fromWei(eth.getBalance(eth.accounts[0]), "ether")
开始挖矿:
miner.start()
停止挖矿:
miner.stop()
查看区块数:
eth.blockNumber
指定新的coinbase账户:
miner.setEtherbase(“新账户的hash值”)
转账:
源码地址:https://github.com/ethereum/go-ethereum