deploy แอปที่คุณมีอยู่แล้วด้วย erpc worker import
erpc worker import รับแอปที่คุณมีอยู่แล้วเข้ามาตามสภาพเดิม โดยเขียน erpc.toml ของแอป และไม่เปลี่ยนแปลงโค้ดใด ๆ ของแอปหน้านี้อธิบาย ERPC CLI
v0.1.0-rc.4 ซึ่งเป็นเวอร์ชัน pre-releaseนำเข้าและ deploy
แอปอาจเป็นบอทที่ปัจจุบันรันภายใต้ systemd หรือ Docker หรือบริการที่เขียนด้วยภาษาอื่น
import จะอ่านไดเรกทอรีของแอปแล้วเขียน erpc.toml ตามที่ไดเรกทอรีนั้นบ่งบอก ไม่มีสิ่งอื่นถูกเขียนลงในแอป ไม่มีสิ่งใดในแอปถูกรัน และโค้ดของแอปไม่ถูกเปลี่ยนแปลง erpc จะเพิ่มแอปลงในรายการของตัวเอง เช่นเดียวกับที่ init ทำbash
- Cargo package จะถูก build ด้วย
cargo build --releaseเช่นเดียวกับแอปที่สร้างด้วยinitแอปจะได้ชื่อตาม package เว้นแต่--nameจะระบุเป็นอย่างอื่น และ--binใช้เลือก binary เมื่อ package มีหลายตัว ส่วน workspace root จะถูกปฏิเสธ: ให้ชี้importไปที่ package - Linux binary ที่ build จากที่ใดก็ได้ ด้วยภาษาใดก็ได้ deploy ได้ในแบบเดียวกันด้วย
--binary <PATH>โดยส่งไปตามสภาพเดิม erpc จะอ่าน header ของ binary และปฏิเสธ binary ที่เซิร์ฟเวอร์รันไม่ได้ ได้แก่ binary ของ macOS หรือ Windows, สคริปต์, shared library, ไฟล์ที่ถูกตัดจนไม่ครบ หรือสถาปัตยกรรมอื่นที่ไม่ใช่build.targetโดย binary ต้องเป็นแบบ static หรือ link กับ glibc โดยมี loader อยู่ที่ path ปกติ binary นี้เป็นไฟล์ของแอป: link ภายใต้ชื่อนั้นที่ชี้ออกไปนอกไดเรกทอรีของแอปจะถูกปฏิเสธ การ deploy จะหยุดเมื่อพบ binary ที่ใช้ไม่ได้ ก่อนที่จะซื้อเซิร์ฟเวอร์ หากต้องการให้การ deploy นำการเปลี่ยนแปลงไปด้วย ให้ build binary ใหม่ก่อน deploy
สิ่งที่ import อ่าน
import --chain ระบุเชนที่แอปใช้ โดยค่าเริ่มต้นคือ solanaimport อ่านไดเรกทอรีอย่างไร
ไดเรกทอรีนั้นอาจเป็นไดเรกทอรีที่คุณเพิ่ง clone มาเมื่อนาทีก่อน
import จึงอ่านอย่างระมัดระวังerpc.tomlถูกสร้างขึ้นใหม่ เมื่อมีสิ่งใดอยู่ที่ path นั้นแล้วimportจะปฏิเสธ: ไม่เขียนทับไฟล์และไม่เขียนผ่าน link ในทุกกรณี- อ่านไฟล์ปกติที่อยู่ภายในไดเรกทอรี ไฟล์ละไม่เกิน 1 MiB link ที่ชี้ออกไปนอกไดเรกทอรี, pipe, device, ไฟล์ที่ใหญ่กว่านั้น และไฟล์ที่ไม่ใช่ UTF-8 จะไม่ถูกอ่าน และจะแจ้งให้ทราบทีละรายการ
- ค่าที่ถูกมองว่าเป็น secret จะไม่ถูกคัดลอก การค้นหาข้อมูลรับรองดูจากรูปแบบของค่า การตรวจนี้จึงเป็นเพียงตาข่ายดัก ไม่ใช่สิ่งพิสูจน์: secret ในรูปแบบที่ไม่รู้จักจะถูกคัดลอกเหมือนค่าทั่วไป
erpc.tomlเป็นไฟล์ของคุณที่ต้องอ่านเองก่อน commit erpc worker checkเตือนได้น้อยประเภทกว่าที่importกันไว้ คำสั่งนี้ไม่แจ้งอะไรเลยเกี่ยวกับ RPC URL ที่มีคีย์อยู่ใน path หรือวลีกู้คืน ที่อยู่ใต้[vars]: ให้เก็บค่าเหล่านั้นด้วยerpc worker secret put
สิ่งที่แอปของคุณพบบนเซิร์ฟเวอร์
- การตั้งค่ามาถึงในรูปของตัวแปรสภาพแวดล้อม ทั้ง
[vars]และ[secrets]บนเซิร์ฟเวอร์ไม่มี.envและแอปที่อ่านไฟล์.envด้วยไลบรารี dotenv ก็ยังทำงานได้ต่อไป - ไดเรกทอรีของแอปเองเป็นแบบอ่านอย่างเดียว ไฟล์ที่แอปเขียนจะอยู่ใต้ไดเรกทอรีที่
ERPC_WORKER_STATE_DIRระบุ (ซึ่งเป็นHOMEของแอปด้วย) โดยการ deploy จะเก็บไดเรกทอรีนี้ไว้ และerpc worker backupจะสำรองข้อมูลไดเรกทอรีนี้ - คีย์เทรดมาถึงทาง pipe ไม่ใช่ในไฟล์: ข้อมูล 64 ไบต์ส่งมาทาง file descriptor ที่
ERPC_WORKER_KEY_FDระบุ ครั้งเดียวเมื่อแอปเริ่มทำงาน พร้อมคีย์สาธารณะในERPC_WORKER_PUBKEYแอปที่อ่านไฟล์คีย์ต้องแก้เฉพาะจุดที่อ่านคีย์นั้นจุดเดียว ดูตัวอย่างได้ในsrc/wallet.rsของเทมเพลต pumpfun - แอปคือ binary หนึ่งตัวและไฟล์ที่
run.filesระบุไว้ สิ่งอื่นที่แอปเปิดขณะรันต้องอยู่ในรายการนั้น
ขั้นตอนถัดไป
- คีย์และ secret: เก็บการตั้งค่าที่
importกันไว้ และคีย์เทรด - ไฟร์วอลล์และ WAF: เลือกว่าใครเข้าถึงแอปได้
- คู่มือ worker: ทุกไฟล์ที่
importอ่าน และรูปแบบของข้อมูลรับรองที่ค้นหา






