geth私有链的安装和使用

一。geth说明

Ethereum 就是以太坊,以太坊有各种语言的客户端,其中最为成熟的就是go语言和Ruby的客户端,其中go客户端称为go-Ethereum,简称geth

二。安装

geth有windows版本和linux版本,官方网站还是比较慢的,卡的根本下载不了,这里选择了国内的wIndows镜像

镜像地址:https://ethfans.org/wikis/Ethereum-Geth-Mirror

下载好windons的镜像geth-windows-amd64-1.8.3-329ac18e.exe后,然后开始安装,这玩意直接点点点,很快就好。

安装完成后就只有两个exe,然后你需要新建一个文件夹privatechain,随意起名,这文件夹里以后包含的就是私有链的数据。

由于最开始需要配置第一个区块,所以还需要再建一个genesis.json的创世块的文件,文件如下:

{
  "config": {
        "chainId": 10,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
  "alloc"      : {},
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x20000",
  "extraData"  : "",
  "gasLimit"   : "0x2fefd8",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}

这个是官方的例子,但是这里修改了一个config.chainId,官方给出的是0.这里修改了为10,不要和一些常用链有关哦。

参数解释:

coinbase    矿工的账号

difficulty    设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度

extraData   附加信息,随便填

gasLimit     该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和

nonce       就是一个64位随机数,用于挖矿,注意他和mixhash的设置需要满足以太坊的Yellow paper, 4.3.4. Block                     Header Validity, (44)章节所描述的条件。

mixhash    与nonce配合用于挖矿,由上一个区块的一部分生成的hash。注意他和nonce的设置需要满足以太坊的Yellow                    paper, 4.3.4. Block Header Validity, (44)章节所描述的条件。

parentHash 上一个区块的hash值,因为是创世块,所以这个值是0

timestamp   设置创世块的时间戳

alloc            用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号
 

接下来对privatechain进行初始化,cd到当前文件夹执行cmd命令:

geth --datadir "D:\eth\PrivateChain" init "D:\eth\genesis.json"

初始化完成,privatechain文件夹里新增加了内容,然后启动geth

geth --datadir "D:\eth\PrivateChain" --port 30303 --networkid 10 --nodiscover  console

这个已经启动成功了,可以看到我们接着进入到了geth控制台,可以进一步输入一些命令了。

三。一些基本操作

personal.listAccounts         会出现[],表示还没有账号

personal.newAccount("123") 输入密码创建账号

我们可以看到输入123,就创建得到了地址。但是同一个密码接着创建又得到了不同的地址。这是因为私钥及地址的创建跟密码实在是没有多大关系,只是施加了稍微一些不同的影响。

此时我们现在有两个地址了。

我们来查下第一个地址的余额

eth.getBalance(eth.accounts[0])

或者

eth.getBalance("0x2b2a162a9a8ca0ee8a3ac2650e71401ca839db25")

查询发现都是0

接下来

开始挖矿:miner.start();

停止挖矿miner.stop()

挖矿时挖来的钱默认的是放到了创建的第一个账号的地址,注意首次挖矿之前需要加载一些东西到100%,会比较慢。

停止成功后会返回 true

然后我们可以再次查询eth.getBalance(eth.accounts[0]),会发现第一个账户钱就很多了。

转账:

在转账之前需要暂时解锁转出账户,否则会报错(在真实生产中有多种方法可以进行转账,本次只演示这一个):

personal.unlockAccount(eth.accounts[0]),这个操作只能解锁300秒好像,300秒后还必须再次解锁。

紧接着我们账户1向账户2转账了1

eth.sendTransaction({from:eth.accounts[0] to:eth.accounts[1], value:1})

你敲了上行命令后再次查询余额时发现没有变,为什么呢?

这是因为转账这个操作在私有链里必须得挖矿才能实际上转入,所以开始挖矿去miner.start();

然后再次查询或者停止挖矿后查询就会发现已经转入成功了。有的同学可能发现还没有成功,不要急,接着挖,过会儿就转账了。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要连接Metamask到Geth私有链,你需要按照以下步骤进行操作: 1. 首先,在Metamask钱包中点击右上角的网络切换按钮,选择“Custom RPC”(自定义RPC)选项。 2. 在“Custom RPC”页面中,填写私有链的网络名称,可以根据需要自行设置。RPC URL的格式为http://服务器地址:http端口号,例如:http://81.72.166.130:8545。链ID即为私有链中定义的networkid。 3. 点击“Save”(保存)按钮,保存配置。 4. 确保你已经启动了Geth私有链。你可以使用以下命令启动私有链: ``` geth --datadir data --networkid 15 --http --http.addr 0.0.0.0 --http.port 8545 --http.corsdomain "*" --port 30305 --allow-insecure-unlock console 2>>geth.log ``` 5. 如果你使用的是云服务器,需要在服务器管理界面开启对应的端口,特别是http.port对应的端口,以便Metamask钱包能够连接到私有链节点。 6. 现在,你可以在Metamask钱包中选择你配置的私有链网络,并使用你在私有链上的账户进行操作了。 请注意,以上步骤中的具体配置和命令可能会根据你的私有链设置而有所不同。确保按照你的私有链的要求进行配置和启动。 #### 引用[.reference_title] - *1* *2* *3* [以太坊私链搭建(一)——环境配置和metamask连接](https://blog.csdn.net/llslinliansheng/article/details/123596009)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值