مرجع سولانا CLI

تقوم واجهة سطر الأوامر solana بإعداد الاتصال بالـ cluster، وقراءة حالة الشبكة، وإرسال SOL، وإدارة الـ nonce الدائم، ونشر البرامج، وتشغيل حسابات الـ stake والتصويت.

يتبع هذا المرجع Agave v4.2.1. شغّل solana --version للتحقق من الإصدار المثبّت، واستخدم --help لمعرفة الخيارات الدقيقة المتاحة في ذلك الإصدار.

الأوامر التي تنشئ أو تحوّل أو تفوّض أو تسحب أو تنشر ترسل معاملات. تأكد من الـ cluster والموقّع المُعدّين قبل تشغيلها. رموز Devnet وTestnet لا قيمة لها؛ أما أوامر Mainnet فتستخدم SOL حقيقية.

هيكل الأوامر

solana [GLOBAL_OPTIONS] <COMMAND> [COMMAND_OPTIONS]

احصل على المساعدة على أي مستوى:

solana --help
solana transfer --help
solana address-lookup-table extend --help

الخيارات العامة

يمكن وضع الخيارات العامة قبل الأمر. تكرر مساعدة الأمر الخاص الخيارات المنطبقة على ذلك الأمر.

الخيارالغرض
-u, --url <URL_OR_MONIKER>حدّد عنوان RPC URL أو mainnet-beta أو testnet أو devnet أو localhost.
--ws <URL>تجاوز نقطة نهاية WebSocket.
-k, --keypair <KEYPAIR>حدّد ملف keypair أو ASK أو stdin (-) أو عنوان URL لموقّع مدعوم.
-C, --config <FILEPATH>استخدم ملف إعدادات CLI مختلفًا.
--commitment <LEVEL>اقرأ عند مستوى التأكيد processed أو confirmed أو finalized.
--output <FORMAT>أعد json أو json-compact حيثما كان مدعومًا.
--skip-preflightأرسل دون محاكاة عبر RPC. لا تستخدمه إلا عند فهم مخاطر الفشل.
--use-tpu-clientأرسل المعاملات عبر عميل TPU.
--no-address-labelsاطبع العناوين دون التسميات المحلية.
--skip-seed-phrase-validationاسمح بعبارة استرداد خارج قائمة BIP39 الإنجليزية.
-v, --verboseاعرض مخرجات إضافية للأمر.
-V, --versionاطبع إصدار CLI المثبّت.

إعداد CLI

# Inspect the effective configuration.
solana config get
# Use Devnet and a specific signer by default.
solana config set --url devnet
solana config set --keypair ./devnet-keypair.json
# Override defaults for one command.
solana --url mainnet-beta --keypair usb://ledger address

يحتوي الإعداد على RPC URL وWebSocket URL والموقّع الافتراضي ومستوى التأكيد. يتجاوز خيار سطر الأوامر القيمة المحفوظة لذلك التنفيذ.

سير عمل الحسابات والمعاملات الشائعة

# Print the default signer's address and balance.
solana address
solana balance
# Read an account as JSON.
solana account <ACCOUNT_ADDRESS> --output json
# Request Devnet SOL.
solana airdrop 1 --url devnet
# Send SOL and then confirm the returned signature.
solana transfer <RECIPIENT_ADDRESS> 0.1 --allow-unfunded-recipient
solana confirm <TRANSACTION_SIGNATURE>
# Inspect recent activity and stream logs mentioning an address.
solana transaction-history <ADDRESS> --limit 20
solana logs <ADDRESS>

يقبل transfer عملة SOL افتراضيًا. استخدم ALL كمبلغ لتحويل الرصيد المتاح بعد الرسوم. لأمثلة الرموز، راجع البدء السريع للرموز.

سير عمل البرامج

# Deploy or upgrade an SBF program.
solana program deploy ./target/deploy/my_program.so
# Inspect the deployed program and list programs controlled by the signer.
solana program show <PROGRAM_ID>
solana program show --programs
# Close a program buffer and recover its lamports.
solana program close <BUFFER_ADDRESS>

مرّر --program-id <KEYPAIR_OR_ADDRESS> عندما يجب أن يستخدم النشر معرّف برنامج معروفًا. يجعل --final النشر الجديد غير قابل للتغيير؛ اقرأ مساعدته بعناية قبل استخدامه لأن سلطة الترقية لا يمكن استعادتها.

سير عمل الـ nonce الدائم

solana-keygen new --outfile nonce-account.json
solana create-nonce-account nonce-account.json 0.1
solana nonce nonce-account.json
solana new-nonce nonce-account.json
solana withdraw-from-nonce-account nonce-account.json <RECIPIENT_ADDRESS> ALL

استخدم authorize-nonce-account لتغيير سلطة الـ nonce وnonce-account لفحص الحالة الكاملة للحساب. كما تقبل المعاملات التي تستخدم nonce الخيارين --nonce و--nonce-authority في الأوامر المدعومة.

سير عمل الـ stake

solana-keygen new --outfile stake-account.json
solana create-stake-account stake-account.json 1
solana delegate-stake stake-account.json <VOTE_ACCOUNT_ADDRESS>
solana stake-account stake-account.json
solana deactivate-stake stake-account.json
solana withdraw-stake stake-account.json <RECIPIENT_ADDRESS> ALL

يكتمل إلغاء التفعيل عند حدود epoch وقد يستغرق أكثر من epoch واحد. استخدم stakes وvalidators وstake-history وstake-minimum-delegation من أجل فحص حالة الـ cluster والتفويض قبل إرسال التغييرات.

أدوات العناوين

# Derive a PDA from typed seeds.
solana find-program-derived-address \
<PROGRAM_ID> \
string:profile \
pubkey:<OWNER_ADDRESS>
# Create and extend an address lookup table.
solana address-lookup-table create
solana address-lookup-table extend \
<LOOKUP_TABLE_ADDRESS> \
--addresses <ADDRESS_1>,<ADDRESS_2>

تستخدم قيم seed الخاصة بـ PDA الصيغة PREFIX:VALUE. تشمل البادئات المدعومة string وpubkey وhex وu8 وترميزات الأعداد الصحيحة ذات العرض الثابت، الموقّعة أو غير الموقّعة، مثل u64le.

الرسائل خارج السلسلة وإكمال shell التلقائي

solana sign-offchain-message "terms accepted"
solana verify-offchain-signature \
"terms accepted" \
<SIGNATURE> \
--signer <SIGNER_ADDRESS>
# Print a completion script for the current shell.
solana completion --shell zsh

الفهرس الكامل للأوامر

يتضمن الفهرس التالي كل أمر من المستوى الأعلى في Agave v4.2.1. أوامر مثل program وconfig وfeature وaddress-lookup-table تحتوي على أوامر فرعية؛ شغّل <command> --help لعرضها.

الأمرالوصف
accountاعرض lamports الحساب ومالكه وبياناته وحالة قابليته للتنفيذ.
addressاطبع المفتاح العام للموقّع المحدد.
address-lookup-tableأنشئ جداول البحث عن العناوين ووسّعها وجمّدها وعطّلها وأغلقها وافحصها.
airdropاطلب SOL من faucet الخاص بالـ cluster.
alpenglow-genesis-infoاقرأ معلومات عن شهادة genesis الخاصة بـ Alpenglow.
authorize-nonce-accountعيّن سلطة لحساب nonce دائم.
balanceاعرض رصيد SOL للحساب.
blockاجلب كتلة مؤكدة حسب slot.
block-heightاعرض ارتفاع الكتلة الحالي.
block-productionاعرض إنتاج الكتل لدى leader ضمن نطاق slot.
block-timeقدّر وقت إنتاج كتلة.
catchupانتظر حتى يلحق validator بالـ cluster.
close-vote-accountأغلق حساب تصويت واسحب أمواله المتبقية.
cluster-dateقدّر تاريخ الـ cluster من وقت genesis ووقت الشبكة.
cluster-versionاعرض إصدار برنامج نقطة دخول الـ cluster.
completionأنشئ سكربت إكمال تلقائي لـ shell.
configاعرض إعدادات CLI الافتراضية أو عيّنها.
confirmتحقق من حالة تأكيد توقيع معاملة.
create-address-with-seedاشتق عنوان نظام من base وseed ومعرّف البرنامج.
create-nonce-accountأنشئ حساب nonce دائمًا وهيّئه.
create-stake-accountأنشئ حساب stake.
create-stake-account-checkedأنشئ حساب stake مع التحقق من سلطة السحب كموقّع.
create-vote-accountأنشئ حساب تصويت لـ validator.
deactivate-stakeابدأ إلغاء تفعيل الـ stake المفوَّض.
decode-transactionفك ترميز معاملة مسلسلة.
delegate-stakeفوّض حساب stake إلى حساب تصويت.
epochاعرض رقم epoch الحالي.
epoch-infoاعرض معلومات epoch وslot وارتفاع الكتلة وعدد المعاملات.
featureافحص حسابات ميزات وقت التشغيل وأدرها.
find-program-derived-addressاشتق PDA وbump القانوني من قيم seed محددة النوع.
first-available-blockاعرض أول كتلة كاملة تحتفظ بها عقدة RPC.
genesis-hashاعرض هاش genesis الخاص بالـ cluster.
gossipاعرض العقد المرئية عبر gossip.
helpاطبع المساعدة الجذرية أو مساعدة أمر.
inflationاعرض معلومات حاكم التضخم أو معدله أو المكافآت.
largest-accountsاعرض أكبر حسابات الـ cluster.
leader-scheduleاعرض جدول leader.
live-slotsبثّ تقدّم slot الحالي.
logsبثّ سجلات المعاملات، مع إمكانية التصفية حسب العنوان.
merge-stakeادمج حسابات stake المتوافقة.
new-nonceانقل nonce دائمًا إلى القيمة التالية.
nonceاطبع قيمة nonce دائم.
nonce-accountاعرض الحالة الكاملة لحساب nonce دائم.
programانشر البرامج والمخازن المؤقتة أو رقِّها أو افحصها أو استخرجها أو عيّن سلطتها أو أغلقها.
recent-prioritization-feesاعرض رسوم الأولوية الأخيرة للحسابات القابلة للكتابة.
rentاحسب الحد الأدنى للإعفاء من الإيجار لحجم بيانات حساب.
resolve-signerحوّل مرجع موقّع عامًا مثل عنوان Ledger URL إلى مساره المحدد.
sign-offchain-messageوقّع رسالة UTF-8 خارج السلسلة.
slotاعرض slot الحالي.
split-stakeقسّم lamports من حساب stake إلى حساب آخر.
stake-accountاعرض سلطات حساب stake ورصيده وحالة التفويض.
stake-authorizeغيّر سلطة stake أو سلطة السحب.
stake-authorize-checkedغيّر سلطة stake مع التحقق من السلطة الجديدة كموقّع.
stake-historyاعرض سجل تفعيل stake وإلغاء تفعيله في الـ cluster.
stake-minimum-delegationاعرض الحد الأدنى لتفويض stake في الـ cluster.
stake-set-lockupعيّن قفل حساب stake.
stake-set-lockup-checkedعيّن قفلًا مع التحقق من الوصي الجديد كموقّع.
stakesاعرض حسابات stake، مع إمكانية التصفية حسب validator أو السلطة.
supplyاعرض المعروض من SOL المتداول وغير المتداول والإجمالي.
transaction-countاعرض عدد معاملات الـ cluster.
transaction-historyاعرض المعاملات المتعلقة بعنوان من الأحدث إلى الأقدم.
transferحوّل SOL بين حسابات النظام.
upgrade-nonce-accountرقِّ حساب nonce قديمًا بصورة متساوية الأثر (idempotent).
validator-infoانشر معلومات validator أو اقرأها.
validatorsاعرض ملخص stake لدى validator والعمولة ومعدل التخطي والإصدار.
verify-offchain-signatureتحقق من رسالة موقّعة خارج السلسلة.
vote-accountاعرض سلطات حساب التصويت وعمولته ونقاطه وأصواته.
vote-authorize-voterغيّر سلطة المصوّت لحساب تصويت.
vote-authorize-voter-checkedغيّر سلطة المصوّت مع التحقق من السلطة الجديدة كموقّع.
vote-authorize-withdrawerغيّر سلطة السحب لحساب تصويت.
vote-authorize-withdrawer-checkedغيّر سلطة السحب مع التحقق من السلطة الجديدة كموقّع.
vote-update-commissionغيّر عمولة حساب تصويت.
vote-update-validatorغيّر هوية validator المعيّنة لحساب تصويت.
withdraw-from-nonce-accountاسحب بعض SOL أو كلها من حساب nonce دائم.
withdraw-from-vote-accountاسحب lamports من حساب تصويت.
withdraw-stakeاسحب SOL غير النشطة من حساب stake.

مخرجات السكربتات

استخدم --output json أو --output json-compact حيثما كان مدعومًا بدلًا من تحليل المخرجات المقروءة للبشر:

solana epoch-info --output json
solana account <ACCOUNT_ADDRESS> --output json-compact
solana validators --output json > validators.json

لا يدعم كل أمر المخرجات المهيكلة. راجع مساعدة الأمر قبل الاعتماد عليها في الأتمتة، واعتبر رمز الخروج غير الصفري فشلًا.

Is this page helpful?