91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python區塊鏈交易類怎么創建

發布時間:2022-05-23 13:38:06 來源:億速云 閱讀:133 作者:iii 欄目:開發技術

這篇文章主要介紹“Python區塊鏈交易類怎么創建”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Python區塊鏈交易類怎么創建”文章能幫助大家解決問題。

創建 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區塊鏈交易類怎么創建”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漳浦县| 黔南| 环江| 屯门区| 霞浦县| 洪江市| 镇江市| 长子县| 集安市| 桂林市| 福建省| 盈江县| 呼和浩特市| 和田市| 乐安县| 瓮安县| 娱乐| 潍坊市| 定边县| 瑞金市| 工布江达县| 文成县| 拉萨市| 铜梁县| 楚雄市| 洪江市| 新邵县| 遂昌县| 哈巴河县| 平利县| 扶沟县| 含山县| 唐海县| 宁武县| 泽普县| 巴南区| 宣汉县| 阳城县| 北票市| 和林格尔县| 浮梁县|