
Webinár: Potrebujete pre svoj biznis mobilnú aplikáciu?

31. Mar 2023
BusinessPrezentácia, Q&A a tento článok pokrývaju kľúčové témy Web3. Cieľom je dať význam buzzwordom, vysvetliť, ako funguje blockchain a jeho obmedzenia, a poskytnúť širšie pochopenie Web3. To zahŕňa problémy, ktoré sa snaží vyriešiť, technológie, ktoré sú zamerané na tieto problémy, zmeny pre vývojárov a architektúru aplikácií Web3.
👉 Poznámka: Táto prezentácia nie je určená len pre technických ľudí; väčšina tém je vysvetlená všeobecne, aby ste lepšie pochopili, ako veci fungujú. Ak je téma technickejšia, nebojte sa a pokračujte na ďalšiu.
Počas éry Web 1.0 boli webové stránky prevažne statické a vlastnili ich spoločnosti. Interakcia medzi používateľmi bola veľmi malá a jednotlivci len zriedka vytvárali obsah.
📽️ Poznámka autora: V roku 1989 v CERN-e v Ženeve bol Tim Berners-Lee zaneprázdnený vývojom protokolov, ktoré by sa stali World Wide Web. Jeho myšlienkou bolo vytvoriť otvorené, decentralizované protokoly, ktoré by umožňovali zdieľanie informácií odkiaľkoľvek na Zemi.
Obdobie Web 2.0 sa začalo v roku 2004 vznikom platforiem sociálnych médií. Namiesto toho, aby bol web iba na čítanie, vyvinul sa na čítanie a zápis. Spoločnosti nielenže poskytovali obsah používateľom, ale začali ponúkať aj platformy na zdieľanie obsahu vytvoreného používateľmi a zapájanie sa do interakcií medzi používateľmi.
📽️ Poznámka autora: Web 2.0 zaviedol aj model príjmov riadený reklamou. Používatelia síce mohli vytvárať obsah, no nevlastnili ho a ani nemali prospech z jeho speňaženia.
Web3 sa stal univerzálnym termínom pre víziu nového, lepšieho internetu. Web3 vo svojom jadre využíva blockchain, kryptomeny a NFT, aby vrátil používateľom silu vo forme vlastníctva.
💡 Poznámka k obrázku: Transformácia rovnakej logickej funkcionality vo všetkých verziách internetu. Všimnite si, že vo verzii Web3 máte iba jeden účet, a to vašu peňaženku.
💡 Poznámka: „Web1 bol iba na čítanie, Web2 umožnil čítať a zapisovať, Web3 bude umožňovať aj vlastníctvo zapisovaných údajov.“
Príklad:
Vo Web 2.0 vytvárajú používatelia obsah, ale nevlastnia ho. Ak vytvorím video na YouTube, patrí to Google-u a ja dostanem iba podiel z príjmov.
Tu je 5 výhod používania Web3:
Tu je 5 obmedzení Web3:
💡 „Web3 nie je ťažký, ale je iný“
Web3 sa snaží vyriešiť niekoľko problémov, vrátane vlastníctva údajov, identity a digitálnych aktív a nedostatočnej transparentnosti, bezpečnosti a nedôveryhodných transakcií vo Web2. Jeho cieľom je poskytnúť decentralizovaný, transparentný a bezpečný internet, ktorý používateľom vráti silu vo forme vlastníctva. Okrem toho sa Web3 snaží riešiť problémy technických prekážok vstupu, vzdelávania, interoperability, škálovateľnosti a dostupnosti.
Web 2 | Web3 |
---|---|
Twitter môže cenzurovať akýkoľvek účet alebo tweet | Tweety Web3 by boli necenzurovateľné, pretože kontrola je decentralizovaná |
Platobná služba sa môže rozhodnúť nepovoliť platby za určité typy prác | Platobné aplikácie Web3 nevyžadujú žiadne osobné údaje a nemôžu zabrániť platbám |
Servery pre gig-economy aplikácie by mohli vypadnúť a ovplyvniť príjem ľudí | Web3 servery nemôžu vypadnúť – ako backend používajú Ethereum, decentralizovanú sieť tisíciek počítačov |
Technológia blockchain je typ počítačového systému, v ktorom sú informácie uložené v blokoch, ktoré sú navzájom prepojené. Akonáhle sú informácie pridané do bloku, nie je možné ich zmeniť, takže sú veľmi bezpečné a ťažko sa dajú hacknúť alebo manipulovať. Blockchainy sa často používajú na finančné transakcie, ale môžu sa použiť aj na iné typy ukladania a zdieľania údajov.
Ukážka začína na 7:36.
Smart kontrakty sú samospustiteľné programy, ktoré bežia na Ethereum blockchaine. Fungujú podobne ako tradičné zmluvy, ale namiesto toho, aby boli vymáhané zákonnými prostriedkami, sú vymáhané kódom. Smart kontrakty možno použiť na rôzne účely, ako je napríklad správa digitálnych aktív, vykonávanie zložitých finančných transakcií a vytváranie decentralizovaných aplikácií (dApps). Akonáhle je smart kontrakt nasadený, nie je možné ho upraviť ani odstrániť, čo z nej robí bezpečný a spoľahlivý spôsob automatizácie zmluvných dohôd.
// actual code for calling API
import axios from 'axios'
const axiosClient = axios.create({
baseURL: `https://www.example.com/api/v1`,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
});
// for list of endpoints will need to use swagger
axiosClient.get('/products')
// or
axiosClient.post('/products', JSON.stringify(data))
import { ethers } from 'ethers'
// setting up external node
const url = 'ADD_YOUR_ETHEREUM_NODE_URL’;
const provider = new ethers.providers.JsonRpcProvider(url);
// setting up contract
const address = 'CONTRACT_ADDRESS_FROM_REMIX';
const abi = [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getLatestPrice",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
];
const contract = new ethers.Contract(address, abi, provider);
contract.getLatestPrice()
.then((result) => {
console.log("$" + result.toNumber() / 100000000);
});
curl "<http://api.etherscan.io/api?module=contract&action=getabi&address=0xe7c29cba93ef8017c7824dd0f25923c38d08065c&format=raw>" > Token.json
// SPDX-License-Identifier: MIT
pragma solidity 0.8.8;
import "./PriceConverter.sol";
error NotOwner();
contract FundMe {
using PriceConverter for uint256;
address[] public funders;
mapping(address => uint256) public addressToAmountPaied;
uint256 public constant MINIMUM_USD = 50 * 1e18;
address public immutable i_owner;
constructor() {
i_owner = msg.sender;
}
function pay() public payable {
require(msg.value.getConversionRate() > MINIMUM_USD, "You've paid less then minimum amount");
funders.push(msg.sender);
addressToAmountPaied[msg.sender] += msg.value;
}
function withdraw() public onlyOwner {
for (uint256 funderIndex = 0; funderIndex < funders.length; funderIndex++) {
address funder = funders[funderIndex];
addressToAmountPaied[funder] = 0;
}
// reset founders array
funders = new address[](0);
(bool callSuccess, ) = payable(msg.sender).call{ value: address(this).balance }("");
require(callSuccess, "Funds where not withdrawen");
}
modifier onlyOwner {
if (msg.sender != i_owner) revert NotOwner();
_;
}
}
💡 Toto teraz neznamená, že všetky služby je nevyhnutné zmeniť na dApps (decentralizované aplikácie). Tieto príklady slúžia iba ako ilustácie hlavných rozdiel medzi službami Web2 a Web3
Podrobný návod na migráciu bežnej webovej aplikácie na architektúru decentralizovanej webovej aplikácie
Krok 0: Aktuálna architektúra webovej aplikácie.
Krok 1: Vymenili sme náš backend a databázu za blockchain.
Krok 2: Pridali sme externý uzol, aby sme nemuseli ukladať všetky blockchainové dáta na našom zariadení.
Krok 3: Pridali sme pripojenie k peňaženke, aby používateľ mohol podpisovať svoje blockchainové transakcie.
Krok 4: Pridali sme IPFS (inter Planetary File Storage), ktorý komunikuje s vaším externým uzlom, aby sme mohli ukladať veľké dáta v distribuovanej peer-to-peer sieti.
Krok 5: V tomto kroku sme nahrali naš Frontend na IPFS, aby sme sa nemuseli zaväzovať k centralizovaným webovým serverom.
Taktiež sme pridali aj službu tretej strany The Graph, ktorá eliminuje potrebu neustáleho volania na blockchain na získavanie údajov a tiež formátuje údaje do GraphQL.
Záver: Poslednou úpravou bude pridanie škálovacieho riešenia L2, ako je Polygon, vďaka čomu sú náklady používateľa na uskutočňovanie nových transakcií minimálne.
What is Web3 and why is it important? | ethereum.org