प्रमुख मजकुराकडे जा

ERC-721 मार्केट कसे लागू करावे

स्मार्ट कॉन्ट्रॅक्ट
erc-721
Solidity
tokens
मध्यम
Alberto Cuesta Cañada
१९ मार्च, २०२०
5 मिनिट वाचन

या लेखात, मी तुम्हाला Ethereum blockchain साठी Craigslist कसे कोड करायचे हे दाखवणार आहे.

Gumtree, Ebay आणि Craigslist पूर्वी, क्लासिफाइड्स बोर्ड बहुतेक कॉर्क किंवा कागदाचे बनलेले होते. शाळेच्या कॉरिडॉरमध्ये, वर्तमानपत्रांमध्ये, रस्त्यावरील दिव्यांवर, दुकानांच्या दर्शनी भागात क्लासिफाइड्स बोर्ड होते.

इंटरनेटमुळे हे सर्व बदलले. एखादा विशिष्ट क्लासिफाइड्स बोर्ड पाहू शकणाऱ्या लोकांची संख्या अनेक पटींनी वाढली. त्यामुळे, ते ज्या बाजारांचे प्रतिनिधित्व करतात ते अधिक कार्यक्षम बनले आणि जागतिक स्तरावर विस्तारले. Ebay हा एक मोठा व्यवसाय आहे ज्याची मुळे या भौतिक क्लासिफाइड्स बोर्डांमध्ये आहेत.

Blockchain मुळे हे बाजार पुन्हा एकदा बदलणार आहेत, मी तुम्हाला दाखवतो कसे.

कमाई

सार्वजनिक blockchain क्लासिफाइड्स बोर्डचे व्यवसाय मॉडेल Ebay आणि कंपनीच्या मॉडेलपेक्षा वेगळे असणे आवश्यक आहे.

प्रथम, विकेंद्रीकरणाचा दृष्टिकोन आहे. विद्यमान प्लॅटफॉर्मला त्यांचे स्वतःचे सर्व्हर सांभाळावे लागतात. एक विकेंद्रित प्लॅटफॉर्म त्याच्या वापरकर्त्यांद्वारे सांभाळला जातो, त्यामुळे प्लॅटफॉर्म मालकासाठी मूळ प्लॅटफॉर्म चालवण्याचा खर्च शून्यावर येतो.

त्यानंतर फ्रंट एंड आहे, म्हणजेच वेबसाइट किंवा इंटरफेस जो प्लॅटफॉर्मवर प्रवेश देतो. येथे अनेक पर्याय आहेत. प्लॅटफॉर्मचे मालक प्रवेश प्रतिबंधित करू शकतात आणि प्रत्येकाला त्यांचा इंटरफेस वापरण्यास भाग पाडू शकतात, त्यासाठी शुल्क आकारू शकतात. प्लॅटफॉर्मचे मालक प्रवेश खुला करण्याचा निर्णय घेऊ शकतात (पॉवर टू द पीपल!) आणि कोणालाही प्लॅटफॉर्मसाठी इंटरफेस तयार करण्याची परवानगी देऊ शकतात. किंवा मालक या दोन टोकांच्या मधला कोणताही दृष्टिकोन ठरवू शकतात.

माझ्यापेक्षा अधिक दूरदृष्टी असलेले व्यावसायिक नेते यातून कमाई कशी करायची हे जाणतील. मला फक्त एवढेच दिसते की हे सध्याच्या स्थितीपेक्षा वेगळे आहे आणि कदाचित फायदेशीर आहे.

शिवाय, ऑटोमेशन आणि पेमेंट्सचा दृष्टिकोन आहे. काही गोष्टी खूप प्रभावीपणे टोकनाइज्ड (opens in a new tab) केल्या जाऊ शकतात आणि क्लासिफाइड्स बोर्डमध्ये त्यांचा व्यापार केला जाऊ शकतो. टोकनाइज्ड मालमत्ता blockchain मध्ये सहजपणे हस्तांतरित केल्या जातात. अत्यंत गुंतागुंतीच्या पेमेंट पद्धती blockchain मध्ये सहजपणे लागू केल्या जाऊ शकतात.

मला येथे फक्त व्यवसायाच्या संधीचा वास येत आहे. कोणत्याही चालू खर्चाशिवाय क्लासिफाइड्स बोर्ड सहजपणे लागू केला जाऊ शकतो, ज्यामध्ये प्रत्येक व्यवहारात गुंतागुंतीचे पेमेंट मार्ग समाविष्ट असतील. मला खात्री आहे की याचा उपयोग कशासाठी करायचा याबद्दल कोणालातरी कल्पना सुचेल.

मी फक्त ते तयार करण्यात आनंदी आहे. चला कोडवर एक नजर टाकूया.

अंमलबजावणी

काही काळापूर्वी आम्ही बिझनेस केसच्या उदाहरणांच्या अंमलबजावणी आणि इतर चांगल्या गोष्टींसह एक ओपन सोर्स रिपॉझिटरी (opens in a new tab) सुरू केली आहे, कृपया एक नजर टाका.

या Ethereum Classifieds Board (opens in a new tab) साठीचा कोड तिथे आहे, कृपया त्याचा वापर करा आणि त्याचा भरपूर वापर करा. फक्त हे लक्षात ठेवा की कोडचे ऑडिट केलेले नाही आणि त्यात पैसे गुंतवण्यापूर्वी तुम्हाला स्वतःची योग्य तपासणी करणे आवश्यक आहे.

बोर्डच्या मूलभूत गोष्टी गुंतागुंतीच्या नाहीत. बोर्डमधील सर्व जाहिराती फक्त काही फील्ड्ससह एक struct असतील:

1struct Trade {
2 address poster;
3 uint256 item;
4 uint256 price;
5 bytes32 status; // उघडा, कार्यान्वित, रद्द
6}

म्हणजे जाहिरात पोस्ट करणारी कोणीतरी व्यक्ती आहे. विक्रीसाठी एक वस्तू. वस्तूसाठी एक किंमत. व्यापाराची स्थिती जी उघडी, कार्यान्वित किंवा रद्द केली जाऊ शकते.

हे सर्व व्यवहार एका मॅपिंगमध्ये ठेवले जातील. कारण Solidity मध्ये सर्व काही मॅपिंगच असल्याचे दिसते. तसेच ते सोयीचे असल्यामुळे.

1mapping(uint256 => Trade) public trades;

मॅपिंग वापरण्याचा अर्थ असा आहे की प्रत्येक जाहिरात पोस्ट करण्यापूर्वी आपल्याला त्यासाठी एक आयडी तयार करावा लागेल, आणि त्यावर प्रक्रिया करण्यापूर्वी आपल्याला त्या जाहिरातीचा आयडी माहित असणे आवश्यक असेल. स्मार्ट कॉन्ट्रॅक्टमध्ये किंवा फ्रंट-एंडमध्ये यावर काम करण्याचे अनेक मार्ग आहेत. तुम्हाला काही सूचना हव्या असल्यास कृपया विचारा.

पुढे प्रश्न येतो की आपण ज्या वस्तूंचा व्यवहार करतो त्या कोणत्या आहेत आणि व्यवहारासाठी पैसे देण्यासाठी वापरले जाणारे चलन कोणते आहे.

वस्तूंसाठी, आम्ही फक्त त्यांना ERC-721 (opens in a new tab) इंटरफेस लागू करण्यास सांगणार आहोत, जो वास्तविक जगातील वस्तू blockchain मध्ये दर्शविण्याचा एक मार्ग आहे, जरी ते डिजिटल मालमत्तेसह सर्वोत्तम कार्य करते (opens in a new tab). आम्ही कन्स्ट्रक्टरमध्ये आमचा स्वतःचा ERC721 कॉन्ट्रॅक्ट निर्दिष्ट करणार आहोत, याचा अर्थ आमच्या क्लासिफाइड्स बोर्डमधील कोणत्याही मालमत्तेचे आधीच टोकनायझेशन करणे आवश्यक आहे.

पेमेंट्ससाठी, आम्ही असेच काहीतरी करणार आहोत. बहुतेक blockchain प्रकल्प स्वतःची ERC-20 (opens in a new tab) क्रिप्टोकरन्सी परिभाषित करतात. काहीजण DAI सारखे मुख्य प्रवाहातील चलन वापरण्यास प्राधान्य देतात. या क्लासिफाइड्स बोर्डमध्ये, तुम्हाला फक्त निर्मितीच्या वेळी ठरवायचे आहे की तुमचे चलन कोणते असेल. सोपे.

1constructor (
2 address _currencyTokenAddress, address _itemTokenAddress
3) public {
4 currencyToken = IERC20(_currencyTokenAddress);
5 itemToken = IERC721(_itemTokenAddress);
6 tradeCounter = 0;
7}

आपण तिथे पोहोचत आहोत. आपल्याकडे जाहिराती, व्यापारासाठी वस्तू आणि पेमेंटसाठी चलन आहे. जाहिरात तयार करणे म्हणजे तुमच्याकडे ती वस्तू आहे आणि तुम्ही ती दोनदा पोस्ट केलेली नाही, शक्यतो वेगळ्या बोर्डवर, हे दाखवण्यासाठी ती वस्तू एस्क्रोमध्ये ठेवणे.

खालील कोड नेमके तेच करतो. वस्तू एस्क्रोमध्ये ठेवतो, जाहिरात तयार करतो, काही हाउसकीपिंगची कामे करतो.

1function openTrade(uint256 _item, uint256 _price)
2 public
3{
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 public
3{
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}
सर्व दाखवा

शेवटी, विक्रेत्यांसाठी खरेदीदाराने व्यापार स्वीकारण्यापूर्वी त्यातून बाहेर पडण्याचा पर्याय आहे. काही मॉडेल्समध्ये, जाहिराती कालबाह्य होण्यापूर्वी काही कालावधीसाठी थेट (live) राहतील. तुमच्या बाजाराच्या डिझाइनवर अवलंबून, ही तुमची निवड आहे.

हा कोड व्यापार कार्यान्वित करण्यासाठी वापरलेल्या कोडसारखाच आहे, फक्त यात चलनाची देवाणघेवाण होत नाही आणि वस्तू जाहिरात पोस्ट करणाऱ्याकडे परत जाते.

1function cancelTrade(uint256 _trade)
2 public
3{
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) तपासा.

निष्कर्ष

क्लासिफाइड्स बोर्ड हे एक सामान्य बाजारपेठेचे स्वरूप आहे जे इंटरनेटमुळे मोठ्या प्रमाणावर विस्तारले, आणि काही मक्तेदारी विजेत्यांसह एक प्रचंड लोकप्रिय व्यवसाय मॉडेल बनले.

क्लासिफाइड्स बोर्ड हे blockchain वातावरणात प्रतिकृती बनवण्यासाठी एक सोपे साधन आहे, ज्यात खूप विशिष्ट वैशिष्ट्ये आहेत जी विद्यमान दिग्गजांना आव्हान देणे शक्य करतील.

या लेखात, मी क्लासिफाइड्स बोर्ड व्यवसायाच्या व्यावसायिक वास्तवाला तांत्रिक अंमलबजावणीशी जोडण्याचा प्रयत्न केला आहे. जर तुमच्याकडे योग्य कौशल्ये असतील तर हे ज्ञान तुम्हाला अंमलबजावणीसाठी एक दूरदृष्टी आणि रोडमॅप तयार करण्यास मदत करेल.

नेहमीप्रमाणे, जर तुम्ही काहीतरी मजेदार तयार करत असाल आणि तुम्हाला काही सल्ला हवा असेल, तर कृपया मला संपर्क साधा (opens in a new tab)! मला मदत करायला नेहमीच आनंद होतो.

पृष्ठ अखेरचे अद्यतन: १५ ऑगस्ट, २०२३

हे मार्गदर्शन उपयुक्त होते का?