Lightning Network模拟器
Lightning Network模拟器入坑记
(边学习边总结边提高)
一、简单介绍
- 为什么要做Lightning Network模拟器的实现: 研究需要通过模拟闪电网络来进行一些实验,从而更深层次的了解闪电网络的运行机制,执行一些恶意的攻击,来证明闪电网络的不完备性,并且希望可以将已有的攻击扩展到以太坊上。
- 资料来源: LNTrafficSimulator(这是github上的一个闪电网络模拟工程)
- 博客目的: 总结记录在实现闪电网络模拟器的过程中所遇到的困难和解决办法,边学习边总结边提高。
二、前期准备
- 阅读前面网站上的具体说明,然后跟着说明进行一些前期的准备工作。
步骤一:
- 根据上面的要求可以看到这个模拟器是需要unix或者MacOs环境的,由于本人当前使用的就是Mac所以就不用去配置unix环境了,直接用Mac就好。
- 上面还要求MacOs系统需要按装 wget ,如何安装呢本人在这个地方就卡了很长时间,下面直接说解决办法:直接install wget比较麻烦,也较容易失败,所以可以先安装brew再通过
brew install wget
命令来安装wget,这里问题又来了,brew又如何安装呢(本人在这里花了更多时间,找了很多办法),具体安装方法见我另一篇博客,打开博客里的链接将代码复制到自己Mac终端上回车即可。安装好brew之后再在终端上输入brew install wget
命令来安装wget。 - 在终端输入brew后回车,出现如下内容即证明brew安装成功
步骤二:
- 在终端上输入代码
git clone https://github.com/ferencberes/LNTrafficSimulator.git
表示将GitHub上的这个整个工程克隆保存到本地 - 终端上输入
cd LNTrafficSimulator
进入LNTrafficSimulator这个工程文件夹 - 终端上输入
pip install .
表示使用pip安装模拟器
步骤三:下载必要数据
- 终端输入
sh ./scripts/download_data.sh
下载一些必要的数据 - 终端输入
ls ln_data
查看刚刚下载的数据:
- 下面是对下载的数据的说明:
步骤四:检查配置是否成功
执行以下代码以查看配置是否成功
import pandas as pd from lnsimulator.ln_utils import preprocess_json_file import lnsimulator.simulator.transaction_simulator as tsdata_dir = "/Users/yzyzzzz/LNTrafficSimulator/ln_data" #这里放入之前下载的ln_data的路径 amount = 60000 count = 7000 epsilon = 0.8 drop_disabled = True drop_low_cap = True with_depletion = True find_alternative_paths = Falseprint("# 1. Load LN graph data") directed_edges = preprocess_json_file("%s/sample.json" % data_dir)print("\n# 2. Load meta data") node_meta = pd.read_csv("%s/1ml_meta_data.csv" % data_dir) providers = list(node_meta["pub_key"])print("\n# 3. Simulation") simulator = ts.TransactionSimulator(directed_edges, providers, amount, count, drop_disabled=drop_disabled, drop_low_cap=drop_low_cap, eps=epsilon, with_depletion=with_depletion) transactions = simulator.transactions _, _, all_router_fees, _ =simulator.simulate(weight="total_fee",with_node_removals=find_alternative_paths, max_threads=1)print(all_router_fees.head()) print("Done")
问题来了,如何执行在哪里执行?具体步骤如下:
1. 在刚刚的终端里输入vim test.py
(通过vim创建名为test的python文件)
2. 在vim文件中粘贴刚刚需要测试的代码
3. 退出vim并保存文件(具体vim怎么用大家可以百度一下)
4. 在终端输入python test1.py
运行代码,查看结果:
遇到的问题一: 要将自己下载的ln_data文件的位置路径放到代码的相应位置,否则会出现下面的错误提醒:
遇到的问题二: 网页上的原代码没有导入panda包从而运行出现如下错误:
解决办法: 顶部添加代码import pandas as pd
遇到的问题三:
运行代码后出现错误提醒TypeError: __init__() got an unexpected keyword argument 'eps'
我的解决方法是在代码中删掉eps(不知道做的对不对但是最终确实是成功了)最终代码运行结果: 最终打印了Done说明配置成功!
Lightning Network模拟器相关推荐
- 闪电网络简介Lightning Network
区块链很慢,而且昂贵.闪电网络(Lightning Network)就是解决这个问题的.如果我不得不发送给你一些比特币,你会在几个小时内收到它们,而且我也支付了很高的交易费.凭这样的声誉,Blockc ...
- 第16课 闪电网络(Lightning Network) 之 HTLC
有兴趣朋友也可以进一步关注公众号"架构之道与术", 获取原文. 或扫描如下二维码: 在第14课 闪电网络(Lightning Network) 之 RSMC 中,我们知道了RSMC ...
- 最易懂的闪电网络Lightning Network的简介
区块链很慢,而且昂贵.闪电网络(Lightning Network)就是解决这个问题的.如果我不得不发送给你一些比特币,你会在几个小时内收到它们,而且我也支付了很高的交易费.凭这样的声誉,Blockc ...
- 【译】 Sparky: A Lightning Network in Two Pages of Solidity
目前,缩放比特币的主要想法是Lightning网络,它可以让人们在脱链时完成大部分交易,并且偶尔会在实际区块链上解决余额问题. 就像我之前描述的拱顶一样 ,在以太坊上它变得更容易. 这个基本想法被称为 ...
- Flalsh Lighting Network(闪电网络)
注明:本文参考了如下链接: 原文链接 Understanding the Lightning Network, Part 1 Understanding the Lightning Network, ...
- 不是有效的win32应用程序_闪电网络走进生活还远吗?Lightning Labs推出Alpha版本桌面应用程序...
Lightning Labs(闪电实验室)刚刚发布了闪电网络钱包的alpha版本.其桌面应用程序现在与比特币的主网络兼容,它利用Neutrino协议(协议名称,不是Coinbase收购的数据分析公司) ...
- 独家 | 一文读懂Corda分布式记账技术
作者:Dan Newton 翻译:申利彬 校对:丁楠雅 本文约2600字,建议阅读10分钟. 本文为你介绍借鉴了区块链的部分特性的分布式记账技术,并分析其背后的原因. 什么是Corda? 最近我开始了 ...
- Core禁用BIP70或只为制造闪电网络硬需求
在Core表示将要在BTC上彻底禁止BIP70后,引起了BTC社区的广泛讨论和争议.reddit/Bitcoin的用户表示:"Core在默认情况下删除了BIP70,为什么我们作为用户却不 ...
- V神:随着时间的推移,我对链外数据L2越来越悲观
V神不看好什么 上周三,以太坊创始人Vitalik Buterin在推特表示:随着时间的推移,我对链外数据L2变得越来越悲观.@ VladZamfir是正确的,它们只是很难被构建,需要太多关于激励机制 ...
最新文章
- 如何利用 C# 实现 K-D Tree 结构?
- 基于瞳孔检测,湖北中学推出人脸支付!网友提出安全投诉,学校:符合法规,无风险...
- idea配置tomcat里你不知道的小秘密
- java socket通信安全_Java Socket通信
- html中图片的属性优化,Html标签元素在SEO中的优化方式(二)
- python实现链表的删除_B站上的免费Python课程
- Apriori进行关联分析
- RDD partitioner入门详解
- 基于统计语言模型的分词方法
- 易辅客栈-编写手游模拟器辅助脚本-征途
- 医院信息化建设少不了CRM呼叫中心
- 【时序】DCRNN:结合扩散卷积和GNN的用于交通流量预测的时空预测网络
- 推荐:本人使用频率最高的20款Mac软件(全)
- Win10系统新款便笺便签居然可以这么好用
- oppo系统工程师暑期实习生面经(已OC)
- 三刷红宝书之 JavaScript 的引用类型
- python爬取豆瓣电影top250_用Python爬取豆瓣电影TOP250分析
- 传感器--方向传感器制作指南针
- VSCode系列之IDEA快捷键
- 瑞云专访CG新生力量:《星野》C4D动画毕设制作分享
热门文章
- 概率神经网络(PNN)
- Java实验一—编程实现计算贷款偿还额的程序
- python字符串长度输出_python输出指定长度的字符串
- python opencv2 将两张图片合并为一张
- SMTP、ESMTP、POP3常用命令备忘
- 中路由怎么配置_【国土语录 第64期】茶队点金大鱼后发生了什么;否定Fy关于茶队中路看法...
- 基于Python的统计建模
- 数据结构课程设计(部分选题)
- nginx学习--nginx下的gzip与vary、预压缩、缓存、反向代理的结合
- 执行HiveSql时报错“FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTa”