Разверните уже имеющееся приложение с помощью erpc worker import
erpc worker import принимает уже имеющееся у вас приложение как есть. Он записывает erpc.toml приложения и ничего не меняет в его коде.Эта страница описывает ERPC CLI
v0.1.0-rc.4 — пререлиз.Импорт и развёртывание
Приложение может быть ботом, который сейчас работает под systemd или Docker, или сервисом на другом языке.
import читает каталог приложения и записывает erpc.toml по тому, что в этом каталоге описано. Больше в приложении ничего не записывается, ничего в нём не запускается, и его код не меняется. erpc добавляет приложение в свой список, как это делает init.bash
- Пакет Cargo собирается командой
cargo build --release, так же как приложение, созданноеinit. Приложение называется по имени пакета, если--nameне задаёт другое, а--binвыбирает бинарный файл, когда в пакете их несколько. Корень workspace отклоняется: направьтеimportна сам пакет. - Бинарный файл Linux, собранный где угодно и на любом языке, развёртывается так же — с
--binary <PATH>— и поставляется как есть. erpc читает его заголовок и отклоняет файл, который сервер не может запустить: бинарный файл macOS или Windows, скрипт, разделяемую библиотеку, обрезанный файл или файл для архитектуры, отличной отbuild.target. Бинарный файл должен быть статическим или слинкованным с glibc, с загрузчиком по обычному пути. Это файл приложения: ссылка под этим именем, ведущая за пределы каталога приложения, отклоняется. Развёртывание останавливается на непригодном бинарном файле ещё до покупки сервера. Пересоберите бинарный файл перед развёртыванием, которое должно включать изменение.
Что читает import
import --chain задаёт блокчейн, для которого предназначено приложение, по умолчанию solana.Как import читает каталог
Возможно, вы клонировали этот каталог минуту назад, поэтому
import читает его с осторожностью.erpc.tomlсоздаётся заново. Если по этому пути что-либо есть,importотказывается: он никогда не перезаписывает файл и не пишет через ссылку.- Он читает обычные файлы внутри каталога, до 1 MiB каждый. Ссылка, ведущая за пределы каталога, канал, устройство, файл большего размера и файл не в UTF-8 не читаются, и о каждом из них сообщается.
- Ни одно значение, которое он принимает за секрет, не копируется. Он ищет учётные данные по их форме, поэтому проверка — это фильтр, а не доказательство: секрет в незнакомой ему форме копируется как любое значение. Прочитать
erpc.tomlперед коммитом — ваша задача. erpc worker checkпредупреждает о меньшем числе видов значений, чем удерживаетimport. Он ничего не сообщает об RPC URL с ключом в пути или о фразе восстановления в[vars]: храните такие значения с помощьюerpc worker secret put.
Что ваше приложение находит на сервере
- Настройки поступают как переменные окружения — и
[vars], и[secrets]. На сервере нет.env, и приложение, которое читает файл.envбиблиотекой dotenv, продолжает работать. - Его собственный каталог доступен только для чтения. Файлы, которые оно записывает, попадают в каталог, указанный в
ERPC_WORKER_STATE_DIR(он же егоHOME); развёртывание этот каталог сохраняет, аerpc worker backupсоздаёт его резервную копию. - Торговый ключ поступает через канал, а не в файле: 64 байта через файловый дескриптор, указанный в
ERPC_WORKER_KEY_FD, один раз, при запуске приложения, а открытый ключ — вERPC_WORKER_PUBKEY. В приложении, которое читает файл ключа, нужно изменить это одно чтение; как это сделать, показываетsrc/wallet.rsшаблона pumpfun. - Это один бинарный файл и файлы, перечисленные в
run.files. Всё остальное, что оно открывает во время работы, должно быть в этом списке.
Дальнейшие шаги
- Ключи и секреты: сохраните настройки, которые удержал
import, и торговый ключ. - Брандмауэр и WAF: выберите, кто может обращаться к приложению.
- Руководство по воркерам: все файлы, которые читает
import, и формы учётных данных, которые он ищет.






