区块链学习(二)搭建基于go-ethereum的以太坊的私有链环境

资讯 2024-07-12 阅读:50 评论:0
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

上一篇文章 详细的说明了如何在 Ubuntu 环境下编译 go-ethereum ,本节内容为 搭建基于 go-ethereum 的以太坊私有链环境

the previous article details how to compile go-etherium & #xff0c in Ubuntu environments; this section describes the construction of a go-etheium-based private chain environment based on go-etheium

原文链接:ETH开发(二)搭建基于go-ethereum的以太坊的私有链环境

Original link & #xff1a; ETH Development & #xff08; IIxff09; built a go-etheium-based private chain environment

重新加载 profile 文件,加载环境变量到内存,否则会提示 geth 命令未找到

Reload profile & #xff0c; load environment variables to RAM & #xff0c; otherwise the geth command is not found

 

测试

Test

 
  • 更正系统时间,便于后续日志查看

点击右上角时间–时间设置,然后点击地图设置为 Shanghai

Click upper right corner time - time set & #xff0c; then click map set to Shanghai

在这里插入图片描述

 insert the picture here

同步主网做为节点,需要满足以下条件:

Synchronize the main network as node xff0c; the following conditions need to be met xff1a;

  1. 空余磁盘 500G 以上。目前,全球交易数据大约在350G 以上
  2. 需要足够的带宽
 
 

学习使用 nohup

nohup 命令:nohup

Nohup Command & #xff1a;

nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。

The nohup command runs the command & #xff0c specified by the Command parameter and any relevant Arg parameter; ignores all hangings & #xff08; SIGHUP) signals. Use nohup command to run a program on the backstage after write-off.

  • 要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
  • nohup 是 no hang up 的缩写,就是不挂断的意思。

:nohup 后的命令会执行

Commands after & #xff1a;nohup will be executed

什么情况下使用 nohup 命令?

When use nohup commandxff1f;

如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用 nohup 命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。在缺省情况下该作业的所有输出都被重定向到一个名为 nohup.out 的文件中。

If you are running a process xff0c; and you do not think that the process will end xff0c when you exit the account; then you can use the nohup command. This command can continue the corresponding process after you exit the account/ close the terminal. In default, all the output of the operation is redirected to a file named nohup.out.

 

命令详解

Detailed description of the command

nohup geth --datadir="/data/gethdata" --rpc --rpcaddr=0.0.0.0 --rpcport=8545 --cache=512 --maxpeers 9999 --rpcapi=“web3,eth,net,personal,db,admin” --rpccorsdomain="*" > https://blog.csdn.net/chaoge_dgqb/article/details/geth.log &2>1

  • 使用 nohup 监听 geth ,配置以下参数后,将其作业的所有输出重定向到当前目录下的 geth.log 文件, 表示将错误重定向到标准输出上
参数解释配置
–datadir数据库和秘钥存储库/data/gethdata
–rpc启用 HTTP-RPC 服务
–rpcaddrRPC 监听地址0.0.0.0(任何 IP 都可以)
–rpcportRPC 监听接口8545(自定义)
–cache内部缓存512
–maxpeers最大网络对等点数量9999
–rpcapiRPC 接口APIweb3,eth,net,personal,db,admin
rpccorsdomain接受的跨源请求域名

查看正在运行的程序:

View running programsxff1a;

 

在这里插入图片描述
可以看到 geth 已经在运行了,查看一下运行日志

Add a picture description herebr/> can see that geth is running xff0c; check the running log

 

接着,通过加载 .ipc 文件的办法启动 geth 客户端,可以开始挖矿

& #xff0c; start geth client & #xff0c by loading.ipc files; can start mining

 

attach: 启动交互式 JavaScript 环境(连接到节点)

Attach: Start interactive JavaScript environment (connect to node)

显示如下,表示启动了 ETH 节点的模块

Displays the following #xff0c; represents modules that have started the ETH node

Welcome to the Geth JavaScript console!
instance: Geth/v1.9.21-unstable-d54f2f2e-20200908/linux-amd64/go1.14.4 at block: 0 (Wed Dec 31 1969 16:00:00 GMT-0800 (PST))
datadir: /data/gethdata modules: admin:1.0 debug:1.0 eth:1.0 ethash:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

退出 geth 环境

Quit geth environment

 

关闭 geth

Close geth

 
 
 

启动一个区块链网络,需要创建创世区块,然后建立区块节点,才能启动区块链网络,同一个网络中,创世区块必须一样,否则无法连通。

Initiation of a network of blocks & #xff0c; creation of creation blocks & #xff0c; then creation of block nodes & #xff0c; activation of block chain networks & #xff0c; in the same network & #xff0c; creation blocks must be the same xff0c; otherwise they cannot be connected.

  • 如果你的 gethdata 里已经有文件了,则需要删除并重新创建
 
  • 通过配置创世块来创建私有链:新建创世块 json 文件
 

输入以下内容:

Enter the following #xff1a;

 

参数解释,详细信息见:以太坊genesis.json配置文件中各参数解释

Parameter explanation xff0c; for details see xff1a;

参数描述配置
chainId主网,搭建私有链必须为非 18888
nonce64位随机数,用于挖矿0x42
timestamp创世块的时间戳0x0
extraData附加信息,随便填
gasLimit限制区块能包含的交易信息总和,私有链填最大0xffffffff
difficulty当前区块的难度0x1
alloc预置账号以及账号的以太币数量

初始化区块链

 

显示如下,说明创世区块成功创建
在这里插入图片描述

xff0c showing
 inserts a description here /></p> 
<h4><a id=编写启动脚本

 

该命令如下

The order is as follows:

nohup geth --rpc --rpccorsdomain “*” --datadir “https://blog.csdn.net/chaoge_dgqb/article/details/” --port 30304 --rpcapi “db,eth,net,web3,personal,web3” --networkid 8888 --rpcport 8545 --rpcaddr “0.0.0.0” --allow-insecure-unlock > https://blog.csdn.net/chaoge_dgqb/article/details/geth.log &2>1

参数解释配置
–networkid8888
–allow-insecure-unlock当与帐户相关的rpc被http公开时,允许不安全的帐户解锁
  • networkid 选项,主网配置为 1 ,其他3、4、5都是以太坊坊社区部署的测试网络,我们是建立自己的私链,定义为8888
  • allow-insecure-unlock 选项,方便我们解锁节点账户,如果是主网,不建议配置,否则,你存入节点账户的钱,会瞬间被黑客黑走

注意:此时 geth 已经在运行了

notes and #xff1a; now geth is already running. ]

进入

Enter

 

输入 会显示与以太坊网络交互的一些方法

Enter some of the methods that will show interaction with the Etherm network

 

看到 accounts: [] 说明,我们还没有创建账户,我们在节点上创建第一个账户

See accounts: [ ] Description & #xff0c; we have not created an account & #xff0c; we create the first account on node

创建账户

  • personal.newAccount(“密码”),这个密码,就是我们要操作第一个账户的时候使用的密码
 

0xfbe2d1668e3ebaa97ca1c117793344a040817343

再次输入 可以看到 accounts 变化了,所有的 accounts 以列表的形式存储,且 coinbase = accounts[0]

Enter again to see changes in accounts & #xff0c; all accounts store & #xff0c; coinbase & #61; accounts [0]

 

personal.newAccount() 方法在源码的 go-ethereum/console/bridge.go 中

Personal. newAcaccount() method in go-etherium/console/bridge.go

NewAccount 是对个人信息的包装。使用非回显密码提示符获取密码短语并执行原始 RPC 方法(保存在 jeth.newAccount 中)以实际执行 RPC调用的方法

NewAcaccount is the packaging of personal information. Use non-reflection password prompts to get password phrases and execute the original RPC method (saved in jeth. newAcaccount) to actually execute the RPC call method

通过查看源码,可以看到 personal 的各种方法

View source & #xff0c; see methods for personal


在这里插入图片描述

 insert the picture here

或者也可以输入 personal 来查看:

Or you can enter a personial to view & #xff1a;

 

显示如下

Show as follows:

 

挖矿

具体参考:ethereum入门-常用命令示例(包括创建用户、挖矿、交易等)

xff1a;

查看挖矿进账的用户,默认为本地账户中的第一个账户

View mine entry & #xff0c; default is the first account in a local account

 

设置挖矿的用户

Set the miner's user

 
  1. 开始挖矿
  • 启用 10 个线程开始挖矿
 

miner.start() 方法在 go-ethereum/miner/miner.go 中

Miner. start() method in go-otherium/miner/miner.go

在这里插入图片描述
或者通过输入 来查看方法,显示如下

 insert the picture herebr/> or enter to view the method xffc; see below

 
  1. 查看挖矿状态
 

true

  • 即使退出了 JavaScript Console,只要 geth 还在后台运行,就会一直在挖矿
  1. 停止挖矿
 
  1. 查看收益(以太坊币)
 

352000000000000000000

  1. 查看日志
 

以太坊币介绍

Ether 币最小单位是 Wei,1 以太币=1*10^18 Wei

The smallest units of Ether are Wei, 1 in Tails #61; 1*10~18 Wei

1 ? e t h e r = 1 × 1 0 3 ? f i n n e y = 1 × 1 0 6 ? s z a b o = 1 × 1 0 9 ? g w e i = 1 × 1 0 12 ? m w e i = 1 × 1 0 15 ? k w e i = 1 × 1 0 18 ? W e i 1 \ ether = 1 imes10^3 \ finney = 1 imes10^6 \ szabo= 1 imes10^9 \ gwei= 1 imes10^{12} \ mwei = 1 imes10^{15} \ kwei= 1 imes10^{18} \ Wei 1?ether=1×103?finney=1×106?szabo=1×109?gwei=1×1012?mwei=1×1015?kwei=1×1018?Wei

  • ether 与 Wei 的转换
 

“1000000000000000000”

 

“1”

转账操作

先看看有几个账户

Let's see how many accounts there are.

 

[“0xfbe2d1668e3ebaa97ca1c117793344a040817343”, “0xffae391d253d6bad1534af32ad3d7a991a0b3987”]

创建需要转账的 2 个账户,密码分别为 123 与 456

Create 2 accounts to transfer & #xff0c; passwords 123 and 456 respectively

 

查看账户余额

View account balances

 

如果有多个账户,在 下新建一个 js 文件

If multiple accounts & #xff0c; create a new js file under

 

输入以下函数:

Enter the following function xff1a;

 

进入,然后装载该脚本

Enter & #xff0c; then load the script

 

使用定义的函数查看账户余额

View account balances using defined functions

 

eth.accounts[0]: 0xfbe2d1668e3ebaa97ca1c117793344a040817343 balance: 0 ether
eth.accounts[1]: 0xffae391d253d6bad1534af32ad3d7a991a0b3987 balance: 0 ether
eth.accounts[2]: 0x57ba41ee26cbbd823b7c544626e660e9220a3ea4 balance: 0 ether
eth.accounts[3]: 0xc5e74ba4b26e2cde7c8800fa4afa7ec4d0a426ad balance: 0 ether
Total balance: 0 ether

由于账户余额没有以太币,因此需要先挖矿
指定账户3 为 ,并启用 10 个线程挖矿

& #xff0c since the account balance is not xff0c;
is required to dig first to specify account 3 as & #xff0c; 10 lines are enabled to dig mine

 

查看账户余额(挖矿约 10 分钟)

View account balance xff08; dig about 10 minutes xff09;

 

eth.accounts[0]: 0xfbe2d1668e3ebaa97ca1c117793344a040817343 balance: 0 ether
eth.accounts[1]: 0xffae391d253d6bad1534af32ad3d7a991a0b3987 balance: 0 ether
eth.accounts[2]: 0x57ba41ee26cbbd823b7c544626e660e9220a3ea4 balance: 338 ether
eth.accounts[3]: 0xc5e74ba4b26e2cde7c8800fa4afa7ec4d0a426ad balance: 0 ether
Total balance: 338 ether

可以看到账户 3 有 338 个 以太坊币,现在可以开始转账了(交易)

The account 3 has 338 in #xff0c; the transfer can now be started xff08; the transaction xff09;

  • 定义转账、收账的用户以及转账金额
 
  • 解锁账户(需要密码 123)
 
  • 转账,并生成交易 Hash
 

“0xa55ab52b805bab27bbfd4edbd185a68d99e7172a3edbc37de7168fbf978535b7”

  • 查询一下是否转到另一个账户里
 
  • 根据交易 Hash 查询
 

转账过程如果有错误请看:Stack OverFlow

@xff1a;

下一篇文章:区块链学习(三)使用以太坊 Truffle 框架并搭建第一个 DApp

Next article xff1a;

美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址
文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明

分享:

扫一扫在手机阅读、分享本文

发表评论
平台列表
美化布局示例

欧易(OKX)

  全球官网 大陆官网

币安(Binance)

  官网

火币(HTX)

  官网

Gate.io

  官网

Bitget

  官网

deepcoin

  官网
热门文章
  • 从 IPFS社区Meetup谈谈2020年的IPFS的发展历程

    从 IPFS社区Meetup谈谈2020年的IPFS的发展历程
    8月3日, IPFS社区Meetup 如期举办,这一次的社区Meetup由交流与演讲和闪电演示两部分组成,其实该会议主要带领我们回顾了IPFS在2020年的发展历程(包括项目进展、IPFS生态发展等),展示了IPFS及其生态。2020年对于IPFS而言是不平凡的一年,其唯一激励层Filecoin的主网即将上线,这让IPFS和Filecoin在全球范围内得到了前所未有的关注,也推动了IPFS的高速发展。接下来,我们一起走进IPFS在20...
  • 超10万人爆仓,比特币跳水,发生了什么

    超10万人爆仓,比特币跳水,发生了什么
    现货比特币ETF上市第二日,数字货币再迎来抛售。比特币一度跌破42000美元/枚,截止1月13日内跌幅超7%,报42562.1美元/枚。The current Bitcoin ETF is on the second day of the market and the digital currency is sold again. Bitcoin fell by over 7% to $4562.1 on 13 January.现货比特币ETF普遍跌6%左右。其中,DEFI跌...
  • 兴业基金调研远光软件、东芯股份

    兴业基金调研远光软件、东芯股份
    根据6月6日公布的公开市场信息和机构研究,世界安全基金会最近对下列两家上市公司进行了一项研究: 1) 光电软件(工程师基金参与公司专项研究) 其中一个亮点是该公司深入参与建造南方网中心和技术平台,导致南网市场在 " 九天 " 平台产品方面取得重大突破;该公司的Won-宇宙大厅已上线,而且,除了Won-宇宙之外,远洋宇宙的应用现已扩大到Won-宇宙发射、Won-宇宙-教师和政党建设-宇宙;该公司的Far-O-Cloud平台已经实现了完全成熟的国家生产,也可以在全国云中运作。...
  • 0.00003374个比特币等于多少人民币/美金

    0.00003374个比特币等于多少人民币/美金
    0.00003374比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00003374比特币等于2.2826 1222美元/16.5261124728人民币。比特币(BTC)美元(USDT)人民币(CNY)0.00003374克洛克-0/22216.5261124728比特币对人民币的最新汇率为:489807.72 CNY(1比特币=489807.72人民币)(1美元=7.24人民币)(0.00003374USDT=0.0002442776 CNY)。汇率更新于2024...
  • $DOG暴涨400%,加密货币或许正在重新定义和计量“价值”

    $DOG暴涨400%,加密货币或许正在重新定义和计量“价值”
    近/克洛克-0/5,Meme币狗?走吗?去哪?那个?MOON($ DOG)连续上涨超过230%,突破前期高点,达到0.0062美元。在同一时期,比特币生态的许多主流L2协议代币下跌了50%以上。这些就是我们所说的“价值币”。虽然大起大落不能说明什么,但从过去的牛市来看,领头羊MemeCoin表现非凡。在上一轮牛市中,$DOGE的价格上涨了超过150倍,其市值接近900亿美元。还有其他MemeCoin,如$Shib、$People、$ELON、$AKITA等。2 vkwmkpm...
标签列表