区块链实验室(18) - 用FISCO BCOS架设1个无标度网络

FISCO技术文档提供1个4节点的网络案例,这4个节点构成1个强连通图。强连通图在现实中通常是不存在的。 本文用FISCO架设1个网络,该网络由100个节点构成1个无标度(scale free)网络,如下图所示。

在这里插入图片描述

1 用FISCO工具构建1个100节点的初始网络

FISCO提供1个Shell脚本,用于构建初始网络,完整的脚本如下。

./build_chain.sh -l localhost:100 -p 30300,20200,8545 -o ./scalefree

在这里插入图片描述

执行完毕上述脚本之后,新生成1个目录scalefree,见下图。其中2个freeScaleNetwork文件,不是FISCO生成的,是本文创建的无标度网络,在网盘资源中可下载。可按图中提示,验证FISCO的版本,节点个数。

在这里插入图片描述
在这里插入图片描述

再来看一看FISCO初始网络的节点连通性,随便打开1个节点的配置文件config.ini,见下图。很明显,又是1个强连通图,每个节点都与其他99个节点有连接。

在这里插入图片描述

2 建立无标度网络

从网盘资源中下载文件,见下图所示。最关键的是其中1和3。

在这里插入图片描述

1:无标度网络配置文件

2:无标度网络配置文件,和上面1个是一样的,这个是邻接矩阵表示

3:本文的脚本,修改100个节点的P2P网络连接,使之构成无标度网络

4:FISCO构建初始化网络的脚本

在指定目录执行本文脚本,见下图。脚本代码如下。

在这里插入图片描述

#!/bin/bash

LINE=$'\n'
SEMICOLON=";"
OLD_IFS="$IFS"
i=1
listen_port=30300

IFS=$LINE
for line in `cat ./freeScaleNetwork.csv`
do
	sed -i '11,110d' ./localhost/node$[$i-1]/config.ini

	IFS=$SEMICOLON
	neighbor=""
	nblist=$neighbor
	j=11
	for item in $line
	do
		neighbor="    node.$[$item-1]=localhost:$[$item-1+$listen_port]"
		nblist=$nblist$neighbor
		sed -i "$[$j]i $neighbor"  ./localhost/node$[$i-1]/config.ini
		sed -i ''"$j"'s/^/&    /g' ./localhost/node$[$i-1]/config.ini
		let "j=$j+1"
	done
	let "i=$i+1"
	IFS=$LINE
done
IFS="$OLD_IFS"

执行完毕后,再看看节点的配置文件config.ini。很明显,不再是强连接图。

在这里插入图片描述

接下来,启动这个无标度网络,见下图。由于100个节点,就100个进程啊,这时风扇狂响。本虚拟机设置了8G内存。

在这里插入图片描述
在这里插入图片描述

实验环境如下

虚拟机文件:ubuntu20.04-Fisco

获取地址:https://pan.baidu.com/s/1RlrSy_OuT3B7TMT5AJEGmA?pwd=oava

联系方式:goodlcp@163.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/100371.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3项目导入异常Error: @vitejs/PLUGIN-vue requires vue (>=3.2.13)

vue3项目导入异常 1、异常提示如下: failed TO LOAD config FROM D:\ws-projects\vite.co nfig.js error WHEN STARTING dev SERVER: Error: vitejs/PLUGIN-vue requires vue (>3.2.13) OR vue/compiler-sfc TO be pre sent IN the dependency tree.2、解决办法…

【SpringSecurity】十、JWT工具类

文章目录 1、jwt类库与相关依赖2、工具类3、总结 1、jwt类库与相关依赖 <!-- 添加jwt的依赖 --> <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.11.0</version> </dependency>…

unity 跨屏显示

1.代码 /*Type:设置分辨率*/ using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using System.Runtime.InteropServices;public class ScreenManager : MonoBehaviour {[HideInInspector]//导入设置窗口函数 [DllImport("…

执行SQL文件出现【Unknown collation “utf8mb4_0900_ai_ci”】的解决方案

执行SQL文件出现【Unknown collation “utf8mb4_0900_ai_ci”】的解决方案 一、背景描述二、报错原因三、解决方案 一、背景描述 从服务器MySQL中导出数据为SQL执行脚本后&#xff0c;在本地执行导出的SQL脚本。 报错&#xff1a;Unknown collation “utf8mb4_0900_ai_ci” …

浅谈城市轨道交通视频监控与AI视频智能分析解决方案

一、背景分析 地铁作为重要的公共场所交通枢纽&#xff0c;流动性非常高、人员大量聚集&#xff0c;轨道交通需要利用视频监控系统来实现全程、全方位的安全防范&#xff0c;这也是保证地铁行车组织和安全的重要手段。调度员和车站值班员通过系统监管列车运行、客流情况、变电…

【C++从0到王者】第二十五站:多继承的虚表

文章目录 前言一、多继承的虚函数表二、菱形继承与菱形虚拟继承的虚函数表1.菱形继承2.菱形虚拟继承的虚函数表 三、抽象类1.抽象类的概念2.接口继承与实现继承 总结 前言 其实关于单继承的虚函数表我们在上一篇文章中已经说过了&#xff0c;就是派生类中的虚表相当于拷贝了一…

高版本springboot3.1配置Eureka客户端问题

只需要按上面配置好&#xff0c;然后高版本的Eureka&#xff0c;不需要EnableEurekaClient这个注解了&#xff0c;直接SpringBoot启动&#xff0c;就可以注册到注册中心。 /*********************************************************/ /** * 开启eureka客户端功能 */ //E…

说说Flink中的State

分析&回答 基本类型划分 在Flink中&#xff0c;按照基本类型&#xff0c;对State做了以下两类的划分&#xff1a; Keyed State&#xff0c;和Key有关的状态类型&#xff0c;它只能被基于KeyedStream之上的操作&#xff0c;方法所使用。我们可以从逻辑上理解这种状态是一…

如何有效防止服务器被攻击?

随着互联网的快速发展&#xff0c;服务器安全问题日益引起人们的关注。近期&#xff0c;全球范围内频繁发生的服务器攻击事件引发了广泛关注。为了保护企业和个人的数据安全&#xff0c;有效防止服务器被攻击已成为迫在眉睫的任务。 首先&#xff0c;及时更新服务器的操作系统和…

Visual Studio编译出来的程序无法在其它电脑上运行

在其它电脑&#xff08;比如Windows Server 2012&#xff09;上运行Visual Studio编译出来的应用程序&#xff0c;结果报错&#xff1a;“无法启动此程序&#xff0c;因为计算机中丢失VCRUNTIME140.dll。尝试重新安装该程序以解决此问题。” 解决方法&#xff1a; 属性 -> …

Linux线程互斥

目录 一、线程不安全 1.线程不安全现象 2.线程不安全程序的特质 3.线程不安全程序的原因 二、线程互斥 1.基本概念 2.锁 &#xff08;1&#xff09;认识锁 &#xff08;2&#xff09;互斥锁的使用 &#xff08;3&#xff09;代码的改造 3.锁的本质 &#xff08;1&a…

读word模板批量生成制式文件

文章目录 1、Maven依赖2、.docx或.doc格式的word模板准备3、读word模板&#xff0c;批量替换代码域&#xff0c;生成文件&#xff0c;demo4、结果展示 1、Maven依赖 <dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagre…

企业级智能PDF及文档处理SDK GdPicture.NET 14.2 Crack

企业级智能PDF及文档处理SDK GdPicture.NET 提供了一组非常先进的 API&#xff0c;这些 API 利用了人工智能、机器学习和模糊逻辑算法等尖端技术。经过超过 15 年的持续研究和对创新的专注&#xff0c;我们的 SDK 已成为市场上针对PDF、OCR、条形码、文档成像和各种格式最全面的…

Redis数据结构总结

Redis 是一款开源的&#xff0c;内存中的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息代理。Redis 支持多种类型的数据结构&#xff0c;如字符串&#xff08;String&#xff09;、哈希&#xff08;Hashes&#xff09;、列表&#xff08;Lists&#xff09;、集合&…

C盘扩容遇到的问题(BitLocker解密、)

120G的C盘不知不觉的就满了&#xff0c;忍了好久终于要动手了。 尽管电脑-管理--磁盘管理里可以进行磁盘大小调整&#xff0c;但由于各盘都在用&#xff0c;不能够连续调整&#xff0c;所以选用DiskGenius。 # DiskGenius调整分区大小遇到“您选择的分区不支持无损调整容量” …

LINQ详解(查询表达式)

什么是LINQ&#xff1f; LINQ(语言集成查询)是将查询功能直接集成到C#中。数据查询表示简单的字符串&#xff0c;在编译时不会进行类型检查和IntelliSense(代码补全辅助工具)支持。 在开发中&#xff0c;通常需要对不同类型的数据源了解不同的查询语句&#xff0c;如SQL数据库…

老师们快看过来,这里有使用ChatGPT当助教的方法

最近OpenAI官方博客发布了一篇文章How teachers are using ChatGPT&#xff08;老师们如何使用ChatGPT&#xff09;&#xff0c;讲的是老师们如何在教学中使用ChatGPT&#xff0c;其中有几个例子挺好的&#xff0c;我转述一下&#xff0c;希望对你有用。 制定教案 第一个例子…

【大数据】Flink 详解(六):源码篇 Ⅰ

Flink 详解&#xff08;六&#xff09;&#xff1a;源码篇 Ⅰ 55、Flink 作业的提交流程&#xff1f;56、Flink 作业提交分为几种方式&#xff1f;57、Flink JobGraph 是在什么时候生成的&#xff1f;58、那在 JobGraph 提交集群之前都经历哪些过程&#xff1f;59、看你提到 Pi…

Android Aidl跨进程通讯(二)--异常捕获处理

学更好的别人&#xff0c; 做更好的自己。 ——《微卡智享》 本文长度为1623字&#xff0c;预计阅读5分钟 前言 上一篇《Android Aidl跨进程通讯的简单使用》中介绍了跨进程的通讯处理&#xff0c;在进程间的数据通过Aidl实现了交互&#xff0c;项目中经常会遇到Bug&#xff0c…

浅谈为什么磁盘慢会导致Linux负载飙升

先说原因结论 在Linux系统上&#xff0c;load average这个指标基本失去了作用&#xff0c;因为你不知道它代表什么意思&#xff0c;当看到load average很高的时候&#xff0c;你不知道是runnable进程太多还是uninterruptible sleep进程太多&#xff0c;也就无法判断是CPU不够用…