What is "Web 3.0"?

Giving myself a crash course into web 3.0. These are my notes.
  1. As a web 2.0 dev, I want a slim way to break into 3.0
  2. I'm primiarily a JS developer, but have been programming my whole life.
  3. I'm very confused at the tech behind web 3, but I'm starting to see the value
  4. NFT's have opened my eyes (this is written Nov 28th, 2021) to 3.0, specifically the utility side of things
  5. Right now, my take: it looks like Gaming is going to be the spearhead of everything, as is fintech in general.
  6. My goal: I want to look at things through my B2B / Marketing / Adtech lens, to serve an audience with a small tool. An MVP I can show people I know what I'm talking about from the tech and the value prop standpoint.

The resources I've found to get started wrapping my head around things.

I googled "solidity 101". Why? It's what I've seen people say is a whats used to make what is known as "smart contracts". I think it's a programming language, or syntax I've got to learn. What is a smart contract, though? From my naive understanding: it's data inside of a database.. But this data, and the database, are blockchains. Publically availale, but not able to be edited. It's a write-only database that multiple parties are responsible for. This is how web 2.0 apps differ from the web 3.0 "DAPPS", as the database (blockchain) is distributed amongst

  • Solidity 101: Intro to Ethereum Smart Contracts and Solidity

    Notes: very cool, there is a whole IDE dedicated to writing Solidity ("Remix"). This gets me even more excited, as it feels even more attainable. The simple walk-through of Remix has a lot of familararity to me: a similar layout to vscode, terms like compiler that will help me build ".sol" files. Deploying means to put that .sol file onto a blockchain. All of this reminds me of simple CRUD from web 2.0. I had to stop reading this article, it has broken images or gist snippets.

  • Solidity Tutorial – A Detailed Introduction

    Notes: this looks more in-depth than the above.

    This infographic is great, it's helping me wrap my head around things: Solidity Tutorial

    This article is helping me understand Etherium, what Ether is, and what Etherium Gas is. This was very confusing to me when I went to list my NFT collection for sale. It's helping me understand how "smart contracts" basically are the code that holds the business logic of that dapp.

    // SPDX-License-Identifier: GPL-3.0
    pragma solidity >=0.7.0 <0.9.0;
    /**
     * @title Storage
     * @dev Store & retrieve value in a variable
     */
    contract Storage {
        uint256 number;
        /**
         * @dev Store value in variable
         * @param num value to store
         */
        function store(uint256 num) public {
            number = num;
        }
        /**
         * @dev Return value 
         * @return value of 'number'
         */
        function retrieve() public view returns (uint256){
            return number;
        }
    }

    This is the default example from the Remix IDE, and similar to the one this article uses. Coming from a JS background, I can read this. The Storage contract has a store function, and a retrieve function. At this point I'm assuming both this .sol file, and the data it's storing, are both "immutable", and stored on the blockchain. Using semantic versioning, node.js, npm, docker.. All things thing I can carry over from my 2.0 days. The syntax feels more familiar to Lua scripting (since I'm not a C dev). The rest of this article, while informative, feels a little more in-depth than what I need. I need to wrap my head around an MVP of some sort. I need the idea: then I can return to the details of the language and it's syntax.

Phase 2: who knows...

At this point, I do actually have a better grasp (or at least my confidence is growing). My goal is still the same: build a useful MVP. Something that has a very narrow / specific use case, and deploy it. From my understanding, that will be a mix of web 2 and web 3 technologies. Something as an example that comes to mind i marckohlbrugge's pay.game.

Maybe "reverse engineering" how he did that will be more useful. Because, at this point, I cannot. I get what it does from a naive UI perspective, but not how it works. It's a simple leaderboard: the highest bidder sits on the top. I understand that loosely.. But, since this is built on the blockchain: where does this Eth actually live? Is this like, one simple smart contract, and the web app displays it's content? How does he automatically send people a NFT? Metamask/WalletConnect.. This is like the way to let users "login" and send Etherium to my DAPP. Thankfully, he actually answers a bunch of these questions and more in the About page. I found this list of technologies he used in his Tweets:

  • Solidity (programming language for Ethereum)
  • React
  • ethers.js (JS library for interacting with blockchain)
  • Pixelmator (to create pixel art)
  • After Effects (to create the NFT videos)
  • Hardhat (development environment for Solidity)
  • Remix (online IDE)
  • Chai (JS library for writing automated tests)
  • ERC1155 (NFT standard he chose, more on that later)
  • web3modal (JS library for connecting different wallets)

Here are his reccomended links to learn: https://cryptozombies.io https://buildspace.so https://hardhat.org/tutorial/ https://web3.career/learn-web3

Naive Data Model:
{
  one: { name, link, amount },
  two: { name, link, amount },
  two: { name, link, amount },
  two: { name, link, amount },
  two: { name, link, amount },
  two: { name, link, amount },
  two: { name, link, amount },
  eight: { name, link, amount },
  nine: { name, link, amount },
  ten: { name, link, amount },
}

Stopped in my tracks, at the moment by this fact: Cost of Smart Contract Deployment This means I have to be more strategic with my MVP, as I'd like to recoup that money if it costs that much.. And/or I look into potential alternatives.. Which, I'm guessing that means other Blockchains entirely, aside from Etherium. I'm going to look back into the gaming industry.