基于以太坊创建私有链

创建创世配置文件

{
       "coinbase": "0x0000000000000000000000000000000000000000",
       "config": {
              "homesteadBlock": 5
        },
       "difficulty": "0x20000",
       "extraData": "0x",
       "gasLimit": "0x2FEFD8",
       "mixhash": "0x00000000000000000000000000000000000000647572616c65787365646c6578",
       "nonce": "0x0",
       "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
       "timestamp": "0x00",
       "alloc": {
              "dbdbdb2cbd23b783741e8d7fcf51e459b497e4a6":
              {
                  "balance":"100000000000000000000000000000"
              }
       }
    }

上面这段代码复制到一个文本文件里并起名为genesis.json。

创世

为了不和主链的数据冲突,这里建议建立自己的私链数据文件夹,例如创建privchain文件夹,并把创世配置文件放在根目录下。
执行
geth --datadir "$path/Chain/privchain" init "$path/Chain/genesis.json"
完成创世!

创建账户

为了在私链上做实验,我们还需要在私链上建立自己的账户,执行
geth --datadir "$path/Chain/privchain" console
初始化,进入geth console。
执行
personal.newAccount('Your Password')
创建一个新账号并设置密码。
执行

> eth.accounts
["0x4f166b9c595ae904d9d364cc80ab2dbd439d9de0"]
> eth.getBalance(eth.accounts[0])
150000378499999992000
>

说明:
eth.accounts 查看有哪些账户,这里只有刚才创建的一个。
eth.getBalance查看账户有多少币,初始化应该是零,这里我的账号挖过一段时间。
执行
miner.start()
挖一小会儿后,执行
miner.stop()
然后执行
eth.getBalance(eth.accounts[0])
会发现币的数量发生了变化。

转账实验

类似上述方式,再创建一个账号
personal.newAccount('Your Password')
然后解锁第一个账号
personal.unlockAccount(eth.accounts[0])
执行转账交易
eth.sendTransaction({from:eth.accounts[0], to:eth.accounts[0], value:10000})
此时交易并没有真正执行,可以利用eth.getBalance,会发现每个账户的币没有变化。
此时需要挖矿挖成交易,即执行
miner.start()
挖一小会儿后,执行
miner.stop()
然后执行
eth.getBalance(eth.accounts[0])
eth.getBalance(eth.accounts[1])
会发现币的数量发生了变化。

至此,完成如何搭建一个以太坊开发实验环境,创建私链及在私链上挖矿转账。

你可能感兴趣的:(基于以太坊创建私有链)