=============================== Day 29: Tuesday, April 22, 2014 =============================== 0. Read `How the Bitcoin protocol actually works `__. Additional reading: `The future of the blockchain `__; `Bitcoin tutorial `__ 1. `Quiz. `__ 2. Bitcoin discussion points - tries to work well in an imperfect world: attackers, latency - notice how synchronization is a hard problem? - asymmetry in computing: used for validation, verification - random algorithms used to break ties (blockchain): look up `skip lists `__, my `PyCon talk last year `__ `(video) `__ `Is Bitcoin a plot by the NSA? `__ My theory: is Bitcoin about testing the reliability of certain cryptographic operations? 3. Contention, locking, and ACID. See: `Atomicity, Consistency, Isolation, Durability (ACID) `__. Note, locking is *expensive*. a. read `Transactions `__, through the 5th paragraph ("Another important property...") b. read `Transaction isolation `__, up to 13.2.1 (through "To set the transaction isolation level...") `(Presentation) `__ c. for each transaction isolation level, list out one or more applications for which those guarantees are either probably or certainly sufficient for reliable performance (think worst case for "certainly"!) In table-sized groups of 4-8, please list out 1 or more applications for each isolation level, annotated as "probably" or "certainly" sufficient. `(List them out here) `__ 4. SIRS forms. .. stickies .. sirs forms .. pencils? from cse? .. diagram: serial locks; concurrent transaction locks; etc; connect to version control!