IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 以太坊搭建私链(4)——新建账户、查看账户信息、转账、挖矿、添加节点等操作 -> 正文阅读

[区块链]以太坊搭建私链(4)——新建账户、查看账户信息、转账、挖矿、添加节点等操作

节点

//启动节点
geth --datadir ./data/00 --networkid 10086 --port 30303 --nodiscover --rpc --rpcaddr 192.168.119.129 --rpcport 8545 -allow-insecure-unlock --rpc.allow-unprotected-txs --rpccorsdomain "*" --rpcapi "db,eth,net,web3,personal,miner" console
//查看节点信息
admin

账户

//添加账户
personal.newAccount("你的密码")
//查看账户余额(下式表示该节点中的第一个账户)
eth.getBalance(eth.accounts[0])
//通过账户地址查看账户余额
eth.getBalance("账户地址")
//将查询余额返回的单位从wei转化为ether(以太币)
web3.fromWei(eth.getBalance(eth.accounts[0]), "ether")
//列举节点的账户,返回值为地址
eth.accounts
//解锁账户(转账、部署智能合约前要解锁账户,下式表示解锁该节点中的第一个账户)
//解锁成功后会返回true
personal.unlockAccount(eth.accounts[0],"你的密码")
//通过账户地址解锁账户
personal.unlockAccount("账户地址","你的密码")
//转账
amount = web3.toWei(2,'ether')//设定金额
eth.sendTransaction({from:eth.accounts[0],to:"目标账户地址",value:amount})//发起转账

挖矿

//设定节点中的第一个账户为挖矿账户
miner.setEtherbase(eth.accounts[0])
//开启一个线程进行挖矿
miner.start(1)
//停止挖矿
miner.stop()
//当挖到三个区块后停止挖矿
miner.start(1);admin.sleepBlocks(3);miner.stop();
//列出该区块链中的的区块总数
eth.blockNumber

在网络中添加节点

添加本地节点

我们需要新建一个节点。首先这一新建节点同样需要初始化创世区块,同样地,cd到创世区块的json文件所在的文件夹中,打开一个新的终端输入如下命令:

geth --datadir ./data/01 init ./genesis.json

从而将geth和keystore文件存储在在文件夹/data/01中。

让我们回想最开始的一步启动节点:

//启动节点
geth --datadir ./data/00 --networkid 10086 --port 30303 --nodiscover --rpc --rpcaddr 192.168.119.129 --rpcport 8545 -allow-insecure-unlock --rpc.allow-unprotected-txs --rpccorsdomain "*" --rpcapi "db,eth,net,web3,personal,miner" console

可以看到端口30303和端口8545都在被之前的节点所占用,所以我们选择另外的端口30304和8546:

geth --datadir ./data/01 --networkid 10086 --port 30304 --nodiscover --rpc --rpcaddr 192.168.119.129 --rpcport 8546 -allow-insecure-unlock --rpc.allow-unprotected-txs --rpccorsdomain "*" --rpcapi "db,eth,net,web3,personal,miner" console

我们将原先的节点称为节点A,新建的节点称为节点B。我们现在选择从节点A添加节点B至该网络。

首先,在节点B的终端中,输入:

//查看节点信息
admin

以我的节点为例,在返回值中找到如下字段:

    enode: "enode://d8fda135035b3f0705304c328489b644f26b8ec83480dbe25be7baada93953319d9e5acba79f4b88f3970857d439d9bc59f3e579b890f6f581db484987fd567a@127.0.0.1:30304?discport=0"

此时在节点A的终端中输入如下命令:

admin.addPeer("enode://d8fda135035b3f0705304c328489b644f26b8ec83480dbe25be7baada93953319d9e5acba79f4b88f3970857d439d9bc59f3e579b890f6f581db484987fd567a@127.0.0.1:30304?discport=0")

那么可以发现,我们addPeer中的内容是什么呢?没错,就是encode中的内容!

之后输入:

net.peerCount

来查看网络中节点的数目,如果net.peerCount返回值为1,那么就说明我们的节点添加成功了!如果节点A没有添加B进入网络的话,返回值只会是0。通过这样的方式,可以添加许多节点。

添加成功后,可以进行挖矿操作看一下节点是否能够同步,也可以试着从节点A中的账户转账给节点B中的账户。

添加另一台电脑的节点

方式与添加本地节点类似,将encode中的127.0.0.1修改成为节点B的ip地址即可。

在这里需要注意的是,如果添加的是另一台电脑虚拟机上的节点,因为你的虚拟机ip和主机ip地址是不一样的,那么便不能仅仅地修改ip地址。我们则需要将虚拟机的端口映射出去。具体操作可以参考虚拟机端口映射。当映射出去之后,将encode中的127.0.0.1:30304修改为上述链接第三部中的主机地址:主机端口形式即可。

需要注意所映射出去的地址应该为启动节点时的rpcaddr地址。

另外需要注意一点的是,如果在另一台电脑上新建节点的话,就不必考虑端口占用问题,也就是30303和8545这两个端口可以使用。

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:34:51  更:2021-09-04 17:36:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 19:18:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码