如何使用GETH CLI在以太坊网络上转账资金

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

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

1
geth attach ipc:/home/enchanter/.gophersland_ethereum_r1/geth.ipc
1
eth.getBalance("0xceee57f2b700c2f37d1476a7974965e149fce2d4")
1
> 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转换器:

以太坊单位系统概述:

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

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

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

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

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

1
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
1
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.
1
> 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
1
UTC--2018-09-24T13-36-43.069452577Z--ceee57f2b700c2f37d1476a7974965e149fce2d4

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

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

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

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

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

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

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

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

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

  • 1.打开资源管理器。
  • 2.将交易收据哈希粘贴到搜索栏。
  • 3.完成后,我们花了21,000个Gas(发送资金的标准)并且交易成功了!

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

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

奇迹般有效。恭喜你:

  • 了解了以太和wei之间的区别以及如何转换它们。
  • 在以太坊测试网络Rinkeby上提交了你的第一笔交易。

======================================================================

分享一些比特币、以太坊、EOS、Fabric等区块链相关的交互式在线编程实战教程:

  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • 深入浅出玩转EOS钱包开发,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。
  • Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
  • Hyperledger Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
  • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是如何使用GETH CLI在以太坊网络上转账资金