This is the repo of the documentations and codebase for my solidity workshop for APU Blockchain Club dated 30th of March, 2024.
Alvin Yap@Linktree
Before the workshop, ensure you have:
-
Node.js and npm installed. Link
-
Personal preference as alternative of npm - yarn
npm install -g yarn
-
Ganache for a local blockchain simulation. Link
-
Basic knowledge of JavaScript.
-
Some Sepolia Testnet ETH for testing purposes. Link
Web3 development is broadly categorized into infrastructure and application-level work:
-
Blockchain Core Developers: Involved in the design and implementations of blockchain protocols, focuses on areas such as consensus algorithms, network architecture, security measures etc
-
Client Developers: Develop and mantaining Ethereum clent software such as Nethermind / Alchemy, crucial for interacting with the Ethereum / other EVM blockchains
-
Tooling/Middleware Developers: Create development tools and middleware (e.g., Hardhat, Truffle).
-
Smart Contract Developers: Write code(smart contracts) that runs on the Ethereum Virtual Machine(EVM), creating dApps through smart contracts
-
dApps Frontend Developers: Build user interface and experience for dApps, connecting smart contracts to user-friendly web interface
-
Smart Contract Auditors: Plays a critical role in the Web3 space by thoroughly examining smart contract code to ensure its security and efficiency, preventing potential vulnarabilities and exploits
Web2 and Web3 exhibit fundamental differences in terms of application architecture design, yet there are equivalencies between them.
Understanding these differences is crucial for a Web2 full-stack developer transitioning into a Web3 developer.
-
Smart Contracts: In Web3, smart contracts are analogous to the business logic layer of Web2 applications. They autonomously execute the rules of interaction, much like a backend in a traditional web app.
-
Blockchain State/Smart Contract State: The state of a blockchain or a smart contract is akin to a Web2 database. It holds the persistent, decentralized ledger of all transactions and data, replacing the centralized databases used in Web2.
-
Web2 Authentication: Traditional web applications require a username and password, which are verified against stored credentials in a database, often with additional layers like OAuth for enhanced security.
-
Web3 Authentication: There's no need for traditional authentication methods in Web3. Instead, users prove ownership of their accounts by signing transactions with their private key, which is mathematically linked to their public address. The ability to sign a transaction is proof of ownership, as only the holder of the private key can correctly sign messages for their public address, which is easily verifiable by anyone
For task 1 and task 2, we will use Ethereum's Sepolia Testnet for deployment and tryout Etherscan's contract verification feature.
The experience of deploying contract on another EVM Chain and verifying it will be mostly identical.
Make sure you have sufficient Sepolia Testnet ETH for deployment purpose.