主页 > imtoken快速下载 > ETH 001私链建设

ETH 001私链建设

imtoken快速下载 2023-03-01 05:19:24

最近想和同事分享以太坊智能合约的编写,写的PPT越来越多。 想一想,写成一篇文章。

1.1 ETH简介

ETH是我们V神发起的开源去中心化数字货币项目。 ETH在比特币的基础上提出了“智能合约”的概念。 ETH更像是一个底层操作系统。 就像IOS和Android一样,它提供了丰富的API接口。 学习ETH的相关地址如下:

    白皮书:https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-White-Paper
    官方网站:https://www.ethereum.org
    区块查询:https://etherscan.io/   https://etherchain.org/

1.2 ETC简介

有老朋友问ETC和ETH是什么关系。 事实上,他们是兄弟。 ETH 是一个项目,在 ETC 的一个错误导致某人失去资产后被拆分。 但有人认为数字货币是去中心化民主的,BUG的产生本身也是系统规则本身。 所以他们坚持在ETC社区。

2.2 私有链搭建 2.2.1 代码安装方法

对于初学者,我们推荐使用 Installing from PPA 来安装

我的安装目录:~/Library/Ethereum/geth

sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo add-apt-repository -y ppa:ethereum/ethereum-dev
sudo apt-get update
sudo apt-get install ethereum

2.2.2 机器环境

localhost:~ lei$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.13.2
BuildVersion:   17C88

2.2.3 GO环境安装

GO的环境配置这里就不介绍了,请自行查看。

版本要求是:版本1.7+我用的GO版本

localhost:~ lei$ go version
go version go1.9.3 darwin/amd64

2.3 私链数据准备 2.3.1 初始化文件genesis.json

{
 “config”: {“
    chainId”: 88888,
    “homesteadBlock”: 0,
    “eip155Block”: 0,
    “eip158Block”: 0
  },
  “coinbase”: “0x0000000000000000000000000000000000000000”,
  “difficulty”: “0x1”,
  “extraData”: “0x00”,
  “gasLimit”: “0x47e7c5”,
  “nonce”: “0x0000000000000042”,
  “mixhash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
  “parentHash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
  “timestamp”: “0x00”,
  “alloc”: {
   “430e986e0cca10a174baad96871ec9cb308c6d05”: {
      “balance”: “111111”
    }
  }
}

2.3.2 参数说明 参数说明

混合哈希

与 nonce 一起用于挖掘,从前一个块的一部分生成的哈希。 注意him和nonce的设置需要满足黄皮书4.3.4描述的条件。 区块头有效性,(44) of Ethereum。 .

随机数

nonce 是用于挖矿的 64 位随机数。 注意it和mixhash的设置需要满足黄皮书4.3.4描述的条件。 区块头有效性,(44) of Ethereum。

困难

设置当前区块的难度。 如果难度太高,CPU挖矿就会很困难。 在这里设置一个较小的难度

分配

用于为账户预先设置账号和Ether数量,因为私链挖矿相对容易,所以我们不需要预先设置一个账户有币,需要的时候可以自己创建。

币库

矿机账号,(随便填)

时间戳

设置创世块的时间戳

父哈希

上一个区块的哈希值,因为是创世区块比特币私有链搭建,所以这个值为0

数据

附加信息,随便填,可以填写你的个人信息

气体限制

该值设置了 GAS 总消耗量的限制,用于限制区块可以包含的交易信息的总和。 由于我们是私链,所以我们填最大值。

3 启动步骤 初始化数据

geth --datadir "./" init genesis.json
运行以后会出现两个目录
geth中保存的是区块链的相关数据
keystore中保存的是该链条中的用户信息

哈比特币区块链_比特币私有链搭建_比特币 山寨币 私链

图片.png

启动控制台

 geth --datadir "./" --nodiscover console 2>>geth.log

在这个环境中,还内置了一些操作以太坊的Javascript对象比特币私有链搭建,可以直接使用这些对象。 这些对象主要包括:

eth: 包含一些操作区块链相关的方法 net: 包含以下查看p2p网络状态的方法 admin: 包含一些管理节点相关的方法 miner: 包含一些启动和停止挖矿的方法 personal: 主要包含一些管理账户的方法 txpool : 包含了一些查看交易内存池的方法 web3: 包含了上面的对象,也包含了一些单位换算的方法