Programowanie z blockchainem 1000-2M24PZB
• Zdecentralizowany konsensus
• Regulacja pisania w konsensusie
• Modele księgowania
Ekosystemy: Ethereum i bazujące na EVM, Bitcoin, porównanie z Filecoin/Avalanche/Cardano/Tezos/Solana
• Portmonetki
• Kontrakty programowalne (Solidity)
• Tokeny
• NFT
• Wyrocznia, DEX, pomost, szybkość interakcji
• Bezpieczeństwo kontraktów programowalnych
• Testowanie kontraktów
• IPFS w praktyce: Lightning i Pinata, bramki Cloudflare i Pinata
• Rollupy, zastosowanie ZK/BitVM/CirCom
• Tokenomika
Tryb prowadzenia
Założenia (opisowo)
Koordynatorzy przedmiotu
Efekty kształcenia
Student rozumie:
1. Model księgi zdecentralizowanej (decentralized ledger)
2. Różnice między ekosystemami blockchainowymi (Ethereum, Bitcoin i inne).
3. Najczęściej spotykane rodzaje kontraktów programowalnych (tokeny, wy-
rocznie, zdecentralizowane giełdy, pomosty).
Student potrafi stworzyć:
1. Stworzyć kontrakt programowalny w Solidity (smart contract) działający
w ekosystemie Ethereum.
2. Aplikację zdecentralizowaną na Web3 (IPFS+Ethereum).
3. Token wymienny (fungible) i NFT.
4. Automatyczne testy dla powyższych.
Kompetencje:
1. Język programowania Solidity
2. Podstawy bezpieczeństwa kontraktów programowalnych (smart contractów)
i aplikacji zdecentralizowanych
3. Znajomość kultury zdecentralizowanej
Kryteria oceniania
Dwa kolokwia (2x10pkt), wysyłanie wyników pracy po każdej sesji laboratoryjnej prowadzącemu (15pkt) oraz projekt zaliczeniowy (85pkt).
Potrzebne jest minimum 50% do zaliczeń cząstkowych: czyli co najmniej 50% z każdego kolokwium, co najmniej 50% z prac domowych, co najmniej 50% z każdego dokumentu zaliczeniowego i co najmniej 50% z implementacji projektu.
Projektem zaliczeniowym jest aplikacja złożona z kontraktu programowalnego i strony Web3 do jego obsługi (55pkt) oraz trzy dokumenty projektowe (30pkt) opisujące projekt, jego architekturę, plan testowania i perspektywy rozwoju.
Całościowy próg zaliczeniowy to 72 ze 120 pkt (60%), na ocenę dobrą student potrzebuje 96pkt, na ocenę bardzo dobrą 112pkt.
Dokumenty po terminie i poprawki są punktowane z dzielnikiem 1.5. Jeśli student uzyska a punktów z kolokwium w pierwszym terminie i b punktów na poprawce, to liczymy wynik jako a + max(b − a, 0)/1.5. Np. 3 punkty w terminie i 8 punktów na poprawce to 7.5, czyli 2.5pkt powyżej progu.
Literatura
* [https://www.coingecko.com/research/publications/fastest-blockchains]
* [https://coinmarketcap.com/api/pricing/]
* [https://entethalliance.org/specs/ethtrust-sl/]
* [https://eips.ethereum.org/EIPS/eip-6963]
* [https://dweb-primer.ipfs.io/files-on-ipfs/add-and-retrieve-file-content]
* [https://docs.lighthouse.storage/]
* [https://owasp.org/www-project-top-ten/]
* [https://pinata.cloud/]
* [https://solidity-by-example.org/]
* [https://docs.soliditylang.org/en/latest/]
* [https://swcregistry.io/docs/SWC-114/]
* [https://blog.uniswap.org/what-is-uniswap]
* [https://github.com/Uniswap/v2-core]
* [https://w3c.github.io/did-core/]
* [https://wagmi.sh/]
Więcej informacji
Więcej informacji o poziomie przedmiotu, roku studiów (i/lub semestrze) w którym się odbywa, o rodzaju i liczbie godzin zajęć - szukaj w planach studiów odpowiednich programów. Ten przedmiot jest związany z programami:
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: