以太坊geth区块链私链建立
以太坊geth区块链私链建立
geth的github https://github.com/ethereum/go-ethereum
下载最新(1.8)的geth,windows下安装很简单
关于私链在geth的github wiki上private network一章有指南,下面进行部分翻译和整合
(In this context private only means reserved or isolated, rather than protected or secure.私链仅指私有,并不指安全或受保护)
选择network id
(此处network指私链所在的网络)
简而言之,建议你使用networkid标识你的网络,要不然会于id=1的链(同时id=1也是default值冲突),就是公链冲突。
建立创世区块(Genesis Block)
wiki提供的创世区块为
{
	"config": {
		"chainId": 15,
		"homesteadBlock": 0,
		"eip155Block": 0,
		"eip158Block": 0
	},
	"difficulty": "200000000",
	"gasLimit": "2100000",
	"alloc": {
		"7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
		"f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
	}
}
创世区块为
{
  "config"     :{
        "chainId": 1024,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x20000",
  "gasLimit"   : "0xffffff",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00",
  "alloc"      : {}
}
部分参数解释:
alloc:提前分配账号与其中币量;
"alloc": {
        "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
        "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
    }
gaslimit:币最大量
nonce:随机数,用于配合挖矿
mixhash:参考黄皮书(我也不懂)
difficulty:设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度
extraData:区块附加信息
config:The config section ensures that certain protocol upgrades are immediately available.  没怎么看懂
当前目录下创建chain文件夹储存创世区块
.\geth --datadir "\chain" init genesis.json
进入调控台
.\geth --datadir "\chain" console
ipconfig查询本机ip
得到192.168.1.101
.\geth –targetgaslimit 4294967295 –rpc –rpcaddr “192.168.1.101” –rpcport “8101” –port “30301” –rpcapi “eth,web3,personal” –networkid 1024 –identity 1024 -nodiscover -maxpeers 5 –datadir “chain” -unlock 0 -rpccorsdomain “*” –mine console
启动私有链节点
注释
targetgaslimit –每个块的gas上限,这里可以暂时理解为容量 rpc –启动rpc通信,可以进行智能合约的部署和调试 rpcaddr –rpc接口的地址 rpcport –rpc接口的端口号 port –网络监听端口,用于节点之间通信 rpcapi –设置rpc的范围,暂时开启eth,web3,personal足够 networkid –设置当前区块链的网络ID,是一个数字,可以随便写 identity –区块链的标示,随便填写,用于标示目前网络的名字 nodiscover 禁止被网络中其它节点发现,需要手动添加该节点到网络 maxpeers 最大节点数量 datadir –设置当前区块链网络数据存放的位置 unlock –解锁某用户(此处用用户坐标来控制,解锁后的用户调用接口发起交易时,不要需要提供密码) rpccorsdomain 限制rpc访问源的ip,代表不限制 mine 允许挖矿 console –启动命令行模式,可以在Geth中执行命令*
或者使用 .\geth --datadir "chain" --dev.period 1 console
http://blog.csdn.net/wo541075754/article/details/79260040
等待 DAG 变100% 自动开始挖矿 此时可以停止挖矿
miner.stop()
打开Mist
注意左下角标识private
至此成功配置私有链
问题:
cannot unmarshal hex string without 0x prefix into Go struct field Genesis. extraData of type hexutil.Bytes
貌似是value值必须以0x开头,而extraData开头不是0x,貌似只能把extradata删了,或者将你的文字转成16进制
invalid character '}' looking for beginning of object key string
注意最后一个元素后面( ‘}’前)别加逗号
以太坊geth区块链私链建立的更多相关文章
- 智能合约开发solidity编程语言开发一个以太坊应用区块链投票实例
		智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战示例快速入门,用例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力.智能合约其实是"执行合 ... 
- 以太坊geth主网全节点部署
		以太坊geth主网全节点部署 #环境 ubuntu 16.4 #硬盘500GB(目前占用200G) #客户端安装 # 查看下载页面最新版 # https://ethereum.github.io/go ... 
- android和java以太坊开发区块链应用使用web3j类库
		如何使用web3j为Java应用或Android App增加以太坊区块链支持,教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建.钱包创建.交易转账,交易与状态.智能合约开发与交互.过滤器和 ... 
- 基于docker的以太坊集群的私有链开发环境
		转载博文:https://www.jianshu.com/p/8af386ec5f9e https://www.jianshu.com/p/7994db7a2b89?from=singlemessag ... 
- 以太坊 Geth 环境搭建(Ubuntu)
		版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u014409380/article/details/79897335 时隔多日,我又想起来更新博客, ... 
- 以太坊geth客户端下的一些常用命令
		这是一个交互式的 JavaScript 执行环境,在这里面可以执行 JavaScript 代码,其中 > 是命令提示符.在这个环境里也内置了一些用来操作以太坊的 JavaScript 对象,可以 ... 
- c#实战开发:以太坊Geth 常用命令 (四)
		首先运行客户端 当前命令分为 eth,web3 ,personal ,net 输入 >eth 可以看到该命令下的所有方法 > eth 1.创建用户 personal.newAccount ... 
- c#实战开发:以太坊Geth 命令发布智能合约 (五)
		Token的合约代码我们参考Token-Factory的代码. 打开 https://remix.ethereum.org/#optimize=false&version=soljson-v ... 
- 以太坊Geth通过私钥导入新地址到钱包步骤(3种方法)
		一: 通过Geth客户端导入私钥: Open TextEdit Paste key into TextEdit without any extra characters or quotations S ... 
随机推荐
- [书籍翻译] 《JavaScript并发编程》第四章 使用Generators实现惰性计算
			本文是我翻译<JavaScript Concurrency>书籍的第四章 使用Generators实现惰性计算,该书主要以Promises.Generator.Web workers等技术 ... 
- JS中的兼容性问题
			事件对象兼容 window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用.Firefox必须从源处加入event作 ... 
- 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句
			salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ... 
- FlowPortal BPM 设置部门分管
			企业中可能会有多个副总,分别分管不同的部门,员工发起申请需要副总审批时,流程根据员工所在部门查找部门的分管副总进行审批. 比如A公司有两个副总张三和李四,张三分管行政部.市场部,李四分管研发部.采购部 ... 
- 2.Buffer 缓冲区
			/*缓冲区(Buffer)*/ Buffer 就像一个数组,可以保存多个相同类型的数据.根据数据类型不同(boolean 除外),有以下Buffer常用子类: /*ByteBuffer*/(常用) . ... 
- Introduction of Machine Learning
			李宏毅主页 台湾大学语音处理实验室 人工智慧.机器学习与深度学习间有什么区别? 人工智能——目标 机器学习——手段 深度学习——机器学习的一种方法 人类设定好的天生本能 Machine Learnin ... 
- PaaS容器集群优化之路
			1. 性能优化面对的挑战 以下是整个PaaS平台的架构 其中主要包括这些子系统: 微服务治理框架:为应用提供自动注册.发现.治理.隔离.调用分析等一系列分布式/微服务治理能力,屏蔽分布式系统的复杂度. ... 
- 2018 ICPC上海大都会赛重现赛 D   Thinking-Bear magic  (几何)
			2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 D Thinking-Bear magic (几何) 链接:https://ac.nowcoder.com/acm/contest/163/ ... 
- 使用IDEA快速搭建基于Maven的SpringBoot项目(集成使用Redis)
			迫于好久没写博客心慌慌,随便写个简单版的笔记便于查阅. 新建项目 新建项目 然后起名 继续next netx finish. 首先附上demo的项目结构图 配置pom.xml <?xml ver ... 
- Ubuntu死机解决方法汇总
			为什么不建议强制关机 如果长按电源按键强制关机,有可能损坏硬件或者丢失数据,甚至导致磁盘坏道! 其实, 大部分时候的死机是假死, 不是真死... 有时候鼠标还能动呢. 还有一个原因: 对于平时忠贞不二 ... 
