乐趣区

如何使用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 转换器:

以太坊单位系统概述:

实战中来掌握。让我们实际发送 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 传递。但这种方式更安全,因为你的密码只在缓冲区中,而不是存储在任何日志中或屏幕上可见。

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

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

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

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

eth.getBalance("0xceee57f2b700c2f37d1476a7974965e149fce2d4") > 7425979000000000000 
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 在以太坊网络上转账资金

退出移动版