返回顶部
首页 > 资讯 > 后端开发 > Python >Python区块链客户端类开发教程
  • 339
分享到

Python区块链客户端类开发教程

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

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

摘要

目录开发客户端客户端类客户端测试客户端开发客户端 客户是持有TPCoins并从网络上的其他供应商处交换商品/服务的客户,包括他自己的.我们应该为此目的定义 Client&n

开发客户端

客户是持有TPCoins并从网络上的其他供应商处交换商品/服务的客户,包括他自己的.我们应该为此目的定义 Client 类.要为客户端创建全局唯一标识,我们使用PKI(公钥基础结构).在本章中,让我们详细讨论一下.

客户应该能够将钱包从另一个已知的人那里汇款.同样,客户应该能够接受来自第三方的钱.对于花钱,客户将创建一个指定发件人姓名和支付金额的交易.为了收款,客户将向第三方提供他的身份 : 本质上是钱的发送者.我们不存储客户持有的钱包余额.在交易过程中,我们将计算实际余额,以确保客户有足够的余额来支付.

开发客户端类,其余在项目中的代码中,我们需要导入许多python库.这些列在下面 :

# import libraries
import hashlib
import random
import string
import JSON
import binascii
import numpy as np
import pandas as pd
import pylab as pl
import logging
import datetime
import collections

除了上述标准库之外,我们还要签署交易,创建对象的哈希等.为此,您需要导入以下库 :

# following imports are required by PKI
import Crypto
import Crypto.Random
from Crypto.Hash import SHA
from Crypto.PublicKey import RSA
from 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):
      return
binascii.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):
      return
binascii.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://lsjlt.com/news/118269.html(转载时请注明来源链接)

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

猜你喜欢
  • Python区块链客户端类开发教程
    目录开发客户端客户端类客户端测试客户端开发客户端 客户是持有TPCoins并从网络上的其他供应商处交换商品/服务的客户,包括他自己的.我们应该为此目的定义 Client&n...
    99+
    2024-04-02
  • Python区块链客户端类如何开发
    这篇文章主要介绍“Python区块链客户端类如何开发”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python区块链客户端类如何开发”文章能帮助大家解决问题。开发客户端客户是持有TPCoins并从网...
    99+
    2023-06-30
  • Python区块链交易类教程
    目录创建 Transaction 类测试交易类创建 Transaction 类 在本章中,让我们创建一个 Transaction&n...
    99+
    2024-04-02
  • SpringBoot接口开发教程(httpclient客户端)
    目录SpringBoot接口开发服务端客户端post请求get请求SpringBoot之httpclient使用引入相关依赖编写相关工具类业务代码中使用SpringBoot接口开发 ...
    99+
    2024-04-02
  • Python asyncore socket客户端开发基本使用教程
    目录介绍1.定义类并且继承 asyncore.dispatcher2.实现类中的回调代码调用父类方法创建 socket 对象连接服务器3.创建对象并且执行 asyncore.loop...
    99+
    2022-12-26
    Python asyncore socket使用 Python asyncore socket Python asyncore 
  • Python区块链Creating Miners教程
    目录消息摘要函数挖掘函数第1步第2步第3步测试挖掘函数为了实现挖掘,我们需要开发一个挖掘功能.挖掘功能需要在给定的消息字符串上生成摘要并提供工作证明.让我们在本章讨论这个. 消息摘要...
    99+
    2024-04-02
  • Python区块链块的添加教程
    目录添加第一个区块添加更多块转储整个区块链每个矿工将从先前创建的交易池中获取交易.要跟踪已挖掘的消息数量,我们必须创建一个全局变量 : last_transaction_index ...
    99+
    2024-04-02
  • Python区块链创世块创建教程
    区块链包含彼此链接的区块列表.要存储整个列表,我们将创建一个名为TPCoins : 的列表变量; TPCoins = [] 我们还将编写一个名为 dump_blockcha...
    99+
    2024-04-02
  • Python区块链创建GenesisBlock教程
    我们假设TPCoins的发起人最初向已知客户 Dinesh 发出500个TPCoins.为此,他首先创建一个Dinesh实例 : Dinesh = Client(...
    99+
    2024-04-02
  • Python区块链创建BlockClass教程
    一个块由不同数量的事务组成.为简单起见,在我们的例子中,我们假设该块由固定数量的事务组成,在这种情况下为3.由于块需要存储这三个事务的列表,我们将声明一个名为 verifi...
    99+
    2024-04-02
  • python网络-TFTP客户端开发(2
    一、 TFTP协议介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议) 是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议 特点: 简单 占用资源小 适合传递小文件 适...
    99+
    2023-01-31
    客户端 网络 python
  • Python:区块链开发的秘密武器
    Python 的优势 可读性强:Python 以其简洁的语法和类似英语的结构而著称,这使得代码易于阅读和理解。这对于复杂且多领域的区块链应用程序开发至关重要。 强大的库:Python 生态系统拥有广泛的特定于领域的库,可简化区块链应用程...
    99+
    2024-03-13
    Python与区块链
  • Python区块链开发指南:一文读懂区块链原理与实现
    区块链基本原理 区块链是一种分布式数据库,它将数据存储在多个节点上,而不是存储在一个中央服务器上。这使得区块链具有很强的安全性,因为攻击者无法通过攻击一个节点来窃取数据。 区块链中的数据以区块的形式存储。每个区块包含一个哈希值、前一个区...
    99+
    2024-02-23
    区块链 Python 分布式账本 智能合约 数字货币
  • Python区块链开发技巧:让你的区块链项目脱颖而出
    Python是一种简单易学、功能强大的编程语言,非常适合区块链开发。Python拥有丰富的库和工具,可以帮助你快速构建区块链项目。在本文中,我们将分享一些Python区块链开发技巧,帮助你创建出色的区块链项目。 一、使用正确的工具 Py...
    99+
    2024-02-23
    Python 区块链 开发技巧 智能合约 dApp
  • python区块链创建多个交易教程
    目录创建多个交易显示事务交易队列创建多个客户端创建第一个事务添加更多交易转储交易创建多个交易 各个客户进行的交易在系统中排队;矿工从这个队列中获取交易并将其添加到块中.然后他们将挖掘...
    99+
    2024-04-02
  • 使用.NETMAUI开发ChatGPT客户端的流程
    目录开发实战托盘图标(右键点击有 menu)WebView【重点】js 和 csharp 互相调用chatgpt 的开放 api 调用最近 chatgpt 很火,...
    99+
    2022-12-21
    .NET MAUI 开发 ChatGPT .NET MAUI 开发
  • Python如何简化区块链应用的开发?
    1. 简化的合约开发 Python提供了合约开发框架,例如Web3.py和Truffle,使开发人员能够轻松创建和部署智能合约。这些框架通过抽象底层复杂性,使用户可以专注于合约逻辑。Python的简洁语法和可读性也使编写和维护智能合约变得...
    99+
    2024-03-13
    Python与区块链
  • Python培训教程:基于Python的ModbusTCP客户端实现
    Python培训教程:基于Python的ModbusTCP客户端实现Modbus协议是由Modicon公司(现在的施耐德电气Schneider Electric)推出,主要建立在物理串口、以太网TCP/IP层之上,目前已经成为工业领域通信协...
    99+
    2023-06-02
  • Python网络编程之HTTP客户端模块urllib与urllib3
    一、urllib 概述: urllib是Python中请求url连接的官方标准库,就是你安装了python,这个库就已经可以直接使用了,基本上涵盖了基础的网络请求功能。在Python...
    99+
    2024-04-02
  • Python区块链项目实战教程:从零开始到项目落地
    一、准备工作 首先,我们需要安装必要的开发工具和库。Python是本文推荐的编程语言,因为它具有简洁、易读的语法,并且拥有丰富的库和第三方包。 安装Python pip install python 安装必要的库 pip ins...
    99+
    2024-02-23
    Python 区块链 项目实战 区块链编程 区块链开发
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作