当前位置: 代码网 > 科技>区块链>区块链技术 > 区块链部件代码分析

区块链部件代码分析

2024年08月06日 区块链技术 我要评论
主程序nodes类中包含以下函数建立新的交易行为向tx池中加入交易信息向known_tx表中加入id号广播交易给所有结点receiver其他用户结点接收交易信息以及区块广播当前结点已记录交易信息则pass如果没有,则添加id号,data数据等信息广播给其他用户结点并记录广播结点与其他结点的延迟调用receiver创建区块block交易从txpool中pop到pendingpool中交易结束后,将其作为新的信息迭代到哈希值中在block列表首部插入最新的block。

区块链模拟器

author: hopeace

data: 2023-06-08

link: concept-inversion/blockchain-simulator: a blockchain simulator based on simpy in python. (github.com)

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与模拟过程相关,不涉及到区块链技术本身

程序运行

在这里插入图片描述

总结

用户间进行交易产生交易行为并对外广播 => 记账先生(随机选取结点)发现交易行为后,利用自身算力,利用过去信息的哈希值与新的交易信息结合计算出新的哈希值,将其构建成新的区块,并将这个区块对外广播 => 其他所有用户结点接收到区块广播后,更新自己维护的区块链表 => 交易全过程结束,区块链更新实现

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com