raiden-network / raiden

Raiden Network

Home Page:https://developer.raiden.network

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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