ethersphere / swarm

Swarm: Censorship resistant storage and communication infrastructure for a truly sovereign digital society
https://swarm.ethereum.org/
GNU Lesser General Public License v3.0
488 stars 110 forks source link

enforce a swap-only network #1917

Open ralph-pichler opened 4 years ago

ralph-pichler commented 4 years ago

Currently a non-swap-enabled Peer can connect to other protocols like retrieval on a swap-enabled Peer. The accounting hook will cause an error when a message is sent from the swap-enabled peer blocking the send but not disconnecting the peer. This will cause most retrieve requests to always fail if there is a non-swap Peer connected on retrieval (this was encountered during devcon when nodes connected to nodes from the previous (non-swap) workshop).

Ideally a swap-enabled Peer would only connect to other swap-enabled Peers on all (or at least on all accounted) protocols.

Eknir commented 4 years ago

[User Story] Rationale Currently, a non-swap-enabled Peer can connect to other protocols like retrieval on a swap-enabled Peer. The accounting hook will cause an error when a message is sent from the swap-enabled peer blocking the send but not disconnecting the peer. This will cause most retrieve requests to always fail if there is a non-swap Peer connected on retrieval (this was encountered during Devcon when nodes connected to nodes from the previous (non-swap) workshop).

User story As a swap-enabled peer, I don't want to be connected to non-swap enabled peers, such that interactions with accounted protocols don't fail

Acceptance Criteria It is impossible for a swap-enabled node to be connected to a non-swap enabled node

Eknir commented 4 years ago

Related to https://github.com/ethersphere/swarm/issues/2068 . Might already be solved by making all BZZ Network ID's <= 100 to be non-swap and all BZZ Network IDs > 100 to be swap-enabled

ralph-pichler commented 4 years ago

i don't think its possible to do a clean implementation of this with the current stack. For now we should just drop in the accounting hook if the other peer is not registered on swap. Maybe we can do this properly when we move to the new bee stack.

mortelli commented 4 years ago

i don't think its possible to do a clean implementation of this with the current stack. For now we should just drop in the accounting hook if the other peer is not registered on swap. Maybe we can do this properly when we move to the new bee stack.

implemented in #2142