ord
ord
عبارة عن فهرس ومستكشف الكتل ومحفظة سطر الأوامر. إنه برنامج تجريبي بدون ضمان. راجع الترخيص لمزيد من التفاصيل.
تضفي النظرية الترتيبية على الساتوشي قيمة نقودية، مما يسمح بجمعها وتداولها كتحف.
الأرقام الترتيبية هي أرقام تسلسلية للساتوشي، يتم تعيينها بالترتيب الذي تم تعدينها به، ويتم الاحتفاظ بها عبر المعاملات.
راجع المستندات للحصول على الوثائق والأدلة.
راجع BIP للحصول على وصف فني لخوارزمية التخصيص والنقل.
راجع مجلس إدارة المشروع للتعرف على المشكلات ذات الأولوية حاليًا.
انضم إلى خادم Discord للدردشة مع زملائك المنحطين الترتيبيين.
Ordinals مفتوح المصدر وممول من المجتمع. المشرف الرئيسي الحالي على ord
هو Raphjaph. يتم تمويل عمل راف على ord
بالكامل من التبرعات. اذا كنت تستطيع، يرجى النظر في التبرع!
عنوان التبرع هو bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3.
هذا العنوان هو 2 من 4 محفظة متعددة التوقيعات تحتوي على مفاتيح يحتفظ بها رافجاف وإيرين ورودارمور وأوردينالي.
سيتم استخدام عملة البيتكوين المستلمة لتمويل صيانة وتطوير ord
، بالإضافة إلى تكاليف استضافة ordinals.com.
شكرا لك على التبرع!
يعتمد ord
على Bitcoin Core لإدارة المفاتيح الخاصة وتوقيع المعاملات. يتضمن هذا عددًا من الآثار التي يجب عليك فهمها حتى تتمكن من استخدام أوامر ord
Wallet بأمان:
Bitcoin Core ليس على علم بالنقوش ولا يقوم بالتحكم في الأقمار الصناعية. قد يؤدي استخدام أوامر bitcoin-cli
ومكالمات RPC مع محافظ ord
إلى فقدان النقوش.
تقوم أوامر ord wallet
تلقائيًا بتحميل محفظة ord
المقدمة بواسطة خيار --name
، والذي يكون الإعداد الافتراضي هو "ord". ضع في اعتبارك أنه بعد تشغيل أمر ord wallet
، قد يتم تحميل محفظة ord
.
نظرًا لأن ord
لديه حق الوصول إلى محافظ Bitcoin Core الخاصة بك، فلا ينبغي استخدامه مع ord
التي تحتوي على مبلغ مادي من الأموال. حافظ على الفصل بين المحافظ الترتيبية والكاردينال.
محافظ Alpha ord
غير متوافقة مع المحافظ التي تم إنشاؤها بواسطة الإصدارات السابقة من ord
. للترحيل، استخدم ord wallet send
من المحفظة القديمة لإرسال الرسائل النصية والنقوش إلى العناوين التي تم إنشاؤها بواسطة المحفظة الجديدة مع ord wallet receive
.
ord
مكتوب بلغة Rust ويمكن بناؤه من المصدر. الثنائيات المعدة مسبقًا متاحة على صفحة الإصدارات.
يمكنك تثبيت أحدث إصدار ثنائي تم إنشاؤه مسبقًا من سطر الأوامر باستخدام:
curl --proto ' =https ' --tlsv1.2 -fsLS https://ordinals.com/install.sh | bash -s
بمجرد تثبيت ord
، يجب أن تكون قادرًا على تشغيل ord --version
في سطر الأوامر.
في Linux، يتطلب ord
libssl-dev
عند البناء من المصدر.
في توزيعات Linux المشتقة من Debian، بما في ذلك Ubuntu:
sudo apt-get install pkg-config libssl-dev build-essential
في توزيعات Linux المشتقة من Red Hat:
yum install -y pkgconfig openssl-devel
yum groupinstall "Development Tools"
ستحتاج أيضًا إلى الصدأ:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
استنساخ ord
:
git clone https://github.com/ordinals/ord.git
cd ord
لإنشاء إصدار محدد من ord
، عليك أولاً التحقق من هذا الإصدار:
git checkout <VERSION>
وأخيرًا لبناء ord
فعليًا:
cargo build --release
بمجرد إنشائه، يمكن العثور على ملف ord
الثنائي على ./target/release/ord
.
يتطلب ord
إصدار rustc
1.79.0 أو إصدار أحدث. قم بتشغيل rustc --version
للتأكد من أن لديك هذا الإصدار. قم بتشغيل rustup update
للحصول على أحدث إصدار مستقر.
يمكن إنشاء صورة Docker باستخدام:
docker build -t ordinals/ord .
ord
متاح في Homebrew:
brew install ord
لإنشاء حزمة .deb
:
cargo install cargo-deb
cargo deb
إذا كنت ترغب في المساهمة، فهناك بعض الأشياء التي من المفيد معرفتها. لقد ركزنا كثيرًا على الاختبار المناسب في قاعدة التعليمات البرمجية، مع ثلاث فئات واسعة من الاختبارات: الوحدة والتكامل والضباب. يمكن عادةً العثور على اختبارات الوحدة في أسفل الملف في كتلة تعديل تسمى tests
. إذا قمت بإضافة أو تعديل وظيفة، فيرجى أيضًا إضافة اختبار مناظر. تحاول اختبارات التكامل اختبار الوظائف الشاملة عن طريق تنفيذ أمر فرعي للثنائي. يمكن العثور عليها في دليل الاختبارات. ليس لدينا الكثير من التشويش ولكن يمكن العثور على البنية الأساسية لكيفية القيام بذلك في دليل التشويش.
نوصي بشدة بالتثبيت فقط لتسهيل إجراء الاختبارات. لتشغيل مجموعة اختبار CI الخاصة بنا، عليك القيام بما يلي:
just ci
وهذا يتوافق مع الأوامر:
cargo fmt -- --check
cargo test --all
cargo test --all -- --ignored
قم بإلقاء نظرة على ملف justfile لرؤية بعض الوصفات (الأوامر) الأكثر فائدة. وهنا زوجين أكثر جيدة:
just fmt
just fuzz
just doc
just watch ltest --all
إذا فشلت الاختبارات أو توقفت، فقد تحتاج إلى زيادة الحد الأقصى لعدد الملفات المفتوحة عن طريق تشغيل ulimit -n 1024
في الصدفة الخاصة بك قبل تشغيل الاختبارات، أو في تكوين الصدفة الخاص بك.
نحاول أيضًا اتباع نهج TDD (التطوير القائم على الاختبار)، مما يعني أننا نستخدم الاختبارات كوسيلة للحصول على رؤية واضحة للتعليمات البرمجية. ولهذا السبب يجب أن يتم إجراء الاختبارات بسرعة بحيث تكون حلقة ردود الفعل بين إجراء التغيير وتشغيل الاختبار ورؤية النتيجة صغيرة. لتسهيل ذلك، أنشأنا نسخة Bitcoin Core ساخرة في mockcore
يتطلب ord
عقدة bitcoind
متزامنة مع -txindex
لإنشاء فهرس مواقع ساتوشي. يتواصل ord
مع bitcoind
عبر RPC.
إذا تم تشغيل bitcoind
محليًا بواسطة نفس المستخدم، دون تكوين إضافي، فيجب على ord
العثور عليه تلقائيًا عن طريق قراءة ملف .cookie
من datadir الخاص بـ bitcoind
، والاتصال باستخدام منفذ RPC الافتراضي.
إذا لم يكن bitcoind
موجودًا على الشبكة الرئيسية، أو لم يتم تشغيله بواسطة نفس المستخدم، أو كان لديه datadir غير افتراضي، أو منفذ غير افتراضي، فستحتاج إلى تمرير إشارات إضافية إلى ord
. راجع ord --help
للحصول على التفاصيل.
bitcoind
RPC يقوم ord
بإجراء مكالمات RPC إلى bitcoind
، والتي تتطلب عادةً اسم مستخدم وكلمة مرور.
افتراضيًا، يبحث ord
عن اسم مستخدم وكلمة مرور في ملف تعريف الارتباط الذي تم إنشاؤه بواسطة bitcoind
.
يمكن تكوين مسار ملف تعريف الارتباط باستخدام --cookie-file
:
ord --cookie-file /path/to/cookie/file server
وبدلاً من ذلك، يمكن تزويد ord
باسم مستخدم وكلمة مرور في سطر الأوامر:
ord --bitcoin-rpc-username foo --bitcoin-rpc-password bar server
استخدام متغيرات البيئة:
export ORD_BITCOIN_RPC_USERNAME=foo
export ORD_BITCOIN_RPC_PASSWORD=bar
ord server
أو في ملف الكونفج:
bitcoin_rpc_username : foo
bitcoin_rpc_password : bar
يستخدم ord
env_logger. قم بتعيين متغير البيئة RUST_LOG
لتشغيل التسجيل. على سبيل المثال، قم بتشغيل الخادم وإظهار رسائل السجل على مستوى info
وما فوق:
$ RUST_LOG=info cargo run server
قم بتعيين متغير البيئة RUST_BACKTRACE
لتشغيل التتبع الخلفي الكامل للصدأ. على سبيل المثال، قم بتشغيل الخادم وتشغيل تصحيح الأخطاء والتتبع الخلفي الكامل:
$ RUST_BACKTRACE=1 RUST_LOG=debug ord server
تستخدم رسائل التزام الإصدار القالب التالي:
Release x.y.z
- Bump version: x.y.z → x.y.z
- Update changelog
- Update changelog contributor credits
- Update dependencies
لترجمة المستندات نستخدم مساعد mdBook i18n.
راجع دليل استخدام mdbook-i18n-helpers للحصول على المساعدة.
تعد إضافة ترجمات جديدة أمرًا متضمنًا إلى حد ما، لذا لا تتردد في بدء الترجمة وفتح طلب سحب، حتى لو كانت ترجمتك غير مكتملة.
ألق نظرة على هذا الالتزام للحصول على مثال لإضافة ترجمة جديدة. سيساعدك المشرف على دمجها في نظام البناء الخاص بنا.
لبدء ترجمة جديدة:
قم بتثبيت mdbook
و mdbook-i18n-helpers
و mdbook-linkcheck
:
cargo install mdbook mdbook-i18n-helpers mdbook-linkcheck
قم بإنشاء ملف pot
جديد باسم messages.pot
:
MDBOOK_OUTPUT='{"xgettext": {"pot-file": "messages.pot"}}'
mdbook build -d po
قم بتشغيل msgmerge
على XX.po
حيث XX
هو رمز ISO-639 المكون من حرفين للغة التي تترجم إليها. سيؤدي هذا إلى تحديث ملف po
بنص أحدث إصدار باللغة الإنجليزية:
msgmerge --update po/XX.po po/messages.pot
يتم تمييز الأقسام غير المترجمة بـ #, fuzzy
في XX.po
. قم بتحرير سلسلة msgstr
بالنص المترجم.
قم بتنفيذ الأمر mdbook
لإعادة إنشاء المستندات. بالنسبة للصينيين، رمز ISO-639 المكون من حرفين هو zh
:
mdbook build docs -d build
MDBOOK_BOOK__LANGUAGE=zh mdbook build docs -d build/zh
mv docs/build/zh/html docs/build/html/zh
python3 -m http.server --directory docs/build/html --bind 127.0.0.1 8080
إذا كان كل شيء يبدو جيدًا، فالتزم بـ XX.po
وافتح طلب سحب على GitHub. يجب حذف الملفات الأخرى التي تم تغييرها من طلب السحب.