Web3 के लिए API Gateway: APISIX कैसे Hyperchain को सशक्त बनाता है

August 9, 2021

Case Study

अवलोकन

हाइपरचेन टेक्नोलॉजीज एक विश्व-प्रमुख उद्यम-स्तरीय कंसोर्टियम ब्लॉकचेन इंफ्रास्ट्रक्चर आपूर्तिकर्ता और समाधान प्रदाता है, जो नवाचारी इंफ्रास्ट्रक्चर बनाने और समाज के डिजिटल विकास को सशक्त बनाने के लिए प्रतिबद्ध है। अपनी तेजी से वृद्धि के दौरान, हाइपरचेन को अपने हाइपरचेन ब्लॉकचेन प्लेटफॉर्म स्थापित करते समय कई समस्याओं का सामना करना पड़ा, जैसे:

  • मानकीकृत ट्रैफिक प्रबंधन की कमी, जिससे सिस्टम के ध्वस्त होने का जोखिम हो सकता है
  • अपूर्ण सुरक्षा नियंत्रण और प्रमाणीकरण प्रबंधन
  • असुविधाजनक अनुमति नियंत्रण
  • सार्वजनिक नेटवर्क IP पतों पर उच्च लागत
  • अस्थिर ब्लॉकचेन नोड्स: एकल नोड हमले के प्रति संवेदनशील
  • कई प्रोटोकॉलों के एकीकृत प्रबंधन की कमी

हाइपरचेन ने Kong और NGINX का प्रयास किया, लेकिन दुर्भाग्य से, वे हाइपरचेन के व्यावसायिक परिदृश्यों को संतुष्ट नहीं कर सके। हालांकि, Apache APISIX को अपनाने के बाद, उपरोक्त सभी समस्याएं हल हो गईं, जिससे हाइपरचेन ब्लॉकचेन प्लेटफॉर्म को अंतहीन जीवन शक्ति मिली।

हाइपरचेन ब्लॉकचेन प्लेटफॉर्म के बारे में

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

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

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

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

हाइपरचेन ब्लॉकचेन प्लेटफॉर्म में APISIX का अनुप्रयोग

नीचे हाइपरचेन ब्लॉकचेन प्लेटफॉर्म में APISIX का एक अनुप्रयोग इंटरैक्शन डायग्राम है। बैकएंड सेवा अपने व्यावसायिक विशेषताओं के अनुसार etcd के साथ सेवा जानकारी पंजीकृत करती है और फिर रूट पंजीकरण मॉड्यूल के माध्यम से APISIX के साथ सेवा पंजीकृत करती है।

APISIX सिस्टम में आंतरिक माइक्रोसर्विसेज के एकीकृत प्रवेश के रूप में कार्य करता है। बाहरी अनुरोध पहले APISIX को भेजे जाते हैं; फिर, वे प्रमाणीकरण पास करने के बाद API के माध्यम से एक्सेस लेयर पर जाते हैं और बाद में RPC (रिमोट प्रोसीजर कॉल) के माध्यम से कोर सेवाओं पर जाते हैं।

हाइपरचेन अनुप्रयोग इंटरैक्शन डायग्राम

रूट फॉरवर्डिंग

कभी-कभी, API को एक ही डोमेन नाम के तहत एक्सपोज़ करने की आवश्यकता होती है। इस मामले में, हम एक ही सेवा के API पथ में कुछ उपसर्ग जोड़ सकते हैं, जैसे /baas-core या /baas-other। जब क्लाइंट इन API को अनुरोध करता है, तो API गेटवे को इन जोड़े गए उपसर्गों को हटाने और फिर अनुरोध को बैकएंड सेवा पर फॉरवर्ड करने की आवश्यकता होती है। APISIX का proxy-rewrite प्लगइन ऐसे मामलों को सुविधाजनक तरीके से संभालने में हमारी मदद कर सकता है।

उदाहरण के लिए: जब यह देखें: http://apisix:8080/baas-{service}/api/v1/… अनुरोध को http://{service}/api/v1/… पर फॉरवर्ड किया जा सकता है एक नियमित अभिव्यक्ति लिखकर: ^/baas-core/(.*)$,/$1

proxy-rewrite प्लगइन संपादन

ट्रैफिक लिमिट प्रबंधन

उपयोगकर्ता अपनी आवश्यकताओं के अनुसार कंसोर्टियम ब्लॉकचेन का चयन कर सकते हैं, न केवल हाइपरचेन बल्कि IBM डेटा फैब्रिक, Baidu XuperChain, आदि। इसलिए, हाइपरचेन को सिस्टम में सभी कंसोर्टियम ब्लॉकचेन के जीवनचक्र प्रबंधन की आवश्यकता होती है।

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

ड्राइव घटकों के प्रत्येक कॉल को सीमित करने की आवश्यकता होती है, खासकर जब संख्या बड़ी हो। इसलिए, APISIX का limit-req प्लगइन प्लेटफॉर्म के ट्रैफिक इनपुट और आउटपुट को सीमित करने में मददगार हो सकता है ताकि इसकी स्थिरता सुरक्षित हो।

limit-req प्लगइन दर और बर्स्ट के बारे में अनुकूलित कॉन्फ़िगरेशन की अनुमति देता है।

limit-req प्लगइन मॉडल

सुरक्षा नियंत्रण और प्राधिकरण प्रबंधन

APISIX के साथ सहयोग करने के लिए, हाइपरचेन ने निजी तैनाती परिस्थितियों के लिए एक प्लगइन विकसित किया। पार्टी A अक्सर अपने प्रमाणीकरण सेवाओं या सेवा खाता प्रणाली का उपयोग करना पसंद करती है। जब फ्रंटएंड ट्रैफिक वेबसाइट पर जाता है, तो यह पहले Access-auth प्लगइन से गुजरेगा, और यह बैकएंड BFF (Backend for Frontend) तक पहुंच सकता है केवल यदि यह प्रमाणीकरण पास करता है।

प्रमाणीकरण प्रक्रिया डायग्राम

Restful मानक विनिर्देश के तीन प्रमुख कारकों (प्रमाणीकरण जानकारी, Restful पथ, और HTTP क्रियाएं जैसे GET, POST, PUT, DELETE, PATCH, आदि) के अनुसार, खाता-भूमिका-प्राधिकरण प्रमाणीकरण किया जाता है। यदि प्रमाणीकरण पास होता है, तो उपयोगकर्ता जानकारी हेडर में वापस की जाएगी; यदि नहीं, तो यह 403 पर वापस आएगा।

API प्रमाणीकरण पथ

हॉट रीलोडिंग

APISIX आंतरिक रूप से विकसित प्लगइन्स की हॉट रीलोडिंग प्रदान करता है। यह विकास के दौरान समय बचाता है और उपयोगकर्ताओं को पूरे प्लगइन रनर को पुनरारंभ किए बिना अपने कोड के कुछ हिस्सों को बदलने की अनुमति देता है। इस तरह, डेवलपर्स बैकएंड में इंटरफ़ेस में समायोजन कर सकते हैं, जो तुरंत प्रभावी होता है, जो ऑनलाइन रिलीज़ के लिए सुविधाजनक और अनुकूल है।

Kong क्यों नहीं?

हाइपरचेन ने पहले Kong का उपयोग किया था लेकिन अंततः इसे Apache APISIX से बदल दिया, मुख्य रूप से क्योंकि

  • उच्च तैनाती और रखरखाव लागत

    Kong क्लस्टर को Postgresql डेटाबेस के साथ सहयोग करने की आवश्यकता होती है और उच्च उपलब्धता के लिए एक विशिष्ट डेटाबेस प्रशासक की आवश्यकता होती है। Postgresql डेटाबेस का क्लस्टर तैनाती अपेक्षाकृत कठिन है और बाद के संचालन और रखरखाव की लागत बढ़ाता है।

  • सिस्टम की जटिलता और विफलता दर में वृद्धि

    हाइपरचेन ब्लॉकचेन प्लेटफॉर्म My SQL डेटाबेस का उपयोग करता है, जिससे Kong को अपनाने पर सिस्टम में दो रिलेशनल डेटाबेस हो जाते हैं, जो सिस्टम को अधिक जटिल बनाता है। यह दो डेटाबेस सेट के बीच संगतता बढ़ाने में विफलता दर को भी बढ़ाता है।

ब्लॉकचेन नोड में APISIX का अनुप्रयोग

हाइपरचेन ब्लॉकचेन डायग्राम

सार्वजनिक नेटवर्क IP पतों पर लागत बचत

उपयोगकर्ता हाइपरचेन ब्लॉकचेन प्लेटफॉर्म के माध्यम से ब्लॉकचेन खरीदते हैं। फिर ऊपरी स्तर के व्यवसाय और डेवलपर क्लाइंट नोड्स से जुड़ सकते हैं। सेवाएं एक या अधिक नोड्स से जुड़ सकती हैं, और उपयोगकर्ता एक या अधिक नोड्स तक पहुंच सकते हैं, जो एक समस्या लाता है: लगभग सभी नोड्स का दौरा किया जाएगा, जो एकल नोड के दौरे के दबाव को बढ़ाता है।

कुछ निजी रोजगार वातावरण में इसे संभालना अपेक्षाकृत आसान है। हालांकि, इंटरनेट उपयोगकर्ताओं को लक्षित करने वाले सिस्टम के लिए बहुत सारे नोड्स और सार्वजनिक नेटवर्क IPs की आवश्यकता होती है। 4 मेगाबाइट ट्रैफिक के प्रत्येक सार्वजनिक नेटवर्क IP की कीमत लगभग 200 CNY प्रति माह तक पहुंच सकती है। हाइपरचेन प्लेटफॉर्म पर हजारों नोड्स हैं, जो उच्च सार्वजनिक IP लागत का उपभोग करते हैं।

APISIX सभी दौरे अनुरोधों को प्रबंधित करता है और संबंधित ब्लॉकचेन नोड्स पर ट्रैफिक वितरित करता है। इस तरह, हाइपरचेन ने उच्च लागत बचाई।

APISIX के साथ हाइपरचेन का मोड

सुविधाजनक अनुमति नियंत्रण

हाइपरचेन ब्लॉकचेन प्लेटफॉर्म पर विभिन्न ब्लॉकचेन हैं, और प्रत्येक चेन में विभिन्न जटिल RBAC अनुमति नियंत्रण होते हैं। इसलिए, क्लाइंट साइड पर विभिन्न प्रकार के प्रमाणपत्र जोड़ने की आवश्यकता होती है, जैसे TLS प्रमाणपत्र, जो उपयोगकर्ताओं को भी परेशान करते हैं।

वर्तमान में, APISIX का key-auth प्लगइन इस समस्या को कुशलतापूर्वक हल करने के लिए उपयोग किया जा सकता है। अधिकृत उपयोगकर्ता सीधे ब्लॉकचेन तक पहुंच सकते हैं बिना अनुमति कॉन्फ़िगरेशन की चिंता किए, क्योंकि APISIX अंतर्निहित चेन को एकीकृत करता है।

क्लस्टरिंग नोड्स की स्थिरता में सुधार

जैसा कि ऊपर उल्लेख किया गया है, नोड्स का अक्सर दौरा किया जाता है। अधिकांश बैंक उपयोगकर्ताओं में उच्च समवर्तीता होती है क्योंकि TPS (प्रति सेकंड लेनदेन) 40,000-50,000 बार तक पहुंच सकता है।

यह पता चला है कि ब्लॉकचेन पर एकल नोड संवेदनशील होता है क्योंकि प्रत्येक लेनदेन दौरे वाले नोड को प्रभावित करेगा।

हाइपरचेन ने K8s पर Apache APISIX को Horizontal Pod Autoscaler के साथ तैनात किया। चूंकि APISIX etcd का उपयोग करता है जिसमें अच्छी गतिशील स्केलेबिलिटी होती है, यह एकल-बिंदु ट्रैफिक प्रभाव की समस्या को प्रभावी ढंग से हल कर सकता है।

कई प्रोटोकॉल का समर्थन

हाइपरचेन ब्लॉकचेन प्लेटफॉर्म पर विषम चेन के प्रोटोकॉल विविध हैं, जैसे HTTP प्रोटोकॉल, Websocket प्रोटोकॉल, gRPC प्रोटोकॉल, TCP प्रोटोकॉल, UDP प्रोटोकॉल, आदि।

APISIX कई प्रोटोकॉल का समर्थन करता है, जो विभिन्न ब्लॉकचेन के अंतर्निहित परतों को लचीले ढंग से अनुकूलित करता है, इस प्रकार विकास लागत को कम करता है।

NGINX क्यों नहीं?

ऐसा लगता है कि हाइपरचेन अपनी समस्याओं को हल करने के लिए NGINX का उपयोग कर सकता है। हालांकि, परीक्षण के बाद, हाइपरचेन ने इसे छोड़ दिया क्योंकि

  • गतिशील विस्तार के लिए अनुपयुक्त

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

  • क्लस्टर करना मुश्किल

    NGINX क्लस्टर का समर्थन नहीं करता है, जो उपयोगकर्ताओं के लिए अपेक्षाकृत जटिल और अनुकूल नहीं है।

  • TCP और UDP के लिए सीधा समर्थन नहीं

    NGINX केवल 7-लेयर प्रोटोकॉल को प्रॉक्सी कर सकता है न कि 4-लेयर प्रोटोकॉल को, और सीधे TCP और UDP प्रोटोकॉल का समर्थन नहीं कर सकता है। इसके अलावा, मॉड्यूल डिफ़ॉल्ट रूप से संकलित नहीं होता है, जिसके लिए अतिरिक्त प्रसंस्करण की आवश्यकता होती है।

  • कोई डैशबोर्ड नहीं

    NGINX का कोई विज़ुअलाइज़्ड इंटरफ़ेस नहीं है, जो डेवलपर्स और ऑपरेटर्स के लिए इतने सारे नोड्स को प्रबंधित करना मुश्किल बनाता है।

सारांश

उपरोक्त सामग्री से, हम जानते हैं कि Apache APISIX एक गतिशील API गेटवे है जो ब्लॉकचेन क्षेत्र में लागू किया जा सकता है। इसके अलावा, Apache APISIX लोड बैलेंसिंग, डायनामिक अपस्ट्रीम, कैनरी रिलीज़, सर्किट ब्रेकिंग, प्रमाणीकरण, ऑब्जर्वेबिलिटी, आदि जैसी समृद्ध ट्रैफिक प्रबंधन सुविधाएं प्रदान करता है।

हम आशा करते हैं कि APISIX अधिक ब्लॉकचेन उद्यमों को एक और विकास चरण में प्रवेश करने में समर्थन कर सकता है। Apache APISIX के बारे में अधिक जानने के लिए आपका स्वागत है। आप हमसे https://api7.ai/contact पर संपर्क कर सकते हैं।

Tags: