{"action":"created","issue":{"url":"https://api.github.com/repos/Storj/core/issues/317","repository_url":"https://api.github.com/repos/Storj/core","labels_url":"https://api.github.com/repos/Storj/core/issues/317/labels{/name}","comments_url":"https://api.github.com/repos/Storj/core/issues/317/comments","events_url":"https://api.github.com/repos/Storj/core/issues/317/events","html_url":"https://github.com/Storj/core/issues/317","id":170456019,"number":317,"title":"Internal spamming","user":{"login":"1credit","id":7347457,"avatar_url":"https://avatars.githubusercontent.com/u/7347457?v=3","gravatar_id":"","url":"https://api.github.com/users/1credit","html_url":"https://github.com/1credit","followers_url":"https://api.github.com/users/1credit/followers","following_url":"https://api.github.com/users/1credit/following{/other_user}","gists_url":"https://api.github.com/users/1credit/gists{/gist_id}","starred_url":"https://api.github.com/users/1credit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/1credit/subscriptions","organizations_url":"https://api.github.com/users/1credit/orgs","repos_url":"https://api.github.com/users/1credit/repos","events_url":"https://api.github.com/users/1credit/events{/privacy}","received_events_url":"https://api.github.com/users/1credit/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Storj/core/labels/discussion","name":"discussion","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":20,"created_at":"2016-08-10T16:08:00Z","updated_at":"2016-10-15T02:25:58Z","closed_at":null,"body":"### Package Versions\r\n\r\nReplace the values below using the output from `npm list storj`. Use ```npm list -g storj``` if installed globally.\r\n\r\n```\r\nstorjshare-cli@5.0.2\r\nstorj@2.1.1\r\n```\r\n\r\nReplace the values below using the output from `node --version`.\r\n\r\n```\r\nv4.4.6\r\n```\r\n\r\n### Expected Behavior\r\n\r\nStorj, being a distributed network tool, should not allow shards to be stored on other nodes within the same LAN.   Experience has shown that spamming situations, similar to what has been seen with bridge nodes, can occur between different instances running on the same computer, and likely running on the same LAN.\r\n\r\nThis request would likely best be served by making it a default option, since perhaps someone will find a legitimate reason for doing so.  Or perhaps not, one could consider this a hack if done on purpose, just to increase shard counts.\r\n\r\nOriginally I considered requesting traffic be banned if it was going to the same payout address, but its fairly easy to conceive of a situation where a user is running Storj at multiple sites (I am, for one!).  Traffic between those sites would be perfectly legitimate since the different Internet connections would provide appropriate redundancy for the shards.\r\n\r\nTechnically, I'm suggesting a filter along the logic of (please forgive the pseudo code):\r\n\r\nbinary valid_ip(source_ip, destination_ip, netmask) {\r\n    if (source_ip && netmask != destination_ip && netmask) return TRUE\r\n    return FALSE\r\n}\r\n\r\nWhere \"&&\" is a binary AND operator.\r\n\r\nThis function should be called before ANY communication is attempted to a node_id.\r\n\r\nNote that is LAN addresses are not available within the code, the use of a node_id's public address would server the same purpose.\r\n\r\n```\r\n\r\n```\r\n\r\n### Actual Behavior\r\n\r\nWhen running multiple nodes within the same LAN communication between the nodes can cause spamming issues (potentially a source of internal DDOS attack type activity).  Please contact @Deadgray for examples he has seen.\r\n\r\n```\r\n\r\n```\r\n\r\n### Steps to Reproduce\r\n\r\nPlease include the steps the reproduce the issue, numbered below. Include as\r\nmuch detail as possible.\r\n\r\n1. ...\r\n2. ...\r\n3. ...\r\n"},"comment":{"url":"https://api.github.com/repos/Storj/core/issues/comments/253957106","html_url":"https://github.com/Storj/core/issues/317#issuecomment-253957106","issue_url":"https://api.github.com/repos/Storj/core/issues/317","id":253957106,"user":{"login":"yuilleb","id":8084361,"avatar_url":"https://avatars.githubusercontent.com/u/8084361?v=3","gravatar_id":"","url":"https://api.github.com/users/yuilleb","html_url":"https://github.com/yuilleb","followers_url":"https://api.github.com/users/yuilleb/followers","following_url":"https://api.github.com/users/yuilleb/following{/other_user}","gists_url":"https://api.github.com/users/yuilleb/gists{/gist_id}","starred_url":"https://api.github.com/users/yuilleb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yuilleb/subscriptions","organizations_url":"https://api.github.com/users/yuilleb/orgs","repos_url":"https://api.github.com/users/yuilleb/repos","events_url":"https://api.github.com/users/yuilleb/events{/privacy}","received_events_url":"https://api.github.com/users/yuilleb/received_events","type":"User","site_admin":false},"created_at":"2016-10-15T02:25:57Z","updated_at":"2016-10-15T02:25:57Z","body":"This is a lot to read and take in, but I think I have a handle on it. I believe the traffic @1credit is seeing is legitimate.\r\n\r\nThis is a _good thing_. The ideal situation for @1credit would be if 1 of his nodes received all PUBLISH messages from the internet while the remaining 99 other nodes were relayed these internally from this 1 node. Obviously this would take some special coding to make something like this work, but the main point is, the more traffic @1credit can keep routing on his localhost interface the **better**.\r\n\r\nI think @1credit's concern is that shards are actually being passed between his nodes. I don't believe this is the case, but if there are logs showing this then I don't have a proper understanding of how storj works yet.\r\n\r\nI personally can't see any problems with nodes communicating with each other over a loopback interface, especially when that's more efficient than routing out to nodes on the internet. As I said, I'd argue this is exactly what you want to see."}}
{"actor":{"display_login":"yuilleb"}}