مرحبًا بك في المستودع الرسمي لـ Steem ، The Blockchain الذي سيحدث ثورة في الويب ، وقريباً blockchain لرموز الوسائط الذكية!
Steem هو أول blockchain الذي قدم خوارزمية الإجماع الاجتماعي "إثبات الدماغ" لتخصيص الرمز المميز.
كونها واحدة من أكثر مشاريع blockchain تطوراً حاليًا ، فقد أصبحت تربة خصبة للمساعي المباشرة. كما أصبح موطنًا للعديد من المشاريع المركزية للعملة المشفرة.
تهدف Steem إلى أن تكون blockchain المفضلة لتطوير DAPP مع الرموز المميزة للوسائط الذكية في جوهرها. مع SMTS ، يمكن للجميع الاستفادة من قوة Steem.
في الأصل ، تم الإعلان عن Steem في منتدى BitcoIntalk قبل بدء أي تعدين. (Steem حاليا غير قابل للآمال)
البدء في Steem بسيط إلى حد ما. يمكنك إما اختيار استخدام صور Docker ، والبناء باستخدام Docker يدويًا أو البناء من المصدر مباشرة. تم توثيق جميع الخطوات وعلى الرغم من دعم العديد من نظام التشغيل المختلفة ، فإن الأسهل هو Ubuntu 16.04.
فقط هل تريد الاستيقاظ والركض بسرعة؟ لدينا صور Docker مسبقًا لراحتك. مزيد من التفاصيل في دليل QuickStart الخاص بنا.
نوصي بشدة باستخدام إحدى صور Docker الخاصة بنا أو استخدام Docker لبناء Steem. يتم وصف كل من هذه العمليتين في دليل QuickStart.
ولكن إذا كنت لا تزال ترغب في البناء من المصدر ، فلدينا أيضًا تعليمات إنشاء Linux (Ubuntu LTS) و MacOS.
لتشغيل عقدة P2P (CA. 2GB من الذاكرة مطلوبة في الوقت الحالي):
docker run
-d -p 2001:2001 -p 8090:8090 --name steemd-default
steemit/steem
docker logs -f steemd-default # follow along
لتشغيل عقدة مع جميع البيانات (على سبيل المثال لدعم موقع المحتوى) CA. مطلوب 14 جيجابايت من الذاكرة ، والنمو:
docker run
--env USE_WAY_TOO_MUCH_RAM=1 --env USE_FULL_WEB_NODE=1
-d -p 2001:2001 -p 8090:8090 --name steemd-full
steemit/steem
docker logs -f steemd-full
نحن نقدم محفظة CLI أساسية للتفاعل مع steemd . المحفظة موثقة ذاتيا عبر مساعدة سطر الأوامر. يجب أن تقوم العقدة التي تتصل بها عبر محفظة CLI إلى تشغيل account_by_key_api ، condenser_api ، ويجب تكوينه لقبول اتصالات WebSocket عبر webserver-ws-endpoint .
راجع Doc/Devs/testing.md للاختبار أهداف بناء ومعلومات حول كيفية استخدام LCOV للتحقق من تغطية اختبار الرمز.
قم بتشغيل steemd مرة واحدة لإنشاء دليل بيانات وملف التكوين. الموقع الافتراضي هو witness_node_data_dir . اقتل steemd . لن يفعل أي شيء بدون عقد البذور. إذا كنت ترغب في تعديل التكوين حسب رغبتك ، فلدينا مثالين يستخدمان في صور Docker. (عقدة الإجماع ، العقدة الكاملة) ستكون جميع الخيارات موجودة في ملف التكوين الافتراضي وقد يكون هناك المزيد من الخيارات التي تحتاج إلى تغيير من تكوينات Docker (يتم تكوين بعض الخيارات المستخدمة فعليًا في الصور عبر سطر الأوامر).
يمكن العثور على قائمة ببعض العقد البذور التي يمكنك البدء بها في doc/seednodes.txt.
يتم خبز هذا الملف نفسه في صور Docker ويمكن تجاوزه عن طريق تعيين STEEMD_SEED_NODES في بيئة الحاويات في وقت docker run إلى قائمة محددة من العقد البيضاء (مع المنفذ).
هناك عدد غير قليل من متغيرات البيئة التي يمكن تعيينها لتشغيل steemd بطرق مختلفة:
USE_WAY_TOO_MUCH_RAM - إذا تم تعيينه على TRUE ، فإن Steemd يبدأ "عقدة كاملة"USE_FULL_WEB_NODE - إذا تم تعيينه على TRUE ، فسيتم استخدام ملف التكوين الافتراضي الذي يمكّن مجموعة كاملة من الإضافات والمكونات الإضافية المرتبطة بها.USE_NGINX_FRONTEND - إذا تم ضبطه على TRUE ، فسيمكّن ذلك الوكيل العكسي لـ NGINX أمام steemd التي تطلبها WebSocket إلى steemd. سيمكن هذا أيضًا من صحة مخصصة في المسار "/Health" الذي يسرد عدد الثواني التي تبعد عن وقت blockchain الحالي. سيعود "200" إذا كان على بعد أقل من 60 ثانية من المزامنة.USE_MULTICORE_READONLY - إذا تم تعيينه على TRUE ، فسيمكن ذلك Steemd في وضع القارئ المتعدد من الاستفادة من النوى المتعددة (إن وجدت). تتم معالجة طلبات القراءة من قبل العقد القراءة فقط ويتم إعادة توجيه طلبات الكتابة إلى عقدة "الكاتب" الفردي تلقائيًا. NGINX LOAD يوازن جميع الطلبات لعقد القارئ ، 4 لكل جوهر متاح. لا يزال هذا الإعداد يعتبر تجريبيًا وقد يواجه مشكلة في بعض مكالمات API حتى يتم الانتهاء من التطوير.HOME - اضبط هذا على المسار الذي تريد Steemd لتخزين ملفات البيانات الخاصة به (حظر السجل ، والذاكرة المشتركة ، وملف التكوين ، وما إلى ذلك). بشكل افتراضي /var/lib/steemd يتم استخدامه ويوجد داخل حاوية Docker. إذا كنت ترغب في استخدام نقطة تثبيت مختلفة (مثل RamDisk ، أو محرك أقراص مختلف) ، فقد ترغب في تعيين هذا المتغير لتعيين وحدة التخزين إلى حاوية Docker الخاصة بك. يدعم Steemd الآن وضع PAAS (النظام الأساسي كخدمة) يعمل حاليًا مع خدمة Amazon المرنة في الفاصولياء. يمكن إطلاقه باستخدام متغيرات البيئة التالية:
USE_PAAS - إذا تم ضبطه على True ، فسيتم تشغيل Steemd بتنسيق يعمل مع AWS EB. ستخرج الحاويات عند الفشل بحيث يمكن إعادة إطلاقها تلقائيًا بواسطة ECS. يفترض هذا الوضع USE_WAY_TOO_MUCH_RAM و USE_FULL_WEB_NODE ، لا يحتاجون أيضًا إلى تعيينهم.S3_BUCKET - اضبط هذا على اسم S3 Bucket حيث ستخزن ملفات الذاكرة المشتركة لـ Steemd في Amazon S3. سيتم تخزينها مضغوطة بتنسيق BZ2 مع اسم الملف blockchain-$VERSION-latest.tar.bz2 ، حيث إصدار $ هو رقم الإصدار متبوعًا بتجزئة الالتزام القصيرة GIT المخزنة في كل صورة Docker على /etc/steemdversion .SYNC_TO_S3 - إذا تم تعيينه على True ، فستقوم العقدة بإنشاء ملفات ذاكرة مشتركة فقط وتحميلها على دلو S3 المحدد. هذا يجعل عمليات النشر السريعة والتوسيلية ل steemd ممكنة. للحصول على عقدة ويب كاملة ، تحتاج إلى 110 جيجابايت على الأقل من مساحة القرص المتاحة. يستخدم Steemd ملفًا تم تعيين ذاكرة يحتوي حاليًا على 56 جيجابايت من البيانات ، ويتم تعيينه افتراضيًا لاستخدام ما يصل إلى 80 جيجابايت. سجل كتلة blockchain نفسه يزيد قليلاً عن 27 جيجابايت. يوصى بشدة بتشغيل steemd على قرص سريع مثل SSD أو عن طريق وضع ملفات الذاكرة المشتركة في ramdisk واستخدام خيار سطر الأوامر --shared-file-dir=/path لتحديد مكان. مطلوب ما لا يقل عن 16 جيجابايت من الذاكرة لعقدة ويب كاملة. يمكن أن تعمل العقد البذور (وضع P2P) بأقل من 4 جيجابايت من الذاكرة مع ملف حالة 24 جيجابايت. يجب أن يكون أي وحدة المعالجة المركزية ذات الأداء الأساسي المنفرد كافيًا. Steemd ينمو باستمرار. اعتبارًا من أغسطس 2017 ، كانت هذه الأرقام دقيقة ، ولكن قد تجد أنك بحاجة إلى المزيد من مساحة القرص لتشغيل عقدة كاملة. نحن نعمل باستمرار على تحسين استخدام Steem لمساحة القرص.
على Linux ، استخدم تكوين الذاكرة الظاهرية التالية للمزامنة الأولية والإعادة اللاحقة. ليس هناك حاجة للتشغيل العادي.
echo 75 | sudo tee /proc/sys/vm/dirty_background_ratio
echo 1000 | sudo tee /proc/sys/vm/dirty_expire_centisecs
echo 80 | sudo tee /proc/sys/vm/dirty_ratio
echo 30000 | sudo tee /proc/sys/vm/dirty_writeback_centisecs
يتم توفير البرنامج "كما هو" ، دون أي ضمان من أي نوع ، صريح أو ضمني ، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق واللياقة لغرض معين وعدم الانفجار. لا يجوز بأي حال من الأحوال أن يكون المؤلفون أو حاملي حقوق الطبع والنشر مسؤولاً عن أي مطالبة أو أضرار أو مسؤولية أخرى ، سواء في إجراء عقد أو ضرر أو غير ذلك ، ناشئة عن أو خارج البرنامج أو الاستخدام أو غيرها من المعاملات في البرنامج.