雷电网络源码解析

2018-10-08  本文已影响0人  牧码人爱跑马

雷电网络

基于以太坊的快速数字资产交易


以太坊上网络支付通道
Raiden 利用链下网络状态技术给以太坊上的数字资产带来了许多nice的属性:

Raiden 1.0 详解:
Raiden 1.0 通过合约的方式实现了token 的线下状态通道支付。
Registry 合约是系统注册合约,以太坊上的每一种代币都可以一次注册, 然后会产生一个基于该token的状态通道管理合约。每个有该token的用户都可以选择一个搭档建立一个状态通道合约,通过设置押金(会在链上存证)实现线下通道支付,线下交易都是双方各自签名确认即可, 撤出时, 再双方提供证据, 链上交易存证。合约如下:


image

Raiden 的类介绍:

ASSET


RAIDENPROTOCOL


RAIDEN SERVICE


ASSETMANAGER


CHANNELMANAGERCONTRACT


NETTINGCHANNELCONTRACT


TRANSFERMANAGER


TRANSFERTASK(UML: TRANSFER_ACTIVITY, TRANSFER_STATE)


TRANSFER


LOCKEDTRANSFER


CHANNEL


各模块关系图如下:


concept_relationships.png

核心步骤。


TRANSFERS IN A CHANNEL


选择多条Transfer的场景


正常的TRANSFER


A 通过B 转帐给C:
A: 初始化secret
A: MediatedTransfer -> B
B:MediatedTransfer ->  C
C:secretRequest -> A (证明收到的transfer是有效的)
A:Secret -> C
C:Secret -> B

CANCELTRANSFER:


A: 初始化Secret
A: MediatedTransfer -> B
B: MediatedTransfer -> C(失败: C 不能和D建立路经)
C:CancelTransfer -> B
B:MediatedTransfer -> C2
C2:MediatedTransfer -> D

TIMEOUTTRANSFER


A: 初始化Secret
B: MediatedTransfer -> B
B: MediatedTransfer -> C (失败:没有接收到C的ACK消息)
B: TransferTimeout -> A
决议:A不会透露secret,尝试新的transfer,B禁止C
上一篇 下一篇

猜你喜欢

热点阅读