如何使用GETH CLI在以太坊网络进行资金转账交易

如何使用GETH CLI在以太坊网络进行资金转账交易,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

完成同步的以太坊区块链节点后,就可以通过使用GETH CLI在以太坊网络上执行交易。

首先我们来链接GETH控制台,查询以太坊帐户的余额:

geth attach ipc:/home/enchanter/.gophersland_ethereum_r1/geth.ipc
eth.getBalance("0xceee57f2b700c2f37d1476a7974965e149fce2d4")
> 7500000000000000000

我想,你可能会想为什么7.5ETH在Geth控制台中显示为75000000000000000?

Ether与wei

以太坊虚拟机不支持小数或浮点数。显然,金融计算在整数中更容易。

因此,为了能够发送1 ETH的一小部分,以太坊基金会决定创建自己的单位系统,其中最小单位为1 Wei,1 Ether为1e18 Wei。

但不用担心,有些工具可以让你的生活更轻松。例如,我强烈推荐Ether to Wei在线转换器:

https://etherconverter.online

为了发送价值15美元的以太,其中1 ETH == $200(旧时代……),你将发送0.0740 ETH的交易,这必须在Wei中表示为74000000000000000。

在线Ether to Wei转换器:

如何使用GETH CLI在以太坊网络进行资金转账交易

以太坊单位系统概述:

如何使用GETH CLI在以太坊网络进行资金转账交易

实战中来掌握。让我们实际发送74000000000000000 wei(15美元)到另一个帐户。

使用GETH CLI将以太发送到另一个帐户

在一个终端中,请记住运行完全同步的区块链节点:

geth --rinkeby --datadir=~/.gophersland_ethereum_r1 --port=30304 --cache=2048 --rpc --rpcport=8546 --rpcapi=eth,web3,net,personal --syncmode=fast

在另一个终端,我们将创建我们的第二个以太坊帐户。

ls -la ~/.gophersland_ethereum_r1/keystore/> drwx------ 2 enchanter enchanter 4096 sep 24 15:36 .> drwx------ 4 enchanter enchanter 4096 sep 24 15:26 ..> -rw------- 1 enchanter enchanter  491 sep 24 15:36
UTC--2018-09-24T13-36-43.069452577Z--ceee57f2b700c2f37d1476a7974965e149fce2d4geth --datadir=~/.gophersland_ethereum_r1 account new> INFO [09-24|15:36:33.566] Maximum peer count ETH=25 LES=0 total=25> Your new account is locked with a password. Please give a password. Do not forget this password.
> Passphrase: > Repeat passphrase: > Address: {7aa4a14286a25e3a275d7a122c23dc3c107a636a}ls -la ~/.gophersland_ethereum_r1/keystore/> drwx------ 2 enchanter enchanter 4096 oct 25 20:14 .> drwx------ 4 enchanter enchanter 4096 oct 25 19:48 ..> -rw------- 1 enchanter enchanter  491 sep 24 15:36
UTC--2018-09-24T13-36-43.069452577Z--ceee57f2b700c2f37d1476a7974965e149fce2d4

现在,让我们将Geth控制台链接到当前运行的区块链节点,就像我们在上一篇文章中所做的那样,以便通过执行eth.sendTransaction命令将15美元转账到这个新创建的帐户。

geth attach ipc:/home/enchanter/.gophersland_ethereum_r1/geth.ipc
eth.sendTransaction({from: "0xceee57f2b700c2f37d1476a7974965e149fce2d4",to: "0x7aa4a14286a25e3a275d7a122c23dc3c107a636a", value: "74000000000000000"})

Error: authentication needed: password or unlock.,错误提示:需要验证密码或解锁。

你应该看到类似上面一个错误。这是因为发送以太是一个交易transaction,一个交易改变状态,花费成本,并花费资金。这意味着它需要使用存储在密钥库中的私钥进行签名。为了解密密钥,我们必须提供密码,换句话说,解锁帐户。

执行以下命令以解锁帐户并设定解锁有效期60s,并再次执行sendTransaction命令。

web3.personal.unlockAccount(web3.personal.listAccounts[0], null, 60)
eth.sendTransaction({from: "0xceee57f2b700c2f37d1476a7974965e149fce2d4", to: "0x7aa4a14286a25e3a275d7a122c23dc3c107a636a", value: "74000000000000000"})

我们也可以将密码作为第二个参数而不是null传递。但这种方式更安全,因为你的密码只在缓冲区中,而不是存储在任何日志中或屏幕上可见。

如何使用GETH CLI在以太坊网络进行资金转账交易

这次命令成功,并返回了一个交易的哈希收据!

当我们连接到Rinkeby网络时,我们可以利用Rinkeby GUI浏览器来检查此交易的状态,gas消耗,gas价格等。

  • 1.打开资源管理器。

  • 2.将交易收据哈希粘贴到搜索栏。

  • 3.完成后,我们花了21,000个Gas(发送资金的标准)并且交易成功了!

如何使用GETH CLI在以太坊网络进行资金转账交易

现在可以查询两个帐户的余额并查看已更改的状态:

eth.getBalance("0xceee57f2b700c2f37d1476a7974965e149fce2d4") > 7425979000000000000
eth.getBalance("0x7aa4a14286a25e3a275d7a122c23dc3c107a636a") > 74000000000000000

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/230707.html

(0)
上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐

发表回复

登录后才能评论