ao——编译和部署自定义 module 教程

WX20240905-214359@2x.png

摘要

module 是 ao 系统的核心代码,包含运行环境和基础库。每个 process 启动时会加载一个 module,通过 txid 从 Arweave 加载。自定义 module 允许开发者将自定义功能写入标准库,方便多进程交互和共享。通过 Docker 镜像编译 WASM 并上传至 Arweave,实现 module 的创建与管理。


作者: webb

审阅:outprog

来源:内容公会 - 新闻


什么是 module

module 可以看做 ao 中运行的操作系统的核心代码,就是一个编译好的 wasm 文件,包含了 process 运行时的环境和我们可以引用的所有基础库。

module 的代码是 aos 的一部分,在 aos/process 下。

image.png

每个 process 在启动时会加载一个 module,并且不能更换,使用 Eval 消息可以进行更新。module 编译出的 wasm 文件需要上传到 arweave 上,进程通过 txid 进行加载(module id 就是上传 module 的 ar txid)。aolink 中可以查看进程对应的 module 信息。

image.png

每个 module 的 tag 中会定义一些关键信息,比如是 wasm32 还是 wasm64、进程内存限制等,可以从 aolink 中查看。

image.png

为什么要自定义 module