区块链 私有链_用以太坊建立私有区块链(第2部分)

区块链 私有链

在我以前的文章中,我建立了一个由两个节点组成的网络,这些节点运行一个私有区块链 。 在这篇文章中,我使用它来创建帐户,挖掘一些以太坊并使用Mac上的Mist浏览器浏览区块链。
首先,我确保节点已启动并正在运行。 然后,我转到在node1上运行的'geth'控制台
当我在控制台中输入命令web3.eth.accounts以显示该节点上的所有可用帐户时,结果将是一个空数组: [] 。 要创建一个我在控制台中运行的帐户: personal.newAccount("Write here a good, randomly generated, passphrase!")

返回的字符串是新创建的帐户的地址。 现在运行web3.eth.accounts我会看到创建的帐户的地址。 我在另一个节点上执行相同的操作,因此我有两个帐户,每个节点一个。
下一步是通过执行一些挖掘来创建一些以太。 在“主”以太坊网络中,要花一些时间(取决于工作可用的计算能力),但是在这种情况下,要花一些时间(当然不能使用)在“真实”的以太坊区块链中。
在node1上,我在geth控制台中运行以下命令 miner.setEtherbase(address) 设置将采矿奖励发送到的地址。 然后我开始与矿工的过程 miner.start() 。 生成的输出如下所示:

> web3.eth.accounts
["0x30aa499b853d422b7e38bdb885fd9dfa2d964715"]
> miner.setEtherbase("0x30aa499b853d422b7e38bdb885fd9dfa2d964715")
true
> miner.start(2)
INFO [10-28|13:38:16] Updated mining threads                   threads=2
INFO [10-28|13:38:16] Transaction pool price threshold updated price=18000000000
null
> INFO [10-28|13:38:16] Starting mining operation 
INFO [10-28|13:38:16] Commit new mining work                   number=103 txs=0 uncles=0 elapsed=559.051µs
INFO [10-28|13:38:20] Generating DAG in progress               epoch=0 percentage=0 elapsed=3.828s
INFO [10-28|13:38:24] Generating DAG in progress               epoch=0 percentage=1 elapsed=7.784s
INFO [10-28|13:38:28] Generating DAG in progress               epoch=0 percentage=2 elapsed=11.732s
....
INFO [10-28|13:42:58] Generating DAG in progress               epoch=0 percentage=98 elapsed=4m41.664s
INFO [10-28|13:43:01] Generating DAG in progress               epoch=0 percentage=99 elapsed=4m44.566s
INFO [10-28|13:43:01] Generated ethash verification cache      epoch=0 elapsed=4m44.572s
INFO [10-28|13:43:11] Generating DAG in progress               epoch=1 percentage=0  elapsed=7.485s
INFO [10-28|13:43:16] Successfully sealed new block            number=103 hash=75997d…82ee18
INFO [10-28|13:43:16] �� mined potential block                  number=103 hash=75997d…82ee18
INFO [10-28|13:43:16] Commit new mining work                   number=104 txs=0 uncles=0 elapsed=1.215ms
INFO [10-28|13:43:20] Generating DAG in progress               epoch=1 percentage=1  elapsed=16.233s
INFO [10-28|13:43:28] Generating DAG in progress               epoch=1 percentage=2  elapsed=24.327s
INFO [10-28|13:43:30] Successfully sealed new block            number=104 hash=7401b3…44addf
INFO [10-28|13:43:30] �� mined potential block                  number=104 hash=7401b3…44addf
INFO [10-28|13:43:30] Commit new mining work                   number=105 txs=0 uncles=0 elapsed=399.337µs
INFO [10-28|13:43:31] Successfully sealed new block            number=105 hash=2bfca8…23f9c1
INFO [10-28|13:43:31] �� mined potential block                  number=105 hash=2bfca8…23f9c1

输出显示了首先创建的DAG ,完成后(花费几分钟),它开始挖掘块。 几分钟后,我在控制台中运行miner.stop()
顺便说一句,在另一个节点的控制台中,您还应该在挖掘时看到活动。 它将从连接的节点接收挖出的块:

INFO [10-28|13:43:30] Imported new chain segment               blocks=2 txs=0 mgas=0.000 elapsed=13.597ms  mgasps=0.000 number=104 hash=7401b3…44addf ignored=102
INFO [10-28|13:43:31] Imported new chain segment               blocks=1 txs=0 mgas=0.000 elapsed=7.794ms   mgasps=0.000 number=105 hash=2bfca8…23f9c1
INFO [10-28|13:43:32] Imported new chain segment               blocks=1 txs=0 mgas=0.000 elapsed=5.089ms   mgasps=0.000 number=106 hash=d1e49c…656c2e
INFO [10-28|13:43:34] Imported new chain segment               blocks=1 txs=0 mgas=0.000 elapsed=26.729ms  mgasps=0.000 number=107 hash=72f2fb…16a495

使用“ geth”控制台中的命令“ web3.eth.getBalance()”,我获得了当前实现的以太币(以Wei表示):

web3.eth.accounts
["0x30aa499b853d422b7e38bdb885fd9dfa2d964715"]
> web3.eth.getBalance("0x30aa499b853d422b7e38bdb885fd9dfa2d964715")
40000000000000000000
>

因此,在这一点上,我有两个帐户,并且都分配了一些以太币(我在两个节点上都运行了挖掘过程)。 现在是时候启动我的Mist浏览器并将其连接到我的私有区块链了。 薄雾应用程序可以在这里下载。 我选择了MacOs版本并运行了安装程序。 通常,当您运行Mist浏览器时,它将启动自己的'geth'版本并连接到'主要'以太坊网络。 在这种情况下,我想连接到我自己的区块链,因此在默认安装下,我可以通过使用以下命令在终端窗口中启动浏览器来实现此目的:

/Applications/Mist.app/Contents/MacOS/Mist  \
  --rpc http://localhost:8545 \
  --swarmurl="http://swarm-gateways.net"

之所以起作用,是因为当我为node1启动Docker实例时,将端口8545暴露给了本地主机8545.当我在Docker容器上启动'geth'时,我传递了'rpc'参数,因此它接受来自所有IP的连接(0.0。 0.0)。 'swarmurl'部分是解决此问题的方法。
启动Mist浏览器后,它会发出有关RPC连接不安全的警告,但是在这种情况下,可以忽略(所有在我的计算机上本地运行的节点)并单击“确定”。 我首先得到浏览器的启动画面,如下所示:

有时,我必须在Mac上重新启动Docker引擎,然后Mist才能通过端口8545连接到本地计算机,然后单击“启动应用程序”,我得到的浏览器窗口显示了在node1上创建的一个带有以太币数量的帐户我挖的:

我想展示的最后一件事是从一个帐户(在node1上创建)向另一个帐户(在node2上创建)发送一些以太币。 为此,我在Mist浏览器中打开“发送资金”页面,并填写在node2中创建的帐户的地址并分配一定数量的以太币: 当我单击“发送交易”时,我必须输入发送帐户的密码(在这种情况下,是“在这里写一个好的,随机生成的密码!”): 发送交易后,账户中的区块链中什么也没有发生。 交易已创建但尚未验证/验证。 因此,现在当我开始在其中一个节点上进行挖掘时,将确认交易(/区块),并修改帐户中的以太币数量:

> web3.eth.getBalance("0x30aa499b853d422b7e38bdb885fd9dfa2d964715")
375000378000000000000
> miner.start(2)
INFO [10-28|17:45:13] Updated mining threads                   threads=2
INFO [10-28|17:45:13] Transaction pool price threshold updated price=18000000000
null
> INFO [10-28|17:45:13] Starting mining operation 
INFO [10-28|17:45:13] Commit new mining work                   number=128 txs=1 uncles=0 elapsed=1.070ms
INFO [10-28|17:45:19] Successfully sealed new block            number=128 hash=7fa8ab…8dc486
INFO [10-28|17:45:19] �� block reached canonical chain          number=123 hash=779286…8d1f45
...
INFO [10-28|17:45:34] Commit new mining work                   number=137 txs=0 uncles=0 elapsed=245.115µs
> miner.stop()
INFO [10-28|17:45:40] Successfully sealed new block            number=137 hash=51d2c7…6533e1
...
INFO [10-28|17:45:44] Successfully sealed new block            number=140 hash=0bac45…26b5e0
INFO [10-28|17:45:44] �� block reached canonical chain          number=135 hash=93d2ad…a16e19
INFO [10-28|17:45:44] Commit new mining work                   number=141 txs=0 uncles=0 elapsed=160.114µs
INFO [10-28|17:45:44] �� mined potential block                  number=140 hash=0bac45…26b5e0

true
> INFO [10-28|17:59:20] Regenerated local transaction journal    transactions=0 accounts=0

> web3.eth.getBalance("0x30aa499b853d422b7e38bdb885fd9dfa2d964715")
540000756000000000000
>

在Mist浏览器中,您可以看到在采矿过程中交易确认的数量增加了:

在短暂的开采之后,该区块得到验证和批准,主账户的金额被修改。 就是这个帖子。 我展示了如何创建帐户,挖掘一些以太币并使用它进行交易。 在下一篇文章(此系列的最后一篇)中,我将创建一个SmartContract,将其部署到私有区块链上并展示如何使用它。

翻译自: https://www.javacodegeeks.com/2017/11/set-private-blockchain-ethereum-part-2.html

区块链 私有链

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值