测试区块链的防篡改性

首先在第一台机器168.192.0.5

mkdir  private-geth && private-geth
vim genesis.json

{
    "config": {
        "chainId": 3434,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "coinbase" : "0x0000000000000000000000000000000000000000",
    "difficulty" : "0x400",
    "extraData" : "0x123456",
    "gasLimit" : "0xffffffff",
    "nonce" : "0x0000000000000042",
    "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
    "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
    "timestamp" : "0x00",
    "alloc": { }
}
初始化创始块

geth --datadir ./data/00 init genesis.json

进入geth平台

geth  --identity "newEth"  --rpc --rpccorsdomain "*" --rpcapi "personal,db,eth,net,web3" --datadir ./data/00 --networkid 3434  --ipcdisable --port 33333 --rpcport 4444 console

admin.nodeInfo 得到 enode: "enode://ef572405a99d655f41ec645a780e23b8dc243c1297c2f7b9da416ffbe79dc15298d2e31a78d903b3cb611d417287e17f5307971213b748d16929ff476bb8ea6c@[::]:33333"
在这里制作成镜像haha1

第二个节点 由haha1镜像创建主机成为192.168.0.6

cd  private-geth

geth --datadir ./data/01 init ./genesis.json

连接第一个节点并进入geth平台

geth  --identity "newEth"  --rpc --rpccorsdomain "*" --rpcapi "personal,db,eth,net,web3" --datadir ./data/01 --networkid 3434  --ipcdisable --port 33334 --rpcport 4446 --bootnodes "enode://ef572405a99d655f41ec645a780e23b8dc243c1297c2f7b9da416ffbe79dc15298d2e31a78d903b3cb611d417287e17f5307971213b748d16929ff476bb8ea6c@192.168.0.5:33333" console

Welcome to the Geth JavaScript console!

instance: Geth/newEth/v1.6.6-stable-10a45cb5/linux-amd64/go1.8.1
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

> eth.blockNumber
0
他会自动更新主链的信息

> INFO [07-12|14:28:29] Block synchronisation started 
INFO [07-12|14:28:29] Imported new state entries               count=1 flushed=1 elapsed=98.548碌s  processed=1 pending=0 retry=0 duplicate=0 unexpected=0
INFO [07-12|14:28:30] Imported new block headers               count=5 elapsed=1.369s    number=5 hash=467a87鈥f2226 ignored=0
INFO [07-12|14:28:30] Imported new chain segment               blocks=5 txs=0 mgas=0.000 elapsed=1.418ms   mgasps=0.000 number=5 hash=467a87鈥f2226
INFO [07-12|14:28:30] Fast sync complete, auto disabling 
> eth.blockNumber
5
制作成镜像Haha2

用第一个节点的镜像制作第三个节点 主机名字3 192.168.0.2

cd private-geth

geth --datadir ./data/02 init ./genesis.json

geth  --identity "newEth"  --rpc --rpccorsdomain "*" --rpcapi "personal,db,eth,net,web3" --datadir ./data/02 --networkid 3434  --ipcdisable --port 33335 --rpcport 4447 --bootnodes "enode://ef572405a99d655f41ec645a780e23b8dc243c1297c2f7b9da416ffbe79dc15298d2e31a78d903b3cb611d417287e17f5307971213b748d16929ff476bb8ea6c@192.168.0.5:33333" console



Welcome to the Geth JavaScript console!

instance: Geth/newEth/v1.6.6-stable-10a45cb5/linux-amd64/go1.8.1
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

> eth.accounts
[]
> 
> INFO [07-12|14:36:12] Block synchronisation started 
INFO [07-12|14:36:12] Imported new state entries               count=1 flushed=1 elapsed=98.452碌s  processed=1 pending=0 retry=0 duplicate=0 unexpected=0
INFO [07-12|14:36:14] Imported new block headers               count=5 elapsed=1.714s    number=5 hash=467a87鈥f2226 ignored=0
INFO [07-12|14:36:14] Imported new chain segment               blocks=5 txs=0 mgas=0.000 elapsed=1.445ms   mgasps=0.000 number=5 hash=467a87鈥f2226
INFO [07-12|14:36:14] Fast sync complete, auto disabling 


> eth.blockNumber
5

创建一个新映像haha3

这样三个节点相连的私链就搭建成功了

在篡改了第三台机器的数据或者ldb以后,第三个节点不能挖矿了,然后我再同一个目录下再创建一个新的节点,同样不能挖矿。




geth --datadir ./data/03 init ./genesis.json

geth  --identity "newEth"  --rpc --rpccorsdomain "*" --rpcapi "personal,db,eth,net,web3" --datadir ./data/03 --networkid 3435  --ipcdisable --port 33336 --rpcport 4447 --bootnodes "enode://ef572405a99d655f41ec645a780e23b8dc243c1297c2f7b9da416ffbe79dc15298d2e31a78d903b3cb611d417287e17f5307971213b748d16929ff476bb8ea6c@192.168.0.5:33333" console

那我就把这台机器毁了吧,再复制一下第三台机器,重新试验。
一样是192.168.0.2的机器
进去以后直接同步好了区块链数据。
cd private-geth/data/02/geth/chaindata
但是一直不能挖矿,无奈我就在第二台机器上同样的方法创建第三台节点是可以挖矿的
那我在他上面继续创作镜像,直接开启看看可不可以挖矿hahasjd
192.168.0.3的机器
好了02可以挖一直觉得挖矿速度慢,原来是几台机器的配置不同导致的,吓死宝宝了

在 192.168.0.6机器上,重新开一个节点,注意该节点只有自己,没有接入其他的节点。进入控制台后他就有ldb文件,我把ldb文件删了,是不影响他挖矿的,奇怪的是在chaindata目录也没有继续生成ldb文件。我重新启动该节点,有新的ldb文件生成,但是区块高度为0 ,也不能挖矿了。是因为初始块被删了,导致不行,重新init的话也是不对的,他会提示该目录下的创始块已经存在了

geth --datadir ./data/04 init genesis.json


 geth  --identity "newEth"  --rpc --rpccorsdomain "*" --rpcapi "personal,db,eth,net,web3" --datadir ./data/04 --networkid 3434  --ipcdisable --port 33330 --rpcport 4449 console

你可能感兴趣的:(以太坊)