以太坊私有链与联盟链的坑

原创 2018年04月17日 18:26:28

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


创世区块的创建

保存为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])

以太坊平台评估 私有链和联盟链的机会与挑战

以太坊平台评估 私有链和联盟链的机会与挑战 作者:Vitalik Buterin  翻译:万向区块链实验室/ChinaLedger 联盟  排版/校对:区块链铅笔(ChainB.com) (注...
  • sportshark
  • sportshark
  • 2016-07-24 22:18:53
  • 7969

以太坊《私有链和联盟链的机会与挑战》报告

以太坊平台评估 私有链和联盟链的机会与挑战 作者:Vitalik Buterin  翻译:万向区块链实验室/ChinaLedger 联盟  排版/校对:区块链铅笔(ChainB.com) (注:本文属...
  • hejjiiee
  • hejjiiee
  • 2016-11-27 17:09:29
  • 2457

以太坊如何搭建私有连联盟链

如何启动geth节点对大家来说已经不是什么难事,今天博主就带大家学习一下如何搭建两个节点的联盟链。私有链的创建在之前的文章中我们已经讲到过私有链的创建,本篇文章我们会有道私有链创建的知识,就重新温故一...
  • wo541075754
  • wo541075754
  • 2017-12-28 20:44:20
  • 5620

零起点玩转基于以太坊的联盟链Quorum系列01

Quorum是由美国的金融机构摩根大通推出的企业级区块链平台 Quorum是一个联盟链 Quorum基于以太坊, 在基础结构上保持与以太坊的同步, 增强的部分集中在隐私控制、权限控制、共识机制,以及提...
  • about_blockchain
  • about_blockchain
  • 2017-12-11 10:06:28
  • 486

【区块链开发】从零构建基于POA算法的以太坊联盟链

1、什么是联盟链 2、POW、POA对比 3、Parity钱包介绍 4、联盟链创世区块链Spec文件配置 5、联盟链节点创建的两种方法 6、node0、node1节点创建以及权益账号创建 7、多节点连接、交易、互通
  • 2017年11月09日 09:58

以太坊私有链搭建教程

写在前面 写这个主要是为了记录下自己的学习过程,同时如果能帮助到同样想搭建私有链的朋友们,那是再好不过了 Step 1 环境搭建 私链搭建有三宝,环境,终端和钱包。我这里用到的是Geth客...
  • Koptop
  • Koptop
  • 2018-02-09 20:20:34
  • 1192

以太坊搭建私有链

1、安装geth客户端 geth就是Go Ethereum,即用go语言实现的以太坊客户端。Geth是以太坊协议的具体落地实现,通过Geth,你可以实现以太坊的各种功能,如账户的新建编辑删除,开启挖矿...
  • zhj_fly
  • zhj_fly
  • 2017-09-21 22:08:47
  • 1107

以太坊学习笔记:私有链搭建操作指南

原文链接:https://my.oschina.net/u/2349981/blog/865256 (讲解的内容非常详细,熟悉搭建以太坊私有链的相关操作,学习了!) 摘要: 详解以太坊私有链搭建过程以...
  • u013096666
  • u013096666
  • 2017-05-23 15:05:36
  • 14389

以太坊 链私有链环境搭建(windows)

摸索以太坊区块链技术几个月了。最近打算逐步的把自己学到的东西和大家分享一下。 在阅读本文之前,希望大家能对区块链的概念能有所了解。这样操作过程中的环节理解更深入。下面开始进入准备。 因为本次是wi...
  • ziyuzhiye
  • ziyuzhiye
  • 2017-01-09 18:54:53
  • 13246

Ubuntu搭建以太坊开发环境—使用truffle框架

环境 ubuntu-14.04 ubuntu-14.04-desktop-amd64.iso ,不多解释。 nodejs用来安装truffle等工具 truffle ,目前最好用的以太坊开发框架...
  • anda0109
  • anda0109
  • 2018-03-09 10:33:09
  • 424
收藏助手
不良信息举报
您举报文章:以太坊私有链与联盟链的坑
举报原因:
原因补充:

(最多只允许输入30个字)