**WEB3 CODING BOOTCAMP AT BLOCKFUSELABS
WEEK 2**
The second week of my coding bootcamp was packed with new knowledge and hands-on experiences that built upon the foundation set in Week One. We focused on concepts such as peer-to-peer networks, hash algorithms, Merkle trees, Quasi-Turing Networks, Hierarchical Deterministic wallets, Uniswap, and Ethereum accounts. We even built a Hierarchical Deterministic wallet!
There's a clear difference between how data is transferred between a client and a server in Web3. Unlike in Web2, where the client sends a 'request' to the server and the server sends a 'response,' in Web3, both the client and server can send requests and responses. This is called a **peer-to-peer** network. Each entity in this network is called a node, and nodes can store, send, retrieve, and manipulate data.

**Hash algorithms** are one of the most fascinating concepts I've learned about. They involve passing an input through a hash function to get an output of a fixed length. Regardless of the size or type of the input, the output will always have the same length.
Here are a few properties of hash algorithms:
* You can't convert the output back to its input.
* You can't infer the input from its output.
* The output will always have a fixed length, regardless of the size or type of the input data.
**Merkle Tree** is a binary tree data structure used to validate all transactions in a block.
It involves hashing (using a hash function) the hash of transactions in an upward flow until only the root hash (Merkle root) remains.

So far, I've loved our classes and all the tasks given to us. I'm looking forward to achieving more in the subsequent weeks!