Я пытаюсь реализовать структуру данных очереди на фабрике гиперссылки c. Для этого мне нужна какая-то семантика блокировки записи-чтения (после удаления элемента из очереди он должен быть недоступен из контекста ни одному узлу).
Я не нашел для этого никаких механизмов еще.
Вот что у меня:
item.IsRemoved = true
updatedItemAsBytes, _ := json.Marshal(item)
ctx.GetStub().PutState(queryResponse.Key, updatedItemAsBytes)
bytes, _ := ctx.GetStub().GetState(queryResponse.Key)
element := new(QueueItem)
_ = json.Unmarshal(bytes, element)
А затем element.IsRemoved по-прежнему false (значение по умолчанию). Насколько я понимаю, это потому, что транзакции не блокируются, и новое значение будет доступно только после того, как узлы подтвердят его правильность.
Как справиться с этим случаем? Есть ли какие-нибудь методы API? Нужно ли менять правила подтверждения транзакции на одиночный (текущий) узел? Или как правильно сделать это в гиперссылке?