python 区块链量化交易,python开发区块链

  python 区块链量化交易,python开发区块链

  本文主要为大家介绍一个Python区块链事务的详细讲解教程。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010创建交易类测试交易类

  

目录

  在本章中,让我们创建一个交易类,以便客户可以向某人汇款。请注意,客户可以是汇款人,也可以是收款人。当你要收款时,其他一些发送者会创建一个交易,并在其中指定你的公共地址。我们将事务类的初始化定义如下:3360

  def__init__(自身,发件人,收件人,值):

  self.sender=发送者

  self.recipient=收件人

  自我价值=价值

  self . time=datetime . datetime . now()

  init方法有三个参数:发送方的公钥、接收方的公钥和要发送的金额。对于其他方法,它们存储在实例变量中。此外,我们创建一个变量来存储事务时间。

  接下来,我们编写一个名为to_dict的实用方法,它组合了上述四个实例字典对象中的变量。它只通过一个变量访问整个事务信息。

  正如你在前面的教程中所知道的,区块链的第一个区块是创世纪区块。创世纪块包含由区块链创造者发起的第一个事务。这个人的身份可能和比特币一样保密。因此,在创建第一个事务时,创建者可以将其身份发送为Genesis。因此,在创建字典时,我们检查发送方是否是Genesis,如果是,我们只需要将一些字符串值赋给identity变量;否则,我们将发送方的身份赋给identity变量。

  ifself.sender==Genesis:

  身份=创世纪

  else:

  identity=self.sender.identity

  我们使用下面的代码来构建字典行

  returncollectionsOrderedDict({

  发件人:身份,

  收件人 :本人收件人:

  值 :本身值,

  time:self.time})

  to_dict方法的完整代码如下:3360

  defto_dict(self):

  ifself.sender==Genesis:

  身份=创世纪

  else:

  identity=self.sender.identity

  returncollectionsOrderedDict({

  发件人:身份,

  收件人 :本人收件人:

  值 :本身值,

  time:self.time})

  最后,我们将使用发送者的私钥对这个字典对象进行签名。和以前一样,我们使用内置的PKI和SHA算法。对生成的签名进行解码,以获得用于打印的ASCII表示,并存储在我们的区块链中。这里显示了sign_transaction方法代码3360

  defsign_transaction(self):

  private _ key=self . sender . _ private _ key

  signer=PKCS1 _ v1 _ 5 . new(private _ key)

  h=SHA.new(str(self.to_dict())。编码( utf8 ))

  returnbinascii . hexlify(signer . sign(h))。解码(“ascii”)

  现在我们将测试这个事务类。

  

创建Transaction类

  为此,我们将创建两个名为Dinesh和Ramesh的用户。Dinesh会给Ramesh发5个TPCoins。为此,我们将首先创建名为dinesh和Ramesh的客户端。

  Dinesh=Client()

  Ramesh=Client()

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

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

  t=交易(

  迪内什,

  Ramesh .身份,

  5.0

  )

  请注意,第一个参数是发送方,第二个参数是接收方的公钥,第三个参数是要传输的金额。sign_transaction方法从singing事务的第一个参数中检索发送方的私钥。

  创建事务对象后,您将通过调用b sign_transaction方法对其进行签名。该方法以可打印的格式返回生成的签名。我们使用下面两行代码来生成和打印签名3360

  signature=t.sign_transaction()

  打印(签名)

  当您运行上面的代码时,您将看到类似于:的输出;

  7 c 7 e 3c 97629 b 218 e 9 EC 6 e 86 b 01 f 9 abd8e 361 FD 69 e 7d 373 c 38420790 b 655 b 9 Abe 3 b 575 e 343 c 7

  13703 ca 1 aee 781 ACD 7157 a 0624 db 3d 57d 7 C2 f 1172730 ee 3 f 45 af 943338157 f 899965856 f 6b 0

  0 e 34 db 240 b 62673 ad 5a 08 c8e 490 f 880 b 568 efbc 36035 CAE 2e 748 f1 d 802d 5 e8e 66298 be 826 f 5

  c 6363 DC 511222 FB 2416036 AC 04 EB 972

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

  以上是Python区块链交易教程的详细内容。更多关于Python区块链交易的信息,请关注盛行IT软件开发工作室的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: