搭建区块链技术开发和运行环境

安装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. 解压go-ethereum-chinese-master到/home/lww/gosource下
  2.  

 

 

搭建私链:

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://img-blog.csdn.net/2018071218391793?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhbnRhbmdkdWhleQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

 

源码地址:https://github.com/ethereum/go-ethereum

 

猜你喜欢

转载自blog.csdn.net/liuweiweiqdlg/article/details/87893806