DAPP系統模式開發邏輯(成熟技術)

a1271916008發表於2023-03-13

  •DApp透過網路節點去中心化操作。可以執行在使用者的個人裝置之上,比如:手機、個人電腦。永遠屬於使用者,也可以自由轉移給任何人。Solidity is a popular language for writing smart contracts.It can be used not only on ETH,but also on other blockchain projects competing with ETH,


  •DApp執行在對等網路。不依賴中心伺服器,不需要專門的通訊伺服器傳遞訊息,也不需要中心資料庫來記資料。資料儲存在使用者個人空間,可能是手機,也可能是個人云盤。


  •DApp資料加密後儲存在區塊鏈上。可以依託於區塊鏈進行產權交易、銷售,承載沒有中介的交易方式。


  •DApp參與者資訊被安全儲存。可以保護數字資產,保證產權不會洩露、被破壞。


  •DApp必須開源、自治。可以由使用者自由打包生成,簽名標記所屬權。搭建:I8O28578624它的釋出不受任何機構限制。各種創意與創新可以自由表達和實現。


  字串與位元組串的相互轉化


  字串與位元組串的轉化可以使用encode()和decode()兩個函式:


  字串轉化為位元組串:encode(),編碼。


  位元組串轉化為字串:decode(),解碼。


  encode和decode預設採用utf-8編碼。


  2.1字串轉化為位元組串


  >>>'字串abc'.encode()


  b'xe5xadx97xe7xacxa6xe4xb8xb2abc'


  2.2位元組串轉化為字串


  >>>b'xe5xadx97xe7xacxa6xe4xb8xb2abc'.decode()


  '字串abc'


  十六進位制字串


  在實際程式設計中,經常遇到十六進位制字串。


  >>>s='cc4a5ce1b3'


  >>>type(s)


  <class'str'>


  如上例,為了說明方便,本文把形如上例的字串s稱為十六進位制字串。當然,該字串的長度肯定是偶數。s本質上是一個字串,但是在實際的程式設計例項中,其表示原始資料,為了使用者友好,將原始的位元組數值轉化為使用者可以看到的十六進位制字串。


  3.1十六進位制字串轉化為位元組串


  在資料運算中,例如將該資料進行雜湊運算,肯定要對其原始二進位制數值進行雜湊運算。那麼就需要將該十六進位制字串轉化為原始的位元組串。


  在Python3中,可以使用bytes.fromhex()、binascii.a2b_hex()、binascii.unhexlify()函式將十六進位制字串轉化為其原始二進位制數值,即以x開頭表示的每個位元組。


  >>>bytes.fromhex('cc4a5ce1b3')


  b'xccJ\xe1xb3'


  >>>binascii.a2b_hex('cc4a5ce1b3')


  b'xccJ\xe1xb3'


  >>>binascii.unhexlify('cc4a5ce1b3')


  b'xccJ\xe1xb3'


  如上例,以上三個函式都可將十六進位制字串轉化為以b開頭的位元組串。但是,推薦使用bytes.fromhex()函式。這是因為該函式可以有效處理十六進位制字串中的空格,可以自動處理空格。


  >>>bytes.fromhex('cc4a 5c e1b3')


  b'xccJ\xe1xb3'


  如上例所示,如果十六進位制字串中含有空格,則bytes.fromhex()函式可以正確處理。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983064/viewspace-2939414/,如需轉載,請註明出處,否則將追究法律責任。

相關文章