地址
地址是区块链上位置的唯一标识符。它用于识别包、帐户和对象。地址的大小固定为 32 字节,通常表示为前缀为 0x 的十六进制字符串。地址不区分大小写。
每两位十六进制数表示一个字节,除去前缀,还有 64 个数字,你看到的地址如下面所示:
0x064f038ed86c140798c029af2da40ad9910a8b7267ff9f376b98d779b45983f8
Rooch 还保留了用于标识标准包和对象的地址。保留地址通常是易于记忆和输入的简单值。例如,标准库的地址是 0x1。小于 32 字节的地址在左侧用零填充。
0x1 = 0x0000000000000000000000000000000000000000000000000000000000000001
以下是保留地址的一些示例:
0x1- Move 标准库的地址(别名std)0x2- MoveOS 标准库的地址(别名moveos_std)0x3- Rooch 框架的地址(别名rooch_framework)
为什么要用地址
在 Move 语言中,地址用于标识和定位模块和资源。以下是为什么需要使用地址的几个原因:
-
唯一标识:地址用于唯一标识区块链上的账户、模块和资源。每个模块和资源都与一个特定的地址相关联,这样可以确保它们在区块链上是唯一的。
-
模块定位:在 Move 中,模块是通过地址来定位的。地址帮助虚拟机找到并加载正确的模块。例如,在调用一个模块中的函数时,需要提供模块的地址。
-
权限控制:地址可以用于权限控制。某些操作可能只允许特定地址的账户执行,这样可以增强安全性。例如,只有特定地址的账户可以发布或更新某个模块。
-
资源管理:资源在 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 项目在不同环境中正确地定位和加载模块和资源。