BlockSim的运行

简介

      BlockSim是一款开源的区块链仿真与分析程序,主要是用于模拟区块链的DAG结构,进而分析区块链的分叉、性能等,并不能用于具体的区块链系统。
      Github链接:https://github.com/wulingyun/BlockSim

使用RStudio运行

      该项目使用R语言编写,所以我使用的是RStudio来运行。

下载项目

Step 1:
打开RStudio。然后:File -> New Project -> Version Control -> Git。
在Repository URL中将GitHub上repository的url加入到选项中。
在这里插入图片描述
选择本地路径。点击Create Project。
在这里插入图片描述
等待读条。
在这里插入图片描述
导入完成。
在这里插入图片描述

可能遇到的问题

      在运行该项目时,我们需要用到几个包:BlockSim、reshape2等。
      在R语言中,引用包的方式为:先安装包,再在需要使用的时候加载包。安装包的命令为:install.packages("包名");加载包的命令为:library(包名)

一、BlockSim包

这个包没有提交到CRAN,所以直接使用命令install.packages("BlockSim")会找不到。
在这里插入图片描述
需要自己下载用源文件方式安装,或者用devtools包提供的工具。所以就要先安装devtools包:install.packages("devtools")。然后加载library(devtools)
这时就可以用devtools包中提供的命令下载:install_github("wulingyun/BlockSim")
安装完以后再进行加载library(BlockSim)就可以了。

二、reshape2

这个包是R语言自带的,但是直接加载时可能出现这个问题:
在这里插入图片描述
如果报这个错,就直接install.packages("stringi")就可以了。同理,如果报错最后是“不存在叫‘stringr’这个名字的逻辑包”,那就用install.packages("stringr")

运行例子

在将上述包都成功加载进来后,还要加载一个包library(ggplot2)。就可以开始使用了。
全部命令如下:

lambda <- seq(0, 0.1, length.out = 100)

y1 <- tx_per_second(sapply(lambda, estimate_growth_rate, block_size = 1), block_size = 1)
y2 <- tx_per_second(sapply(lambda, estimate_growth_rate, block_size = 2), block_size = 2)
y3 <- tx_per_second(sapply(lambda, estimate_growth_rate, block_size = 4), block_size = 4)
y01 <- tx_per_second(lambda, block_size = 1)
y02 <- tx_per_second(lambda, block_size = 2)
y03 <- tx_per_second(lambda, block_size = 4)

TPS <- data.frame(lambda = lambda, y1 = y1, y2 = y2, y3 = y3)
dd = melt(TPS, id=c("lambda"))

TPS0 <- data.frame(lambda = lambda, y1 = y01, y2 = y02, y3 = y03)
dd0 = melt(TPS0, id=c("lambda"))
dd0 <- dd0[dd0$value < 300, ]

p <- ggplot(dd) +
geom_line(aes(x = lambda, y = value, colour = variable, linetype = "solid")) +
geom_line(data = dd0, aes(x = lambda, y = value, colour = variable, linetype = "dashed")) +
scale_colour_manual(name = "Block size", values = c("blue", "green", "red"),
labels = c("1M", "2M", "4M")) +
scale_linetype_manual(name = "Models", values = c("dashed", "solid"),
labels = c("Theoretical maximum", "Gamma distribution")) +
xlab("Block creation rate (block/s)") +
ylab("Transaction Throughput (tx/s)") +
theme(legend.position = c(0.01,0.99),
legend.justification = c(0,1))
ggsave("TPS_lambda.png", p, height = 5, dpi = 1200)

输入完毕,就可以发现在项目根目录下生成一张图片:
在这里插入图片描述
打开,就是根据以上命令中给的参数生成的展示图片。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值