广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python区块链交易类教程
  • 635
分享到

Python区块链交易类教程

2024-04-02 19:04:59 635人浏览 薄情痞子

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

摘要

目录创建 Transaction 类测试交易类创建 Transaction 类 在本章中,让我们创建一个 Transaction&n

创建 Transaction 类

在本章中,让我们创建一个 Transaction 类,以便客户能够向某人汇款.请注意,客户可以是货币的发件人或收件人.当您想要收款时,其他一些发件人将创建一个交易并在其中指定您的公开地址.我们将事务类的初始化定义如下 :

def __init__(self, sender, recipient, value):
   self.sender = sender
   self.recipient = recipient
   self.value = value
   self.time = datetime.datetime.now()

init 方法有三个参数 : 发件人的公开键,收件人的公开键以及要发送的金额.它们存储在实例变量中以供其他方法使用.另外,我们创建了一个用于存储事务时间的变量.

接下来,我们编写一个名为 to_dict 的实用程序方法,它结合了上述四个实例字典对象中的变量.这只是通过一个变量来访问整个交易信息.

正如您在前面的教程中所知,区块链中的第一个区块是 Genesis 块. Genesis块包含区块链创建者发起的第一个事务.这个人的身份可能像比特币一样保密.因此,当创建第一个交易时,创建者可以将其身份发送为 Genesis .因此,在创建字典时,我们检查发件人是否 Genesis ,如果是,我们只需将一些字符串值赋给身份变量;否则,我们将发件人的身份分配给身份变量.

if self.sender == "Genesis":
   identity = "Genesis"
else:
   identity = self.sender.identity

我们使用以下构建字典代码行

return collections.OrderedDict({
   'sender': identity,
   'recipient': self.recipient,
   'value': self.value,
   'time' : self.time})

整个代码 to_dict 方法如下所示 :

def to_dict(self):
   if self.sender == "Genesis":
      identity = "Genesis"
   else:
      identity = self.sender.identity
   return collections.OrderedDict({
      'sender': identity,
      'recipient': self.recipient,
      'value': self.value,
      'time' : self.time})

最后,我们将使用发件人的私钥对此字典对象进行签名.和以前一样,我们使用带有SHA算法的内置PKI.生成的签名被解码以获得用于打印的ASCII表示并将其存储在我们的区块链中. sign_transaction 方法代码显示在这里 :

def sign_transaction(self):
   private_key = self.sender._private_key
   signer = PKCS1_v1_5.new(private_key)
   h = SHA.new(str(self.to_dict()).encode('utf8'))
   return binascii.hexlify(signer.sign(h)).decode('ascii')

我们现在将测试这个 Transaction 类.

测试交易类

为此,我们将创建两个用户,名为 Dinesh 和 Ramesh . Dinesh将向Ramesh发送5个TPCoins.为此,我们首先创建名为Dinesh和Ramesh的客户端.

Dinesh = Client()
Ramesh = Client()

请记住,当您实例化客户端类时,将创建客户端唯一的公共和私钥.当Dinesh向Ramesh发送付款时,他将需要使用客户端的身份属性获得的Ramesh的公钥.

因此,我们将使用以下代码创建事务实例 :

t = Transaction(
   Dinesh,
   Ramesh.identity,
   5.0
)

请注意,第一个参数是发件人,第二个参数是收件人的公钥,第三个参数是要传输的金额. sign_transaction 方法从第一个参数中检索发件人的私钥,用于演唱交易.

创建事务对象后,您将通过调用它来对其进行签名b> sign_transaction 方法.此方法以可打印格式返回生成的签名.我们使用以下两行代码生成并打印签名 :

signature = t.sign_transaction()
print (signature)

当你运行上面的代码时,你会看到类似于这个 : 的输出;

7c7e3c97629b218e9ec6e86b01f9abd8e361fd69e7d373c38420790b655b9abe3b575e343c7

13703ca1aee781acd7157a0624db3D57d7c2f1172730ee3f45af943338157f899965856f6b0

0e34db240b62673ad5a08c8e490f880b568efbc36035cae2e748f1d802d5e8e66298be826f5

c6363dc511222fb2416036ac04eb972

现在作为我们创建客户端的基础设施和如果交易准备就绪,我们现在将有多个客户在现实生活中进行多笔交易.

以上就是python区块链交易类教程的详细内容,更多关于Python区块链交易类的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python区块链交易类教程

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

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

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

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

下载Word文档
猜你喜欢
  • Python区块链交易类教程
    目录创建 Transaction 类测试交易类创建 Transaction 类 在本章中,让我们创建一个 Transaction&n...
    99+
    2022-11-11
  • python区块链创建多个交易教程
    目录创建多个交易显示事务交易队列创建多个客户端创建第一个事务添加更多交易转储交易创建多个交易 各个客户进行的交易在系统中排队;矿工从这个队列中获取交易并将其添加到块中.然后他们将挖掘...
    99+
    2022-11-11
  • Python区块链交易类怎么创建
    这篇文章主要介绍“Python区块链交易类怎么创建”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python区块链交易类怎么创建”文章能帮助大家解决问题。创建 Transaction&nb...
    99+
    2023-06-30
  • python区块链简易版交易实现示例
    目录说明引言比特币交易交易输出发送币余额查看总结说明 本文根据https://github.com/liuchengxu/blockchain-tutorial的内容,用python...
    99+
    2022-11-11
  • python区块链如何创建多个交易
    这篇“python区块链如何创建多个交易”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python区块链如何创建多个交易”文...
    99+
    2023-06-30
  • Python区块链客户端类开发教程
    目录开发客户端客户端类客户端测试客户端开发客户端 客户是持有TPCoins并从网络上的其他供应商处交换商品/服务的客户,包括他自己的.我们应该为此目的定义 Client&n...
    99+
    2022-11-11
  • 交易所开发,区块链交易平台搭建app
    交易所开发,区块链交易平台搭建app什么是交易所交易所,顾名思义就是专门用于某类商品的交易的中心,数字货币交易所也是这样。数字货币交易所又分为中心化交易所和去中心化交易所。中心化交易所通常不会公开交易细节的源码,公开智能合约维持了交易过程的...
    99+
    2023-06-04
  • Python区块链Creating Miners教程
    目录消息摘要函数挖掘函数第1步第2步第3步测试挖掘函数为了实现挖掘,我们需要开发一个挖掘功能.挖掘功能需要在给定的消息字符串上生成摘要并提供工作证明.让我们在本章讨论这个. 消息摘要...
    99+
    2022-11-11
  • python区块链简易版交易完善挖矿奖励示例
    目录说明引言奖励UTXO 集Merkle 树P2PKH总结说明 本文根据https://github.com/liuchengxu/blockchain-tutorial的内容,用p...
    99+
    2022-11-11
  • Python区块链块的添加教程
    目录添加第一个区块添加更多块转储整个区块链每个矿工将从先前创建的交易池中获取交易.要跟踪已挖掘的消息数量,我们必须创建一个全局变量 : last_transaction_index ...
    99+
    2022-11-11
  • Python区块链创世块创建教程
    区块链包含彼此链接的区块列表.要存储整个列表,我们将创建一个名为TPCoins : 的列表变量; TPCoins = [] 我们还将编写一个名为 dump_blockcha...
    99+
    2022-11-11
  • Python区块链创建GenesisBlock教程
    我们假设TPCoins的发起人最初向已知客户 Dinesh 发出500个TPCoins.为此,他首先创建一个Dinesh实例 : Dinesh = Client(...
    99+
    2022-11-11
  • Python区块链创建BlockClass教程
    一个块由不同数量的事务组成.为简单起见,在我们的例子中,我们假设该块由固定数量的事务组成,在这种情况下为3.由于块需要存储这三个事务的列表,我们将声明一个名为 verifi...
    99+
    2022-11-11
  • python区块链简易版交易完善挖矿奖励怎么实现
    这篇文章主要讲解了“python区块链简易版交易完善挖矿奖励怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python区块链简易版交易完善挖矿奖励怎么实现”吧!奖励挖矿奖励,实际上就...
    99+
    2023-06-30
  • 广东区块链交易所系统开f发
    从目前的中心化交易所来看,因为权力过于中心化,中心化交易所无论是人为管理还是架构问题,都存在着诸多缺陷。比如用户资产安全隐患,盗coin、用户丢coin、交易所监守自盗等。比如作恶成本低,交易所造假、伪造、联合坐庄等。这些问题都严重损害了用...
    99+
    2023-06-02
  • 区块链数字货币交易所开发技术方案,交易所开发
    区块链数字货币交易所开发技术方案,交易所开发数字货币交易所是币圈进行数字资产区块链交易的重要平台,用户入门门槛低,能够清晰的看到盈利模式,近几年因为数字资产领域发展迅速,数字资产交易所也大量出现,这也吸引着越来越多的资本和人才进入该领域,竞...
    99+
    2023-06-06
  • 区块链交易所开发方案,场外币币撮合交易平台搭建
    区块链交易所开发方案,场外币币撮合交易平台搭建区块链交易所开发需要注意些什么呢,第一,我们要选择一个可靠的公司    源中瑞区块链交易所系统开发 其实开发一个区块链交易所要考虑的方面是很多的,我们要选择模式,选...
    99+
    2023-06-04
  • 2020年你关心的区块链交易所市场发展趋势
    不管怎样,2020年都是区块链和加密数字货币领域至关重要的一年。这一年,诞生了新联盟,开发了新的加密数字货币交易产品,比特币和以太坊经历了熊市,大量区块链协议不断成熟增长,以致于美国国会和世界各国央行密切关注区块链和数字资产的优点。中国投入...
    99+
    2023-06-02
  • Python区块链范围结论及GenesisBlock的添加教程
    目录Genesis Block添加结论Genesis Block添加 将块添加到区块链包括将创建的块附加到我们的 TPCoins 列表. TPCoins.appe...
    99+
    2022-11-11
  • 区块链交易平台服务器租用要注意哪些事项
    区块链交易平台服务器租用要注意的事项有:1、注意服务器的配置选择,选择较高的服务器的配置;2、注意服务器的安全性和稳定性,以免造成不必要的损失;3、注意服务器的速度是否较快,以免影响用户的体验。具体内容如下:服务器的配置对数据的处理方面,区...
    99+
    2022-10-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作