{"id":14958430,"url":"https://github.com/ethereum/docker-pyeth-dev","last_synced_at":"2025-09-30T08:31:11.606Z","repository":{"id":65984398,"uuid":"119640408","full_name":"ethereum/docker-pyeth-dev","owner":"ethereum","description":"Simple pyethapp development environment","archived":true,"fork":true,"pushed_at":"2018-04-27T06:38:40.000Z","size":72,"stargazers_count":7,"open_issues_count":3,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-29T14:02:30.489Z","etag":null,"topics":["casper","testnet"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"karlfloersch/docker-pyeth-dev","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ethereum.png","metadata":{"files":{"readme":"README.old.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-31T05:40:58.000Z","updated_at":"2025-02-12T12:19:51.000Z","dependencies_parsed_at":"2023-02-19T18:30:36.094Z","dependency_job_id":null,"html_url":"https://github.com/ethereum/docker-pyeth-dev","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ethereum/docker-pyeth-dev","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethereum%2Fdocker-pyeth-dev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethereum%2Fdocker-pyeth-dev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethereum%2Fdocker-pyeth-dev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethereum%2Fdocker-pyeth-dev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethereum","download_url":"https://codeload.github.com/ethereum/docker-pyeth-dev/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethereum%2Fdocker-pyeth-dev/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277652711,"owners_count":25854357,"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","status":"online","status_checked_at":"2025-09-30T02:00:09.208Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["casper","testnet"],"created_at":"2024-09-24T13:17:03.314Z","updated_at":"2025-09-30T08:31:11.352Z","avatar_url":"https://github.com/ethereum.png","language":"Shell","readme":"\n# Casper Pyethapp Development Environment Containers\nThis repository provides Docker containers for setting up a local Casper testnet as well\nas connecting to remote testnets.\n\n# Dependencies\n- `docker`\n- `docker-compose`\n\n# Sync Public Testnet\nTo sync with a public testnet, you will need to:\n\n1. Clone this repository, \n2. Create or import your keystore, and\n3. Start your node! You will need to provide a `bootstrap_node` of the form `enode://[NODE_PUB_KEY]@[NODE_IP_ADDR]:30303`.\nThe `NODE_PUB_KEY` is your bootstrap node's public key found in the `config.yaml`, and `NODE_IP_ADDR` is its IP address.\n\n\n```bash\n$ git clone git@github.com:karlfloersch/docker-pyeth-dev.git\n$ cd docker-pyeth-dev\n$ make new-account\n🌟 Creating keystore directory at ./validator/data/config/keystore\nmkdir -p ./validator/data/config/keystore\n🌟 Enter a new password to encrypt your account:\n🌟 Your password is stored at ./validator/data/config/password.txt\n🌟 Pyethapp container is creating new address for you, might take few seconds:\n\n$ make run-node bootstrap_node=enode://[NODE_PUB_KEY]@[NODE_IP_ADDR]:30303\n```\n\nIn the above example we created a new account. However, if you have a keystore you would like to use\nfeel free to copy and paste it into `./validator/data/config/keystore`. Note that your account keystore, blockchain, and logs are all stored in `./validator/data`\n\n#### To connect to our current public testnet, you can use: \n```bootstrap_node=enode://d3260a710a752b926bb3328ebe29bfb568e4fb3b4c7ff59450738661113fb21f5efbdf42904c706a9f152275890840345a5bc990745919eeb2dfc2c481d778ee@54.167.247.63:30303```\n\n## Running a Miner\nAt first, you will have no ETH so you may wish to spend some time mining. To do this simply run your node\nwith `mine_percent` as any number `1-100`. `mine_percent` specifies the percentage of your CPU you want to\ndedicate to mining. For instance, to start a miner using half your CPU you can run:\n```bash\n$ make run-node mine_percent=50 bootstrap_node=enode://[NODE_PUB_KEY]@[NODE_IP_ADDR]:30303\n```\n\n## Running a Validator\nOnce you have more ETH than the minimum accepted deposit size (currently set to `1500 ETH`), deposit your ETH and\nstart validating. For instance, your command may look something like:\n```bash\n$ make run-node validate=true deposit=1501 bootstrap_node=enode://[NODE_PUB_KEY]@[NODE_IP_ADDR]:30303\n```\n\n## Logging out and Withdrawing your ETH\nIf you would like to no longer validate and withdraw your ETH + rewards, you can logout. Note that logging out and \nwithdrawing is not instant and will take at least two epochs. If you would like to logout, stop your validator and\nthen run the following command:\n```bash\n$ make run-node validate=true logout=true bootstrap_node=enode://[NODE_PUB_KEY]@[NODE_IP_ADDR]:30303\n```\nYou can then watch the logs for `Changing validator state to: [VALIDATOR_STATE]` to see if your validator has\nsuccessfully logged out and submitted a withdrawl transaction. You can also use `web3` to check to see if your account\nbalance has updated to include your deposit plus your hard earned validation rewards.\n\n\n# Setup Local Testnet\nFirst start up the default bootstrap node \u0026 miner with:\n```\n$ docker-compose build\n$ docker-compose up\n```\n\nNext generate a new account with:\n```\n$ make new-account\n```\n\nThen send yourself some ETH with the faucet_util.py:\n```\n$ docker cp utils/faucet_util.py bootstrap:/ethereum/\n$ docker exec -it bootstrap bash\n$ # Logs into docker container\n$$ python faucet_util.py $FAUCET_PRIV_KEY $YOUR_ADDRESS localhost\n$$ # Check that the transaction worked with\n$$ python\n\u003e from web3 import Web3, HTTPProvider\n\u003e provider_uri = 'http://0.0.0.0:8545'\n\u003e web3 = Web3(HTTPProvider(provider_uri))\n\u003e web3.eth.getBalance($YOUR_ADDRESS)\n50000000000000000000  # Yay!\n```\n\nLogin to the network with your validator by running:\n```\n$ make run-node validate=true deposit=5000 network_name=dockerpyethdev_back bootstrap_node=enode://d3260a710a752b926bb3328ebe29bfb568e4fb3b4c7ff59450738661113fb21f5efbdf42904c706a9f152275890840345a5bc990745919eeb2dfc2c481d778ee@172.18.250.2:30303\n```\n\nYou can then stop your validator and logout with:\n```\n$ make run-node validate=true logout=true network_name=dockerpyethdev_back bootstrap_node=enode://d3260a710a752b926bb3328ebe29bfb568e4fb3b4c7ff59450738661113fb21f5efbdf42904c706a9f152275890840345a5bc990745919eeb2dfc2c481d778ee@172.18.250.2:30303\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethereum%2Fdocker-pyeth-dev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethereum%2Fdocker-pyeth-dev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethereum%2Fdocker-pyeth-dev/lists"}