小白学习区块链-共识算法测试(1)

网络上很少有全面详细的区块链系统仿真的代码和讲解,从头开始真的很难。

现在先把叶之秋大神分享的BFT-SMaRt 性能测试实验给复现一下,遇到的困难...不计其数。链接如下:共识和区块链实验-以 BFT-SMaRt 和 Fabric 为例 - 知乎

Ubuntu和docker部分省略。

初始化环境

拉取Ubuntu18.04镜像

docker run -it --rm ubuntu:18.04 bash

安装git和ant

apt update 
apt install git -y 
apt install ant -y 
git clone https://github.com/bft-smart/library.git 
cd library 
git checkout 0f2d407 
ant 

重要步骤:注释掉 /usr/lib/jvm/java-11-openjdk-amd64/conf/security/java.security 中的下面这3行,不然会报错。(Java调用ssl异常,javax.net.ssl.SSLHandshakeException: No appropriate protocol)

apt update
apt install vim
vim /usr/lib/jvm/java-11-openjdk-amd64/conf/security/java.security

#注释下面这三行,记得看清楚内容,行数不一定准确
# 704 # jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
# 705     # DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
# 706     # include jdk.disabled.namedCurves

此时网络环境初始化步骤已经结束,笔者建议此时的容器可以保存成镜像,后续使用避免重来。

之后在ubuntu中打开四个终端,进入同一个docker容器的终端作为四个节点。

docker exec -it 7e9117c6bbb2 /bin/bash 
#容器id自拟

之后在新打开的四个终端内单独配置组网设置:

./runscripts/smartrun.sh bftsmart.demo.counter.CounterServer 0
./runscripts/smartrun.sh bftsmart.demo.counter.CounterServer 1
./runscripts/smartrun.sh bftsmart.demo.counter.CounterServer 2
./runscripts/smartrun.sh bftsmart.demo.counter.CounterServer 3 

# 等四个节点都输出  Ready to process operations 后,运行 client
./runscripts/smartrun.sh bftsmart.demo.counter.CounterClient 1001 2 100

注:四个终端都配置好后才显示-- Ready to process operations成功页面

client正常运行:

测试 BFT-SmaRt 的 throughput 和 latency

根据叶之秋大神笔记做

节点配置成功
延迟和吞吐量性能测试
更改节点数量

在config/hosts.config文件中增加一个节点。

4 127.0.0.1 11040 11041

修改config/hosts.config:   

############################################
### Replication Algorithm Configurations ###
############################################
#Number of servers in the group 
system.servers.num = 5




############################################
###### Reconfiguration Configurations ######
############################################

#Replicas ID for the initial view, separated by a comma.
# The number of replicas in this parameter should be equal to that specified in 'system.servers.num'
system.initial.view = 0,1,2,3,4
##163行

后续未实现

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值