如果要初始化区块链的话就用创始区块

 

如果通过创世区块来初始化区块链的话,首先需要一个初始化区块链的json文件,如下。

{

"config": {

"chainId": 15,

"homesteadBlock": 0,

"eip155Block": 0,

"eip158Block": 0

},

"difficulty": "4",

"gasLimit": "2100000",

"alloc": {

"7df9a875a174b3bc565e6424a0050ebc1b2d1d82": {

"balance": "300000"

},

"f41c74c9ae680c1aa78f42e5647a62f353b7bdde": {

"balance": "400000"

}

}}

config, difficulty, gasLimit, alloc创始区块文件中,这几个文件是必须的。

初始化区块链,并且创建一个文件夹来存储区块数据

geth init genesis.json --datadir private_data

打开终端

geth --networkid 888 --datadir private_data  console

查看余额

> eth.getBalance("7df9a875a174b3bc565e6424a0050ebc1b2d1d82")

300000>

开始 mining

> miner.start()

INFO [10-15|07:57:15] Updated mining threads                   threads=0

INFO [10-15|07:57:15] Transaction pool price threshold updated price=18000000000

ERROR[10-15|07:57:15] Cannot start mining without etherbase    err="etherbase address must be explicitly specified"

Error: etherbase missing: etherbase address must be explicitly specified

at web3.js:3104:20

at web3.js:6191:15

at web3.js:5004:36

at <anonymous>:1:1

>

如果你直接挖矿,会出现上面的错误。需要设置一个挖矿的账号。

> miner.setEtherbase("7df9a875a174b3bc565e6424a0050ebc1b2d1d82")true

>

好了,那么接下来就可以开始挖矿了,看起来和写起来都是相对比较简单的,大家加油努力学习,哈哈。

err="etherbase address must be explicitly specified"的更多相关文章

  1. centos7部署ethereum私有链

    https://github.com/ethereum/go-ethereum/wiki http://book.8btc.com/books/6/ethereum/_book/public-chai ...

  2. Linux内核--网络栈实现分析(六)--应用层获取数据包(上)

    本文分析基于内核Linux 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7541907 更多请看专栏,地址http: ...

  3. runv containerd 流程分析

    当runv需要启动一个容器的时候,首先需要启动containrd,作为该容器的daemon.因此,启动containerd的相关代码也是从runv/start.go开始.最终,启动containerd ...

  4. go-mysql

    1.GO语言实现的简单TCP服务代码 package main import ( "net" "fmt" ) var ( maxRead = 1100 msgS ...

  5. golang实现ping命令

    // Copyright 2009 The Go Authors.  All rights reserved.// Use of this source code is governed by a B ...

  6. TCP内核源码分析笔记

    Table of Contents 1 术语 1.1 ABC 1.2 SACK 1.3 D-SACK 1.4 FACK 1.5 F-RTO 1.6 nagle算法 1.7 cork算法 1.8 tem ...

  7. accept系统调用内核实现

    用户态对accept的标准使用方法: if ((client_fd = accept(sockfd, (struct sockaddr *)&remote_addr, &sin_siz ...

  8. nodeJS之域名DNS

    前面的话 本文将详细介绍域名解析模块DNS 工作原理 打开浏览器,在上方地址栏输入网址的那一刻,这个回车按了之后,发生了很多事情.首先,计算机只懂0和1,也就是说人类的字母网址计算机是不懂的,它只认识 ...

  9. Socket层实现系列 — accept()的实现(一)

    本文主要介绍了accept()的系统调用.Socket层实现,以及TCP层实现. 内核版本:3.6 Author:zhangskd @ csdn blog 应用层 int accept(int soc ...

随机推荐

  1. export default和export的使用方式

    在node中使用 var 名称=require('模块标识符') 来导入 module.exports 和exports 来暴露成员 在ES6中,也通过规范的形式,规定了ES6中如何导入和导出模块 E ...

  2. 微信小程序tabBar与redirectTo 或navigateTo冲突

    微信小程序tabBar与redirectTo 或navigateTo冲突 tabBar设置的pagePath无法再次被redirectTo或navigateTo引用 导致跳转失败,更改为swithTa ...

  3. Async await 解析

    Async 定义:使异步函数以同步函数的形式书写(Generator函数语法糖) 原理:将Generator函数和自动执行器spawn包装在一个函数里 形式:将Generator函数的*替换成asyn ...

  4. vmware 虚拟机扩展 liunx系统硬盘空间

    参考一下以下博客 https://www.cnblogs.com/yongdaimi/p/9050155.html https://blog.csdn.net/daemon_2017/article/ ...

  5. BeginInvoke异步线程

    this.BeginInvoke(new Action(() => { dataGridView1.DataSource = BLLBillConsume.BllGetClearMarketLo ...

  6. 最全排序算法原理解析、java代码实现以及总结归纳

    算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间非比较类排序:不通过 ...

  7. tornado基本使用一

    一.tornado web程序编写思路 . 创建web应用实例对象,第一个初始化参数为路由映射列表 . 定义实现路由映射列表中的handler类 . 创建服务器实例, 绑定服务器端口 . 启动当前线程 ...

  8. linux分析工具之top命令详解

    Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 一.top ...

  9. 数列分段`Section II`(二分

    https://www.luogu.org/problemnew/show/P1182 洛谷上的题目. 以后如果遇到1e5什么的   用二分试试! #include<iostream> # ...

  10. Http 缓存剖析

    缓存一直是前端优化的主战场, 利用好缓存就成功了一半. 本篇从http请求和响应的头域入手, 让你对浏览器缓存有个整体的概念. 最终你会发现强缓存, 协商缓存 和 启发式缓存是如此的简单. 导读 浏览 ...