如何在 Ruby 中生成一个新的以太坊地址

  • QuickNode
  • 发布于 2024-11-29 16:18
  • 阅读 17

本文介绍了如何使用Ruby创建以太坊地址,详细解释了以太坊地址的生成过程,包括私钥和公钥的创建,以及使用ruby-eth库的步骤。文章结构清晰、内容丰富,并提供了相关代码示例和附图,适合对以太坊和Ruby编程有基础知识的读者。

概述

由于在 Web 应用程序中的广泛使用和简单的语法,Ruby 被大量用户使用。本指南将介绍如何使用 ruby-eth gem/package 在 Ruby 中创建以太坊地址。

先决条件

  • 系统中安装 Ruby(Ruby 2.x 及以上)

  • Ruby 环境管理器(RBEnv)

  • 一个文本编辑器

什么是以太坊地址?

在互联网的任何平台上登录时,你需要使用一组凭据进行身份验证。可以将以太坊地址视为你的用户名,而对应的私钥视为密码。虽然你的以太坊地址是公开的,可以分享,但私钥必须始终保密。使用这一组合可以让你与以太坊区块链进行交互。以太坊地址是你在区块链上的身份,它看起来像这样:“0x6E0d01A76C3Cf4288372a29124A26D4353EE51BE”。拥有有效的以太坊地址是必需的,以便于:

  • 收发以太坊货币

  • 签署/发送交易

  • 连接到去中心化应用程序

以太坊地址是如何生成的:

  • 首先生成一个 64 个(十六进制)字符(256 位 / 32 字节)的随机私钥。

例如:

0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
  • 然后使用椭圆曲线数字签名算法(ECDSA)从生成的私钥派生出一个 128 个(十六进制)字符(64 字节)的公钥。

例如:

0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe
  • 然后将 Keccak-256 哈希函数应用于(128 个字符 / 64 字节)公钥,以获得 64 个字符(32 字节)的哈希字符串。这个字符串的最后 40 个字符 / 20 字节加上前缀 0x 就成为最终的以太坊地址。

例如:

0xd5e099c71b797516c10ed0f0d895f429c2781142

注意:编码中的 0x 表明该数字/字符串以十六进制形式书写。

什么是 Ruby?

Ruby 是一种开源的解释型高级语言。Ruby 是结合 Perl、Smalltalk、Eiffel、Ada 和 Lisp 制作的,Yukihiro “Matz” Matsumoto 喜爱的语言。Ruby 完全面向对象;即使是最基本的数据类型如整数也有方法和实例变量。这提供了方法链功能,可以将多行代码合并为一行。Ruby on Rails,一个 Ruby 框架,帮助该语言在 Web 编程中获得了人气,主要吸引力在于程序员不必花费大量时间来创建文件。

为了实现创建以太坊地址的目标,我们将使用一个名为 ruby-eth 的 Ruby gem。

什么是 ruby-eth?

Ruby-eth 是一个帮助签署交易和生成密钥的库,ruby-eth 允许我们使用任何节点构建和广播以太坊交易。该 gem 允许将密钥与节点分离。在任何可以运行 Ruby 的地方签署交易并处理密钥,通过你希望的任何节点端点广播交易。

安装依赖项

在安装 gems 之前,让我们确保安装了 Ruby。打开一个终端并运行:

$ ruby -v

对于 Linux/UNIX:你可以按照 这里 的指南使用你的发行版的包管理系统,或者使用像 rbenvRVM 的第三方工具。

对于 macOS:你可以使用像 rbenvRVM 的第三方工具。

对于 Windows:你可以使用 RubyInstaller

我们将使用 rbenv 来管理我们项目的 Ruby 版本。首先,检查 rbenv 是否安装,输入:

$ rbenv -v

它必须输出你系统上安装的 rbenv 的当前版本;如果没有,请使用 这里 的信息下载它。然后转到终端并输入以下命令,在该目录中激活特定的 Ruby 版本。

$ rbenv install 2.6.5
$ rbenv local 2.6.5

一旦确保安装了 Ruby,并且版本正确(在这种情况下为 2.6.5),我们就可以继续安装所需的 gems。你可以通过 RubyGems 从命令行安装它,RubyGems 是 Ruby 的包管理器:

$ gem install eth

如果你使用 macOS,安装 gem 时可能会遇到与权限相关的问题,因为 macOS 自带的 Ruby 版本通常是为苹果自己使用的;我们建议使用 rbenvRVM (Ruby 版本管理器) 来管理单独的 Ruby 版本,该版本将安装在你主目录的沙箱中,你可以对其进行更改,而不必担心破坏系统 Ruby。

生成以太坊地址

在文本编辑器中创建一个新的 Ruby 文件 address.rb,并将以下代码粘贴到其中。

require "eth"
key = Eth::Key.new
key.public_hex
puts "保存但不要分享这个(私钥):0x#{key.private_hex}"
puts "地址:#{key.address}"

上面代码的解释

第 1 行:导入 eth gem/package。

第 2 行:实例化 Eth 对象,创建一个新密钥,并将其存储在变量 key 中。

第 3 行:通过使用 public_hex 方法从 key 生成一个十六进制公钥。

第 4 行:通过使用 private_key 方法从 key 生成一个十六进制私钥,并为其添加 0x 前缀;然后打印它并附带警告。

第 5 行:生成地址并打印,附有字符串“地址:”

请保存文件并使用以下命令运行它。

$ ruby address.rb

如果一切顺利,代码成功执行,它应如下所示。

结论

恭喜你,你现在拥有了自己的以太坊地址,你可以用它来签署/发送交易并与以太坊网络交互。请查看有关 如何使用 Ruby 连接以太坊(ethereum.rb) 的指南。

订阅我们的 时事通讯,获取更多关于以太坊的文章和指南。如果你有任何反馈,请随时通过 Twitter 与我们联系。你还可以在我们的 Discord 社区服务器上与我们聊天,那里有一些你见过的最酷的开发者 :)

  • 原文链接: quicknode.com/guides/eth...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。