SmartRaiden 和 Lighting Network 进行去中心化跨链原子资产交换

发布时间:2020-07-15 00:12:33 作者:虫洞社区
来源:网络 阅读:358

作者介绍

虫洞社区·签约作者 steven bai

前言

如果能够进行以太坊和比特币跨链原子资产交换,是不是一件很酷的事情?
目前链下的扩容方式有很多,最广为人知的就是比特币的闪电网络和以太坊的雷电网络,今天我就来告诉如何通过智能雷电和闪电网络来实现跨链原子资产交换。

场景

  1. Alice 在某个信息发布网站上发布信息,希望用1个 BTC 置换100个 SMT
  2. Bob 看到以后,和 Alice 进行沟通,达成交换意见 那么Alice 和 Bob 如何不需要借助任何第三方实现原子资产置换呢?

智能雷电与闪电网络测试环境

什么是智能雷电?

智能雷电是一种最新的链下扩容方案,可以实现即时的、低费用和可扩展的支付。可以运行与以太坊和光谱链,兼容ERC20 token 和 ERC233 token。
它是跨平台的,目前支持 Windows Linux MacOS Android IOS
为了更好的适用于移动设备各种复杂的网络环境,智能雷电支持无网支付,安全快捷。
同时智能雷电也是开源的,并且正在积极维护中,想要参与和详细了解请移步官方源码.

准备步骤

安装启动智能雷电

在本地搭建一个Bob和Alice的环境,让他们建立通道。假设你已经安装好了 go geth 如果没有请参考安装说明

连接以太坊测试网络

连接以太坊的测试链testnet

geth --testnet --fast --rpc --rpcapi eth,net,web3 --bootnodes "enode://20c9ad97c081d63397d7b685a412227a40e23c8bdc6688c6f37e97cfbc22d2b4d1db1510d8f61e6a8866ad7f0e17c02b14182d37ea7c3c8b9c2683aeb6b733a1@52.169.14.227:30303,enode://6ce05930c72abc632c58e2e4324f7c7ea478cec0ed4fa2528982cf34483094e9cbc9216e7aa349691242576d552a2a56aaeae426c5303ded677ce455ba1acd9d@13.84.180.240:30303"
启动节点

启动两个节点,分别是AliceBob
启动Alice

smartraiden --datadir=.smartraiden --api-address=0.0.0.0:5001 --listen-address=127.0.0.1:400001 --address="0x69c5621db8093ee9a26cc2e253f929316e6e5b92" --keystore-path ~/.ethereum/keystore  -password-file /file --eth-rpc-endpoint ws://127.0.0.1:8546 

启动Bob

smartraiden --datadir=.smartraiden --api-address=0.0.0.0:5002 --listen-address=127.0.0.1:40002 --address="0x31ddac67e610c22d19e887fb1937bee3079b56cd" --keystore-path ~/.ethereum/keystore --password-file /file --eth-rpc-endpoint ws://127.0.0.1:8546  

此时你就已经成功搭建好了本地智能雷电节点网络,可以通过查询SmartRaiden api文档来创建通道。

安装启动闪电网络

本地搭建一个Bob和Alice的闪电网络测试环境,让他们建立通道。

连接Btcd测试链

默认你已经安装好了btcdlnd,如果没有请参考安装说明

运行btcd,打开终端,然后运行

btcd --txindex --testnet --rpcuser=kek --rpcpass=kek
启动节点

启动两个节点,分别是AliceBob
启动Alice

lnd --rpclisten=localhost:10001 --listen=localhost:10011 --restlisten=localhost:8001 --datadir=data --logdir=log --debuglevel=info --bitcoin.testnet --bitcoin.active --bitcoin.node=btcd --btcd.rpcuser=kek --btcd.rpcpass=kek 

启动Bob

lnd --rpclisten=localhost:10002 --listen=localhost:10012--restlisten=localhost:8002 --datadir=data --logdir=log --debuglevel=info --bitcoin.testnet --bitcoin.active --bitcoin.node=btcd --btcd.rpcuser=kek --btcd.rpcpass=kek 

为了不必每次都输入一堆命令,可以修改配置文件lnd.conf

datadir=data
logdir=log
debuglevel=info
debughtlc=true

bitcoin.active=1
bitcoin.testnet=1
bitcoin.node=btcd
btcd.rpchost=localhost
btcd.rpcuser=kek
btcd.rpcpass=kek

现在启动Alice节点我们只需要输入

lnd --rpclisten=localhost:10001 --listen=localhost:10011 --restlisten=localhost:8001

重新打开新的终端,创建Alice钱包密码

lncli --rpcserver=localhost:10001 --macaroonpath=data/admin.macaroon create

为了避免每次都输入--rpcserver=localhost:1000X--macaroonpath标记,可以设置一些别名

alias lncli-alice="lncli --rpcserver=localhost:10001 --macaroonpath=data/admin.macaroon"
alias lncli-bob="lncli --rpcserver=localhost:10002 --macaroonpath=data/admin.macaroon"

Bob创建钱包同上

此时AliceBob就可以创建通道了,详细教程请参考lnd api

实现方法

到这里我们为了进行SmartRaiden 和 Lighting Network 进行跨链原子资产交换的准备工作就已经完成了,具体的实现方法如下。
回到我们最初的那个问题

Alice 在某个信息发布网站上发布信息,希望用1个 BTC 置换100个 SMT

Bob和Alice SmartRaiden场景

SmartRaiden 和 Lighting Network 进行去中心化跨链原子资产交换

Bob和Alice Lnd场景

SmartRaiden 和 Lighting Network 进行去中心化跨链原子资产交换

1. Bob和 Alice 分别启动自己的 Atmosphere 服务

Atmosphere 服务会启动响应的SmartRaiden和Lnd
假设 Alice 在SmartRaiden的节点使用的私钥为 SA_Priv, 公钥为 SA, 在 Lnd 节点使用的私钥为 LA_Priv, 公钥为 LA
假设 Bob 在 SmartRaiden 节点使用的私钥为 SB_Priv, 公钥为 SB, 在 Lnd 节点使用的私钥为 LB_Priv, 公钥为 LB

2. Bob 的Atmosphere服务
3. Alice 的Atmosphere 服务

跨链时序图

SmartRaiden 和 Lighting Network 进行去中心化跨链原子资产交换

添加微信(cdong1024),加入区块链开发者技术交流群
虫洞社区:https://www.uzanapp.com/ ——中美区块链技术学习社区

SmartRaiden 和 Lighting Network 进行去中心化跨链原子资产交换

推荐阅读:
  1. 使用C#编写自己的区块链挖矿算法
  2. 目前人工智能应用在哪些领域

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

区块链 区块链开发 编程语言

上一篇:cassandra-stress 压测使用介绍

下一篇:oracle12.2RAC 配置

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》