基于Python实现一个PoW的仿真程序

1,作业内容 利用 Python 实现一个 PoW 的仿真程序,模拟一定数量的节点生成区块链的状态, 设置参数包括:节点数量和每个轮次出块的成功率

本文包含相关资料包-----> 点击直达获取<-------

1.作业内容

利用 Python 实现一个 PoW 的仿真程序,模拟一定数量的节点生成区块链的状态。

  • 设置参数包括:节点数量和每个轮次出块的成功率,测量区块链的增长速度。
  • 设置一定数量的恶意节点实施攻击。
  • 测量不同恶意节点比例(10%-40%)条件下,统计分叉攻击成功的长度测量
  • 不同恶意节点比例条件下,自私挖矿收益比例

2.代码解析

  • 程序入口是 simulate_pow.py,simulate_pow 函数参数为诚实节点数量,恶意节点数量和出块难度。默认参数设置如下:

  • 修改

  • 仿真结果保存在 log 目录下的日志中。
  • 令恶意节点攻击第一个区块(genesis 块)

3.实验内容

3.1第一轮仿真

  • 参数:honest node number = 10, evil node number = 0, difficulty = 000000
  • 仿真结果:

  • 平均出块时间: 66s,最短出块时间 3s,最长出块时间 202s

3.2第二轮仿真

  • 参数:honest node number = 10, evil node number = 0, difficulty = 00000
  • 仿真结果:

  • 平均出块时间: 3s,最短出块时间 0s(精确到个位),最长出块时间 7s

3.3第三轮仿真

  • 参数:honest node number = 10, evil node number = 1, difficulty = 00000
  • 仿真结果:

  • 恶意节点攻击失败

3.4第四轮仿真

  • 参数:honest node number = 10, evil node number = 4, difficulty = 00000
  • 1 到 10 号 miner 为 honest node,11 号到 14 号为 evil node

  • 可以看到,诚实节点在领先一个区块的情况下被恶意节点瞬间反超,我认为这和 python 多线程的机制有关。python 多线程并不是真正意义上的并行,并且会先调度后创建的线程。为了更真实地模拟分叉攻击,我决定让诚实节点领先一个区块后再让恶意节点开始攻击,并且提高出块难度。
  • 参数:honest node number = 10, evil node number = 4, difficulty = 000000
  • 0 到 9 号 miner 为 honest node,10 号到 13 号为 evil node

  • 可以看到,python 多线程优先调度后创建的线程,因此恶意节点攻击成功。

4.实验心得

由于 python 多线程的机制,本次仿真并不能很好地模拟分叉攻击。攻击成功与否极度依赖于线程调度顺序。通过本次实验,我理解了 Prove of Work 共识协议,与 Raft 和 Paxos 达成共识的方法完全不同,POW 用计算时间来达成共识,这令我感到非常新奇。

参考文献

  • 基于Web的信息发布与信息交流平台的设计与实现(吉林大学·许昭霞)
  • 战时运输任务演练系统设计与实现(大连理工大学·杨福君)
  • 基于Django框架的浮云笔记系统的设计与实现(华中科技大学·罗丹)
  • 无人机战术链仿真器的设计与实现(大连理工大学·孙云栋)
  • 基于Q-learning的系统集成与过程优化(青岛科技大学·魏晓彤)
  • 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐)
  • 物流设施选址系统的设计和实现(北京交通大学·黎宇彬)
  • 基于POEM平台的物流优化教学实验系统设计(吉林大学·何锐明)
  • 网上购物模拟系统(吉林大学·郭秋野)
  • POWAZI知识共享网站中用户管理和公共访问系统的设计与实现(北京邮电大学·安娜娜)
  • 基于Web的信息发布与信息交流平台的设计与实现(吉林大学·许昭霞)
  • POWAZI知识共享网站中用户管理和公共访问系统的设计与实现(北京邮电大学·安娜娜)
  • 仿真支撑平台数据管理和网络通信的设计与实现(武汉理工大学·骆彬)
  • 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐)
  • 无人机战术链仿真器的设计与实现(大连理工大学·孙云栋)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码客栈网 ,原文地址:https://m.bishedaima.com/yuanma/36139.html

相关推荐

发表回复

登录后才能评论