火狐浏览器添加MetaMask钱包
- 因为对其配置了代理工具,所以直接使用谷歌引擎搜索MetaMask钱包即可
第一次使用,立即开始设置
点击我同意,进行密码的创建
牢记助记词,助记词及其关键,将其存储在安全的地方
区块链-开发 Metamask 连接私有节点,且导入节点账号
- 第一步,Metamask设置节点连接。
- (前提:需要自己手动搭建以太坊私有节点,我用的是geth,且搭建在ubtuntu上,关于ubtuntu搭建geth,请参考我的其余文章)
- 点击设置
开启相关设置选项
进入Ubuntu系统 创建账号信息和进行挖矿操作
- 连接到Geth节点后,接下来需要设置coinbase或etherbase账户。创建账户可以使用personal对象的newAccout方法,并设置密码(密码不可见)。
- coinbase()是指矿工地址,也就是默认eth.accounts[0]的位置,所有挖到的币都被存储到这个账户中
- 命令如下 personal.newAccount()
- 如果需要更改原有的coinbase账户地址,可以通过address.miner对象的setEtherBase函数进行操作。这个操作将使用新的账户替换原有的coinbase账户。
- 命令如下 miner.setEtherbase("0x19b4029dad20824db6dc201437f9cac2a7e1fc5c")
- 执行查询命令,可看到设置的地址已经生效了。此时挖矿可以启动了。由于只有一个矿工,将获得全部的挖矿奖励,coinbase账户的以太币会逐步增加。
- 查看当前的用户 eth.accounts
开始挖矿
- start中的参数代表了用于挖矿的线程数量。
- 命令如下 miner.start(8)
- 这时切换到之前创建私有链的命令行窗口中,可以看到挖矿过程的输出结果。这里是指我们当时创建的第一个窗口。如果是第一次挖矿,需要生成DAG相关文件,这个需要花费一定的时间。第二次以后就不需要了。
- 当使用输入日志的方式时,可以输入命令tail -f geth.log 来跟踪挖矿进度
- 查看正在挖矿的账户0已经获得的以太币和未挖矿的账户1的以太币余额。查看钱包的余额命令如下,将0改为1即可查看第二个账户的余额。
- 查看钱包的余额 eth.getBalance(eth.accounts[0])
- 挖到一个区块会奖励5个以太币,挖矿所得的奖励会进入矿工的账户,这个账户叫做coinbase,默认情况下coinbase是本地账户中的第一个账户。
- getBalance()返回值的单位是wei,wei是以太币的最小单位,1个以太币=10的18次方个wei。要查看有多少个以太币,可以用web3.fromWei()将返回值换算成以太币
- 停止挖矿,命令如下 miner.stop()
进行交易
- 从账户0到账户1转账,需要先解锁账户才能转账,否则会报错。
- 解锁命令如下 personal.unlockAccount(eth.accounts[0])
- 发起交易,由账户0转账200以太币到账户1,命令如下
personal.unlockAccount(eth.accounts[0])
amount = web3.toWei(200,'ether')
eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:amount})
- 此时交易已经提交到区块链,返回了交易的hash,但还未被处理,本地交易池中有一个待确认的交易,可以使用 eth.getBlock(“pending”, true).transactions 查看当前待确认交易。
-
要使交易被处理,必须要挖矿。这里我们启动挖矿,然后等待挖到一个区块之后就停止挖矿。命令如下:
miner.start(1);admin.sleepBlocks(1);miner.stop();
web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')
- 此时,交易已经生效,账户1应该已经收到了200个以太币了。
- 解锁账户的密码均是 123456
交互式执行环境
- 这是一个交互式的 JavaScript 执行环境,在这里面可以执行 JavaScript 代码,其中 > 是命令提示符。在这个环境里也内置了一些用来操作以太坊的 JavaScript 对象,可以直接使用这些对象。这些对象主要包括:
- eth:包含一些跟操作区块链相关的方法;
- net:包含一些查看p2p网络状态的方法;
- admin:包含一些与管理节点相关的方法;
- miner:包含启动和停止挖矿的一些方法;
- personal:主要包含一些管理账户的方法;
- txpool:包含一些查看交易内存池的方法;
- web3:包含了以上对象,还包含一些单位换算的方法。
常用命令:
- personal.newAccount():创建账户;
- personal.unlockAccount():解锁账户;
- eth.accounts:枚举系统中的账户;
- eth.getBalance():查看账户余额,返回值的单位是 Wei(Wei 是以太坊中最小货币面额单位,类似比特币中的聪,1 ether = 10^18 Wei);
- eth.blockNumber:列出区块总数;
- eth.getTransaction():获取交易;
- eth.getBlock():获取区块;
- miner.start():开始挖矿;
- eth.mining 查看是否正在挖矿,如果是True表明正在执行
- miner.stop():停止挖矿;
- web3.fromWei():Wei 换算成以太币;
- web3.toWei():以太币换算成 Wei;
- txpool.status:交易池中的状态;
- admin.addPeer():连接到其他节点;
- eth.getBlock(区块的高度) 命令查看区块的信息
- eth.getTransaction("交易生成的hash序列") 查看交易的详细信息
- eth.blockNumber 查看区块数量
- eth.getBlock("pending", true).transactions #查看本地交易池,待提交的交易
参考链接
- 基于Mac环境搭建以太坊私有区块链进行挖矿模拟_CHYabc123456hh的博客-CSDN博客_mac挖矿eth
- 以太坊私有链 使用dev模式_CHYabc123456hh的博客-CSDN博客
- 区块链以太坊学习笔记_xpj55975的博客-CSDN博客
- 以太坊:将metamask钱包账户私钥导入到本地(Ubuntu)的私链中_fengjinghong的博客-CSDN博客_metamask导出私钥