تخطَّ إلى المحتوى

الأوامر

نوعان من الأوامر: السكربتات في scripts/، التي تهيئ المضيف والعقدة والعميل، وcasty، وهو العميل نفسه. كل سكربت وكل أمر يقبل --help ويطبع قائمة خياراته كاملة.

تحتاج إلى fid لحساب Farcaster تجريبي ومحفظة تحمل عنوان الحفظ الخاص به؛ ولعقدة جديدة أيضًا رمز Hetzner أو بيانات اعتماد AWS أو مضيف Linux بذاكرة 16 GB وقرص فارغ 2 TB.

الحساب الذي أُنشئ في تطبيق Farcaster يحفظ هذا العنوان داخل التطبيق لا في محفظة المتصفح: اعرض عبارة الاسترداد في التطبيق على هاتفك واستوردها مرة واحدة إلى MetaMask أو Rabby، أو أدخلها في ./bin/casty init في طرفيتك الخاصة بدلًا من casty web.

نافذة طرفيّة
# a new node of your own
git clone https://github.com/castyfun/casty.git && cd casty
export HCLOUD_TOKEN=<token> # Hetzner; or AWS credentials, or 0-provision.sh --host user@ip
./scripts/0-provision.sh # (0) compute: a server, a 2 TB volume, a firewall
./scripts/1-node.sh # (1) a Snapchain read node, synced (hours), and a tunnel
./scripts/2-client.sh --fid <your fid> # (2) a client, ./bin/casty, reading from your node
./bin/casty web # open the link; under "you": "add a key with your wallet"
./bin/casty feed # read; ./bin/casty cast "hello" writes
./scripts/0-provision.sh --destroy # when you are done: server, volume and firewall go

أو من دون عقدة خاصة بك، على عقدة تعمل بالفعل:

نافذة طرفيّة
# casty on a node that already runs
git clone https://github.com/castyfun/casty.git && cd casty
./scripts/2-client.sh --node https://snap.farcaster.xyz:3381 --fid <your fid>
./bin/casty web # open the link; under "you": "add a key with your wallet"
./bin/casty feed # read; ./bin/casty cast "hello" writes
الأمر ما يفعله
./scripts/deploy.sh يشغّل الخطوات 0 و1 و2 بالترتيب، ومع --domain أو --tailscale يضع الصفحة على المضيف. يمكن إعادة تشغيله بأمان: يتابع من حيث توقف التشغيل السابق.
./scripts/0-provision.sh ينشئ خادمًا وقرص بيانات بسعة 2 TB وجدار حماية على Hetzner أو AWS، بحسب بيانات الاعتماد المضبوطة، ويكتب node.env. يسأل قبل إنشاء أي شيء يكلّف مالًا.
./scripts/0-provision.sh --host user@ip يستخدم جهازًا تملكه من قبل: لا ينشئ شيئًا، ويفحص الذاكرة والقرص وDocker والساعة عبر SSH.
./scripts/0-provision.sh --dry-run يطبع كل استدعاء للمزوّد بدل تنفيذه.
./scripts/0-provision.sh --https يفتح أيضًا المنفذين 80 و443، للصفحة على المضيف.
./scripts/0-provision.sh --destroy يحذف الخادم، ثم قرصه، ثم جدار حمايته.
./scripts/1-node.sh يفحص المضيف، ويثبّت Snapchain في ~/snapchain، ويشغّله، وينتظر مزامنته ويفتح النفق.
./scripts/1-node.sh status [--wait] مقدار تأخر كل شريحة؛ ومع --wait يستطلع إلى أن تلحق العقدة بالشبكة.
./scripts/1-node.sh tunnel [--stop] يمرّر المنفذين المحليين 3381 و3383 إلى العقدة عبر SSH، فيصل إليها casty على 127.0.0.1:3381.
./scripts/1-node.sh logs [casty] يتابع سجلات العقدة، أو سجلات casty على المضيف.
./scripts/1-node.sh upgrade يجلب أحدث إصدار من Snapchain، أو --release <version>، ويعيد تشغيل العقدة.
./scripts/1-node.sh serve --domain <name> يشغّل casty serve على المضيف خلف Caddy بشهادة من Let’s Encrypt؛ ومع --tailscale يقدّمه على شبكة tailnet الخاصة بك بدلًا من ذلك.
./scripts/1-node.sh down يوقف العقدة، وcasty على المضيف إن كان يعمل هناك.
./scripts/2-client.sh ينزّل casty لمنصتك، ويتحقق منه مقابل المجاميع الاختبارية للإصدار، ويشغّل casty doctor، ثم casty init.
./scripts/2-client.sh --fid <fid> يهيئ دون عبارة البذرة؛ ثم تضيف المفتاح بمحفظتك في casty web.
./scripts/2-client.sh --from-source يبني casty هنا باستخدام Node 22.12 أو أحدث بدل تنزيله.

رموز خروج السكربتات: 0 تم، 1 غير متزامن أو لم تُجب العقدة، 2 وسائط خاطئة، 3 متطلب مسبق مفقود، 4 فشل المزوّد أو SSH أو تنزيل، 5 المضيف لا يفي بالمتطلبات.

الخيار ما يفعله
--node <url> واجهة HTTP API للعقدة. الافتراضي http://127.0.0.1:3381، وهو النفق من الخطوة 1. يتذكر casty init العقدة التي يُعطاها للأوامر اللاحقة.
--json يطبع النتيجة بصيغة JSON، للسكربتات.
--quiet يطبع النتيجة فقط، دون ملاحظات التقدم.
--config <dir> المكان الذي يحفظ فيه casty إعداداته ومفاتيحه. الافتراضي ~/.config/casty.
الأمر ما يفعله
casty doctor يتحقق من أن العقدة تُجيب، ومقدار تأخرها، وساعتك مقارنة بساعة العقدة، وما هو مهيأ محليًا.
casty init --fid <fid> يهيئ لحسابك دون عبارة البذرة ودون مفتاح؛ ثم يضيف casty web مفتاحًا بمحفظتك.
casty init يضيف مفتاح تطبيق بلا رسوم غاز من عبارة البذرة، تُكتب في مُدخل مخفي ولا تُحفظ أبدًا. --ttl 90d لأطول مدة صلاحية، و--address-index <n> لحساب آخر من العبارة نفسها.
casty whoami معرّف fid الخاص بك، واسم المستخدم، وعنوان الحفظ (custody address)، ومفتاح التطبيق النشط، والتخزين.
casty key list المفاتيح المسجلة لمعرّف fid الخاص بك، مع تمييز المفاتيح التي يحملها casty هذا.
casty key revoke --self يزيل مفتاح casty هذا، بتوقيع المفتاح نفسه.
casty key revoke <key> يزيل أي مفتاح لمعرّف fid الخاص بك؛ ويطلب عبارة البذرة.
الأمر ما يفعله
casty feed أحدث المنشورات منك ومن الحسابات التي تتابعها، مرقّمة. تضيّقها --limit و--since 24h و--no-replies و--channel /name و--only-app و--exclude-app؛ و--fids 2,@alice يقرأ حسابات أخرى.
casty mentions المنشورات التي تذكرك والردود على منشوراتك، الأحدث أولًا.
casty thread <cast> منشور، وما يرد عليه، وردوده.
casty clients [--fid <fid>] مفاتيح التطبيق لحساب ما وأي تطبيق طلب كلًّا منها.
casty storage [--fid <fid>] وحدات التخزين ومدى امتلاء كل مخزن رسائل.
casty node status مزامنة العقدة فقط؛ رمز الخروج 1 إلى أن تلحق بالشبكة.
الأمر ما يفعله
casty cast "<text>" ينشر منشورًا: حتى 320 بايت، أو 1024 كمنشور طويل. --reply <cast> و--channel /name و--embed <url> (مرتين على الأكثر)؛ وتصبح @names إشارات ذِكر.
casty reply <cast> "<text>" يرد على منشور.
casty delete <cast> يحذف أحد منشوراتك.
casty like <cast> / casty unlike <cast> يسجّل إعجابًا بمنشور، أو يسحب الإعجاب.
casty recast <cast> / casty unrecast <cast> يعيد نشر منشور لمتابعيك، أو يسحب إعادة النشر.
casty follow <fid or @name> / casty unfollow يتابع حسابًا، أو يتوقف عن متابعته.

كل كتابة تذهب إلى عقدتك، التي تمرّرها إلى الشبكة؛ وينتظر casty إلى أن يتمكن من قراءة الرسالة مجددًا، ويخبرك إن لم يتمكن.

الأمر ما يفعله
casty web التغذية وسلاسل المحادثة والإشارات والملفات الشخصية ومربع كتابة على http://127.0.0.1:3390، يُقرن بالرابط الذي يطبعه. --listen 0.0.0.0:3390 يسمح بدخول هاتف على الشبكة نفسها؛ و--read-only يُبقي المفتاح مقفلًا.
casty serve الصفحة نفسها فوق فهرس للتغذية، مع إشعارات الدفع، لمضيف العقدة خلف HTTPS. يثبّتها 1-node.sh serve.

حيثما يقبل أمر ما <cast>، يصلح أي مما يلي:

  • رقمه في آخر قائمة عرضها casty feed أو mentions أو thread أو الصفحة: casty like 2؛
  • <fid>:<0x hash>: casty like 2000000001:0x1a2b...؛
  • رابطه على farcaster.xyz.
الرمز المعنى
0 تم.
1 غير متزامن (casty node status)، أو فشل آخر.
2 وسائط خاطئة.
3 رفضت العقدة الرسالة، أو لم تُدمج.
4 لا يمكن الوصول إلى العقدة.
5 مشكلة في الإعدادات أو مخزن المفاتيح أو عبارة البذرة.

تسرد صفحة استكشاف الأخطاء وإصلاحها الرسائل وراء كل رمز وما يجب فعله.