Adding Capabilities
fredo opened this issue · comments
In order to stay backwards compatible with older Raiden versions (basically 2.0.0) we need to take into account that the python implementation expected a route to be pruned by each mediator.
This also leads to the fact that it cannot support immutable metadata. If newer Raiden nodes want to route payments through a v2.0.0 node we need to make sure that the route is pruned for that node, so that it is the first node in the RouteList.
This is marked by a capability called immutableMetadata
.
This issue is about implementing raiden-network/spec#343
Note for assessing the state of this issue:
- while #7253 did implement the capability as well as backwards compatibility in the hashing scheme of received metadata, the route-pruning of sending metadata to nodes with
immutableMetadata=0
is still missing
We agreed that we won't support 2.0.0 backwards compatibility because the next release will need a new contract deployment and we would need to run a complete separate set of services.
As of #7298, the handling of the aforementioned capability is removed.
There is nothing urgent left to do, since:
- we still advertise
immutableMetadata=1
as default for LC-interoperability - if we send a transfer to a
immutableMetadata=0
node (if this is ever implemented for nodes >2.0.0) the transfer will eventually expire - if we receive a transfer from a
immutableMetadata=0
node (if this is ever implemented for nodes >2.0.0) the signature validation will fail and the transfer will be dropped - we don't expect to receive/send transfer from/to
2.0.0
nodes because of aforementioned network disjunction