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
评论