हमने एक क्रिप्टोक्यूरेंसी भुगतान प्रणाली कैसे बनाई: पांच मुख्य समस्याएं

नमस्कार, हेब्र! संपर्क में, ब्रोकरेज और एक्सचेंज उद्योग के लिए तरलता और प्रौद्योगिकी समाधान के एक प्रदाता बी 2 बीरोकर है। हमारे उत्पादों में से एक B2BX.exchange Trading platform है। जब हमने 2017 की गर्मियों में मंच लॉन्च किया, तो हमने सोचा कि क्रिप्टोकरेंसी को कैसे स्वीकार किया जाए और इसका उपयोग करने के लिए क्या प्रसंस्करण है। काश, उस समय कोई भी अनुबंध की भेद्यता पर कम से कम कोई गारंटी देने के लिए तैयार नहीं था, और डीएओ मंच पर हमले की कहानी अभी भी सुनवाई में थी। हम डीएओ के नक्शेकदम पर चलना नहीं चाहते थे। इसके अलावा, हमें ब्लॉकचेन के माध्यम से भुगतान स्वीकार करने का कुछ अनुभव था। इसलिए हमने ब्लॉकचेन भुगतान के पूरे चक्र को स्वतंत्र रूप से करने का फैसला किया। इस पोस्ट में हम इस बारे में बात करेंगे कि हमने क्या किया, और सबसे दिलचस्प बात यह है कि इस प्रक्रिया में हमें किन समस्याओं का समाधान करना था।


स्रोत: ripplecoinnews.com

भुगतान प्रणाली पर काम करने की प्रक्रिया में, हमने महसूस किया कि हम न केवल अपने B2BX.exchange प्लेटफॉर्म के लिए एक सेवा कर सकते हैं, बल्कि एक पूरी तरह से स्वतंत्र उत्पाद भी बना सकते हैं। हमने इसे B2BinPay कहा है।

क्या B2BinPay के होते हैं


भुगतान प्रणाली को कई बुनियादी भागों में विभाजित किया गया है। ये सभी PHP में लिखे गए हैं।

सिस्टम का पहला भाग ब्लॉकचेन के साथ बातचीत करने, अर्थात् भुगतान प्राप्त करने, भेजने और ट्रैक करने के लिए जिम्मेदार है।

दूसरा भाग एपीआई है। वह सेवाओं और एक्सचेंजों के उपभोक्ताओं के साथ बातचीत में लगा हुआ है: धन की प्राप्ति को सूचित करता है, क्रिप्टोकरेंसी के आदान-प्रदान को करता है। एपीआई लारवेल ढांचे का उपयोग करके लिखा गया है।

तीसरा भाग उपभोक्ताओं के लिए अधिग्रहण कार्यालय है। यह संपूर्ण रूप से सिस्टम की स्थिति, जुड़े हुए बटुए और उनके संतुलन, सक्रिय लेनदेन और खातों को दर्शाता है। शायद जल्द ही हम क्लासिक फिएट अधिग्रहण से जुड़ेंगे। एक कार्यालय बनाने के लिए, हमने Yii2 का उपयोग किया।

एक अलग ब्लॉक ICO परियोजनाओं के साथ काम करने के लिए एक प्रणाली है। यह आपको बिक्री के सभी चरणों में टोकन वितरित करने की अनुमति देता है। इसके अलावा एक अनुबंध (ईआरसी -20) और एक व्यक्तिगत खाता विकसित करने की संभावना है। इन उपकरणों का उपयोग करके, हम एक टर्नकी ICO सेवा प्रदान करते हैं।



सुरक्षा कारणों से, वॉलेट के बारे में सभी डेटा एन्क्रिप्टेड रूप में डेटाबेस में संग्रहीत किए जाते हैं, इसलिए यहां तक ​​कि अगर कोई हमलावर उन तक पहुंच प्राप्त करता है, तो वह वॉलेट्स से धन वापस नहीं ले सकेगा। दो-कारक उपयोगकर्ता प्रमाणीकरण जुड़ा हुआ है। अंत में, व्यापारी आईपी पते का एक श्वेतसूची बना सकता है जो एपीआई के साथ काम कर सकता है।

हम बड़ी संख्या में सर्वर के साथ सिस्टम फ़ॉल्ट टॉलरेंस प्रदान करते हैं, जिसमें बैकअप वाले भी शामिल हैं। प्रत्येक ब्लॉकचेन नोड बाहर से सीमित पहुंच के साथ एक अलग सर्वर पर स्थित है।

हमने किन समस्याओं का सामना किया है?


ब्लॉकचेन अलग हैं। कुछ खराब दस्तावेज हैं और एक सक्रिय समुदाय नहीं है। यह मुख्य रूप से हमारी मुख्य समस्याओं का कारण था।

1. Ethereum API में आने वाले खाते के लेनदेन की सूची वापस करने की क्षमता नहीं है

एक खाता बनाते समय, हमारी भुगतान प्रणाली एक अनूठा पता बनाती है जिसके लिए उपयोगकर्ता को चयनित मुद्रा में एक निश्चित राशि को स्थानांतरित करना होगा। दी गई आवृत्ति के साथ, हमें आने वाले लेनदेन की एक सूची मिलती है और उनके बटुए के पते सत्यापित होते हैं। फिर हम अवैतनिक बिल के पते के साथ पर्स के पते को सत्यापित करते हैं। जैसा कि यह निकला, प्रसारण आने वाले लेनदेन के बारे में जानकारी प्राप्त करने की अनुमति नहीं देता है।

क्या करें? हमने तृतीय-पक्ष सेवा - etherscan.io का उपयोग करके लेनदेन प्राप्त करने का निर्णय लिया। लेकिन उन्होंने कुछ समस्याओं का खुलासा किया, इसलिए हम खोजकर्ता पर स्विच करते हैं, जो हमारे प्रोग्रामरों द्वारा लिखी गई सेवा है।

2. कुछ ब्लॉकचेन में बेहद डरावने दस्तावेज होते हैं

यहाँ एक विशिष्ट मामला है: किसी तरह हमने अल्प-ज्ञात क्रिप्टोकरेंसी में से एक को एक नोड तैनात किया, और कुछ दिनों के बाद किसी भी त्रुटि की रिपोर्ट किए बिना लेनदेन स्वीकार करना बंद कर दिया। हमने इसे फिर से शुरू किया, लेकिन कुछ दिनों बाद स्थिति दोहराई गई।

क्या करें? जब उन्होंने इसका पता लगाना शुरू किया, तो उन्हें पता चला कि समस्या कॉन्फ़िगरेशन फ़ाइल में एक पैरामीटर में है। इस पैरामीटर के बारे में प्रलेखन में एक शब्द नहीं था, इसलिए मुझे परीक्षण और त्रुटि से सब कुछ कॉन्फ़िगर करना पड़ा।



3. परीक्षण कार्यक्षमता के लिए निजी ब्लॉकचेन को तैनात करना मुश्किल या बस असंभव है

एक बार हमें NEO cryptocurrency के लिए एक ब्लॉकचेन को तैनात करने की आवश्यकता थी। हमें तैयार डॉकटर छवि मिली, निर्देशों के अनुसार सब कुछ किया और एक त्रुटि मिली। स्क्रिप्ट के त्वरित विश्लेषण से कुछ भी नहीं हुआ, Google ने भी कुछ भी संकेत नहीं दिया।

क्या करें? हमने जीथब पर एक मुद्दा बनाया, इस पर चर्चा करने में लगभग एक महीने का समय लगा और आखिरकार टेस्टनेट को तैनात करने का फैसला किया। लेकिन हर क्रिप्टोक्यूरेंसी में टेस्टनेट नहीं होता है। और अगर ऐसा होता है, तो सबसे अधिक बार आपको परीक्षण के सिक्कों के लिए एक आवेदन भेजने और थोड़ी देर प्रतीक्षा करने की आवश्यकता होती है। ज्यादातर मामलों में आधिकारिक साइटों पर निजी ब्लॉकचेन के विकास पर भी विचार नहीं किया जाता है, इसलिए आपको तीसरे पक्ष के समाधान का उपयोग करना होगा।

निष्पक्षता में, यह कहने योग्य है कि ज्यादातर मामलों में, आप किसी विशेष क्रिप्टोक्यूरेंसी के बुनियादी ढांचे से संबंधित प्रश्नों के उत्तर प्राप्त कर सकते हैं। इस अर्थ में सबसे उपयोगी संसाधन जीथब है, फिर आपको आधिकारिक मंचों और रेडिट पर जाना चाहिए।

4. अनुचित कोड का पुन: उपयोग

अंततः बिटकॉइन की अलग-अलग ब्लॉकचेन और ब्लॉकों के साथ बहुत सारी प्रतियां हैं - कांटे के साथ उन्हें भ्रमित न करें। ज्यादातर मामलों में, ऐसी क्रिप्टोकरेंसी का बिलकुल समान बिटकॉइन एपीआई होता है। समान कोड को गुणा न करने के लिए, ऐसी प्रतियों के साथ काम करने के लिए हम उसी वर्ग का उपयोग करते हैं जो सातोशी नाकामोटो की मुद्रा के साथ काम करने के लिए है।

लेकिन यह इतना सरल नहीं हो सकता है। जब हमें डॉगकोइन को एकीकृत करने की आवश्यकता हुई, तो हमने वर्णित परिदृश्य का पालन किया, कॉन्फ़िगर किया और टेस्टनेट को तैनात किया। नतीजतन, कुछ परीक्षण गिर गए और लेनदेन बनाने में समस्याएं आईं।

क्या करें? सबसे पहले, हमने डिबगर के माध्यम से परीक्षण चलाया। यह पता चला कि लेन-देन बनाने के अनुरोध में डॉगकोइन एक स्ट्रिंग के रूप में राशि को स्थानांतरित करने की अनुमति नहीं देता है, जैसा कि बिटकॉइन करता है। इस वजह से, हमें बच्चे की कक्षा में विधि को फिर से परिभाषित करना पड़ा। वैसे, डॉगकॉइन और बिटकॉइन एपीआई में यह एकमात्र पहचाना गया अंतर है। इसका अर्थ क्या है यह समझ से बाहर है।

5. सभी क्रिप्टोकरेंसी असीमित संख्या में अनूठे पते बनाने की अनुमति नहीं देती हैं

यहां सब कुछ सरल है: इस पीढ़ी के बिना, हम पते पर भुगतान पहचान का उपयोग नहीं कर सकते हैं।

क्या करें? ऐसी स्थितियों में, हम एक अद्वितीय संदेश का उपयोग करते हैं जो भुगतान भेजते समय लेनदेन से जुड़ा होता है। दुर्भाग्य से, कुछ ग्राहक इन संदेशों को इंगित करना भूल जाते हैं और फिर आश्चर्य करते हैं कि भुगतान स्वचालित रूप से क्रेडिट क्यों नहीं किया गया।

CMS में एकीकृत कैसे करें?


हमने WordPress, Woocommerce, Magento, PrestaShop के लिए B2BinPay प्लगइन्स बनाए। यहां भूख खाने के साथ आई - शुरू में हमने सीएमएस के लिए प्लगइन्स के माध्यम से सिस्टम को बढ़ावा देने की योजना नहीं बनाई थी। प्रत्येक प्लगइन के लिए हमने सिस्टम में एक समीक्षा की। मैगेंटो प्लगइन के लिए सबसे गंभीर बात हुई, हम आपको इस समीक्षा के बारे में अधिक बताएंगे।

समीक्षा को दो भागों में विभाजित किया गया है - तकनीकी और विपणन। तकनीकी निरीक्षण में चार चरण होते हैं:

  • कोड स्निफर
  • स्थापना और वार्निश टेस्ट
  • कॉपी पेस्ट पेस्ट डिटेक्टर
  • मैनुअल क्यूए

पहले तीन चरण पूरी तरह से स्वचालित हैं, इसलिए विकास चरण में कुछ बातों को ध्यान में रखना बेहतर है। परीक्षण के दौरान अपने जीवन को सरल बनाने के लिए, सबसे पहले, आपको कोड स्निफर के नियमों को याद रखना होगा।

कोड स्निफ़र के लिए Magento के नियम PSR-1 और PSR-2 मानकों का अनुपालन करते हैं, यह उन कुछ CMS में से एक है जिनके डेवलपर्स PHP में विकास के लिए आधुनिक दृष्टिकोण का पालन करते हैं। इसके अलावा, मैगेंटो के लोगों ने नियमों का एक अलग सेट प्रकाशित किया है जो विस्तार संरचना के एक्सएमएल-कॉन्फ़िगरेशन में त्रुटियों को खोजने में मदद करता है और आम तौर पर स्वीकृत चेक का पूरक होता है। तैयार पैकेज की सामग्री की जांच करने के लिए एक स्क्रिप्ट भी उनके जीथूब खाते पर प्रकाशित की जाती है, जिसका उपयोग स्वचालित सत्यापन के लिए आपके विकास को भेजने से पहले भी किया जाना चाहिए।

बेसिक मैगेंटो इंस्टॉलेशन में फ़्यूपुनिट के लिए बूटस्ट्रैप क्लास है: आप इसका उपयोग अपने प्लगइन के लिए परीक्षण लिखने के लिए कर सकते हैं। ईमानदारी से, यदि तकनीकी उपलब्धता की तेजी से पूर्णता के लिए परीक्षणों की उपलब्धता में योगदान होता है, तो भी हमें पता नहीं चल पाता है।



तकनीकी निरीक्षण के पहले तीन चरण स्वचालित हैं। चौथे चरण के लिए और मार्केटिंग रिव्यू के लिए, आपको धैर्य रखना होगा: दोनों प्रक्रियाएं लोगों द्वारा की जाती हैं और इस वजह से, कतारें बनती हैं।

हमने लगभग 5 दिनों तक मैनुअल क्यूए के परिणामों की प्रतीक्षा की, जो मूल रूप से सामान्य है। लेकिन मार्केटिंग रिव्यू के लिए हमारे प्रत्येक एप्लिकेशन को एक सप्ताह से अधिक समय तक संसाधित किया गया है। यहाँ, परीक्षकों के लिए यह महत्वपूर्ण था कि पहले पैराग्राफ में हम एकीकरण को लिखते हैं कि हम किस सेवा को प्रदान करते हैं और उसका मूल्य निर्धारण मॉडल क्या है, और उसके बाद ही हमारे प्लगइन के फायदों का संकेत देते हैं।

भविष्य की योजना


हमारा मानना ​​है कि B2BinPay उपयोगकर्ताओं के साथ बातचीत के मामले में काफी सरल है और इसलिए यह क्रिप्टो बाजार और उन्नत व्यवसाय दोनों नई कंपनियों के लिए सुविधाजनक होगा - उदाहरण के लिए, ऑनलाइन बिक्री के क्षेत्र में - जहां एक स्थिर और सुरक्षित उत्पाद की आवश्यकता है।

सिक्कों के शुरुआती प्रचलन की शुरुआत में, हमने बिटकॉइन, बिटकॉइन CASH, लिटकोइन, DASH, एथेरियम, मोनेरो और अन्य को स्वीकार किया। अब हम अपने एस्टोनियाई कंपनी के तहत उद्यम ग्राहकों के लिए व्यापारियों और पर्स के लिए सेवाएं प्रदान करते हैं, जिसके लिए हमें दो लाइसेंस प्राप्त हुए - क्रिप्टोकरेंसी का आदान-प्रदान करने और पर्स के लिए।

ग्राहकों को ऑनबोर्ड करते समय, हम प्रत्येक व्यापारी के लिए एक पूर्ण केवाईसी बनाते हैं, जिसके बाद व्यापारी क्रिप्टोकरेंसी स्वीकार करना शुरू कर सकता है, जो स्वचालित रूप से डॉलर, यूरो या पाउंड में परिवर्तित हो जाते हैं और व्यापारी के बैंक खाते में भुगतान किए जाते हैं।

हम B2BinPay के निर्माण और सिद्धांत पर उत्पाद पर ही आपके सवालों का जवाब देने में प्रसन्न होंगे। इसके अलावा, हम अब ऐसे सक्रिय लोगों की तलाश कर रहे हैं जिनके पास पायथन प्रोग्रामिंग कौशल है और हमारी टीम में शामिल होने के लिए तैयार हैं। अब सेंट पीटर्सबर्ग में हमने टीम लीड और वरिष्ठ डेवलपर के लिए रिक्तियों को खोला है । हम आपके फिर से शुरू करने के लिए तत्पर हैं!

Source: https://habr.com/ru/post/hi441338/


All Articles