1. 程式人生 > 實用技巧 >Python SDK 與Fisco Bcos互動 -2

Python SDK 與Fisco Bcos互動 -2

(使用 python-sdk ,把區塊鏈作為資料庫使用,查詢歷史資料)

需求:查詢通過智慧合約儲存的歷史資訊。如

  • 開始儲存的是 "xsmile",通過 Fisco 提供的 call 方法,當前可以查詢到 "xsmile"
  • 再次呼叫合約儲存的是 "root", 通過 call 方法查詢得到的是 root

那怎麼再查詢到 "xsmile" 呢?call 方法是不能解決問題的。

官方文件未指明方法,可參考原始碼樣例:python-sdk/tests/testclient.py

 1 # 獲取對應的交易資料,解析出呼叫方法名和引數
 2 txhash = receipt['transactionHash
'] 3 txresponse = client.getTransactionByHash(txhash) 4 inputresult = abi_parser.parse_transaction_input(txresponse['input']) 5 print("transaction input parse:", txhash) 6 print(inputresult) 7 8 # 解析該交易在receipt裡輸出的output,即交易呼叫的方法的return值 9 outputresult = abi_parser.parse_receipt_output(inputresult['
name'], receipt['output']) 10 print("receipt output :", outputresult)

Fisco 是通過智慧合約 setAttr() 方法寫入資料改變區塊鏈的狀態。根據交易雜湊 transactionHash 獲取交易資訊,根據交易資訊進而解析輸入的引數和返回的引數。和以太坊有所區別,不需要有 getAttr() , 或者說 getttr() 方法是無法獲取使用的。