fabric中的交易處理器

交易處理器允許智能合約開發人員在應用程序和智能合約交互期間的關鍵點上定義通用處理。交易處理器是可選的,但是如果定義了,它們將在調用智能合約中的每個交易之前或之後接收控制權。還有一個特定的處理器,當請求調用未在智能合約中定義的交易時,該處理程序接收控制。

類型:有三種類型的交易處理器,它們涵蓋應用程序和智能合約之間交互的不同方面:

  1. 前置處理器:在每個智能合約交易執行之前調用。該處理器通常用來改變交易使用的交易上下文。處理器可以訪問所有 Fabric API;如,可以使用 getState() 和 putState()。
  2. 後置處理器:在每個智能合約交易執行之後調用。處理器通常會對所有的交易執行通用的後置處理,同樣可以訪問所有的Fabric API。
  3. 未知處理器:試圖執行未在智能合約中定義的交易時被調用。通常,處理器將記錄管理員後續處理的失敗。處理器可以訪問所有的 Fabric API。

處理器處理

  1. 前置處理器:如果處理器成功完成,使用更新後的上下文調用交易。如果處理器拋出異常,不會調用交易,智能合約失敗並顯示異常錯誤消息。
  2. 後置處理器:如果處理器成功完成,則智能合約將按調用的交易確定完成。如果處理程序拋出異常,則交易將失敗並顯示異常錯誤消息。
  3. 未知處理器:處理器應該通過拋出包含所需錯誤消息的異常來完成。如果未指定未知處理器,或者未引發異常,則存在合理的默認處理;智能合約將以未知交易錯誤消息失敗。

 

只能爲智能合約的每種類型至多定義一個處理器。如果智能合約需要在之前,之後或未知處理期間調用多個函數,它應該在相應的函數內協調它。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章