主页 > imtoken 观察钱包 > Ubuntu以太坊搭建私有链

Ubuntu以太坊搭建私有链

imtoken 观察钱包 2023-10-12 05:12:22

一、环境及软件版本:

1) VMware Workstation 12 专业版

2) Ubuntu 16.04 桌面

3)以太坊geth go语言客户端(版本:1.8.2-unstable)

4)go语言版本1.9.4(geth需要1.7或以上版本)

两个以太坊geth客户端安装:

1)安装git apt-get install git

2)安装go环境:

1.解压 tar -zxf go1.9.4.linux-amd64.tar.gz -C /usr/local

2.在/etc/profile文件中添加环境变量export PATH=$PATH:/usr/local/go/bin

3.重新加载源/etc/profile

2)混帐克隆

3) cd go-ethereum &&make geth //执行安装

三开始创建以太坊私有链

1)首先创建私有链目录和配置文件:

创世纪.json:

{ “配置”:

{“chainId”:10,“homesteadBlock”:0,“eip155Block”:0,“eip158Block”:0},

“币库”:“0x0000000000000000000000000000000000000000”,

“难度”:“0x20000”,

“额外数据”:“”,

“gasLimit”:“0x2fefd8”,

“随机数”:“0x0000000000000042”,

“混合哈希”:“0x0000000000000000000000000000000000000000000000000000000000000000”,

“parentHash”:“0x0000000000000000000000000000000000000000000000000000000000000000”,

“时间戳”:“0x00”,

“分配”:{},

}

参数说明:

参数名称 参数说明

mixhash与nonce一起用于挖矿,前一个块的一部分产生的hash。 注意him和nonce的设置需要满足黄皮书4.3.4描述的条件。 区块头有效性,以太坊 (44) 部分。

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

difficulty 设置当前区块的难度。 难度太高,CPU挖矿难度大。 这里设置一个较小的difficulty alloc来预设账号和账户中的以太币数量。 因为私链挖矿比较简单以太坊是私有链,我们不需要预置有币种的账户,需要的时候可以自己创建。

coinbase矿工账号,随便填

timestamp 设置创世块的时间戳

parentHash 前一个区块的哈希值,因为是创世区块,所以这个值为0

extraData附加信息,随便填,可以填个人信息

gasLimit 该值设置了对 GAS 总消耗量的限制,用于限制一个区块可以包含的交易信息总和。 因为我们是私链以太坊是私有链,所以我们填最大值。

2) geth init ./genesis.json --datadir "./chain" //创世区块初始化,chain目录是存放区块链网络数据的地方

初始化后,会在当前链目录下生成两个目录:

geth中存储的是区块链的相关数据

keystore 将用户信息保存在链中

3) 启用私有链:/eth/go-ethereum/build/bin/geth --datadir "./chain" --nodiscover console 2 >> eth_output.log

参数说明:datadir 区块数据存放位置 nodiscover 私链地址不会在网络控制台上看到 enable command line mode

以太坊是区块链吗_以太坊是私有链_比特币是公有链还是私有链

命令行

4)查看账号:(默认没有账号,图片是后面建的)

以太坊是区块链吗_以太坊是私有链_比特币是公有链还是私有链

浏览账户

5)创建账号:(图中括号内测试为密码,该方法返回结果为账号地址)

以太坊是区块链吗_以太坊是私有链_比特币是公有链还是私有链

创建账户

6)查看矿工账户,设置矿工账户(如果没有设置矿工账户,系统默认到eth.accounts中的第一个账户)

以太坊是区块链吗_以太坊是私有链_比特币是公有链还是私有链

设置矿工账户

7)挖矿查看区块数和账户币数

以太坊是区块链吗_以太坊是私有链_比特币是公有链还是私有链

矿业

以太坊是区块链吗_以太坊是私有链_比特币是公有链还是私有链

挖矿返回的结果

8) 交易:eth.sendTransaction({from:eth.coinbase, to:eth.accounts[1], value:web3.toWei(3,"ether")});

从矿工账户转3个以太币到第二个账户,返回结果是账户被锁,需要解锁。

ps:以太坊的一种保护机制,账户每隔一段时间会自动锁定。 此时,任何账户之间的以太币兑换都将被拒绝,除非账户被解锁。

以太坊是区块链吗_以太坊是私有链_比特币是公有链还是私有链

帐户被锁定

账号解锁:

personal.unlockAccount 解锁转账账户

重新使用传输命令。 转账需要矿工挖矿才能转账成功。 可以通过 txpool.status 来验证。 如果看到pending: 1、pending表示交易已经提交但是还没有处理;

最后一条命令表示转账成功,账户中有3个以太币。

以太坊是区块链吗_以太坊是私有链_比特币是公有链还是私有链

去下载地址

geth下载地址: