Is there any (dis)intensive to discourage vaults from dropping others’ packets being relayed across the network? If a farmer is rewarded only for serving data stored on their own machine, then why would they use bandwidth relaying data originating from another vault?
Or in other terms failure to perform the protocols of the SAFE network will cause its controlling group to downgrade it. If failure to perform occurs too often then it is dropped.
The failure is detected because the receiving node does not receive the chunk to pass on. The groups handle this and the badly behaved node is removed.
I see - so does that require the close group to be collectively tracking each packet which is sent and received by each other node, and to be able to come to consensus should one node not be routing correctly?
I have not examined it down to that low processing, but there has to be error checking for chunks being transferred and the groups know when a chunk failed to be transferred.
I don’t think it goes down to the packet level.
I am under the impression it’s more superficial and partially that is because the unit of IO request is usually a MB sized chunk, so either it’s delivered or it isn’t. If you drop a packet, it’s like refusing the entire chunk.
But it’d be a nice thing to try. Although I would prefer to farm and drop hundreds of vaults at once. I think that has a better chance of success in terms of causing problems, such as data loss, to clients.
What’s most interesting about misbehaving is that there doesn’t seem to be a way to filter out misbehaving vaults and prevent them from rejoining another group, so one can just keep going from one group to another, causing mayhem until all groups are attacked. If there’s hundreds of groups every attacking IP can repeat the attack dozens of times without running into the same group.
Disclaimer: I haven’t looked at the code; above is just my interpretation of what I read about how MaidSafe works.