您当前的位置:首页>  资讯动态 >  软件教程 >

以太坊是私有链(以太坊私有链节点自动发现)

小编:okex欧易官网app下载5.4.2 .  来源:互联网  |  时间:2023-01-26 15:18:00

本篇文章给大家谈谈以太坊是私有链,以及以太坊私有链节点自动发现对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、以太坊多节点私有链部署2、Docker 搭建以太坊私有链3、以太坊开发(2):在以太坊私有链上的基本操作

以太坊多节点私有链部署

假设两台电脑A和B

要求:

1、两台电脑要在一个网络中,能ping通

2、两个节点使用相同的创世区块文件

3、禁用ipc;同时使用参数--nodiscover

4、networkid要相同,端口号可以不同

1.4 搭建私有链

1.4.1 创建目录和genesis.json文件

创建私有链根目录./testnet

创建数据存储目录./testnet/data0

创建创世区块配置文件./testnet/genesis.json

1.4.2 初始化操作

cd ./eth_test

geth --datadir data0 init genesis.json

1.4.3 启动私有节点

1.4.4 创建账号

personal.newAccount()

1.4.5 查看账号

eth.accounts

1.4.6 查看账号余额

eth.getBalance(eth.accounts[0])

1.4.7 启动停止挖矿

启动挖矿:

miner.start(1)

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

停止挖矿,在 console 中输入:

miner.stop()

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

1.4.8 转账

目前,账户 0 已经挖到了 3 个块的奖励,账户 1 的余额还是0:

我们要从账户 0 向账户 1 转账,所以要先解锁账户 0,才能发起交易:

发送交易,账户 0 - 账户 1:

需要输入密码 123456

此时如果没有挖矿,用 txpool.status 命令可以看到本地交易池中有一个待确认的交易,可以使用 eth.getBlock("pending", true).transactions 查看当前待确认交易。

使用 miner.start() 命令开始挖矿:

miner.start(1);admin.sleepBlocks(1);miner.stop();

新区块挖出后,挖矿结束,查看账户 1 的余额,已经收到了账户 0 的以太币:

web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')

用同样的genesis.json初始化操作

cd ./eth_test

geth --datadir data1 init genesis.json

启动私有节点一,修改 rpcport 和port

可以通过 admin.addPeer() 方法连接到其他节点,两个节点要要指定相同的 chainID。

假设有两个节点:节点一和节点二,chainID 都是 1024,通过下面的步骤就可以从节点二连接到节点一。

首先要知道节点一的 enode 信息,在节点一的 JavaScript console 中执行下面的命令查看 enode 信息:

admin.nodeInfo.enode

" enode://d465bcbd5c34da7f4b8e00cbf9dd18e7e2c38fbd6642b7435f340c7d5168947ff2b822146e1dc1b07e02f7c15d5ca09249a92f1d0caa34587c9b2743172259ee@[::]:30303 "

然后在节点二的 JavaScript console 中执行 admin.addPeer(),就可以连接到节点一:

addPeer() 的参数就是节点一的 enode 信息,注意要把 enode 中的 [::] 替换成节点一的 IP 地址。连接成功后,节点一就会开始同步节点二的区块,同步完成后,任意一个节点开始挖矿,另一个节点会自动同步区块,向任意一个节点发送交易,另一个节点也会收到该笔交易。

通过 admin.peers 可以查看连接到的其他节点信息,通过 net.peerCount 可以查看已连接到的节点数量。

除了上面的方法,也可以在启动节点的时候指定 --bootnodes 选项连接到其他节点。 bootnode 是一个轻量级的引导节点,方便联盟链的搭建 下一节讲 通过 bootnode 自动找到节点

参考:

以太坊是私有链(以太坊私有链节点自动发现)-第1张图片-欧意下载

Docker 搭建以太坊私有链

首先需要安装 Docker,Docker 的安装和使用可以参看阮一峰老师的 《Docker 入门教程》 。

Ethereum 官方是支持 docker 的,可以参看 官方文档 。

centOS

其中 -v /home/linshan/works/block-chain/ethereum:/root 是把我们当前的 ethereum 目录,挂到了docker 的 /root 下。

在 Windows 环境下使用 -v /home/linshan/works/block-chain/ethereum:/root 不能启动容器,原因不明,所以在 Windows 下先不要使用目录挂载。

各字段具体用途参看 官方文档 。

Windows

Windows 不必创建 start-ethereum.sh 文件, genesis.json 也可以在 Docker 容器启动后创建。

centOS

Windows

运行成功后执行

进入 docker 容器命令行

因为 Windows 没有挂载共享目录,所以 root 目录下没有 genesis.json 文件,我们要在这里手动创建 genesis.json 文件,内容要和 centOS 的一致。

data 用来存放区块数据

geth 的参数参看 以太坊客户端Geth命令用法-参数详解

启动私有节点后进入 geth 命令行执行:

输出的内容就是节点信息,我们在手动连接节点是会用到,注意要把“0.0.0.0“换成你自己的IP,然后将这个信息发送给其他节点。手动连接节点有两种方式:

当然不管使用哪种方法连接节点都要保证创世区块文件 genesis.json 一致,还有在启动时 networkid 也要一致。

至此以太坊私有链已搭建完毕。

geth命令

docker命令

以太坊开发(2):在以太坊私有链上的基本操作

在上一讲 如何使用geth搭建以太坊私有链 完成了私有链的搭建,下面介绍在私有链上的基本操作。

启动私有链后在命令行输入:

执行完之后可以查看到生成的账户地址为0xe6e4e20c95abc11dca8b3e9c292a34725bf89930

查询账户余额:

刚刚创建的私有链账户都是没有余额的,需要通过挖矿才会产生eth,下面介绍如何在私有链上挖矿。

在geth环境下执行:

这时候查看日志geth.log可以看到以太坊私有链有个启动的百分比,到100就正式启动了:

挖矿开始:

这时候有个疑问,挖矿挖到的eth到哪了,其实默认到了eth.account[0],就是第一个账户上:

如何修改挖矿所得的账户:

命令如下:

下面开始进行转账:

这时候出现报错,原因是转账的账户没有解锁,需要输入密码解锁转账的账户才能完成转账操作:

以太坊是私有链的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于以太坊私有链节点自动发现、以太坊是私有链的信息别忘了在本站进行查找喔。

欧易交易所app下载发布此文仅为传递信息,不代表欧易交易所app下载认同期限观点或证实其描述,如有侵犯您的隐私请联系我们。

应用推荐

更多

Copyright©2010 - https://www.lechabo.com. All Rights Reserved.欧易交易所app下载 | 版权所有:惠州市优百思科技有限公司
备案号:粤ICP备20010841号 | | 免责声明

本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请发邮件至:700668@qq.com