COTI डेवलपमेंट बेस्ट प्रैक्टिस - हमारे कोड और GitHub को कैसे पढ़ें

परिचय

यह दस्तावेज़ COTI में हमारे द्वारा उपयोग किए गए विकास और कोडिंग प्रथाओं का अवलोकन करता है और हमारी कोडिंग प्रक्रिया, संस्करण, सार्वजनिक और निजी GitHub, रिपॉजिटरी और सामुदायिक सगाई से संबंधित कुछ मुख्य पहलुओं को रेखांकित करता है।

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

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

COTI कोडिंग प्रैक्टिस

हमारी कोडिंग प्रक्रिया क्या है?

COTI कोडिंग प्रक्रिया दो प्रकार के रिपॉजिटरी का उपयोग करती है: निजी और सार्वजनिक। एक आम अभ्यास के रूप में, हम सार्वजनिक संस्करण में हमारे गिट रिपॉजिटरी के लिए एक साफ पेड़ बनाए रखने के लिए git Rebase वर्कफ़्लो (अनुरोध को खींचने और विलय करने के लिए विरोध के रूप में) का उपयोग करते हैं।

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

उदाहरण के लिए, यदि आप 'coti-node' रिपॉजिटरी 'multi_currency_dev' शाखा पर एक नज़र डालते हैं। बिना किसी कमिट के कुछ गैप होता है (उदाहरण के लिए प्रतिबद्ध bcd40868241503eb008953c030664a0e2d02e4df - रिफॉर्मैट कोड

और प्रतिबद्ध c0c2ee448931a91522d632eb43c54d8c421fc14b - getTokenMintingFee)

लेकिन, यदि आप उत्तरार्द्ध पर एक नज़र डालते हैं, तो यह कमिट कई स्क्वॉस्ड कमिट्स से युक्त होता है और 40 संशोधित फाइलें, 33 जोड़ी गई फाइलें और 1 नामांकित फाइल को संभालता है।

इन प्रथाओं को अपनाने का कारण हमारे सार्वजनिक रिपॉजिटरी और हमारे मेननेट को कोड की तैनाती की प्रक्रिया को और अधिक टिकाऊ बनाना है जबकि हमेशा काम करने और परीक्षण किए गए कोड शाखाओं और कमिट को बनाए रखना है।

संस्करण / विज्ञप्ति

आप प्रत्येक नोड रिपॉजिटरी में 'कोटि-नोड' के अपवाद के साथ हमारी रिलीज़ पा सकते हैं, जिसका उपयोग देव उद्देश्यों के लिए किया जाता है। आप अधिकांश नोड रिपॉजिटरी (भंडारण और इतिहास नोड को छोड़कर) की शाखाओं में संस्करण पा सकते हैं। अभी के लिए, हमारे पास दो रिलीज़ - v.1.0.0.RELEASE और v.1.0.1.RELEASE हैं। यदि कोई पिछले संस्करण पर एक नज़र डालना चाहता है, तो वे रिलीज़ शाखाओं में बदल सकते हैं।

यह भी ध्यान रखना महत्वपूर्ण है कि हम वर्तमान में संस्करण प्रबंधन पर काम कर रहे हैं।

हम सार्वजनिक / निजी रिपॉजिटरी में कब पोस्ट करते हैं?

कोटि-नोड में विकसित सब कुछ ज्यादातर लोगों द्वारा कुछ दिनों की देरी से देखा जा सकता है जब तक कि यह प्रतिबिंबित न हो। कोटि-नोड विकास के लिए हम वर्तमान में अपने निजी cotitech-io / coti-node रिपॉजिटरी का उपयोग करते हैं, हमारे पास एक मास्टर और देव शाखाएं हैं। आम तौर पर, प्रत्येक नई सुविधा के लिए, हम एक और शाखा खोलते हैं और प्रत्येक टीम का सदस्य जो उस सुविधा पर काम कर रहा है, एक और व्यक्तिगत शाखा (dev_name / branch_name) खोलता है, जो बदले में देव और गुरु पर प्रतिशोधित होती है।

परिवर्तनों की कोड समीक्षा और परीक्षण के बाद हम समय-समय पर अपने निजी cotitech-io / coti-node को सार्वजनिक coti-io / coti-node में बदलते हैं और प्रत्येक सार्वजनिक नोड रिपॉजिटरी को अपडेट करते हैं जो केवल रिलीज के उद्देश्यों के लिए हैं।

यह ध्यान रखना महत्वपूर्ण है कि हमारे पास अन्य निजी रिपॉजिटरी भी हैं, और हम अक्सर अपने विकास के प्रयासों को व्यावसायिक आवश्यकताओं के अनुसार उन रिपॉजिटरी में स्थानांतरित करते हैं।

विकास की भाषाएँ

COTI के अधिकांश कोडबेस जावा और जावास्क्रिप्ट में लिखे गए हैं।

स्थैतिक कोड विश्लेषण के लिए, हम अपने जावा आइड में सोनार लिंट का उपयोग करते हैं, जेएस के लिए एसआईएस लिंट।

अधिकांश एप्लिकेशन और सर्विस लेयर कोड में लिखा है: NodeJS और React

कोड विश्लेषण

हम अपनी रिपॉजिटरी के लिए स्थिर कोड विश्लेषण के लिए कोडीस का उपयोग करते हैं।

कोड कवरेज़

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

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

हमारे पास निजी पुस्तकालयों में क्या है

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

  • केवाईसी 3 पार्टी एकीकरण
  • क्रेडिट कार्ड भुगतान गेटवे एकीकरण
  • इंटरऑपरेबिलिटी और प्रोसेसिंग के लिए तरलता प्रदाता क्रॉस प्लेटफॉर्म टोकन
  • पारंपरिक भुगतान गेटवे और बैंकों के साथ एकीकरण क्रिप्टो-> फिएट, फिएट-> क्रिप्टो से त्वरित निपटान को लागू करने के लिए
  • COTI-X - विनिमय कार्यान्वयन और एकीकरण

विकास के तहत क्या है और अभी भी GitHub में उपलब्ध नहीं है?

कोटि-नोड में विकसित सब कुछ ज्यादातर लोगों द्वारा कुछ दिनों की देरी से देखा जा सकता है जब तक कि यह प्रतिबिंबित न हो। वर्तमान विकास प्रयासों में से कुछ जो अभी तक GitHub पर उपलब्ध नहीं हैं:

  • MultiDAG - वॉलेट एकीकरण + टोकन परिनियोजन अनुप्रयोग
  • pBFT हमारी बेहतर सहमति और pBFT अनुसंधान और विकास पर काम करते हैं
  • इतिहास नोड्स - इतिहास नोड्स के साथ पूर्ण एकीकरण अभी भी विकास में हैं
  • कस्टम ने 3 पार्टी मर्चेंट इंटीग्रेशन बनाया
  • सिंक्रनाइज़ेशन और स्केलेबिलिटी के लिए DAG डेटा संरचना में सुधार।

देव सामुदायिक सगाई

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

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

COTI GitHub रिपॉजिटरी

COTI परियोजना में 21 सहयोगियों के साथ कुल 16 रिपॉजिटरी हैं।

COTI विकास पारिस्थितिकी तंत्र में निम्नलिखित शामिल हैं:

  • डीएजी आधारित ब्लॉकचेन
  • ट्रस्ट सर्वसम्मति एल्गोरिदम का सबूत
  • MultiDAG
  • ग्लोबल ट्रस्ट सिस्टम
  • यूनिवर्सल भुगतान समाधान
  • अदायगी रास्ता
  • उपभोक्ता COTI वेतन आवेदन
  • व्यापारी COTI पे बिजनेस

सभी COTI सार्वजनिक कोड https://github.com/coti-io पर उपलब्ध हैं

COTI- नोड भंडार

COTI नोड COTI के DAG- आधारित वितरित खाता बही के लिए विकास भंडार है। यह एक बेसेनोड (जो सभी COTI नोड्स के लिए आधार कार्यक्षमता प्रदान करता है) और अन्य सभी COTI नोड्स से मिलकर बनता है।

Coti-zerospend-server, coti-history-node, coti-dsp-node, coti-fullnode, coti-trustscore-node, coti-storage-node, coti-Financial-server, कॉटी-नोडोडेनेजर - ये रिपॉजिटरी रिलीज के लिए हैं और विकास के लिए इस्तेमाल नहीं किया जा रहा है। ये रिपॉजिटरी नियमित रूप से कोटि-नोड रिपॉजिटरी से अपडेट किए जाते हैं और जहां वर्जनिंग / रिलीज पाया जा सकता है।

इन रिपॉजिटरी में हमारे सभी इंफ्रास्ट्रक्चर कार्यान्वयन, ट्रस्टचैन प्रोटोकॉल, सर्वसम्मति, मल्टीडाग और कोड के 35K से अधिक लाइनें शामिल हैं।

Coti-एन्क्रिप्शन पुस्तकालय

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

COTI वॉलेट रिपॉजिटरी

रिपॉजिटरी में क्लाइंट साइड COTI वॉलेट रिएक्ट कोड + एक रेंडरिंग सर्वर (एक्सप्रेस) है।

COTI सेवाएं / एप्लिकेशन रिपॉजिटरी

  • coti-exchange-app - एक Node.js (Sails.js v1 आधारित) microservice, एक coti पूर्ण नोड के साथ सभी संचार से निपटने। एप्लिकेशन बाकी एपीआई एंडपॉइंट्स को उजागर करता है जो एक्सचेंजों द्वारा उपयोग किया जा सकता है:
  • लेनदेन की निगरानी, ​​पते की शेष राशि (जमा राशि की पहचान करने और निकासी की पुष्टि के लिए उदाहरण के लिए)
  • लेनदेन भेजें (निकासी)
  • वॉलेट पते उत्पन्न करें (उदाहरण के लिए प्रत्येक विनिमय ग्राहक के लिए एक वॉलेट पता जारी करने के लिए)
  • क्रिप्टो-गेटवे - सीओटीआई क्रिप्टो भुगतान आवेदन का उपयोग बीटीसी, ईटीएच, एडीए को संसाधित करने और ई-कॉमर्स वेबसाइटों में एकीकृत करने के लिए किया जाता है।
  • क्रिप्टो-शॉप - COTI पे इंटीग्रेशन प्रदर्शन साइट।

सारांश

COTI विकास यह सुनिश्चित करते हुए सर्वोत्तम प्रथाओं को कोडिंग के साथ अनुपालन करता है कि हमारा सार्वजनिक GitHub हमेशा हमारे कोड का एक क्लीनर और समझने योग्य संस्करण बनाए रखता है। जैसा कि हम अपने विकास के साथ आगे बढ़ते हैं, हम अपने निजी / सार्वजनिक संपर्क में सुधार के साथ-साथ नई सुविधाओं, बग फिक्स और रिलीज नंबरिंग को संभालने के लिए अपने प्रबंधन में सुधार करते रहेंगे, जबकि अभी भी खुले स्रोत के दिशानिर्देशों और सर्वोत्तम प्रथाओं को अपनाते हुए और उन्हें लागू करते हुए हमारे वर्कफ़्लो का हिस्सा।

COTI संसाधन

वेबसाइट: https://coti.io

टेलीग्राम: https://t.me/COTInetwork

ट्विटर: https://twitter.com/COTInetwork

गीथूब: https://github.com/coti-io

कलह: https://discord.me/coti

तकनीकी श्वेतपत्र: https://coti.io/files/COTI-technical-whitepaper.pdf