نصائح لتحسين أداء شبكة MultiChain
مضاعفة سرعة عقدة وشبكة MultiChain
إن العقبة الرئيسية في أداء البلوكتشين هي السرعة التي يمكن بها للعقد معالجة المعاملات، سواء عند وصولها لأول مرة (في مجمع الذاكرة) أو عند تأكيدها داخل كتلة في السلسلة.
وفي الاختبارات التي أجريت على الأجهزة المتطورة، تمت ملاحظة أن عقد MultiChain تعالج ما يصل إلى 2500 معاملة في الثانية (الذروة، دون تأكيد) وما يصل إلى 2000 معاملة في الثانية (مستمرة، مع التأكيد)، باستخدام المحفظة المدمجة والحسابات العادية، واجهات برمجة التطبيقات.
ومن أجل تحسين أداء MultiChain فإن هناك عددا من النقاط والنصائح التي يمكن اتباعها وهي متعلقة بمواصفات الخوادم التي تعمل عليها MultiChain وأنماط الاستخدام الموصى بها.
مواصفات الخادم
1- استخدم وحدات المعالجة المركزية (CPUs) ذات سرعة الساعة العالية، والتي توفر أداء سريعا أحادي الخيط. يعد وجود عدد كبير من مراكز وحدة المعالجة المركزية أقل أهمية، حيث يمكن لـ MultiChain تحقيق الاستخدام الأمثل لحوالي 4 سلاسل على الأكثر.
2- تأكد من ضبط مقياس تردد وحدة المعالجة المركزية لديك على performance أو ondemand(استخدم أدوات cpupower المساعدة في بعض إصدارات نظام لينوكس).
3- إذا كان ذلك مناسبا، استخدم تثبيت NUMA CPU لزيادة عرض النطاق الترددي بين وحدة المعالجة المركزية والذاكرة (استخدمه numactl على نظام لينوكس).
4- تأكد من أن مساحة تخزين القرص لكل دليل بلوكتشين الخاص بكل عقدة محلية وتجنب استخدام التخزين المتصل بالشبكة.
5- استخدم محركات الأقراص ذات الحالة الصلبة (SSDs) بدلا من محركات الأقراص الثابتة التقليدية (HDDs).
استخدام شبكة MultiChain
1- إذا كنت ترسل معاملات باستخدام أي واجهة برمجة تطبيقات باستثناء createrawtransaction، فاحتفظ بعدد مخرجات المعاملات غير المنفقة (UTXOs) التي تتبعها المحفظة. سيتسع هذا مع تلقي العناوين الموجودة في المحفظة للمدفوعات الواردة، ويمكن رؤيته في مجال utxocount كاستجابة للأمر getwalletinfo. لتقليله، قم بإلقاء نظرة على معلمات autocombine* وقت التشغيل أو استخدم واجهة برمجة التطبيقات combineunspent.
2- إذا كنت تستخدم مرشحات المعاملات في MultiChain 2، فسيكون عنق الزجاجة الرئيسي هو وظائف تكرار الاتصال مثل getfiltertransaction. حاول استخدام عمليات تكرار الاتصال بشكل مقتصد، وفكر في دمج عوامل التصفية معا لتقليل عدد هذه المكالمات.
3- إذا كان عبء العمل الخاص بك يتضمن إرسال المعاملات والاستعلام عن المعاملات أو التدفقات، فافصل هذه الوظائف إلى عقدتين.
4- قم بتشغيل MultiChain باستخدام معلمة وقت التشغيل txindex=0 بدلا من القيمة الافتراضية 1.
5- قم بتعيين معلمات بلوكتشين mining-turnover=1.0 (أو استخدم معلمة بدء التشغيل miningturnover) لتقليل عدد الشوكات (على الرغم من أنها ستكون نادرة على أي حال).
6- إذا كنت تنشر أعدادا كبيرة من عناصر الدفق، ففكر في نشر عناصر متعددة في كل معاملة، باستخدام createrawsendfrom (أو publishmulti في MultiChain 2). باستخدام هذه التقنية، يمكن لـ MultiChain نشر أكثر من 10 آلاف عنصر صغير في الثانية على الأجهزة المتطورة.
لدفع العقدة إلى أبعد من ذلك، فكر في تجنب استخدام محفظتها تماما. استخدم فقط العنوان الموجود في المحفظة للاتصال بالشبكة أو تعدين الكتل، وقم بإجراء جميع المعاملات الأخرى باستخدام عناوين غير موجودة في المحفظة.
قم ببناء وتوقيع المعاملات داخل التطبيق الخاص بك، باستخدام مكتبة متوافقة مع البيتكوين أو العقد الباردة المتعددة التي تعمل بالتوازي، وإرسال المعاملات الموقعة باستخدام واجهة برمجة التطبيقات sendrawtransaction الخاصة بالعقدة.