erpc worker ile ilk uygulamanızı bir sunucuya dağıtın
erpc worker ile Rust'ta küçük bir HTTP API oluşturun, makinenizde çalıştırın ve dört komutla bir sunucuya dağıtın.Bu sayfada bir ön sürüm olan ERPC CLI
v0.1.0-rc.4 anlatılır.erpc worker (takma adı erpc w) uygulamanızı native bir Linux binary'sine derler ve onu bir ERPC VPS'te, yeni bir saatlik VPS'te ya da kendi sunucunuzda, arada Docker ve çalışma zamanı olmadan, sıkılaştırılmış bir systemd birimi altında çalıştırır.Sağlık kontrolünden geçerek ayağa kalkmayan bir release, bir öncekine geri alınır ve birden çok uygulama, her biri kendi bağlantı noktasında olmak üzere tek bir sunucuyu paylaşabilir. Uygulamaya dair her şey, uygulamanın kökündeki
erpc.toml dosyasındadır; bu dosya hiçbir gizli değer içermez ve commit edilebilir.Ön koşullar
- Bir ERPC hesabı; bu makinede
erpc loginile oturum açılmış olmalıdır (Oturum açma ve anahtarlar). - ERPC Credit, yeni bir saatlik VPS için. Saatlik bir ürün, önceden satın alınan ERPC Credit'ten ödenir ve kredinin karşılamadığı bir başlatma reddedilir. Fiyatlar Fiyatlandırma sayfasında ve ERPC Web Dashboard üzerinde yer alır.
- Bir SSH anahtarı, bu makinede:
ssh-keygen -t ed25519ya da elinizde olan bir anahtar içinerpc config set ssh_key <path>.pub. - Linux için derleme yapmanın bir yolu. Mac veya Windows'tan: sunucunun Rust hedefi (
rustup target add x86_64-unknown-linux-gnu),zig(macOS'tabrew install zig) vecargo-zigbuild(cargo install cargo-zigbuild --locked). Sunucuyla aynı türden bir Linux makinesinden (her ERPC sunucusu x86-64'tür): cargo'dan başka bir şey gerekmez. Çapraz derleme araçları olmadan uygulama bu makinenin kendi araç zinciriyle derlenir ve bu durumda binary, bağlandığı glibc'ye ihtiyaç duyar;buildvedeploybu glibc'yi belirtir. Bu araçlarla, glibc 2.31 ve üzeri için derlenir.
HelloWorld'ü dağıtın
HelloWorld, hiçbir anahtar, gizli değer veya veri hattı gerektirmeyen, Rust'ta yazılmış küçük bir HTTP API'dir.
GET /, GET /hello/{name} ve GET /healthz isteklerine yanıt verir.bash
init, uygulamayıerpc.tomldosyasıyla birlikte./hello-worldiçinde oluşturur.run, uygulamayı derler ve makinenizde çalıştırır; böylece onu önce curl ile çağırabilirsiniz.deploy, uygulamayı sunucu için derler ve dağıtır. Para gerektiren her şey önce saatlik fiyatıyla, bakiyenizle ve kredinin ne kadar süre yeteceğiyle birlikte gösterilir; terminalde ise yalnızca bir evet yanıtından sonra başlar.api, dağıtılan uygulamanın API'sini makinenizden çağırır; API bu sırada sunucunun loopback'inde kalır.
erpc worker check uygulamada eksik olanları listeler ve bir şey eksikse deploy herhangi bir şey satın almadan önce çalışmayı reddeder. erpc worker build yalnızca derlemeyi çalıştırır; bir sunucu satın alınmadan önce derlemenin başarısız olduğunu görmenin yolu budur.Şablon seçin
erpc worker init tek bir şey sorar: ne oluşturulacağı. Seçim ok tuşlarıyla yapılır.- HelloWorld, başlangıç için kullanılacak şablondur.
- HFT ve pumpfun-bot şimdilik ikisi de pumpfun şablonundan oluşturulur: ValidatorsDAO/solana-stream'den taşınmış bir pump.fun (PumpSwap) trading botu.
--template hft (ya da helloworld, pumpfun-bot veya bir şablon kimliği) seçiciyi atlar, --name ise uygulamaya ad verir. Ad verilmezse uygulama seçime göre adlandırılır (hello-world, hft-bot, pumpfun-bot). Bu adda bir dizin varsa, seçimi yapan bir kişiye -2, -3 vb. verilir; bir betik (--yes, --json, terminal yok) ise hata alır. Sorulacak kimse yoksa ve --template verilmemişse, oluşturulan HelloWorld olur.Bir trading botu çalışmadan önce bir anahtara ve birkaç ayara ihtiyaç duyar. Sırası şöyledir:
bash
init, oluşturduğu uygulama için bu sırayı yazdırır. Anahtarın ve gizli değerlerin nerede saklandığı Anahtarlar ve gizli değerler sayfasında anlatılır.Sunucuyu seçin
deploy, aşağıdakilerden ilkini kullanır:- uygulamanın
[env.<name>]bölümünün zaten belirttiği sunucu; --vps <id>, hesabınızdaki bir ERPC VPS;--new-vps, saat dilimine göre bu makineye en yakın bölgedeki en ucuz saatlik VPS (--regionve--planbaşka bir seçim yapar);--host <address>, kendi sunucunuz: systemd, nftables,sudove/usr/bin/python3konumunda Python 3 bulunan Ubuntu veya Debian; root olarak ya da parolasız sudo yetkisine sahip bir kullanıcıyla erişilir;- bunların hiçbiri yoksa, terminalde, hesabınızın çalışan VPS'lerinin bir listesi; listenin sonunda "start a new one" yer alır.
Kendi sunucunuzda worker'ın güvenlik duvarı, SSH ve uygulamanın bağlantı noktası dışındaki her gelen bağlantıyı düşürür; bu nedenle başka bir şey sunan bir sunucu, kullanılacak sunucu değildir.
Terminal başında kimse olmadan dağıtın
Bir betiğin ya da
erpc ai gibi bir ajanın yanıt verebileceği bir terminali yoktur. İki bayrak, yine de işi yapmasını sağlar:bash
--yes, komutun adını verdiği her saatlik ürünün fiyat sorusunu yanıtlar (--new-vps,--grpc,--shreds,--unlimited). Ayrıca erpc'nin henüz yalnızca anahtarla girişe geçirmediği bir sunucuya (yeni bir sunucu ya da--vps <ID>ile adı verilen bir sunucu) yapılan ilk girişi de yanıtlar: erpc sunucunun parolasıyla bir kez giriş yapar, anahtarınızı yerleştirir ve parolayla girişleri kapatır.--yesolmadan ve terminal olmadan bir başlatma, herhangi bir şey satın alınmadan önce çıkış kodu 3 ile reddedilir.- Sunucularınız arasından seçim yapmak yine de bir kişi gerektirir. Sunucuyu
--new-vps,--vps <ID>veya--hostile belirtin. --prepare, ne trading anahtarını ne de bir gizli değeri gerektiren her şeyi yapar; hiçbir şeyi başlatmaz, durdurmaz veya yeniden başlatmaz. Terminalde çalıştırılan bir sonrakierpc worker deploy, anahtarı ve gizli değerleri teslim eder ve uygulamayı başlatır. Trading anahtarı yalnızca terminal başındaki bir kişi için okunur.
Uygulamanızı gRPC, Shreds ve Unlimited RPC'ye bağlayın
ERPC'nin saatlik hatları sunucuyu adresine göre kabul eder ve hiçbir token kabul etmez. Her hat,
deploy üzerindeki kendi bayrağıyla sunucu için başlatılır ve uygulama, hattın endpoint'ini bir ayar olarak alır:--grpc-plan,--shreds-planveya--unlimited-planbir plan belirtmedikçe her hat, kendi ailesinin en ucuzudur.- Unlimited RPC, kurulumu 45 dakikaya kadar süren özel bir sunucuda çalışır.
sendTransactionve kısa bir okuma listesi sunar;getProgramAccountsveyagetTokenAccountsByOwnersunmaz. Endpoint'i düz HTTP'dir (TLS yok) ve yalnızca allowlist'teki adresi kabul eder.
Makinenizdeki bir çalıştırma için hatlar
erpc worker run de --grpc ve --shreds alır; böylece uygulamayı bir sunucuya gitmeden önce burada gerçek verilerle deneyebilirsiniz.- Adres: hatlar, bu makinenin
--ipile verdiğiniz genel IPv4 adresini kabul eder. erpc bu adresi kendisi bulmaz. - Satın alma: yeni bir hat yalnızca terminalde, fiyatı gösterildikten sonra satın alınır.
runkomutunda--yesyoktur. - Sonlandırma: çalıştırma sona erdiğinde her saatlik hat, sorulduktan sonra sonlandırılır.
--keep-lineshatları tutar; ücretlendirilmeye devam ederler. Çalıştırma başka bir şekilde sona ererse (terminal kapanırsa, ikinci bir Ctrl-C), hatlar kalır ve ücretlendirilir. - Ölçümler: uygulamanın burada ölçtükleri, bu makine ile hat arasındaki mesafeyi de içerir; bu yüzden aynı uygulamanın hattın yakınındaki bir sunucuda çalışan hâlinden daha yavaştır.
Sonraki adımlar
- Uygulama içe aktarma: Elinizde olan bir uygulamayı, hangi dilde olursa olsun dağıtın.
- Anahtarlar ve gizli değerler: Trading anahtarını ve gizli değerleri sunucunun diskinden uzak tutun.
- Güvenlik duvarı ve WAF: Herkese açık bir API'yi WAF'ın arkasına koyun.
- Durum ve faturalandırma: Uygulamayı izleyin ve saatlik maliyetini görün.






