รัน validator และ RPC node ด้วย erpc validator และ erpc rpc

erpc rpc รัน RPC node บน 18 เชน และ erpc validator รัน validator บน 13 เชนในจำนวนนั้น ทุกเชนใช้คำสั่งย่อยชุดเดียวกัน และคำสั่ง lifecycle ของ node เหล่านี้ใช้ได้ฟรีโดยไม่ต้องมีบัญชี
หน้านี้อธิบาย ERPC CLI v0.1.0-rc.4 ซึ่งเป็นเวอร์ชัน pre-release การตรวจรับบนโฮสต์จริงยังดำเนินอยู่ โดยความคืบหน้าของแต่ละเชนและคู่มือของแต่ละเชนจะระบุสถานะของแต่ละเชน

การ deploy node

init จะเตรียมเซิร์ฟเวอร์ และ deploy จะติดตั้งและเริ่ม node ส่วน RPC node ของ Ethereum จะเริ่มจากเซิร์ฟเวอร์ Ubuntu เปล่า เวอร์ชัน 24.04 ขึ้นไป:
bash
# check the server, pin the client releases, store the node in 1Password
erpc rpc --chain ethereum -n mainnet --name eth1 init --host <address> --vault <vault id> --ssh-key ~/.ssh/id_ed25519.pub
# install, fetch a snapshot, apply the firewall, start
erpc rpc --chain ethereum -n mainnet --name eth1 deploy --ssh-key ~/.ssh/id_ed25519.pub
# both layers, sync and head
erpc rpc --chain ethereum -n mainnet --name eth1 status --ssh-key ~/.ssh/id_ed25519.pub
บางเชนต้องเตรียมสิ่งอื่นไว้ก่อน ซึ่งคู่มือของแต่ละเชนจะบอกว่ามีอะไรบ้าง validator หรือ RPC node ของ Solana ที่สร้างใหม่ต้องมีระบบไฟล์ที่ mount ไว้สามชุด และต้องมีคีย์อยู่ใน 1Password แล้ว

เลือกเชน เครือข่าย และโฮสต์

เลือกเชนด้วย --chain, ERPC_CHAIN หรือการตั้งค่า default_chain เลือกเครือข่ายด้วย -n และเลือกโฮสต์ด้วย --name การเปลี่ยนแปลง node บน mainnet ต้องเขียน --chain ไว้ในบรรทัดคำสั่ง
  • erpc validator (alias v), erpc rpc (alias r) และ erpc node (alias n สำหรับ Avalanche และ Sui) ใช้รันคำสั่งของ node
  • รันกลุ่มคำสั่งโดยไม่ระบุคำสั่งย่อย (erpc validator) เพื่อแสดงรายการคำสั่งย่อยของกลุ่มนั้น
  • สำหรับคำสั่งของ node ต้องวาง --json ไว้ก่อนคำสั่ง: erpc --json rpc …

คำสั่งที่ใช้ได้กับทุกเชน

คำสั่งย่อยสิ่งที่ทำ
initตรวจสอบเซิร์ฟเวอร์ pin เวอร์ชันของ client จัดเก็บ node ไว้ใน 1Password และเตรียมโฮสต์
deployติดตั้งหรือ build client ดาวน์โหลด snapshot ใช้ไฟร์วอลล์ในกรณีที่ erpc มีไฟร์วอลล์สำหรับ node นั้น และเริ่ม node
list, status, logsinventory, สถานะ และ journal
start, stop, restartควบคุมบริการตามลำดับที่ถูกต้องสำหรับ node ที่มีหลายเลเยอร์
updateย้ายไปใช้ client เวอร์ชันอื่น โดยนโยบาย rollback ขึ้นอยู่กับ client
update-configใช้การเปลี่ยนแปลงการกำหนดค่าและสิทธิ์การเข้าถึง ตามกฎการรีสตาร์ทของเชน
planแสดงแผนการ deploy หรือแผนการกำหนดค่าของเชน
destroyหยุดหรือปลดระวางบริการที่ถือครองอยู่ ส่วนการเก็บรักษาข้อมูล คีย์ และไฟร์วอลล์เป็นไปตามคู่มือการดำเนินงานของเชน
validator ของ Solana ที่บันทึกไว้บน backend solv จะมีเฉพาะ init, deploy, list และ status จากคำสั่งเหล่านี้

เชนและคู่มือ

เชนRPC nodeValidatorเครือข่ายคู่มือ
Solanaerpc rpc --chain solanaerpc validator --chain solanamainnet, testnetการดำเนินงาน, การลงทะเบียน, เชน
Ethereumerpc rpc --chain eth (mainnet, --type full หรือ archive)erpc validator --chain eth (Hoodi, mainnet)mainnet, HoodiRPC, Validator, เชน
Baseerpc rpc --chain basemainnet, sepoliaเชน
Avalancheerpc rpc --chain avax (ใช้ erpc node ได้ด้วย)erpc validator --chain avaxmainnet, fujiการดำเนินงาน, เชน
Bitcoinerpc rpc --chain bitcoinmainnet, testnet4, signet, regtestRPC, เชน
Polygonerpc rpc --chain polygonerpc validator --chain polygonmainnet, amoyRPC, Validator, เชน
BNB Chainerpc rpc --chain bscerpc validator --chain bscmainnet, chapelRPC, Validator, เชน
Kaiaerpc rpc --chain kaiaerpc validator --chain kaiamainnet, kairosRPC, Core cell, เชน
Arbitrumerpc rpc --chain arbitrum (mainnet, nova, sepolia)erpc validator --chain arbitrum (Arbitrum One mainnet เท่านั้น)mainnet, nova, sepoliaRPC, Validator, เชน
Optimismerpc rpc --chain optimismmainnet, sepoliaการดำเนินงาน, เชน
Hyperliquiderpc rpc --chain hyperliquiderpc validator --chain hyperliquidmainnet, testnetRPC, Validator, AQA, เชน
Monaderpc rpc --chain monaderpc validator --chain monadmainnet, testnetการดำเนินงาน, เชน
TRONerpc rpc --chain tronerpc validator --chain tronmainnet, nileการดำเนินงาน, เชน
Suierpc rpc --chain sui (ใช้ erpc node ได้ด้วย)erpc validator --chain suimainnet, testnetการดำเนินงาน, เชน
NEARerpc rpc --chain nearerpc validator --chain nearmainnet, testnetRPC, Validator, เชน
Arcerpc rpc --chain arcmainnet, testnetRPC runtime, เชน
Robinhood Chainerpc rpc --chain robinhooderpc validator --chain robinhoodmainnet, testnetการรับเข้า, Validator, เชน
Soneiumerpc rpc --chain soneiummainnet, minatoเชน
การรัน node ระบุ client ของแต่ละเชน

สิ่งที่ erpc ต้องการบนเซิร์ฟเวอร์

  • erpc เข้าสู่ระบบผ่าน SSH ในฐานะผู้ใช้ sudo (ค่าเริ่มต้นคือ ubuntu) ด้วยคีย์ของคุณจาก SSH agent ของ 1Password หรือ SSH_AUTH_SOCK และจะ pin host key ไว้ในครั้งแรก
  • เซิร์ฟเวอร์ต้องมี /usr/bin/python3 และบัญชีเข้าสู่ระบบที่ sudo ไม่ถามรหัสผ่าน
  • /opt ต้องเป็นไดเรกทอรีจริงที่มีอยู่แล้ว เป็นของ root และทั้งกลุ่มและผู้ใช้อื่นเขียนไม่ได้ ตามที่ Ubuntu ติดตั้งมาให้ โดย erpc จะไม่สร้างไดเรกทอรีนี้ /opt/erpc รวมถึงไดเรกทอรี runs และ uploads ที่ erpc สร้างไว้ข้างใน ต้องเป็นไปตามกฎเดียวกัน และไม่มีไดเรกทอรีใดในนี้ที่เป็น symbolic link ได้ หากต้องการเก็บไว้บน volume อื่น ให้ mount volume นั้นที่ /opt/erpc สำหรับ node ระบบไฟล์ที่เก็บ /opt/erpc ต้องเก็บรักษา POSIX ACL ไว้ด้วย (ext4 และ XFS ทำเช่นนี้ตามค่าเริ่มต้น) มิฉะนั้น erpc จะหยุด
  • โฮสต์ Solana ใหม่ต้องใช้ Ubuntu 24.04, systemd 255 และ x86-64 ที่มีฟีเจอร์ CPU AVX2 และ SHA โดย ERPC กำหนดให้มีอย่างน้อย 32 logical thread และหน่วยความจำที่ใช้ได้ 480 GiB สำหรับ RPC node ของ Solana, 24 thread และ 300 GiB สำหรับ validator บน mainnet และ 24 thread และ 120 GiB สำหรับ validator บน testnet

วิธีที่ erpc รัน node

  • เชนส่วนใหญ่จะรัน client ในฐานะผู้ใช้เฉพาะของตัวเองที่เข้าสู่ระบบไม่ได้ ตรวจสอบแต่ละเวอร์ชันกับ checksum ที่ pin ไว้ก่อนติดตั้ง และใช้ไฟร์วอลล์ nftables พร้อม rollback แบบตั้งเวลาซึ่งต้องได้รับการยืนยันจากการเชื่อมต่อเพื่อการจัดการครั้งใหม่ แต่ไม่ใช่ทุกเชนที่ทำเช่นนี้: node ของ Solana ที่สร้างใหม่จะถูก build บนเซิร์ฟเวอร์จาก source commit ที่ pin ไว้ และ node ของ Solana ที่บันทึกไว้บน backend solv จะทำงานในฐานะผู้ใช้ที่เข้าสู่ระบบได้พร้อม sudo แบบไม่ใช้รหัสผ่าน และดาวน์โหลดเครื่องมือบางตัวโดยไม่มี checksum
  • erpc ไม่ใช้ไฟร์วอลล์กับ validator ของ Solana บน backend solv, validator ของ Ethereum หรือ node ของ Bitcoin ดังนั้นการกรองการรับส่งข้อมูลของโฮสต์เหล่านั้นเป็นหน้าที่ของคุณ
  • โปรดมีช่องทางอิสระสำหรับเข้าถึงโฮสต์ไว้ระหว่างการเปลี่ยนแปลงเครือข่าย
  • ขณะที่ไดเรกทอรี drop-in ของบริการที่ได้รับการป้องกันมีไฟล์อื่นอยู่ เช่น override.conf จาก systemctl edit ขั้นตอนไฟร์วอลล์จะปฏิเสธและไม่เปลี่ยนแปลงสิ่งใด โปรดย้าย drop-in ของคุณออกจากไดเรกทอรีแล้วรันคำสั่งอีกครั้ง
  • secret ที่ส่งจากเครื่องของคุณจะไปถึงเซิร์ฟเวอร์ผ่าน standard input และไม่ส่งผ่านบรรทัดคำสั่งเลย
  • validator ของ Solana ที่สร้างใหม่จะ sync ภายใต้ identity แยกต่างหากโดยปิดการโหวตไว้ deploy --activate-validator จะสลับโฮสต์ที่ทำงานปกติไปใช้ identity เดิมที่ลงทะเบียนไว้ หลังการลงทะเบียนสาธารณะและการตรวจสอบ BLS แบบ native ส่วน --backend solv ใช้ทำงานต่อกับโฮสต์ solv ที่มีอยู่ และสร้างโฮสต์ใหม่ไม่ได้
  • อย่าเรียกคืน signer ของ validator Ethereum จากข้อมูลสำรอง: ให้ย้าย signer ด้วย erpc v --chain eth migrate
ลงชื่อเข้าใช้และคีย์ แสดงว่า node แต่ละตัวเก็บคีย์ใดไว้ใน 1Password และบนโฮสต์

ความคืบหน้าของแต่ละเชน

สำหรับทุกเชนในตาราง การ implement ได้รับการตรวจสอบแบบออฟไลน์แล้ว ส่วนการตรวจรับแบบ live บนโฮสต์จริงเลื่อนออกไป การตรวจสอบการกำหนดเส้นทางคำสั่งของ RPC ทดสอบคำสั่งย่อยทั่วไปทั้งสิบสองคำสั่งกับทั้งสิบแปดเชน และไม่มีการตรวจสอบใดในนี้ที่รัน node บนโฮสต์จริง หน้าของแต่ละเชนในแผนที่ซอร์สของเชนจะระบุว่าเชนนั้นอยู่ในสถานะใด