广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python区块链块怎么添加
  • 750
分享到

Python区块链块怎么添加

2023-06-30 15:06:38 750人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python区块链块怎么添加的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python区块链块怎么添加文章都会有所收获,下面我们一起来看看吧。每个矿工将从先前创建的交易池中获取交易.要跟踪已挖

这篇文章主要介绍了python区块链块怎么添加的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python区块链块怎么添加文章都会有所收获,下面我们一起来看看吧。

每个矿工将从先前创建的交易池中获取交易.要跟踪已挖掘的消息数量,我们必须创建一个全局变量 :

last_transaction_index = 0

我们现在让我们的第一个矿工在区块链中添加一个区块.

添加第一个区块

到添加一个新块,我们首先创建一个 Block 类的实例

block = Block()

我们从队列中选取前3个交易并减去;

for i in range(3):   temp_transaction = transactions[last_transaction_index]   # validate transaction

在将事务添加到块之前矿工将验证交易的有效性.通过测试发送方提供的哈希与矿工使用发送方公钥生成的哈希的相等性来验证交易有效性.此外,矿工将验证发件人是否有足够的余额来支付当前交易.

为简洁起见,我们未在教程中包含此功能.验证交易后,我们将其添加到块实例中的 verified_transactions 列表中.

block.verified_transactions.append(temp_transaction)

我们递增最后一个事务索引,以便下一个矿工将获取队列中的后续事务

last_transaction_index + = 1

我们在块中添加了三个交易.完成此操作后,我们将初始化 Block 类的其余实例变量.我们首先添加最后一个块的哈希值.

block.previous_block_hash = last_block_hash

接下来,我们挖掘难度等级为2的区块.

block.Nonce = mine(block,2)

请注意, mine 函数的第一个参数是二进制对象.我们现在对整个块进行哈希并在其上创建摘要.

digest = hash(block)

最后,我们将创建的块添加到区块链中,并重新初始化全局变量 last_block_hash ,以便在下一个区块中使用.

添加块的整个代码显示在下面 :

block = Block()for i in range(3):   temp_transaction = transactions[last_transaction_index]   # validate transaction   # if valid   block.verified_transactions.append (temp_transaction)   last_transaction_index += 1block.previous_block_hash = last_block_hashblock.Nonce = mine (block, 2)digest = hash (block)TPCoins.append (block)last_block_hash = digest

添加更多块

现在我们将向区块链添加两个块.添加下两个块的代码在下面和下面给出;

# Miner 2 adds a blockblock = Block()for i in range(3):   temp_transaction = transactions[last_transaction_index]   # validate transaction   # if valid   block.verified_transactions.append (temp_transaction)   last_transaction_index += 1block.previous_block_hash = last_block_hashblock.Nonce = mine (block, 2)digest = hash (block)TPCoins.append (block)last_block_hash = digest# Miner 3 adds a blockblock = Block()for i in range(3):   temp_transaction = transactions[last_transaction_index]   #display_transaction (temp_transaction)   # validate transaction   # if valid   block.verified_transactions.append (temp_transaction)   last_transaction_index += 1block.previous_block_hash = last_block_hashblock.Nonce = mine (block, 2)digest = hash (block)TPCoins.append (block)last_block_hash = digest

当你添加这两个块时,您还将看到查找Nonce所需的迭代次数.此时,我们的区块链共包含4个区块,包括创世区块.

转储整个区块链

您可以验证整个区块链的内容使用以下语句 :

dump_blockchain(TPCoins)

你会看到输出类似于下面显示的那个 :

Number of blocks in the chain: 4block # 0sender: Genesis-----recipient:30819f300d06092a864886f70d010101050003818d0030818902818100ed272b52ccb539e2cd779c6cc10ed1dfadf5d97c6ab6de90ed0372b2655626fb79f62d0e01081c163b0864cc68d426bbe9438e8566303bb77414d4bfcaa3468ab7febac099294de10273a816f7047d4087b4bafa11f141544d48e2f10b842cab91faf33153900c7bf6c08c9e47a7df8aa7e60dc9e0798fb2ba3484bbdad2e4430203010001-----value: 500.0-----time: 2019-01-14 16:18:02.042739-------------------=====================================block # 1sender:30819f300d06092a864886f70d010101050003818d0030818902818100bb064c99c492144a9f463480273aba93ac1db1f0da3cb9f3c1f9d058cf499fd8e54d244da0a8dd6DDD329ec86794b04d773eb4841c9f935ea4d9ccc2821c7a1082d23b6c928d59863407f52fa05d8b47e5157f8fe56c2ce3279c657f9c6a80500073b0be8093f748aef667c03e64f04f84d311c4d866c12d79d3fc3034563Dfb0203010001-----recipient:30819f300d06092a864886f70d010101050003818d0030818902818100be93b516b28c6e674abe7abdb11ce0fdf5bb728b75216b73f37a6432e4b402b3ad8139b8c0ba541a72c8add126b6e1a1308fb98b727beb63c6060356bb177bb7d54b54dbe87aee7353d0a6baa9397704de625d1836d3f42c7ee5683f6703259592cc24b09699376807f28fe0e00ff882974484d805f874260dfc2d1627473b910203010001-----value: 15.0-----time: 2019-01-14 16:18:01.859915-------------------sender:30819f300d06092a864886f70d010101050003818d0030818902818100bb064c99c492144a9f463480273aba93ac1db1f0da3cb9f3c1f9d058cf499fd8e54d244da0a8dd6ddd329ec86794b04d773eb4841c9f935ea4d9ccc2821c7a1082d23b6c928d59863407f52fa05d8b47e5157f8fe56c2ce3279c657f9c6a80500073b0be8093f748aef667c03e64f04f84d311c4d866c12d79d3fc3034563dfb0203010001-----recipient:30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e5650203010001-----value: 6.0-----time: 2019-01-14 16:18:01.860966-------------------sender:30819f300d06092a864886f70d010101050003818d0030818902818100be93b516b28c6e674abe7abdb11ce0fdf5bb728b75216b73f37a6432e4b402b3ad8139b8c0ba541a72c8add126b6e1a1308fb98b727beb63c6060356bb177bb7d54b54dbe87aee7353d0a6baa9397704de625d1836d3f42c7ee5683f6703259592cc24b09699376807f28fe0e00ff882974484d805f874260dfc2d1627473b910203010001-----recipient:30819f300d06092a864886f70d010101050003818d0030818902818100cba097c0854876f41338c62598c658f545182cfa4acebce147aedf328181f9c4930f14498fd03c0af6b0cce25be99452a81df4fa30a53eddbb7bb7b203adf8764a0ccd9db6913a576d68d642d8fd47452590137869c25d9ff83d68ebe6d616056a8425b85b52e69715b8b85ae807b84638d8f00e321b65e4c33acaf6469e18e30203010001-----value: 2.0-----time: 2019-01-14 16:18:01.861958-------------------=====================================block # 2sender:30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e5650203010001-----recipient:30819f300d06092a864886f70d010101050003818d0030818902818100be93b516b28c6e674abe7abdb11ce0fdf5bb728b75216b73f37a6432e4b402b3ad8139b8c0ba541a72c8add126b6e1a1308fb98b727beb63c6060356bb177bb7d54b54dbe87aee7353d0a6baa9397704de625d1836d3f42c7ee5683f6703259592cc24b09699376807f28fe0e00ff882974484d805f874260dfc2d1627473b910203010001-----value: 4.0-----time: 2019-01-14 16:18:01.862946-------------------sender:30819f300d06092a864886f70d010101050003818d0030818902818100cba097c0854876f41338c62598c658f545182cfa4acebce147aedf328181f9c4930f14498fd03c0af6b0cce25be99452a81df4fa30a53eddbb7bb7b203adf8764a0ccd9db6913a576d68d642d8fd47452590137869c25d9ff83d68ebe6d616056a8425b85b52e69715b8b85ae807b84638d8f00e321b65e4c33acaf6469e18e30203010001-----recipient:30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e5650203010001-----value: 7.0-----time: 2019-01-14 16:18:01.863932-------------------sender:30819f300d06092a864886f70d010101050003818d0030818902818100be93b516b28c6e674abe7abdb11ce0fdf5bb728b75216b73f37a6432e4b402b3ad8139b8c0ba541a72c8add126b6e1a1308fb98b727beb63c6060356bb177bb7d54b54dbe87aee7353d0a6baa9397704de625d1836d3f42c7ee5683f6703259592cc24b09699376807f28fe0e00ff882974484d805f874260dfc2d1627473b910203010001-----recipient:30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e5650203010001-----value: 3.0-----time: 2019-01-14 16:18:01.865099-------------------=====================================block # 3sender:30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e5650203010001-----recipient:30819f300d06092a864886f70d010101050003818d0030818902818100bb064c99c492144a9f463480273aba93ac1db1f0da3cb9f3c1f9d058cf499fd8e54d244da0a8dd6ddd329ec86794b04d773eb4841c9f935ea4d9ccc2821c7a1082d23b6c928d59863407f52fa05d8b47e5157f8fe56c2ce3279c657f9c6a80500073b0be8093f748aef667c03e64f04f84d311c4d866c12d79d3fc3034563dfb0203010001-----value: 8.0-----time: 2019-01-14 16:18:01.866219-------------------sender:30819f300d06092a864886f70d010101050003818d0030818902818100a070c82b34ae143cbe59b3a2afde7186e9d5bc274955d8112d87a00256a35369acc4d0edfe65e8f9dc93fbd9ee74b9e7ea12334da38c8c9900e6ced1c4ce93f86e06611e656521a1eab561892b7db0961b4f212d1fd5b5e49ae09cf8c603a068f9b723aa8a651032ff6f24e5de00387e4d062375799742a359b8f22c5362e5650203010001-----recipient:30819f300d06092a864886f70d010101050003818d0030818902818100be93b516b28c6e674abe7abdb11ce0fdf5bb728b75216b73f37a6432e4b402b3ad8139b8c0ba541a72c8add126b6e1a1308fb98b727beb63c6060356bb177bb7d54b54dbe87aee7353d0a6baa9397704de625d1836d3f42c7ee5683f6703259592cc24b09699376807f28fe0e00ff882974484d805f874260dfc2d1627473b910203010001-----value: 1.0-----time: 2019-01-14 16:18:01.867223-------------------sender:30819f300d06092a864886f70d010101050003818d0030818902818100cba097c0854876f41338c62598c658f545182cfa4acebce147aedf328181f9c4930f14498fd03c0af6b0cce25be99452a81df4fa30a53eddbb7bb7b203adf8764a0ccd9db6913a576d68d642d8fd47452590137869c25d9ff83d68ebe6d616056a8425b85b52e69715b8b85ae807b84638d8f00e321b65e4c33acaf6469e18e30203010001-----recipient: 30819f300d06092a864886f70d010101050003818d0030818902818100bb064c99c492144a9f463480273aba93ac1db1f0da3cb9f3c1f9d058cf499fd8e54d244da0a8dd6ddd329ec86794b04d773eb4841c9f935ea4d9ccc2821c7a1082d23b6c928d59863407f52fa05d8b47e5157f8fe56c2ce3279c657f9c6a80500073b0be8093f748aef667c03e64f04f84d311c4d866c12d79d3fc3034563dfb0203010001-----value: 5.0-----time: 2019-01-14 16:18:01.868241-------------------=====================================

关于“Python区块链块怎么添加”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python区块链块怎么添加”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网Python频道。

--结束END--

本文标题: Python区块链块怎么添加

本文链接: https://www.lsjlt.com/news/329993.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python区块链块怎么添加
    这篇文章主要介绍了Python区块链块怎么添加的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python区块链块怎么添加文章都会有所收获,下面我们一起来看看吧。每个矿工将从先前创建的交易池中获取交易.要跟踪已挖...
    99+
    2023-06-30
  • Python区块链块的添加教程
    目录添加第一个区块添加更多块转储整个区块链每个矿工将从先前创建的交易池中获取交易.要跟踪已挖掘的消息数量,我们必须创建一个全局变量 : last_transaction_index ...
    99+
    2022-11-11
  • Python怎么构建区块链
    这篇文章主要介绍了Python怎么构建区块链的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么构建区块链文章都会有所收获,下面我们一起来看看吧。区块链区块链是在计算机网络的节点之间共享数据的分类账(...
    99+
    2023-07-06
  • Python区块链范围结论及GenesisBlock的添加教程
    目录Genesis Block添加结论Genesis Block添加 将块添加到区块链包括将创建的块附加到我们的 TPCoins 列表. TPCoins.appe...
    99+
    2022-11-11
  • 怎么用go语言区块链实战实现简单的区块与区块链
    本篇内容介绍了“怎么用go语言区块链实战实现简单的区块与区块链”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!区块链实战字节字段说明4版本区块...
    99+
    2023-06-25
  • Python区块链创世块创建教程
    区块链包含彼此链接的区块列表.要存储整个列表,我们将创建一个名为TPCoins : 的列表变量; TPCoins = [] 我们还将编写一个名为 dump_blockcha...
    99+
    2022-11-11
  • Python区块链交易类怎么创建
    这篇文章主要介绍“Python区块链交易类怎么创建”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python区块链交易类怎么创建”文章能帮助大家解决问题。创建 Transaction&nb...
    99+
    2023-06-30
  • 什么是区块链?用php可以写区块链不?
    区块链是近年来非常热门的一个话题,它被广泛认为是未来数字化时代中不可少的一个技术。而PHP是最流行的 Web 开发语言之一,被用来构建包括社交网络、电子商务网站以及各种 Web 应用程序。那么问题来了:PHP 可以用来写区块链吗?这篇文章将...
    99+
    2023-05-14
    php
  • Python区块链Creating Miners教程
    目录消息摘要函数挖掘函数第1步第2步第3步测试挖掘函数为了实现挖掘,我们需要开发一个挖掘功能.挖掘功能需要在给定的消息字符串上生成摘要并提供工作证明.让我们在本章讨论这个. 消息摘要...
    99+
    2022-11-11
  • Python如何构建区块链
    区块链区块链是在计算机网络的节点之间共享数据的分类账(分布式数据库)。作为数据库,区块链以电子格式储存信息。区块链的创新之处在于它保证了数据记录的安全性和真实性,可信性(不需要没有可信任的第三方)。区块链和典型数据库的区别是数据结构。区块链...
    99+
    2023-05-14
    Python 区块链
  • 从0编写区块链之用python解释区块链最基本原理
    人工智能和区块链诞生至今已经有了十几年,当这些技术出现时,人们都说他们会改变世界,但至今为止,这两项技术对现实的影响依然有限。从技术上看人工智能的原理其实是从大量数据中寻找规律或模式...
    99+
    2022-11-13
  • Python区块链创建GenesisBlock教程
    我们假设TPCoins的发起人最初向已知客户 Dinesh 发出500个TPCoins.为此,他首先创建一个Dinesh实例 : Dinesh = Client(...
    99+
    2022-11-11
  • Python区块链创建BlockClass教程
    一个块由不同数量的事务组成.为简单起见,在我们的例子中,我们假设该块由固定数量的事务组成,在这种情况下为3.由于块需要存储这三个事务的列表,我们将声明一个名为 verifi...
    99+
    2022-11-11
  • Python区块链交易类教程
    目录创建 Transaction 类测试交易类创建 Transaction 类 在本章中,让我们创建一个 Transaction&n...
    99+
    2022-11-11
  • 使用python怎么实现一个区块链结构
    这期内容当中小编将会给大家带来有关使用python怎么实现一个区块链结构,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)...
    99+
    2023-06-14
  • Python中怎么构建一个极小的区块链
    今天就跟大家聊聊有关Python中怎么构建一个极小的区块链,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。区块链以比特币(Bitcoin)或其它加密货币按时间顺序公开地记录交易的数字账...
    99+
    2023-06-17
  • HTML怎么为模块添加注释
    今天小编给大家分享一下HTML怎么为模块添加注释的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2022-10-19
  • 怎么在iptables中添加connlimit模块
    怎么在iptables中添加connlimit模块?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。注:2.6.23以前的内核版本默认不支持 connlimit 推荐规则 ip...
    99+
    2023-06-13
  • 区块链指的是什么
    这篇文章主要为大家展示了“区块链指的是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“区块链指的是什么”这篇文章吧。区块链是一个环环相扣的分布式计算系统;从应用视角来看,区块链是一个分布式的共...
    99+
    2023-06-15
  • python区块链实现简版网络
    目录说明引言区块链网络kademlia发现协议简化协议消息TCP服务端TCP客户端P2P服务器连接节点RPC测试区块同步方式问题总结说明 本文根据https://github.com...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作