linux 以太坊环境搭建,Linux(Ubuntu)上搭建基于以太坊go-ethereum的私有链环境

自己学习这个过程也很艰难,记录下自己犯的错,对自己和他人都有帮助。

基于Windows搭建以太坊私有链可以参考这篇文章:搭建基于以太坊的Windows私有链

这篇是在Linux上操作的:

首先参考https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntu,命令如下:

sudo apt-get install software-properties-common

sudo add-apt-repository -y ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install ethereum

我遇到了这个问题:

26e932e41f384baaf9d04133af5dc53c.png

解决方法如下:

74a8e5450f8407827e3af2517ec3061c.png

解决了,我们继续往下走:

sudo apt-get install -y build-essential

这是我现在的路径:/home/wdg

289c2861fbaa0b4461ba7931a0d02fc3.png

创建一个eth的根目录

mkdir eth

进入目录下,新建创世块json文件piccgenesis.json

7a288dab1a416a8709248fae76cd802c.png

内容如下:

{

"nonce":"0x0000000000000042",

"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",

"difficulty": "0x4000",

"alloc": {},

"coinbase":"0x0000000000000000000000000000000000000000",

"timestamp": "0x00",

"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",

"extraData": "0x00000000",

"gasLimit":"0xffffffff",

"config":{

"chainId": 666,

"homesteadBlock": 0,

"eip155Block": 0,

"eip158Block": 0

}

}

然后给文件增加执行权限

b88ebb9beb7ded1046584be93c0addc2.png

初始化,写入创世块

f3e763dbf278027a3db0e5a0a5bf51cf.png

解释一下:“./",我这是让它自己在当前目录下存放区块链数据,也可以像这个样子,新建一个目录来存放数据,like this:

536fe143ff0bc57c805d5717c464995e.png,我这里没用创建目录

创建私有链:

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

看到Welcome to the Geth JavaScript console!的提示,说明已经启动成功

22c3235b78a2919cd92599a86b747290.png

创建一个新账号

personal.newAccount("123456")

可以查看现有账号

eth.accounts

36f7cc97add458ba7b91945ff3cda826.png

退出私有链,就是exit

bb1c0b512f81eb2f45e38d01a9447f6e.png

看一下当前目录下都有啥:

9c288380c5c1e21461412d30955874f5.png

我们可以再进入私有链

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

看一下账户余额和当前的区块号

eth.getBalance(eth.accounts[0])

eth.blockNumber

528ba9feef448771481066075de320da.png

当前余额都是0

我们可以再新增加第二个账号:

abfdc46ec85322c4574ab20a8fb60149.png

然后开始挖矿

首先:

挖到一个区块会奖励以太币,挖矿所得的奖励会进入矿工的账户,这个账户叫做coinbase,默认情况下coinbase是本地账户中的第一个账户。要想使挖矿奖励进入其他账户,通过miner.setEtherbase()将其他账户设置成coinbase。所以将coinbase改一下:

miner.setEtherbase(eth.accounts[0])

3276d30a305c55593421e9f4f63c5c7b.png

开始挖矿

0f40b7ede934d9784fa8e53f81205264.png

其中start的参数表示挖矿使用的线程数。第一次启动挖矿会先生成挖矿所需的DAG文件,这个过程有点慢,等进度达到100%后,就会开始挖矿,此时屏幕会被挖矿信息刷屏。

miner.start()

b514ba69125a5086d66ca55e8a822d4a.png

要等到percentage=100。

挖矿过程大致是这样子的,其中有successfully sealed new block,说明有new block出现。

f8e720ec16cd793a69d060952179d364.png

如果想停止挖矿,并且进度已经达到100%之后,可以输入

miner.stop()

c017fdb7a92c6610400dbf6bfcca2078.png

现在区块号增加到了112。

btw:我这里miner.stop()=null,不是true,我也不知道为什么。。。有知道的请留言告知,谢谢!

看一下余额

bcac99931684bae61792eaa8c03d0dcb.png

getBalance()返回值的单位是wei,wei是以太币的最小单位,1个以太币=

cdc31d4d60ed951f6cd8c3e1271facef.gif个wei。要查看有多少个以太币,可以用web3.fromWei()将返回值换算成以太币:

51cf6d314e5bb4fc0aa3c34b3b4eefdf.png

你可以查看特定block的详细信息

eth.getBlock(0)

关于这些字段的意思,可以看这篇博客以太坊区块的数据结构解析

c4690836c5bcf81b5b444dca067dccc7.png

reference:

https://blog..net/u012107512/article/details/79322645

https://blog..net/wo541075754/article/details/53064877

https://www.jianshu.com/p/8a2bb280a712

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装Ubuntu系统 首先需要在服务器上安装Ubuntu系统(建议使用16.04及以上版本)。可以使用云服务器或者本地安装。 2. 安装Geth Geth是以太坊的官方客户端,可以用于搭建私有链和联盟链。可以使用以下命令安装: sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install -y ethereum 安装完成后,可以使用以下命令查看版本号: geth version 3. 创建创世块 首先需要创建创世块,创世块是区块链的第一个区块,包含了一些初始化的信息,如初始账户、初始余额、挖矿难度等。可以使用以下命令创建创世块: geth --datadir /path/to/chaindata init /path/to/genesis.json 其中,/path/to/chaindata为存储区块链数据的路径,/path/to/genesis.json为创世块的配置文件。 4. 启动节点 使用以下命令启动节点: geth --datadir /path/to/chaindata --networkid 1234 --nodiscover --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --rpcapi "eth,web3,personal,net" console 其中,/path/to/chaindata为存储区块链数据的路径,--networkid指定联盟链的ID,--nodiscover禁用节点发现功能,--rpc启用RPC服务,--rpcaddr指定RPC服务监听的IP地址,--rpcport指定RPC服务监听的端口号,--rpcapi指定可用的RPC接口,console表示启动控制台。 5. 创建账户 在控制台中使用以下命令创建账户: personal.newAccount("password") 其中,password为账户的密码。 6. 启动挖矿 使用以下命令启动挖矿: miner.start() 7. 部署智能合约 使用Solidity编写智能合约代码,并使用Remix或Truffle等工具进行编译和部署。 以上就是在Ubuntu系统上搭建以太坊联盟链的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值