mirror of
https://github.com/autistic-symposium/mev-toolkit.git
synced 2025-12-15 16:28:51 -05:00
🥓 rename the merge to nodes
This commit is contained in:
parent
5263304cb2
commit
fa2ddd3999
5 changed files with 2 additions and 2 deletions
129
nodes/README.md
Normal file
129
nodes/README.md
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
# 🍄 a pos brave new world
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
## articles
|
||||
|
||||
<br>
|
||||
|
||||
* [Ethereum Proof-of-Stake Consensus Specifications](https://github.com/ethereum/consensus-specs/tree/dev/specs)
|
||||
* [Increasing censorship resistance of transactions under proposer/builder separation (PBS), by Vitalik et al](https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance)
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
---
|
||||
|
||||
## nodes and validators stats
|
||||
|
||||
<br>
|
||||
|
||||
* [ethereum.org launchpad](https://launchpad.ethereum.org/en/)
|
||||
* [official beacon chain explorer](https://beaconscan.com/)
|
||||
* [another beacon chain explorer](https://beaconcha.in/)
|
||||
* [prater/goerli beacon chain explorer](https://prater.beaconcha.in/)
|
||||
* [beacon chain validator ratings](https://www.rated.network/)
|
||||
* [list of nodes as a service](https://ethereumnodes.com/)
|
||||
* [node watch](https://www.nodewatch.io/)
|
||||
* [archive node access](https://archivenode.io/)
|
||||
* [list of nodes as a service](https://ethereum.org/en/developers/docs/nodes-and-clients/nodes-as-a-service/)
|
||||
* [economics post-merge](https://docs.google.com/spreadsheets/d/15tmPOvOgi3wKxJw7KQJKoUe-uonbYR6HF7u83LR5Mj4/edit#gid=1018097491)
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
### consensus layer
|
||||
|
||||
* [client diversity vs. prysm usage](https://pools.invis.cloud/)
|
||||
* [consensus clients comparisons](https://www.slashed.info/)
|
||||
|
||||
<br>
|
||||
|
||||
### execution layer
|
||||
|
||||
* [ethereum mainnet stats](https://ethernodes.org/)
|
||||
* [execution clients tracker](https://etherscan.io/nodetracker)
|
||||
|
||||
<br>
|
||||
|
||||
### both layers
|
||||
|
||||
* [project sunshine](https://ethsunshine.com/)
|
||||
* [clients diversity](https://clientdiversity.org/)
|
||||
|
||||
<br>
|
||||
|
||||
----
|
||||
|
||||
## clients
|
||||
|
||||
<br>
|
||||
|
||||
### execution layer
|
||||
|
||||
* [geth](https://geth.ethereum.org/)
|
||||
* [nethermind](https://nethermind.io/)
|
||||
* [besu](https://besu.hyperledger.org/en/stable/)
|
||||
* [erigon](https://github.com/ledgerwatch/erigon)
|
||||
* [akula](https://akula.app/)
|
||||
* [execution api specification](https://github.com/ethereum/execution-apis)
|
||||
|
||||
<br>
|
||||
|
||||
### consensus layer
|
||||
|
||||
* [prysm](https://github.com/prysmaticlabs/prysm)
|
||||
* [lighthouse](https://github.com/sigp/lighthouse)
|
||||
* [teku](https://github.com/ConsenSys/teku)
|
||||
* [nimbus](https://nimbus.team/)
|
||||
* [lodestar](https://lodestar.chainsafe.io/)
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
### engine api
|
||||
|
||||
* [engine api docs](https://github.com/ethereum/execution-apis/blob/main/src/engine/specification.md)
|
||||
* [ethereum json-rpc api](https://ethereum.org/en/developers/docs/apis/json-rpc/)
|
||||
|
||||
<br>
|
||||
|
||||
---
|
||||
|
||||
|
||||
## lexicon
|
||||
|
||||
<br>
|
||||
|
||||
* **attestation**: at designated times, each validator is responsible for publishing different attestations that formally declare this validator's view of the chain, including the last finalized checkpoint and the current head of the chain.
|
||||
|
||||
* **block time**: the time interval between blocks being added to the blockchain.
|
||||
|
||||
* **block proposer**: the specific validator chosen to create a block in a particular slot.
|
||||
|
||||
* **base fee**: every block's reserve price known. It is the minimum gas fee a user must pay to include a transaction in the next block.
|
||||
|
||||
* **LMD-GHOST**: latest message drive greediest heaviest observed subtree, the fork choice rule determining which block is viewed as the current chain head.
|
||||
|
||||
* **Casper-FFG**: proof-of-stake consensus protocol used in conjunction with the LMD-GHOST fork choice algorithm to allow consensus clients to agree on the head of the Beacon Chain.
|
||||
|
||||
* **Gasper**: Ethereum’s PoS implementation, a combination of the LMD-GHOST fork choice rule, Casper FFG, and the specific reward/penalty scheme.
|
||||
|
||||
* **RANDAO**: random number generation scheme used to select block proposers, sort validators into committees, etc.
|
||||
|
||||
* **BLS**: cryptographic signature scheme used for validator attestations.
|
||||
|
||||
* **inactivity leak**: validators which don’t submit attestations are penalized if the chain stops finalizing.
|
||||
|
||||
* **slashing**: validators which maliciously propose or attest to multiple blocks at the same height have their stake reduced.
|
||||
|
||||
* **proposer boost**: a modification to LMD-GHOST giving additional weight to blocks proposed earlier in the slot to defend against avalanche attacks, see an explanation of a 7-block reorg in the beacon chain while this update was being rolled out.
|
||||
|
||||
* **distributed hash table (DHT)**: data structure containing (key, value) pairs used by Ethereum nodes to identify peers to connect to and determine which protocols to use to communicate.
|
||||
|
||||
* **committee**: group of at least 128 validators assigned to validate blocks in each slot. One of the validators in the committee is the aggregator.
|
||||
|
||||
|
||||
|
||||
|
||||
65
nodes/more-on-validators.md
Normal file
65
nodes/more-on-validators.md
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
## 🍕 More dets on validators
|
||||
|
||||
<br>
|
||||
|
||||
### tl;dr
|
||||
|
||||
<br>
|
||||
|
||||
- the validator is responsible for creating a new block and sending it out to other nodes on the network.
|
||||
- to participate as a validators, a user must deposit 32 ETH into the deposit contract and run 3 pieces of software:
|
||||
- an execution client
|
||||
- a consensus client
|
||||
- the engine api
|
||||
- once activated, validators receive new blocsk from peers (the txs delivered in the block are re-executed, and the block signature is checked).
|
||||
- the validator then sends a vote (attestation) in favor of that block across the network.
|
||||
- the timing of blocks is not determined by the mining difficult anymore, but it's fixed:
|
||||
- slots (12 seconds)
|
||||
- epochs (32 slots)
|
||||
- in every slot, a committee of validators is randomly chosen, whose votes are used to determine the validity of the block being proposed.
|
||||
- the first block in each epoch is a checkpoint.
|
||||
|
||||
<br>
|
||||
|
||||
### validator lifecycle
|
||||
|
||||
<br>
|
||||
|
||||
The sequence of states that a validator can exist in:
|
||||
|
||||
1. deposited: At least 32 ETH has been deposited to the deposit contract by the validator.
|
||||
2. pending: the validator is in the activation queue waiting to be voted into the network by existing validators.
|
||||
3. active: currently attesting and proposing blocks.
|
||||
4. slashing: the validator has misbehaved and is being slashed.
|
||||
5. exiting: the validator has been flagged for exiting the network, either voluntarily or because they have been ejected.
|
||||
|
||||
<br>
|
||||
|
||||
### the JSON-RPC interface
|
||||
|
||||
<br>
|
||||
|
||||
* interface that allows us to write programs that use an Ethereum client as a gateway to an Ethereum network and blockchain.
|
||||
* the RPC interface is offered as an HTTP service on port 8545. For security reasons it is restricted, by default, to only accept connections from localhost.
|
||||
|
||||
<br>
|
||||
|
||||
### setting a dedicated hardware
|
||||
|
||||
<br>
|
||||
|
||||
* [check estimate of the blockchain size](https://bitinfocharts.com/ethereum/).
|
||||
* minimum specs:
|
||||
- CPU with 4+ cores
|
||||
- 32 GB+ RAM
|
||||
- fast SSD with at least 1T free space
|
||||
- interent bandwith ~1.2-1.3 GB download and ~0.9-1 GB upload per hour
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
53
nodes/running-a-node.md
Normal file
53
nodes/running-a-node.md
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
## 🌭 Running a node
|
||||
|
||||
<br>
|
||||
|
||||
### resources
|
||||
|
||||
<br>
|
||||
|
||||
* [ethereum.org official page on becoming a validator](https://launchpad.ethereum.org/en/overview)
|
||||
* [ethereum.org official page on running a node](https://ethereum.org/en/run-a-node/)
|
||||
* [ethub docs on running a node](https://docs.ethhub.io/using-ethereum/running-an-ethereum-node/)
|
||||
|
||||
<br>
|
||||
|
||||
### infrastructure
|
||||
|
||||
<br>
|
||||
|
||||
* [eth docker](https://eth-docker.net/docs/About/Overview)
|
||||
* [staking deposit cli](https://github.com/ethereum/staking-deposit-cli)
|
||||
|
||||
<br>
|
||||
|
||||
### light nodes
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
* [running a light node with geth](https://ethereum.org/en/developers/tutorials/run-light-node-geth/)
|
||||
|
||||
<br>
|
||||
|
||||
### testnets
|
||||
|
||||
<br>
|
||||
|
||||
##### goerli
|
||||
|
||||
<br>
|
||||
|
||||
* [goerli launchpad](https://goerli.launchpad.ethereum.org/en/)
|
||||
* [run a node on goerli/prater](https://notes.ethereum.org/@launchpad/goerli)
|
||||
|
||||
<br>
|
||||
|
||||
##### kiln
|
||||
|
||||
<br>
|
||||
|
||||
* [kiln launchpad](https://notes.ethereum.org/@launchpad/kiln) (and [here](https://kiln.launchpad.ethereum.org/en/))
|
||||
* [running kiln testnet on a rasp pi 4](https://ethereum.org/en/developers/tutorials/run-node-raspberry-pi/)
|
||||
|
||||
|
||||
11
nodes/staking.md
Normal file
11
nodes/staking.md
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
## 🥓 Staking
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
### Staking protocols
|
||||
|
||||
<br>
|
||||
|
||||
* [Rocketpool](https://rocketpool.net/)
|
||||
Loading…
Add table
Add a link
Reference in a new issue