区块链模拟器
author: hopeace
data: 2023-06-08
blockchain-simulator-master
部件
+ 区块 blocks.py
+ 网络结点管理器 network_state_graph.py
+ 交易 transactions.py
+ 监控日志 monitor.py
+ 主程序 blockchain_simulation.py
+ 每个用户被看作一个结点
+ 随机选取一个记账先生
+ 所维护资源包括
+ 交易池txpool
+ 缓冲池pendingpool
+ 区块链链表block_list
+ 上一个时刻同步的区块链链表known_blocks
+ 上一个时刻同步的交易记录known_tx
+ 上一时刻所有信息得到的哈希值prev_hash
相关函数介绍
主程序nodes类中包含以下函数
- add_transaction
- receiver
- broadcaster
- create_block
- receive_block
其他函数如node_generator、trans_generator、monitor、poa与模拟过程相关,不涉及到区块链技术本身
程序运行
总结
用户间进行交易产生交易行为并对外广播 => 记账先生(随机选取结点)发现交易行为后,利用自身算力,利用过去信息的哈希值与新的交易信息结合计算出新的哈希值,将其构建成新的区块,并将这个区块对外广播 => 其他所有用户结点接收到区块广播后,更新自己维护的区块链表 => 交易全过程结束,区块链更新实现
发表评论