以太坊私链挖矿操作指南
以太坊虚拟机 (EVM) 是以太坊智能合约的运行时环境。它不仅是沙盒化的,实际上它是完全隔离的,在 EVM 中运行的代码无法触及网络、文件系统或其他进程。甚至智能合约之间的调用也是有限的。
以太坊中有两种类型的账户共享相同的地址空间。外部账户,由公私钥对控制。合约账户,由账户中存储的代码控制。外部账户地址由公钥确定,合约账户地址在合约创建时确定。
每个帐户都有一个以太币余额(在“Wei”中),可以通过向其发送以太币交易来更改。
每笔交易都是一条信息,可用于将余额从一个帐户转移到另一个帐户。
每笔交易都需要支付一定的gas。 Gas 价格由创建者设定,调用合约的发送账户需要交易费用 = Gas 价格 * Gas 数量。
Go-Ethereum 是以太坊基金会提供的官方客户端软件。它是用 Go 编程语言编写的,缩写为 Geth
当您启动此客户端时,它会连接到其他客户端(也称为节点)的网络以下载同步块。它将不断与其他节点通信以使其副本保持最新。它还具有挖掘区块并将交易添加到区块链、验证和执行区块交易的能力。它还充当服务器,您可以通过 RPC 访问公开的 API 接口。
这是一个命令行工具以太坊挖矿专线是什么,允许您连接到正在运行的节点并执行各种操作,例如创建和管理帐户、查询区块链、签署和提交交易到区块链等等
p>
我们来谈谈创建以太坊私有链的一般步骤:
1.操作系统准备linux(centos6.7)
2.golang 安装
3.下载以太坊
4.安装以太坊
5. 创世区块文件的准备
6.创世块初始化
7.以太坊启动
=========================================
1.最好的操作系统是centos6.5以上
2.使用yum命令安装golang语言
先更新下yum 源:
[root@localhost src]# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
[root@localhost src]# yum install golang
3.以太坊源码下载,演示链接为
[root@localhost src]# wget
[root@localhost src]#解压v1.7.3.zip
[root@localhost src]# cdgo-ethereum-1.7.3/
4.安装以太坊
[root@localhost src]# 制作
5. 创世区块文件的准备
在go-ethereum-1.7.3/build/bin目录下创建一个init.json的文本文件,内容如下:
{ "config":
{
"chainId": 10,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"alloc" : {},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x02000000",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00"
}
参数名称参数说明
混合哈希
与nonce一起用于挖矿,前一个区块的一部分产生的哈希。注意他和nonce的设置需要满足以太坊黄皮书4.3.4.Block Header Validity,
随机数
nonce 是用于挖掘的 64 位随机数。注意他和mixhash的设置需要满足以太坊黄皮书4.3.4.Block Header Validity,
难度
设置当前区块的难度。如果难度太高,cpu挖矿就会很困难。在此处设置较低的难度
分配
用于预设账号和账户中的以太币数量。因为私链挖矿比较容易,所以我们不需要预置有币的账户,需要的时候可以自己创建。
币库
矿工账号以太坊挖矿专线是什么,填写即可
时间戳
设置创世块的时间戳
父哈希
前一个区块的hash值,因为是创世区块,所以这个值为0
额外数据
补充信息,随便填,你可以填写你的个人信息
气体限制
该值设置了 GAS 总消耗量的限制,用于限制区块可以包含的交易信息的总和。因为我们是私链,请填写最大值。
6.创世块初始化
在go-ethereum-1.7.3/build/bin目录下执行如下命令,完成创世块的创建:
[root@localhost bin]# ./geth --datadir "/root/chain" init init.json
注意:上述命令中 --datadir 后面的 /root/chain 可以任意指定,无需提前创建,但必须保证有足够的磁盘空间。 init.json是我们上一步创建的文件,注意文件名相同。
7.以太坊启动
[root@localhost bin]# ./geth --rpc --rpccorsdomain "*" --datadir "/root/chain" --port "30303" --rpcapi "db,eth,net,web3" --networkid 100000 console
注意:上面命令中–datadir 后的”/root/chain”要跟我们上一步的–datadir 参数一致。
一直到出现Welcome to the Geth JavaScript console! 句话,并自动进入geth的命令行则说明以太坊私有链安装成功了。
至此,我们的私链已经搭建成功。
8.开始网络时间同步:
Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RTC)。 系统时间:指当前Linux Kernel中的时间。 硬件时间:主板上有电池供电的时间。 查看系统时间的命令: #date 设置系统时间的命令: #date –set(月/日/年 时:分:秒) 例:#date –set “10/11/10 10:15” 查看硬件时间的命令: # hwclock 设置硬件时间的命令: # hwclock –set –date = (月/日/年 时:分:秒) 上述提到的是手动设置时间到一个时间点,可能与当前网络的时间有误差。下面介绍一下与时间服务器上的时间同步的方法 1. 安装ntpdate工具 # yum -y install ntp ntpdate 2. 设置系统时间与网络时间同步 # ntpdate cn.pool.ntp.org 3. 将系统时间写入硬件时间 # hwclock --systohc
参考:
9.查看日志的方法
启动以太坊的时候使用命令:
./geth --rpc --rpccorsdomain "*" --datadir "/root/chain" --port "30303" --rpcapi "db,eth,net,web3" --networkid 100000 console 2>>eth_output.log
本次启动后日志记录到文件 eth_output.log
查看日志:
tail -f eth_output.log
10.查看账户余额
开始挖矿后通过命令查看账户钱包有多少矿
eth.getBalance(eth.accounts[0])
或网络3.eth.getBalance(eth.accounts["0x6c24c7e7114726a73b217af292681de445e071c7"])
查询以查看格式化的以太币余额
web3.fromWei(eth.getBalance(eth.coinbase), "ether")