<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=Itv0120_2017</id>
	<title>Itv0120 2017 - Redigeerimiste ajalugu</title>
	<link rel="self" type="application/atom+xml" href="http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=Itv0120_2017"/>
	<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Itv0120_2017&amp;action=history"/>
	<updated>2026-10-28T15:23:04Z</updated>
	<subtitle>Selle lehekülje redigeerimiste ajalugu</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Itv0120_2017&amp;diff=15252&amp;oldid=prev</id>
		<title>Tammet: Uus lehekülg: &#039;&lt;table&gt; &lt;tr&gt; &lt;td&gt; revolutsioon &lt;/td&gt; &lt;td&gt; Ainekood: ITV0120&lt;br&gt; Täielik nimi: Võrgurakendused II - hajussüsteemide tehnoloogia&lt;br&gt; Link:  ht...&#039;</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Itv0120_2017&amp;diff=15252&amp;oldid=prev"/>
		<updated>2019-01-30T06:47:17Z</updated>

		<summary type="html">&lt;p&gt;Uus lehekülg: &amp;#039;&amp;lt;table&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt; &lt;a href=&quot;/wiki/Fail:Revolution_small.jpg&quot; title=&quot;Fail:Revolution small.jpg&quot;&gt;left|revolutsioon&lt;/a&gt; &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; Ainekood: ITV0120&amp;lt;br&amp;gt; Täielik nimi: Võrgurakendused II - hajussüsteemide tehnoloogia&amp;lt;br&amp;gt; Link:  ht...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uus lehekülg&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
[[Pilt:Revolution_small.jpg|left|revolutsioon]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITV0120&amp;lt;br&amp;gt;&lt;br /&gt;
Täielik nimi: Võrgurakendused II - hajussüsteemide tehnoloogia&amp;lt;br&amp;gt;&lt;br /&gt;
Link:  http://www.lambda.ee/index.php/V%C3%B5rgurakendused_II&amp;lt;br&amp;gt;&lt;br /&gt;
Punkte: 5 EAP&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Õppejõud: Tanel Tammet, Martin Verrev, Priit Järv&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tanel.tammet@ttu.ee&amp;lt;br&amp;gt;&lt;br /&gt;
Olemas on ka [[itv0120 2016 |2016 aasta materjalide arhiiv]].&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB! See on 2017 aasta materjalide arhiiv, mitte hetkel kehtiv!&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Praktikumide ja eksamite tulemused&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Siin nüüd teise eksami järgsed tulemused:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Võrgurakendused II 2018 praksitulemused|Esimese eksami järgsed tulemused nähtavad siin]] formaadis: tudengikood, eesnime esitäht, punkte esimese praksi eest, punkte teise praksi eest.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Võrgurakendused II 2018 praksi- ja eksamitulemused 2|Esimese kahe eksami ja kõigi prakside tulemused nähtavad siin]] formaadis: tudengikood, eesnime esitäht, punkte esimese praksi eest, punkte teise praksi eest, punkte esimese eksami eest, punkte teise eksami eest, punkte kokku, hinne&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Võrgurakendused II 2018 praksi- ja eksamitulemused|Esimese eksami ja kõigi prakside tulemused nähtavad siin]] formaadis: tudengikood, eesnime esitäht, punkte esimese praksi eest, punkte teise praksi eest, punkte eksami eest, punkte kokku, hinne&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[Võrgurakendused II 2018 praksi- ja eksamitulemused 3|Lõpptulemused kolme eksami järel nähtavad siin]] formaadis: tudengikood, eesnime esitäht, punkte esimese praksi eest, punkte teise praksi eest, punkte esimese eksami eest, punkte teise eksami eest, punkte kolmanda eksami eest, punkte kokku, hinne&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Eksam&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Eksamiajad on järgmistel aegadel, kõik ruumis U02-102&lt;br /&gt;
* 28.05.2018 esmasp, kell 14:00&lt;br /&gt;
* 31.05.2018 neljap, kell 12:00&lt;br /&gt;
* 07.06.2018 neljap, kell 16:00&lt;br /&gt;
&amp;lt;!-- * 14.06.2018 11:00 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sa võid tulla kohale kahel eri ajal (aga mitte kolmel).&lt;br /&gt;
&lt;br /&gt;
Aega on kuni kolm tundi, tüüpiliselt peaks piisama ca pooleteisest tunnist.&lt;br /&gt;
&lt;br /&gt;
Eksamile registreeruma ei pea, välja arvatud tudengid, kes ei ole deklareerinud ainet sel semestril, vaid teevad uuesti mõnel varasemal aastal deklareeritud ainet (eeldusel, et deklaratsioon kehtib). &lt;br /&gt;
&lt;br /&gt;
[[Võrgurakendused 2 eksamiteemad 2018| eksamiteemade ja küsimuste kohta loe siit]]&lt;br /&gt;
&lt;br /&gt;
Hindamine: praktikumid annavad kokku 50% kogupunktidest ning eksam teise 50%. Kursuse edukaks sooritamiseks on sul vaja:&lt;br /&gt;
* saada arvestatud mõlemid praktikumid&lt;br /&gt;
* teha eksam tasemel vähemalt 1/3 eksami kogupunktidest.&lt;br /&gt;
* saada praktikumid+eksam kokku vähemalt 50 punkti.&lt;br /&gt;
&lt;br /&gt;
NB! Eksamile võtta kaasa pildiga dokument.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Küsimused tulevad järgmiste teemade kohta, igaühe kohta üks/kaks.&lt;br /&gt;
&lt;br /&gt;
Keerulisemad teemad all boldis:&lt;br /&gt;
&lt;br /&gt;
* Protokollid: json,xml-rpc,soap (ilma uddi ja wsdlta),protocol buffers.&lt;br /&gt;
* P2P: Napster, Gnutella, Kazaa/skype, &amp;lt;b&amp;gt;DHT (ntx Chord), Bittorrent&amp;lt;/b&amp;gt;.&lt;br /&gt;
* &amp;lt;b&amp;gt;Transaktsioonid ja lukustamine&amp;lt;/b&amp;gt; paralleelprotsesside jaoks: baseerudes Priit Järve materjalidele allpool peatükkides paralleelrehkendused 1. ja 2. osa.&lt;br /&gt;
* Andmelaod ja andmekogude integreerimine Kalle Tominga loengumaterjalide põhjal: hetkel toimetamisel, ilmuvad lähiajal.&lt;br /&gt;
&lt;br /&gt;
Vastustena oodatakse enamikel küsimustel mikro-esseesid näidete ja selgitustega.&lt;br /&gt;
&lt;br /&gt;
Eksamil ei tule küsimusi nendel kursuse jooksul käsitletud teemadel: andme-apid, pilvekeskkonnad, mapreduce, hajutatud failisüsteemid, autentimine, X-tee, riigi it-süsteemid, apache konfimine, serdid ja autentimine.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Praktikumiaja muutus veel lahtine&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Õppeosakonnale paistis, et osadel tudengitel paistab võimaliku alternatiivse praksiaja - teisipäeval kell 12 enne loengut - aja olema muu loeng ja aeg ei sobi. Samas, kuna meil on valikaine, siis võibolla aeg ikkagi sobib kõigile, kes tegelikult võrgurakendused II deklareerivad.&lt;br /&gt;
&lt;br /&gt;
Palun seega kõigil, kellel teisipäeval kell 12 muu loeng ja võrgurakendused II praksi sinna nihutamine ei sobi, anda mulle emailiga ASAP sellest teada.&lt;br /&gt;
&lt;br /&gt;
Õppeosakond otsib praegu alternatiivseid variante praksiaja nihutamiseks.&lt;br /&gt;
&lt;br /&gt;
See nädal teeme praksi veel esialgselt planeeritud ajal, kolmapäeval 08:00-09:30  arvutiklassis ICT-501.&lt;br /&gt;
&lt;br /&gt;
* teisip 12: ca 5le inimisele ei sobi&lt;br /&gt;
* kolmap 14: ca 10le inimesele ei sobi&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aeg, koht ==&lt;br /&gt;
&lt;br /&gt;
Semester: kevad&amp;lt;br&amp;gt;&lt;br /&gt;
Tulemus: eksam&amp;lt;br&amp;gt;&lt;br /&gt;
Hindamise meetod: praktikumide tulemused (pool) pluss eksam (teine pool)&amp;lt;br&amp;gt;&lt;br /&gt;
Loeng: neljapäeval 10:00-11:30 ruumis U05-103&amp;lt;br&amp;gt;&lt;br /&gt;
Praktikum: reedel kell 10:00-11:30 ruumides ICT 121 ja ICT 122&lt;br /&gt;
&lt;br /&gt;
== Praktilised tööd ja tähtajad ==&lt;br /&gt;
&lt;br /&gt;
Kokku on töid 2. Kumbki praktikum täismahus tehtuna annab 25 punkti, sellele võivad lisanduda ekstrapunktid. Puudulikult tehtud töö punktiarv jääb alla 25 punkti. Hilinenud kodutöö eest saab pooled muidu saadaolevad punktid.&lt;br /&gt;
&lt;br /&gt;
* [[Vorgurakendused 2 prax 1 2018 kevad | 1 praks on P2P rakendus]]: kas distributed ledgeri komponent või anonümiseeriv võrk.  Tähtaeg 23 märts. Grupitöö 1-3 inimest. &lt;br /&gt;
* [[Vorgurakendused 2 prax 2 2018 kevad | 2 praks]]: kas terve distributed ledger või autentimis-veebirakendus.  Tähtaeg 11. mai. Grupitöö 1-3 inimest.&lt;br /&gt;
&lt;br /&gt;
== Loengukava ==&lt;br /&gt;
&lt;br /&gt;
Kursus jaguneb laias laastus viieks teemaks: &lt;br /&gt;
&lt;br /&gt;
* Protokollid ja P2P (neil teemadel - pluss veidi andme-apidest- esimene praks), &lt;br /&gt;
* Distributed ledger ehk bitcoini alustehnoloogia&lt;br /&gt;
* Paralleelrehkendused &lt;br /&gt;
* Veebirakenduste raamistikud e frameworkid&lt;br /&gt;
* Andme-apid, autentimine, pilvekeskkonnad, andmete hajutamine ja hajutatud andmete koondamine.&lt;br /&gt;
&lt;br /&gt;
Päris hea õpiku saad tasuta alla laadida [https://www.distributed-systems.net/index.php/books/distributed-systems-3rd-edition-2017/ siit]. Meie kursuse sisu on sellest õpikust küllalt erinev, samas on ka ühisosi.&lt;br /&gt;
&lt;br /&gt;
Üldist materjali ja kursusi mujalt:&lt;br /&gt;
:http://en.wikipedia.org/wiki/Distributed_computing&lt;br /&gt;
:http://dcg.ethz.ch/lectures/podc_allstars/index.html&lt;br /&gt;
&amp;lt;!-- :http://www.eecs.harvard.edu/cs262/ DEAD --&amp;gt;&lt;br /&gt;
:http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-824-distributed-computer-systems-engineering-spring-2006/index.htm&lt;br /&gt;
:http://www.stanford.edu/class/cs244b/&lt;br /&gt;
&lt;br /&gt;
=== Protokollid ja P2P ===&lt;br /&gt;
&lt;br /&gt;
==== Protokollid ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- :[[Media:Protocols.ppt|Loengu raampresentatsioon]] --&amp;gt;&lt;br /&gt;
:&amp;lt;b&amp;gt;Http ja json&amp;lt;/b&amp;gt;: [[võrgurakenduste protokollid 1]]&lt;br /&gt;
&lt;br /&gt;
:Xml põhised protokollid, REST ja binaarsed protokollid&lt;br /&gt;
:&amp;lt;b&amp;gt;xml protokollid xml-rpc, soap ja seotud tehnoloogiad&amp;lt;/b&amp;gt;: [[võrgurakenduste protokollid 2]]&lt;br /&gt;
:Probleemidest: [[veebiteenuste võlu ja valu]] ja [http://harmful.cat-v.org/software/xml/soap/simple s stands for simple]&lt;br /&gt;
:&amp;lt;b&amp;gt;REST, binary protokollid, XMPP&amp;lt;/b&amp;gt;: [[võrgurakenduste protokollid 3]]&lt;br /&gt;
:[http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/ Gaffer on games: UDP vs TCP] ja [http://gafferongames.com/2015/09/12/is-it-just-me-or-is-networking-really-hard/ selle jätk]&lt;br /&gt;
:Veidi seotud asi [https://en.wikipedia.org/wiki/Wireless_ad_hoc_network ad hoc networks] vt ka  &amp;lt;!--[http://www.eliko.ee/smart-streetlight-control-system-3/ ELIKO valgustussüsteemid] DEAD ja --&amp;gt; [http://www.freepatentsonline.com/8966046.html Defendeci ja Jürgo Predeni patent]&lt;br /&gt;
&lt;br /&gt;
====  P2P sissejuhatus ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:[http://en.wikipedia.org/wiki/Peer-to-peer vikipeedia ülevaade]&lt;br /&gt;
&amp;lt;!-- :[http://www.srdc.metu.edu.tr/webpage/seminars/p2p/P2P.ppt hea paraja detailsusega sissejuhatus] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- :[http://www.cs.ucy.ac.cy/courses/EPL420/Slides/Chapter2_4ed-P2P.ppt ülevaatepresentatsioon] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- :[http://www.it.lut.fi/comlab/ssotc/ssotc08/presentations/Lappeenranta_summer_school_Jukka_K_Nurminen.ppt alternatiivne ülevaatepresentatsioon] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- :[http://www14.in.tum.de/personen/schmiste/dynamo08.ppt hea detailne ülevaade eri P2P tehnoloogiatest] --&amp;gt;&lt;br /&gt;
: [[Media:P2p_overview.ppt|ülevaade eri P2P tehnoloogiatest]]&lt;br /&gt;
&lt;br /&gt;
====  P2P DHT (distributed hash tables) ja bittorrent ====&lt;br /&gt;
&lt;br /&gt;
:[http://en.wikipedia.org/wiki/Distributed_hash_table ülevaade wikipedias]&lt;br /&gt;
:Chord:&lt;br /&gt;
:Põhimaterjal - kas [https://www.cse.buffalo.edu/~okennedy/courses/cse704fa2012/8.1-Chord.ppt Chordi põhimõtted] või  [http://pdos.csail.mit.edu/~rtm/slides/harvard02.ppt vanem versioon, loe kuni Ivy osani] Täiendavalt võib vaadata [https://people.eecs.berkeley.edu/~kubitron/courses/cs294-4-F03/slides/lec03-chord.ppt seda presentatsiooni] visualiseeritud algoritmidega (ppt presentatsioonirezhiimis!) &lt;br /&gt;
&amp;lt;!-- :Täiendavalt juurde lugeda [http://www.ece.utexas.edu/~garg/f04/dist2/papers/chord.ppt chordi ülevaadet algoritmide skeemi] ja põhiteoreemidega (ilma tõestusteta) --&amp;gt;&lt;br /&gt;
:Lisaks tasuks veidi uurida artikleid [http://en.wikipedia.org/wiki/Chord_%28peer-to-peer%29 wikipedia] sissekande lõpus (external links)&lt;br /&gt;
:Kademlia:&lt;br /&gt;
:Põhimaterjal [http://www.cs.uiowa.edu/~ghosh/kademlia.ppt presentatsioon autoritelt]&lt;br /&gt;
:Täiendavalt [https://github.com/ntoll/p4p2p/blob/master/papers/maymounkov-kademlia-lncs.pdf autorite artikkel]&lt;br /&gt;
:Bittorrent:&lt;br /&gt;
:[http://www.cs.uiowa.edu/~ghosh/bittorrent.ppt bittorrenti protokoll ja ülevaade]&lt;br /&gt;
:[http://en.wikipedia.org/wiki/BitTorrent_%28protocol%29 täiendavalt wikipediast]&lt;br /&gt;
:TOR:&lt;br /&gt;
:[http://en.wikipedia.org/wiki/Tor_%28anonymity_network%29 TOR wikipedias]&lt;br /&gt;
&lt;br /&gt;
=== Distributed ledger, ajatemplid ja bitcoin ===&lt;br /&gt;
&lt;br /&gt;
Soovitav on lugeda neid materjale algusest: põhiasjad on esimestes, ning mida kaugemale edasi, seda detailsemad/spetsiifilisemad materjalid tulevad.&lt;br /&gt;
&lt;br /&gt;
==== Kriitiline taust järgneva mõistmiseks ====&lt;br /&gt;
&lt;br /&gt;
* https://en.wikipedia.org/wiki/Cryptographic_hash_function : ühtlaselt jaotuv hash, nii et kui püüad leida stringi S, et hash(S)=teadaolev_hash, siis parim viis S leidmiseks on lihtsalt random S-de katsetamine. Bitcoin kasutab [https://en.wikipedia.org/wiki/SHA-2 SHA2] hash algoritmi varianti, mis annab tulemuseks 256 bitise (ehk 32 baiti) väärtuse.&lt;br /&gt;
* https://en.wikipedia.org/wiki/Merkle_tree : kirjete sidumine hashide puuna (veidi keerukam/efektiivsem, kui lihtne hashiahel). Mis on hashiahel: kui tahad siduda kirjeid K1, K2, K3, siis salvestad [K1,hash(K1)], [K2,hash(K2+eelmise hash (ehk hash(K1)))],  [K3,hash(K3+eelmise hash(ehk hash(K2+hash(K1))))], jne, kus hashi-osa node N jaoks on üldiselt hash(KN+(KN-1 hashi-osa)) ehk hash(KN+hash(KN-1+hash(KN-2+hash(KN-3+...) ...)&lt;br /&gt;
* https://en.wikipedia.org/wiki/Proof-of-work_system : arvuti sundimine mõttetut tööd tegema, et raskendada spammimist. Levinud meetod on nõuda, et hashi alguses oleks N nulli (mida suurem N, seda raskem leida). Selleks tuleb sul hash(S) asemel katsetada läbi palju hash(S+nonce) arvutusi, kus nonce on random string, kuni juhtumisi saad N nulliga algava hashi.&lt;br /&gt;
* https://en.wikipedia.org/wiki/Blockchain : lihtsalt ülevaade kogu teemast&lt;br /&gt;
* [https://anders.com/blockchain/ Eelmiste asjade demo]: vajuta üleval &amp;quot;Hash&amp;quot;, &amp;quot;Block&amp;quot;, &amp;quot;Blockchain&amp;quot; linkidele ja proovi igal lehel ise datat muuta ja &amp;quot;Mine&amp;quot; nupule vajutada. &amp;quot;Mine&amp;quot; teeb proof-of-worki ehk otsib random stringi (nonce) mille lisamisel datale saame mitme nulliga algava hashi.&lt;br /&gt;
&lt;br /&gt;
==== Kasulik taust laiema pildi jaoks ====&lt;br /&gt;
&lt;br /&gt;
* Konsensus hajutatud süsteemides: [http://www.di.univaq.it/~proietti/slide_algdist2010/5-Consensus.ppt hea presentatsioon põhjalikumaks arusaamiseks] ([http://lamport.azurewebsites.net/pubs/byz.pdf siin on] klassikaline Bütsantsi kindralite probleemi artikkel, mis on suht keeruline)&lt;br /&gt;
* [https://blog.acolyer.org/2015/03/01/cant-we-all-just-agree/ Põhjalikum konsensuse-artiklite-selgituste kogu]&lt;br /&gt;
* RIA tellitud ja küberi koostatud [https://www.ria.ee/public/RIA/kruptograafiliste_algoritmide_elutsukli_uuring_2017.pdf eestikeelsest uuringust] lugeda alates lk 15 ptk &amp;quot;Plokiahelad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Best intro for reading ====&lt;br /&gt;
&lt;br /&gt;
* https://bitsonblocks.net/2015/09/01/a-gentle-introduction-to-bitcoin/&lt;br /&gt;
* https://bitsonblocks.net/2015/09/09/a-gentle-introduction-to-blockchain-technology/&lt;br /&gt;
* https://bitsonblocks.net/2015/09/21/a-gentle-introduction-to-bitcoin-mining/&lt;br /&gt;
&lt;br /&gt;
==== Põhjalik õpik ====&lt;br /&gt;
&lt;br /&gt;
* Lae alla  [https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf hea tasuta õpik]&lt;br /&gt;
* Kui eelmine link mingil põhjusel ei tööta, [http://bitcoinbook.cs.princeton.edu/ mine õpiku lehele ] (sealt leiad ka videoloengud) ja otsi sealt alapealkiri &amp;quot;Free pre-publication draft&amp;quot; mille all on link &amp;quot;... for download here&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Python examples with detailed explanations ====&lt;br /&gt;
&lt;br /&gt;
It is enough to go through one or two of these:&lt;br /&gt;
&lt;br /&gt;
* One example http://ecomunsing.com/build-your-own-blockchain&lt;br /&gt;
* Another example &lt;br /&gt;
** https://medium.com/crypto-currently/lets-build-the-tiniest-blockchain-e70965a248b&lt;br /&gt;
** https://medium.com/crypto-currently/lets-make-the-tiniest-blockchain-bigger-ac360a328f4d&lt;br /&gt;
* An even more detailed example&lt;br /&gt;
** https://bigishdata.com/2017/10/17/write-your-own-blockchain-part-1-creating-storing-syncing-displaying-mining-and-proving-work/&lt;br /&gt;
** https://bigishdata.com/2017/10/27/build-your-own-blockchain-part-2-syncing-chains-from-different-nodes/&lt;br /&gt;
** https://bigishdata.com/2017/11/02/build-your-own-blockchain-part-3-writing-nodes-that-mine/&lt;br /&gt;
** https://bigishdata.com/2017/11/21/how-to-build-your-own-blockchain-part-4-2-ethereum-proof-of-work-difficulty-explained/&lt;br /&gt;
* And then some:&lt;br /&gt;
** https://github.com/cosme12/SimpleCoin&lt;br /&gt;
** https://hackernoon.com/learn-blockchains-by-building-one-117428612f46&lt;br /&gt;
&lt;br /&gt;
==== More details and tutorials ====&lt;br /&gt;
&lt;br /&gt;
Have a look at the actual bitcoin data, latest blocks and transactions:&lt;br /&gt;
&lt;br /&gt;
* https://blockexplorer.com/&lt;br /&gt;
&lt;br /&gt;
How does the P2P stuff work, i.e finding nodes:&lt;br /&gt;
&lt;br /&gt;
* https://bitcoin.stackexchange.com/questions/3536/how-do-bitcoin-clients-find-each-other&lt;br /&gt;
* https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery&lt;br /&gt;
&amp;lt;!-- * https://www.coindesk.com/bitcoin-nodes-need/&lt;br /&gt;
* https://bitnodes.earn.com/dashboard/&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Real hardcore documentation:&lt;br /&gt;
&lt;br /&gt;
* https://bitcoin.org/en/developer-guide#p2p-network&lt;br /&gt;
* https://en.bitcoin.it/wiki/Protocol_documentation&lt;br /&gt;
&lt;br /&gt;
Just a big collection of materials and examples: https://github.com/openblockchains/awesome-blockchains&lt;br /&gt;
&lt;br /&gt;
Some additional OK tutorials:&lt;br /&gt;
&lt;br /&gt;
* The Blockchain Explained to Web Developers, Part 1: The Theory. https://marmelab.com/blog/2016/04/28/blockchain-for-web-developers-the-theory.html &lt;br /&gt;
* The Blockchain Explained to Web Developers, Part 2: In Practice https://marmelab.com/blog/2016/05/20/blockchain-for-web-developers-in-practice.html &lt;br /&gt;
* https://medium.com/blockchain-review/how-does-the-blockchain-work-for-dummies-explained-simply-9f94d386e093&lt;br /&gt;
* Ever wonder how Bitcoin (and other cryptocurrencies) actually work? https://youtu.be/bBC-nXj3Ng4&lt;br /&gt;
* https://medium.com/@annamcabee/learning-about-block-chain-with-python-8b2178cf1fca&lt;br /&gt;
* https://crypto.stanford.edu/cs251/&lt;br /&gt;
&lt;br /&gt;
=== Paralleelrehkendused  ===&lt;br /&gt;
&lt;br /&gt;
==== Esimene osa ====&lt;br /&gt;
&lt;br /&gt;
Näited:&lt;br /&gt;
:[[Java näide loengust]]&lt;br /&gt;
:[http://stackoverflow.com/a/16207592 Thread, Queue ja Lock] Pythonis&lt;br /&gt;
:C: alguses oli [http://www.csl.mtu.edu/cs4411.ck/www/NOTES/process/fork/create.html  fork()], hea [https://computing.llnl.gov/tutorials/pthreads/ pthreads tutorial].&lt;br /&gt;
&lt;br /&gt;
Loengunäide: TCP (HTTP) socket server&lt;br /&gt;
&lt;br /&gt;
Kuidas TCP server elementaarsel tasemel töötab (Java tutorialid): [http://javarevisited.blogspot.com.ee/2015/06/how-to-create-http-server-in-java-serversocket-example.html Socket serveri sissejuhatus], [http://www.javaworld.com/article/2853780/core-java/socket-programming-for-scalable-systems.html threadidega server].&lt;br /&gt;
&lt;br /&gt;
Skaleeruvus praktikas: [http://merbist.com/2011/01/18/causality-of-scalability/ Causality of Scalability], [http://merbist.com/2011/01/31/designing-for-scalability/ Designing for Scalability].&lt;br /&gt;
&amp;lt;!--:Veebiserverid, nende sise-elu ja konf&lt;br /&gt;
:ip/tcp, socketid, http jne &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Lukustamine, andmebaasid jms ====&lt;br /&gt;
&lt;br /&gt;
:Paralleelsus andmebaasides: [[Media:na2_ccdb_slides.pdf|slaidid]].&lt;br /&gt;
Lisaks võib lugeda:&lt;br /&gt;
:[[Media:na2_ccdb.pdf|Konspekt]], käsitleb teemat oluliselt põhjalikumalt kui loeng/slaidid&lt;br /&gt;
:[[Media:11-transactions.pdf|Introduction to Transactions (slaidid)]]&lt;br /&gt;
&lt;br /&gt;
:Sünkroniseerimisprimitiivid: [[Media:na2_sync_slides.pdf|slaidid]]&lt;br /&gt;
&lt;br /&gt;
Mittekohustuslik lisalugemine:&lt;br /&gt;
:[[Media:na2_sync.pdf|Konspekt]] pikemalt ja põhjalikumalt loengus läbitud teemadest.&lt;br /&gt;
:[[Media:Locking_v2.ppt|T.Tammeti slaidid]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Paralleliseerimise automatiseerimine ja klastrid ====&lt;br /&gt;
&lt;br /&gt;
:[https://en.wikipedia.org/wiki/MapReduce Mapreduce framework]&lt;br /&gt;
&amp;lt;!--:[http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=2&amp;amp;ved=0CBkQxQEwAQ&amp;amp;url=http%3A%2F%2Fdocs.google.com%2Fviewer%3Fa%3Dv%26q%3Dcache%3AziVIMWHr2GsJ%3Anet.pku.edu.cn%2F~course%2Fcs501%2F2008%2Fresource%2Fmapreduce_in_a_week%2Fllm3-mapreduce.ppt%2Bgoogle%2Bmapreduce%2Btheory%2Band%2Bimplementation%2BChristophe%2BBisciglia%2C%2BAaron%2BKimball%2Bllm3%26hl%3Den%26pid%3Dbl%26srcid%3DADGEESiMwU-9htEZEAthU5bRtGGBQgkzwUf5vM549R-6QBooeBv10FFd-GLvrklDHx-RhI3OehhNio1E7m5GvwKyKK9ndM6oNbDO3LERl8M8YSZ5tdO4bRQ3PEs8sQ6_sdJVIF_Splx7%26sig%3DAHIEtbQVGyhnhEx0aTA0W7okwP8KdVqG1w&amp;amp;rct=j&amp;amp;q=google%20mapreduce%20theory%20and%20implementation%20Christophe%20Bisciglia%2C%20Aaron%20Kimball%20llm3&amp;amp;ei=plH_TPWOI4ay8gPVss2MCw&amp;amp;usg=AFQjCNE9y0GiXVo_hNWPmywfUjt_3ZhQqg&amp;amp;cad=rja Mapreduce sissejuhatus] --&amp;gt;&lt;br /&gt;
:[[Mapreduce katsetused Azure platvormil]]&lt;br /&gt;
:Mapreduce [http://research.google.com/archive/mapreduce.html klassikaline põhiartikkel]&lt;br /&gt;
:memcached&lt;br /&gt;
:[http://www.majordojo.com/2007/03/memcached-howto.php memcached ülevaade]&lt;br /&gt;
&lt;br /&gt;
=== Andme-apid, autentimine, pilveteenused, andmete koondamine jms ===&lt;br /&gt;
&lt;br /&gt;
==== Erinevad API-stiilid ====&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Representational_state_transfer rest wikipedias] ja [http://www.restapitutorial.com/ rest tutorial (vt linke all!)] &lt;br /&gt;
* [http://www.odata.org/ odata.org: microsoft/oasis recommendations for rest style]&lt;br /&gt;
* [https://docs-apis.apigee.io/files/Web-design-the-missing-link-ebook-2016-11.pdf api design book download] or [https://pages.apigee.com/eBook-Web-API-Design-The-Missing-Link-reg.html?int_source=resources-main&amp;amp;int_medium=website&amp;amp;int_campaign=ebook&amp;amp;int_content=web-api-design-missing-link api design book (must register)]&lt;br /&gt;
* [https://graphql.org/ Graphql start] and [https://blog.pusher.com/rest-versus-graphql/ graphql vs rest] and [https://medium.com/codingthesmartway-com-blog/rest-vs-graphql-418eac2e3083 similar take on rest vs graphql] and [https://blog.graph.cool/how-to-wrap-a-rest-api-with-graphql-8bf3fb17547d wrap rest in graphql]&lt;br /&gt;
&lt;br /&gt;
====  Suured avalikud andme-apid ====&lt;br /&gt;
&lt;br /&gt;
: [https://market.mashape.com/ API-de kogu uurimiseks]&lt;br /&gt;
: [https://en.wikipedia.org/wiki/List_of_open_APIs list of open apis from wikipedia]&lt;br /&gt;
: [https://developers.google.com/apis-explorer/#p/ google api explorer]&lt;br /&gt;
: [[Andme-apide märkmed loengust|Andme-apide näiteid]]&lt;br /&gt;
: [https://techcrunch.com/2018/04/04/facebook-instagram-api-shut-down/ facebook api limitations/shutdowns in 2018]&lt;br /&gt;
&lt;br /&gt;
====  X-tee, RIHA ja riigi IT-infrastruktuur ====&lt;br /&gt;
&lt;br /&gt;
:[https://www.ria.ee/public/publikatsioonid/x-road.jpg Big official picture of the state IT-architecture]&lt;br /&gt;
&lt;br /&gt;
:[[Media:Ahto_xtartu.ppt|Ahto Kalja detailne ülevaade X-tee projektist aastast 2004]]&lt;br /&gt;
:[https://www.ria.ee/ee/x-tee.html X-road official page] &amp;lt;!--and [https://www.ria.ee/index.php?query=X-tee a materials query] SAMA --&amp;gt;&lt;br /&gt;
:[http://x-road.ee/docs/est/turvaserveri_kasutusjuhend_14.04_lts.pdf X-road security server manual (detailed)]&lt;br /&gt;
:[http://apisuomi.fi/2014/07/soap-rest-json-and-x-road-x-tee/ X-tee from the Finnish perspective] and the [https://portal.educloudalliance.org/x-road-rest-gateway-development-initiated-github X-tee/Json gateway] and [http://www.hel.fi/palvelukarttaws/rest/ver2_en.html a nice REST api example from Finland]&lt;br /&gt;
:[https://www.ria.ee/public/x_tee/X-Road_message_protocol_4.0.1.pdf newest X-road message protocol] and corresponding [https://www.ria.ee/public/x_tee/pr-meta_x-road_service_metadata_protocol_0.7_Y-743-14.pdf metainfo protocol]&lt;br /&gt;
:[[example algorithm for xml serialization of Python data|Example: X-road oriented Soap call tool for Python]]&lt;br /&gt;
:[https://riha.eesti.ee/ RIHA] ja [https://www.ria.ee/ee/riha.html jutud RIHA kohta]&lt;br /&gt;
&lt;br /&gt;
====  Autentimine ====&lt;br /&gt;
&lt;br /&gt;
: facebook, google, pangalink.&lt;br /&gt;
:[[Autentimise märkmed: facebook ja google]]&lt;br /&gt;
&lt;br /&gt;
:[http://eid.eesti.ee/index.php/Kasutaja_tuvastamine_veebis veebiserveri seadistamine id-kaardi jaoks] ja [https://github.com/tammet/eid abistavad koodijupid]&lt;br /&gt;
:[http://eid.eesti.ee/index.php/EID_rakendusjuhend#Tehnoloogilised_detailid_ja_taustinfo taustaks id-kaardi kasutusstsenaariumid]&lt;br /&gt;
&lt;br /&gt;
[[Autentimise märkmed: mobiil-ID]]&lt;br /&gt;
&lt;br /&gt;
==== Pilvekeskkonnad  ====&lt;br /&gt;
&lt;br /&gt;
[https://support.rackspace.com/white-paper/understanding-the-cloud-computing-stack-saas-paas-iaas/ Understanding cloud computing]&lt;br /&gt;
&lt;br /&gt;
Suured:&lt;br /&gt;
&lt;br /&gt;
* [https://aws.amazon.com/ Amazon AWS]&lt;br /&gt;
* [http://azure.microsoft.com/ Microsoft Azure]&lt;br /&gt;
* [https://cloud.google.com/ Google Cloud]&lt;br /&gt;
&lt;br /&gt;
Pilveteenuse tarkvara:&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/OpenStack OpenStack]&lt;br /&gt;
&lt;br /&gt;
Näide: Azure&lt;br /&gt;
&lt;br /&gt;
[[Azure märkmed]]&lt;br /&gt;
&lt;br /&gt;
==== Google appengine, database api, google bigtable and file system stack ====&lt;br /&gt;
&lt;br /&gt;
http://cloud.google.com/appengine/ AppEngine on nüüd osa Google Cloud platvormist&lt;br /&gt;
&lt;br /&gt;
[[Hajutatud failisüsteemide märkmed loengust]]&lt;br /&gt;
&lt;br /&gt;
== Lisamaterjalid ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hajutatud andmekogude integreerimine ===&lt;br /&gt;
&lt;br /&gt;
: [http://momjian.us/main/writings/pgsql/replication.pdf Postgres replication intro]&lt;br /&gt;
: [http://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling Postgres clustering and replication]&lt;br /&gt;
: [http://www.postgresql.org/docs/current/interactive/high-availability.html Postgres high availability]&lt;br /&gt;
: [http://goanna.cs.rmit.edu.au/~e76763/tiger_ref/lkmt10-dnis.pdf Integrating distributed sem web data]&lt;br /&gt;
: [http://docs.oracle.com/cd/B28359_01/server.111/b28318/integrat.htm Oracle information integration]&lt;br /&gt;
&lt;br /&gt;
=== Varu ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[võrgurakendused 2: täiendavad lingid]]&lt;br /&gt;
* [[Sehke speci draft]]&lt;br /&gt;
&amp;lt;!--* [[katse]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Tammet</name></author>
	</entry>
</feed>