2017-04-23 35 views
1

我已經根據使用docker的指令設置了結構,並且一切正常。我有一個chaincode,它存儲了一個世界狀態的值,我可以使用查詢方法讀取它。在寫入同一個鏈接代碼後立即讀取狀態

我的情況是這樣的:我在短時間內提交多個單獨的請求,以存儲世界各地的不同數據。在每個請求中,我需要讀取剛剛提交的數據。但是,我無法閱讀最近提交的數據。

我的理解是,這可能是因爲這些數據可能尚未存儲在區塊鏈中,因此無法讀取。有了這個理解,我引入了一個睡眠函數來休眠幾秒鐘,以便給以前提交的數據足夠的時間包含在區塊鏈中。但是,這種方法並不成功。

因此,我想知道是否有任何方式來存儲後續數據後纔讀取以前的數據。

感謝, Ripul

回答

1

在chaincode等待幾秒鐘是不夠的。鏈式代碼中「寫入」的數據尚未提交給數據庫,只是提議在該點寫入數據庫。只有已提交的數據以鏈碼形式讀回。因此,在鏈接代碼中進行更新並獲取提案響應之後,您必須提交事務以進行排序。訂購者可能需要幾秒鐘才能切割塊,將其分發給同行,並讓同行提交數據。只有這樣,數據才能在鏈碼中被讀回。

如果您必須讀取剛剛在同一個鏈接代碼函數中編寫的數據,則需要保留已寫入數據的映射並從映射中檢索值,而不是從已提交的數據庫中檢索值。

相關問題