eth搭建私链(以太坊私有链与联盟链遇到的大坑)

  eth搭建私链(以太坊私有链与联盟链遇到的大坑)

来源:洋辣椒 http!//www。yanglajiao。com

  


  

记录局域网下,多个私有节点连接为联盟链的坑

  

创世区块的创建

保存为json格式

  

{ "nonce"! "0x0000000000000042", "timestamp"! "0x00", "parentHash"! "0x0000000000000000000000000000000000000000000000000000000000000000", "extraData"! "0x00", "gasLimit"! "0x8000000", "difficulty"! "0x400", "mixhash"! "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase"! "0x3333333333333333333333333333333333333333", "alloc"! { },区块链平台 "config"! { "chainId"! 15, "homesteadBlock"! 0, "eip155Block"! 0, "eip158Block"! 0 }}

difficulty:设置为0x400,设置过大,miner。start()会经常卡住。

  

初始化创世区块

  

geth --datadir "/home/ubt/mychain/" init 。/CustomGenesis。json


  

启动私有链

  

geth --identity "mychain" --datadir "/home/ubt/mychain/" --rpc --rpcapi "db,eth,net,web3,admin,miner,personal,rpc" --rpccorsdomain "*"--nodiscover --networkid 100 console


  

坑: --nodiscover 使用这个参数,在连接多个私有节点时候一定要用,这样你的节点就不会被其他人发现,除非手动添加你的节点。否则,就只有一个被无意添加到一个陌生区块链上的机会,那就是跟你有相同的genesis文件和networkID,然后同步到他的节点区块高度,而不是原来自己节点的高度,造成联盟链转账不成功。

  

创建账户

personal。newAccount(‘123)


  

开启挖矿

miner。start(1)

  

局域网联盟链搭建

虚拟机开启另一个节点,要求虚拟机为2G内存、2个cpu,同步联盟链节点高度需要。

  

  

通过addPeer添加第一个节点

  

admin。addPeer(enode!//b4a4e74ded2c2ee0a5a6c8251036e098dd7e76594656708fdc6015d8de52b2631f197c4c7ab241ed9dfd5a429d582890c9a29299d7fc2f3ef8a35914faab8901@192。168。1。105!30303)

@[!!]!30303 改为第一个节点的IP地址

  


  

添加完后会同步节点区块高度,注意对比第一个节点与第二个节点高度是否一致,通过eth。blockNumber查询

  

发起转账

  

personal。unlockAccount( eth。coinbase) //先解锁账户

  

eth。sendTransaction({from! eth。coinbase, to! 目标地址, value! 1000000000000000000}) //value单位wei

  

开启挖矿可看到目标地址的余额增加。

  

-------------------------------------------------------------------------------------

  

rpcapi常用操作

  

新建账户

  

personal。newAccount(‘123)

  

查看余额

  

eth。getBalance(eth。accounts[0])

  

查看钱包账户

  

personal。listWallets

  

解锁账户(转账时)

  

personal。unlockAccount(账户地址)

  

开始挖矿

  

miner。start(1)

  

区块高度

  

eth。blockNumber

  

停止挖矿

  

miner。stop()

  

挖矿奖励地址更换

  

miner。setEtherbase(eth。accounts[1])

  

来源:洋辣椒 http!//www。yanglajiao。com

  
","content_hash"!"b7eac12b

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论