Python 官方文档:入门教程 => 点击学习
这篇文章主要介绍“python区块链客户端类如何开发”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python区块链客户端类如何开发”文章能帮助大家解决问题。开发客户端客户是持有TPCoins并从网
这篇文章主要介绍“python区块链客户端类如何开发”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python区块链客户端类如何开发”文章能帮助大家解决问题。
客户是持有TPCoins并从网络上的其他供应商处交换商品/服务的客户,包括他自己的.我们应该为此目的定义 Client 类.要为客户端创建全局唯一标识,我们使用PKI(公钥基础结构).在本章中,让我们详细讨论一下.
客户应该能够将钱包从另一个已知的人那里汇款.同样,客户应该能够接受来自第三方的钱.对于花钱,客户将创建一个指定发件人姓名和支付金额的交易.为了收款,客户将向第三方提供他的身份 : 本质上是钱的发送者.我们不存储客户持有的钱包余额.在交易过程中,我们将计算实际余额,以确保客户有足够的余额来支付.
开发客户端类,其余在项目中的代码中,我们需要导入许多Python库.这些列在下面 :
# import librariesimport hashlibimport randomimport stringimport JSONimport binasciiimport numpy as npimport pandas as pdimport pylab as plimport loggingimport datetimeimport collections
除了上述标准库之外,我们还要签署交易,创建对象的哈希等.为此,您需要导入以下库 :
# following imports are required by PKIimport Cryptoimport Crypto.Randomfrom Crypto.Hash import SHAfrom Crypto.PublicKey import RSAfrom Crypto.Signature import PKCS1_v1_5
客户端类使用内置的Python RSA 算法生成私有和公开键.感兴趣的读者可以参考本教程来实现RSA.在对象初始化期间,我们创建私钥和公钥并将它们的值存储在实例变量中.
self._private_key = RSA.generate(1024, random)self._public_key = self._private_key.publickey()
请注意,永远不要丢失私钥.为了保留记录,生成的私钥可以复制到安全的外部存储器上,或者您可以简单地在一张纸上写下它的ASCII表示.
生成的公共密钥将用作客户端的身份.为此,我们定义了一个名为 identity 的属性,它返回公钥的HEX表示.
@property def identity(self): returnbinascii.hexlify(self._public_key.exporTKEy(fORMat='DER')).decode('ascii')
标识对每个客户都是唯一的,可以公开提供.任何人都可以使用此身份向您发送虚拟货币,它将被添加到您的钱包中.
class Client: def __init__(self): random = Crypto.Random.new().read self._private_key = RSA.generate(1024, random) self._public_key = self._private_key.publickey() self._signer = PKCS1_v1_5.new(self._private_key) @property def identity(self): returnbinascii.hexlify(self._public_key.exportKey(format='DER')).decode('ascii')
现在,我们将编写代码来说明如何使用客户端类 :
Dinesh = Client()print (Dinesh.identity)
以上代码创建客户端的实例并将其分配给var iable Dinesh .我们通过调用身份方法打印 Dinesh 的公钥.
30819f300d06092a864886f70d010101050003818d0030818902818100b547fafceeb131e07
0166a6b23fec473cce22c3f55c35ce535b31d4c74754fecd820aa94c1166643a49ea5f49f72
3181ff943eb3fdc5b2cb2db12d21c06c880ccf493e14dd3e93f3a9e175325790004954c34d3
c7bc2ccc9f0eb5332014937f9e49bca9b7856d351a553D9812367dc8f2ac734992a4e6a6ff6
6f347bd411d07f0203010001
关于“Python区块链客户端类如何开发”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。
--结束END--
本文标题: Python区块链客户端类如何开发
本文链接: https://www.lsjlt.com/news/329963.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0