raiden-network / raiden

Raiden Network

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Extract shared code used by other raiden network components

weilbith opened this issue · comments

Follow up of #7500

The raiden (Python) client will become deprecated and does not receive updates to stay compatible with new contract releases and Light Client versions. Other components in the Raiden network like the raiden-services will be continued. The problem is that these projects usually have a dependency to the raiden package. Thereby they get access to some shared code, but most importantly to the a specific released contract version (transitive relation). This is a conflict.
The idea is now to create a direct dependency of all components to the raiden-contracts and extract the shared utility code in raiden. For the latter there is not a clear way to go yet. It might be that we will just move the code from raiden to raiden-services for example. This depends also on if the scenario-player needs this code too. The alternative is a new central shared library between all components.

The first step is to merge https://github.com/raiden-network/raiden/tree/arbitrum, before more differences accumulate. Since the branch is failing the tests, I won't get all tests to pass. But I can make a well defined set of tests pass, so that at least new regressions will become visible.

The name for the extracted code will be raiden-common to avoid confusion with the current raiden repository and the old raiden-libs. The integration tests will be removed because they cause a too heavy maintenance burden and integration testing is less applicable when this is just a library rather than a full application. We'll have to rely on the SP for integration testing for now.

The new package has been created at https://github.com/raiden-network/raiden-common and raiden-network/raiden-services#1231 switches the services over to using it. I will create issues for further work on raiden-common in https://github.com/raiden-network/raiden-common/issues. Apart from all the work in that repo , we need to

  • Switch the scenario-player from raiden to raiden-common (see raiden-network/scenario-player#709)
  • Switch the explorer from raiden to raiden-common (see raiden-network/explorer#340)
  • Figure out what to do with the documentation which is in the raiden repo
  • Communicate deprecation of the python client
  • Decide what to do with the issues in the raiden repo

All work on the code is done, the remaining items are better handled in separate issues.