> For the complete documentation index, see [llms.txt](https://gushi10546.gitbook.io/aptos-kai-fa-zhe-wen-dang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gushi10546.gitbook.io/aptos-kai-fa-zhe-wen-dang/guides-zhi-nan/yu-aptos-qu-kuai-lian-jiao-hu.md).

# 与 Aptos 区块链交互

Aptos 区块链使用 Move 虚拟机 (VM) 来执行操作。虽然许多区块链实现了一组原生操作，但 Aptos 将所有操作委托给 Move，包括：账户创建、资金转账和发布 Move 模块。为了支持这些操作，构建在 Move 之上的区块链必须提供一个框架（类似于计算机的操作系统或最小的可行功能集）来与区块链交互。在本节中，我们将讨论这些通过 Aptos 框架的“`script`”函数公开的函数。

本指南（与移动模块教程相结合）将解锁在 Aptos 区块链之上开始构建丰富应用程序所需的最少信息量。注意：Aptos 框架正在大力开发中，本文档可能不是最新的。最新的框架可以在源代码中找到，这里。

Aptos Framework 内提供给用户的核心功能包括：

* 发送和接收网络币 `Coin<AptosCoin>`
* 创建一个新帐户
* 发布新的移动模块&#x20;

{% hint style="info" %}
注意：本文档假设读者已经熟悉提交交易，如您的第一个交易教程中所述。
{% endhint %}

## 发送和接收网络代币 `Coin<AptosCoin>`

发送和接收网络代币 Coin 提交和执行交易时需要 Coin 支付 Gas 费。 Coin 可以通过调用 Devnet Faucet 获得。有关示例，请参阅您的第一次交易教程。 指示区块链执行传输的负载是：

<figure><img src="https://1298478727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9FI8oYwrsIrHQeIJd3qm%2Fuploads%2F3LcMEbG1swz22cURJNbz%2FUntitled.png?alt=media&amp;token=f8ba3747-2183-4a3e-b577-2ec906ecff77" alt=""><figcaption></figcaption></figure>

这会指示 VM 执行`script`  `0x1::Coin::transfer` 类型参数为 0x1::aptos\_coin::AptosCoin。此处需要类型，因为 Coin 是我们的标准模块，可用于创建多种类型的 Coin。请参阅您的第一枚硬币教程 有关创建自定义硬币的示例。第一个参数是收件人地址，0x737b36c96926043794ed3a0b3eaaceaf ，第二个是转账金额，1000 .发件人地址是发送查询此脚本的交易的帐户地址

## **创建新帐户**

指示区块链创建新帐户的负载是:

<figure><img src="https://1298478727-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9FI8oYwrsIrHQeIJd3qm%2Fuploads%2Fu4yWtwwbTK1IFsqUPrf5%2FUntitled%201.png?alt=media&amp;token=944720e1-77bb-433c-bf60-50ec04b0e01b" alt=""><figcaption></figcaption></figure>

这会指示 Move 虚拟机执行脚本 0x1::AptosAccount::create\_account .第一个参数是要创建的帐户的地址，第二个参数是身份验证密钥原像（在帐户中提到 )。对于单签名者身份验证，这是与 0 连接的公钥字节（或 pubkey\_A | 0x00)。这是防止帐户地址抢占所必需的。该指令的执行验证验证密钥的最后 16 字节是否与 16 字节的帐户地址相同。我们正在积极改进此 API，以支持接收 32 字节的帐户地址，从而消除对土地掠夺或帐户操纵的担忧。

## 发布新的 Move 模块&#x20;

发布新模块的负载是：

```
"type": "module_bundle_payload", "modules": [ {"bytecode": "0x..."}, ],
```

这指示 VM 在发送者的帐户下发布模块字节码。如需完整教程，请参阅您的第一个移动模块。 需要注意的是，Move 字节码必须指定与发送者账户相同的地址，否则交易将被拒绝。例如，假设帐户地址为“0xe110”，则需要更新 Move 模块，因为“module 0xe110::Message”、“module 0xbar::Message”将被拒绝。或者，可以使用别名地址，例如`module HelloBlockchain::Message`，但`HelloBlockchain` 别名需要在`Move.toml` 文件中更新为`0xe110`。我们正在与 Move 团队合作，并计划将编译器合并到我们的 REST 接口中以缓解此问题。
