{"action":"created","issue":{"url":"https://api.github.com/repos/ethereum/go-ethereum/issues/3478","repository_url":"https://api.github.com/repos/ethereum/go-ethereum","labels_url":"https://api.github.com/repos/ethereum/go-ethereum/issues/3478/labels{/name}","comments_url":"https://api.github.com/repos/ethereum/go-ethereum/issues/3478/comments","events_url":"https://api.github.com/repos/ethereum/go-ethereum/issues/3478/events","html_url":"https://github.com/ethereum/go-ethereum/pull/3478","id":196905223,"number":3478,"title":"cmd, eth, miner: experimental zero-diff miner for dev/hack networks","user":{"login":"karalabe","id":129561,"avatar_url":"https://avatars.githubusercontent.com/u/129561?v=3","gravatar_id":"","url":"https://api.github.com/users/karalabe","html_url":"https://github.com/karalabe","followers_url":"https://api.github.com/users/karalabe/followers","following_url":"https://api.github.com/users/karalabe/following{/other_user}","gists_url":"https://api.github.com/users/karalabe/gists{/gist_id}","starred_url":"https://api.github.com/users/karalabe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karalabe/subscriptions","organizations_url":"https://api.github.com/users/karalabe/orgs","repos_url":"https://api.github.com/users/karalabe/repos","events_url":"https://api.github.com/users/karalabe/events{/privacy}","received_events_url":"https://api.github.com/users/karalabe/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-12-21T11:05:46Z","updated_at":"2016-12-21T11:05:48Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ethereum/go-ethereum/pulls/3478","html_url":"https://github.com/ethereum/go-ethereum/pull/3478","diff_url":"https://github.com/ethereum/go-ethereum/pull/3478.diff","patch_url":"https://github.com/ethereum/go-ethereum/pull/3478.patch"},"body":"ZeroDiff is a mining strategy that aims to push the difficulty of the blocks down to zero. It tries to achive this by delaying found blocks to always be above the configured block time limit, pushing the difficulty down a bit after every block.\r\n\r\nThe strategy has a few nice properties that is orthogonal both to multiple zero-diff miners as well as other plain miners:\r\n\r\n * The zero-diff miner may be ran with arbitrarilly many threads: if a block is found faster than the target block time, it will be delayed anyway, so the mining threads will go idle. If on the other hand the difficulty is pushed up by a rouge miner and abandoned, the multiple threads will allow pulling the difficulty down faster until it reaches sub-target times.\r\n * The zero-diff miner can play along nicely with non zero-diff miners, since it will either delay it's block to above-target times, or outright discard its own block if another is found, thereby ensuring it only ever reduces the difficulty, never increases.\r\n * The zero-diff miner can also play along nicely with other zero-diff miners by simulating block times at random between [target, 1.1*target], allowing multiple zero-diff miners to co-exist and share blocks, without racing each other for blocks and leading to a high uncle rate.\r\n\r\nNote, this strategy is only meaningful in trusted private networks where the goal of mining is not to secure the network, rather to provide a stable but resource-light testbed.\r\n\r\n---\r\n\r\nThe strategy currently works via\r\n\r\n```\r\nMINER STRATEGY OPTIONS:\r\n  --miner.zerodiff                 Enables the base zero-diff miner strategy (private networks)\r\n  --miner.zerodiff.instanttxs      Ignores zero-diff delays if block contains transactions (private networks)\r\n  --miner.zerodiff.minether value  Ignores zero-diff delays if miner balance is below threshold (private networks) (default: 0)\r\n```"},"comment":{"url":"https://api.github.com/repos/ethereum/go-ethereum/issues/comments/268496260","html_url":"https://github.com/ethereum/go-ethereum/pull/3478#issuecomment-268496260","issue_url":"https://api.github.com/repos/ethereum/go-ethereum/issues/3478","id":268496260,"user":{"login":"mention-bot","id":15710697,"avatar_url":"https://avatars.githubusercontent.com/u/15710697?v=3","gravatar_id":"","url":"https://api.github.com/users/mention-bot","html_url":"https://github.com/mention-bot","followers_url":"https://api.github.com/users/mention-bot/followers","following_url":"https://api.github.com/users/mention-bot/following{/other_user}","gists_url":"https://api.github.com/users/mention-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/mention-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mention-bot/subscriptions","organizations_url":"https://api.github.com/users/mention-bot/orgs","repos_url":"https://api.github.com/users/mention-bot/repos","events_url":"https://api.github.com/users/mention-bot/events{/privacy}","received_events_url":"https://api.github.com/users/mention-bot/received_events","type":"User","site_admin":false},"created_at":"2016-12-21T11:05:48Z","updated_at":"2016-12-21T11:05:48Z","body":"@karalabe, thanks for your PR! By analyzing the history of the files in this pull request, we identified @fjl, @obscuren and @zsfelfoldi to be potential reviewers."}}
{"actor":{"display_login":"mention-bot"}}