BSN商用至今,開發者熱點問題20問

買賣虛擬貨幣

2020年4月25日區塊鏈服務網路BSN正式進入商用階段。6月12日區塊鏈服務網路第二次開發者大賽進入評審階段。隨著BSN業務的深入開展,已被更多的開發者所關注。使用者在使用BSN的過程中,遇到了各式各樣的使用問題,我們藉此最佳化迭代BSN服務功能的同時,也將相關的共性問題陸續整理出來與廣大開發者分享,讓開發者們能夠更使用BSN進行區塊鏈應用開發。

1. 問:如果上鍊的資料錯誤,怎麼處理?

答:資料一旦上鍊,所有的資料都不能被篡改和被物理刪除的;但是可以設計一種合約的邏輯刪除的機制,例如在特定的資料合約中新增一個狀態欄位來標記資料是否被刪除。

2. 問:在智慧合約內可不可以呼叫其他外部介面?

答:目前BSN同一個應用中的多個智慧合約可以相互呼叫,但是不能訪問外部介面。

3. 問:如何確保資料放到BSN上是安全的?

答:首先區塊鏈中有共識機制和加密演算法等關鍵技術來保證資料安全,其次BSN設計了應用接入金鑰和使用者交易金鑰兩套金鑰,來保證接入的安全。最後業務方也可以在鏈下業務系統對原始資料進行加密處理後再上傳到BSN中。

4. 問:透過BSN閘道器API的使用者註冊介面註冊的子使用者和父使用者許可權是否是一致的?子使用者在呼叫鏈碼時,請求頭中的userCode是使用子使用者的userName嗎?

答:呼叫閘道器API使用者註冊介面註冊的子使用者許可權和父使用者是一樣的,子使用者繼承了父使用者的許可權,但是不能把子使用者當做父使用者使用。交易的請求頭中還是需要填寫父使用者即服務參與者的userCode,在交易的報文中使用子使用者的userName提交交易,此時提交的交易將使用子使用者的身份進行資料上鍊。

5. 問:BSN的閘道器SDK例項什麼時候會整合FISCO BCOS的閘道器API介面?

答:BSN適配的FISCO BCOS底層框架正式商用後將提供Java、GoLang、Python、C#的閘道器SDK例項供開發者使用。

6. 問:BSN中基於FISCO BCOS開發的應用支援合約事件功能嗎?

答:BSN適配的FISCO BCOS底層框架正式商用後將提供合約事件功能供開發者使用。

7. 問:在新的交易介面中為什麼增加了userId的引數,請問該引數是如何使用的?

答:為了方便第三方業務系統為各自的業務使用者提供單獨的鏈上身份,我們在新的介面中增加子使用者的概念。

在使用時需要先呼叫“子使用者註冊介面”註冊子使用者,對於金鑰託管模式的應用,可以在交易介面中直接傳遞該引數,將使用子使用者的身份進行交易;如果不傳,將使用使用者的預設身份進行交易。

而對於金鑰上傳模式的應用,還需要呼叫證書登記介面獲取一個被城市節點CA認證過的證書,在本地使用該證書組裝交易報文發起交易。交易報文可以使用BSN提供的各語言SDK生成。

8. 問:BSN有什麼方法可以獲取到交易發起者的資訊?

答:1. 基於Fabric的服務,可以透過節點閘道器提供的getTransaction方法,根據交易ID獲取交易資訊,包括塊Hash、塊號、交易狀態、上鍊使用者名稱、時間戳秒、時間戳納秒;

2. 基於FISCO BCOS的服務,暫不支援。

9. 問:參與者參與的服務停用後,參與者上鍊的資料是否還存在?應如何繼續使用?

答:週期扣款失敗並超過72小時未成功支付的服務會被系統自動停用,此時服務的相關資料還是存在的。使用者可點選啟用按鈕進行付費,付費成功後服務可繼續正常使用,但要注意的是在服務的停用期間,由於其仍然佔用服務資源,系統仍會按週期生成資源使用賬單。超過兩週未付費成功的服務會被系統自動解除安裝,服務相關資料都將被清除。

10.問:在BSN系統中每個服務的所有記賬節點是都存一份完整的資料?還是隻是存的hash值?

答:1. 同一服務有多個記賬節點時,向其中一個記賬節點上傳資料,其他記賬節點自動同步資料。

2. 每個記賬節點同步的都是完整的資料,鏈下業務系統不用將所有的業務資料都進行上鍊,只需將需要上鍊的資料進行上鍊即可。

11.問:在BSN系統中底層框架FISCO BCOS智慧合約使用什麼方式進行開發?

答:1.在remix中進行開發,參考地址:

http://remix.hubwiz.com/

2.在WeBase-Front的頁面中進行開發,參考地址分別

FISCO BCOS的開發說明:

https://fiscobcosdocumentation.readthedocs.io/zh_CN/latest/docs/manual/smart_contract.html

webase的前置安裝說明:

https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Front/install.html

12.問:使用BSN釋出FISCO BCOS服務,為什麼沒有在相應城市節點註冊使用者,呼叫智慧合約中的方法有些返回成功,有些返回失敗?

答:FISCO BCOS智慧合約中查詢類方法不用檢驗使用者簽名,非查詢類方法要校驗使用者簽名,如呼叫非查詢類方法,必須先呼叫使用者註冊介面user/register進行使用者註冊,再呼叫相應方法。

13.問:對於BSN系統的底層框架Fabric的一個channel是不是相當於一條鏈了?其中的區塊高度是怎麼對應的?

答:BSN系統的底層框架Fabric的一個channel相當於一條鏈,一條鏈就是一個應用,區塊高度就是channel內所對應的賬本區塊數量(塊號是從0開始的)。

14.問:根據塊號獲取交易詳情時交易數量顯示為0的原因是什麼?

答:在getblockinfo介面中返回的塊資訊會過濾掉非交易型別的transaction,例如創世區塊配置,修改通道配置,更新鏈碼等操作,如果一個區塊只包含這些操作,在查詢的資訊中transaction將為0。

15.問:“流量使用情況”這裡具體的顯示規則是怎麼樣的?為什麼有“泉州排序節點”的流量費用?

答:Fabric服務的流量組成:記賬節點流量(閘道器向排序節點提交資料產生的流量、閘道器響應鏈下業務系統產生的流量)+排序節點流量(排序節點向不同城市節點的記賬節點廣播區塊產生的流量,如應用的記賬節點在同一個城市節點內資料同步將不會產生排序節點流量);

FISCO BCOS服務的流量組成:記賬節點流量(閘道器響應鏈下業務系統產生的流量、不同城市節點的記賬節點間同步資料產生的流量,如應用的記賬節點在同一個城市節點內資料同步將不會產生記賬節點流量)。

16.問:為什麼執行資訊裡每個城市節點的已用容量顯示的不一致?

答:因為各個節點推送的時間不一致,並且資料需要在各個系統之間傳輸所以介面上顯示的容量資訊不是實時的。即使所有節點全部同步完成後已用容量也會有差異。例如有可能有遇到交易共識失敗或其他原因導致交易失敗,節點會將失敗的交易儲存到本地賬本中,但不會同步給其他節點。

17.問:在部署合約的時候只需要一方部署單獨就可以執行,還是需要多方確認?

答:呼叫部署合約時,就相當於發了一個部署的交易,這個交易是透過共識機制進行確認後才落塊的。傳送者是一個人,但是確認是多方共識的。在BSN中Fabric採用的是Kafaka共識,FISCO BCOS採用的是PBFT共識。

18.問:目前Fabric已經更新到2.1版本,BSN還是1.4版本,BSN有計劃將Fabric更新到2.1嗎?

答:目前沒有升級的計劃,我們現在主要的任務還是適配更多的底層框架,如Fabric國密、CITA、百度超級鏈等。

19.問:BSN中如何檢視FISCO BCOS應用的已部署的合約地址?

答:使用者成功參與應用後,可以在【我參與的服務—我參與的】檢視頁面中的應用服務接入配置引數中檢視已部署的合約地址。

20.問:為什麼使用者提交了交易,在執行資訊頁面檢視交易數量和區塊數量沒有變化?

答:執行資訊頁面的資料不是實時更新的,每半小時更新一次。使用者可呼叫閘道器API提供的介面獲取實時資料。詳見區塊鏈服務網路開發者手冊。

更多疑問請檢視“BSN知識庫”-“BSN官網”-“常見問題”獲取幫助。為了廣大開發者學習BSN使用時少走彎路,初次接觸BSN的新使用者請點選《BSN開發者手冊和幫助手冊》檢視了解。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;