Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

时间:2021-12-14作者:klpeng分类:区块链技术浏览:10390评论:0

一、更换镜像源

如果你使用的镜像源是可用或者和我所用镜像一样的话就不用再更改,不过还是建议在后面加上我的镜像。

指令:sudo gedit /etc/apt/sources.list

打开镜像配置⽂件后,在你的镜像后面加上下面内容并保存退出

#deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stable maindeb http://mirrors.ustc.edu.cn/ubuntu/ focal main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal main universe restricted multiverse #Added by software-properties#默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse#预发布软件源,不建议启用#deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse

输⼊命令更新apt软件包 sudo apt-get update

二、环境搭建
1.安装aptitude
使用aptitude安装软件包可以方便解决一些依赖性等问题。
在下面的安装过程中如果遇到apt-get无法安装的情况建议使用aptitude代替apt-get安装。

sudo apt-get install aptitude

2.安装Go
参考链接中说明安装即可:
https://www.jianshu.com/p/f35f07ce7a22
安装完成截图:
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

3.搭建以太坊
命令:

sudo apt-get update
sudo apt-get install ethereum

使用如下命令查看以太坊版本:

geth version
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

4.安装Nodejs

sudo apt-get install -y nodejs
安装成功查看版本:nodejs -v

Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

5.安装Solidity

sudo apt-get install npm #报错的话使用sudo aptitude install npm
sudo snap install solc
solc --version

出现如下图所示的内容则说明安装成功:
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

6.安装Truffle
参考链接:

https://segmentfault.com/a/1190000013950908
https://liyuechun.com/162.html

sudo npm install -g truffle

安装过程比较长,需要等待

成功标志:truffle --version
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

三、以太坊开发
1.私链部署
ubuntu环境下的私链部署与win10环境下基本无异,同样是建立创世区块,初始化私链
参考win10搭建ETH私链这篇文章即可
https://blog.csdn.net/Tree_sea/article/details/121990419

也可参考这篇文章:https://blog.csdn.net/qq_39869387/article/details/115432897
注:上面这篇文章启动私链的命令有问题,新版的geth已经没有rpc相关指令所以要用http指令来代替

创世区块:
genesis.json

{
  "config": {"chainId": 8434,"homesteadBlock": 1,"eip150Block": 2,"eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000","eip155Block": 3,"eip158Block": 3,"byzantiumBlock": 4,"alien": {  "period": 2,      "epoch": 300,      "maxSignersCount": 5,      "minVoterBalance": 100000000000000000000,      "genesisTimestamp": 1536136198,      "signers": ["0x393faea80893ba357db03c03ee73ad3e31257469","0x30d342865deef24ac6b3ec2f3f8dba5109351571","0xd410f95ede1d2da66b1870ac671cc18b66a97778"  ]}
  },  "nonce": "0x0",  "timestamp": "0x5b8f92c2",  "extraData": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",  "gasLimit": "0x47b760",  "difficulty": "0x1",  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",  "coinbase": "0x0000000000000000000000000000000000000000",  "alloc": {
  },  "number": "0x0",  "gasUsed": "0x0",  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"}

初始化:

geth --datadir ./私链文件夹名 init genesis.json

启动指令:

geth --http --http.api db,eth,net,web3,personal --datadir ./私链文件夹名
–networkid 1997 console 2>> log2020526.log
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

2.连接第二个geth终端
路径切换到私链文件夹中

geth attach geth.ipc
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

3.挖矿和交易
建议连接可视化钱包如小狐狸来查看余额
新建两个账户
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

personal.newAccount(“1234”);
personal.newAccount(“12345”);

挖矿
挖矿所得的奖励会进入矿工的账户,这个账户叫做coinbase,默认情况下coinbase是本地账户中的第一个账户,如下图所示:
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

设置挖矿地址指令:

miner.setEtherbase(填地址或者地址数组)

下图为设置用户2地址为挖矿地址(数组从0开始)
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

输入指令开始挖矿miner.start(1)
停止挖矿指令miner.stop()
在我们私链的文件夹外面的日志文件可以查看到挖矿信息
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

停止挖矿后查看余额
eth.getBalance(地址)默认返回的单位:wei
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

帐户转账
我们打算从eth.accounts[1]向eth.accounts[0]转账,转账之前需要先解锁eth.accounts[1]:
解锁账户:

personal.unlockAccount(eth.accounts[1],“12345”,0)

参考文章https://blog.csdn.net/YM_1111/article/details/112753262
报错
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

原因是新版本geth,出于安全考虑,默认禁止了HTTP通道解锁账户。我们在启动私有链那个地方加部分代码:

–allow-insecure-unlock

退出原来的控制台指令exit(直接关闭原来挖出的区块会回滚,余额也会清零!)

整体指令:geth --http --http.api db,eth,net,web3,personal --datadir
./myblockchain --networkid 1997 console 2>> log2020526.log
–allow-insecure-unlock

重新解锁并转帐:
eth.sendTransaction({from:eth.accounts[1],to:eth.accounts[0],value:web3.toWei(1,‘ether’)})

Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

查看余额发现账号[0]的余额仍旧为0,这是因为我们虽然发起了交易,但并没有矿工挖矿打包交易。
查看等待打包的交易

txpool.status:查看交易池中等待被打包的交易
txpool.inspect.pending:查看已提交但还未被处理的交易,pending表示已提交但还未被处理的交易
eth.getBlock(“pending”, true).transactions:查看当前待确认交易

Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

打包(挖矿)
启动挖矿:

miner.start()

查看账号余额:

eth.getBalance(eth.accounts[0])

查看交易池:

txpool.status
Geth在ubuntu上配置和一些通用操作介绍及配置安装以太坊开发环境

推荐查阅文档及链接
https://geth.ethereum.org/docs/rpc/server 官方文档
http://cw.hubwiz.com/card/c/geth-rpc-api/ 中文API文档
https://ethereumdocch.readthedocs.io/zh/latest/account-management.html 中文文档
参考链接
https://blog.csdn.net/YM_1111/article/details/112753262
https://blog.csdn.net/qq_39869387/article/details/115432897
大佬的一个专栏(智能合约): https://blog.csdn.net/ym_1111/category_10740923.html
https://blog.csdn.net/ambtious_/article/details/105184779

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢