P2P
Note that this section depends on reviewing the network propagation resources of the mining and network propagation seminar. If you are doing these out of order, please take a look at that section first.
Content | Time (min) |
---|---|
25 | |
45 | |
60 | |
20 | |
20 | |
75 | |
50 | |
15 | |
90 |
- Will Clark has an updated fork of tinybitcoinpeer, a 200 line python program that allows you to explore the Bitcoin p2p network.
- 1.Given the attack surface in P2P, is running a full node worth it?
- 2.How many honest nodes do you need to be connected to be sure you are connected to the right network/blockchain?
- 3.Does it make sense to have separate networks which are more resistant against p2p attacks, and regular nodes will keep at least one connection to them if they choose so?
- 1.What is the reasoning behind the max inbound and max outbound defaults? For which type of user would they be considered ideal, and when might they be optimized?
- 2.What is the rationale behind the "new"/"tried" table design? Were there any prior inspirations within the field of distributed computing?
- 3.How are anchor connections chosen? In what circumstances would you evict or change them?
- 4.What are feeler connections, and when are they used?
- 1.What can an attacker do if they are able to eclipse a mining pool?
- 2.What is the difficulty of successfully achieving an eclipse attack? What resources and skills would be required to achieve such an attack?
- 1.Why must transaction unlocking scripts only push numbers to be relayed?
- 2.What output scripts are 'IsStandard'?
- 3.Why must transactions be no less than 82 bytes to be relayed?
- 4.Why is the blockheight now encoded in the coinbase transaction?
- 1.How does "diffusion" message spreading work and why is it ineffective against de-anonymization?
Last modified 3mo ago