मुख्य सामग्री पर जाएं
यह ट्यूटोरियल आपको शून्य से एक Multichain Virtual Environment पर एक cross-chain transaction तक ले जाता है। अंत तक आपके पास एक Virtual Environment होगा जो एक से अधिक networks में फैला होगा, Bridge Module उनके बीच messages को relay करेगा, आपके contracts प्रत्येक network पर deployed होंगे, प्रत्येक chain पर funded accounts होंगे, और एक working cross-chain transaction एकीकृत dashboard timeline में दिखाई देगा। यदि आपने अभी तक overview नहीं पढ़ा है, तो पहले वह करें। यह बताता है कि Multichain Virtual Environment क्या है, RPC URLs कैसे संरचित हैं, और Virtual Chain IDs का क्या अर्थ है।

शुरू करने से पहले

आपको चाहिए:
  • multichain क्षमताएं सक्षम के साथ एक Tenderly account। यदि आप Virtual Environment निर्माण के दौरान कई networks जोड़ने का विकल्प नहीं देखते हैं, तो हमसे संपर्क करें
  • एक wallet private key जिसे आप test environment में उपयोग करने को तैयार हैं। इसे अपने shell में PRIVATE_KEY के रूप में सेट करें।
  • स्थानीय रूप से स्थापित Foundry या Hardhat
बाकी ट्यूटोरियल Ethereum mainnet, Arbitrum, Optimism, और Base मानता है, लेकिन वही flow किसी भी समर्थित networks के संयोजन के लिए काम करता है।

ट्यूटोरियल चलाएं

1
Multichain Virtual Environment बनाएं
2
Tenderly Dashboard में, Virtual Environments खोलें और एक नया शुरू करें। Ethereum mainnet डिफ़ॉल्ट रूप से पहले से चयनित है। network picker से Arbitrum, Optimism, और Base जोड़ें। सूची में Production chains पहले दिखाई देते हैं, testnets नीचे।
3
प्रत्येक network के लिए आप चुन सकते हैं:
4
  • Fork point. latest block से fork करें (डिफ़ॉल्ट) या एक विशिष्ट block number, timestamp, या date चुनें।
  • Chain ID. डिफ़ॉल्ट Virtual Chain ID छोड़ दें जब तक कि आपके पास इसे override करने का कोई कारण न हो। Virtual Chain IDs section tradeoffs को समझाता है।
  • 5
    Virtual Environment को save करें। Tenderly द्वारा assigned slug पर ध्यान दें। slug यहाँ से आपके द्वारा उपयोग किए जाने वाले हर RPC URL का हिस्सा है।
    6
    Bridge Module को सक्षम करें
    7
    Virtual Environment के settings खोलें और Bridging को On पर toggle करें। एक बार सक्षम होने पर, Bridge Module Virtual Environment में प्रत्येक network पर cross-chain events के लिए देखता है और उन्हें स्वचालित रूप से destination chain पर relay करता है। यह किन protocols और networks को कवर करता है, इसके लिए Bridges देखें।
    8
    अपने project में RPCs wire करें
    9
    आपके Virtual Environment में प्रत्येक network का एक अनुमानित आकार के साथ एक अद्वितीय RPC URL है:
    10
    https://virtual.<network>.<region>.rpc.tenderly.co/<org-slug>/<virtual-env-slug>
    
    11
    Virtual Environment detail page से RPC URLs कॉपी करें और उन्हें अपनी project configuration में जोड़ें।
    12
    Foundry
    foundry.toml
    [rpc_endpoints]
    mainnet  = "https://virtual.mainnet.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>"
    arbitrum = "https://virtual.arbitrum.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>"
    optimism = "https://virtual.optimism.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>"
    base     = "https://virtual.base.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>"
    
    Virtual Environment explorer के विरुद्ध एक deployment verify करने के लिए, --verifier-url को उसी RPC पर सेट करें। deploy पूरा होते ही आपको dashboard में एक verified contract मिलेगा।
    Hardhat
    hardhat.config.ts
    const config: HardhatUserConfig = {
      networks: {
        tenderly_mainnet: {
          url: "https://virtual.mainnet.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>",
          accounts: [process.env.PRIVATE_KEY],
        },
        tenderly_arbitrum: {
          url: "https://virtual.arbitrum.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>",
          accounts: [process.env.PRIVATE_KEY],
        },
        tenderly_optimism: {
          url: "https://virtual.optimism.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>",
          accounts: [process.env.PRIVATE_KEY],
        },
      },
    };
    
    13
    प्रत्येक network पर accounts fund करें
    14
    अपने Virtual Environment के लिए Unlimited Faucet खोलें और उस address को टॉप-अप करें जिससे आप deploy करेंगे। यह प्रत्येक network पर करें, क्योंकि balances per network रखे जाते हैं। deploy के लिए Native currency पर्याप्त है। यदि आपके contracts tokens ले जाते हैं, तो उन्हें भी टॉप-अप करें।
    15
    Deploy और एक cross-chain transaction ट्रिगर करें
    16
    Virtual Environment से जुड़े प्रत्येक network पर अपने contracts deploy करें।
    17
    Foundry
    showLineNumbers
    forge create Counter \
      --private-key $PRIVATE_KEY \
      --rpc-url https://virtual.optimism.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug> \
      --broadcast \
      --verify \
      --verifier-url https://virtual.optimism.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>
    
    Hardhat
    npx hardhat run scripts/deploy.ts --network tenderly_mainnet
    
    18
    एक बार जब contracts प्रत्येक network पर deploy हो जाते हैं, तो एक cross-chain transaction भेजें जैसे आप सामान्य रूप से करेंगे (उदाहरण के लिए एक LayerZero send call)। Bridge Module चालू के साथ, destination-side delivery तुरंत पोस्ट की जाती है। Virtual Environment dashboard खोलें और आपको एकीकृत timeline पर source और destination दोनों transactions दिखाई देने चाहिए।
    19
    round-trip की स्पष्ट रूप से पुष्टि करने के लिए Bridges Source/Destination filter का उपयोग करें।
    अब आपके पास cross-chain bridging के साथ एक working Multichain Virtual Environment है।

    आगे क्या try करें

    अब जब ट्यूटोरियल काम करता है, तो यहाँ बताया गया है कि उसी setup को real workflows पर कैसे लागू करें:

    CI में deployments को स्वचालित करें

    GitHub Actions का उपयोग करके हर push पर हर network पर parallel में deploy करें। CI/CD guides matrix workflow और आपको आवश्यक secrets दिखाते हैं।

    अपने frontend को stage करें

    अपने dApp को Virtual Environment RPCs पर पॉइंट करें और अपनी team और समीक्षकों को एक environment दें जो पूरे multichain flow का अभ्यास करता है।

    API के माध्यम से Virtual Environments बनाएं

    multivnets endpoint एक call में एक Multichain Virtual Environment बनाता है। per-PR provisioning के लिए उपयोगी।

    Bridge failures का test करें

    Manual bridge controls आपको gas starvation, duplicate deliveries, modified payloads, और अन्य failure modes को deterministically stage करने देते हैं।

    यह भी देखें