单元5-1 区块链网络_第1页
单元5-1 区块链网络_第2页
单元5-1 区块链网络_第3页
单元5-1 区块链网络_第4页
单元5-1 区块链网络_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单元五区块链中节点间的通信CommunicaitoninNodesPART1区块链网络基础公有链区块链网络一般具有数量多、分布广、自治以及开发自由等特点,一般采用P2P对等网络通信的方式区块链网络中的节点均会承担网络路由、验证数据、传播数据以及发现节点等功能采用的网络拓扑结构为Mesh网络(即网状拓扑结构)联盟链区块链网络适用于企业间进行高频的数据交换以及工业生产中存在的高频数据记录等业务将多个参与者构建为独立的联盟,在联盟内的成员采用区块链的形式管理数据联盟与联盟间将以物理的形式实现“数据隔离”,降低区块链网络的拓扑复杂,提升效率私有链区块链网络集中于公司或组织的内部使用,类似于传统中心化网络构建私有链网络,所有数据都保存于一个中心节点中。借助区块链技术实现数据的安全和隐私保护PART2Networkx实现区块链网络绘制区块链网络1.安装Networkx确保Python版本为3.6+,使用pip可直接安装,确保具体命令如下:$pipinstallnetworkx若要升级到较新版本,请使用--upgrade,具体操作如下:$pipinstall--upgradenetworkx绘制区块链网络2.创建图形(Graph)使用工具的第一步,创建一个没有节点和边的空图形,具体代码如下:importnetworkxasnxG=nx.Graph()绘制区块链网络3.添加节点(Node)(1)直接添加节点如下为直接添加一个节点的代码示例:G.add_node(1)(2)通过可迭代对象添加节点如下为添加的代码示例:G.add_nodes_from([2,3])绘制区块链网络4.添加边(Edge)(1)直接添加如下为直接添加边的代码示例:G.add_edge(1,2)(2)通过可迭代对象添加如下为具体代码示例:G.add_edges_from([(1,2),(1,3)])绘制区块链网络5.检查图的元素信息

完成图、节点和边信息添加后,可通过相关方法检查。具体操作如下:print(list(G.nodes))#显示图中的节点信息print(list(G.edges))#显示图中的边信息print(G.number_of_nodes())#显示图中节点数量print(G.number_of_edges()) #显示图中边数量print(G.nodes()[1])#获取名称为1的节点完整信息绘制区块链网络6.从图中删除元素如下代码可实现从已存在的图中删除节点和边:G.remove_node(2)#删除名称为2的节点G.remove_edge(1,3)#删除节点1和节点3的边绘制区块链网络7.向图形、节点和边缘添加属性(1)向图形添加属性通过向nx.Graph()函数中添加参数可以实现属性的添加具体的属性设置和获取代码如下:G=nx.Graph(name="test_network")print(G.graph['name'])或者可以直接通过G.graph设置图形的属性,具体代码如下:G.graph['location']='china'print(G.graph['location'])绘制区块链网络7.向图形、节点和边缘添加属性(2)向节点添加属性与图形添加属性的方法类似,节点添加也有两种方式,具体代码示例如下:G.add_node(4,name='test4')#直接添加节点和对应属性G.add_nodes_from([5,6],location='jiangsu')#通过迭代的方式添加节点和属性print(list(G.nodes.data()))#输出添加节点后的节点及属性信息绘制区块链网络7.向图形、节点和边缘添加属性(3)向边添加属性参照图形以及节点的属性添加方法,边设置属性可以有如下代码示例:G.add_edge(4,5,weight=4)#直接添加边属性G.add_edges_from([(1,2,{'color':'blue'}),(4,6,{'weight':'5'})])#通过添加可迭代对象G[1][2]['weight']=8#给已存在的边添加属性绘制区块链网络8.绘制简单网络如下代码为使用networkx生成示例图和绘制图形的示例代码:importnetworkxasnximportmatplotlib.pyplotaspltG=nx.Graph()G.add_node(1)G.add_node(2)G.add_node(3)G.add_edges_from([(1,2),(2,3),(3,1)])nx.draw(G)plt.show()实战练习:绘制不同类型的区块链网络1.练习目标使用networkx绘制不同类型的区块链网络,包括公有链网络、联盟链网络以及私有链网络。2.任务内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论