├── .gitignore ├── 1. Message Structure ├── Homework.ipynb ├── Lesson.ipynb ├── answers.py ├── complete.py ├── ping_pong.py ├── safu.txt └── utils.py ├── 2. Reading Version Messages ├── Answers.ipynb ├── Lesson.ipynb ├── lib.py └── utils.py ├── 3. Composing Version Messages ├── Answers.ipynb ├── Lesson.ipynb ├── answers.py ├── exercises.py └── lib.py ├── 4. Crawling The Bitcoin Network ├── DB.ipynb ├── DNS.ipynb ├── Lesson.ipynb ├── Tor.ipynb ├── async_client.py ├── async_crawler.py ├── async_lib.py ├── async_server.py ├── crawler.py ├── crawler_five.py ├── crawler_four.py ├── crawler_one.py ├── crawler_seven.py ├── crawler_six.py ├── crawler_three.py ├── crawler_two.py ├── db.py ├── db_one.py ├── db_three.py ├── db_two.py ├── lib.py ├── race_condition_demo.py └── thread_demo.py ├── 5. Initial Block Download ├── Lesson.ipynb ├── README.md ├── block.png ├── block.py ├── data.py ├── genesis.png ├── ibd_threaded.py ├── lib.py ├── network.py ├── node.py ├── op.py ├── script.py ├── simulation.py ├── solutions │ ├── block.py │ ├── data.py │ ├── lib.py │ ├── network.py │ ├── node.py │ ├── op.py │ ├── script.py │ ├── simulation.py │ └── tx.py └── tx.py ├── README.md ├── images ├── bytes.png ├── dig.png ├── empty-list.png ├── git.png ├── jupyter.png ├── magic-values.png ├── message-structure.png ├── netaddr-timestamp.png ├── network-address.png ├── other-services.png ├── prompt.png ├── services.png ├── varstr.png └── version-message.png └── requirements.txt /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/.gitignore -------------------------------------------------------------------------------- /1. Message Structure/Homework.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/1. Message Structure/Homework.ipynb -------------------------------------------------------------------------------- /1. Message Structure/Lesson.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/1. Message Structure/Lesson.ipynb -------------------------------------------------------------------------------- /1. Message Structure/answers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/1. Message Structure/answers.py -------------------------------------------------------------------------------- /1. Message Structure/complete.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/1. Message Structure/complete.py -------------------------------------------------------------------------------- /1. Message Structure/ping_pong.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/1. Message Structure/ping_pong.py -------------------------------------------------------------------------------- /1. Message Structure/safu.txt: -------------------------------------------------------------------------------- 1 | fundsaresafu 2 | -------------------------------------------------------------------------------- /1. Message Structure/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/1. Message Structure/utils.py -------------------------------------------------------------------------------- /2. Reading Version Messages/Answers.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/2. Reading Version Messages/Answers.ipynb -------------------------------------------------------------------------------- /2. Reading Version Messages/Lesson.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/2. Reading Version Messages/Lesson.ipynb -------------------------------------------------------------------------------- /2. Reading Version Messages/lib.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/2. Reading Version Messages/lib.py -------------------------------------------------------------------------------- /2. Reading Version Messages/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/2. Reading Version Messages/utils.py -------------------------------------------------------------------------------- /3. Composing Version Messages/Answers.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/3. Composing Version Messages/Answers.ipynb -------------------------------------------------------------------------------- /3. Composing Version Messages/Lesson.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/3. Composing Version Messages/Lesson.ipynb -------------------------------------------------------------------------------- /3. Composing Version Messages/answers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/3. Composing Version Messages/answers.py -------------------------------------------------------------------------------- /3. Composing Version Messages/exercises.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/3. Composing Version Messages/exercises.py -------------------------------------------------------------------------------- /3. Composing Version Messages/lib.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/3. Composing Version Messages/lib.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/DB.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/DB.ipynb -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/DNS.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/DNS.ipynb -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/Lesson.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/Lesson.ipynb -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/Tor.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/Tor.ipynb -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/async_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/async_client.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/async_crawler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/async_crawler.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/async_lib.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/async_lib.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/async_server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/async_server.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/crawler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/crawler.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/crawler_five.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/crawler_five.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/crawler_four.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/crawler_four.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/crawler_one.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/crawler_one.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/crawler_seven.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/crawler_seven.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/crawler_six.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/crawler_six.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/crawler_three.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/crawler_three.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/crawler_two.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/crawler_two.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/db.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/db.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/db_one.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/db_one.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/db_three.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/db_three.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/db_two.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/db_two.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/lib.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/lib.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/race_condition_demo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/race_condition_demo.py -------------------------------------------------------------------------------- /4. Crawling The Bitcoin Network/thread_demo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/4. Crawling The Bitcoin Network/thread_demo.py -------------------------------------------------------------------------------- /5. Initial Block Download/Lesson.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/Lesson.ipynb -------------------------------------------------------------------------------- /5. Initial Block Download/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/README.md -------------------------------------------------------------------------------- /5. Initial Block Download/block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/block.png -------------------------------------------------------------------------------- /5. Initial Block Download/block.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/block.py -------------------------------------------------------------------------------- /5. Initial Block Download/data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/data.py -------------------------------------------------------------------------------- /5. Initial Block Download/genesis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/genesis.png -------------------------------------------------------------------------------- /5. Initial Block Download/ibd_threaded.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/ibd_threaded.py -------------------------------------------------------------------------------- /5. Initial Block Download/lib.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/lib.py -------------------------------------------------------------------------------- /5. Initial Block Download/network.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/network.py -------------------------------------------------------------------------------- /5. Initial Block Download/node.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/node.py -------------------------------------------------------------------------------- /5. Initial Block Download/op.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/op.py -------------------------------------------------------------------------------- /5. Initial Block Download/script.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/script.py -------------------------------------------------------------------------------- /5. Initial Block Download/simulation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/simulation.py -------------------------------------------------------------------------------- /5. Initial Block Download/solutions/block.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/solutions/block.py -------------------------------------------------------------------------------- /5. Initial Block Download/solutions/data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/solutions/data.py -------------------------------------------------------------------------------- /5. Initial Block Download/solutions/lib.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/solutions/lib.py -------------------------------------------------------------------------------- /5. Initial Block Download/solutions/network.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/solutions/network.py -------------------------------------------------------------------------------- /5. Initial Block Download/solutions/node.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/solutions/node.py -------------------------------------------------------------------------------- /5. Initial Block Download/solutions/op.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/solutions/op.py -------------------------------------------------------------------------------- /5. Initial Block Download/solutions/script.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/solutions/script.py -------------------------------------------------------------------------------- /5. Initial Block Download/solutions/simulation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/solutions/simulation.py -------------------------------------------------------------------------------- /5. Initial Block Download/solutions/tx.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/solutions/tx.py -------------------------------------------------------------------------------- /5. Initial Block Download/tx.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/5. Initial Block Download/tx.py -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/README.md -------------------------------------------------------------------------------- /images/bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/bytes.png -------------------------------------------------------------------------------- /images/dig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/dig.png -------------------------------------------------------------------------------- /images/empty-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/empty-list.png -------------------------------------------------------------------------------- /images/git.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/git.png -------------------------------------------------------------------------------- /images/jupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/jupyter.png -------------------------------------------------------------------------------- /images/magic-values.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/magic-values.png -------------------------------------------------------------------------------- /images/message-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/message-structure.png -------------------------------------------------------------------------------- /images/netaddr-timestamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/netaddr-timestamp.png -------------------------------------------------------------------------------- /images/network-address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/network-address.png -------------------------------------------------------------------------------- /images/other-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/other-services.png -------------------------------------------------------------------------------- /images/prompt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/prompt.png -------------------------------------------------------------------------------- /images/services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/services.png -------------------------------------------------------------------------------- /images/varstr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/varstr.png -------------------------------------------------------------------------------- /images/version-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/images/version-message.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/justinmoon/network-programming/HEAD/requirements.txt --------------------------------------------------------------------------------