<?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>Forem: Tirtha Sarker</title>
    <description>The latest articles on Forem by Tirtha Sarker (@tirtha).</description>
    <link>https://forem.com/tirtha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F685371%2Fbfc1cca5-d706-40b8-9e2b-64a52e1545bc.png</url>
      <title>Forem: Tirtha Sarker</title>
      <link>https://forem.com/tirtha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/tirtha"/>
    <language>en</language>
    <item>
      <title>From Hollow Heritage to Hollow Commerce: How India’s Startups Reflect Our Inner Crisis</title>
      <dc:creator>Tirtha Sarker</dc:creator>
      <pubDate>Thu, 20 Mar 2025 10:46:14 +0000</pubDate>
      <link>https://forem.com/tirtha/from-hollow-heritage-to-hollow-commerce-how-indias-startups-reflect-our-inner-crisis-1b3b</link>
      <guid>https://forem.com/tirtha/from-hollow-heritage-to-hollow-commerce-how-indias-startups-reflect-our-inner-crisis-1b3b</guid>
      <description>&lt;p&gt;We are facing a crisis.&lt;/p&gt;
&lt;p&gt;A crisis not merely of technology or economic opportunity, but of the very mind and heart that guide our actions. On the surface, there appears to be an outpouring of entrepreneurship — fast grocery delivery apps, scandalous edtech valuations, micro-loan schemes disguised as digital wallets, or even mystical “solutions” that peddle superstition. Across the border, China channels its energies into manufacturing might, advanced robotics, large language models, and forward-looking fintech, establishing itself as a formidable global player. The question, then, is &lt;em&gt;why&lt;/em&gt; India, once revered for its deep intellectual heritage, has come to settle for shallow commerce, quick exits, or escapist products.&lt;/p&gt;
&lt;p&gt;To truly understand this, we must look not only at the external systems — government policies, investor biases, or educational shortcomings — but also at &lt;em&gt;ourselves&lt;/em&gt;. Is it possible that this external reality is but a mirror of our collective consciousness, shaped by fear, greed, and a desire for instant gratification?&lt;/p&gt;
&lt;p&gt;Before we jump into the rant, here’s a fun visual of the current situation:&lt;/p&gt;

&lt;h2&gt;The Crisis of Heritage and Modernity&lt;/h2&gt;
&lt;p&gt;India rightly prides itself on a history of profound scholarly pursuit — ancient universities like Nalanda and Takshashila were once global hubs of knowledge. Yet today, we see a society often content with superficial “tech successes,” while the deeper foundations of research and innovation remain undernourished. Instead of building a true knowledge economy, we sometimes default to spiritual or superstitious shortcuts: an astrology app that promises fortune, an herbal remedy brand with shaky scientific backing, or a quick-commerce startup that seeks valuations more fervently than genuine problem-solving.&lt;/p&gt;
&lt;p&gt;China, on the other hand, channels its focus into programs and companies that aim to transform fundamental sectors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deep tech and AI&lt;/strong&gt; (Alibaba, Tencent, ByteDance)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Electric mobility and energy&lt;/strong&gt; (BYD)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global manufacturing&lt;/strong&gt; (supplying countless industries worldwide)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced fintech&lt;/strong&gt; (Tencent’s palm-pay pilot)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This divergence poses a vital question: if India and China share similar population sizes, have significant pools of talent, and face similar consumer demands, why the vast gulf in the quality and impact of startups?&lt;/p&gt;
&lt;h2&gt;Leadership, Policy, and the Environment&lt;/h2&gt;
&lt;p&gt;Certainly, we can point a finger at the environment in which these startups are born:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Corrupt or Misaligned Governance&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;India’s political landscape often seems preoccupied with populist rhetoric, caste-based vote banks, or scandalous corruption.&lt;/li&gt;
&lt;li&gt;Funding for genuine R&amp;amp;D in AI, biotechnology, or core manufacturing trickles down so slowly that it barely nourishes projects with real potential.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Authoritarian Focus in China&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;China’s top-down directives can suppress freedom, yet they also thrust vast resources into strategic sectors.&lt;/li&gt;
&lt;li&gt;The state invests heavily in education, infrastructure, and research labs, ensuring that even private tech ventures can pivot quickly to advanced development once given the green light.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But is politics alone sufficient to explain the yawning gap? Look deeper, and you see a reflection of societal priorities: Where the mind is unencumbered by short-sighted rewards, large-scale innovation can flourish. Where the mind is fixated on immediate gain or steeped in superstition, only superficial ventures thrive.&lt;/p&gt;
&lt;h2&gt;Education and the Inner Question&lt;/h2&gt;
&lt;p&gt;One might argue India needs better education. True, but &lt;em&gt;what&lt;/em&gt; kind of education? A rote-learning system that churns out exam-toppers who aspire primarily to go abroad or secure safe corporate roles will not spark the fires of innovation.&lt;/p&gt;
&lt;p&gt;Real education must awaken intelligence, not just intellect. It must encourage questioning of long-held beliefs — religious, cultural, or societal. Without such questioning, the mind remains trapped in habitual patterns of self-interest and fear, producing external structures that mirror this mediocrity: from scammy EV startups to gambling apps and shady micro-lending schemes.&lt;/p&gt;
&lt;h2&gt;Examining the Root Causes&lt;/h2&gt;
&lt;p&gt;If we are honest, India’s predicament isn’t solely about a lack of capital or infrastructure. It’s also about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Risk Aversion:&lt;/strong&gt; A cultural tendency to seek safe returns and quick profits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collective Complacency:&lt;/strong&gt; A readiness to celebrate superficial success — billboard valuations, “unicorn” announcements — without demanding genuine depth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sociopolitical Tensions:&lt;/strong&gt; The continual friction of caste, religion, and regional identities that diverts collective energy from meaningful progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escapism:&lt;/strong&gt; The popularity of superstitions and “miracle solutions” as a quick fix for deeper psychological discontent.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;China’s system, while not without flaws, centralizes focus on large-scale, long-term goals. This fosters an environment for big bets on AI, robotics, electric mobility, and more.&lt;/p&gt;
&lt;h2&gt;Beyond Blame: The Inner Revolution&lt;/h2&gt;
&lt;p&gt;We must see that pointing fingers — whether at politicians, bureaucracies, or archaic beliefs — only perpetuates division. The real question is: &lt;em&gt;Are we willing to examine our own consciousness&lt;/em&gt;, our motivations, and the illusions we cling to? Without that fundamental shift, no policy or foreign investment will overhaul the very psyche that drives a society’s direction.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Self-Examination:&lt;/strong&gt; Each of us, as potential entrepreneurs, investors, students, or everyday citizens, must ask why we settle for the shallow. Are we chasing money, status, or purely cosmetic achievements?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;True Innovation vs. Imitation:&lt;/strong&gt; Does our startup dream rehash a business model from elsewhere, or does it stem from a sincere passion to solve real-world problems?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsibility to the Collective:&lt;/strong&gt; If we succeed, do we reinvest in society — improving education, environment, and governance — or merely pocket our gains and flee?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When individuals start to question and overturn deep-seated ignorance, the external environment naturally shifts. Venture capital can be used to fund meaningful research rather than empty hype. Governments can be held accountable to allocate resources ethically. Education can nurture exploration rather than rote memorization. Remember these pointers when you talk to your MPs &amp;amp; MLAs next time.&lt;/p&gt;
&lt;h2&gt;A Call to the Youth&lt;/h2&gt;
&lt;p&gt;To the younger generation all across India: you hold the key to a genuine renaissance. True progress is not found in quick-commerce clones or superficial service apps alone. It arises when your consciousness is free from fear and greed, allowing genuine creativity to bloom.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Aspire Higher:&lt;/strong&gt; Bring integrity and depth to your ideas. Study what the world truly needs, not just what a hype cycle demands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Engage in Fundamental Research:&lt;/strong&gt; Seek breakthroughs in AI, renewable energy, biotech — areas that can propel India and the world forward.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community and Ethics:&lt;/strong&gt; In success, remember the responsibility you carry to uplift those around you — your community, your state, your country.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Last Words&lt;/h2&gt;
&lt;p&gt;Look at your life, at the chaos we call “progress.” It’s not about politics, not about technology, not even about the marketplace — it’s about you. You want the world to change? First, see what you are doing to keep it the same. The superstitions, the mindless consumerism, the cheap thrills — all these are fed by your own insecurity, your own reluctance to question tradition and authority.&lt;/p&gt;
&lt;p&gt;What is the point of chanting ancient verses if we do not understand them? What is the gain in memorizing formulas or devoting ourselves to a quick-buck startup if our hearts remain cowardly and tethered to the trivial? If we cannot see our own illusions, we’ll keep demanding illusions from the world — be it from shady astrology apps or overvalued companies.&lt;/p&gt;
&lt;p&gt;Until we place truth and clarity above comfort and profit, the country will keep producing hollow replicas instead of authentic innovation. Ask yourself: &lt;em&gt;Am I living from a place of clarity, or am I chasing illusions — religious, economic, or social?&lt;/em&gt; The moment we become honest enough to see our complicity in this cultural stagnation, real change can begin. And that change does not come from scolding politicians or lamenting foreign success — it comes from cutting through your own attachments, your own beliefs that foster mediocrity.&lt;/p&gt;
&lt;p&gt;Wake up. Don’t just become an entrepreneur of the outer world; become an entrepreneur of your inner space. Dare to question, to unlearn, to rebel against comfortable lies. When you do, even if it’s just one individual soul at a time, the entire social fabric begins to shift. And that, dear friends, is how a dormant civilization can rediscover its brilliance.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Setting Up Ethereum Node with Docker Swarm: Step-by-Step Guide for Beginners</title>
      <dc:creator>Tirtha Sarker</dc:creator>
      <pubDate>Wed, 22 Mar 2023 07:13:26 +0000</pubDate>
      <link>https://forem.com/tirtha/setting-up-ethereum-node-with-docker-swarm-step-by-step-guide-for-beginners-3kc0</link>
      <guid>https://forem.com/tirtha/setting-up-ethereum-node-with-docker-swarm-step-by-step-guide-for-beginners-3kc0</guid>
      <description>&lt;p&gt;Do you find the thought of setting up your own Ethereum node pretty daunting and complex? You've come to the right place! In this article, we'll walk you through a simple, step-by-step process to get your Ethereum node up and running using Docker Swarm. Docker Swarm makes deploying, managing, and scaling your node in a decentralized network a breeze. So, let's dive in and get started 🚀&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Before we kick things off, make sure you've got these prerequisites covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker and Docker Swarm installed on your system&lt;/li&gt;
&lt;li&gt;A basic understanding of Docker, Docker Swarm, and Ethereum node
If you need a hand with these, check out the official documentation:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Docker:&lt;/strong&gt; &lt;a href="https://docs.docker.com/get-docker/"&gt;https://docs.docker.com/get-docker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ethereum nodes:&lt;/strong&gt; &lt;a href="https://ethereum.org/nodes/"&gt;https://ethereum.org/nodes/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create a Docker Swarm Service 🐳
&lt;/h2&gt;

&lt;p&gt;First up, let's create a new service in your Docker Swarm with this simple command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker service create --name ethereum-node --replicas 1 --publish 30303:30303 --publish 8545:8545 --publish 8546:8546 --mount type=volume,source=ethereum-data,destination=/root/.ethereum ethereum/client-go

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

&lt;/div&gt;



&lt;p&gt;This command sets up a new Ethereum node service with all the necessary ports and a volume for data storage. Easy-peasy!&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Initialize your Ethereum Node 🌐
&lt;/h2&gt;

&lt;p&gt;Next, initialize your Ethereum node with the main-net genesis block using this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker exec -it $(docker ps --filter name=ethereum-node -q) geth --datadir /root/.ethereum init /root/.ethereum/genesis.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Just remember to replace /root/.ethereum/genesis.json with the path to your custom genesis file if needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Start the Ethereum Node 🏃‍♂️
&lt;/h2&gt;

&lt;p&gt;Time to fire up your Ethereum node! Run this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker exec -it $(docker ps --filter name=ethereum-node -q) geth --datadir /root/.ethereum --syncmode "fast" --http --http.addr "0.0.0.0" --http.port 8545 --http.api "eth,net,web3" --http.corsdomain "*"

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

&lt;/div&gt;



&lt;p&gt;This sets the node to sync in "fast" mode, enables the HTTP RPC API, and allows cross-origin requests.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CWx9Pskx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wgi955z2071cy4qeu3qu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CWx9Pskx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wgi955z2071cy4qeu3qu.gif" alt="lets go" width="260" height="106"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Check Node Synchronization 🔄
&lt;/h2&gt;

&lt;p&gt;Now, let's monitor your Ethereum node's progress. Execute the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker exec -it $(docker ps --filter name=ethereum-node -q) geth --datadir /root/.ethereum attach --exec 'eth.syncing'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And now you can see the current syncing status and progress.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Scaling your Ethereum Node 📈
&lt;/h2&gt;

&lt;p&gt;The beauty of Docker Swarm is how easy it is to scale your Ethereum node. Just increase the number of replicas using this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker service update --replicas _N_ ethereum-node
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace N with the desired number of replicas, and you're good to go!&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Updating your Ethereum Node ⬆️
&lt;/h2&gt;

&lt;p&gt;Keep your Ethereum node up-to-date by running this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker service update --image ethereum/client-go:NEW_VERSION ethereum-node
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;NEW_VERSION&lt;/code&gt; with the desired version tag, and you'll have the latest and greatest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Monitoring your Ethereum Node with Style 🖥
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QgXx7dye--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/58nrg8ksu6nr7h52om1e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QgXx7dye--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/58nrg8ksu6nr7h52om1e.jpg" alt="sam monitoring" width="880" height="440"&gt;&lt;/a&gt;&lt;br&gt;
To keep an eye on your Ethereum node, use tools like Portainer, Swarmpit, or Dokku. These user-friendly interfaces make managing and monitoring your Docker Swarm services a piece of cake!&lt;/p&gt;

&lt;h2&gt;
  
  
  That's a wrap!﻿ 🎉
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZURxU6qK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gb9k6zsq4w5f9tpbxq9m.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZURxU6qK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gb9k6zsq4w5f9tpbxq9m.jpeg" alt="vitalik date" width="500" height="666"&gt;&lt;/a&gt;&lt;br&gt;
Congrats, you've just set up an Ethereum node using Docker Swarm! Now you are ready to become a decentralization vigilante. If you found this guide helpful, feel free to share it with fellow developers and keep BUIDLing! 💪&lt;/p&gt;

&lt;p&gt;﻿&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>webdev</category>
      <category>docker</category>
    </item>
    <item>
      <title>How Upgradable NFTs Will Change Collector Engagement</title>
      <dc:creator>Tirtha Sarker</dc:creator>
      <pubDate>Wed, 06 Oct 2021 10:21:19 +0000</pubDate>
      <link>https://forem.com/tirtha/how-upgradable-nfts-will-change-collector-engagement-6ig</link>
      <guid>https://forem.com/tirtha/how-upgradable-nfts-will-change-collector-engagement-6ig</guid>
      <description>&lt;p&gt;2021 has seen the next-level digitization of art &amp;amp; entertainment on the blockchain. The non-fungible asset class (NFTs) started its journey in 2017. Back then, the 1st  wave adopters were a handful of people invested in projects like cryptopunks &amp;amp; cryptokitties. &lt;/p&gt;

&lt;p&gt;Today NFTs have become an internet phenomena among investors of all age groups. Especially the younger generations are taking a deep interest into learning about trending, upcoming, and upgradable digital asset projects. There’s a good chance that you already own an NFT or know someone who does. &lt;/p&gt;

&lt;p&gt;Images, videos, digital art, music - anything that can be rendered in a digital form - has been minted into unique NFTs on the blockchain. The NFT trend has brought over &lt;a href="https://www.reuters.com/technology/nft-sales-volume-surges-25-bln-2021-first-half-2021-07-05/?ref=hackernoon.com" rel="noopener noreferrer"&gt;$2.5 billion&lt;/a&gt; in sales this year. A historical moment was made when a &lt;a href="https://www.theverge.com/2021/3/11/22325054/beeple-christies-nft-sale-cost-everydays-69-million?ref=hackernoon.com" rel="noopener noreferrer"&gt;digital artwork was sold for $69 million&lt;/a&gt; as an NFT through an auction hosted by Christie’s.&lt;/p&gt;

&lt;p&gt;The new wave of adoption currently has major backing from celebrities across various industries. &lt;br&gt;
We saw:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Twitter CEO, &lt;a href="https://www.cnbc.com/2021/03/22/jack-dorsey-sells-his-first-tweet-ever-as-an-nft-for-over-2point9-million.html?ref=hackernoon.com" rel="noopener noreferrer"&gt;Jack Dorsey selling one of his tweets as an NFT&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Rapper Eminem joined the league introducing his “&lt;a href="https://www.eminem.com/news/shadycon-x-nifty-gateway?ref=hackernoon.com" rel="noopener noreferrer"&gt;Shady Con&lt;/a&gt;” NFT collection drop in April.&lt;/li&gt;
&lt;li&gt;Serial entrepreneur Gary Vee was one of the early birds among his peers to realize the potential and launched his first collection &lt;a href="https://www.garyvaynerchuk.com/how-to-buy-your-first-veefriends/?ref=hackernoon.com" rel="noopener noreferrer"&gt;VeeFriends&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;NBA top shots, LaLiga cards - the sports fraternity has also become an active part of the market.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F18365101%2F136182646-1af7be6b-cbb2-4745-9424-3c6c1542aeb3.jpeg" alt="Img-1"&gt;
Right now, the market for NFTs is as speculative as any other new digital asset. Here, the motivation is to obtain something unique from the crypto world and have the conviction of getting it appraised to a higher value in the future. NFTs are limited to an experience of ownership and being tradable, while proper use cases beyond that are being researched by communities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What’s Next for NFTs ?
&lt;/h2&gt;

&lt;p&gt;NFTs are powered by smart contracts on the blockchain. A good number of developers are busy solving gas reduction, network throttle problems to have an affordable and better experience with NFT smart contracts, while many are figuring out ways to make NFTs a form of utility asset. One of the considerable approaches for that is to draw gamification ideas with reward- based incentive systems. &lt;/p&gt;

&lt;p&gt;Traditional NFTs have a media associated with them which doesn’t alter under any circumstances. What if these media had a connection to real-world events? What if they had updates based on what the holder is doing in real-world events?&lt;/p&gt;

&lt;p&gt;With suitable alterations to the traditional ERC-721 contracts, it’s possible to build such fun engagements and use-cases for holders.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hello Upgradable NFTs !
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;An upgradable NFT is a non-static digital asset, that responds to&lt;br&gt;
certain events or triggers, either on-chain or off-chain, leading to a&lt;br&gt;
secure update of asset media records.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This encapsulates the central idea behind Upgradable NFTs. In the real world, there’re several mainstream scenarios where NFTs can be leveraged for daily use-cases; this will bring a mature audience and acceptance of NFTs as a pivotal technology across industries.&lt;/p&gt;

&lt;p&gt;The core trigger for upgrades on such NFTs can be external data sources provided via oracles or initiated by contract administrators or some random on-contract data payload. Based on the required outcome, NFT contracts transition their metadata &amp;amp; associated media content, properties to reflect a new state. But here I won’t go into much detail on the technical aspect for today.&lt;/p&gt;

&lt;p&gt;Some genuine use cases where upgradable NFTs can shine are:&lt;/p&gt;

&lt;h3&gt;
  
  
  🎟️ Event Tickets
&lt;/h3&gt;

&lt;p&gt;Collectors have filled their scrapbooks with concerts, conference physical tickets for years. They’re valuable memorabilias of life events.&lt;br&gt;
NFT-based concert tickets can not only become a memento but also a Proof of Attendance through upgradable NFTs. When someone attends and verifies attendance at the event location, their ticket media can reflect a memorable autograph from the artists/performer. Providing incentive to people for actually being a part of the event. The event organizers can also issue tier based upgrades based on engagement rate.&lt;/p&gt;

&lt;h3&gt;
  
  
  🥘 Food Safety Certification
&lt;/h3&gt;

&lt;p&gt;Restaurants can be issued clearance certificates as NFTs. The NFT will be dedicated to a particular location &amp;amp; branch from the relevant food safety authorities. These NFTs will not only manage data on an immutable blockchain, but will also track upgrades and changes made to a certification tier in future inspections and reviews. Mitigating any internal corruption as well. So if your local dinner went from a “C” to a “B”, that might be flashed on the digital screen in the restaurant as a cool NFT.&lt;/p&gt;

&lt;h3&gt;
  
  
  🏆 Marathon Records
&lt;/h3&gt;

&lt;p&gt;I have friends who love to run marathons. Whenever they’re in new cities, they try to find a marathon event through some event listing platform. Such platforms usually list events across cities and regions. A dedicated participant can be a proud owner of an NFT issued by the platforms, which will reflect his participation and performance records in real-time with updates. For example, if you just completed your 50th marathon, your NFT gets a special tier upgrade, which builds your community reputation.&lt;br&gt;
Participants can proudly share their achievements through a dazzling marathon NFT, a testament to their athletic spirit.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F18365101%2F136182851-b2102717-ce79-4772-aab0-c7b622250b0d.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F18365101%2F136182851-b2102717-ce79-4772-aab0-c7b622250b0d.jpeg" alt="img-2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  📄Intellectual Property
&lt;/h3&gt;

&lt;p&gt;Intellectual Properties(IP) being registered &amp;amp; documented on-chain helps resolve future disputes on authorization rights. NFTs have an opportunity to build a market here for being easy to maintain and quickly transferable. Also when we add the upgradable nature, it can have extensible benefits to make a token that can represent complex ownership relations. IP issuance bodies can provide alterations needed to the doctrine linked with the NFT. &lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Your own unique ideas and terms of execution can create a different utility scenario, the possibilities are endless. Sports, entertainment, education, research, governance - across domains, NFTs have the potential to become something substantial and beneficial for broader societal needs. But for that, we have to weigh in and identify pain points to solve and improve the current structure of institutions around. &lt;br&gt;
Driving engagements and involving holders in the process through upgradable NFTs will definitely open doors towards decentralization.&lt;/p&gt;

&lt;p&gt;The idea of making NFTs upgradable is experimental. There are no standard contracts or EIPs in the process. But as a developer, we always find ways to improve the existing resources.&lt;/p&gt;

&lt;p&gt;In the coming days, I’ll write a tutorial on how a basic Upgradable NFT contract can be created and you can use it for your dApp.&lt;/p&gt;




&lt;p&gt;This article was first published on Hackernoon:&lt;br&gt;
&lt;a href="https://hackernoon.com/how-upgradable-nfts-will-change-collector-engagement-6l5n372b" rel="noopener noreferrer"&gt;https://hackernoon.com/how-upgradable-nfts-will-change-collector-engagement-6l5n372b&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nft</category>
      <category>blockchain</category>
      <category>cryptocurrency</category>
      <category>art</category>
    </item>
    <item>
      <title>Automating Smart Contract Development with Docker</title>
      <dc:creator>Tirtha Sarker</dc:creator>
      <pubDate>Sun, 12 Sep 2021 05:52:42 +0000</pubDate>
      <link>https://forem.com/tirtha/automating-smart-contract-development-with-docker-32em</link>
      <guid>https://forem.com/tirtha/automating-smart-contract-development-with-docker-32em</guid>
      <description>&lt;p&gt;Smart contracts aren’t the easiest things to work with. The setup process to start developing involves a bunch of cumbersome, error-prone steps, which by themselves lead to hours of developer time wastage.&lt;/p&gt;

&lt;p&gt;You’ll need to set up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A local testRPC network for testing.&lt;/li&gt;
&lt;li&gt;Truffle + web3 environment for node communication and deployment.&lt;/li&gt;
&lt;li&gt;Gathering transaction receipts, logs, etc.&lt;/li&gt;
&lt;li&gt;Contract linting and staging preparation.
And a bunch of other things.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For that reason we’ll set up an automated route to make our lives easier, that will get your build, run, and test environment ready in minutes.&lt;br&gt;
For demonstration purposes, we’ll be using the metacoin project template from trufflebox.&lt;/p&gt;

&lt;p&gt;At the end of this article, you’ll have yourself an automated docker setup that will help you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run smart contract tests with testRPC.&lt;/li&gt;
&lt;li&gt;Perform deployments on your chosen network.&lt;/li&gt;
&lt;li&gt;Easily get updated migration files on your local system.&lt;/li&gt;
&lt;li&gt;Help collect data logs for future evaluation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make sure you’ve node, npm, docker &amp;amp; docker-compose installed on your system to follow along&lt;br&gt;
So let’s get started.&lt;br&gt;
First, let’s create a project directory and initiate some files:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir dockerized-smart-contracts 
&amp;amp;&amp;amp; cd dockerized-smart-contracts
npm init
mkdir src &amp;amp;&amp;amp; cd src
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now within the &lt;code&gt;src&lt;/code&gt; folder, we’ll get our primary smart contract repo. We’ll use a simple project like metacoin for demonstration purposes.&lt;br&gt;
truffle unbox metacoin&lt;/p&gt;

&lt;p&gt;If you wish to get one of the truffle suite box projects, you’ll need to have truffle installed on your local system. After truffle downloads the project repo, we’ll need to initiate a &lt;code&gt;package.json&lt;/code&gt; within the &lt;code&gt;src&lt;/code&gt; folder.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now let’s fill up the &lt;code&gt;src/package.json&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The scripts are some standard commands that we regularly use for development in our smart contract ecosystem. To know more in detail what each of those truffle commands does. You can check out truffle docs. For linting, I’ve added Solhint which is also a popular solidity linter.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "name": "truffle-metacoin-smart-contracts",
    "version": "0.1.0",
    "description": "A smart contract demo project",
    "scripts": {
        "test":"truffle test",
        "compile": "truffle compile",
        "networks": "truffle networks",
        "lint": "solhint -f table contracts/**/*.sol",
        "lint-auto-fix": "prettier --write contracts/**/*.sol",
        "coverage": "truffle run coverage",
        "eslint-auto-fix": "./node_modules/.bin/eslint --fix .",
        "deploy": "sh ./scripts/test-contract.sh",
        "deploy-rinkeby":"sh ./scripts/deploy-rinkeby.sh",
        "deploy-mainnet":"sh ./scripts/deploy-mainnet.sh"
    },
    "engines": {
        "node": "12.0.0",
        "npm": "6.9.0"
    },
    "devDependencies": {
        "chai": "^4.2.0",
        "dotenv": "^6.2.0",
        "eslint": "^5.16.0",
        "ganache-cli": "^6.9.1",
        "prettier": "^2.0.5",
        "prettier-plugin-solidity": "^1.0.0-alpha.56",
        "solhint": "^3.2.0",
        "solhint-plugin-prettier": "0.0.4",
        "solidity-coverage": "^0.7.7",
        "standard": "^12.0.1",
        "truffle": "^5.0.30",
        "@truffle/hdwallet-provider": "^1.0.0-web3one.5"
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;We’ll need to create some scripts for network deployment and logging. These scripts can be changed based on deployment &amp;amp; network requirements.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir logs
mkdir scripts &amp;amp;&amp;amp; cd scripts
touch test-contract.sh deploy-rinkeby.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now inside &lt;code&gt;test-contract.sh&lt;/code&gt; we'll write a script for testing contracts. This will create a logfile with today's date and the entire deployment transcript.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LOG_FILE=./logs/$(date "+%Y-%m-%d")-test-log.txt
echo "[ TIMESTAMP: $(date "+%H:%M-%S")" ]&amp;gt;&amp;gt;$LOG_FILE
truffle test | tee -a $LOG_FILE
echo "----------------------------------------------------------------------------------------------------------" &amp;gt;&amp;gt; $LOG_FILE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;So far so good, we can similarly write relevant scripts for deployment to other networks and log their results. Now the fun part begins, we’ll begin the docker process now.&lt;/p&gt;

&lt;p&gt;Let’s head back to our &lt;code&gt;/dockerized-smart-contracts&lt;/code&gt; directory where we had our first &lt;code&gt;package.json&lt;/code&gt;.&lt;br&gt;
We’ll create a Dockerfile &amp;amp; docker-compose file for our smart-contract project inside src.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch Dockerfile.test docker-compose.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now inside the docker file, we’ll define the layers for our smart contract repo. This dockerfile will create an image for the contract project and run the “deploy” script by default when we run a container out of that image.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM mhart/alpine-node:12
RUN apk add --no-cache make gcc g++ python
RUN apk add --update tzdata
#Change it to your timezone. This'll come handy to monitor logfiles.
ENV TZ=Asia/Kolkata
# Creating Relevant directories. 
# We decide to name our project directory as "smart-contracts"
WORKDIR /smart-contracts
RUN mkdir logs logs/test-network logs/main-network logs/test
# Copy the package.json &amp;amp; lock file &amp;amp; install the relevant packages
COPY src/package.json /smart-contracts/package.json
COPY src/package-lock.json /smart-contracts/package-lock.json
RUN npm install
# Add smart-contract relevant code to directory
COPY src/ /smart-contracts/
# Give executable permission to scripts.
RUN chmod +x ./scripts/*.sh
ENTRYPOINT ["npm", "run"]
CMD ["deploy"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now let’s setup our docker-compose.yml The compose setup will help us bundle the individual container references and link container dependencies.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3'
services:

    # Ganache-cli
  ganache:
    image: trufflesuite/ganache-cli
  # Smart contract source
  smart-contracts:
    build:
      context: .
      dockerfile: Dockerfile.test
    # The .env file should be set with necessary wallet keys and node information 
    env_file:
      - ./.env
    depends_on:
      - ganache
    # For bind mounts, make sure to add your absolute path location on your system.
    volumes:
      # Mount build folder
      - /home/user/dockerize-smart-contracts/src/build:/smart-contracts/build/
      # Mount  log files
      - /home/user/dockerize-smart-contracts/logs:/smart-contracts/logs/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Awesome, now let’s add few scripts to our &lt;code&gt;./dockerize-smart-contracts/package.json&lt;/code&gt; file. These are the primary scripts that we'll execute to set up our running containers via docker-compose.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;...
"scripts"{
"setup": "docker-compose up --no-start --build",
"start": "docker-compose run smart-contracts test &amp;amp;&amp;amp; dokcer-compose up --build -d ganache",
"stop": "docker-compose stop",
}
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now let’s first get the smart-contract project setup ready.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;That should be followed by starting the containers and deploying contracts on the test ganache network with:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run start.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The smart-contracts container instance will start along with a ganache container and execute the test cases defined within src/test.&lt;br&gt;
Just like that, we’ve our dockerized smart-contract pipeline ready.&lt;/p&gt;

&lt;p&gt;Check the github repo template here for much more features.&lt;br&gt;
The setup will help ease up your journey in the dApp world.&lt;br&gt;
Until next time, live long &amp;amp; prosper. 🖖&lt;/p&gt;

&lt;p&gt;Originally posted: &lt;a href="https://hackernoon.com/automating-smart-contract-development-with-docker-5w5735ou"&gt;https://hackernoon.com/automating-smart-contract-development-with-docker-5w5735ou&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>devops</category>
      <category>docker</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
