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

 

如果通过创世区块来初始化区块链的话,首先需要一个初始化区块链的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. js获取URL请求参数与改变src

    js实现: <script> function GetQueryString(name) { var reg = new RegExp("(^|&)" + na ...

  2. MySQL 查询大于“时间字段”15分钟、1小时、1天的数据

    以下代码中times为时间字段,类型为datetime 1.查询大于times十五分钟的数据 //大于号后面都是获取times十五分钟后的时间select*from table where now() ...

  3. Linux网络管理——ifconfig、route

    Linux识别到的网络设备 eth#   eth0   eth1 以太网卡 wifi#   wifi0  wifi1 无线网卡 ppp#   ppp0  ppp1 拨号连接 lo     本地环回网卡 ...

  4. Java数组直接选择排序、sort()排序

    /** * 1.数组sort()排序 * 2.直接选择排序(两重for循环排序) */ import java.lang.*; import java.lang.reflect.Array; impo ...

  5. idea java快速生成返回值

    ctrl+alt+V 或者

  6. 获取TableViewer里面的所有TableViewerColumn

    private TableViewerColumn[] getTableViewerColumns(TableViewer tableViewer) { TableColumn[] columns = ...

  7. 发现sqlite

    1.前言 本文使用"发现"二字,是表示我作为一个用过mysql oracle hive以及各种nosql数据库的男人,竟然发现有一个如此常识的数据库我竟然不知道. 在配置airfl ...

  8. wxpython图形化界面编程(一):添加菜单,设置图片大小,添加文本框等,并简要布局

    #-*-encoding:utf-8-*-import wx def loadframe(): app = wx.App() mywindow = myframe() mywindow.Show() ...

  9. 005_linuxC++之_指针的引入

    (一)直接看代码 #include <iostream> using namespace std; int add(int a){ a = a + ; return a; } int ad ...

  10. 利用模板和C++11特性实现的智能指针-作用同share_ptr

    根据C++11特性实现,基本上实现了同SharePtr同样的功能,有时间继续优化.之前一直以为引用计数是一个静态的int类型,实际上静态值是不可以的.之前项目中总是不太习惯使用智能指针.通过自实现的方 ...