<?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: Raghuram Dharanipathy</title>
    <description>The latest articles on Developers Forum for XinFin XDC Network by Raghuram Dharanipathy (@raghuram).</description>
    <link>https://www.xdc.dev/raghuram</link>
    <image>
      <url>https://www.xdc.dev/images/cMnCM5ERkwPZzFzg4tnNwOt7g8_2zkl35DHLuYkIu4o/rs:fill:90:90/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL3VzZXIvcHJv/ZmlsZV9pbWFnZS80/MzAvODI5NDFmNjMt/Mzk5NS00YmYxLTk2/YmYtOGMwM2Y2NjIx/Y2RiLmpwZw</url>
      <title>Developers Forum for XinFin XDC Network: Raghuram Dharanipathy</title>
      <link>https://www.xdc.dev/raghuram</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://www.xdc.dev/feed/raghuram"/>
    <language>en</language>
    <item>
      <title>[WIP] Apothem RPC link unstable</title>
      <dc:creator>Raghuram Dharanipathy</dc:creator>
      <pubDate>Mon, 18 Dec 2023 06:56:01 +0000</pubDate>
      <link>https://www.xdc.dev/raghuram/apothem-rpc-link-unstable-lmf</link>
      <guid>https://www.xdc.dev/raghuram/apothem-rpc-link-unstable-lmf</guid>
      <description>&lt;p&gt;We are facing issue in our Plugin nodes with Apothem RPC links. Tried using the RPC links provided in &lt;a href="https://chainlist.org/?chain=50&amp;amp;search=apothe"&gt;https://chainlist.org/?chain=50&amp;amp;search=apothe&lt;/a&gt;. For the past 4 days we are getting this issue in our servers. One or the other RPC link from chainlist page used to work, now all the links are unresponsive.&lt;/p&gt;

&lt;p&gt;Is this a known issue? Is someone working on this ?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[WIP]XDC Private Blockchain Setup - Known Issues</title>
      <dc:creator>Raghuram Dharanipathy</dc:creator>
      <pubDate>Mon, 19 Jun 2023 08:08:38 +0000</pubDate>
      <link>https://www.xdc.dev/raghuram/xdc-private-blockchain-setup-known-issues-2go5</link>
      <guid>https://www.xdc.dev/raghuram/xdc-private-blockchain-setup-known-issues-2go5</guid>
      <description>&lt;p&gt;The Plugin Development Team is actively considering the implementation of a Private Blockchain for certain use cases. Although we found the process of setting up the XDC Private Blockchain to be straightforward, we encountered some issues that we brought to the attention of the XDC Core Team for resolution.&lt;/p&gt;

&lt;p&gt;The following issues were identified during the implementation of the Private Blockchain, and we reported them to the XDC Core Team for fixing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The error "panic: runtime error: invalid memory address or nil pointer dereference" (Issue: &lt;a href="https://github.com/XinFinOrg/XDPoSChain/issues/271"&gt;PR-271&lt;/a&gt; - Pending)&lt;/li&gt;
&lt;li&gt;The XDC Private chain was halted, and no new blocks were being created (Issue: &lt;a href="https://github.com/XinFinOrg/XDPoSChain/issues/264"&gt;PR-264&lt;/a&gt; - Pending)&lt;/li&gt;
&lt;li&gt;The errors "list M1 not found" and "nonce too low" (Issue: &lt;a href="https://github.com/XinFinOrg/XDPoSChain/pull/238"&gt;PR-238&lt;/a&gt; - Fixed)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We also discovered that the Apothem explorer only accepts Solidity version 0.4.26 for verifying and publishing contracts (Issue:  &lt;a href="https://www.xdc.dev/raghuram/smart-contract-verifypublish-errored-out-in-apothem-explorer-4n4"&gt;smart-contract-verifypublish-errored-out-in-apothem&lt;/a&gt; - Pending ), and a fix was provided for one version.&lt;/p&gt;

&lt;p&gt;To bring attention to these issues, we published posts on XDC.dev, which you can find here:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.xdc.dev/raghuram/xdposchain-halted-stopped-creating-blocks-3fgn"&gt;Private Subnet halted, stopped creating blocks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.xdc.dev/raghuram/xdc-private-blockchain-fail-to-create-tx-sign-for-signer-error-5ck"&gt;XDC private blockchain Fail to create tx sign for signer error&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.xdc.dev/raghuram/smart-contract-verifypublish-errored-out-in-apothem-explorer-4n4"&gt;Smart contract Verify&amp;amp;Publish errored out in Apothem explorer&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We also shared the logs with the core team to assist in debugging.&lt;/p&gt;

&lt;p&gt;If you are a developer or blockchain enthusiast attempting to set up an XDC Private Blockchain, we hope that this article proves useful in keeping you updated. Please feel free to reach out if you have any questions, as we are happy to provide support.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[WIP]Private Subnet halted, stopped creating blocks.</title>
      <dc:creator>Raghuram Dharanipathy</dc:creator>
      <pubDate>Tue, 16 May 2023 12:36:22 +0000</pubDate>
      <link>https://www.xdc.dev/raghuram/xdposchain-halted-stopped-creating-blocks-3fgn</link>
      <guid>https://www.xdc.dev/raghuram/xdposchain-halted-stopped-creating-blocks-3fgn</guid>
      <description>&lt;p&gt;We started private blockchain using &lt;a href="https://github.com/XinFinOrg/XDPoSChain"&gt;XDPoSChain&lt;/a&gt;. The private chain halted creating blocks today(16th May 2023), there is no error in /var/log/syslog file and the chain's log file.&lt;/p&gt;

&lt;p&gt;The private chain stopped at approx 467165 blocks. Could someone let me know the root cause for sudden halt in creating blocks.&lt;/p&gt;

&lt;p&gt;Raised a PR in &lt;a href="https://github.com/XinFinOrg/XDPoSChain/issues/264"&gt;XDPoSChain&lt;/a&gt; git. Documents are attached in the PR.&lt;/p&gt;

</description>
      <category>xdc</category>
      <category>xinfin</category>
      <category>pli</category>
      <category>plugin</category>
    </item>
    <item>
      <title>Enable secure websocket(WSS)&amp;(https) for full node using Nginx</title>
      <dc:creator>Raghuram Dharanipathy</dc:creator>
      <pubDate>Tue, 09 May 2023 17:46:30 +0000</pubDate>
      <link>https://www.xdc.dev/raghuram/enable-secure-webscoketwsshttps-for-full-node-using-nginx-240m</link>
      <guid>https://www.xdc.dev/raghuram/enable-secure-webscoketwsshttps-for-full-node-using-nginx-240m</guid>
      <description>&lt;p&gt;This article gives you the concise information about setting up of secured websocket(WSS) for your full node. &lt;/p&gt;

&lt;p&gt;Setting up of Nginx and the configuration tweaking needed for https is clearly mentioned in "&lt;a href="https://www.xdc.dev/raghuram/how-to-configure-ssl-for-xdc-private-chain-on-server-with-nginx-apa"&gt;How to configure SSL for XDC private chain on server with Nginx&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;Tweaking needed for enabling WSS in Nginx configuration file is given below.&lt;/p&gt;

&lt;p&gt;Now you need to edit the NGINX configuration file &lt;code&gt;/etc/nginx/sites-enabled/default&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

upstream websocket {
   server 127.0.0.1:8888;
}
server {


        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;
    server_name &amp;lt;domainName&amp;gt;; # managed by Certbot


        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
                proxy_pass http://localhost:8989;
        }

       location /websocket {
            proxy_pass http://websocket;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            proxy_set_header Host $host;
        }


    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/xdcprivate.goplugin.co/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/xdcprivate.goplugin.co/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
    if ($host = &amp;lt;domainName&amp;gt;) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        listen 80 ;
        listen [::]:80 ;
    server_name &amp;lt;domainName&amp;gt;;
    return 404; # managed by Certbot


}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We use a proxy_pass directive to proxy traffic from an encrypted 443 HTTPS port to node port 8989 on our server instance without exposing it publicly.&lt;/p&gt;

&lt;p&gt;Now verify that the config is correct:&lt;br&gt;
&lt;code&gt;sudo nginx -t&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;and restart the NGINX process to apply changes:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo service nginx restart&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can check if your full node is available via a secure HTTPS &amp;amp; WSS connection.&lt;/p&gt;

</description>
      <category>xdc</category>
      <category>plugin</category>
      <category>pli</category>
    </item>
    <item>
      <title>How to configure SSL for XDC private chain on server with Nginx</title>
      <dc:creator>Raghuram Dharanipathy</dc:creator>
      <pubDate>Thu, 04 May 2023 16:49:16 +0000</pubDate>
      <link>https://www.xdc.dev/raghuram/how-to-configure-ssl-for-xdc-private-chain-on-server-with-nginx-apa</link>
      <guid>https://www.xdc.dev/raghuram/how-to-configure-ssl-for-xdc-private-chain-on-server-with-nginx-apa</guid>
      <description>&lt;p&gt;This article gives step by step method to implement SSL for xdc node RPC.&lt;/p&gt;

&lt;p&gt;We will see how we can safely expose the API to public by adding by proxing JSON-RPC traffic with NGINX.&lt;/p&gt;

&lt;p&gt;You’ll need a domain to implement this solution. It can be a root domain or a subdomain. You have to add an A DNS record pointing to the IP of your EC2 instance. It is recommended to use an Elastic IP address so that the address would not change if you have to change the instance configuration.&lt;/p&gt;

&lt;p&gt;Next, inside the instance, you have to install the necessary packages:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt-get install nginx apache2-utils&lt;br&gt;
sudo apt-get install python3-certbot-nginx&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can now generate an SSL certificate and initial NGINX configuration by running:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo certbot --nginx -d &amp;lt;domainName&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To automatically renew your certificate add this line to /etc/crontab file:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;@monthly root certbot -q renew&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once you complete these steps, you should see an NGINX welcome screen on your domain:&lt;/p&gt;

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

&lt;p&gt;Now you need to edit the NGINX configuration file &lt;code&gt;/etc/nginx/sites-enabled/default&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {


        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;
    server_name &amp;lt;domainName&amp;gt;; # managed by Certbot


        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
                proxy_pass http://localhost:8546;
        }


    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/xdcprivate.goplugin.co/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/xdcprivate.goplugin.co/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
    if ($host = &amp;lt;domainName&amp;gt;) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        listen 80 ;
        listen [::]:80 ;
    server_name &amp;lt;domainName&amp;gt;;
    return 404; # managed by Certbot


}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;The SSL certificate files are automatically generated by the certbot command&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We use a proxy_pass directive to proxy traffic from an encrypted 443 HTTPS port to Geth node port 8545 on our server instance without exposing it publicly.&lt;/p&gt;

&lt;p&gt;Now verify that the config is correct:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nginx -t&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;and restart the NGINX process to apply changes:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo service nginx restart&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The default welcome page should no longer be accessible. You can check if your full node is available via a secure HTTPS connection.&lt;/p&gt;

&lt;p&gt;You can use this RPC link &lt;code&gt;https://&amp;lt;domainName&amp;gt;&lt;/code&gt; in your XDCPay wallet to create a new profile as "private chain" and fill other details like your chainID etc., as mentioned below.&lt;/p&gt;

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

&lt;p&gt;Once your new Network profile is saved, then using the Network profile deploy a simple contract using remix and check for the successfull deployment. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>XDC Private Blockchain Setup - Guide</title>
      <dc:creator>Raghuram Dharanipathy</dc:creator>
      <pubDate>Wed, 29 Mar 2023 13:47:16 +0000</pubDate>
      <link>https://www.xdc.dev/raghuram/xdc-private-blockchain-setup-guide-4o04</link>
      <guid>https://www.xdc.dev/raghuram/xdc-private-blockchain-setup-guide-4o04</guid>
      <description>&lt;p&gt;This information will guide individuals in setting up XDC private blockchain. The steps mentioned in this writeup are executed and tested on Ubuntu Linux 20.04 LTS version.&lt;/p&gt;

&lt;h1&gt;
  
  
  XDC Private Blockchain setup steps
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Server Requirement
&lt;/h2&gt;

&lt;p&gt;OS version: Ubuntu 20.04&lt;br&gt;
   RAM : Minimum 16Gb, Better 32Gb&lt;br&gt;
   STORAGE : 50Gb&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Install golang
&lt;/h2&gt;

&lt;p&gt;Please refer to the &lt;a href="https://go.dev/doc/install"&gt;install&lt;/a&gt; page. Go Version used in setting up XDC private blockchain is &lt;code&gt;go1.20.2&lt;/code&gt;.&lt;br&gt;
Remember to set environment variables:&lt;br&gt;
   GOPATH=/home/ubuntu/go&lt;br&gt;
   GOROOT=/usr/local/go&lt;/p&gt;
&lt;h2&gt;
  
  
  3. Prepare XinFin client
&lt;/h2&gt;

&lt;p&gt;Untill "pr 238" is merged in XinFinOrg github, you can use this Repo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ${HOME}
git clone https://github.com/GoPlugin/PLI_XDC_Private_Blockchain.git
cd ${HOME}/PLI_XDC_Private_Blockchain/XDPoSChain
make all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Create genesis
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ${HOME}/PLI_XDC_Private_Blockchain/XDPoSChain/build/bin
./puppeth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.1 Input XDPoS as network name
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Please specify a network name to administer (no spaces or hyphens, please)
&amp;gt; XDPoS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.2 Input 2 to configure new genesis
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What would you like to do? (default = stats)
 1. Show network stats
 2. Configure new genesis
 3. Track new remote server
 4. Deploy network components
&amp;gt; 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.3 Input 3 to select XDPoS
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Which consensus engine to use? (default = XDPoS)
 1. Ethash - proof-of-work
 2. Clique - proof-of-authority
 3. XDPoS - delegated-proof-of-stake
&amp;gt; 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.4 Input 2 as block time
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;How many seconds should blocks take? (default = 2)
&amp;gt; 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.5 Input 2000 as reward
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;How many Ethers should be rewarded to masternode? (default = 10)
&amp;gt; 2000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.6 Input an address for first masternode
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Who own the first masternodes? (mandatory)
&amp;gt; xdc85f33E1242d87a875301312BD4EbaEe8876517BZ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.7 Input three addresses for signers
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Which accounts are allowed to seal (signers)? (mandatory at least one)
&amp;gt; xdc757f225273eba574196ef04f6c22bcc3ec623adc
&amp;gt; xdc09c1a2b3c620665ebda5aefcf51b775073b3be60
&amp;gt; xdccfb27876e117bcee77085c984f9042f4d43ada13
&amp;gt; xdc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mention 3 addresses: (These addresses should be from your XDCPay Wallet Account, without xdc prefix.)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;757f225273eba574196ef04f6c22bcc3ec623adc&lt;/li&gt;
&lt;li&gt;09c1a2b3c620665ebda5aefcf51b775073b3be60&lt;/li&gt;
&lt;li&gt;cfb27876e117bcee77085c984f9042f4d43ada13&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4.8 Input 900 as blocks per epoch
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;How many blocks per epoch? (default = 900)
&amp;gt; 900
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.9 Input 5 as gap
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;How many blocks before checkpoint need to prepare new set of masternodes? (default = 450)
&amp;gt; 5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.10 Input foundation address
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What is foundation wallet address? (default = xdc0000000000000000000000000000000000000068)
&amp;gt; xdc50a1c6bc2156499cfda614a0e9855ba1758bf321
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mention an address: 50a1c6bc2156499cfda614a0e9855ba1758bf321 without xdc prefix. (This address is from your XDCPay Wallet Account)&lt;/p&gt;

&lt;h3&gt;
  
  
  4.11 Input three addresses for foudation MultiSignWallet
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Which accounts are allowed to confirm in Foundation MultiSignWallet?
&amp;gt; xdcd9ac740163cc633c05b00c589eb7c9997925511b
&amp;gt; xdc4fe0fb8578841584a3693c010c455fd8a056b7d2
&amp;gt; xdc90597dbfdef58819fae19af21d40c03e4315bb9d
&amp;gt; xdc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.12 Input 2 as require number
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;How many require for confirm tx in Foundation MultiSignWallet? (default = 2)
&amp;gt; 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.13 Input addresses for Team MultiSignWallet
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Which accounts are allowed to confirm in Team MultiSignWallet?
&amp;gt; xdcd9ac740163cc633c05b00c589eb7c9997925511b
&amp;gt; xdc4fe0fb8578841584a3693c010c455fd8a056b7d2
&amp;gt; xdc90597dbfdef58819fae19af21d40c03e4315bb9d
&amp;gt; xdc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mention 3 addresses: (These addresses are from your XDCPay Wallet Account, without xdc prefix.) NOTE: These are the same addresses used in step 4.11&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;d9ac740163cc633c05b00c589eb7c9997925511c&lt;/li&gt;
&lt;li&gt;4fe0fb8578841584a3693c010c455fd8a056b7d3&lt;/li&gt;
&lt;li&gt;90597dbfdef58819fae19af21d40c03e4315bb9e&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4.14 Input 2 as require number
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;How many require for confirm tx in Team MultiSignWallet? (default = 2)
&amp;gt; 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.15 Input address for swap wallet
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What is swap wallet address for fund 55m XDC?
&amp;gt; xdc90597dbfdef58819fae19af21d40c03e4315bb9e
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mention an address: 90597dbfdef58819fae19af21d40c03e4315bb9e without xdc prefix.(This address is from your XDCPay Wallet Account)&lt;/p&gt;

&lt;h3&gt;
  
  
  4.16 Input some addresses to prefund
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Which accounts should be pre-funded? (advisable at least one)
&amp;gt; xdcd756f8cd4083c86497622c0c6193bdfe860f04ez
&amp;gt; xdc0801590680024aa5b4499226947276f5e327b72a
&amp;gt; xdc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mention some addresses: (These addresses are from your XDCPay Wallet Account, without xdc prefix)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;d756f8cd4083c86497622c0c6193bdfe860f04ez&lt;/li&gt;
&lt;li&gt;0801590680024aa5b4499226947276f5e327b72a&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4.17 Input network ID
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Specify your chain/network ID if you want an explicit one (default = random)
&amp;gt; 111
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.18 Export the genesis file
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What would you like to do? (default = stats)
 1. Show network stats
 2. Manage existing genesis
 3. Track new remote server
 4. Deploy network components
&amp;gt; 2

 1. Modify existing fork rules
 2. Export genesis configuration
 3. Remove genesis configuration
&amp;gt; 2

Which file to save the genesis into? (default = XDPoS.json)
&amp;gt; XDPoS.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Select 2 to manage existing genesis.&lt;/li&gt;
&lt;li&gt;Select 2 to export genesis configuration&lt;/li&gt;
&lt;li&gt;Enter genesis filename: XDPOS.json&lt;/li&gt;
&lt;li&gt;Press CtrL + C to exit&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The gensis file is saved to: &lt;code&gt;${HOME}/XDPoSChain/build/bin/XDPoS.json&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.19 Modify the genesis file
&lt;/h3&gt;

&lt;p&gt;Edit the genesis file &lt;code&gt;${HOME}/XDPoSChain/build/bin/XDPoS.json&lt;/code&gt;, add the below line:&lt;br&gt;
&lt;code&gt;"constantinopleBlock": 4,&lt;/code&gt;&lt;br&gt;
under the line which has &lt;code&gt;"eip155Block": 3&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  5. Setup bootnode
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ${HOME}/XDPoSChain/build/bin
./bootnode -genkey bootnode.key
./bootnode -nodekey ./bootnode.key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Copy bootnode information from the output of above mentioned command.&lt;br&gt;
&lt;code&gt;enode://enode://fa88a0faf3f57a5911e287c12326f5a50adf960f4e8e0cc8ce2287ac04b49873c6bb7c144113d9fcae15f40be9c281a3404ea3cc72c29fd4556fe2e3e4ebfa8f@[127.0.0.1]:30301&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then press Ctrl+C to stop bootnode program.&lt;/p&gt;
&lt;h2&gt;
  
  
  6. Start the masternodes
&lt;/h2&gt;
&lt;h3&gt;
  
  
  6.1 Setup Local_DPoS_Setup
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;cd ${HOME}/Local_DPoS_Setup&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  6.2 Copy genesis and bootkey files
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cp ${HOME}/XDPoSChain/build/bin/XDPoS.json ${HOME}/Local_DPoS_Setup/genesis/
cp ${HOME}/XDPoSChain/build/bin/bootnode.key ${HOME}/Local_DPoS_Setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  6.3 Setup ENODE and private keys
&lt;/h3&gt;

&lt;p&gt;Edit file &lt;code&gt;${HOME}/Local_DPoS_Setup/.env&lt;/code&gt;, add 4 private keys(of 1 master node, 3signer nodes as given in step 4.6, 4.7) without 0x prefix:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ENODE=&amp;lt;ENODE_VALUE&amp;gt;
PRIVATE_KEY_0=&amp;lt;KEY_0&amp;gt;
PRIVATE_KEY_1=&amp;lt;KEY_1&amp;gt;
PRIVATE_KEY_2=&amp;lt;KEY_2&amp;gt;
PRIVATE_KEY_3=&amp;lt;KEY_3&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  6.4 Start private networks
&lt;/h3&gt;

&lt;p&gt;Edit file &lt;code&gt;${HOME}/Local_DPoS_Setup/start-3-signers-networks.sh&lt;/code&gt;, edit line number 21 to include your XDPoS.json file&lt;br&gt;
&lt;code&gt;./start-3-signers-networks.sh&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6.5 Verify private networks
&lt;/h3&gt;

&lt;p&gt;Once the node starts, wait for the block number * 4 times the blocks per epoch as given under the topic 4.8.&lt;br&gt;
If, the node persists beyond this threshold then the private blockchain is ready for performing transactions.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Configure XDCPay
&lt;/h2&gt;

&lt;h3&gt;
  
  
  7.1 Configure the RPC, chain ID
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Add a new Network under "Network Settings"&lt;/li&gt;
&lt;li&gt;Network Name =&amp;gt; Private Blockchain&lt;/li&gt;
&lt;li&gt;New RPC URL =&amp;gt; http://:&lt;/li&gt;
&lt;li&gt;Chain ID =&amp;gt; As given in topic 4.17&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;IMPORTANT: XDC Private Blockchain need to have 3 or 5 signer as mentioned under "4.7" topic. If we try to set it up using 2 or 4 signer node then we will have brain split as mentioned in this &lt;a href="https://github.com/XinFinOrg/XDPoSChain/pull/238#issuecomment-1473551663"&gt;link&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[Solved]Smart contract Verify&amp;Publish errored out in Apothem explorer</title>
      <dc:creator>Raghuram Dharanipathy</dc:creator>
      <pubDate>Wed, 15 Mar 2023 12:27:30 +0000</pubDate>
      <link>https://www.xdc.dev/raghuram/smart-contract-verifypublish-errored-out-in-apothem-explorer-4n4</link>
      <guid>https://www.xdc.dev/raghuram/smart-contract-verifypublish-errored-out-in-apothem-explorer-4n4</guid>
      <description>&lt;p&gt;Hello Members,&lt;/p&gt;

&lt;p&gt;While doing verification of smart contract, the API(&lt;a href="https://explorer.apothem.network/api/contracts"&gt;https://explorer.apothem.network/api/contracts&lt;/a&gt;) of Apothem explorer has failed, due to that we are unable to Verify&amp;amp;publish and the page is loading forever. &lt;/p&gt;

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

&lt;p&gt;Could someone fix this issue in "&lt;a href="https://explorer.apothem.network/"&gt;https://explorer.apothem.network/&lt;/a&gt;"? So, I can verify &amp;amp; publish the contract.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[WIP]XDC private blockchain Fail to create tx sign for signer error</title>
      <dc:creator>Raghuram Dharanipathy</dc:creator>
      <pubDate>Mon, 20 Feb 2023 09:20:37 +0000</pubDate>
      <link>https://www.xdc.dev/raghuram/xdc-private-blockchain-fail-to-create-tx-sign-for-signer-error-5ck</link>
      <guid>https://www.xdc.dev/raghuram/xdc-private-blockchain-fail-to-create-tx-sign-for-signer-error-5ck</guid>
      <description>&lt;p&gt;Hello Fellow Members,&lt;/p&gt;

&lt;p&gt;I am getting the below mentioned error while running XDC private masternode.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ERROR[02-20|03:51:49] Fail to add tx sign to local pool.       error="nonce too low" number=120 hash=0x9382c04e84120118b80511fe5919005232c6e9853df37d1793d1c22dcaf4d8bb from=xdc757f225273eBA574196EF04f6c22bCC3Ec623aDB nonce=117&lt;br&gt;
ERROR[02-20|03:51:49] Fail to create tx sign for signer        error=err&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Could someone throw some light on resolving this issue.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Proof of Reserve in Plugin</title>
      <dc:creator>Raghuram Dharanipathy</dc:creator>
      <pubDate>Fri, 27 Jan 2023 05:38:15 +0000</pubDate>
      <link>https://www.xdc.dev/raghuram/proof-of-reserve-in-plugin-327j</link>
      <guid>https://www.xdc.dev/raghuram/proof-of-reserve-in-plugin-327j</guid>
      <description>&lt;p&gt;Plugin is working on to provide the PoR as a service to crypto based centralized exchange and other crypto backed businesses. PoR in Plugin provides cryptographical attestation to the audit result of the reserve. The hash generated out of the audit result is checked periodically with the latest state of the audit from the audit firm. &lt;/p&gt;

&lt;p&gt;Plugin has implemented the PoR in Staking for yield farming use case. In yield farming our node operators staking &amp;amp; re-staking assets were aggregated and provided in a transparent manner. Through this approach we gained the confidence of our stakeholders and also our transparency in publishing the reserve has got laurels across our community.&lt;/p&gt;

&lt;p&gt;Having said that, similar approach will be applied on other crypto backed and fiat backed stable coins. There are many crypto backed assets in the  market , which requires Proof of Reserve to bring transparency and entrust to their stakeholders. In implementing this service the fintech institutions which guard the reserve and provide the audit service will be part of the ecosystem, to bring real time data for periodical verification. &lt;/p&gt;

&lt;p&gt;Let’s get into the intricacies of “Proof of Reserve”, to understand what Plugin is trying to offer!! &lt;/p&gt;

&lt;h2&gt;
  
  
  What is Proof of Reserve?
&lt;/h2&gt;

&lt;p&gt;Decentralized finance, or "DeFi", is a rapidly growing sector of the cryptocurrency industry that enables financial transactions to occur on a decentralized, blockchain-based network. One of the key features of DeFi is the concept of &lt;strong&gt;"proof of reserve"&lt;/strong&gt;, which is a mechanism used to ensure that a decentralized platform has the assets it claims to have in order to back its operations.&lt;/p&gt;

&lt;p&gt;Proof of reserve is a way for a DeFi platform to demonstrate to its users that it holds a certain amount of assets, such as cryptocurrencies, in reserve. This is important because it gives users confidence that their investments or transactions will be backed by real assets, rather than just being a promise on a whitepaper.&lt;/p&gt;

&lt;p&gt;There are several different ways that a DeFi platform can prove its reserve. One common method is through transparency and publicly accessible smart contract. By making its reserve holdings transparent, a platform can demonstrate that it has the assets it claims to have and that they are being properly secured.&lt;/p&gt;

&lt;h2&gt;
  
  
  Proof of Assets (PoA)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The simplest form of proving asset ownership is for an exchange to claim a wallet, and then make a transaction with the crypto inside of it.&lt;/li&gt;
&lt;li&gt;By digitally signing a transaction, the exchange proves it controls the private keys and thus owns the wallet.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Proof of Liabilities (PoL) and Merkle Trees
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Proof of Liabilities in simpler terms, funds an organization owes its customers.&lt;/li&gt;
&lt;li&gt;Publishing Proof of Liabilities for any organization in crypto space has a significant risk of exposing the user name and user deposits.&lt;/li&gt;
&lt;li&gt;To mitigate the risk, Proof of Liabilities is carried out with the help of Merkle Trees.&lt;/li&gt;
&lt;li&gt;In a Merkle tree, data about each individual depositor (name + balance of deposits) is recorded as “leaves.” Usernames are cryptographically converted into data called hashes to provide a layer of protection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/qcGo2X1mqpjB_mEl7AgbBl36BSNgMOYasW3SfXg-yVI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2xiMzFnaDFkdzZr/azZzeWwxY3RpLmpw/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/qcGo2X1mqpjB_mEl7AgbBl36BSNgMOYasW3SfXg-yVI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2xiMzFnaDFkdzZr/azZzeWwxY3RpLmpw/Zw" alt="Merkle Tree" width="880" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Proof Of Reserve
&lt;/h2&gt;

&lt;p&gt;Proof of Reserves is simply the audit of a firm’s funds by a third party. During the process of PoR, an exchange provides information to demonstrate its ability to cover user withdrawals with assets held in its reserves. The auditor then publishes its findings for the public.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does Proof of Reserve works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If a crypto entity can show it owns a specific wallet, this would provide the requisite Proof of Assets (PoA).&lt;/li&gt;
&lt;li&gt;If it can also attest to the sum of user deposits, this would fulfill a Proof of Liabilities (PoL).&lt;/li&gt;
&lt;li&gt;Together, these confirm what the community really hopes to ensure: Proof of Reserve. Thus &lt;strong&gt;PoR&lt;/strong&gt; = &lt;strong&gt;PoA&lt;/strong&gt; + &lt;strong&gt;PoL&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Limitations of Proof of Reserves:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;First, PoR only provides a snapshot in time of current holdings. This does not prevent institutions from moving assets around before and after the PoR audit.&lt;/li&gt;
&lt;li&gt;Another limitation of PoR is scope since PoR only assures a company's holdings and liabilities (if done right) at a moment in time, and not other risks. Companies can still be vulnerable to other factors such as bad economic environment, poor internal management, or even hacks.&lt;/li&gt;
&lt;li&gt;Finally, audits do rely on a third party to verify that everything is in order. That means that, in a space where decentralization and trustlessness are prized, a little trust in third parties is necessary when conducting PoR.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In conclusion, proof of reserve is a crucial aspect of decentralized finance. It gives users confidence in the platform's ability to meet its obligations, and helps to maintain the stability of the platform. Platforms can prove their reserves through transparency and publicly accessible smart contract, or by using third-party auditors to verify their reserve holdings. As the DeFi space continues to grow and evolve, proof of reserve will likely become an even more important consideration for users and platforms alike.&lt;/p&gt;

</description>
      <category>xdc</category>
      <category>pli</category>
      <category>plugin</category>
    </item>
    <item>
      <title>[Resolved]xinfin remix not responding</title>
      <dc:creator>Raghuram Dharanipathy</dc:creator>
      <pubDate>Thu, 22 Dec 2022 08:35:04 +0000</pubDate>
      <link>https://www.xdc.dev/raghuram/xinfin-remix-not-responding-4mo0</link>
      <guid>https://www.xdc.dev/raghuram/xinfin-remix-not-responding-4mo0</guid>
      <description>&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;I am unable to open up &lt;a href="https://remix.xinfin.network/"&gt;https://remix.xinfin.network/&lt;/a&gt;, it is giving "Connection timed out Error".&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
