हाइपरलेजर फैब्रिक v3.0 में कॉन्फ़िगरेशन समस्याओं से जूझ रहे हैं?
जैसे जटिल ब्लॉकचेन फ्रेमवर्क पर काम करते समय हाइपरलेजर फैब्रिक (एचएलएफ), अप्रत्याशित त्रुटियाँ सेटअप प्रक्रियाओं को समय लेने वाली पहेलियों में बदल सकती हैं। हाल ही में, एचएलएफ 2.5 से नए वी3.0 में अपग्रेड करते समय, मुझे एक समस्या का सामना करना पड़ा जिसने नेटवर्क परिनियोजन को पूरी तरह से रोक दिया - एक त्रुटि जिसमें बताया गया कि पीयर बायनेरिज़ और कॉन्फ़िगरेशन फ़ाइलें नहीं मिलीं। 🛑
यह त्रुटि पिछले संस्करणों की तरह ही पर्यावरण चर स्थापित करने और यह सुनिश्चित करने के बाद भी सामने आई कि सभी पथ सही ढंग से कॉन्फ़िगर किए गए थे। पहले के संस्करणों पर एचएलएफ को बिना किसी रुकावट के कॉन्फ़िगर करने के बाद, v3.0 के साथ यह समस्या असामान्य लग रही थी, खासकर जब से पुराने सेटअप पर समान चरणों ने त्रुटिपूर्ण रूप से काम किया था।
चुनौती ने तब और गहरा मोड़ ले लिया जब आवश्यक पुस्तकालयों को अद्यतन करने के शुरुआती प्रयासों से समस्या का समाधान नहीं हुआ। हालाँकि मैंने सभी सामान्य समस्या निवारण विधियों का पालन किया, फिर भी समस्या बनी रही। इससे प्रगति रुक गई और संकेत मिला कि नए संस्करण को पिछले संस्करणों से कुछ अलग करने की आवश्यकता है।
इस लेख में, मैं आपको बताऊंगा कि मैंने अपने सिस्टम संस्करण को अपडेट करके समस्या को कैसे हल किया - एक विवरण, जो आश्चर्यजनक रूप से, विशिष्ट एचएलएफ सेटअप संसाधनों में शामिल नहीं था। आइए इसमें गहराई से उतरें और समाधान तलाशें, ताकि यदि आपके सामने भी ऐसी ही कोई बाधा आए तो आपका समय बर्बाद न हो। 🚀
आज्ञा | उपयोग का विवरण और उदाहरण |
---|---|
export PATH | हाइपरलेजर फैब्रिक बिन निर्देशिका को सिस्टम में जोड़ने के लिए उपयोग किया जाता है पथ. यह फैब्रिक बायनेरिज़ को विश्व स्तर पर सुलभ बनाता है। उदाहरण: निर्यात PATH=$PWD/कपड़ा-नमूने/बिन:$PATH |
export FABRIC_CFG_PATH | हाइपरलेजर फैब्रिक के लिए कॉन्फ़िगरेशन फ़ाइलों का पथ निर्दिष्ट करता है। यह वेरिएबल फैब्रिक घटकों को आवश्यक कॉन्फ़िगरेशन डेटा का पता लगाने की अनुमति देता है। उदाहरण: निर्यात FABRIC_CFG_PATH=$PWD/fabric-samples/configtx |
if [ -d "path" ] | जाँचता है कि निर्दिष्ट पथ पर कोई निर्देशिका मौजूद है या नहीं। कॉन्फिगटेक्स या बिन जैसे आवश्यक फ़ोल्डरों को सत्यापित करने के लिए उपयोगी है नेटवर्क सेटअप का प्रयास करने से पहले मौजूद हैं। उदाहरण: यदि [ -d "$PWD/कपड़े-नमूने/बिन" ] |
command -v | सत्यापित करता है कि सिस्टम में पीयर जैसा कोई विशिष्ट कमांड उपलब्ध है या नहीं पथ. सत्यापित करने के लिए आवश्यक बायनेरिज़ पहुंच योग्य हैं। उदाहरण: अगर ! [ -x "$(कमांड -v पियर)" ] |
docker-compose version | डॉकर कंपोज़ के सिंटैक्स संस्करण को परिभाषित करता है, जो फैब्रिक के पीयर कंटेनर सेटअप में उपयोग की जाने वाली सुविधाओं के साथ संगतता को सक्षम करने के लिए महत्वपूर्ण है। उदाहरण: संस्करण: '3.7' |
volumes | मैप कॉन्फ़िगरेशन फ़ाइलों को साझा करने के लिए कंटेनरों में निर्देशिकाओं को होस्ट करता है, जिससे फैब्रिक सेटअप में आवश्यक कॉन्फ़िगरेशन तक पहुंचने के लिए पृथक वातावरण सक्षम हो जाता है। उदाहरण: - ./configtx:/etc/hyperledger/fabric/configtx |
exit 1 | 1 की स्थिति के साथ स्क्रिप्ट से बाहर निकलता है विफलता का संकेत देने के लिए. जब पथ जैसी महत्वपूर्ण आवश्यकताएँ गायब हों तो स्क्रिप्ट को रोकने के लिए उपयोगी। उदाहरण: अगर [ ! -d "$PWD/fabric-samples/configtx" ]; फिर बाहर निकलें 1 |
echo | नेटवर्क सेटअप के दौरान सफल चरणों या त्रुटियों की पुष्टि करते हुए, वास्तविक समय पर प्रतिक्रिया प्रदान करने के लिए संदेश आउटपुट करता है। उदाहरण: इको "टेस्ट उत्तीर्ण: 'पीयर' बाइनरी उपलब्ध है" |
container_name | फ़ैब्रिक पीयर कंटेनर सेटअप के दौरान आसान संदर्भ और समस्या निवारण में सहायता करते हुए, डॉकर कंटेनर को स्पष्ट रूप से नाम देता है। उदाहरण: कंटेनर_नाम: फैब्रिक-पीयर |
cd path || exit | एक निर्दिष्ट निर्देशिका पर नेविगेट करता है। || बाहर निकलना यह सुनिश्चित करता है कि यदि निर्देशिका मौजूद नहीं है तो स्क्रिप्ट रुक जाए, जिससे आगे की त्रुटियों को रोका जा सके। उदाहरण: सीडी फैब्रिक-नमूने/परीक्षण-नेटवर्क || बाहर निकलना |
हाइपरलेजर फैब्रिक v3.0 पर्यावरण सेटअप स्क्रिप्ट को समझना
प्रदान की गई स्क्रिप्ट हाइपरलेजर फैब्रिक (एचएलएफ) नेटवर्क स्थापित करते समय आने वाली संगतता समस्याओं को हल करने के लिए डिज़ाइन की गई है, विशेष रूप से v3.0 के लिए। हाइपरलेजर फैब्रिक के लगातार अपडेट कभी-कभी नई निर्भरताएं या थोड़े अलग सेटअप पेश करते हैं जो समस्याएं पैदा कर सकते हैं, जैसा कि संस्करण 2.5 से 3.0 में संक्रमण के दौरान अनुभव किया गया था। यहां मुख्य चुनौतियों में से एक यह सुनिश्चित करना है कि पर्यावरण चर और आवश्यक फ़ाइलें, जैसे सहकर्मी बायनेरिज़, सही ढंग से कॉन्फ़िगर और पहुंच योग्य हैं। पहली स्क्रिप्ट निर्बाध नेटवर्क कार्यक्षमता के लिए इन पथों को सेट करती है और पुष्टि करती है कि नेटवर्क लाने का प्रयास करने से पहले आवश्यक फ़ाइलें और निर्देशिकाएं मौजूद हैं। यह यह देखने के लिए प्रारंभिक जांच भी करता है कि क्या एक महत्वपूर्ण निर्भरता, GLIBC, v3.0 में बायनेरिज़ के साथ संगत है।
पहली स्क्रिप्ट प्रमुख पर्यावरण चर को निर्यात करने से शुरू होती है, जो उन स्थानों को इंगित करती है जहां हाइपरलेजर फैब्रिक बायनेरिज़ और कॉन्फ़िगरेशन संग्रहीत हैं। उदाहरण के लिए, सेटिंग फ़ैब्रिक_CFG_PATH वेरिएबल आवश्यक है क्योंकि यह सिस्टम को बताता है कि नेटवर्क आरंभीकरण के दौरान फैब्रिक की कॉन्फ़िगरेशन फ़ाइलों को कहां देखना है। स्क्रिप्ट तब जाँच करती है कि क्या आवश्यक फ़ोल्डर, जैसे बिन और configtx, यह सुनिश्चित करने के लिए मौजूद हैं कि वे नेटवर्क कमांड चलाने के लिए जगह पर हैं। यदि कोई फ़ोल्डर गुम है, तो स्क्रिप्ट रुक जाती है और एक त्रुटि संदेश उत्पन्न करती है, जिससे यह सुनिश्चित होता है कि अन्य संभावित समस्याओं के निवारण में अनावश्यक समय बर्बाद करने से पहले आपको सतर्क कर दिया जाए। स्क्रिप्ट को जल्दी रोकने से, यह व्यापक त्रुटियों से बचता है जो बाद में डिबगिंग को कठिन बना सकता है।
दूसरी लिपि है a डॉकर कम्पोज़ फ़ाइल, जो संपूर्ण हाइपरलेजर फैब्रिक सेटअप को कंटेनरीकृत करने की अनुमति देती है। यह दृष्टिकोण उन लोगों के लिए फायदेमंद है जो सिस्टम निर्भरता संघर्षों का सामना कर सकते हैं, जैसे कि जीएलआईबीसी संस्करण समस्याएं, क्योंकि यह फैब्रिक v3.0 को चलाने के लिए आवश्यक वातावरण को अलग करती है। डॉकर में फैब्रिक चलाने से, कोई भी होस्ट मशीन पर संगतता समस्याओं से बच सकता है। उदाहरण के लिए, यदि आप Ubuntu 18.04 पर चल रहे हैं, जिसमें आवश्यक GLIBC संस्करण की कमी हो सकती है, तो डॉकर कंपोज़ एक नियंत्रित वातावरण प्रदान करता है जहां निर्भरताएं होस्ट के कॉन्फ़िगरेशन से स्वतंत्र होती हैं। यह लचीलापन ब्लॉकचेन नेटवर्क जैसे जटिल सॉफ़्टवेयर वातावरण को चलाने के लिए डॉकर को एक लोकप्रिय विकल्प बनाता है।
अंत में, तीसरी स्क्रिप्ट बैश में लिखी गई एक सरल इकाई परीक्षण स्क्रिप्ट है। यह स्क्रिप्ट जांचती है कि नेटवर्क लॉन्च करने से पहले बायनेरिज़ और आवश्यक चर की उपलब्धता को मान्य करके पर्यावरण सही ढंग से सेट किया गया है। उदाहरण के लिए, यह जांच करता है कि क्या समकक्ष बाइनरी सिस्टम के PATH में पहुंच योग्य है, जो रनटाइम त्रुटियों को रोक सकता है। यह स्क्रिप्ट मूल्यवान है क्योंकि यह डेवलपर्स को तुरंत यह सत्यापित करने की अनुमति देती है कि उनके पास आवश्यक सेटअप है, जिससे समय की बचत होती है और नेटवर्क लॉन्च करते समय निराशा कम होती है। जटिल वातावरण में इस तरह की उड़ान-पूर्व जांच आम बात है ताकि यह सुनिश्चित किया जा सके कि सभी घटक पहुंच योग्य हैं और अपेक्षा के अनुरूप कॉन्फ़िगर किए गए हैं। ⚙️
बेहतर संगतता के लिए हाइपरलेजर फैब्रिक पर्यावरण चर को अद्यतन करना
पर्यावरण चर को अद्यतन करने और उबंटू 22.04 में नेटवर्क चलाने के लिए शेल स्क्रिप्ट समाधान
# This script sets up environment variables for Hyperledger Fabric v3.0 compatibility
# Tested on Ubuntu 22.04. The script configures paths and starts the network
# It also includes error handling for missing binaries
#!/bin/bash
# Set the bin and configtx folders for Hyperledger Fabric
export PATH=$PWD/fabric-samples/bin:$PATH
export FABRIC_CFG_PATH=$PWD/fabric-samples/configtx
# Validate if environment variables are correctly set
if [ -d "$PWD/fabric-samples/bin" ] && [ -d "$PWD/fabric-samples/configtx" ]; then
echo "Environment variables successfully set."
else
echo "Error: Required directories for fabric binaries or configtx not found."
exit 1
fi
# Try bringing up the network with network.sh script
cd fabric-samples/test-network || exit
./network.sh up
# Check for GLIBC compatibility if network fails
if ! ./peer version; then
echo "GLIBC version incompatible. Updating GLIBC or Ubuntu recommended."
fi
अलगाव और पोर्टेबिलिटी के लिए डॉकर कंपोज़ का उपयोग करके वैकल्पिक समाधान
सिस्टम निर्भरता संघर्ष से बचने के लिए पर्यावरण अलगाव के लिए डॉकर का उपयोग करना
# Docker Compose file for Hyperledger Fabric v3.0 setup
# Use this file to avoid system dependency issues like GLIBC errors
version: '3.7'
services:
peer:
image: hyperledger/fabric-peer:3.0
container_name: fabric-peer
environment:
- CORE_PEER_ID=peer0.org1.example.com
- FABRIC_CFG_PATH=/etc/hyperledger/fabric
volumes:
- ./configtx:/etc/hyperledger/fabric/configtx
- ./bin:/opt/hyperledger/fabric/bin
command: /bin/bash -c "./network.sh up"
ports:
- "7051:7051"
अनेक परिवेशों में कॉन्फ़िगरेशन को सत्यापित करने के लिए यूनिट टेस्ट स्क्रिप्ट
हाइपरलेजर फैब्रिक v3.0 में पर्यावरण परिवर्तनीय कॉन्फ़िगरेशन के लिए बैश यूनिट टेस्ट
#!/bin/bash
# This unit test checks if required binaries and environment variables are set correctly
# Run this test before executing ./network.sh up in the Fabric setup
echo "Starting environment validation tests..."
# Check for peer binary
if ! [ -x "$(command -v peer)" ]; then
echo "Test Failed: 'peer' binary is not available in PATH."
exit 1
else
echo "Test Passed: 'peer' binary is available in PATH."
fi
# Check for FABRIC_CFG_PATH
if [ -z "$FABRIC_CFG_PATH" ]; then
echo "Test Failed: FABRIC_CFG_PATH is not set."
exit 1
else
echo "Test Passed: FABRIC_CFG_PATH is set to $FABRIC_CFG_PATH."
fi
हाइपरलेजर फैब्रिक v3.0 में निर्भरता संगतता की खोज
हाइपरलेजर फैब्रिक v3.0 में अपग्रेड करने से नई निर्भरता आवश्यकताएं आती हैं जो कुछ सिस्टम, विशेष रूप से लिनक्स के पुराने संस्करणों के साथ तुरंत संगत नहीं हो सकती हैं। एक महत्वपूर्ण पहलू जिसे डेवलपर्स अक्सर नजरअंदाज कर देते हैं, वह है जीएलआईबीसी जैसे पुस्तकालयों के संगत संस्करणों की आवश्यकता, जो बेमेल होने पर सिस्टम त्रुटियों का कारण बन सकता है। इस मामले में, v3.0 GLIBC 2.34 के लिए एक आवश्यकता प्रस्तुत करता है, जो Ubuntu 18.04 पर आसानी से उपलब्ध नहीं है। Ubuntu 22.04 को अपडेट करना, जिसमें मूल रूप से GLIBC 2.34 शामिल है, ऑपरेटिंग सिस्टम की निर्भरता को सॉफ़्टवेयर की आवश्यकताओं के साथ संरेखित करके इस समस्या को हल करता है। यह यह सुनिश्चित करने के महत्व को दर्शाता है कि सिस्टम लाइब्रेरीज़ त्रुटियों से बचने के लिए अद्यतन सॉफ़्टवेयर की अपेक्षाओं को पूरा करती हैं ब्लॉकचेन नेटवर्क स्थापित करना।
डॉकर कंटेनर के भीतर हाइपरलेजर फैब्रिक को चलाना निर्भरता के टकराव से बचने का एक और प्रभावी तरीका है, क्योंकि डॉकर वातावरण आपको एक नियंत्रित, पृथक स्थान में सभी आवश्यक निर्भरता को समाहित करने की अनुमति देता है। सही GLIBC संस्करण सहित डॉकर कंटेनर विनिर्देशों को परिभाषित करके, आप होस्ट मशीन की सीमाओं को दरकिनार कर देते हैं। यह विधि विशेष रूप से उपयोगी है यदि आप होस्ट सिस्टम को अपडेट नहीं कर सकते हैं या एकाधिक मशीनों में मानकीकृत वातावरण बनाए रखना चाहते हैं। डॉकर यह सुनिश्चित करता है कि सहकर्मी बाइनरी होस्ट सिस्टम के कॉन्फ़िगरेशन को प्रभावित किए बिना या उस पर निर्भर हुए बिना अपेक्षा के अनुरूप कार्य करता है।
भविष्य के अपडेट में इसी तरह की समस्याओं को रोकने के लिए, नियमित सिस्टम ऑडिट करना उपयोगी है जो सुनिश्चित करता है कि महत्वपूर्ण लाइब्रेरी और सॉफ़्टवेयर निर्भरताएँ अद्यतित रहें। इसके अतिरिक्त, अन्य उपयोगकर्ताओं के समाधानों के लिए अद्यतन दस्तावेज़ीकरण और सामुदायिक मंचों से परामर्श करना किसी भी संगतता त्रुटि पर काबू पाने के लिए महत्वपूर्ण है जो अच्छी तरह से प्रलेखित नहीं हो सकती है। डॉकर और बार-बार ओएस अपडेट जैसे उपकरण संगतता बनाए रखने और विभिन्न सॉफ्टवेयर संस्करणों में हाइपरलेजर फैब्रिक सेटअप को सुव्यवस्थित करने के लिए महत्वपूर्ण अभ्यास हैं, जो अपडेट के बीच एक आसान संक्रमण सुनिश्चित करते हैं।
हाइपरलेजर फैब्रिक नेटवर्क त्रुटियों पर सामान्य प्रश्न
- हाइपरलेजर फैब्रिक में "पीयर बाइनरी और कॉन्फ़िगरेशन फ़ाइलें नहीं मिलीं" त्रुटि का कारण क्या है?
- यह त्रुटि आम तौर पर तब उत्पन्न होती है जब peer बाइनरी फ़ाइलें या आवश्यक कॉन्फ़िगरेशन फ़ाइलें पहुंच योग्य नहीं हैं। यह पर्यावरण चर जैसे के कारण हो सकता है $FABRIC_CFG_PATH सही ढंग से सेट नहीं किया जा रहा है या निर्भरताएँ गायब हैं GLIBC पुराने सिस्टम पर.
- मैं यह कैसे सत्यापित कर सकता हूं कि मेरी peer बाइनरी फ़ाइल मेरे सेटअप में पहुंच योग्य है?
- यह जांचने के लिए कि क्या पीयर बाइनरी पहुंच योग्य है, आप इसका उपयोग कर सकते हैं command -v peer. यदि आपके वातावरण में पीयर बाइनरी पथ सही ढंग से सेट है, तो यह कमांड इसकी उपस्थिति की पुष्टि करेगा; अन्यथा, आपको अपनी समीक्षा करने की आवश्यकता हो सकती है $PATH चर।
- डॉकर कंपोज़ निर्भरता त्रुटियों को हल करने में मदद क्यों करता है?
- डॉकर कंपोज़ आपको होस्ट सिस्टम से निर्भरता को अलग करने की अनुमति देता है, जिससे एक स्थिर वातावरण बनता है जहां सभी आवश्यक लाइब्रेरीज़ पसंद आती हैं GLIBC, कंटेनर में उपलब्ध कराए गए हैं।
- क्या Ubuntu 22.04 को अपडेट करना GLIBC समस्याओं को हल करने का एकमात्र तरीका है?
- नहीं, निर्भरता को अलग करने या मैन्युअल रूप से अपडेट करने के लिए डॉकर का उपयोग कर रहा हूं GLIBC Ubuntu 18.04 पर भी काम कर सकता है। हालाँकि, Ubuntu 22.04 में अपडेट करना अक्सर सबसे सीधा समाधान होता है।
- मैं हाइपरलेजर फैब्रिक के लिए पर्यावरण चर को सही तरीके से कैसे सेट करूं?
- का उपयोग करके पर्यावरण चर सेट करें export PATH=$PWD/fabric-samples/bin:$PATH और export FABRIC_CFG_PATH=$PWD/fabric-samples/configtx आवश्यक निर्देशिकाओं को इंगित करने के लिए।
- क्या मैं एक ही सिस्टम पर हाइपरलेजर फैब्रिक के कई संस्करण चला सकता हूँ?
- हां, लेकिन पर्यावरण चर या बाइनरी पथों में टकराव से बचने के लिए अलग-अलग संस्करणों में डॉकर कंटेनरों का उपयोग करने की अनुशंसा की जाती है।
- क्या होगा यदि मेरा GLIBC संस्करण सहकर्मी बाइनरी के साथ असंगत है?
- पीयर बाइनरी निष्पादित नहीं होगी, और आपको यह निर्दिष्ट करते हुए एक त्रुटि संदेश प्राप्त होगा कि आवश्यक है GLIBC संस्करण गायब है.
- मैं अपनी पुष्टि कैसे करूँ? GLIBC लिनक्स पर संस्करण?
- आदेश का प्रयोग करें ldd --version आपके सिस्टम पर स्थापित वर्तमान GLIBC संस्करण की जाँच करने के लिए टर्मिनल में।
- मुझे कॉन्फ़िगर करने की आवश्यकता क्यों है $FABRIC_CFG_PATH विशेष रूप से फ़ैब्रिक v3.0 के लिए?
- यह वेरिएबल फैब्रिक को बताता है कि नेटवर्क सेटअप के दौरान महत्वपूर्ण कॉन्फ़िगरेशन फ़ाइलें कहां ढूंढें, v3.0 और नए संस्करणों के लिए एक आवश्यक सेटअप चरण।
- मुझे कैसे पता चलेगा कि मुझे हाइपरलेजर फैब्रिक को अपडेट करने की आवश्यकता है?
- हाइपरलेजर फैब्रिक दस्तावेज़ीकरण इंगित करेगा कि नए अपडेट या निर्भरता की आवश्यकता कब होगी। अद्यतन दस्तावेज़ीकरण और सामुदायिक सलाह के लिए नियमित रूप से जाँच करें।
सरल समाधानों के साथ सेटअप त्रुटियों को हल करना
सेटअप करते समय सिस्टम अनुकूलता सुनिश्चित करना महत्वपूर्ण है हाइपरलेजर फैब्रिक v3.0, विशेष रूप से जटिल पुस्तकालय निर्भरताओं से निपटते समय। जैसा कि दिखाया गया है, अपने ओएस को अपग्रेड करना, या डॉकर का उपयोग करना आपके फैब्रिक नेटवर्क को बाइनरी समस्याओं के बिना चलाने और चलाने के लिए दो विश्वसनीय पथ प्रदान करता है। 🛠️
इन समस्या निवारण युक्तियों के साथ, समान सेटअप समस्याओं का सामना करने वाला कोई भी व्यक्ति जल्दी से अनुकूलन कर सकता है और अपना काम जारी रख सकता है ब्लॉकचेन परियोजनाएं. ऐसा दृष्टिकोण चुनना जो आपके सिस्टम की क्षमताओं के अनुरूप हो, आपको सेटअप देरी से बचने और भविष्य के हाइपरलेजर फैब्रिक कॉन्फ़िगरेशन में अधिक दक्षता के साथ काम करने की अनुमति देता है। 🌐
हाइपरलेजर फैब्रिक नेटवर्क सेटअप समस्याओं के लिए स्रोत और संदर्भ
- सामान्य सेटअप समस्याओं के लिए समस्या निवारण सलाह के साथ हाइपरलेजर फैब्रिक v3.0 के लिए विस्तृत इंस्टॉलेशन चरण और कॉन्फ़िगरेशन विकल्प। पूर्ण दस्तावेज़ तक पहुंचें हाइपरलेजर फैब्रिक दस्तावेज़ीकरण .
- लिनक्स निर्भरता मुद्दों पर सामुदायिक समाधान और अंतर्दृष्टि, विशेष रूप से नए सॉफ़्टवेयर पैकेजों के लिए GLIBC संस्करण आवश्यकताएँ। लिनक्स समर्थन समुदाय की जाँच करें उबंटू से पूछो अधिक समर्थन के लिए.
- ब्लॉकचेन वातावरण में ओएस संघर्षों को कम करने के लिए निर्भरता प्रबंधन के लिए डॉकर कंपोज़ का उपयोग करना। हाइपरलेजर फैब्रिक के लिए व्यावहारिक डॉकर कंटेनर सेटअप देखें डॉकर दस्तावेज़ीकरण .