{"id":19460147,"url":"https://github.com/offchainlabs/eth-pos-devnet","last_synced_at":"2025-04-06T18:17:55.843Z","repository":{"id":76743780,"uuid":"526355741","full_name":"OffchainLabs/eth-pos-devnet","owner":"OffchainLabs","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-13T21:55:16.000Z","size":19413,"stargazers_count":128,"open_issues_count":25,"forks_count":157,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-30T17:08:48.153Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OffchainLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-18T19:57:21.000Z","updated_at":"2025-03-23T12:07:22.000Z","dependencies_parsed_at":"2023-03-20T22:18:47.488Z","dependency_job_id":"d3707cfb-8017-456a-bd37-65e458a191ed","html_url":"https://github.com/OffchainLabs/eth-pos-devnet","commit_stats":null,"previous_names":["rauljordan/eth-pos-devnet"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OffchainLabs%2Feth-pos-devnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OffchainLabs%2Feth-pos-devnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OffchainLabs%2Feth-pos-devnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OffchainLabs%2Feth-pos-devnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OffchainLabs","download_url":"https://codeload.github.com/OffchainLabs/eth-pos-devnet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247526770,"owners_count":20953143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T17:35:45.595Z","updated_at":"2025-04-06T18:17:55.820Z","avatar_url":"https://github.com/OffchainLabs.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ethereum Proof-of-Stake Devnet\n\nThis repository provides a docker-compose file to run a fully-functional, local development network for Ethereum with proof-of-stake enabled. This configuration uses [Prysm](https://github.com/prysmaticlabs/prysm) as a consensus client and [go-ethereum](https://github.com/ethereum/go-ethereum) for execution. **It starts from proof-of-stake** and does not go through the Ethereum merge.\n\nThis sets up a single node development network with 64 deterministically-generated validator keys to drive the creation of blocks in an Ethereum proof-of-stake chain. Here's how it works:\n\n1. We initialize a go-ethereum, proof-of-work development node from a genesis config\n2. We initialize a Prysm beacon chain, proof-of-stake development node from a genesis config\n\nThe development net is fully functional and allows for the deployment of smart contracts and all the features that also come with the Prysm consensus client such as its rich set of APIs for retrieving data from the blockchain. This development net is a great way to understand the internals of Ethereum proof-of-stake and to mess around with the different settings that make the system possible.\n\n## Using\n\nFirst, install Docker. Then, run:\n\n```\ngit clone https://github.com/rauljordan/eth-pos-devnet \u0026\u0026 cd eth-pos-devnet\n./clean.sh\ndocker compose up -d\n```\n\nYou will see the following:\n\n```\n$ docker compose up -d\n[+] Running 7/7\n ⠿ Network eth-pos-devnet_default                          Created\n ⠿ Container eth-pos-devnet-geth-genesis-1                 Started\n ⠿ Container eth-pos-devnet-create-beacon-chain-genesis-1  Started\n ⠿ Container eth-pos-devnet-geth-account-1                 Started\n ⠿ Container eth-pos-devnet-geth-1                         Started\n ⠿ Container eth-pos-devnet-beacon-chain-1                 Started\n ⠿ Container eth-pos-devnet-validator-1                    Started\n```\n\nEach time you restart, you can wipe the old data using `./clean.sh`.\n\nNext, you can inspect the logs of the different services launched. \n\n```\ndocker logs eth-pos-devnet-geth-1 -f\n```\n\nand see:\n\n```\nINFO [08-19|00:44:30.956] Imported new potential chain segment     blocks=1 txs=0 mgas=0.000 elapsed=1.356ms     mgasps=0.000 number=50 hash=e0bd7f..497d27 dirty=0.00B\nINFO [08-19|00:44:31.030] Chain head was updated                   number=50 hash=e0bd7f..497d27 root=815538..801014 elapsed=1.49025ms\nINFO [08-19|00:44:35.215] Imported new potential chain segment     blocks=1 txs=0 mgas=0.000 elapsed=3.243ms     mgasps=0.000 number=51 hash=a5fb7c..5e844b dirty=0.00B\nINFO [08-19|00:44:35.311] Chain head was updated                   number=51 hash=a5fb7c..5e844b root=815538..801014 elapsed=1.73475ms\nINFO [08-19|00:44:39.435] Imported new potential chain segment     blocks=1 txs=0 mgas=0.000 elapsed=1.355ms     mgasps=0.000 number=52 hash=b2fd97..22e230 dirty=0.00B\nINFO [08-19|00:44:39.544] Chain head was updated                   number=52 hash=b2fd97..22e230 root=815538..801014 elapsed=1.167959ms\nINFO [08-19|00:44:42.733] Imported new potential chain segment     blocks=1 txs=0 mgas=0.000 elapsed=2.453ms     mgasps=0.000 number=53 hash=ee046e..e56b0c dirty=0.00B\nINFO [08-19|00:44:42.747] Chain head was updated                   number=53 hash=ee046e..e56b0c root=815538..801014 elapsed=\"821.084µs\"\n```\n\n# Available Features\n\n- Starts from the Capella Ethereum hard fork\n- The network launches with a [Validator Deposit Contract](https://github.com/ethereum/consensus-specs/blob/dev/solidity_deposit_contract/deposit_contract.sol) deployed at address `0x4242424242424242424242424242424242424242`. This can be used to onboard new validators into the network by depositing 32 ETH into the contract\n- The default account used in the go-ethereum node is address `0x123463a4b065722e99115d6c222f267d9cabb524` which comes seeded with ETH for use in the network. This can be used to send transactions, deploy contracts, and more\n- The default account, `0x123463a4b065722e99115d6c222f267d9cabb524` is also set as the fee recipient for transaction fees proposed validators in Prysm. This address will be receiving the fees of all proposer activity\n- The go-ethereum JSON-RPC API is available at http://geth:8545\n- The Prysm client's REST APIs are available at http://beacon-chain:3500. For more info on what these APIs are, see [here](https://ethereum.github.io/beacon-APIs/)\n- The Prysm client also exposes a gRPC API at http://beacon-chain:4000\n\n\u003cimg width=\"1631\" alt=\"5\" src=\"https://user-images.githubusercontent.com/5572669/186052294-70909835-210f-4b13-86a3-cf1f568bb8a3.png\"\u003e\n\u003cimg width=\"1693\" alt=\"3\" src=\"https://user-images.githubusercontent.com/5572669/186052298-54b82ff2-a901-482e-9e5a-a7c265605ad6.png\"\u003e\n\u003cimg width=\"1426\" alt=\"1\" src=\"https://user-images.githubusercontent.com/5572669/186052301-dd487b50-183a-4fa6-bbec-216f32d6f03a.png\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foffchainlabs%2Feth-pos-devnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foffchainlabs%2Feth-pos-devnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foffchainlabs%2Feth-pos-devnet/lists"}