區塊鏈服務網絡BSN發布至今已經一年多了。隨著BSN業務的深入開展,更多的開發者關注BSN ,基於BSN環境部署了自己的區塊鏈應用。 BSN官方客服在此期間收到來自廣大開發者的各類諮詢,現將存在共性的常見問題與大家分享。 BSN團隊將根據大家的反饋,不斷進行產品服務優化和新功能迭代,並持續融入更多來自全球領先的區塊鏈技術,為廣大開發者提供更低成本、更便捷、全互通的一站式區塊鏈服務。

問題1 :在BSN測試網使用網關SDK時, puk設置的是正確的網關公鑰為什麼網關SDK還會報'驗簽失敗'

BSN測試網使用網關SDK時,網關SDK報“驗簽失敗' ,用戶檢查puk設置的為正確的網關公鑰後, Java-SDK還需檢查initConfig中是否將testServerIdn配置成true Go-SDK需檢查pukConfig.goSetTest ()是否配置test=true Python/CSharp-SDK無該配置只需檢查puk/AppPublicCert即可。

問題2 :在BSN測試網的跨鏈服務中用戶可以自己發布跨鏈管理合約嗎?

不可以,在BSN中無論是基於POLYIRITA的跨鏈服務,用戶只能發布調用跨鏈管理合約的消費合約。跨鏈管理合約是用戶選擇跨鏈服務後由BSN自動部署的。

問題3 BSN中基於Fabric開發應用調用reqChainCode接口時,傳遞的臨時數據( transientData )字段有什麼作用?

Fabric鏈碼中許多鏈碼函數在被調用時需要額外的輸入數據。在大多數情況下開發者會在調用函數時傳入一組參數,而鏈碼參數,包括函數名和函數參數,都會作為有效交易的一部分保存在區塊內,因此將永久性的存在於賬本中。如果出於某種原因開發者不希望在鏈上永久保存參數列表,就可以使用臨時數據( transientData )。臨時數據( transientData )是一種可以向鏈碼函數傳參但不需要將其保存在交易記錄中的輸入方法。開發者使用reqChainCode接口傳遞transientData字段後,可以在鏈碼中根據getTransient ()方法獲取該字段。

問題4BSN中基於Fabric開發應用調用reqChainCode接口時,為什麼每次查詢相同的KEY值也會返回不同的交易ID

BSN中基於Fabric開發應用時,每次調用reqChainCode接口調用鏈碼時都是一筆交易,每筆交易都會對應生成一筆交易ID ,只是調用invoke類型方法時會將本次交易ID和交易信息上鏈,而調用query類型方法時不會將查詢結果上鍊,只會將查詢結果和交易ID返回給鏈下業務系統。

問題5 BSN中基於FISCO BCOS開發應用,調用reqChainCode接口的查詢方法時提示“ out-of-gas during EVM execution ”是什麼原因?

BSN中部署FISCO BCOS的智能合約時,系統會根據用戶購買的TPS ,系統CPU測算出用戶單筆交易的最大gas值。當用戶多次根據同一ID插入數據時,雖然單筆交易消耗gas值未達到最大gas值,但根據ID一次性查詢所有數據,就會因為數據量太大而超過單筆交易的最大gas值,進而報錯,建議用戶在編寫智能合約時實現分條多批次查詢。

問題6 :使用BSN測試網調用Fabric服務提示'gRPC Transport Status Code: ( 2 ) Unknown.Description: access denied: channel [ channel202010310000001 ] creator org [ ECDSARTestNodeMSP ] '是什麼原因?

檢查用戶交易密鑰對的私鑰內容是否正確,即SDK中用戶交易密鑰對存儲目錄下的pk文件夾下的{testuser}@{AppCode}_pk.pem證書文件內容和下載的證書【 BSNTestCert- fabricMsp-keystore 】下的prikey.pem文件內容是否一致。

問題7 :在BSN中參與Fabric密鑰託管模式的應用註冊子用戶時返回的密碼和填寫的密碼不一致是為什麼?

BSN中參與Fabric密鑰託管模式的應用註冊子用戶時,不用填寫用戶密碼,即使填寫了密碼,系統也會使用BSN默認密碼( bsn123456 )進行用戶註冊;如果是上傳公鑰模式下註冊子用戶就必須填寫用戶密碼。

問題8 :在BSN中參與上傳公鑰模式的應用時,將本地生成的公鑰、測試數據、簽名數據上傳後提示測試失敗,該如何解決?

1 、生成證書的算法要與參與服務的底層框架算法一致,如應用服務的框架是Fabric-secp256r1使用prime256v1 Fabric-sm2 FISCO-sm2XuperChain-sm2使用sm2 FISCO-secp256k1則使用secp256k1

2 、檢查測試數據 data.txt 中是否有空格或回車,將多餘的空格或回車刪除後重新簽名,再上傳測試即可。

問題9 :基於BSN開發FISCO BCOS應用時,註冊鏈碼事件成功,但是當合約事件被觸發時,註冊地址沒有收到通知,該如何解決?

檢查註冊事件的請求參數eventType是否為21是出塊事件, 2是合約事件)

問題10 :在BSN中如何對已上架的產品進行修改產品類型操作?

BSN中發布了已上架的產品後,可以在已上架產品的賬單週期內對產品進行下架操作,然後編輯產品信息後再重新上架,賬單週期內重新上架產品將不會再次收取產品上架費。

問題11 :如何成為BSN官方指定應用的供應商?

1 、供應商需擁有區塊鏈應用且具有自主知識產權;

2 、供應商須為聯盟認證的企業合格開發者(申請成為合格開發者http://kb.bsnbase.com/webdoc/view/Pub4028813e705bf9760170a94c96461377.html )或聯盟成員;

3 、發郵件到開發者委員會( developer@bsnbase.com )申請加入“ BSN指定區塊鏈應用”,加入後,我們將為您免費提供豐富的應用推廣資源。

問題12BSN中已發布的服務如何自行停用?

目前BSN官方門戶不支持用戶自行停用、卸載服務,用戶將擬停用、卸載並清除鏈上數據的服務名稱發郵件到support@bsnbase.com ,工作人員與用戶郵件確認後進行辦理。

問題13 :使用BSN測試網測試Fabric應用時,如何測試鏈碼事件?

BSN測試網中基於FabricXuperChain開發應用時不支持鏈碼事件功能,基於FISCO BCOS開發應用時支持鏈碼事件功能。

問題14BSN推出的測試網與原有的應用發布有什麼區別?

1 、測試網部署合約無需人工審核,是完全的自動化部署;

2 、所有的合約部署在同一個群組( ISCO BCOS XuperChain )或者channel Fabric )中;

3 、測試網數據將定期被清理;

4 、測試網調用網關API將不會校驗功能權限;

5 、測試網可以同時進行密鑰託管模式或上傳公鑰模式的網關調用測試。

問題15 :用戶發布過的服務未續費被卸載後,是否可以再發布一個相同名字的服務?

不可以,目前在BSN中服務名稱不可以重複,即使服務已經被卸載,也不可以重複使用該服務名稱。