Day 29: Tuesday, April 22, 2014ΒΆ

  1. Read How the Bitcoin protocol actually works.

    Additional reading: The future of the blockchain; Bitcoin tutorial

  2. Quiz.

  3. 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?

  4. Contention, locking, and ACID.

    See: Atomicity, Consistency, Isolation, Durability (ACID). Note, locking is expensive.

    1. read Transactions, through the 5th paragraph (“Another important property...”)

    2. read Transaction isolation, up to 13.2.1 (through “To set the transaction isolation level...”)


    3. 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)

  5. SIRS forms.

Previous topic

Day 30: Thursday, April 24, 2014

Next topic

Homework 13

This Page

Edit this document!

This file can be edited directly through the Web. Anyone can update and fix errors in this document with few clicks -- no downloads needed.

  1. Go to Day 29: Tuesday, April 22, 2014 on GitHub.
  2. Edit files using GitHub's text editor in your web browser (see the 'Edit' tab on the top right of the file)
  3. Fill in the Commit message text box at the bottom of the page describing why you made the changes. Press the Propose file change button next to it when done.
  4. Then click Send a pull request.
  5. Your changes are now queued for review under the project's Pull requests tab on GitHub!

For an introduction to the documentation format please see the reST primer.