OpenZeppelin क्यों
व्यापक रूप से परखा हुआ कोड
OpenZeppelin क्यों, CoddyKit पर Web3 और DApp विकास की मूल बातें का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Web3 और DApp विकास की मूल बातें सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Web3 और DApp विकास की मूल बातें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
OpenZeppelin क्या है
OpenZeppelin Contracts, Solidity के लिए सुरक्षित और दोबारा उपयोग किए जा सकने वाले स्मार्ट कॉन्ट्रैक्ट बिल्डिंग ब्लॉक्स की लाइब्रेरी है।
- सामान्य मानकों (ERC-20, ERC-721, ERC-1155) को लागू करती है।
- पहुँच नियंत्रण, सुरक्षा और उपयोगिता मॉड्यूल प्रदान करती है।
- इसका ऑडिट किया गया है और उत्पादन प्रोटोकॉल में इसका व्यापक उपयोग होता है।
इसे स्वयं क्यों न लिखें
टोकन मानकों को हाथ से फिर से लागू करना जोखिमभरा है:
- अंकगणित या अनुमतियों में छोटी-सी गड़बड़ी भी धनराशि खाली कर सकती है।
- मानकों में ऐसे विशेष मामले होते हैं जिन्हें आसानी से नज़रअंदाज़ किया जा सकता है।
- कस्टम कोड का समुदाय द्वारा ऑडिट और परीक्षण नहीं किया गया होता है।
कई परीक्षणों से गुज़र चुके कोड का दोबारा उपयोग करने से आप अपने विशिष्ट तर्क पर ध्यान दे सकते हैं।
लाइब्रेरी इंस्टॉल करना
OpenZeppelin Contracts को निर्भरता के रूप में जोड़ें:
npm install @openzeppelin/contractsयह node_modules में इंस्टॉल हो जाती है और Hardhat वहाँ से आयात अपने-आप ढूँढ़ लेता है।
npm install @openzeppelin/contractsकॉन्ट्रैक्ट आयात करना
जिन मॉड्यूल की आवश्यकता है, उन्हें उनके पैकेज पथ से आयात करें:
// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport "@openzeppelin/contracts/token/ERC20/ERC20.sol";यह पथ लाइब्रेरी की फ़ोल्डर संरचना (token, access, security, utils) के अनुरूप होता है।
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";मानक से इनहेरिट करना
आप किसी बेस से इनहेरिट करके अपना कॉन्ट्रैक्ट बनाते हैं। कुछ ही पंक्तियों में ERC-20 टोकन:
contract MyToken is ERC20 {\n constructor() ERC20("MyToken", "MTK") {\n _mint(msg.sender, 1000000 * 10 ** decimals());\n }\n}ट्रांसफ़र, अनुमोदन और बैलेंस का पूरा तर्क इनहेरिट हो जाता है।
contract MyToken is ERC20 {
constructor() ERC20("MyToken", "MTK") {
_mint(msg.sender, 1000000 * 10 ** decimals());
}
}व्यवहार को ओवरराइड करना
आप इनहेरिट किए गए फ़ंक्शन को ओवरराइड करके उनमें बदलाव कर सकते हैं और फिर भी super के माध्यम से पैरेंट को कॉल कर सकते हैं:
function transfer(address to, uint256 amount)\n public override returns (bool) {\n require(to != address(0), "No zero address");\n return super.transfer(to, amount);\n}function transfer(address to, uint256 amount)
public override returns (bool) {
require(to != address(0), "No zero address");
return super.transfer(to, amount);
}मॉड्यूल की श्रेणियाँ
OpenZeppelin को इन क्षेत्रों में व्यवस्थित किया गया है:
- token/ — ERC-20, ERC-721, ERC-1155 के कार्यान्वयन।
- access/ — Ownable, AccessControl।
- security/ — ReentrancyGuard, Pausable।
- utils/ — गणित, स्ट्रिंग और क्रिप्टोग्राफ़ी सहायक।
विज़ार्ड
OpenZeppelin वेब-आधारित Contracts Wizard उपलब्ध कराता है, जो चेकबॉक्स के आधार पर शुरुआती कॉन्ट्रैक्ट बनाता है — मानक चुनें, mintable, pausable या access control को चालू करें और कोड कॉपी करें।
कस्टमाइज़ करने से पहले सही बेस तैयार करने का यह एक शानदार तरीका है।
ऑडिट किया गया और संस्करणबद्ध
OpenZeppelin के रिलीज़ का ऑडिट किया जाता है और वे सिमेंटिक वर्ज़निंग का पालन करते हैं। package.json में एक संस्करण तय करें, ताकि बड़े अपग्रेड से व्यवहार चुपचाप न बदल जाए:
"@openzeppelin/contracts": "^5.0.0"बड़े संस्करणों को बढ़ाने से पहले माइग्रेशन गाइड पढ़ें।
"@openzeppelin/contracts": "^5.0.0"यह कोई जादुई समाधान नहीं है
OpenZeppelin बिल्डिंग ब्लॉक्स को सुरक्षित बनाता है, लेकिन आपके तर्क की अब भी समीक्षा आवश्यक है:
- सुरक्षित रूप से लिखा गया कोड इनहेरिट करने से कस्टम फ़ंक्शन सुरक्षित नहीं हो जाते।
- गलत कॉन्फ़िगरेशन (गलत भूमिकाएँ, आवश्यक जाँचों का अभाव) अब भी सुरक्षा कमियाँ पैदा कर सकता है।
हमेशा परीक्षण करें और अधिक मूल्य वाले कॉन्ट्रैक्ट के लिए ऑडिट करवाएँ।
Contracts और Contracts-Upgradeable
OpenZeppelin दो पैकेज उपलब्ध कराता है:
- @openzeppelin/contracts — सामान्य कंस्ट्रक्टर वाले मानक कॉन्ट्रैक्ट।
- @openzeppelin/contracts-upgradeable — प्रॉक्सी के लिए अनुकूलित वही मॉड्यूल, जो इनिशियलाइज़र का उपयोग करते हैं।
अपग्रेड किए जा सकने वाले विकल्प को तभी चुनें, जब आप वास्तव में प्रॉक्सी के पीछे परिनियोजन कर रहे हों।
त्वरित जाँच
OpenZeppelin का उपयोग करने के कारणों की अपनी समझ जाँचें।
पुनरावलोकन
आपने सीखा कि OpenZeppelin Solidity की मानक लाइब्रेरी क्यों है।
- यह टोकन मानकों और सुरक्षा मॉड्यूल के ऑडिट किए गए, दोबारा उपयोग योग्य कार्यान्वयन प्रदान करती है।
- इसे npm से इंस्टॉल करें और
ERC20जैसे बेस कॉन्ट्रैक्ट से इनहेरिट करें। - व्यवहार को कस्टमाइज़ करने के लिए
superके साथ फ़ंक्शन ओवरराइड करें। - मॉड्यूल token, access, security और utils को शामिल करते हैं; Wizard कोड का शुरुआती ढाँचा तैयार करता है।
- संस्करण तय करें और अपने तर्क का परीक्षण फिर भी करें — यह कोई जादुई समाधान नहीं है।
एआई शिक्षक के साथ Web3 और DApp विकास की मूल बातें सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 29
- पाठ
- 105
अक्सर पूछे जाने वाले प्रश्न
क्या “OpenZeppelin क्यों” पाठ निःशुल्क है?
हाँ — Web3 और DApp विकास की मूल बातें अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “OpenZeppelin क्यों” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Web3 और DApp विकास की मूल बातें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“OpenZeppelin क्यों” में मैं क्या सीखूँगा?
व्यापक रूप से परखा हुआ कोड आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Web3 और DApp विकास की मूल बातें का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Web3 और DApp विकास की मूल बातें शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Web3 और DApp विकास की मूल बातें शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“OpenZeppelin क्यों” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Web3 और DApp विकास की मूल बातें पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Web3 और DApp विकास की मूल बातें पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- OpenZeppelin क्यों
- पहुँच नियंत्रण
- टोकन एक्सटेंशन
- अपग्रेड किए जा सकने वाले कॉन्ट्रैक्ट