<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Developers Forum for XinFin XDC Network: Galaxy</title>
    <description>The latest articles on Developers Forum for XinFin XDC Network by Galaxy (@galaxyscitech).</description>
    <link>https://www.xdc.dev/galaxyscitech</link>
    <image>
      <url>https://www.xdc.dev/images/8bRl0TAdKrOq08wYkRp67igI2AMwUpTozGoMzcwarE8/rs:fill:90:90/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL3VzZXIvcHJv/ZmlsZV9pbWFnZS8y/MzMzLzJmMDczYTg1/LWIyZTItNGJkMS05/YWU3LWY0MDBkYzMz/ZmQ2Ni5qcGVn</url>
      <title>Developers Forum for XinFin XDC Network: Galaxy</title>
      <link>https://www.xdc.dev/galaxyscitech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://www.xdc.dev/feed/galaxyscitech"/>
    <language>en</language>
    <item>
      <title>[Proposal] Adding an isOwner Function to the Validator Smart Contract</title>
      <dc:creator>Galaxy</dc:creator>
      <pubDate>Mon, 06 May 2024 11:56:53 +0000</pubDate>
      <link>https://www.xdc.dev/galaxyscitech/adding-an-isowner-function-to-the-validator-smart-contract-1e3o</link>
      <guid>https://www.xdc.dev/galaxyscitech/adding-an-isowner-function-to-the-validator-smart-contract-1e3o</guid>
      <description>&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;isOwner&lt;/code&gt; function provides a way to verify if a specific address corresponds to the owner of the validator smart contract. This functionality can be useful in various scenarios, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restricting access to certain administrative functions within the contract.&lt;/li&gt;
&lt;li&gt;Granting voting rights or other privileges only to the owner.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Implementation Details:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;isOwner Function:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Define a public function named &lt;code&gt;isOwner&lt;/code&gt; that takes an &lt;code&gt;address&lt;/code&gt; argument (&lt;code&gt;owner&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Inside the function, compare the provided address (&lt;code&gt;owner&lt;/code&gt;) with the stored owner address (&lt;code&gt;owner&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Return &lt;code&gt;true&lt;/code&gt; if they match, indicating the address is the owner. Otherwise, return &lt;code&gt;false&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Solidity Code Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight solidity"&gt;&lt;code&gt;    &lt;span class="c1"&gt;// isOwner : check if the given address is an owner or not.
&lt;/span&gt;    &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;isOwner&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;address&lt;/span&gt; &lt;span class="n"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;view&lt;/span&gt; &lt;span class="k"&gt;returns&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;uint&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;owners&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;owners&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improved security by restricting access to sensitive functionalities.&lt;/li&gt;
&lt;li&gt;Increased flexibility in managing validator permissions.&lt;/li&gt;
&lt;li&gt;Enhanced transparency by allowing users to verify ownership.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tips:&lt;/strong&gt;&lt;br&gt;
This is from &lt;a class="mentioned-user" href="https://www.xdc.dev/0xbeny"&gt;@0xbeny&lt;/a&gt; idea, I just help him to improve the code&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[Informative] Subswap aggregator module draft : Next generation deal aggregator</title>
      <dc:creator>Galaxy</dc:creator>
      <pubDate>Sat, 13 Apr 2024 05:16:02 +0000</pubDate>
      <link>https://www.xdc.dev/galaxyscitech/subswap-swap-module-draft-next-generation-deal-aggregator-1a40</link>
      <guid>https://www.xdc.dev/galaxyscitech/subswap-swap-module-draft-next-generation-deal-aggregator-1a40</guid>
      <description>&lt;h2&gt;
  
  
  Subswap Aggregator on XDC: Current State, Problems, Solutions, and Advantages
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Problems statement
&lt;/h3&gt;

&lt;p&gt;Currently, there are multiple DEXs on the XDC Network, each with its own liquidity pool and trading pairs. This leads to the problems of fragmented liquidity and price discrepancies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/8tL8Z6DxRTZfRUT5k8JeLa5FswlurdDl-ET9l2to-L4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzV6ZWQzbWQ5d3No/aXhlYzIzYzNqLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/8tL8Z6DxRTZfRUT5k8JeLa5FswlurdDl-ET9l2to-L4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzV6ZWQzbWQ5d3No/aXhlYzIzYzNqLnBu/Zw" alt="Image description" width="880" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fragmented liquidity and price discrepancies lead to the following problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users have difficulty finding the best trading price&lt;/li&gt;
&lt;li&gt;Increased transaction slippage&lt;/li&gt;
&lt;li&gt;Slower transaction execution speed&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Solution : deal aggregator
&lt;/h3&gt;

&lt;p&gt;A Subswap aggregator can solve the above problems. The aggregator provides users with the best trading price and the most optimized transaction execution plan by aggregating the liquidity pools and trading prices of multiple DEXs.&lt;/p&gt;

&lt;p&gt;Subswap aggregator provides users with the following advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Better trading prices:&lt;/strong&gt; Users can find the best-priced solution by exploring all possible trading options through the aggregator.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lower transaction slippage:&lt;/strong&gt; The aggregator can help users reduce transaction slippage, thereby lowering transaction costs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faster transaction speed:&lt;/strong&gt; The aggregator can optimize the transaction execution path, thereby improving transaction speed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Higher liquidity:&lt;/strong&gt; The aggregator can aggregate the liquidity of multiple DEXs, thereby providing users with greater liquidity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. How does it works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The aggregator collects liquidity pool and trading price data from multiple DEXs&lt;/li&gt;
&lt;li&gt;Based on the user's trading request, the aggregator calculates all possible trading solutions&lt;/li&gt;
&lt;li&gt;Selects the trading solution with the best price, the least slippage, and the fastest execution speed&lt;/li&gt;
&lt;li&gt;Sends the trading instruction to the selected DEX for execution&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is a picture of the UI of the okx aggregator&lt;/p&gt;

&lt;p&gt;It can be very intuitive and simple to trade the tokens you own, and link multiple swap protocols on the chain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/8eJxjr4PX2pG5CkMvJHmXv9QeerFyBL7iJ5wnLEyel4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2k4czcwbnBqeWxx/NzFla25yN2x5LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/8eJxjr4PX2pG5CkMvJHmXv9QeerFyBL7iJ5wnLEyel4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2k4czcwbnBqeWxx/NzFla25yN2x5LnBu/Zw" alt="Image description" width="880" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a picture of the UI of the binance aggregator&lt;/p&gt;

&lt;p&gt;It can use tokens from any chain to exchange for different tokens on different chains.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/nQtG75UzqImth7KXHeLYLYjz7oBy5goHE5VYMHEdgug/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3lrNHk2dmkxZmwx/Z3kyeDc3aTlsLmpw/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/nQtG75UzqImth7KXHeLYLYjz7oBy5goHE5VYMHEdgug/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3lrNHk2dmkxZmwx/Z3kyeDc3aTlsLmpw/Zw" alt="Image description" width="590" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Tentative Proposal
&lt;/h3&gt;

&lt;p&gt;To actualize the Subswap aggregator on the XDC Network, we need a cohesive plan encompassing development, marketing, and operations. Here's a preliminary proposal outlining the key components and a six-month development timeline:&lt;/p&gt;

&lt;h4&gt;
  
  
  Development Phase (6-12 months)
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Research and Analysis:&lt;/strong&gt; Conduct an in-depth analysis of existing DEXs on the XDC Network, their liquidity pools, trading pairs, and APIs for data collection.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prototype Development:&lt;/strong&gt; Build a prototype of the Subswap aggregator platform that can collect data from multiple DEXs, perform price calculations, and generate optimized trading solutions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smart Contract Development:&lt;/strong&gt; Develop smart contracts for executing trades on selected DEXs securely and efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;User Interface Design:&lt;/strong&gt; Design an intuitive and user-friendly interface for the Subswap aggregator platform, ensuring seamless navigation and accessibility for both novice and experienced traders.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Testing and Optimization:&lt;/strong&gt; Conduct extensive testing to ensure the reliability, security, and efficiency of the aggregator platform. Optimize algorithms for price calculation, trade execution, and data synchronization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration and Deployment:&lt;/strong&gt; Integrate the developed components into a cohesive platform and deploy it on the XDC Network. Ensure compatibility with various wallets and trading interfaces.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These numbers are indicative, and the specific personnel requirements should be adjusted and optimized based on the project's specifics and the team's capabilities.&lt;/p&gt;

&lt;p&gt;By following this comprehensive plan, we aim to successfully develop, launch, and promote the Subswap aggregator on the XDC Network, providing users with superior trading experiences and contributing to the growth and development of the decentralized finance (DeFi) ecosystem on XDC.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[Proposal] Proposals for Modifying Validator Contract Functionality</title>
      <dc:creator>Galaxy</dc:creator>
      <pubDate>Thu, 21 Mar 2024 07:14:40 +0000</pubDate>
      <link>https://www.xdc.dev/galaxyscitech/proposals-for-modifying-validator-contract-functionality-h9k</link>
      <guid>https://www.xdc.dev/galaxyscitech/proposals-for-modifying-validator-contract-functionality-h9k</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. KYC Mechanism Modification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Current Status:&lt;/strong&gt; The current KYC mechanism is ineffective because anyone can upload KYC information without verification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Proposal One:&lt;/strong&gt; Add a voting mechanism to the &lt;code&gt;uploadKYC&lt;/code&gt; function:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only KYC-verified Masternodes can propose new candidates.&lt;/li&gt;
&lt;li&gt;All Masternodes need to vote on the uploaded KYC information, and only those that receive more than 75% of the votes can pass KYC verification.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Proposal Two:&lt;/strong&gt; Add a waiting period to the &lt;code&gt;propose&lt;/code&gt; function:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After a candidate is proposed, the candidate address will not become a candidate immediately, but will enter a waiting list for two weeks.&lt;/li&gt;
&lt;li&gt;Create a new voting method to vote on whether the candidate in the waiting period is invalid.&lt;/li&gt;
&lt;li&gt;If 75% or more of the voters believe the candidate is invalid, the candidate will be removed from the waiting list and will not become a candidate.&lt;/li&gt;
&lt;li&gt;If the candidate is not voted invalid during the waiting period, the candidate can become a candidate by calling the &lt;code&gt;claimCandidate&lt;/code&gt; function to remove itself from the waiting list.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Modify Voting Parameters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Current Status:&lt;/strong&gt; The request parameters for &lt;code&gt;voteInvalidKYC&lt;/code&gt; and &lt;code&gt;invalidPercent&lt;/code&gt; functions are &lt;code&gt;invalidCandidate&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suggestion:&lt;/strong&gt; Change the request parameter to &lt;code&gt;invalidOwner&lt;/code&gt; to make the system more stable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Implement a Blacklist for Disqualified Owners&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Current Status:&lt;/strong&gt; If a owner is voted out, he will still have a chance to be proposed later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suggestion:&lt;/strong&gt; This change introduces a blacklist mechanism to address the issue of repeatedly proposing unqualified owners. When an owner is voted out due to invalid KYC, both the owner and any candidates they propose will be added to a blacklist.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Blacklisted owners lose the ability to withdraw funds.&lt;/li&gt;
&lt;li&gt;Blacklisted candidates cannot be re-proposed for ownership.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Soliciting Opinions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which of the two proposals for the first opinion is better?&lt;/li&gt;
&lt;li&gt;Any other suggestions for the second opinion?&lt;/li&gt;
&lt;li&gt;Any other suggestions for the third opinion?&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>[Informative] Subswap: Connecting Chains, Empowering Free Flow of Cross-Chain Assets</title>
      <dc:creator>Galaxy</dc:creator>
      <pubDate>Wed, 20 Mar 2024 08:37:58 +0000</pubDate>
      <link>https://www.xdc.dev/galaxyscitech/subswap-connecting-chains-empowering-free-flow-of-cross-chain-assets-46op</link>
      <guid>https://www.xdc.dev/galaxyscitech/subswap-connecting-chains-empowering-free-flow-of-cross-chain-assets-46op</guid>
      <description>&lt;h2&gt;
  
  
  What is subswap
&lt;/h2&gt;

&lt;p&gt;A token cross-chain Dapp based on XDC Zero will integrate token interoperability between multiple subnets and the mainnet, and also support token swaps on the mainnet.&lt;/p&gt;

&lt;p&gt;OK ， Let’s review what is xdc zero is in case we forget&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;XDC Zero: A Cross-Chain Communication and Data Transfer System&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;XDC Zero is a cross-chain system that enables seamless communication and data transfer between different blockchains. It consists of three main components: endpoint contracts, a relayer, and checkpoint contracts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Endpoint contracts:&lt;/strong&gt; Endpoint contracts are deployed on both the source and destination chains. They serve as gateways for data transfer, receiving requests from applications on the source chain and forwarding them to the destination chain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Relayer:&lt;/strong&gt; The relayer is a critical component that facilitates data transfer between chains. It continuously monitors endpoint contracts for new data and transfers it to the corresponding endpoint contract on the destination chain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Checkpoint contracts:&lt;/strong&gt; Checkpoint contracts are responsible for verifying the authenticity and integrity of data transferred between chains. They achieve this by utilizing Merkle trees, which provide a secure and efficient way to verify data without requiring the entire blockchain to be downloaded.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Workflow:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The workflow of XDC Zero can be summarized as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;An application on the source chain initiates a data transfer request by sending a call data to the source chain's endpoint contract.&lt;/li&gt;
&lt;li&gt;The source chain's endpoint contract stores the call data and notifies the relayer about the new data.&lt;/li&gt;
&lt;li&gt;The relayer retrieves the call data from the source chain's endpoint contract and transfers it to the destination chain's endpoint contract.&lt;/li&gt;
&lt;li&gt;The destination chain's endpoint contract requests the Merkle tree root from the destination chain's checkpoint contract to verify the authenticity of the call data.&lt;/li&gt;
&lt;li&gt;The destination chain's checkpoint contract verifies the Merkle tree root and, if valid, executes the call data on the destination chain's application.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;XDC Zero offers several key benefits, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Seamless cross-chain communication:&lt;/strong&gt; XDC Zero enables applications on different chains to communicate and exchange data seamlessly without the need for complex integration or intermediaries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enhanced security and data integrity:&lt;/strong&gt; XDC Zero utilizes Merkle trees to ensure the authenticity and integrity of data transferred between chains, providing a high level of security and trust.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Efficient data transfer:&lt;/strong&gt; The relayer in XDC Zero optimizes data transfer by efficiently routing data between chains, minimizing latency and transaction costs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Applications:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;XDC Zero can be applied in a variety of use cases, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cross-chain asset transfer:&lt;/strong&gt; XDC Zero can be used to transfer assets between different chains, such as transferring tokens from a DEX on one chain to a lending protocol on another chain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-chain dApp development:&lt;/strong&gt; XDC Zero can be leveraged to develop dApps that interact with multiple chains, enabling more complex and sophisticated functionality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-chain data sharing:&lt;/strong&gt; XDC Zero can facilitate the secure sharing of data between different chains, such as sharing KYC information or market data across different blockchains.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/IqtNs5v0-0onyW2CgXpth4ekU_DgkBbNNTXPsHkXe40/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzQyYmEwanJrcmgx/cWNqazFiNWR4LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/IqtNs5v0-0onyW2CgXpth4ekU_DgkBbNNTXPsHkXe40/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzQyYmEwanJrcmgx/cWNqazFiNWR4LnBu/Zw" alt="Image description" width="880" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OK ， We already know what xdc zero is. Let’s take a look at what subswap is and what the first xdc zero-based application consists of.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subswap: A Cross-Chain Asset Transfer and Swapping Application&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subswap&lt;/strong&gt; is a groundbreaking application built on XDC Zero that enables seamless cross-chain asset transfer and swapping on the mainnet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subswap contracts:&lt;/strong&gt; Deployed on both the mainnet and subnet, these contracts facilitate cross-chain asset locking, minting, and swapping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;XDC Zero:&lt;/strong&gt; Provides the underlying infrastructure for secure and efficient cross-chain communication and data transfer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Workflow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Cross-chain asset transfer:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;A user locks their tokens in the Subswap contract on the subnet.&lt;/li&gt;
&lt;li&gt;Subswap utilizes XDC Zero to transfer the locked tokens to the mainnet.&lt;/li&gt;
&lt;li&gt;The mainnet Subswap contract mints replica tokens with a 1:1 mapping to the original tokens.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-chain asset swapping:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Users can swap their mainnet tokens on the Subswap contract, e.g., tokenA for tokenB.&lt;/li&gt;
&lt;li&gt;This enables trading of tokens from different subnets on the mainnet.&lt;/li&gt;
&lt;li&gt;Users can then transfer their swapped tokens back to their desired subnet.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Seamless cross-chain asset transfer:&lt;/strong&gt; Users can easily move their assets between subnets and the mainnet without the need for complex intermediaries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-chain asset swapping:&lt;/strong&gt; Subswap enables users to trade tokens from different subnets on a single platform, increasing liquidity and market efficiency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enhanced security and data integrity:&lt;/strong&gt; XDC Zero ensures the authenticity and integrity of all cross-chain transactions, providing a high level of security and trust.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/cAen4icm0k40AAai4C28B2HTb73PfY0pZH6Dc6G_xK0/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3J3bXJnY3o0cXkz/b21vaDJicDk1LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/cAen4icm0k40AAai4C28B2HTb73PfY0pZH6Dc6G_xK0/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3J3bXJnY3o0cXkz/b21vaDJicDk1LnBu/Zw" alt="Image description" width="880" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's see what our demo can do now&lt;/p&gt;

&lt;p&gt;First login the website &lt;br&gt;
&lt;a href="https://subswap-frontend-eta.vercel.app/bridge"&gt;https://subswap-frontend-eta.vercel.app/bridge&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1.Connet your wallet&lt;br&gt;
(&lt;a href="https://www.xdc.dev/uploads/articles/fxrcpqvxdswr877kf66a.png"&gt;https://www.xdc.dev/uploads/articles/fxrcpqvxdswr877kf66a.png&lt;/a&gt;)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;choose your network
&lt;img src="https://www.xdc.dev/images/4UP8qBty404GemqjQST2AAwV3qGyO0IeFznUZchi1Vs/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2FpdTV6OW9pNmZo/bDNvMW81dW5kLnBu/Zw" alt="Image description" width="880" height="389"&gt;
3.submit your network name and network url
&lt;img src="https://www.xdc.dev/images/7BBRFYyy_AlwVFwAuTEXWryWpzeuWFxl63VQNfQ_R0M/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3hqaWVtYXoxYXZy/MTBybnI4eXRiLnBu/Zw" alt="Image description" width="880" height="484"&gt;
4.switch your network
&lt;img src="https://www.xdc.dev/images/YO6KBkNh1IyaaUUN0g_whbPP00IK8q88rZjZmUtCoP4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2VoMmk5cjU1OTU3/eXRhbmRueTdlLnBu/Zw" alt="Image description" width="880" height="421"&gt;
5.choose your token
&lt;img src="https://www.xdc.dev/images/uQeXQCl7qVMew93r2sC_1G217SXh119Q4mjK5JQ0Ji0/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzV6aHBpeG5jMXox/dmwxamVheWdvLnBu/Zw" alt="Image description" width="880" height="638"&gt;
6.choose your token
&lt;img src="https://www.xdc.dev/images/6ei6VcydFn3qP3ie1NJ6HMyz1YvGuPhvHlpGFX3Uqf0/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2JkcjR3Mmxqamlv/cGh3dHZrNjRuLnBu/Zw" alt="Image description" width="880" height="549"&gt;
7.choose the amount you want to send,and Select the address you want to receive tokens on the mainnet
&lt;img src="https://www.xdc.dev/images/FM3YOCs7pfG0UzBjNjzYHXqG0hnE1NSatLJZcnJQANQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/Lzh4aG00cnpydHFy/a3U1ZnJuaHZ5LnBu/Zw" alt="Image description" width="880" height="576"&gt;
8.you can see the transaction on the mainnet , you can receive the token
&lt;img src="https://www.xdc.dev/images/2lCUp6EIYiTJapZ_VRTuFZXdDOseMuAAxZzzaOPexGY/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L21iZG5uOHVjeHU2/N3l1cXBzcmFrLnBu/Zw" alt="Image description" width="880" height="425"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Subswap: Looking Ahead
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Future Developments:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enhanced Cross-Chain Functionality:&lt;/strong&gt; Expanding cross-chain support to facilitate seamless asset movement from the mainnet back to individual subnets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mainnet Swapping:&lt;/strong&gt; Introducing native swap functionality on the mainnet, allowing users to trade tokens directly without needing to interact with subnets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decentralized Relay Network:&lt;/strong&gt; Building a more decentralized XDC Zero ecosystem, empowering individuals to run relayers and potentially earn rewards for their contribution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strategic Collaboration:&lt;/strong&gt; Strengthening collaboration with the XDC team across engineering, marketing, and business development to accelerate Subswap's growth and adoption.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>[Informative] Test the opcode after upgrade EVM in xdc devnet</title>
      <dc:creator>Galaxy</dc:creator>
      <pubDate>Mon, 11 Mar 2024 12:47:58 +0000</pubDate>
      <link>https://www.xdc.dev/galaxyscitech/test-the-opcode-in-xdc-devnet-3f2d</link>
      <guid>https://www.xdc.dev/galaxyscitech/test-the-opcode-in-xdc-devnet-3f2d</guid>
      <description>&lt;p&gt;Let's see which opcode we need to test it &lt;br&gt;
&lt;a href="https://www.xdc.dev/images/zk7qjzIfyrNWLCZOmAIn1RlMQhfkxxV4n5AXFASJcOE/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L213cHdvZHdzNDZn/ZGsyb2RkN2tlLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/zk7qjzIfyrNWLCZOmAIn1RlMQhfkxxV4n5AXFASJcOE/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L213cHdvZHdzNDZn/ZGsyb2RkN2tlLnBu/Zw" alt="Image description" width="880" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About EIP-3855(PUSH0)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s try to verify all of the above-mentioned details about &lt;code&gt;PUSH0&lt;/code&gt; opcode with an example and see if it actually does the magic. 🪄&lt;/p&gt;

&lt;p&gt;We will take this small contract for example,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;contract PushZero_Test{&lt;br&gt;
    uint256 public num;&lt;br&gt;
    function set(uint256 _n) public{&lt;br&gt;
        num = _n;&lt;br&gt;
    }&lt;br&gt;
}&lt;/code&gt;&lt;br&gt;
Then, let’s Compile and Deploy this contract:&lt;/p&gt;

&lt;p&gt;First, use older versions like 0.8.19 or 0.8.16, etc.&lt;br&gt;
Then using the latest version, 0.8.20.&lt;br&gt;
Contract Code Size&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/elCS-1962seg5Tdy_XVYQ-O6mHi9dVYBOEmzqoTR2oc/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2N4MXg0ZzhxMmxz/cTEwaWVnemFrLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/elCS-1962seg5Tdy_XVYQ-O6mHi9dVYBOEmzqoTR2oc/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2N4MXg0ZzhxMmxz/cTEwaWVnemFrLnBu/Zw" alt="Image description" width="880" height="261"&gt;&lt;/a&gt;&lt;br&gt;
608060405234801561001057600080fd5b5060b18061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80634e70b1dc14603757806360fe47b1146051575b600080fd5b603f60005481565b60405190815260200160405180910390f35b6061605c3660046063565b600055565b005b600060208284031215607457600080fd5b503591905056fea264697066735822122012c9c28a3afc19fc4abcdf6f9ad630831905962e9230729b065886c3b506f53564736f6c63430008130033&lt;br&gt;
➡️ Contract bytecode size using older version = ~678 characters&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/2j3h0OL_MYMUjRzpex3wI2xiwD9amTbIGrfOD1_oVkc/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzJqNDFleGhuN3Fs/Y3RtM2Y4bmk3LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/2j3h0OL_MYMUjRzpex3wI2xiwD9amTbIGrfOD1_oVkc/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzJqNDFleGhuN3Fs/Y3RtM2Y4bmk3LnBu/Zw" alt="Image description" width="880" height="365"&gt;&lt;/a&gt;&lt;br&gt;
6080604052348015600e575f80fd5b5060aa8061001b5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c80634e70b1dc14603457806360fe47b114604d575b5f80fd5b603b5f5481565b60405190815260200160405180910390f35b605c6058366004605e565b5f55565b005b5f60208284031215606d575f80fd5b503591905056fea26469706673582212205ee59545aaece46407d5982db44b8260dfa4e7227c4837321575367f34ef827864736f6c63430008140033&lt;br&gt;
➡️ Contract bytecode size using 0.8.20 versions = ~646 characters&lt;/p&gt;

&lt;p&gt;Deployment Gas Cost ⛽️&lt;br&gt;
&lt;a href="https://devnet.blocksscan.io/txs/0xc6a1f83325c8749115f45cf42f35e16a58452d57881eaad00fdf2e8d805651a2"&gt;https://devnet.blocksscan.io/txs/0xc6a1f83325c8749115f45cf42f35e16a58452d57881eaad00fdf2e8d805651a2&lt;/a&gt;&lt;br&gt;
➡️ Contract Deployment cost using older versions = ~61511 gas&lt;br&gt;
&lt;a href="https://devnet.blocksscan.io/txs/0xf87590988d34a24db47a045a70d567fb1168697b35d0739895496784c07f6fdd"&gt;https://devnet.blocksscan.io/txs/0xf87590988d34a24db47a045a70d567fb1168697b35d0739895496784c07f6fdd&lt;/a&gt;&lt;br&gt;
➡️ Contract Deployment cost using 0.8.20 versions = ~58909 gas&lt;br&gt;
As a result of this short experiment, we can clearly verify that with the inclusion of &lt;code&gt;PUSH0&lt;/code&gt; opcode, we now have:&lt;/p&gt;

&lt;p&gt;Reduced contract code size, and&lt;br&gt;
Reduced contract deployment gas cost&lt;br&gt;
Hmmm, the opcode does its magic well. 🧐&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important Warning for Solidity Devs&lt;/strong&gt;&lt;br&gt;
If don't support PUSH0 opcode&lt;/p&gt;

&lt;p&gt;And you might get an error that looks something like this 👇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/chZMOFWv7FYSCg-lpt1U08GsjPamyud3-9KQz6Q5tRA/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2xsZ2U2ajRtM29r/ZnFzd2V0ZHdjLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/chZMOFWv7FYSCg-lpt1U08GsjPamyud3-9KQz6Q5tRA/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2xsZ2U2ajRtM29r/ZnFzd2V0ZHdjLnBu/Zw" alt="Image description" width="880" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About EIP-3198(BASEFEE)&lt;/strong&gt;&lt;br&gt;
I deployed the smart contract about this code &lt;/p&gt;

&lt;p&gt;&lt;code&gt;pragma solidity =0.8.20;&lt;br&gt;
contract TestPush0 {&lt;br&gt;
    function getBaseFee()&lt;br&gt;
        external&lt;br&gt;
        view&lt;br&gt;
        returns (uint256 number, uint256 basefee)&lt;br&gt;
    {&lt;br&gt;
        return (block.number, block.basefee);&lt;br&gt;
    }&lt;br&gt;
    function getRandom()&lt;br&gt;
        external&lt;br&gt;
        view&lt;br&gt;
        returns (uint256 number, uint256 basefee)&lt;br&gt;
    {&lt;br&gt;
        return (block.number, block.prevrandao);&lt;br&gt;
    }&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devnet.blocksscan.io/txs/0xe204c319c5f8805fb98aa6fabceb3eecd39171967b53272da8a0c213a908a272"&gt;https://devnet.blocksscan.io/txs/0xe204c319c5f8805fb98aa6fabceb3eecd39171967b53272da8a0c213a908a272&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The contract address is 0x25aAf52906f3b36DBA16FF22FBCb6d238Eb9a1d9&lt;/p&gt;

&lt;p&gt;I can get the value from getBaseFee function, so it have supported the block.baseFee &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/KWFkldGMFQxDC4RXuBy_Vdz3CreqMueHfEEAqNLzxIc/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzBtcnNvc3N1cXB0/aXgxN24xbHJuLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/KWFkldGMFQxDC4RXuBy_Vdz3CreqMueHfEEAqNLzxIc/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzBtcnNvc3N1cXB0/aXgxN24xbHJuLnBu/Zw" alt="Image description" width="880" height="585"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hmmm, the opcode does its magic well. 🧐&lt;br&gt;
*&lt;em&gt;About EIP-4399(RANDOM, PREVRANDAO) *&lt;/em&gt;&lt;br&gt;
I can get the value from getRandom function, so it have supported the block.prevrandao&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/J3WHqEpimEfLs-5sInkYhjaf8rVz2LdZoT-xqRyue18/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2RjYmJtcTRsY25p/bWJwZTcxbDA2LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/J3WHqEpimEfLs-5sInkYhjaf8rVz2LdZoT-xqRyue18/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2RjYmJtcTRsY25p/bWJwZTcxbDA2LnBu/Zw" alt="Image description" width="880" height="595"&gt;&lt;/a&gt;&lt;br&gt;
 Hmmm, the opcode does its magic well. 🧐&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[Informative] Upgrade Plan for XDCValidator Contract</title>
      <dc:creator>Galaxy</dc:creator>
      <pubDate>Tue, 27 Feb 2024 05:26:20 +0000</pubDate>
      <link>https://www.xdc.dev/galaxyscitech/upgrade-plan-for-xdcvalidator-contract-3d6a</link>
      <guid>https://www.xdc.dev/galaxyscitech/upgrade-plan-for-xdcvalidator-contract-3d6a</guid>
      <description>&lt;h2&gt;
  
  
  Option 1: Deploy and Use a New Contract
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Sub-option 1.1: Complete Abandonment of the Old Contract
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;At the first specified block number, disable all transactions in the old contract in Golang and inform all nodes to suspend transactions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Import all data from the old contract into the new contract, ensuring functionality and data correctness.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At the second specified block number, switch MasternodeVotingSMC to the new contract in Golang.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test the new contract thoroughly; if no issues arise, notify all nodes of a successful upgrade to use the new contract.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Sub-option 1.2: Permanent Coexistence of Old and New Contracts
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Disable specific functions in the old contract in Golang, such as uploadKYC, propose, and vote.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Switch MasternodeVotingSMC to the new contract in Golang.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Notify all nodes to use the functions of the new contract.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The new contract reads asset data from the old contract but not other data, handling both the new and old contract's validatorsState data structures.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The old contract only allows withdrawals.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Sub-option 1.3: Temporary Coexistence of Old and New Contracts
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Before a specified block number:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The new contract reads asset data from the old contract but not other data, handling both the new and old contract's validatorsState data structures.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In Golang, the old contract only allows withdrawals, disabling other functions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Switch MasternodeVotingSMC to the new contract in Golang.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Notify all nodes to use the functions of the new contract.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Notify all nodes to withdraw from the old contract.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  After the specified block number:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The new contract no longer reads asset data from the old contract.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Disable all transactions in the old contract in Golang.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Option 2: In-place Upgrade of Contract Code
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Write tests for the new contract.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Backup the code of the old contract.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Extract the code of the new contract.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Modify Golang code to replace the contract's code at a specified block.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Notify everyone of changes in contract functionality.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For more details, refer to: &lt;a href="https://github.com/XinFinOrg/XDPoSChain/discussions/422"&gt;XDCValidator Upgrade Discussion&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[Informative]XDC Zero :Advanced Cross-Chain System</title>
      <dc:creator>Galaxy</dc:creator>
      <pubDate>Wed, 29 Nov 2023 06:04:43 +0000</pubDate>
      <link>https://www.xdc.dev/galaxyscitech/xdc-zero-advanced-cross-chain-system-20d2</link>
      <guid>https://www.xdc.dev/galaxyscitech/xdc-zero-advanced-cross-chain-system-20d2</guid>
      <description>&lt;p&gt;What is XDC ZERO ? &lt;br&gt;
Achieve unparalleled blockchain interoperability with XDC ZERO, ensuring frictionless data transmission and rigorous validation across a multitude of chains.&lt;/p&gt;

&lt;p&gt;What's xdc zero for&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;verifiable generic message passing between networks&lt;/li&gt;
&lt;li&gt;building block of inter-chain token transfer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/5g-hcf2fc3F4YWLiT7bPKUY0wlrIUNkR74vfYBoXrbU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3FtaHIzb2F3anlr/bjVoYTJzbjhqLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/5g-hcf2fc3F4YWLiT7bPKUY0wlrIUNkR74vfYBoXrbU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3FtaHIzb2F3anlr/bjVoYTJzbjhqLnBu/Zw" alt="Image description" width="628" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Key Components&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Light client-based verifier(CSC):verify TXs against the checkpointed headers&lt;/li&gt;
&lt;li&gt;Endpoint:on-chain message reception and dispatch (to Dapp)&lt;/li&gt;
&lt;li&gt;Relayer:cross-chain massage passer&lt;/li&gt;
&lt;li&gt;Frontend:configuration management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/lj28kurbkuAfyF7OvYabPGTspqYgdgOOz6bLptLPYc4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2E4YW1iYzBvNXI0/amtvaTFjcnJjLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/lj28kurbkuAfyF7OvYabPGTspqYgdgOOz6bLptLPYc4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2E4YW1iYzBvNXI0/amtvaTFjcnJjLnBu/Zw" alt="Image description" width="880" height="850"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Future : build anything cross-chain application base on xdc zero&lt;/p&gt;

&lt;p&gt;For example: build bridge for token transfer from different chains&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/9gcZ4-M72jOI3lo2RI7wRmzxNkwUr6eNBsbA4D-5ZtI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3VhcGhnd20xZG9z/MmJzbXZoczhyLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/9gcZ4-M72jOI3lo2RI7wRmzxNkwUr6eNBsbA4D-5ZtI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3VhcGhnd20xZG9z/MmJzbXZoczhyLnBu/Zw" alt="Image description" width="880" height="674"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo for xdc zero&lt;/p&gt;

&lt;p&gt;The current demo supports sending messages from subnet to devnet&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/6Vudw8R493pN4BJrgt2cW_ANsgAyqB_nS8W-xSvo5c8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2VmbHR4YWIya3No/OHJ3azB3c2xjLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/6Vudw8R493pN4BJrgt2cW_ANsgAyqB_nS8W-xSvo5c8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2VmbHR4YWIya3No/OHJ3azB3c2xjLnBu/Zw" alt="Image description" width="880" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;if you want try , the step one switch to subnet ,then call devnet contract with address and input data&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/ixzJt8UbtGi0im5UQ03ij4gwET73z1UNK9OT7LXS050/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzBwcnAzcWJnOGpi/ajhtaDFvZGNxLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/ixzJt8UbtGi0im5UQ03ij4gwET73z1UNK9OT7LXS050/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzBwcnAzcWJnOGpi/ajhtaDFvZGNxLnBu/Zw" alt="Image description" width="880" height="457"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/j3FUQ6BCHlIeVAwbnbWyao8s8JEWh2FdwklIYO_3vNI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3o5NTVjdDBpOHYx/ZDR0YW82M3E5LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/j3FUQ6BCHlIeVAwbnbWyao8s8JEWh2FdwklIYO_3vNI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3o5NTVjdDBpOHYx/ZDR0YW82M3E5LnBu/Zw" alt="Image description" width="880" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tips : this is very new and under development ,please wait some more time for it to be perfected&lt;/p&gt;

&lt;p&gt;Demo video &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=NRtS3PwETVI&amp;amp;t=7s"&gt;https://www.youtube.com/watch?v=NRtS3PwETVI&amp;amp;t=7s&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Presentation&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.google.com/presentation/d/1c2YPFY-abk8izXNGEzytg6SslLL1oOom8JOU0zHsfo4/edit?usp=sharing"&gt;https://docs.google.com/presentation/d/1c2YPFY-abk8izXNGEzytg6SslLL1oOom8JOU0zHsfo4/edit?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Github &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/XinFinOrg/XDC-Zero"&gt;https://github.com/XinFinOrg/XDC-Zero&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Website&lt;/p&gt;

&lt;p&gt;&lt;a href="https://xdc-zero.vercel.app/"&gt;https://xdc-zero.vercel.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>xdc</category>
      <category>infra</category>
    </item>
  </channel>
</rss>
