python 开发客户端,python适合开发区块链吗
本文主要为大家介绍Python区块链客户端类开发教程。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010开发客户端客户端类客户端测试客户端
目录
客户是指持有TPCoins并在网络上与其他供应商(包括自己的供应商)交换商品/服务的客户。为此,我们应该定义客户端类。为了给客户端创建一个全局唯一的ID,我们使用PKI(公钥基础设施)。在这一章里,我们来详细讨论一下。
客户应该能够从另一个已知的人寄钱。同样,顾客应该能够接受来自第三方的钱。对于消费,客户将创建一个指定发送者姓名和支付金额的交易。客户为了收款,会向第三方提供他的身份3360,本质上是汇款人。我们不存储客户持有的钱包余额。在交易过程中,我们会计算实际余额,以确保客户有足够的余额支付。
开发客户端类,剩下的就是项目的代码了。我们需要导入许多Python库。这些在下面的:中列出
#导入库
importhashlib
随机输入
导入字符串
importjson
importbinascii
importnumpyasnp
importpandasaspd
importpylabaspl
导入日志记录
导入日期时间
导入集合
除了上面的标准库,我们还必须签署事务,创建对象的散列等等。为此,您需要导入以下库3360
# followingtimportsarererequired bypki
导入加密
导入加密。随意
来自Crypto。哈希姆波特沙
来自Crypto。PublicKeyimportRSA
来自Crypto。SignatureimportPKCS1_v1_5
开发客户端
客户端使用内置的PythonRSA算法来生成私钥和公钥。有兴趣的读者可以参考本教程实现RSA。在对象初始化期间,我们创建私有和公共密钥,并将它们的值存储在实例变量中。
自我。_private_key=RSA.generate(1024,随机)
自我。_public_key=self_private_key .公钥()
请注意,永远不要丢失私钥。为了保留记录,可以将生成的私钥复制到安全的外部存储器,或者您可以简单地在一张纸上写下它的ASCII表示。
生成的公钥将用作客户端的身份。为此,我们定义了一个名为identity的属性,它返回公钥的十六进制表示。
@属性
defidentity(自我):
返回
binascii.hexlify(self。_ public _ key . export key(format= DER ))
.解码(“ascii”)
ID对每个客户都是唯一的,并且可以公开提供。任何人都可以使用此ID向您发送虚拟货币,虚拟货币将添加到您的钱包中。
客户端类
classClient:
def__init__(self):
随机=加密。Random.new()。阅读
自我。_private_key=RSA.generate(1024,随机)
自我。_public_key=self_private_key .公钥()
自我。_signer=PKCS1_v1_5.new(self。_私钥)
@属性
defidentity(自我):
返回
binascii.hexlify(self。_ public _ key . export key(format= DER )。解码(“ascii”)
客户端
现在,我们将编写代码来展示如何使用客户端类3360。
Dinesh=Client()
打印(Dinesh.identity)
上面的代码创建了客户端的一个实例,并将其分配给var iableDinesh。我们通过调用identity方法打印Dinesh的公钥。
30819 f 300d 06092 a 864886 f 70d 010101050003818d 0030818902818100 b 547 faf ceeb 131 e 07
0166 a6b 23 FEC 473 CCE 22 C3 f 55 c 35 ce 535 b 31d 4c 74754 fecd 820 aa 94 c 1166643 a 49 ea 5 f 49 f 72
3181 ff 943 EB 3 FD C5 b 2c B2 db 12d 21 c 06 c 880 CCF 493 e 14 DD 3 e 93 F3 a9 e 175325790004954 c 34d 3
c 7 BC 2 CCC 9 f 0 EB 5332014937 f 9 e 49 BC a9 b 7856d 351 a 553d 9812367 DC 8 F2 AC 734992 a4 e 6 a 6 ff 6
6f347bd411d07f0203010001
以上是Python区块链客户端类开发教程的详细内容。有关Python区块链客户端类的更多信息,请关注热门IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。