This is the repository for the Ethereum Dev. Bootcamp from Alchemy University 2022. For more info visit https://university.alchemy.com/
Cryptographic fundamentals: hash functions, digital signatures, and public key cryptography.
Consensus mechanisms: proof of work, proof of stake, and proof of authority.
ECDSA Node, react frontend that communicates to centralized (trusted) backend to transfer funds between accounts.
The frontend requests a private key, it display account balance, and allows to send funds to another account (use account public key).
The Transfer function on the client signs the transaction for the backend to verify.
The backend verifies the signature and updates the account balances if everything checks out correct.
Using Rainbow table approach, find the color of the given hash from a list of known colors.
- hashMessage: Use keccak256 to hash the given message.
- signMessage: Sign the given message using the given private key.
- recoveryKey: Recover the public key from the given message, signature and recoveryBit.
- getAddress: Return the address of the given public key.
- addTransaction: Add a transaction to the mempool
- mine: Create a new block with uuid and ad it to our blocks array
- block hash: add to the new block the sha256 hash of the new block
- mine transaction: add to the new block a list of transactions from the mempool
- difficulty: add the new block if the hash of the new block is lower than the given difficulty
- toHash: hash the given block
- constructor: add a constructor to the Block class
- genesis: create a gennesis block in the Blockchain class
- addBlock: add a new block to the blockchain
- link blocks: link the blocks in the blockchain
- isValid: validate the blockchain, check that every block previousHash match the previous block's hash
Unspent Transaction Outputs (UTXO) and Account-based models.
Tree Data Structures: Binary Search Trees, Merkle Trees
Blockchain Data Storage: Merkle trees, Ethereum Tries.
- TXO: Create a transaction output class when executing a transaction,
- check that no input is already spent
- check that the input are greather or equal than the outputs transactions
- if a transaction is valid, update inputs uTXOSs as spent
- calculate a transaction fee for the miners
- PoS in Ethereum,
- How gas works,
- How ethereum accounts works,
- Work with JSON RPC,
- How to interact with the chain using ethers.js
Build your own Block Explorer in React using AlchemySDK
- Allow users to click on a block listed in the webpage to get the block's details including its list of transactions
- From the list of transactions allow users to click on specific transactions to get the details of the transaction
- Make an accounts page where a user can look up their balance or someone else's balance
- Solidity syntax and data types
- Intro to Hardhat
- Interacting with smart contracts