搭建Geth本地私有链网络

 

一、准备工作:

1、从官网下载以太坊go客户端

https://github.com/ethereum/go-ethereum/releases/

2、从官网下载以太坊钱包

https://github.com/ethereum/mist/releases/

3、创建geth初始化文件hdgenesis.json

内容如下:

{

    "nonce":"0x0000000000000042",

    "mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",

    "difficulty": "0x4000",

    "alloc": {},

    "coinbase":"0x0000000000000000000000000000000000000000",

    "timestamp": "0x00",

    "parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",

    "extraData": "PICC GenesisBlock",

    "gasLimit":"0xffffffff"

}

参数

描述

mixhash

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

nonce

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

difficulty

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

alloc

用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号,需要的时候自己创建即可以。

coinbase

矿工的账号,随便填

timestamp

设置创世块的时间戳

parentHash

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

extraData

附加信息,随便填,可以填你的个性信息

gasLimit

该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大。

二、第一个节点环境搭建

1、解压geth客户端到安装目录,如d:\geth

2、将文件hdgenesis.json拷贝到geth安装目录下,然后创建数据存放地址并初始化创世块

geth  --datadir "%cd%\chain" init hdgenesis.json

3、启动geth console

geth --identity "HDetherum" --rpc --rpccorsdomain "*" --datadir "%cd%\chain" --port "30303"  --rpcapi "db,eth,net,web3" --networkid 95520 -nodiscover --verbosity=5 console 2>>hdchain.log

参数

描述

identity

区块链的标示,随便填写,用于标示目前网络的名字

init

指定创世块文件的位置,并创建初始块

datadir

设置当前区块链网络数据存放的位置

port

网络监听端口

rpc

启动rpc通信,可以进行智能合约的部署和调试

rpcapi

设置允许连接的rpc的客户端,一般为db,eth,net,web3

networkid

设置当前区块链的网络ID,用于区分不同的网络,是一个数字

console

启动命令行模式,可以在Geth中执行命令

nodiscover

禁止被网络中其它节点发现,需要手动添加该节点到网络

verbosity

打印详细的日志信息

4、创建主账户

geth console启动后,运行如下命令创建一个主账户(没有账户不允许挖矿),根据提示设置交易密码,创建成功后就可以使用console进行相关的单节点命令操作。

personal.newAccount()

 

5、以太坊钱包

将以太坊钱包解压到指定安装目录,如d:\wallet,然后运行Ethereum-Wallet.exe 启动图形化的以太坊钱包,钱包默认连接本地的geth客户端,所以这时会显示的是私有网络(private-net),点击Launch application启动钱包应用,进入钱包主界面即可看到账户信息,同时可以进行交易,创建智能合约等操作。

刚开始钱包是空的,没有任何以太,我们通过在控制台运行miner.start()命令开始挖矿赚钱,过一会就会发现钱包开始不断鼓起来了,超过500后运行miner.stop()命令停止挖矿。

 

点击ADD ACCOUNT创建一个新的账户ACCOUNT2.

 

有钱后可以开始花了,点击SEND进入转账交易界面,转100以太给新创建的账户ACCOUNT2,根据提示输入密码提交交易,然后返回主界面,这时发现主账户和ACCOUNT2的余额都没有发生变化,因为交易需要挖矿创建区块来确认,这时没有挖矿没确认,所以账户余额没有变化,通过运行miner.start(),再过一会就会发现两个账户的余额都根据预期发生了变化,为了减少资源消耗,交易确认后需要运行miner.stop()停止挖矿。

 

点击CONTRACTS进入智能合约操作界面,点击DEPLOY NEW CONTRACT发布一个新的智能合约,如官网最简单的示例,get/set一个数值,然后点击DEPLOY进行发布,发布之后即可执行该智能合约,当然执行智能合约也是需要挖矿确认才能看到结果,同时需要消耗一定数量以太,具体数量界面上都有显示。

 

contract SimpleStorage {

    uint storedData;

    function set(uint x) {

        storedData = x;

    }

    function get() constant returns (uintretVal) {

        return storedData;

    }

}

三、添加网络新节点:

使用VirtualBox创建以太windows 7虚拟机,然后重复第一个节点的创建步骤在虚拟机上部署geth和以太坊钱包,同样需要初始化文件hdgenesis.json(同一个文件拷贝一份),并运行初始化命令,然后再运行启动命令,启动之后运行admin.nodeInfo.enode命令获取新节点的enode信息,然后在第一个节点上运行 admin.addPeer(enode URL)来添加新节点,注意将enode URL中[::]替换为新节点的IP地址,添加成功后运行admin.peers命令即可查看对等节点信息。

至此,一套基于geth的本地简单私有网络创建完成,可以在这套环境上进行简单的智能合约创建和测试。

转载于:https://my.oschina.net/stevex/blog/746669

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值