tl;dr: We are excited to announce that the Raiden Network Red Eyes release is live on the Ethereum mainnet! The Red Eyes release is an alpha testing release. It is absolutely crucial to read this post including the security notes carefully before using the software.

The network is not yet production ready, however we welcome everybody to test it on the mainnet by doing token transfers and taking part in our bug bounty.

Intro

With Red Eyes, the first version of the Raiden Network has been successfully deployed on the Ethereum mainnet. The main goal of this release is to have the smart contracts and the core protocol battle tested on the mainnet. As part of ensuring this, a bug bounty was created specifically for the release. Find out more about the bug bounty here.

Which features are included in the Red Eyes release?

Opening, topping up, closing and settling of payment channels

Single and multi-hop transfers

Automatically joining a token network and opening channels with peers

REST API with endpoints for all functionalities

Redesigned WebUI

Raiden Explorer, visualizing the live status of the Network

Rewritten and more gas efficient smart contracts (e.g. only one contract per token network)

Improved protocol for dealing with edge cases

Recoverability in case of an irregular shutdown of the Raiden node

Integration of the Matrix transport protocol for messaging

Where can I get it?

In order to get started, read the documentation and download the latest version of the Raiden Network from GitHub. If you encounter any problems during the process, contact us via Gitter or open an issue.

See the Raiden smart contracts on EtherScan here:

For a visualization and network statistics of the Raiden Network, visit the Raiden Explorer.

Safety measures of the Red Eyes release

Since the Red Eyes release is an alpha deployment of the Raiden network on the Ethereum mainnet, we have taken strong risk mitigation measures to limit the potential damage caused by bugs or misuse of the software and to ensure a responsible testing environment for this nascent technology. Please also note, that the Red Eyes release is not security audited by an external party yet. Deposit limits (0.15 ETH per channel/ 250 ETH total maximum network value), as well as a deprecation switch have been put into place. Additionally, the Red Eyes version of the Raiden Network is limited to one token network, WETH (wrapped Ether). You can read all about the safety measures here.

Feature limitations of the Red Eyes release

Feature limitations in the current release include:

Monitoring: No support for third party services to monitor channels on behalf of nodes

Routing: No support for third party services which can offer pathfinding services (through knowledge about channel capacities).

Atomic Swaps: No support for atomic token swaps

No upgradability of the token network: The Red Eyes milestone does not include upgradability of the smart contracts. In other words, the only way to upgrade the network would be to redeploy new contracts and release a new client version pointing to the new contracts. All channels in the old network would need to be closed and reopened in the new network. As already outlined above, we have implemented a one-time deprecation switch (see safety measures blog post) in order to be able to deprecate the network, if needed.

We aim to tackle some of these functional limitations working towards the Ithaca milestone.

Important security notes for usage

Always keep in mind: Red Eyes is an alpha testing release for the Ethereum mainnet. Please make sure to follow the below security notes and system requirements to not increase your risk of funds disproportionately. Note that loss of tokens could happen even if you follow these guidelines.

Ethereum node in sync and running reliably : Ensure that layer 1 works reliably. This means that you have to have an Ethereum node, either geth or parity, that is always synced and working reliably. If there are any problems or bugs on the client then Raiden can not work reliably.

: Ensure that layer 1 works reliably. This means that you have to have an Ethereum node, either geth or parity, that is always synced and working reliably. If there are any problems or bugs on the client then Raiden can not work reliably. Ethereum client always online : Make sure that your Ethereum client is always online. We recommend running it inside a monitor which will restart it if, for some reason, it crashes.

: Make sure that your Ethereum client is always online. We recommend running it inside a monitor which will restart it if, for some reason, it crashes. Ethereum Client can not be changed : Swapping the Ethereum client while transactions are not mined is considered unsafe. We recommend avoiding switching Ethereum clients once the Raiden node is running.

: Swapping the Ethereum client while transactions are not mined is considered unsafe. We recommend avoiding switching Ethereum clients once the Raiden node is running. Raiden node always online : Currently all nodes participating in a transfer need to be online in order for a transfer to be carried out. Hence, make sure that your Raiden node is always working, your network connection is stable and that the Raiden node is always online. If it crashes, for whatever reason, you are responsible to restart it and keep it always online. We recommend running it inside a monitor which will restart it if, for some reason, the Raiden node crashes.

: Currently all nodes participating in a transfer need to be online in order for a transfer to be carried out. Hence, make sure that your Raiden node is always working, your network connection is stable and that the Raiden node is always online. If it crashes, for whatever reason, you are responsible to restart it and keep it always online. We recommend running it inside a monitor which will restart it if, for some reason, the Raiden node crashes. Unique account for Raiden : Raiden requires you to have a specific Ethereum account solely dedicated to Raiden. Creating any manual transaction with the Ethereum account that Raiden uses, while the Raiden client is running, can result in undefined behavior.

: Raiden requires you to have a specific Ethereum account solely dedicated to Raiden. Creating any manual transaction with the Ethereum account that Raiden uses, while the Raiden client is running, can result in undefined behavior. Raiden account has sufficient ETH : Raiden will try to warn you if there is not enough ETH in your Raiden account in order to maintain your current open channels and allow them to go through their entire cycle. However, it is your job to refill your account with ETH and to make sure it is filled sufficiently once warned.

: Raiden will try to warn you if there is not enough ETH in your Raiden account in order to maintain your current open channels and allow them to go through their entire cycle. However, it is your job to refill your account with ETH and to make sure it is filled sufficiently once warned. Persistency of local DB : Your local state database is located at ~/.raiden. This data should not be deleted by the user or tampered with in any way. Frequent backups are recommended. Deleting this directory can result in a loss of funds.

: Your local state database is located at ~/.raiden. This data should not be deleted by the user or tampered with in any way. Frequent backups are recommended. Deleting this directory can result in a loss of funds. Never expose the Raiden REST API to the public : For Raiden’s operation, the client needs to be able to sign transactions at any point in time. Therefore you should never expose the Raiden Rest API to the public. Be very careful when changing the –rpc and –rpccorsdomain values.

: For Raiden’s operation, the client needs to be able to sign transactions at any point in time. Therefore you should never expose the Raiden Rest API to the public. Be very careful when changing the –rpc and –rpccorsdomain values. Be patient: Do not mash buttons in the webUI and do not shut down the client while on-chain transactions are on the fly and have not yet been confirmed.

Known issues

Below you find a non-exhaustive list of known issues, which you should be aware of while using the current version of the software. Most of these issues are not Raiden specific, but rather apply to all Ethereum L2 solutions.

Compromised user system : If the system of the user is compromised and accessed by an attacker or if a malicious application is running, then the WAL could be accessed and valuable information leaked through it, since the WAL is not encrypted as such yet: raiden-network/raiden#579

: If the system of the user is compromised and accessed by an attacker or if a malicious application is running, then the WAL could be accessed and valuable information leaked through it, since the WAL is not encrypted as such yet: raiden-network/raiden#579 Disk Full : The client does not properly handle the cases where the user’s disk may be full. This could lead to a loss of data due to the Raiden node crashing. In the future, we should handle the detection of a full disk and gracefully quit the app: raiden-network/raiden#675

: The client does not properly handle the cases where the user’s disk may be full. This could lead to a loss of data due to the Raiden node crashing. In the future, we should handle the detection of a full disk and gracefully quit the app: raiden-network/raiden#675 Blockchain Congestion : If the blockchain is congested and there is no space for the Raiden node to submit transactions on-chain, the client could end up being unable to settle the channel on-chain. The development of a gas slot based settlement timeout definition has been suggested to address blockchain congestion: raiden-network/raiden#383

: If the blockchain is congested and there is no space for the Raiden node to submit transactions on-chain, the client could end up being unable to settle the channel on-chain. The development of a gas slot based settlement timeout definition has been suggested to address blockchain congestion: raiden-network/raiden#383 Chain reorganizations: The client used to have an issue with edge cases of chain reorganizations. These issues have been hot fixed by only polling events that are confirmed for 5 blocks. Same applies to processing transactions, which are assumed to be valid only after a confirmation period of 5 blocks. This results in 15 blocks wait time for opening a channel (three on-chain transactions).

Closing Remarks

We hope that you’ll enjoy testing the software and doing off-chain token transfers, using our payment channel network on the Ethereum mainnet. This is an early step of bringing the Raiden Network’s vision, which we have been working on for a long time, to life and we are happy to have you on board as first adopters. We are excited to hear your feedback and to jointly push the Raiden Network to the next stage. Thank you for your ongoing support!

Last but not least, a special thanks goes out to DigitalVirtues, ExchangeUnion, KI decentralized and MyCrypto, who are supporting the Red Eyes launch of the Raiden Network by running Matrix homeservers for the Raiden Transport.

The Raiden Team