{"action":"created","issue":{"url":"https://api.github.com/repos/bitcoin/bitcoin/issues/7100","labels_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/7100/labels{/name}","comments_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/7100/comments","events_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/7100/events","html_url":"https://github.com/bitcoin/bitcoin/pull/7100","id":118975735,"number":7100,"title":"Replace setInventoryKnown with a rolling bloom filter.","user":{"login":"gmaxwell","id":858454,"avatar_url":"https://avatars.githubusercontent.com/u/858454?v=3","gravatar_id":"","url":"https://api.github.com/users/gmaxwell","html_url":"https://github.com/gmaxwell","followers_url":"https://api.github.com/users/gmaxwell/followers","following_url":"https://api.github.com/users/gmaxwell/following{/other_user}","gists_url":"https://api.github.com/users/gmaxwell/gists{/gist_id}","starred_url":"https://api.github.com/users/gmaxwell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gmaxwell/subscriptions","organizations_url":"https://api.github.com/users/gmaxwell/orgs","repos_url":"https://api.github.com/users/gmaxwell/repos","events_url":"https://api.github.com/users/gmaxwell/events{/privacy}","received_events_url":"https://api.github.com/users/gmaxwell/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bitcoin/bitcoin/labels/P2P","name":"P2P","color":"006b75"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":16,"created_at":"2015-11-26T05:48:14Z","updated_at":"2015-11-27T14:02:56Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/bitcoin/bitcoin/pulls/7100","html_url":"https://github.com/bitcoin/bitcoin/pull/7100","diff_url":"https://github.com/bitcoin/bitcoin/pull/7100.diff","patch_url":"https://github.com/bitcoin/bitcoin/pull/7100.patch"},"body":"Mruset setInventoryKnown was reduced to a remarkably small 1000\r\n entries as a side effect of sendbuffer size reductions in 2012.\r\n\r\nThis removes setInventoryKnown filtering from merkleBlock responses\r\n because false positives there are especially unattractive and\r\n also because I'm not sure if there aren't race conditions around\r\n the relay pool that would cause some transactions there to\r\n be suppressed. (Also, ProcessGetData was accessing\r\n setInventoryKnown without taking the required lock.)"},"comment":{"url":"https://api.github.com/repos/bitcoin/bitcoin/issues/comments/160145906","html_url":"https://github.com/bitcoin/bitcoin/pull/7100#issuecomment-160145906","issue_url":"https://api.github.com/repos/bitcoin/bitcoin/issues/7100","id":160145906,"user":{"login":"laanwj","id":126646,"avatar_url":"https://avatars.githubusercontent.com/u/126646?v=3","gravatar_id":"","url":"https://api.github.com/users/laanwj","html_url":"https://github.com/laanwj","followers_url":"https://api.github.com/users/laanwj/followers","following_url":"https://api.github.com/users/laanwj/following{/other_user}","gists_url":"https://api.github.com/users/laanwj/gists{/gist_id}","starred_url":"https://api.github.com/users/laanwj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laanwj/subscriptions","organizations_url":"https://api.github.com/users/laanwj/orgs","repos_url":"https://api.github.com/users/laanwj/repos","events_url":"https://api.github.com/users/laanwj/events{/privacy}","received_events_url":"https://api.github.com/users/laanwj/received_events","type":"User","site_admin":false},"created_at":"2015-11-27T14:02:56Z","updated_at":"2015-11-27T14:02:56Z","body":"> Do we really need a 1/1000000 false positive rate? An FP will just cause us\r\nto not relay a particular transaction to one peer, but we'll still relay it\r\nto others (they have other nonces).\r\n\r\nIdeally what we'd want here is the opposite of a bloom filter. False positives are bad, as they cause peers to miss out on transactions, but the occasional false negative is ok, as they might get it INVed twice.\r\n"}}