FERI JESENSKA ŠOLA

BLOCKCHAIN APLIKACIJE

RAZVOJ DECENTRALIZIRANIH REŠITEV

ETHEREUM, DAPPS, SMART CONTRACTS, ANDROID (KOTLIN)

Tehnologija veriženja blokov (ang. blockchain) se obravnava kot druga internetna revolucija oz. eno od najpomembnejših inovacij na področju internetnih tehnologij v zadnjem desetletju. Omenjena tehnologija niso zgolj kriptovalute, temeč je temelj novim konceptom, ki spreminjajo ustaljene poslovne procese, nudijo nov tehnološki napredek ter prostor za inovativne tehnolške pristope.

Inštitut za informatiko, Fakultete za elektrotehniko, računalništvo in informatiko ter v sklopu tega delujoča skupina Blockchain Lab:UM, se aktivno osredotoča na strokovne in raziskovalne vidike tehnologije veriženja blokov ter hkrati poskuša omenjeno tehnologijo primerno predstaviti širši javnosti.

Ker se kot visokošolska institucija zavedamo pomena bodočih strokovnjakov s področja računalništva in informatike, želimo svoje študente čim bolje pripraviti na prihodnje tehnologije in izzive, pri čemer je tehnologija veriženja blokov vsekakor med tistimi, za katere verjamemo, da že in še bo vidno prispevala k napredku stroke in družbe. Zato na FERI organiziramo že tretjo počitniško šolo na temo tehnologije veriženja blokov, pametnih pogodb in decentraliziranih aplikacij. Ker se prav tako zavedamo pomena sodelovanja visošolskih institucij in naših študentov z gospodarstvom, organiziramo počitniške šole v sodelovanju oziroma pod pokroviteljstvom gospodarstva. Tako smo prvo počitniško šolo izvedli v sodelovanju z Novo KBM in Pošto Slovenije (http://tiny.cc/ps-bc-feri-1) ter drugo v sodelovanju z iniciativo ECTA (http://tiny.cc/ps-bc-feri-2).

Letošnjo jesen, natančneje med 17. in 20. septembrom, načrtujemo torej že tretjo FERI počitniško šolo tehnologije veriženja blokov. Tokrat bomo sodelovanje razširili v tujino, saj bosta pokrovitelja počitniške šole “Cluster za eko-društvene inovacije i razvoj CEDRA Split” in “Eupolis grupa d.o.o.”. Hkrati je podpornik letošnje jesenske šole tehnologije veriženja blokov Ministrstvo za gospodarski razvoj in tehnologijo (MGRT).

Počitniško šolo bomo izvedli v prostorih FERI in v sodelovanju s strokovnjaki skupine Blockchain Lab:UM. V sklopu šole se udeležencem (študentom) v prvih dneh (17. in 20. septembrom) predstavi tehnologija veriženja blokov in poduči o razvoju pametnih pogodb, decentraliziranih aplikacij in hkrati Android mobilnih aplikacij s programskim jezikom Kotlin, pri čemer drugi del jesenske šole poteka v obliki tekmovanja ob podpori mentorjev in ob reševanju primera uporabe, ki ga poda pokrovitelj počitniške šole.

Za tekmovalni del jesenske šole je rezerviran nagradni sklad v vrednosti 1.000,00 EUR, ki se v kriptovaluti Bitcoin izplača najboljši ekipi, ki bo ocenjena s strani štiričlanske strokovne komisije.

Razlogi za sodelovanje

  1. Pridobiti nova znanja iz trenutno najaktualnejše tematike področja ITK - tehnologije veriženja blokov, pametnih pogodb in decentraliziranih aplikacij ter hkrati mobilnih aplikacij (Kotlin).
  2. Denarne nagrade za najboljše rešitve - denarni sklad v višini 1.000,00 EUR izplačano v Bitcoin-ih s strani pokrovitelja.

1. FERI Blockchain počitniška šola 2. FERI Blockchain počitniška šola

Prijava na jesensko šolo BLOCKCHAIN APLIKACIJ 2019

Prijave bodo odprte do četrtka 12. septembra 2019, 23:59. Ker je število mest omejeno na 15, si organizator pridržuje pravico do izbora kandidatov in kandidatk.

O izboru boste obveščeni najkasneje do petka, 13. septembra 2018.

Od prijavljenih kandidatov in kandidatk pričakujemo poznavanje osnovnih spletnih tehnologij: HTML5, CSS in JavaScript ter objektno orientiranega programiranja.

Pri izboru kandidatov za jesensko šolo bodo imeli prednost tisti, ki bodo sodelovali tudi v tekmovalnem del.


Potek jesenske šole 2019

Izbrani kandidati bodo porazdeljeni v skupine s tremi ali štirimi člani, ki bodo po uvodnih predstavitvah in predavanjih (17. - 20. september) med seboj tekmovali pri načrtovanju in razvoju prototipne rešitve za izziv definiran s strani pokrovitelja (21. september - 4. oktober). Prototipna rešitev bo temeljila na tehnologiji blockchain, pametnih pogodbah, mobilnih in decentraliziranih aplikacijah.

V času po uvodnih predstavitvah in predavanjih ter do konca šole (tekmovanja) se bodo ekipe, z namenom spremljanja napredka in konzultacij, dva krat tedensko sestajale z mentorji organizatorji ter predstavniki pokrovitelja.

Končna predstavitev prototipnih rešitev je predvidoma načrtovana v tednu med 7. in 11. oktobrom . Najboljša/e ekipa/e bo(do) dobila/e denarno nagrado. Komisija za oceno najboljše(ih) ekip(e) bo sestavljena iz predstavnikov UM FERI, pokrovitelja (CEDRA) ter podpornika (Ministrstvo za gospodarski razvoj in tehnologijo).

Za pogostitev (prigriziki, pijača ter korsilo) med jesensko šolo bo poskrbljeno.


Intelektualna lastnina izdelkov

Vsak udeleženec s sodelovanjem na jesenski šoli 2019 zagotavlja in jamči, da bo njegov prispevek izključno rezultat izvirnega dela in ne bo kršil nobenih lastniških ali intelektualnih pravic katerihkoli tretjih strank ter da bo programska (izvorna) koda izdelanih rešitev postala last pokrovitelja.


Možnost spremembe izvedbe

Organizator Jesnske šole 2019 si pridržuje pravico spremembe načina izvedbe le te.

V primeru odpovedi ali spremembe načina izvedbe bomo vse prijavljene pravočasno obvestili - najkasneje do 15. septembra 2019.

Vsebina jesenske šole 2019

Dan 1: Uvod, Blockchain, Pametne pogodbe, Decentralizirane aplikacije

  • Uvod
    • Motivacija
  • Varnostni principi
    • Asimetrična kriptografija in algoritmi digitalnega podpisovanja
    • Kriptografija eliptičnih krivulj
    • Enosmerne zgoščevalne funkcije
  • Tehnologija veriženja blokov
    • Porazdeljena in decentralizirana omrežja
    • Tehnologija porazdeljene knjige
    • Porazdeljeni algoritmi soglasja
    • Dokazilo o delu (ang. proof-of-work), dokazilo o deležu (ang. proof-of-stake), dokazilo o avtoriteti (ang. proof-of-authority)
    • Shranjevanje podatkov na podlagi transakcij
    • Tipi verig blokov
      • Zasebne, javne, konzorcijske
    • Primeri uporabe
  • Pametne pogodbe (PP)
    • Osnovni koncepti
    • Pametne pogodbe na verigah blokov
    • Platforme verig blokov, ki omogočajo razvoj PP
    • Oraklji
    • Primeri uporabe
      • DAO, ICO, žetoni, ipd.
  • Decentralizirane aplikacije (dApps)
    • Osnovni principi
    • Delovanje in uporaba
    • Življenjski cikel aplikacije
    • Aplikacijski programski vmesnik (API)
    • Izzivi sinhronizacije
    • Izzivi centralizacije

Dan 2 in 3: Razvoj pametnih pogodb s platformo Ethereum in spletnih decentraliziranih aplikacij

  • Platforma Ethereum
    • Osnovni koncepti
    • Omrežje
    • Računi
    • Ethereum virtualni stroj (EVM – Ethereum Virtual Machine)
    • Transakcije
    • Tranzicija stanja
    • Izvajanje programske kode
      • Gorivo, stroški izvajanja
  • Veriga blokov Ethereum
    • Zasebne, javne, konzorcijske
    • Dokazilo o delu, dokazilo o deležu, dokazilo o avtoriteti
    • Geth
    • Konfiguracija omrežja
  • Solidity – programski jezik
    • Turingova polnost
    • Funkcijske modifikacije, funkcije, dogodki, sestavljene podatkovne strukture, obvladovanje napak, dedovanje, modularnost
    • Nadgradljivost in zamenljivost v omrežju nameščenih PP
  • Razvoj pametnih pogodb
    • Predstavitev razvojnega okolja
      • Remix, Truffle, Ganache
    • Priprava razvojnega okolja
    • Priprava, zagon in pregled osnovnih PP
    • Namestitev in testiranje PP
  • dApps - Obličje
    • ethereum/web3.js knjižnica
    • Priprava, zagon in pregled osnovne decentralizirane aplikacije, ki uporablja Web3.js
    • Komunikacija med komponentami
    • Uporaba aplikacijskega programskega vmesnika med zaledjem in obličjem
    • Hramba ključev
      • Strežniška stran, odjemalska stran
  • Oraklji
    • Pregled delovanja in primeri uporabe orakljev
    • Uporaba podatkovnega ponudnika Oraclize v kombinaciji z decentraliziranimi aplikacijami
    • Koncepti razvoja orakljev

Dan 4: Razvoj mobilnih Android aplikacij s programskim jezikom Kotlin

  • Platforma Android, pomembna dokumentacija
  • Struktura in življenjski cikel aplikacije na primeru
    • Uporabniški vmesniki
    • Manifest aplikacije (naprave in združljivost, dovoljenja …)
    • Ločevanje izvorne kode in drugih virov
  • Način razvoja
    • Razvojna orodja in okolja
    • Pregled standardnih knjižnic
    • Oblika prevedene aplikacije in način distribucije
  • Programski jezik Kotlin
  • Gradnja uporabniškega vmesnika
    • Upravljalci izgleda, stili, teme
    • Aktivnosti
    • Intenti
    • Gradniki za zajem in prikaz podatkov
    • Dogodki
    • Lokalizacija
  • Trajnost podatkov
  • Asinhrona opravila, storitve, prožilci, komunikacija s sporočili
  • Omrežna povezljivost
    • Povezovanje na REST storitve
  • Uporaba lokacijskih storitev


Predstavitev tekmovalnega dela

  • Nagovor predstavnika MGRT kot podpornika jesenske šole 2019
  • Predstavitev pokrovitelja
  • Predstavitev tekmovalnega dela
    • Primer uporabe
    • Demo
  • Predstavitev izziva
  • Razdelitev v ekipe