Hardhat Documentation

From binaryoption
Jump to navigation Jump to search
Баннер1

Hardhat Documentation: शुरुआती के लिए एक विस्तृत गाइड

परिचय

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

Hardhat क्या है?

Hardhat एक ऐसा टूल है जो स्मार्ट अनुबंध विकास के हर पहलू को संभालने के लिए डिज़ाइन किया गया है, जिसमें शामिल हैं:

  • **संकलन (Compilation):** आपके स्मार्ट अनुबंधों को ब्लॉकचेन पर तैनात करने के लिए निष्पादन योग्य बाइटकोड में बदलना।
  • **तैनाती (Deployment):** आपके अनुबंधों को स्थानीय विकास ब्लॉकचेन या टेस्टनेट पर तैनात करना।
  • **परीक्षण (Testing):** आपके अनुबंधों को स्वचालित रूप से परीक्षण करना ताकि यह सुनिश्चित हो सके कि वे अपेक्षित रूप से काम करते हैं।
  • **डीबगिंग (Debugging):** आपके अनुबंधों में त्रुटियों को ढूंढना और ठीक करना।
  • **अनुकूलन (Optimization):** आपके अनुबंधों को गैस लागत के लिए अनुकूलित करना।

Hardhat अन्य विकास परिवेशों, जैसे Truffle से अलग है, क्योंकि यह अधिक मॉड्यूलर और एक्सटेंसिबल है। यह डेवलपर्स को अपनी आवश्यकताओं के अनुरूप अपने विकास परिवेश को अनुकूलित करने की अनुमति देता है।

Hardhat की स्थापना

Hardhat को स्थापित करने के लिए, आपके सिस्टम पर Node.js और npm (Node Package Manager) स्थापित होने चाहिए। एक बार जब ये स्थापित हो जाते हैं, तो आप निम्नलिखित कमांड का उपयोग करके Hardhat को स्थापित कर सकते हैं:

```bash npm install --save-dev hardhat ```

यह आपके प्रोजेक्ट डायरेक्टरी में Hardhat को एक डेवलपमेंट डिपेंडेंसी के रूप में स्थापित करेगा।

एक नया Hardhat प्रोजेक्ट बनाना

Hardhat को स्थापित करने के बाद, आप निम्नलिखित कमांड का उपयोग करके एक नया प्रोजेक्ट बना सकते हैं:

```bash npx hardhat ```

यह आपको प्रोजेक्ट का नाम, रिपॉजिटरी और लाइसेंस के बारे में कुछ प्रश्न पूछेगा। इन प्रश्नों का उत्तर देने के बाद, Hardhat आपके लिए एक नया प्रोजेक्ट डायरेक्टरी बनाएगा, जिसमें आवश्यक फ़ाइलें और फ़ोल्डर शामिल होंगे।

प्रोजेक्ट संरचना

एक Hardhat प्रोजेक्ट डायरेक्टरी में निम्नलिखित मुख्य फ़ोल्डर और फ़ाइलें होती हैं:

  • **contracts/:** आपके स्मार्ट अनुबंधों के लिए स्रोत कोड।
  • **scripts/:** आपके अनुबंधों को तैनात करने और अन्य कार्यों को करने के लिए स्क्रिप्ट।
  • **test/:** आपके स्मार्ट अनुबंधों के लिए परीक्षण कोड।
  • **hardhat.config.js:** Hardhat कॉन्फ़िगरेशन फ़ाइल।
  • **package.json:** आपके प्रोजेक्ट की डिपेंडेंसी और स्क्रिप्ट को परिभाषित करता है।

Hardhat कॉन्फ़िगरेशन

`hardhat.config.js` फ़ाइल Hardhat के व्यवहार को कॉन्फ़िगर करने के लिए उपयोग की जाती है। यह फ़ाइल नेटवर्क, कंपाइलर और अन्य सेटिंग्स के बारे में जानकारी निर्दिष्ट करने के लिए उपयोग की जाती है।

एक बुनियादी `hardhat.config.js` फ़ाइल इस तरह दिख सकती है:

```javascript module.exports = {

 solidity: "0.8.4",
 networks: {
   development: {
     host: "127.0.0.1",
     port: 8545,
     network_id: "*"
   }
 }

}; ```

यह कॉन्फ़िगरेशन Solidity कंपाइलर को संस्करण 0.8.4 का उपयोग करने और एक स्थानीय विकास नेटवर्क का उपयोग करने के लिए सेट करता है।

स्मार्ट अनुबंध लिखना

Hardhat का उपयोग करके स्मार्ट अनुबंध लिखने के लिए, आपको Solidity प्रोग्रामिंग भाषा सीखने की आवश्यकता होगी। Solidity एक उच्च-स्तरीय प्रोग्रामिंग भाषा है जिसका उपयोग Ethereum ब्लॉकचेन पर स्मार्ट अनुबंध लिखने के लिए किया जाता है।

आप `contracts/` फ़ोल्डर में अपनी Solidity फ़ाइलें लिख सकते हैं। उदाहरण के लिए, आप `contracts/MyContract.sol` नामक एक फ़ाइल बना सकते हैं जिसमें निम्नलिखित कोड है:

```solidity pragma solidity ^0.8.0;

contract MyContract {

 uint256 public myVariable;
 function setMyVariable(uint256 _value) public {
   myVariable = _value;
 }
 function getMyVariable() public view returns (uint256) {
   return myVariable;
 }

} ```

यह एक साधारण स्मार्ट अनुबंध है जो एक सार्वजनिक चर `myVariable` को परिभाषित करता है और इसे सेट और प्राप्त करने के लिए दो फ़ंक्शन प्रदान करता है।

स्मार्ट अनुबंधों को संकलित करना

अपने स्मार्ट अनुबंधों को संकलित करने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:

```bash npx hardhat compile ```

यह आपके `contracts/` फ़ोल्डर में सभी Solidity फ़ाइलों को संकलित करेगा और उन्हें `artifacts/` फ़ोल्डर में बाइटकोड और इंटरफ़ेस के रूप में संग्रहीत करेगा।

स्मार्ट अनुबंधों को तैनात करना

अपने स्मार्ट अनुबंधों को तैनात करने के लिए, आपको एक स्क्रिप्ट बनाने की आवश्यकता होगी जो आपके अनुबंधों को तैनात करने के लिए Hardhat API का उपयोग करती है। आप `scripts/` फ़ोल्डर में अपनी स्क्रिप्ट बना सकते हैं। उदाहरण के लिए, आप `scripts/deploy.js` नामक एक फ़ाइल बना सकते हैं जिसमें निम्नलिखित कोड है:

```javascript async function main() {

 const MyContract = await ethers.getContractFactory("MyContract");
 const myContract = await MyContract.deploy();
 await myContract.deployed();
 console.log("MyContract deployed to:", myContract.address);

}

main()

 .then(() => process.exit(0))
 .catch((error) => {
   console.error(error);
   process.exit(1);
 });

```

यह स्क्रिप्ट `MyContract` अनुबंध को तैनात करती है और तैनात अनुबंध का पता कंसोल पर लॉग करती है।

अपने अनुबंधों को तैनात करने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:

```bash npx hardhat run scripts/deploy.js --network development ```

यह स्क्रिप्ट को विकास नेटवर्क पर चलाएगा और आपके अनुबंधों को तैनात करेगा।

स्मार्ट अनुबंधों का परीक्षण करना

अपने स्मार्ट अनुबंधों का परीक्षण करने के लिए, आपको परीक्षण कोड लिखने की आवश्यकता होगी जो आपके अनुबंधों के व्यवहार को सत्यापित करता है। आप `test/` फ़ोल्डर में अपने परीक्षण कोड लिख सकते हैं। Hardhat Mocha और Chai जैसे लोकप्रिय परीक्षण ढांचे का समर्थन करता है।

उदाहरण के लिए, आप `test/MyContract.test.js` नामक एक फ़ाइल बना सकते हैं जिसमें निम्नलिखित कोड है:

```javascript const { expect } = require("chai");

describe("MyContract", function () {

 it("should set and get the myVariable correctly", async function () {
   const MyContract = await ethers.getContractFactory("MyContract");
   const myContract = await MyContract.deploy();
   await myContract.deployed();
   await myContract.setMyVariable(123);
   expect(await myContract.getMyVariable()).to.equal(123);
 });

}); ```

यह परीक्षण `MyContract` अनुबंध में `setMyVariable` और `getMyVariable` फ़ंक्शन के व्यवहार को सत्यापित करता है।

अपने परीक्षणों को चलाने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:

```bash npx hardhat test ```

यह आपके `test/` फ़ोल्डर में सभी परीक्षण फ़ाइलों को चलाएगा और परीक्षण परिणामों को कंसोल पर प्रदर्शित करेगा।

डीबगिंग

Hardhat आपके अनुबंधों में त्रुटियों को डीबग करने के लिए कई उपकरण प्रदान करता है। आप Hardhat कंसोल का उपयोग करके अपने अनुबंधों के निष्पादन को चरण-दर-चरण ट्रैक कर सकते हैं, चर के मानों का निरीक्षण कर सकते हैं और त्रुटियों को ढूंढ सकते हैं।

आप `hardhat.config.js` फ़ाइल में `solidity` सेटिंग में `settings` ऑब्जेक्ट जोड़कर डीबगिंग को सक्षम कर सकते हैं। उदाहरण के लिए:

```javascript module.exports = {

 solidity: {
   version: "0.8.4",
   settings: {
     optimizer: {
       enabled: true,
       runs: 200
     }
   }
 }

}; ```

यह डीबगिंग जानकारी को सक्षम करेगा, जिससे आप अपने अनुबंधों के निष्पादन को अधिक आसानी से ट्रैक कर सकते हैं।

उन्नत विषय

Hardhat कई उन्नत सुविधाएँ प्रदान करता है जो आपको अधिक जटिल स्मार्ट अनुबंधों को विकसित करने और तैनात करने में मदद कर सकती हैं। इन सुविधाओं में शामिल हैं:

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

निष्कर्ष

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

संबंधित विषय

अभी ट्रेडिंग शुरू करें

IQ Option पर रजिस्टर करें (न्यूनतम जमा $10) Pocket Option में खाता खोलें (न्यूनतम जमा $5)

हमारे समुदाय में शामिल हों

हमारे Telegram चैनल @strategybin से जुड़ें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार की प्रवृत्ति पर अलर्ट ✓ शुरुआती के लिए शिक्षण सामग्री

Баннер