ERC-721 बाजार कैसे लागू करें
इस लेख में, मैं आपको दिखाने जा रहा हूं कि एथेरियम ब्लॉकचेन के लिए Craigslist को कैसे कोड किया जाए।
Gumtree, Ebay और Craigslist से पहले, वर्गीकृत बोर्ड ज़्यादातर कॉर्क या कागज के बने होते थे। स्कूल के गलियारों, समाचार पत्रों, स्ट्रीटलाइट्स, स्टोरफ्रंट्स में वर्गीकृत बोर्ड होते थे।
इंटरनेट के साथ यह सब बदल गया। एक विशिष्ट वर्गीकृत बोर्ड को देख सकने वाले लोगों की संख्या कई गुना बढ़ गई। इसके साथ, वे जिन बाजारों का प्रतिनिधित्व करते हैं, वे कहीं अधिक कुशल हो गए और वैश्विक आकार तक पहुंच गए। Ebay एक बहुत बड़ा व्यवसाय है जिसकी उत्पत्ति इन भौतिक वर्गीकृत बोर्डों से हुई है।
ब्लॉकचेन के साथ ये बाज़ार एक बार फिर बदलने के लिए तैयार हैं, मैं आपको दिखाता हूँ कैसे।
मुद्रीकरण
एक सार्वजनिक ब्लॉकचेन वर्गीकृत बोर्ड का व्यवसाय मॉडल Ebay और कंपनी से अलग होना होगा।
सबसे पहले, विकेंद्रीकरण का कोण है। मौजूदा प्लेटफ़ॉर्मों को अपने स्वयं के सर्वर बनाए रखने की ज़रूरत होती है। एक विकेंद्रीकृत प्लेटफ़ॉर्म को उसके यूज़र्स द्वारा बनाए रखा जाता है, इसलिए कोर प्लेटफ़ॉर्म चलाने की लागत प्लेटफ़ॉर्म मालिक के लिए शून्य हो जाती है।
फिर फ्रंट एंड है, वेबसाइट या इंटरफ़ेस जो प्लेटफ़ॉर्म तक पहुंच प्रदान करता है। यहां कई विकल्प हैं। प्लेटफ़ॉर्म मालिक पहुंच को प्रतिबंधित कर सकते हैं और शुल्क लगाकर सभी को अपने इंटरफ़ेस का उपयोग करने के लिए मजबूर कर सकते हैं। प्लेटफ़ॉर्म के मालिक पहुंच को खोलने का भी निर्णय ले सकते हैं (ताकत लोगों के हाथ में!) और किसी को भी प्लेटफ़ॉर्म के लिए इंटरफेस बनाने की सुविधा दे सकते हैं। या मालिक उन चरम सीमाओं के बीच किसी भी दृष्टिकोण का निर्णय ले सकते हैं।
_मुझसे ज़्यादा दूरदृष्टि वाले व्यावसायिक नेता जानेंगे कि इसका मुद्रीकरण कैसे किया जाए। मैं बस इतना देख रहा हूं कि यह यथास्थिति से अलग है और शायद लाभदायक है।
इसके अलावा, स्वचालन और भुगतान का पहलू है। कुछ चीज़ों को बहुत प्रभावी ढंग से टोकनयुक्त (opens in a new tab) किया जा सकता है और एक वर्गीकृत बोर्ड में ट्रे़ड किया जा सकता है। टोकनयुक्त परिसंपत्तियां एक ब्लॉकचेन में आसानी से स्थानांतरित हो जाती हैं। अत्यधिक जटिल भुगतान विधियों को एक ब्लॉकचेन में आसानी से लागू किया जा सकता है।
मुझे यहां एक व्यावसायिक अवसर की गंध आ रही है। बिना किसी चालू लागत वाला एक वर्गीकृत बोर्ड आसानी से लागू किया जा सकता है, जिसमें प्रत्येक लेन-देन में जटिल भुगतान पथ शामिल हों। मुझे यकीन है कि कोई इस विचार के साथ आएगा कि इसका उपयोग किस लिए करना है।
मैं इसे बनाकर ही खुश हूं। आइए कोड पर एक नज़र डालें।
कार्यान्वयन
कुछ समय पहले हमने व्यावसायिक मामले के उदाहरण कार्यान्वयन और अन्य उपहारों के साथ एक ओपन सोर्स रिपॉजिटरी (opens in a new tab) शुरू की थी, कृपया एक नज़र डालें।
इस एथेरियम वर्गीकृत बोर्ड (opens in a new tab) का कोड वहां है, कृपया इसका इस्तेमाल करें और इसका भरपूर इस्तेमाल करें। बस इस बात से अवगत रहें कि कोड का ऑडिट नहीं किया गया है और इसमें पैसा लगाने से पहले आपको अपना उचित परिश्रम करना होगा।
बोर्ड की मूल बातें जटिल नहीं हैं। बोर्ड में सभी विज्ञापन कुछ क्षेत्रों के साथ सिर्फ एक स्ट्रक्चर होंगे:
1struct Trade {2 address poster;3 uint256 item;4 uint256 price;5 bytes32 status; // खुला, निष्पादित, रद्द6}तो कोई है जो विज्ञापन पोस्ट कर रहा है। बिक्री के लिए एक वस्तु। वस्तु के लिए एक मूल्य। ट्रेड की स्थिति जो खुली, निष्पादित या रद्द की जा सकती है।
इन सभी ट्रेडों को एक मैपिंग में रखा जाएगा। क्योंकि सॉलिडिटी में सब कुछ एक मैपिंग लगता है। इसलिए भी क्योंकि यह सुविधाजनक है।
1mapping(uint256 => Trade) public trades;मैपिंग का उपयोग करने का मतलब सिर्फ यह है कि हमें इसे पोस्ट करने से पहले प्रत्येक विज्ञापन के लिए एक आईडी बनानी होगी, और इस पर काम करने से पहले हमें एक विज्ञापन की आईडी जानने की आवश्यकता होगी। इससे निपटने के कई तरीके हैं, या तो स्मार्ट अनुबंध में या फ्रंट-एंड में। यदि आपको कुछ संकेत चाहिए तो कृपया पूछें।
अगला सवाल यह है कि वे कौन सी वस्तुएं हैं जिनसे हम निपटते हैं, और यह कौन सी मुद्रा है जिसका उपयोग लेन-देन के लिए भुगतान करने के लिए किया जाता है।
आइटम के लिए, हम बस यह पूछने जा रहे हैं कि वे ERC-721 (opens in a new tab) इंटरफ़ेस लागू करें, जो वास्तव में एक ब्लॉकचेन में वास्तविक दुनिया की वस्तुओं का प्रतिनिधित्व करने का एक तरीका है, हालांकि यह डिजिटल संपत्तियों के साथ सबसे अच्छा काम करता है (opens in a new tab)। हम कंस्ट्रक्टर में अपने स्वयं के ERC721 अनुबंध को निर्दिष्ट करने जा रहे हैं, जिसका अर्थ है कि हमारे वर्गीकृत बोर्ड में किसी भी संपत्ति को पहले से टोकनयुक्त होना चाहिए।
भुगतान के लिए, हम कुछ इसी तरह का करने जा रहे हैं। अधिकांश ब्लॉकचेन परियोजनाएं अपनी स्वयं की ERC-20 (opens in a new tab) क्रिप्टोकरेंसी परिभाषित करती हैं। कुछ अन्य लोग DAI जैसी मुख्यधारा की मुद्रा का उपयोग करना पसंद करते हैं। इस वर्गीकृत बोर्ड में, आपको केवल निर्माण पर यह तय करने की आवश्यकता है कि आपकी मुद्रा क्या होगी। आसान।
1constructor (2 address _currencyTokenAddress, address _itemTokenAddress3) public {4 currencyToken = IERC20(_currencyTokenAddress);5 itemToken = IERC721(_itemTokenAddress);6 tradeCounter = 0;7}हम वहां पहुंच रहे हैं। हमारे पास विज्ञापन, ट्रे़ड के लिए आइटम और भुगतान के लिए एक मुद्रा है। एक विज्ञापन बनाने का मतलब है एक आइटम को एस्क्रो में रखना यह दिखाने के लिए कि आपके पास वह है और आपने इसे दो बार पोस्ट नहीं किया है, संभवतः एक अलग बोर्ड में।
नीचे दिया गया कोड ठीक यही करता है। आइटम को एस्क्रो में रखता है, विज्ञापन बनाता है, कुछ हाउसकीपिंग करता है।
1function openTrade(uint256 _item, uint256 _price)2 public3{4 itemToken.transferFrom(msg.sender, address(this), _item);5 trades[tradeCounter] = Trade({6 poster: msg.sender,7 item: _item,8 price: _price,9 status: "Open"10 });11 tradeCounter += 1;12 emit TradeStatusChange(tradeCounter - 1, "Open");13}सभी दिखाएँट्रे़ड स्वीकार करने का मतलब है एक विज्ञापन (ट्रे़ड) चुनना, कीमत चुकाना, आइटम प्राप्त करना। नीचे दिया गया कोड एक ट्रे़ड पुनर्प्राप्त करता है। जांचता है कि यह उपलब्ध है या नहीं। आइटम का भुगतान करता है। आइटम को पुनः प्राप्त करता है। विज्ञापन को अपडेट करता है।
1function executeTrade(uint256 _trade)2 public3{4 Trade memory trade = trades[_trade];5 require(trade.status == "Open", "ट्रेड खुला नहीं है।");6 currencyToken.transferFrom(msg.sender, trade.poster, trade.price);7 itemToken.transferFrom(address(this), msg.sender, trade.item);8 trades[_trade].status = "Executed";9 emit TradeStatusChange(_trade, "Executed");10}सभी दिखाएँअंत में, हमारे पास विक्रेताओं के लिए एक विकल्प है कि वे किसी खरीदार के इसे स्वीकार करने से पहले एक ट्रे़ड से पीछे हट जाएं। कुछ मॉडलों में, विज्ञापन समाप्त होने से पहले कुछ समय के लिए लाइव रहेंगे। आपकी पसंद, आपके बाज़ार के डिज़ाइन पर निर्भर करती है।
कोड एक ट्रे़ड को निष्पादित करने के लिए उपयोग किए जाने वाले कोड के समान है, सिवाय इसके कि कोई मुद्रा हाथ नहीं बदल रही है और आइटम विज्ञापन पोस्टर के पास वापस चला जाता है।
1function cancelTrade(uint256 _trade)2 public3{4 Trade memory trade = trades[_trade];5 require(6 msg.sender == trade.poster,7 "ट्रेड केवल पोस्टर द्वारा ही रद्द किया जा सकता है।"8 );9 require(trade.status == "Open", "ट्रेड खुला नहीं है।");10 itemToken.transferFrom(address(this), trade.poster, trade.item);11 trades[_trade].status = "Cancelled";12 emit TradeStatusChange(_trade, "Cancelled");13}सभी दिखाएँबस इतना ही। आप कार्यान्वयन के अंत तक पहुँच गए हैं। यह काफी आश्चर्यजनक है कि जब कोड में व्यक्त किया जाता है तो कुछ व्यावसायिक अवधारणाएं कितनी संक्षिप्त होती हैं, और यह उन मामलों में से एक है। पूरे अनुबंध को हमारी रेपो में (opens in a new tab) देखें।
निष्कर्ष
वर्गीकृत बोर्ड एक सामान्य बाज़ार विन्यास हैं जो इंटरनेट के साथ बड़े पैमाने पर बढ़े, और कुछ एकाधिकार विजेताओं के साथ एक बेहद लोकप्रिय व्यवसाय मॉडल बन गए।
वर्गीकृत बोर्ड एक ब्लॉकचेन वातावरण में दोहराने के लिए एक आसान उपकरण भी हैं, जिसमें बहुत विशिष्ट विशेषताएं हैं जो मौजूदा दिग्गजों के लिए एक चुनौती को संभव बनाएंगी।
इस लेख में, मैंने एक वर्गीकृत बोर्ड व्यवसाय की व्यावसायिक वास्तविकता को तकनीकी कार्यान्वयन के साथ पाटने का प्रयास किया है। यदि आपके पास सही कौशल है तो यह ज्ञान आपको कार्यान्वयन के लिए एक दृष्टि और एक रोडमैप बनाने में मदद करेगा।
हमेशा की तरह, यदि आप कुछ मजेदार बनाने जा रहे हैं और कुछ सलाह का स्वागत करेंगे, तो कृपया मुझे एक संदेश भेजें (opens in a new tab)! मुझे मदद करने में हमेशा खुशी होती है।
पेज का अंतिम अपडेट: 3 मार्च 2026