разорванная цепочка после обновления: ФАТАЛЬНО: не удалось инициализировать API: -32603: произошла неизвестная ошибка:

#substrate

#субстрат

Вопрос:

мы строим сеть, основанную на паритетной подложке.

при обновлении сети с помощью sudo / setCode, который ранее работал как шарм много раз, мы получаем разорванную цепочку при загрузке новой среды выполнения на основе substrate 2.0.1 в цепочку на основе substrate 2.0.0.

ошибка, которую мы получаем после обновления, выглядит следующим образом: FATAL: Unable to initialize the API: -32603: Unknown error occurred: Client, VersionInvalid, Other, "Instantiation: Export ext_default_child_storage_storage_kill_version_2 not found

мы уже проверили наличие дополнительного кода, отображающего дефект новой сборки, но по отдельности обе сборки работают безупречно.

поскольку более новая спецификация цепи содержит больше деталей для палитры контрактов и многоадресного формата, кажется, что есть некоторые изменения, которые старая среда выполнения не может пережевать, но, исходя из ошибки, мы не можем определить, в чем заключается исходная проблема, и не смогли найти никакой документации, объясняющей, в конечном итоге, нарушение изменений для версии исправления..

изменение спецификации genesis chainspec делает следующие сборки несовместимыми со старой средой выполнения, поэтому цепочка не может быть обновлена, если мы изменим спецификацию цепочки.

но до недавних обновлений сборка никогда не жаловалась на отсутствие данных в спецификации, поэтому вопрос в том, где это введено или как мы можем отключить это, или это критическое изменение, которое мы наблюдали.

заранее спасибо за любые указания.

Комментарии:

1. Вы увеличили spec_version ? вот документы по правильному использованию, и если вы использовали шаблон, вот где он установлен.

2. Также я уверен, что вы недавно просмотрели документы по обновлению среды выполнения — я не уверен, есть ли там помощь для этого кода ошибки, но может помочь.

3. да, спасибо, в прошлом мы провели довольно много обновлений onchain, в общей сложности было произведено более 4 миллионов блоков. по какой-то причине при обновлении поддонов и т. Д. До текущей версии компиляция работает, но вы не сможете запустить узел, если не измените спецификацию цепочки для соответствия еще некоторым параметрам, что, похоже, нарушает генезис.

4. «эта ошибка указывает на то, что они выполнили обновление среды выполнения без предварительного обновления узла. Это новая функция хоста» — это было слово, которое я получил, когда меня спросили внутри компании. Таким образом, похоже, что вам нужно сначала обновить узел, а затем выполнить обновление во время выполнения. В противном случае, похоже, это может быть ошибкой, которую мы должны опубликовать в репозитории как проблему: github.com/paritytech/substrate Не могли бы вы запустить его там, если обнаружите, что обновление узла -> обновление во время выполнения не работает? Вы можете пометить меня (NukeManDan), чтобы я мог следить и получать там дополнительную поддержку.

5. большое спасибо за ответ, тогда наверстаю упущенное на github.