使用 erpc worker import 部署您已有的应用
erpc worker import 按原样接收您已有的应用。它写入应用的 erpc.toml,不修改应用的任何代码。本页介绍 ERPC CLI
v0.1.0-rc.4,这是一个预发布版本。导入并部署
应用可以是目前在 systemd 或 Docker 下运行的机器人,也可以是用其他语言编写的服务。
import 读取应用的目录,并写入描述该应用的 erpc.toml。应用中不会写入其他任何内容,不会运行其中的任何东西,也不会修改其代码。erpc 会像 init 一样,将应用加入自己的列表。bash
- Cargo 包与
init创建的应用一样,使用cargo build --release构建。除非--name另行指定,应用以包名命名;包含多个二进制文件时,用--bin选择其中一个。工作区根目录会被拒绝:请将import指向包本身。 - 在任何地方、用任何语言构建的 Linux 二进制文件,以同样的方式通过
--binary <PATH>部署,并按原样交付。erpc 读取其文件头,拒绝服务器无法运行的二进制文件:macOS 或 Windows 二进制文件、脚本、共享库、被截断的文件,或架构与build.target不同的文件。二进制文件必须是静态的,或者链接 glibc 且其加载器位于常规路径。它是应用的一个文件:以该名称存在、却指向应用目录之外的链接会被拒绝。二进制文件不可用时,部署会在购买服务器之前停止。如果部署需要带上某项修改,请先重新构建二进制文件。
import 读取的内容
import --chain 指定应用所针对的链,默认为 solana。import 如何读取目录
该目录可能是您一分钟前刚克隆的,因此
import 会谨慎地读取它。erpc.toml是新建的。该路径上已存在任何东西时,import会拒绝:它从不覆盖文件,也从不通过链接写入。- 它读取目录内的普通文件,每个最大 1 MiB。指向目录之外的链接、管道、设备、更大的文件以及非 UTF-8 文件不会被读取,并会逐一说明。
- 它当作 Secret 的值都不会被复制。它按形态查找凭据,因此这一检查是一张网,而不是证明:形态未知的 Secret 会像其他值一样被复制。提交
erpc.toml之前,请您自己阅读一遍。 erpc worker check警告的种类少于import扣留的种类。对于[vars]下路径中带有密钥的 RPC URL 或助记词,它不会提示:请使用erpc worker secret put保存这些内容。
应用在服务器上看到的环境
- 设置以环境变量的形式送达,
[vars]和[secrets]都是如此。服务器上没有.env,使用 dotenv 库读取.env文件的应用仍能正常工作。 - 应用自己的目录是只读的。它写入的文件放在
ERPC_WORKER_STATE_DIR所指定的目录下(也是它的HOME),部署会保留该目录,erpc worker backup会备份该目录。 - 交易密钥经由管道送达,而不是放在文件中:应用启动时,在
ERPC_WORKER_KEY_FD所指定的文件描述符上一次性送达 64 字节,公钥则在ERPC_WORKER_PUBKEY中。读取密钥文件的应用需要修改这一处读取;pumpfun 模板的src/wallet.rs展示了做法。 - 它是一个二进制文件加上
run.files列出的文件。它在运行时打开的其他任何文件都必须在该列表中。
后续步骤
- 密钥与 Secret:保存
import扣留的设置以及交易密钥。 - 防火墙与 WAF:选择谁可以访问应用。
- worker 指南:
import读取的每个文件,以及它查找的凭据形态。






