Crate raiden_rs

source ·
Expand description

§Raiden-rs

The Raiden Network is an off-chain scaling solution, enabling near-instant, low-fee and scalable payments. It’s complementary to the Ethereum Blockchain and works with any ERC20 compatible token. The Raiden project is work in progress. Its goal is to research state channel technology, define protocols and develop reference implementations.

§Quickstart: prelude

A prelude is provided which imports all the important data types and traits for you. Use this when you want to quickly bootstrap a new project.

use raiden-rs::prelude::*;

§Modules

The following paragraphs are a quick explanation of each module in ascending order of abstraction.

§raiden-api

A high level API crate which lets you interact with the components of Raiden to trigger various Raiden specific functionality such as opening / closing channels, deposit & withdraw as well as initiating payments .. etc.

§raiden-blockchain

Implements various ethereum specific functionality such as interacting with the contracts on-chain, signing & recovery and decoding Ethereum events into state changes.

§raiden-macros

Provides simple macros for type conversions.

§raiden-network_messages, raiden-network_transport

Implements Raiden protocol messages and matrix network integration to exchange messages between nodes over the wire.

§raiden-pathfinding

Implements ways to interact with the pathfinding service to retrieve routes for payments.

§raiden-primitives

Defines various primitive data types and utils.

§raiden-state_machine

This is the most vital crate which handles a complete chain state and it’s transitions using state changes.

§raiden-transition

Plays a middleman role by handling all incoming messages and dispatching those as state changes into the state machine, while also handling resulting events from the state machine to be sent over the networking layer.

Modules§

  • A high level API crate which lets you interact with the components of Raiden to trigger various Raiden specific functionality such as opening / closing channels, deposit & withdraw as well as initiating payments .. etc.
  • Implements various ethereum specific functionality such as interacting with the contracts on-chain, signing & recovery and decoding Ethereum events into state changes.
  • Defines message types and utilities to encode / decode payloads.
  • Implements Raiden protocol messages and matrix network integration to exchange messages between nodes over the wire.
  • Implements ways to interact with the pathfinding service to retrieve routes for payments.
  • Primitives crate defines various primitive Raiden data types and utils commonly used.
  • Manages a complete chain state with ability to transition state changes and returns events.
  • Implements state change transitioner and state machine event handler.