deploy แอปแรกของคุณไปยังเซิร์ฟเวอร์ด้วย erpc worker
สร้าง HTTP API ขนาดเล็กด้วย Rust โดยใช้
erpc worker รันบนเครื่องของคุณ แล้ว deploy ไปยังเซิร์ฟเวอร์ด้วยคำสั่งสี่คำสั่งหน้านี้อธิบาย ERPC CLI
v0.1.0-rc.4 ซึ่งเป็นเวอร์ชัน pre-releaseerpc worker (ชื่อย่อ erpc w) คอมไพล์แอปของคุณเป็น native Linux binary แล้วรันบน ERPC VPS, VPS รายชั่วโมงเครื่องใหม่ หรือเซิร์ฟเวอร์ของคุณเอง ภายใต้ systemd unit ที่เสริมความปลอดภัย โดยไม่มี Docker และไม่มี runtime คั่นกลางrelease ที่ไม่ทำงานปกติหลังเริ่มจะถูก rollback กลับไปยัง release ก่อนหน้า และหลายแอปใช้เซิร์ฟเวอร์เดียวกันได้ โดยแต่ละแอปมีพอร์ตของตัวเอง ทุกอย่างเกี่ยวกับแอปอยู่ใน
erpc.toml ที่ root ของแอป ซึ่งไม่มี secret อยู่ภายในและ commit ได้ข้อกำหนดเบื้องต้น
- บัญชี ERPC ที่ลงชื่อเข้าใช้บนเครื่องนี้ด้วย
erpc loginแล้ว (ลงชื่อเข้าใช้และคีย์) - ERPC Credit สำหรับ VPS รายชั่วโมงเครื่องใหม่ บริการรายชั่วโมงชำระด้วย ERPC Credit ซึ่งซื้อไว้ล่วงหน้า และหาก credit ไม่พอครอบคลุมการเริ่มใด การเริ่มนั้นจะถูกปฏิเสธ ดูราคาได้ที่ ราคา และ ERPC Web Dashboard
- SSH key บนเครื่องนี้:
ssh-keygen -t ed25519หรือerpc config set ssh_key <path>.pubสำหรับคีย์ที่คุณมีอยู่แล้ว - วิธี build สำหรับ Linux หากใช้ Mac หรือ Windows ต้องมี Rust target สำหรับเซิร์ฟเวอร์ (
rustup target add x86_64-unknown-linux-gnu),zig(brew install zigบน macOS) และcargo-zigbuild(cargo install cargo-zigbuild --locked) หากใช้เครื่อง Linux ประเภทเดียวกับเซิร์ฟเวอร์ (x86-64 สำหรับเซิร์ฟเวอร์ ERPC ทุกเครื่อง) ไม่ต้องมีอะไรนอกจาก cargo หากไม่มีเครื่องมือ cross-build แอปจะถูก build ด้วย toolchain ของเครื่องนี้เอง และ binary จะต้องใช้ glibc ที่ใช้ link ตอน build ซึ่งbuildและdeployจะระบุไว้ หากมีเครื่องมือเหล่านี้ แอปจะถูก build สำหรับ glibc 2.31 ขึ้นไป
การ deploy HelloWorld
HelloWorld คือ HTTP API ขนาดเล็กที่เขียนด้วย Rust ซึ่งไม่ต้องใช้คีย์ ไม่ต้องใช้ secret และไม่ต้องใช้สายข้อมูล โดยตอบ
GET /, GET /hello/{name} และ GET /healthzbash
initสร้างแอปไว้ใน./hello-worldพร้อมerpc.tomlของแอปrunbuild แอปแล้วรันบนเครื่องของคุณ เพื่อให้คุณเรียกด้วย curl ได้ก่อนdeploybuild แอปสำหรับเซิร์ฟเวอร์แล้ว deploy แอปนั้น สิ่งใดที่มีค่าใช้จ่ายจะแสดงให้เห็นก่อน พร้อมราคารายชั่วโมง ยอดคงเหลือของคุณ และระยะเวลาที่ credit จะใช้ได้ และเมื่ออยู่ในเทอร์มินัล จะเริ่มหลังจากตอบ yes เท่านั้นapiเรียก API ของแอปที่ deploy แล้วจากเครื่องของคุณ โดย API ยังคงอยู่บน loopback ของเซิร์ฟเวอร์
erpc worker check แสดงรายการสิ่งที่แอปยังขาด และเมื่อยังขาดบางอย่าง deploy จะปฏิเสธก่อนซื้อสิ่งใด erpc worker build รันเฉพาะการ build ซึ่งเป็นวิธีดูว่า build ล้มเหลวก่อนที่จะซื้อเซิร์ฟเวอร์เลือกเทมเพลต
erpc worker init ถามเพียงเรื่องเดียว คือจะสร้างอะไร โดยเลือกด้วยปุ่มลูกศร- HelloWorld คือเทมเพลตที่ควรใช้เริ่มต้น
- HFT และ pumpfun-bot ในตอนนี้สร้างจากเทมเพลต pumpfun ทั้งคู่ ซึ่งเป็นบอทเทรด pump.fun (PumpSwap) ที่ port มาจาก ValidatorsDAO/solana-stream
--template hft (หรือ helloworld, pumpfun-bot หรือ id ของเทมเพลต) จะข้ามการเลือก และ --name ใช้ตั้งชื่อแอป หากไม่ระบุชื่อ แอปจะได้ชื่อตามสิ่งที่เลือก (hello-world, hft-bot, pumpfun-bot) เมื่อมีไดเรกทอรีชื่อนั้นอยู่แล้ว คนที่เลือกเองจะได้ -2, -3 ต่อไปเรื่อย ๆ ส่วนสคริปต์ (--yes, --json, ไม่มีเทอร์มินัล) จะได้ error เมื่อไม่มีใครให้ถามและไม่มี --template สิ่งที่จะถูกสร้างคือ HelloWorldบอทเทรดต้องมีคีย์และการตั้งค่าบางอย่างก่อนจึงจะรันได้ ลำดับเป็นดังนี้:
bash
init จะแสดงลำดับนี้สำหรับแอปที่สร้างขึ้น ส่วน คีย์และ secret อธิบายว่าคีย์และ secret ถูกเก็บไว้ที่ใดเลือกเซิร์ฟเวอร์
deploy จะใช้รายการแรกที่เข้าเงื่อนไขจากรายการต่อไปนี้:- เซิร์ฟเวอร์ที่
[env.<name>]ของแอประบุไว้อยู่แล้ว --vps <id>ซึ่งเป็น ERPC VPS ในบัญชีของคุณ--new-vpsคือ VPS รายชั่วโมงที่ถูกที่สุดในภูมิภาคที่ใกล้เครื่องนี้ที่สุดตามเขตเวลาของเครื่อง (--regionและ--planใช้เลือกเป็นอย่างอื่น)--host <address>คือเซิร์ฟเวอร์ของคุณเอง ได้แก่ Ubuntu หรือ Debian ที่มี systemd, nftables,sudoและ Python 3 ที่/usr/bin/python3โดยเข้าถึงในฐานะ root หรือผู้ใช้ที่ใช้ sudo ได้โดยไม่ต้องใส่รหัสผ่าน- หากไม่ใช่กรณีข้างต้นและอยู่ในเทอร์มินัล จะแสดงรายการ VPS ที่กำลังทำงานในบัญชีของคุณ โดยมี "start a new one" อยู่ท้ายรายการ
บนเซิร์ฟเวอร์ของคุณเอง ไฟร์วอลล์ของ worker จะ drop การเชื่อมต่อขาเข้าทุกรายการยกเว้น SSH และพอร์ตของแอป ดังนั้นเซิร์ฟเวอร์ที่ให้บริการอย่างอื่นอยู่จึงไม่ใช่เซิร์ฟเวอร์ที่ควรใช้
deploy โดยไม่มีคนอยู่ที่เทอร์มินัล
สคริปต์ หรือเอเจนต์อย่าง
erpc ai ไม่มีเทอร์มินัลให้ตอบ แต่มี flag สองตัวที่ช่วยให้ทำงานได้เช่นเดียวกัน:bash
--yesตอบรับราคาของบริการรายชั่วโมงแต่ละรายการที่คำสั่งระบุ (--new-vps,--grpc,--shreds,--unlimited) และยังตอบการเข้าสู่ระบบครั้งแรกในเซิร์ฟเวอร์ที่ erpc ยังไม่ได้ตั้งให้เข้าได้ด้วยคีย์เท่านั้น ซึ่งเป็นเซิร์ฟเวอร์ใหม่ หรือเซิร์ฟเวอร์ที่ระบุด้วย--vps <ID>: erpc จะเข้าสู่ระบบหนึ่งครั้งด้วยรหัสผ่านของเซิร์ฟเวอร์ ใส่คีย์ของคุณ แล้วปิดการเข้าสู่ระบบด้วยรหัสผ่าน หากไม่มี--yesและไม่มีเทอร์มินัล การเริ่มจะถูกปฏิเสธก่อนซื้อสิ่งใด โดยมี exit status 3- การเลือกระหว่างเซิร์ฟเวอร์ของคุณยังคงต้องอาศัยคน ให้ระบุเซิร์ฟเวอร์ด้วย
--new-vps,--vps <ID>หรือ--host --prepareทำทุกอย่างที่ไม่ต้องใช้ทั้งคีย์เทรดและ secret และไม่เริ่ม หยุด หรือรีสตาร์ทสิ่งใดเลยerpc worker deployครั้งถัดไปในเทอร์มินัลจะส่งมอบคีย์และ secret แล้วเริ่มแอป คีย์เทรดจะถูกอ่านเฉพาะเมื่อมีคนอยู่ที่เทอร์มินัลเท่านั้น
เชื่อมต่อแอปของคุณกับ gRPC, Shreds และ Unlimited RPC
สายข้อมูลรายชั่วโมงของ ERPC อนุญาตเซิร์ฟเวอร์ตามที่อยู่ของเซิร์ฟเวอร์ และไม่รับ token โดย
deploy มี flag หนึ่งตัวต่อสายข้อมูลหนึ่งสาย สำหรับเริ่มสายนั้นให้เซิร์ฟเวอร์ และแอปจะได้รับ endpoint ของสายข้อมูลนั้นเป็นการตั้งค่า:- สายข้อมูลแต่ละสายจะเป็นแพ็กเกจที่ถูกที่สุดในกลุ่มของตัวเอง เว้นแต่
--grpc-plan,--shreds-planหรือ--unlimited-planจะระบุแพ็กเกจไว้ - Unlimited RPC รันบนเซิร์ฟเวอร์เฉพาะที่ใช้เวลาเตรียมนานถึง 45 นาที โดยให้บริการ
sendTransactionและ method สำหรับอ่านข้อมูลอีกจำนวนไม่มาก แต่ไม่ให้บริการgetProgramAccountsหรือgetTokenAccountsByOwnerส่วน endpoint ของ Unlimited RPC เป็น HTTP ธรรมดา (ไม่มี TLS) และอนุญาตเฉพาะที่อยู่ที่อยู่ใน whitelist เท่านั้น
สายข้อมูลสำหรับการรันบนเครื่องของคุณ
erpc worker run รับ --grpc และ --shreds ได้เช่นกัน เพื่อทดลองแอปที่นี่กับข้อมูลจริงก่อนนำไปไว้บนเซิร์ฟเวอร์- ที่อยู่: สายข้อมูลจะอนุญาตที่อยู่ IPv4 สาธารณะของเครื่องนี้ ซึ่งคุณส่งด้วย
--ipโดย erpc จะไม่ค้นหาที่อยู่นี้เอง - การซื้อ: สายข้อมูลใหม่จะถูกซื้อเฉพาะในเทอร์มินัล หลังจากแสดงราคาแล้วเท่านั้น
runไม่มี--yes - การยุติ: เมื่อการรันจบลง สายข้อมูลรายชั่วโมงแต่ละสายจะถูกยุติหลังจากถามก่อน
--keep-linesจะเก็บสายข้อมูลไว้ และยังคงถูกเรียกเก็บเงิน หากการรันจบลงด้วยวิธีอื่น (ปิดเทอร์มินัล หรือกด Ctrl-C ครั้งที่สอง) สายข้อมูลจะยังคงอยู่และถูกเรียกเก็บเงิน - ตัวเลข: สิ่งที่แอปวัดได้ที่นี่รวมระยะทางจากเครื่องนี้ไปยังสายข้อมูลไว้ด้วย จึงช้ากว่าแอปเดียวกันที่รันบนเซิร์ฟเวอร์ที่อยู่ใกล้สายข้อมูล
ขั้นตอนถัดไป
- นำเข้าแอป: deploy แอปที่คุณมีอยู่แล้ว ไม่ว่าจะเขียนด้วยภาษาใด
- คีย์และ secret: เก็บคีย์เทรดและ secret ไว้นอกดิสก์ของเซิร์ฟเวอร์
- ไฟร์วอลล์และ WAF: วาง API สาธารณะไว้หลัง WAF
- สถานะและการเรียกเก็บเงิน: ติดตามแอปและดูค่าใช้จ่ายรายชั่วโมง






