{"action":"created","issue":{"url":"https://api.github.com/repos/jgarzik/bip100/issues/10","labels_url":"https://api.github.com/repos/jgarzik/bip100/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/jgarzik/bip100/issues/10/comments","events_url":"https://api.github.com/repos/jgarzik/bip100/issues/10/events","html_url":"https://github.com/jgarzik/bip100/issues/10","id":104749695,"number":10,"title":"Clarifying frequency of block size increases","user":{"login":"micro-machine","id":7919032,"avatar_url":"https://avatars.githubusercontent.com/u/7919032?v=3","gravatar_id":"","url":"https://api.github.com/users/micro-machine","html_url":"https://github.com/micro-machine","followers_url":"https://api.github.com/users/micro-machine/followers","following_url":"https://api.github.com/users/micro-machine/following{/other_user}","gists_url":"https://api.github.com/users/micro-machine/gists{/gist_id}","starred_url":"https://api.github.com/users/micro-machine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/micro-machine/subscriptions","organizations_url":"https://api.github.com/users/micro-machine/orgs","repos_url":"https://api.github.com/users/micro-machine/repos","events_url":"https://api.github.com/users/micro-machine/events{/privacy}","received_events_url":"https://api.github.com/users/micro-machine/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-09-03T17:55:44Z","updated_at":"2015-09-09T21:16:04Z","closed_at":null,"body":"Quote 1:\r\n> ii. A new hardLimit is calculated at each difficult adjustment period (2016 blocks), and applies to the next 2016 blocks.\r\n\r\nQuote 2:\r\n> b. Votes are limited to +/- 20% of the current hardLimit.\r\n> c. Sort the votes from the previous 12,000 blocks from lowest to highest.\r\n> d. The raise value is defined as a vote for 2400th highest block (20th percentile).\r\n> e. The lower value is defined as a vote for 9600th highest block (80th percentile).\r\n> f. If the raise value is higher than current hardLimit, the new limit becomes the raise value.\r\n> g. If the lower value is lower than current hardLimit, the new limit becomes the lower value.\r\n> h. Otherwise, hardLimit is unchanged.\r\n\r\n----\r\n\r\nAfter a hardLimit adjustment at Block XXXXXX, can the hardLimit adjust again at Block XXXXXX+2016 (allowing reuse of voted from Blocks XXXXXX-9085 through XXXXXX-1)?\r\n\r\nOr, are those votes note reusable, and is the next possible hardLimit adjustment at Block Block XXXXXX+12096?\r\n\r\n*-- Apologies if my \"XXX+\" and \"XXX-\" numbers are off by +/- 1, but I think I marked them correctly.*"},"comment":{"url":"https://api.github.com/repos/jgarzik/bip100/issues/comments/139048402","html_url":"https://github.com/jgarzik/bip100/issues/10#issuecomment-139048402","issue_url":"https://api.github.com/repos/jgarzik/bip100/issues/10","id":139048402,"user":{"login":"1MichaS1","id":14133304,"avatar_url":"https://avatars.githubusercontent.com/u/14133304?v=3","gravatar_id":"","url":"https://api.github.com/users/1MichaS1","html_url":"https://github.com/1MichaS1","followers_url":"https://api.github.com/users/1MichaS1/followers","following_url":"https://api.github.com/users/1MichaS1/following{/other_user}","gists_url":"https://api.github.com/users/1MichaS1/gists{/gist_id}","starred_url":"https://api.github.com/users/1MichaS1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/1MichaS1/subscriptions","organizations_url":"https://api.github.com/users/1MichaS1/orgs","repos_url":"https://api.github.com/users/1MichaS1/repos","events_url":"https://api.github.com/users/1MichaS1/events{/privacy}","received_events_url":"https://api.github.com/users/1MichaS1/received_events","type":"User","site_admin":false},"created_at":"2015-09-09T21:16:04Z","updated_at":"2015-09-09T21:16:04Z","body":"If it was really meant to be as it is currently written in BIP100 (namely updates every 2,016 blocks, but every time taking into account the last 12,000 blocks from that moment), then at least the \"12,000\" should be replaced by a multiple of 2,016 (e.g. 6 * 2,016 = 12,096 blocks), because otherwise the voting scheme would be unfair by design in that not every vote would have the same weight:\r\n\r\nWith current description, the first 96 votes within each 2,016 blocks period would be considered in the next 5(!) block size limit adjustments, whereas the votes in the blocks 97..2,016 of a 2,016-block interval would be considered in the next 6(!) adjustment intervals. I.e. votes of blocks 97..2,016 have 20% more weight than the blocks 1..96. This is really odd and certainly should not remain like this.\r\n\r\nHowever, even that could have strange effects. Example: Let's assume that block size limit (BSL) is already at 3 MB, and in this situation there occurs a temporary \"anomaly\" of miners, such that all miners vote for 1MB for 2420 blocks in a row. In this case, the 20% percentile threshold is surpassed, so BSL gets reduced by -20% (the cap of BIP100 for a single adjustment step). This happens several successive times, because the 2420 blocks are inside the 12,096 blocks buffer for 5 to 6 updated intervals. After that, the BSL will be back at 1 MB within a short time. The solution of PR https://github.com/jgarzik/bip100/pull/14 seems more appropriate to me, since votes of one adjustment interval do not stay in the memory buffer for another 5 to 6 adjustment intervals."}}