مرحبا يا هبر! في اتصال هو B2Broker ، مزود حلول السيولة والتكنولوجيا لقطاع الوساطة والبورصة. أحد منتجاتنا هو منصة التداول B2BX.exchange. عندما أطلقنا المنصة في صيف عام 2017 ، فكرنا في كيفية قبول العملات المشفرة ومعالجتها للاستخدام. للأسف ، لم يكن أحد في ذلك الوقت على استعداد لتقديم ما لا يقل عن أي ضمانات حول مدى تأثر العقد ، وكانت قصة الهجوم على منصة DAO لا تزال في الجلسة. لم نرغب في اتباع خطى DAO. بالإضافة إلى ذلك ، لدينا بعض الخبرة في قبول المدفوعات من خلال blockchain. لذلك قررنا العمل بشكل مستقل على دورة كاملة من المدفوعات blockchain. في هذا المنشور سوف نتحدث عن ما فعلناه ، والأكثر إثارة للاهتمام ، عن المشكلات التي كان علينا حلها في هذه العملية.
المصدر: ripplecoinnews.comفي عملية العمل على نظام الدفع ، أدركنا أنه يمكننا تقديم خدمة ليس فقط لمنصة B2BX.exchange ، ولكن أيضًا منتج مستقل تمامًا. أطلقنا عليه B2BinPay.
ما B2BinPay يتكون من
نظام الدفع مقسم إلى عدة أجزاء أساسية. كل منهم مكتوب بلغة PHP.
الجزء الأول من النظام مسؤول عن التفاعل مع المجموعات الرئيسية ، أي تلقي المدفوعات وإرسالها وتتبعها.
الجزء الثاني هو API. إنه منخرط في التفاعل مع مستهلكي الخدمات والتبادلات: يخطر استلام الأموال ، ويقوم بتبادل العملات المشفرة. تتم كتابة واجهة برمجة التطبيقات باستخدام إطار Laravel.
الجزء الثالث هو مكتب الاستحواذ للمستهلكين. إنه يعكس حالة النظام ككل ، والمحافظ المتصلة وأرصدةها والمعاملات النشطة والحسابات. ربما سنقوم قريباً بتوصيل شركة فيات الكلاسيكية. لإنشاء مكتب ، استخدمنا Yii2.
كتلة منفصلة هو نظام للعمل مع مشاريع ICO. انها تسمح لك لتوزيع الرموز في جميع مراحل البيع. بالإضافة إلى ذلك ، هناك إمكانية لتطوير عقد (ERC-20) وحساب شخصي. باستخدام هذه الأدوات ، نحن نقدم خدمة ICO بنظام تسليم المفتاح.

لأسباب أمنية ، يتم تخزين جميع البيانات المتعلقة بالمحفظة في قاعدة البيانات بشكل مشفر ، لذلك حتى لو تمكن المهاجم من الوصول إليها ، فلن يتمكن من سحب الأموال من المحافظ. مصادقة المستخدم ثنائية العامل متصلة. أخيرًا ، يمكن للتاجر إنشاء قائمة بيضاء لعناوين IP التي يمكن أن تعمل مع واجهة برمجة التطبيقات.
نحن نقدم التسامح مع خطأ النظام مع عدد كبير من الخوادم ، بما في ذلك تلك النسخ الاحتياطي. توجد كل عقدة blockchain على خادم منفصل مع وصول محدود من الخارج.
ما هي المشاكل التي واجهناها؟
البلوك هي مختلفة. بعضها موثق بشكل سيئ وليس لديه مجتمع نشط. كان هذا هو السبب الرئيسي لمشاكلنا الرئيسية.
1. لا تملك واجهة برمجة تطبيقات Ethereum القدرة على عرض قوائم بمعاملات الحساب الواردةعند إنشاء حساب ، ينشئ نظام الدفع الخاص بنا عنوانًا فريدًا يجب على المستخدم تحويل مبلغ معين منه بالعملة المحددة. مع تردد معين ، نحصل على قائمة المعاملات الواردة والتحقق من عناوين محافظهم. ثم نتحقق من عناوين المحافظ مع عناوين الفواتير غير المدفوعة. كما اتضح فيما بعد ، لا يسمح البث بتلقي معلومات حول المعاملات الواردة.
ما يجب القيام به قررنا تلقي المعاملات باستخدام خدمة خارجية -
etherscan.io . لكنه كشف عن بعض المشاكل ، لذلك ننتقل إلى المستكشف ، وهي خدمة كتبها مبرمجونا.
2. بعض البلوك لديها وثائق نادرة للغايةفي ما يلي حالة نموذجية: بطريقة ما ، قمنا بنشر عقدة في إحدى العملات المشفرة غير المعروفة ، وبعد أيام قليلة توقفت عن قبول المعاملات دون الإبلاغ عن أي أخطاء. لقد أعدنا تشغيله ، ولكن بعد بضعة أيام تكرر الوضع.
ما يجب القيام به عندما بدأوا في معرفة ذلك ، اكتشفوا أن المشكلة تكمن في أحد المعلمات في ملف التكوين. لم تكن هناك كلمة في الوثائق حول هذه المعلمة ، لذلك اضطررت لتكوين كل شيء عن طريق التجربة والخطأ.
3. blockchain الخاص لاختبار وظيفة من الصعب أو ببساطة من المستحيل نشرهابمجرد أن نحتاج إلى نشر blockchain للعملة المشفرة NEO. لقد وجدنا صورة لرسو السفن جاهزة ، وفعلنا كل شيء وفقًا للتعليمات وحصلنا على خطأ. تحليل سريع للنصوص لم يؤد إلى أي شيء ، كما أن جوجل لم يدفع أي شيء.
ما يجب القيام به لقد أنشأنا مشكلة في جيثب ، وأمضينا حوالي شهر في مناقشتها ، وقررنا أخيرًا نشر testnet. ولكن ليس كل cryptocurrency لديه testnet. وإذا كان الأمر كذلك ، فغالبًا ما تحتاج إلى إرسال طلب للحصول على عملات اختبار والانتظار بعض الوقت. لا يتم حتى النظر في تطوير blockchain خاص على المواقع الرسمية في معظم الحالات ، لذلك يجب عليك استخدام حلول الجهة الخارجية.
في الإنصاف ، تجدر الإشارة إلى أنه في معظم الحالات ، يمكنك الحصول على إجابات للأسئلة المتعلقة بالبنية التحتية لعملة مشفرة معينة. المورد الأكثر فائدة في هذا المعنى هو جيثب ، ثم يجب عليك الذهاب إلى المنتديات الرسمية ورديت.
4. إعادة استخدام رمز غير مناسبتحتوي Bitcoin في النهاية على الكثير من النسخ مع المجموعات الفردية والكتل - لا تخلط بينها وبين الشوك. في معظم الحالات ، يكون لهذه العملات المشفرة واجهة برمجة تطبيقات Bitcoin متطابقة تمامًا. من أجل عدم ضرب نفس الكود ، للعمل مع مثل هذه النسخ ، نستخدم نفس الفئة للعمل مع عملة ساتوشي ناكاموتو.
ولكن قد لا يكون بهذه البساطة. عندما كنا بحاجة لدمج Dogecoin ، اتبعنا السيناريو الموصوف ، وقمنا بتكوين testnet ونشره. نتيجة لذلك ، سقطت بعض الاختبارات وكانت هناك مشاكل في إنشاء المعاملات.
ما يجب القيام به أولاً ، أجرينا الاختبار من خلال المصحح. اتضح أن Dogecoin في طلب إنشاء معاملة لا يسمح بنقل المبلغ في شكل سلسلة ، كما تفعل Bitcoin. لهذا السبب ، كان علينا إعادة تعريف الأسلوب في الفصل الفرعي. بالمناسبة ، هذا هو الفرق الوحيد الذي تم تحديده في واجهات برمجة تطبيقات Dogecoin و Bitcoin. ما هو معناها غير مفهومة.
5. لا تسمح جميع العملات المشفرة بإنشاء عدد غير محدود من العناوين الفريدةكل شيء بسيط هنا: بدون هذا الجيل ، لا يمكننا استخدام هوية الدفع على العنوان.
ما يجب القيام به في مثل هذه الحالات ، نستخدم رسالة فريدة متصلة بالمعاملة عند إرسال الدفعة. لسوء الحظ ، ينسى بعض العملاء الإشارة إلى هذه الرسائل ثم يتساءلون عن سبب عدم إضافة الدفعة تلقائيًا.
كيفية الاندماج في CMS؟
لقد صنعنا إضافات B2BinPay لـ WordPress و Woocommerce و Magento و PrestaShop. هنا جاءت الشهية مع الأكل - في البداية لم نخطط للترويج للنظام من خلال الإضافات لنظام إدارة المحتوى. لكل مكون إضافي قمنا بمراجعة في النظام. حدث أخطر شيء في البرنامج المساعد Magento ، وسوف نخبرك المزيد عن هذا الاستعراض.
ينقسم الاستعراض إلى قسمين - التقنية والتسويق. يتكون الفحص الفني من أربع مراحل:
- رمز الشم
- تركيب واختبار الورنيش
- نسخة لصق معجون الكاشف
- دليل ضمان الجودة
المراحل الثلاث الأولى مؤتمتة بالكامل ، لذلك من الأفضل مراعاة بعض الأشياء في مرحلة التطوير. لتبسيط حياتك أثناء الاختبار ، بادئ ذي بدء ، تحتاج إلى تذكر قواعد Code Sniffer.
تتوافق قواعد Magento الخاصة بـ Code Sniffer مع معايير PSR-1 و PSR-2 ، وهي واحدة من عدد قليل من CMS يلتزم مطوروها بالطرق الحديثة للتنمية في PHP. بالإضافة إلى ذلك ، نشر شباب Magento مجموعة منفصلة من القواعد التي تساعد في العثور على أخطاء في تكوينات xml الخاصة ببنية الامتداد وتكمل عمليات الفحص المقبولة عمومًا. كما يتم نشر برنامج نصي للتحقق من محتويات الحزمة النهائية على حساب github الخاص بهم ، والذي يجب استخدامه أيضًا قبل إرسال التطوير الخاص بك للتحقق الآلي.
يحتوي تثبيت Magento الأساسي على فصل تمهيد لبرنامج phpunit: يمكنك استخدامه لكتابة اختبارات البرنامج المساعد. بصراحة ، ما زلنا لم نتوصل إلى معرفة ما إذا كان توفر الاختبارات يساهم في الإكمال السريع للمراجعة الفنية.

المراحل الثلاث الأولى من الفحص الفني تلقائية. بالنسبة للمرحلة الرابعة ولمراجعة التسويق ، يتعين عليك التحلي بالصبر: يتم تنفيذ كلتا العمليتين من قبل الناس وبسبب هذا ، يتم تشكيل قوائم الانتظار.
لقد انتظرنا نتائج دليل ضمان الجودة لمدة 5 أيام تقريبًا ، وهو أمر طبيعي في الأساس. ولكن تم معالجة كل طلب من طلباتنا لمراجعة التسويق لأكثر من أسبوع. هنا ، كان من المهم للمختبرين أن نكتب في الفقرات الأولى التكامل مع الخدمة التي نقدمها وما هو نموذج التسعير الخاص بها ، وعندها فقط نشير إلى مزايا المكون الإضافي لدينا.
الخطط المستقبلية
نعتقد أن B2BinPay تبين أنه بسيط للغاية من حيث التفاعل مع المستخدمين وبالتالي سيكون مناسبًا لكل من الشركات الجديدة في سوق العملة المشفرة والأعمال المتقدمة - على سبيل المثال ، في مجال المبيعات عبر الإنترنت - حيث هناك حاجة إلى منتج مستقر وآمن.
في بداية التداول الأولي للعملات المعدنية ، قبلنا Bitcoin و Bitcoin CASH و Litecoin و DASH و Ethereum و Monero وغيرها. الآن نحن نقدم خدمات للتجار والمحافظ لعملاء المؤسسات التابعة لشركتنا الإستونية ، والتي تلقينا ترخيصين لها - لتبادل العملات المشفرة والمحافظ.
عند إنشاء عملاء على متن الطائرة ، نقوم بإنشاء KYC كاملة لكل تاجر ، وبعد ذلك يمكن للتاجر البدء في قبول العملات المشفرة ، والتي يتم تحويلها تلقائيًا إلى دولارات أو يورو أو جنيه استرليني وتدفع إلى حساب التاجر المصرفي.
سنكون سعداء للإجابة على أسئلتك حول إنشاء
B2BinPay وعلى المنتج نفسه من حيث المبدأ. بالإضافة إلى ذلك ، نحن نبحث الآن بنشاط عن أشخاص متشابهين في التفكير ولديهم مهارات برمجة بيثون ومستعدون للانضمام إلى فريقنا. الآن في سانت بطرسبرغ فتحنا الشواغر
لقيادة الفريق والمطور الرئيسي . ونحن نتطلع إلى سيرتك الذاتية!