广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python区块链如何创建多个交易
  • 826
分享到

python区块链如何创建多个交易

2023-06-30 15:06:46 826人浏览 薄情痞子

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

摘要

这篇“python区块链如何创建多个交易”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python区块链如何创建多个交易”文

这篇“python区块链如何创建多个交易”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python区块链如何创建多个交易”文章吧。

创建多个交易

各个客户进行的交易在系统中排队;矿工从这个队列中获取交易并将其添加到块中.然后他们将挖掘区块,获胜的矿工将有权将区块添加到区块链中,从而为自己赚取一些钱.

显示事务

display_transaction 函数接受事务类型的单个参数.接收到的事务中的字典对象被复制到名为 dict 的临时变量,并使用字典键,各种值将打印在控制台上.

def display_transaction(transaction):   #for transaction in transactions:   dict = transaction.to_dict()   print ("sender: " + dict['sender'])   print ('-----')   print ("recipient: " + dict['recipient'])   print ('-----')   print ("value: " + str(dict['value']))   print ('-----')   print ("time: " + str(dict['time']))   print ('-----')

接下来,我们定义一个事务队列来存储我们的事务对象.

交易队列

要创建队列,我们声明一个名为 transactions 列表变量>如下 

transactions = []

我们将只需将每个新创建的事务附加到此队列.请注意,为简洁起见,我们不会在本教程中实现队列管理逻辑.

创建多个客户端

现在,我们将开始创建事务.首先,我们将创建四个客户,他们将相互汇款以从其他人那里获得各种服务或商品.

Dinesh = Client()Ramesh = Client()Seema = Client()Vijay = Client()

此时,我们有四个客户叫Dinesh,Ramesh,Seema和Vijay.我们目前假设这些客户中的每一个都在他们的钱包中持有一些TPCoins用于交易.通过使用这些对象的标识属性来指定每个客户端的标识.

创建第一个事务

现在,我们首先启动交易如下 :

t1 = Transaction(   Dinesh,   Ramesh.identity,   15.0)

在此交易中,Dinesh向Ramesh发送了5个TPCoins.为了使交易成功,我们必须确保Dinesh在他的钱包里有足够的钱来支付这笔款项.请注意,我们需要一个genesis事务来启动系统中的TPCoin循环.您将在阅读时很快编写此genesis事务的事务代码.

我们将使用Dinesh的私钥对此事务进行签名,并将其添加到事务队列中,如下所示 :

t1.sign_transaction()transactions.append(t1)

在Dinesh做出的第一笔交易之后,我们将在上面创建的不同客户之间创建更多交易.

添加更多交易

我们现在将创建几个以上的交易,每个交易都会向另一方发放一些TPCoins.当有人花钱时,他没有必要在这个钱包中检查是否有足够的余额.无论如何,矿工将在发起交易时验证发件人所拥有的余额的每笔交易.

如果余额不足,矿工会将此交易标记为无效且不会添加这个块.

以下代码创建并添加了九个以上的事务.

t2 = Transaction(   Dinesh,   Seema.identity,   6.0)t2.sign_transaction()transactions.append(t2)t3 = Transaction(   Ramesh,   Vijay.identity,   2.0)t3.sign_transaction()transactions.append(t3)t4 = Transaction(   Seema,   Ramesh.identity,   4.0)t4.sign_transaction()transactions.append(t4)t5 = Transaction(   Vijay,   Seema.identity,   7.0)t5.sign_transaction()transactions.append(t5)t6 = Transaction(   Ramesh,   Seema.identity,   3.0)t6.sign_transaction()transactions.append(t6)t7 = Transaction(   Seema,   Dinesh.identity,   8.0)t7.sign_transaction()transactions.append(t7)t8 = Transaction(   Seema,   Ramesh.identity,   1.0)t8.sign_transaction()transactions.append(t8)t9 = Transaction(   Vijay,   Dinesh.identity,   5.0)t9.sign_transaction()transactions.append(t9)t10 = Transaction(   Vijay,   Ramesh.identity,   3.0)t10.sign_transaction()transactions.append(t10)

当你运行上面的代码,你将在队列中有十个交易来让矿工创建他们的块.

转储交易

作为区块链经理,您可能会定期查看事务队列的内容.为此,您可以使用我们之前开发的 display_transaction 函数.要转储队列中的所有事务,只需迭代事务列表,并为每个引用的事务调用 display_transaction 函数,如下所示 :

for transaction in transactions:   display_transaction (transaction)   print ('--------------')

事务由虚线分隔以区分.如果你运行上面的代码,你会看到如下所示的交易清单 :

sender: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-------------------

为简洁起见,我只先打印列表中的交易很少.在上面的代码中,我们打印了从第一个事务开始的所有事务,除了从未添加到此列表的genesis事务.由于事务定期添加到块中,您通常只想查看尚未开采的事务列表.在这种情况下,您需要创建一个适当的 for 循环来迭代尚未开采的事务.

以上就是关于“python区块链如何创建多个交易”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

--结束END--

本文标题: python区块链如何创建多个交易

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

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

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

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

下载Word文档
猜你喜欢
  • python区块链如何创建多个交易
    这篇“python区块链如何创建多个交易”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python区块链如何创建多个交易”文...
    99+
    2023-06-30
  • python区块链创建多个交易教程
    目录创建多个交易显示事务交易队列创建多个客户端创建第一个事务添加更多交易转储交易创建多个交易 各个客户进行的交易在系统中排队;矿工从这个队列中获取交易并将其添加到块中.然后他们将挖掘...
    99+
    2022-11-11
  • Python区块链交易类怎么创建
    这篇文章主要介绍“Python区块链交易类怎么创建”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python区块链交易类怎么创建”文章能帮助大家解决问题。创建 Transaction&nb...
    99+
    2023-06-30
  • Python如何构建区块链
    区块链区块链是在计算机网络的节点之间共享数据的分类账(分布式数据库)。作为数据库,区块链以电子格式储存信息。区块链的创新之处在于它保证了数据记录的安全性和真实性,可信性(不需要没有可信任的第三方)。区块链和典型数据库的区别是数据结构。区块链...
    99+
    2023-05-14
    Python 区块链
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作