पढ़ने में 5 मिनट लगेंगे
अवलोकन
यदि आप लोकलनेट पर निर्माण कर रहे हैं, तो आपने शायद देखा होगा कि आपके कुछ पसंदीदा प्रोग्राम अनुपलब्ध हैं (उदाहरण के लिए, हो सकता है कि आप लोकलनेट पर एनएफटी मिंट करने में असमर्थ रहे हों)। ऐसा इसलिए है क्योंकि लोकलनेट एक निजी नेटवर्क है जिसकी पहुँच अन्य नेटवर्कों के समान प्रोग्रामों तक नहीं है। Mainnet इसकी शक्तिशाली विशेषताओं में से एक यह है कि... Solana CLI प्रोग्राम और खातों को निर्यात करने की क्षमता है। Mainnet यह कंपोजेबल प्रोग्राम बनाने और लोकलहोस्ट पर परीक्षण करने के लिए अत्यंत उपयोगी है।
यह गाइड आपको सिखाएगी कि इसका उपयोग कैसे करें Solana CLI का उपयोग करके खातों और प्रोग्रामों को क्लोन करें Mainnet और उन्हें लोकलनेट पर तैनात करें।
आप क्या करेंगे
इस गाइड में, आप निम्नलिखित बातें जानेंगे:
- मेटाप्लेक्स मेटाडेटा प्रोग्राम को क्लोन करें
- NFT को क्लोन करें जो मिंट किया गया है Mainnet
- क्लोन किए गए NFT और Metaplex मेटाडेटा प्रोग्राम के साथ एक स्थानीय वैलिडेटर शुरू करें
आपको क्या चाहिए होगा
आगे बढ़ने से पहले कृपया सुनिश्चित करें कि आपने आवश्यक डिपेंडेंसी इंस्टॉल कर ली हैं:
- Solana CLI का नवीनतम संस्करण स्थापित किया गया
- एक आधुनिक वेब ब्राउज़र (जैसे, क्रोम, फ़ायरफ़ॉक्स, ब्रेव)
| निर्भरता | संस्करण |
|---|---|
| solana -क्ली | 1.15.2 |
अपना प्रोजेक्ट सेट अप करें
इस प्रोजेक्ट के लिए आपको क्लोन किए गए अकाउंट और प्रोग्राम को स्टोर करने के लिए एक लोकल डायरेक्टरी की आवश्यकता होगी। एक नई डायरेक्टरी बनाएं और अपने टर्मिनल में उस पर जाएं।
mkdir solana-clones
cd solana-clones
आएँ शुरू करें!
मेटाप्लेक्स टोकन मेटाडेटा प्रोग्राम का क्लोन बनाएं
एनएफटी के साथ इंटरैक्ट करने के लिए Solana इसके लिए आपको Metaplex Token Metadata प्रोग्राम की आवश्यकता होगी। यह प्रोग्राम सिस्टम का मूल प्रोग्राम नहीं है। Solana इसलिए, यदि हम इसे अपने लोकलनेट पर उपयोग करना चाहते हैं, तो हमें इसे क्लोन करना होगा। Mainnet हम इसका उपयोग कर सकते हैं। गंदी जगह कमांड में Solana इसके लिए CLI का उपयोग करें। गंदी जगह यह कमांड प्रोग्राम खाते के निष्पादन योग्य बाइट कोड को एक फ़ाइल में निर्यात करेगा, जिसे हम बाद में अपने लोकलनेट पर तैनात कर सकते हैं। ऐसा करने के लिए, हमें प्रोग्राम आईडी की आवश्यकता होगी। मेटाप्लेक्स टोकन मेटाडेटा के लिए, प्रोग्राम आईडी है MetaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s.
अपने टर्मिनल में, प्रोग्राम को एक फ़ाइल में सेव करने के लिए निम्न कमांड दर्ज करें:
solana program dump -u m metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s metadata.so
- The
यूयह फ़्लैग उस क्लस्टर को निर्दिष्ट करता है जिससे प्रोग्राम को डंप किया जाना है। इस मामले में, हम इससे डंप कर रहे हैं। Mainnet बीटा। - पहला आर्गुमेंट प्रोग्राम आईडी है।
- दूसरा आर्गुमेंट उस फ़ाइल का नाम है जिसमें प्रोग्राम को डंप करना है।
बस इतना ही। प्रोग्राम बाइट कोड डाउनलोड करना इतना ही आसान है। Mainnet अब, चलिए परीक्षण के लिए एक एनएफटी प्राप्त करते हैं।
NFT को क्लोन करें जिसे मिंट किया गया है Mainnet
के समान गंदी जगह कमांड का उपयोग करके, हम खाता किसी खाते को क्लोन करने का कमांड Mainnet द खाता यह कमांड नेटवर्क से किसी खाते की सामग्री प्राप्त करती है। इस कमांड में एक --आउटपुट फ़ाइल यह फ़्लैग हमें खाते को फ़ाइल में लिखने की अनुमति देता है। चलिए इसे अपने एनएफटी पर आज़माते हैं जिसे मिंट किया गया है। Mainnet (मैं अपने एक एनएफटी का उपयोग करूंगा:) 7FTdQdMqkk5Xc2oFsYR88BuJt2yyCPReTpqr3viH6b6C).
solana account -u m 7FTdQdMqkk5Xc2oFsYR88BuJt2yyCPReTpqr3viH6b6C --output-file nft.json --output json-compact
पिछले चरण की तरह ही, हम अपने फ़ेचिंग क्लस्टर को परिभाषित करते हैं। -उम ( Mainnet बीटा), और हम खाता आईडी को पहले तर्क के रूप में निर्दिष्ट करते हैं। इसके अतिरिक्त, हम इसका उपयोग करते हैं --आउटपुट फ़ाइल और --आउटपुट खाते को एक फ़ाइल में लिखने के लिए फ़्लैग, जिसका उपयोग किया जा सकता है Solana जब हम अपना वैलिडेटर शुरू करते हैं तो CLI का उपयोग करते हैं।
हमें अपने NFT को लोकलनेट पर अपलोड करने के लिए एक और खाते की आवश्यकता होगी: मेटाडेटा खाता। हालाँकि, NFT का मेटाडेटा प्राप्त करने के लिए भी हमें मेटाडेटा खाते की आवश्यकता होगी। मेरा मेटाडेटा PDA यह है: 4tSgNWeqtgp2kwRgjTqgpenP4wxfPaVCvganMR2gnd8Wइसलिए मैं उसी का उपयोग करूंगा।
यदि आपको अपने पीडीए के मेटाडेटा के बारे में जानकारी नहीं है और आप इसे प्राप्त करने का तरीका सीखना चाहते हैं, तो यहां क्लिक करें।
मेटाप्लेक्स मेटाडेटा खाता एक प्रोग्राम-व्युत्पन्न खाता (पीडीए) है, जो "मेटाडेटा" शब्द, प्रोग्राम आईडी और टोकन मिंट पते द्वारा स्थापित किया जाता है। आप इसे जावास्क्रिप्ट में PublicKey.findProgramAddressSync विधि का उपयोग करके प्राप्त कर सकते हैं।
import { PublicKey } from "@solana/web3.js";
let NFT_MINT = new PublicKey("7FTdQdMqkk5Xc2oFsYR88BuJt2yyCPReTpqr3viH6b6C"); // 👈 Replace with your NFT Mint Address
let METADATA_PROGRAM = new PublicKey('metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s');
const getMetadataAddress = async (mint) => {
return PublicKey.findProgramAddressSync(
[Buffer.from("metadata"), METADATA_PROGRAM.toBuffer(),mint.toBuffer() ],
METADATA_PROGRAM
)
}
getMetadataAddress(NFT_MINT).then(([metadata, bump]) => {
console.log(metadata.toBase58());
}).catch(console.error);
इस बारे में और जानने के लिए Solana एनएफटी मेटाडेटा के बारे में अधिक जानने के लिए, हमारे Solana एनएफटी मेटाडेटा डीप डाइव को देखें।
solana account -u m 4tSgNWeqtgp2kwRgjTqgpenP4wxfPaVCvganMR2gnd8W --output-file metadata.json --output json-compact
ये दो खाते हमारे एनएफटी को ऑन-चेन देखने के लिए पर्याप्त होंगे, जो इस डेमो के लिए काफी है, लेकिन यदि आप लोकलनेट पर एनएफटी के साथ अतिरिक्त इंटरैक्टिविटी चाहते हैं, तो आपको अतिरिक्त खातों को क्लोन करने की आवश्यकता हो सकती है (उदाहरण के लिए, मालिक खाता, मालिक का संबद्ध टोकन खाता, आदि)। यह किसी भी प्रोग्राम के लिए लागू होता है जिसे आप क्लोन करना चाहते हैं। Mainnet आपको यह समझने की आवश्यकता होगी कि प्रोग्राम कैसे काम करता है, किन खातों की आवश्यकता होती है, और लोकलनेट पर कार्यक्षमता को दोहराने के लिए उनका उपयोग कैसे किया जाता है।
स्थानीय स्तर पर पहल करें Solana क्लोन किए गए खातों और प्रोग्रामों के साथ वैलिडेटर
चलिए अपना लोकल वैलिडेटर शुरू करते हैं। अपने क्लोन किए गए खातों और प्रोग्राम के साथ ऐसा करने के लिए, हमें इसका उपयोग करना होगा। --बीपीएफ-प्रोग्राम और --खाता झंडे। --बीपीएफ-प्रोग्राम यह फ़्लैग लोकलनेट पर तैनात किए जाने वाले प्रोग्राम को निर्दिष्ट करता है, और --खाता यह फ़्लैग उन खातों को निर्दिष्ट करता है जिन्हें लोकलनेट पर तैनात किया जाना है।
solana-test-validator -r --bpf-program metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s metadata.so --account 7FTdQdMqkk5Xc2oFsYR88BuJt2yyCPReTpqr3viH6b6C nft.json --account 4tSgNWeqtgp2kwRgjTqgpenP4wxfPaVCvganMR2gnd8W metadata.json
हमें इसका इस्तेमाल करना पड़ा -आर स्थानीय वैलिडेटर को रीसेट करने के लिए टैग। -बीपीएफ-प्रोग्राम और --खाता यदि वैलिडेटर को रीसेट नहीं किया जाता है तो फ्लैग को अनदेखा कर दिया जाता है।
आपको अपने टर्मिनल में वैलिडेटर का आरंभीकरण दिखाई देना चाहिए:
Ledger location: test-ledger
Log: test-ledger/validator.log
⠄ Initializing... Waiting for fees to stabilize 1...
Identity: ...
Genesis Hash: ...
बहुत बढ़िया! अब चलिए नेटवर्क पर अपना एनएफटी ढूंढते हैं।
लोकलनेट पर अपना एनएफटी खोजें
वहां जाओ Solana एक्सप्लोरर का उपयोग करें और सुनिश्चित करें कि आप सही क्लस्टर पर हैं (लोकलनेट). सर्च बार में अपना मिंट एड्रेस डालें (मेरे लिए, यह है 7FTdQdMqkk5Xc2oFsYR88BuJt2yyCPReTpqr3viH6b6Cआपको अपना एनएफटी लोकलनेट पर दिखना चाहिए!

एंकर परीक्षण विन्यास
यदि आप Anchor का उपयोग करके कोई प्रोजेक्ट बना रहे हैं, तो आप उसे चलाते समय क्लोन किए गए खातों और प्रोग्रामों का उपयोग कर सकते हैं। एंकर परीक्षणबस अपनी ओर इशारा करें। एंकर.टॉमल क्लोन किए गए प्रोग्राम और खातों में निम्नलिखित को जोड़कर अपने प्रोग्राम और खातों को जोड़ें एंकर.टॉमल फ़ाइल (क्लोन किए गए खातों और प्रोग्रामों से मेल खाने के लिए फ़ाइल पथ और नामों को अपडेट करना सुनिश्चित करें):
[[test.genesis]]
address = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
program = "genesis/accounts/metadata.so"
[[test.validator.account]]
address = "7FTdQdMqkk5Xc2oFsYR88BuJt2yyCPReTpqr3viH6b6C"
filename = "genesis/accounts/nft.json"
एंकर टेस्ट के लिए अपने स्थानीय टेस्ट वैलिडेटर को कॉन्फ़िगर करने के तरीके के बारे में अधिक जानकारी के लिए, निम्नलिखित संसाधनों को देखें:
लपेटें
बस इतना ही! आपने सफलतापूर्वक एक प्रोग्राम और अकाउंट को क्लोन कर लिया है। Mainnet और इसे लोकलनेट पर तैनात किया। यह कंपोज़ेबल प्रोग्राम बनाने (या मौजूदा प्रोग्रामों के ऊपर निर्माण करने) में अत्यंत उपयोगी हो सकता है। Solana .
हम आपके प्रोजेक्ट के बारे में और अधिक जानना चाहेंगे। Discord पर हमसे संपर्क करें या Twitter पर हमें फ़ॉलो करें ताकि आपको नवीनतम जानकारी मिलती रहे!
