Skip to main content

地址

地址是区块链上位置的唯一标识符。它用于识别包、帐户和对象。地址的大小固定为 32 字节,通常表示为前缀为 0x 的十六进制字符串。地址不区分大小写。

每两位十六进制数表示一个字节,除去前缀,还有 64 个数字,你看到的地址如下面所示:

0x064f038ed86c140798c029af2da40ad9910a8b7267ff9f376b98d779b45983f8

Rooch 还保留了用于标识标准包和对象的地址。保留地址通常是易于记忆和输入的简单值。例如,标准库的地址是 0x1。小于 32 字节的地址在左侧用零填充。

0x1 = 0x0000000000000000000000000000000000000000000000000000000000000001

以下是保留地址的一些示例:

  • 0x1 - Move 标准库的地址(别名 std
  • 0x2 - MoveOS 标准库的地址(别名 moveos_std
  • 0x3 - Rooch 框架的地址(别名rooch_framework

为什么要用地址

在 Move 语言中,地址用于标识和定位模块和资源。以下是为什么需要使用地址的几个原因:

  1. 唯一标识:地址用于唯一标识区块链上的账户、模块和资源。每个模块和资源都与一个特定的地址相关联,这样可以确保它们在区块链上是唯一的。

  2. 模块定位:在 Move 中,模块是通过地址来定位的。地址帮助虚拟机找到并加载正确的模块。例如,在调用一个模块中的函数时,需要提供模块的地址。

  3. 权限控制:地址可以用于权限控制。某些操作可能只允许特定地址的账户执行,这样可以增强安全性。例如,只有特定地址的账户可以发布或更新某个模块。

  4. 资源管理:资源在 Move 中是与地址绑定的。每个资源都存储在一个特定地址的账户下,这样可以方便地管理和访问资源。

在 Move.toml 文件中,地址配置如下:

[addresses]
basic_object = "_"
moveos_std = "0x2"
rooch_framework = "0x3"

[dev-addresses]
basic_object = "0x42"
  • basic_object 的地址在编译时会被替换为实际地址。
  • moveos_std 和 rooch_framework 的地址分别是 0x2 和 0x3,这些地址用于定位和加载相应的模块。
  • dev-addresses 部分定义了开发环境中的地址,basic_object 的地址是 0x42。

这些地址配置帮助 Move 项目在不同环境中正确地定位和加载模块和资源。

相关链接