# Lido x The Mu @ Buenos Aires <center> To enter this page scan: </center> <center> <img src="https://hackmd.io/_uploads/r16s08jeR.png" width="300"> </center> Lido's Community Lifeguards are excited to work with The Mu as part of the [Community Staking Fleet program](https://research.lido.fi/t/community-staking-fleet-pilot/6606) to help grow the amount of solo/home stakers in Ethereum. <center> <img src="https://hackmd.io/_uploads/BJn46ZoxC.png" alt="LidoxMuBuenos" width="200" /> </center> 1. Join the Discord community: https://discord.gg/lido 2. Claim your OAT to get access to the private Community Staking section: https://app.galxe.com/quest/lido/GCcCpthDAP ## Session 4 ### Issuance changes -- Reading list #### Blog posts: - Simplified Active Validator Cap and Rotation Proposal Vitalik Buterin, 21-03-2021 https://ethresear.ch/t/simplified-active-validator-cap-and-rotation-proposal/9022 - Minimum Viable Issuance Anders Elowsson, 07-10-2023 https://notes.ethereum.org/@anderselowsson/MinimumViableIssuance - Properties of issuance level (part 1) Anders Elowsson, 10-01-2024 https://notes.ethereum.org/@anderselowsson/HyUIqjo_6 - Properties of issuance level: consensus incentives and variability across potential reward curves Anders Elowsson, 24-01-2024 https://ethresear.ch/t/properties-of-issuance-level-consensus-incentives-and-variability-across-potential-reward-curves/18448 - Electra: Issuance Curve Adjustment Proposal Caspar Schwartz-Schilling & Ansgar Dietrichs, 21-02-2024 https://ethereum-magicians.org/t/electra-issuance-curve-adjustment-proposal/18825 - Endgame Staking Economics: A Case for Targeting Caspar Schwartz-Schilling & Ansgar Dietrichs, 21-02-2024 https://ethresear.ch/t/endgame-staking-economics-a-case-for-targeting/18751 - Initial Analysis of Stake Distribution Julian, 15-03-2024 https://ethresear.ch/t/initial-analysis-of-stake-distribution/19014 - Issuance Issues — Initial Issue Mike Neuder, 25-03-2024 https://notes.ethereum.org/@mikeneuder/iiii - Reward curve with tempered issuance: EIP research post Anders Elowsson, 01-04-2024 https://ethresear.ch/t/reward-curve-with-tempered-issuance-eip-research-post/19171 - Foundations of minimum viable issuance Anders Elowsson, 02-04-2024 https://notes.ethereum.org/@anderselowsson/Foundations-of-MVI - Reward curve with capped issuance Anders Elowsson, 18-04-2024 https://notes.ethereum.org/@anderselowsson/Reward-curve-with-capped-issuance - Some thoughts on MVI Sacha Yves, 07-11-2023 - Some personal musings on the Ethereum issuance debate Sacha Yves, 24-04-2024 https://hackmd.io/@sacha/ethereum-issuance-debate-personal-thoughts #### Video resources: - https://www.ucc2.xyz/podcast/episode/28ec02cd/ethereums-staking-endgame - https://www.galaxy.com/insights/podcasts/infinite-jungle/is-ethereum-printing-too-much-eth/ ### Restaking - [EigenLayer Whitepaper](https://2039955362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPy2Kmkwju3mPSo9jrKKt%2Fuploads%2F2dCfPgItRfQbX25KriQv%2Fwhitepaper.pdf?alt=media&token=d4d94480-3f01-4e63-bc92-a0658ea37aab) - [EigenLayer Docs](https://docs.eigenlayer.xyz/eigenlayer/overview/) ## Session 3 Applications for SimpleDVT testnet #4 with SSV is still open: https://forms.gle/SXGjCuKwq8usNQk1A ### Glossary - **Block**: A block is a package of data that contains records of transactions completed during a given time period on a blockchain network. Each block is linked to the one before it, creating an immutable chain of records. - **Full node**: A node that fully validates transactions and blocks on a blockchain. These download every block and transaction and check them against the network's consensus rules. Full nodes also help the network by accepting transactions from other nodes and broadcasting them to the network. - **Validator node**: A node in a blockchain network that participates in the consensus process. Validators are responsible for proposing new blocks and/or voting on block validity. - **Attestation**: Votes by validators which confirm the validity of a block. - **MEV**: Maxmium Extractable Value refers to the maximum value that can be extracted from block production in excess of the standard block reward and gas fees by including, excluding, or reordering transactions. This often involves strategies like front-running, where a user or validator manipulates transaction order to capitalize on pending transactions. - **PBS**: Proposer-Builder Separation (PBS) is a protocol design that separates the roles of proposing and building blocks in blockchain networks. This separation aims to enhance censorship resistance and fairness in transaction inclusion and ordering, by preventing proposers from having full control over the composition of a block. ### Anatomy of a block & validator economics - [How does the NEW Ethereum work?](https://www.preethikasireddy.com/post/how-does-the-new-ethereum-work) - [Blocks (ethereum.org)](https://ethereum.org/en/developers/docs/blocks/) - [Ethereum Transaction Visualizer - TxStreet.com](https://txcity.io/v/eth) - [Time, slots, and the ordering of events in Ethereum Proof-of-Stake](https://www.paradigm.xyz/2023/04/mev-boost-ethereum-consensus#unforeseen-consequences) - [ETH2 Book - Rewards](https://eth2book.info/capella/part2/incentives/rewards/) ## Session 2 -- DVT Workshop with SSV 1. Join the Discord community: https://discord.gg/lido 2. Claim your OAT to get access to the private Community Staking section: https://app.galxe.com/quest/lido/GCcCpthDAP ### Resources - Introduction to DVT presentation - https://docs.ssv.network/operator-user-guides/operator-node - https://www.docker.com/products/docker-desktop/ - https://holesky-faucet.pk910.de/ ### Steps 1. Create ssv/dkg and ssv/operator folders 2. Go to the ssv/operator folder 3. Generate password ``` echo "<MY_OPERATOR_PASSWORD>" >> password ``` 4. Key pair generation ``` docker run --name ssv-node-key-generation -v "$(pwd)/password":/password -it "bloxstaking/ssv-node:latest" /go/bin/ssvnode generate-operator-keys --password-file=password && docker cp ssv-node-key-generation:/encrypted_private_key.json ./encrypted_private_key.json && docker rm ssv-node-key-generation ``` 6. Copy the public key on `encrypted_private_key.json ` 7. Register your operator on SSV (Holesky) https://app.ssv.network/ with the public key. Please ask for Holesky ETH if you don't have any. 8. Create onfig.yaml file doing `vim config.yaml` with this content: ``` global: # Console output log level LogLevel: info # Debug logs file path LogFilePath: ./data/debug.log # Number of log files preserved (roughly equivalent to number of days) # Increase if you want to preserve log files for longer. This would require more disk space LogFileBackups: 10 db: # Path to a persistent directory to store the node's database. Path: ./data/db ssv: # The SSV network to join to # Mainnet = Network: mainnet (default) # Testnet (Goerli) = Network: jato-v2 # Testnet (Holesky) = Network: holesky Network: holesky ValidatorOptions: # Whether to enable MEV block production. Requires the connected Beacon node to be MEV-enabled. BuilderProposals: false eth2: # HTTP URL of the Beacon node to connect to. BeaconNodeAddr: http://200.88.176.110:3500 eth1: # WebSocket URL of the Eth1 node to connect to. ETH1Addr: ws://200.88.176.110:8546/ws p2p: # Optionally provide the external IP address of the node, if it cannot be automatically determined. # HostAddress: 192.168.1.1 # Optionally override the default TCP & UDP ports of the node. # TcpPort: 13001 # UdpPort: 12001 KeyStore: PrivateKeyFile: ./encrypted_private_key.json PasswordFile: ./password # This enables monitoring at the specified port, see https://docs.ssv.network/run-a-node/operator-node/maintenance/monitoring MetricsAPIPort: 15000 ``` 9. Run the node ``` docker run --restart unless-stopped --name ssv_node-test -e \ CONFIG_PATH=/config.yaml -p 13002:13002 -p 12002:12002/udp -p 15002:15002 \ -v "$(pwd)/config.yaml":/config.yaml \ -v "$(pwd)":/data \ -v "$(pwd)/password":/password \ -v "$(pwd)/encrypted_private_key.json":/encrypted_private_key.json \ -it "bloxstaking/ssv-node:latest" make BUILD_PATH="/go/bin/ssvnode" start-node ``` 10. Exit the ssv/operator folder 11. Copy password and private key ``` cp -r ssv/operator/password ssv/dkg/ cp -r ssv/operator/encrypted_private_key.json ssv/dkg/ ``` 12. Create operator.yaml with `vim operator.yaml` ``` privKey: ./encrypted_private_key.json privKeyPassword: ./password operatorID: <YOUR_OPERATOR_ID> port: 3030 logLevel: info logFormat: json logLevelFormat: capitalColor logFilePath: /data/debug.log outputPath: /data/output ``` 13. Run the DKG server ``` docker run -u $(id -u):$(id -g) --restart unless-stopped --name ssv_dkg -p 3030:3030 -v "$(pwd)":/data -it "bloxstaking/ssv-dkg:latest" start-operator --configPath /data/operator.yaml ``` 14. Enti will form the cluster(s) and upload the keystore. --- Alternative (for those that got a `/ssl/tls.crt: no such file or directory` error): 13. Create docker-compose.yml file doing `vim docker-compose.yml` ``` version: '3' services: ssv_dkg: image: bloxstaking/ssv-dkg:latest environment: - UID=${UID:-1000} - GID=${GID:-1000} restart: unless-stopped ports: - "3030:3030" - "80:80" - "443:443" volumes: - "${PWD}:/data" - ./data/certbot/conf:/etc/letsencrypt - ./data/certbot/www:/var/www/certbot command: start-operator --configPath /data/operator.yaml user: "${UID}:${GID}" ``` 14. Run `docker compose up`. ## Session 1 -- Ethereum Staking Roundtable ### Intro to the Lido x muBuenos program - muBuenos is part of the Community Staking Fleet pilot - Sessions every Tuesday and Thursdays - OAT (claim above) allows you to claim the `community-staker` role on Discord, connect with other stakers and other community-exclusive perks. ### Reading list: #### What’s a home/solo staker, why are they important and how to become one - [Run a node (ethereum.org)](https://ethereum.org/en/run-a-node/) - [Enhancing Ethereum's security with Latin America: Introducing KipuStakers and the current state of staking in the region.](https://mirror.xyz/ethkipu.eth/JhxjdiPCuIAFG-l8ebC7vpFFE70yP3wAJ8mgGEj7P58) - [EthStaker Knowledge Base](https://docs.ethstaker.cc/ethstaker-knowledge-base) - [Rhino Review - Etheruem Staking Journal](https://rhinoreview.substack.com/) - [RocketPool Atlas Update](https://docs.rocketpool.net/guides/atlas/whats-new) - [Lido Staking Router](https://github.com/lidofinance/lido-improvement-proposals/blob/develop/LIPS/lip-20.md) - [Light Client Bridges](https://defi.sucks/insights/lc-bridges) - Join EthStaker: https://discord.gg/ethstaker #### Liquid staking - [Modular Money: Liquid Staking for People in a Hurry](https://dba.xyz/modular-money-liquid-staking-for-people-in-a-hurry/) - [Ethereum Staking 🥩 by Hildobby](https://dune.com/hildobby/eth2-staking) #### Relevant staking EIPs on the Pectra Hard Fork (EIPs 6110, 7002, 7251, 7547) - [Pectra Network Upgrade Metathread](https://ethereum-magicians.org/t/pectra-network-upgrade-meta-thread/16809) #### Staking issuance and targeting. How can we best reach staking equilibrium in a way that keeps Ethereum healthy? - [Minimum Viable Issuance](https://twitter.com/weboftrees/status/1710704461750944190) - [Some thoughts on MVI](https://hackmd.io/@sacha/thoughts-on-mvi) - [Endgame Staking Economics: A Case for Targeting](https://ethresear.ch/t/endgame-staking-economics-a-case-for-targeting/18751)