СОЗДАНИЕ БЛОКЧЕЙНА С БЛОКАМИ, ВКЛЮЧАЮЩИМИ В СЕБЯ НАСТРАИВАЕМОЕ КОЛИЧЕСТВО БЛОКОВ ТРАНЗАКЦИЙ И НЕСКОЛЬКО ПРОМЕЖУТОЧНЫХ БЛОКОВ
CREATING A BLOCKCHAIN WITH BLOCKS INCLUDING A CONFIGURABLE NUMBER OF TRANSACTION BLOCKS AND SEVERAL INTERMEDIATE BLOCKS

Изобретение относится к реализуемому компьютером способу для создания блокчейна с блоками, включающими в себя настраиваемое количество блоков транзакций и несколько промежуточных блоков, а также к носителю данных устройства, участвующего в распределенной системе банка данных, содержащего такой блокчейн.
В индустриальной сфере существует все возрастающий интерес к тому, чтобы данные, которые относятся к самому устройству или автоматизированной системе, в которой находится устройство, или данные процесса, который протекает в автоматизированной системе устройства, безопасным образом сохранять в устройстве. При этом особый интерес представляют данные о качестве из автоматизированной системы управления или предпринятые действия обслуживания или история регистрируемых данных о состоянии. Для защищенного от манипулирования сохранения таких данных в устройстве предлагается блокчейн и использование сети блокчейна.
При этом в индустриальной сфере используют, например, так называемый общедоступный или публичный блокчейн или частный (приватный) блокчейн. В случае публичного блокчейна, способ консенсуса является открытым, т.е. неизвестная группа пользователей, например, в общедоступном Интернете, может подтверждать или валидировать блокчейн или, точнее сказать, валидировать отдельные блоки посредством так называемого майнинга. В случае приватного блокчейна, способ консенсуса реализуется внутри консорциума, члены которого, например, известны друг другу или известны административной инстанции или удовлетворяют определенному уровню доверия.
Технология блокчейна реализует распределенную, децентрализованную базу данных, в которой защищенным от манипулирования образом могут сохраняться транзакции, сгенерированные участвующими узлами. Для этого, транзакции сохраняются в блоке, и блок посредством способа контрольной суммы связывается в цепочку с последующим блоком. Объяснение технологии блокчейна можно найти, например, в англоязычном источнике из Википедии https://en.wikipedia.org/wiki/Blockchain. В блоке, наряду с одной или несколькими транзакциями, сохраняется, например, хеш-значение блока-предшественника. Блок отправляется от узла, который его сгенерировал, в сеть блокчейна. Защита создается посредством множества доверительных узлов в сети блокчейна, которые выполняют валидацию блоков. В сети участвующих в блкчейне узлов, на регулярных расстояниях образуется новый блок, и при этом хеш-значение существующего блока совместно сохраняется. Если никакой транзакции не имеется в определенном интервале, то в некоторых блокчейнах отказываются от создания блока.
Таким образом, блокчейн сохраняет транзакции, которые были выданы в блокчейн для подтверждения или предоставлены в сеть блокчейна. Если блоки подтверждаются в соответствующем способе консенсуса, то действительный блокчейн растет с каждым подтвержденным блоком по своей длине и, тем самым, по величине. Таким образом, потребность в емкости памяти (объеме памяти) продолжающегося или подтвержденного блокчейна, все возрастает.
Так как контрольная сумма, в частность хеш-значение, блока-предшественника добавляется в соответствующий новый блок, образуется цепочка. Контрольная сумма блока-предшественника вновь образует вместе с транзакцией актуального (текущего) блока блок данных для контрольной суммы последующего блока. Также говорят, что блок ссылается на предшествующий блок (привязывается к предшествующему блоку, соотносится с предшествующим блоком). Транзакции, таким образом, защищены от манипуляций, так как цепочка может прослеживаться вплоть до начального блока, также называемого генезисным (порождающим, первичным) блоком, за счет связывания в цепочку блоков. Так как транзакции доступны через сеть блокчейна, можно проследить, с какого блока в цепочке, например, содержание транзакции больше не согласуется с предшествующими версиями. Следовательно, транзакции сохраняются защищенным от манипуляций образом в каждом верифицированном блокчейне. Изменение транзакции в блоке, который уже был образован к более раннему моменту времени в сети, могло бы прослеживаться, если формирование контрольной суммы по существующим блокам пересчитывается или проверяется. Ввиду постоянного растущего количества блоков внутри блокчейна, при использовании технологии блокчейна в устройствах с ограниченными ресурсами существует риск того, что достаточного объема памяти надолго не хватит. Например, ресурсы объема памяти в случае автоматизированных устройств, HMI-устройств или Edge-устройств или IoT-устройств ограничены, в противоположность облачным системам.
Исходя из этих предпосылок, задачей настоящего изобретения является предусмотреть применение блокчейна таким образом, что потребность в объеме памяти для блокчейна в узле может быть снижена.
Эта задача решается предметом независимых пунктов формулы изобретения. Предпочтительные варианты осуществления приведены в зависимых пунктах формулы изобретения.
Изобретение относится к реализуемому компьютером способу для создания блокчейна с блоками, включающими в себя настраиваемое количество блоков транзакций и несколько промежуточных блоков,
- причем блокчейн является составной частью распределенной системы базы данных;
- причем блоки генерируются внутри блокчейна, и соответствующий блок ссылается на соответствующий предшествующий блок,
- причем предусмотрен первый промежуточный блок;
- причем генерируется по меньшей мере второй промежуточный блок;
- причем второй промежуточный блок ссылается на предшествующий ему блок, а также на по меньшей мере первый промежуточный блок.
Блокчейн является составной частью распределенной системы базы данных. При этом распределенная система базы данных означает, что информации базы данных, особенно цепочка в форме блокчейна, доступны или могут сохраняться в нескольких местах или у нескольких участников. Принцип блокчейна в распределенной системе базы данных основывается на том, что информация из блокчейна предоставляется децентрализованным образом. Участники распределенной системы базы данных могут взаимодействовать при создании новых блокчейнов или проверять или верифицировать блокчейны. Кроме того, участник также может получать доступ к одному или нескольким блокчейнам или применять один или несколько блоков блокчейна.
В качестве блоков согласно настоящей заявке предусмотрены блоки транзакций, а также промежуточные блоки. Блок транзакции, который ссылается на предшествующий блок транзакции, известен из уровня техники. В частности, посредством создания блока транзакции с передачей транзакции в распределенную систему базы данных и связывания в цепочку с существующими блоками транзакций осуществляется построение блокчейна. Таким способом существующая цепочка блокчейна в некоторой степени продолжается или расширяется.
Посредством выбора блока, на который ссылаются, в цепочке блокчейна устанавливается, в каком месте или на основе какой последней транзакции или какого последнего блока продолжается цепочка. В частности, возможен произвольный выбор блока, на который ссылаются, (для привязки) при создании блокчейна. Предпочтительным образом, для осуществления ссылки выбирается самый актуальный блок, подтвержденный распределенной системой базы данных. Таким образом, подтвержденные в своей действительности или валидированные цепочки эффективно расширяются.
Теперь предлагается генерировать по меньшей мере один промежуточный блок. Промежуточный блок имеет, наряду с регулярной ссылкой на блок-предшественник, вторую ссылку, а именно, ссылку на промежуточный блок-предшественник. Под термином “ссылка” следует понимать, например, связывание в цепочку с другим блоком или связывание с другими блоками посредством образования контрольной суммы по связанному или сцепленному (цепочечному) блоку. За счет этой двойной ссылки(привязки) становится возможным гибким образом валидировать блокчейн, сгенерированный таким образом и подтвержденный децентрализованной сетью блокчейна: с одной стороны, может выполняться полное прослеживание сгенерированных блоков, в частности всех сгенерированных блоков. Также, цепочка может прослеживаться на основе промежуточных блоков и их ссылок на предшествующие промежуточные блоки. Блоки, которые находятся между двумя промежуточными блоками, в частности, блоки транзакций, могут при валидации пропускаться, если прослеживается целостность цепочки по промежуточным блокам.
Например, в цепочке из блоков транзакций генерируется второй промежуточный блок. Второй промежуточный блок создается таким образом, что он псевдо-регулярно ссылается на предшествующий промежуточный блоку. Т.е. второй промежуточный блок генерируется в качестве блок внутри блокчейна таким образом, что он расширяет или продолжает существующую цепочку блокчейна.
Дополнительно, второй промежуточный блок ссылается на по меньшей мере первый промежуточный блок. Таким образом, второй промежуточный блок включает в себя по меньшей мере две ссылки. При этом речь идет, например, о контрольных суммах двух различных статусов блокчейна. С одной стороны, посредством связывания в цепочку с предшествующим блоком, блокчейн обычным образом продолжается. Предшествующий блок представляет собой, в частности, регулярный блок транзакции.
Через прямой предшествующий блок, второй промежуточный блок включает в себя контрольную сумму цепочки блокчейна до самого второго промежуточного блока. Кроме того, второй промежуточный блок включает в себя также контрольную сумму блокчейна к статусу сгенерированного первого промежуточного блока. Например, это соответствует состоянию блокчейна после создания или после валидации первого промежуточного блока.
Таким образом, посредством второго промежуточного блока, который ссылается на первый промежуточный блок, создается указание на более раннее состояние блокчейна.
Предпочтительным образом, блокчейн может продолжаться на основе второго промежуточного блока. Целостность сохраненных в блокчейне транзакций становится возможной посредством второго промежуточного блока и первого промежуточного блока, даже если сами блоки транзакций, сгенерированные между первым промежуточным блоком и вторым промежуточным блоком, больше недоступны.
Предпочтительным образом, в предложенном способе, актуальная транзакция, которая предоставляется в распоряжение сети блокчейна и должна быть связана в цепочку, с доступностью блока транзакции в сети блокчейна будет доступна для всех узлов. Способ создания блокчейна с настраиваемым количеством блоков транзакций не затрагивает, таким образом, доступность актуальных блоков транзакций.
Промежуточный блок может, аналогично известным способам генерации блока транзакции, например, майнингу, подтверждаться сетью блокчейна. Например, промежуточный блок генерируется посредством механизма, основанного на Proof-of-Work (доказательство выполнения работы) или Proof-of-Stake (доказательство доли владения) или Proof-of-authority (доказательство репутации).
В частности, обратные ссылки от промежуточных блоков на предшествующие промежуточные блоки при генерации последующих блоков после промежуточного блока не требуется особым образом принимать во внимание. В частности, валидация и связывание в цепочку промежуточного блока осуществляется регулярным образом.
Другие узлы, например узлы в облаке, в котором распределена сеть блокчейна, могут, следовательно, обращаться с блокчейном с одним или несколькими промежуточными блоками регулярным образом и принимать во внимание, например, только ссылку на предшествующий блок транзакций соответствующего промежуточного блока.
Целостность блокчейна становится возможной на основе ссылки первого промежуточного блока на второй промежуточный блок без блоков, сгенерированных между первым и вторым промежуточными блоками.
Согласно варианту осуществления, первый промежуточный блок является генезисным блоком. Первый промежуточный блок в этом варианте осуществления имеет особую роль и сам является генезисным блоком. Второй промежуточный блок ссылается тогда, в дополнение к блок-предшественнику, на генезисный блок. В этом варианте, в котором первый промежуточный блок является генезисным блоком, валидация блоков со второго промежуточного блока осуществляется на основе ссылки (привязки) генезисного блока. Транзакции, которые сохранены в блоках между генезисным блоком и вторым промежуточным блоком, не требуются для прослеживания целостности блоков со второго промежуточного блока.
Согласно варианту осуществления, предусмотрен генезисный блок, и, кроме того, генерируется первый промежуточный блок, причем первый промежуточный блок ссылается на предшествующий ему блок, а также на по меньшей мере генезисный блок. Предпочтительным образом, первый промежуточный блок, в зависимости от свойства цепочки или от частоты генерируемых блоков, особенно генерируемых блоков транзакций, независимо от генезисного блока может служить в качестве ссылки и блока данных для формирования контрольной суммы или хеш-значения второго промежуточного блока.
Согласно варианту осуществления, между первым промежуточным блоком и вторым промежуточным блоком генерируется по меньшей мере один блок транзакции. Второй промежуточный блок предпочтительным образом генерируется согласно предписанию, которое учитывает особенности приложения блокчейна или свойства блокчейна и которое в соответствии с этим желало бы осуществлять промежуточные блоки после определенного количества блоков транзакций. При этом предписание может предусматривать самые различные механизмы, чтобы достичь этой цели. Чем больше блоков транзакций предусмотрено между промежуточными блоками, тем больше блоков могут оставаться без внимания при проверке блокчейна на основе промежуточных блоков и их ссылки на предшествующий промежуточный блок.
Согласно варианту осуществления, для укорочения блокчейна, сокращается по меньшей мере количество блоков транзакций между вторым промежуточным блоком и первым промежуточным блоком. В частности, удаляются все блоки транзакций, сгенерированные между вторым промежуточным блоком и первым промежуточным блоком.
Один или несколько блоков транзакций, которые находятся между первым промежуточным блоком и вторым промежуточным блоком, удаляются, так что величина и, тем самым, требуемая емкость памяти блокчейна в узле снижается.
Узел, который предпринимает укорочение, может представлять собой любой узел, участвующий в сети блокчейна. Предпочтительно, по меньшей мере в одном из участвующих узлов должен сохраняться весь блокчейн, включая все блоки транзакций, чтобы при необходимости можно было возвратиться к блокам транзакций, которых больше не имеется в укороченном блокчейне.
Укороченный блокчейн, как и ранее, может проверяться на целостность или аутентичность, при этом используется ссылка второго промежуточного блока на первый промежуточный блок. Таким образом может проверяться целостность блоков от генезисного блока до второго промежуточного блока, так как цепочка за счет ссылки на первый промежуточный блок не прерывается и из-за отсутствующих блоков транзакций между первым промежуточным блоком и вторым промежуточным блоком. Предпочтительным образом, можно прослеживать как истинность транзакций, еще доступных в укороченном блокчейне перед первым промежуточным блоком, так и истинность транзакций после второго промежуточного блока, в частности, тем, что выполняется формирование контрольной суммы по всем блокам включая промежуточные блоки. Так как второй промежуточный блок также имеет контрольные суммы первого промежуточного блока, в промежутках удаленных блоков транзакций также возможно сквозное прослеживание блокчейна посредством контрольных сумм. Следовательно, транзакции не удаленных блоков транзакций продолжают сохраняться защищенным от манипуляций образом и в укороченном блочейне.
То, что второй промежуточный блок может становиться доверительным для всех последующих блоков, гарантируется тем, что и промежуточные блоки, как в регулярной сети блокчейна, подтверждаются посредством механизмов консенсуса блокчейна.
Укорочение блокчейна особенно целесообразно для узлов, которые предусмотрены на устройствах с ограниченным объемом памяти. Например, в индустриальной сфере при этом речь идет о так называемых Edge-устройствах, которые служат в качестве интерфейса к облаку и к тому же локально в промышленной установке могут предоставлять или обрабатывать данные, релевантные для этой установки.
В частности, удаляются все блоки транзакций между двумя промежуточными блоками. Транзакции между двумя промежуточными блоками могут проверяться без пробелов, если все присутствуют и соответственно все контрольные суммы могут быть пересчитаны, как это имеет место в традиционном блокчейне. Поэтому укорочение блокчейна может оптимизироваться в отношении требуемого объема памяти за счет того, что укороченный блокчейн не содержит никакого блока транзакции между вторым промежуточным блоком и первым промежуточным блоком. В особых случаях, в которых, например, на основе политики, по которой осуществляется генерирование промежуточного блока, или ввиду отсутствия сгенерированных блоков транзакций, между двумя промежуточными блоками не был сгенерирован блок транзакции, укорочение может осуществляться аналогичным образом. Промежуточный блок содержит в этом случае, например, контрольную сумму по предшествующему промежуточному блоку дважды, один раз на основе ссылки прямого блока-предшественника, а второй раз на основе ссылки предшествующего промежуточного блока. Укорочение блокчейна не достигает в этом особом случае сокращения объема памяти.
Согласно варианту осуществления, посредством устройства, участвующего в распределенной системе базы данных, в частности, устройства в облаке или Edge-устройства или IoT-устройства, сохраняется укороченный блокчейн. Таким способом устройство с ограниченным объемом памяти может гибко сохранять укороченный блокчейн, который требует меньшего объема памяти. Например, устройство сохраняет сначала неукороченный блокчейн и затем укорачивает его путем стирания блоков транзакций между любыми промежуточными блоками.
Согласно варианту осуществления, для расширения блокчейна, блоки транзакций между первым промежуточным блоком и вторым промежуточный блок запрашиваются из сохраненного неукороченного блокчейна и добавляются. Тем самым, предпочтительным образом, укороченный блокчейн снова может быть расширен до неукороченного. Это расширение может выполняться для блоков транзакций между выбранными промежуточными блоками или для всех удаленных блоков транзакций, т.е. для блоков транзакций между всеми промежуточными блоками, между которыми перед этим было выполнено сокращение.
Согласно варианту осуществления, ссылка ссылаемого блока, включает в себя то, что контрольная сумма ссылаемого блока или части ссылаемого блока была сохранена или сохраняется в ссылающем блоке. Контрольная сумма представляет собой, в частности, хеш-значение или криптографическое хеш-значение.
Согласно варианту осуществления, промежуточные блоки не содержат, соответственно, никакой транзакции. Промежуточный блок аналогично известному способу генерации блока транзакции, например майнингу, подтверждается посредством сети блокчейна. Только содержимое сгенерированного промежуточного блока не содержит в этом варианте осуществления никаких полезных данных. Тогда в случае укороченного блокчейна остается особенно мало данных транзакций в укороченном блокчейне. В качестве промежуточного блока, согласно другому варианту, следует обозначать блок, который сам содержит транзакцию. Тем самым промежуточный блок может иметь двойную функцию и, с одной стороны, быть блоком транзакции внутри блокчейна и одновременно посредством дополнительной ссылки на более ранний промежуточный блок иметь функциональность промежуточного блока. Также транзакция промежуточного блока является защищенной от манипулирования, так как следующие за промежуточным блоком блоки транзакций сами ссылаются на этот промежуточный блок и, таким образом, связывают в цепочку сохраненную там транзакцию. Однако транзакции, которые сохраняются в промежуточных блоках, при укорочении блокчейна не удаляются.
Удаление блоков транзакций между всеми имеющимися промежуточными блоками, например, между генезисным блоком и первым промежуточным блоком и между первым промежуточным блоком и вторым промежуточным блоком и между вторым промежуточным блоком и последующим промежуточным блоком и т.д. обуславливает то, что в укороченном блокчейне имеются только транзакции, следующие за последним сгенерированным промежуточным блоком. Это особенно предпочтительно в приложениях, в которых история данных транзакций, которые были связаны в цепочку перед последним сгенерированным промежуточным блоком, больше не представляют интереса. В таком сценарии может высвобождаться особенно много объема памяти, или блокчейн требует особенно мало объема памяти, тем не менее все данные транзакции недавнего прошлого являются доступными. Временной интервал, для которого доступна история транзакций, может предпочтительно регулироваться посредством предписания для генерации промежуточных блоков или, альтернативно, посредством указания подлежащих стиранию блоков транзакций.
Согласно варианту осуществления, генерируются последующие промежуточные блоки, причем соответствующий последующий промежуточный блок ссылается на соответственно предшествующий блок, а также на соответственно предшествующий промежуточный блок. Способ может расширяться на любое количество промежуточных блоков, причем следующие друг за другом промежуточные блоки соответственно выполнены аналогично первому и второму промежуточным блокам. Третий промежуточный блок может, таким образом, следовать за вторым, четвертый промежуточный блок за третьим и т.д.
Согласно усовершенствованному варианту осуществления, генерация второго или соответствующего последующего промежуточного блока осуществляется на основе правил, например, к заданному моменту времени или с заданным временным интервалом от предшествующего блока или с заданным временным интервалом от предшествующего промежуточного блока или после заданного количества сгенерированных блоков транзакций или посредством запускаемого на контекстной основе условия или осуществляется вручную. Предпочтительным образом, является возможным, устанавливать частоту или регулярность генерируемых промежуточных блоков по правилу для генерации промежуточных блоков. В зависимости от случая применения, промежуточные блоки могут генерироваться таким образом, что блоки транзакций могут удаляться из определенных временных диапазонов.
Например, сгенерированные с особенно тонкой гранулярностью блоки могут удаляться из выбираемого временного промежутка, например, когда история транзакций для этого отрезка времени представляет незначительный интерес. Например, промежуточные блоки могут создаваться с увеличенными интервалами, для случаев применения, для которых, согласно опыту, лишь самые актуальные из данных транзакций будут представлять впоследствии интерес в устройстве в составе автоматизированной установки. За счет удаления блоков транзакций из такого диапазона можно посредством действия стирания между двумя промежуточными блоками одновременно сэкономить большую величину объема памяти.
В других случаях применения, промежуточный блок может генерироваться с меньшими интервалами, например, когда согласно опыту, лишь определенные части сгенерированных блоков транзакций представляют интерес для исторического анализа, а другие части могут быть стерты из истории.
Предпочтительным образом, промежуточный блок генерируется только тогда, когда было сгенерировано определенное количество блоков транзакций. Это обеспечивает то, что промежуточный блок генерируется только тогда, когда удаление блоков транзакций до предшествующего промежуточного блока превышает определенную экономию объема памяти в качестве предельного значения. Тем самым можно, например, избежать того, что удаление блоков транзакций между двумя промежуточными блоками будет иметь лишь незначительное влияние на величину или длину всего блокчейна.
Предпочтительным образом, при основанном на контексте условии, генерация промежуточного блока осуществляется в зависимости от контекста, например контекста проекта автоматизации. Например, система-заказчик управляет созданием промежуточного блока. Предпочтительным образом, промежуточные блоки тогда могут, например, создаваться в начале и по завершении партии. Таким образом, удаление блоков транзакций между промежуточными блоками или также сохранение этих блоков в блокчейне выбирается для определенной партии (поставки) или определенного заказа.
Кроме того, промежуточный блок может, например, создаваться, когда новая установка параметра применяется в автоматизированном процессе, например, после смены инструмента в инструментальном оборудовании или после настройки регуляторов в производственном оборудовании в ответ на влияния окружающей среды.
Согласно варианту осуществления, по меньшей мере один из последующих промежуточных блоков ссылается по меньшей мере на два из предшествующих промежуточных блоков, при этом на однин промежуточный блок ссылается несколько предшествующих промежуточных блоков, например, таким образом, что хеш-значение нескольких предшествующих промежуточных блоков содержит состояние блокчейна к соответствующему моменту времени. Таким образом, становится возможным укорочение блокчейна, исходя из промежуточных узлов с двойной ссылкой, на несколько длин. Т.е. можно, например удалить из блокчейна участок цепочки между промежуточным узлом с двойной ссылкой и промежуточным узлом, на который раньше делалась ссылка, или между промежуточным узлом с двойной ссылкой и промежуточным узлом, на который позже делалась ссылка.
В усовершенствованном варианте осуществления, промежуточный блок может ссылаться, например, на все предшествующие промежуточные блоки. Это повышает, с одной стороны, сложность ввиду инфляции (переизбытка) ссылок в промежуточном блоке, однако таким способом можно в одном процессе удалить из блокчейна очень большое количество блоков, т.е. блоков транзакций и предшествующих промежуточных блоков, и тем самым эффективно укоротить его.
Согласно варианту осуществления, соответствующий промежуточный блок ссылается на соответственно предшествующий промежуточный блок, и выбранные промежуточные блоки дополнительно ссылаются на другие предшествующие промежуточные блоки. Таким способом может создаваться компромисс, так что, с одной стороны, количество ссылок не нарастает инфляционно с вновь сгенерированными промежуточными блоками, и тем не менее выбранные промежуточные блоки ссылаются на два или более предшествующих промежуточных блока.
Согласно варианту осуществления, в качестве выбранного промежуточного блока генерируется промежуточный блок к заданному моменту времени или с заданным временным интервалом до предшествующего или выбранного перед этим промежуточного блока или после заданного количества сгенерированных блоков транзакций или промежуточных блоков или генерируется посредством основанного на контексте запускающего условия или вручную. Механизмы, которые запускают генерацию выбранного промежуточного блока с двойной или многократной ссылкой, могут выбираться аналогично созданию промежуточного блока.
Изобретение также относится к носителю данных устройства, участвующего в распределенной системе базы данных, в частности устройства в облаке, Edge-устройства или IoT-устройства, имеющего блокчейн с блоками, включающими в себя настраиваемое количество блоков транзакций и несколько промежуточных блоков,
- причем блокчейн является составной частью распределенной системы базы данных;
- причем соответствующий блок ссылается на соответствующий предшествующий блок;
- имеет первый промежуточный блок и по меньшей мере один второй промежуточный блок;
- причем второй промежуточный блок имеет ссылку на предшествующий ему блок, а также на по меньшей мере первый промежуточный блок.
Согласно варианту осуществления, носитель данных выполнен на Edge-устройстве или IoT-устройстве и сохраняет укороченный блокчейн согласно вышеописанному способу.
Предпочтительным образом, в сети блокчейна, блокчейн с описанным промежуточными блоками генерируется, распределяется, подтверждается, децентрализованно администрируется или сохраняется. Узел сети блокчейна может, таким образом, произвольным образом принять решение, следует ли ему сохранять полный блокчейн, включая сгенерированные блоки транзакций и промежуточные блоки, или укорачивать блокчейн согласно вышеописанному способу и сохранять укороченный блокчейн. В частности, узлы сети, которые имеют ограниченный объем памяти, как, например, Edge-устройства или IoT-устройства в составе автоматизированных установок, могут предпочтительно сохранять укороченный блокчейн.
Согласно варианту осуществления, носитель данных выполнен на Edge-устройстве или IoT-устройстве и сохраняет блокчейн, расширенный согласно вышеописанному способу. Предпочтительно в сети блокчейна предусмотрен по меньшей мере один узел, который надежно сохраняет весь блокчейн. В автоматизированной установке, которая подключена к облаку, это может быть узел блокчейна оператора установки или узел блокчейна облачной службы, для которой оператор установки определяет правила и который сохраняет весь блокчейн включая все блоки транзакций. От него может тогда, например, устройство автоматизированной установки, которое сохранило только укороченный блокчейн, запрашивать блоки транзакций, не содержащиеся в укороченном блокчейне, и вновь привязывать их в блокчейн. В частности, при этом процессе может проверяться, все ли запрошенные и предоставленные блоки транзакций существуют в целостной и не подверженной манипуляциям форме, посредством прослеживания контрольных сумм блоков. Таким способом устройство с сохраненным укороченным блокчейном после привязки блоков из полного блокчейна вновь получает расширенный блокчейн. При этом могут запрашиваться все удаленные блоки или только части, так что блокчейн в расширенной, но в любом случае все еще в сокращенной форме относительно полного блокчейна, предоставляется на Edge-устройстве или IoT-устройстве.
Изобретение также относится к Edge-устройству, имеющему носитель данных согласно вышеописанным вариантам осуществления носителя данных.
Изобретение также относится к компьютерному программному продукту с компьютерной программой, которая имеет средства для выполнения способа согласно одному из вышеописанных вариантов осуществления, когда компьютерная программа приводится в исполнение на программно-управляемом устройстве.
Изобретение далее поясняется на примерах со ссылками на чертежи, на которых показано следующее:
Фиг. 1 - схематичное представление двух блокчейнов согласно первому примеру выполнения изобретения;
Фиг. 2 - схематичное представление двух блокчейнов согласно второму примеру выполнения изобретения;
Фиг. 3 - схематичное представление двух блокчейнов согласно третьему примеру выполнения изобретения;
Фиг. 4 - схематичное представление двух блокчейнов согласно четвертому примеру выполнения изобретения;
Фиг. 5 - схематичное представление сетевых узлов блокчейнов в облачном окружении и сетевых узлов блокчейнов в автоматизированной установке.
Согласно первому примеру выполнения изобретения, блокчейн генерируется таким образом, что наряду с регулярными блоками транзакций с регулярными интервалами генерируются промежуточные блоки. При этом блокчейн базируется на генезисном блоке G. Блоки транзакций создаются на основе генезисного блока G и связываются в цепочку в блокчейн. На фиг. 1 в качестве примера обозначен такой блок транзакции T. Для простоты, только один блок транзакции снабжен ссылочной позицией. Спустя заданный и гибко выбираемый временной интервал от генезисного блока G создается первый промежуточный блок A1. Он не содержит сам никакой транзакции, однако создается подобно блоку транзакции, широковещательно отсылается в сеть блокчейна, подтверждается посредством применяемого в блокчейне механизма консенсуса и связывается в цепочку в блокчейн. При этом он, как обычно, ссылается прямо к предшествующему блоку транзакции, а также дополнительно к генезисному блоку G.
Если первый промежуточный блок A1 успешно подтверждается узлами, участвующими в распределенной системе базы данных, которая применяет блокчейн, особенно посредством так называемого майнинга, то первый промежуточный блок A1 продолжает блокчейн как регулярный блок.
n-1
N
С определенным временным интервалом от первого промежуточного блока A1 генерируются последующие промежуточные блоки. В этой последовательности генерируется также (n-1)-ый промежуточный блок A. Вновь, с временным интервалом от него генерируется n-ый промежуточный блок A. Сгенерированный таким образом блокчейн 10 распределяется согласно первому примеру выполнения изобретения внутри сети блокчейна, например, внутри частной сети блокчейна. Например, сеть блокчейна предусмотрена внутри собрания предприятий, которые совместно работают над производством продукта на различных стадиях производства. При этом полный блокчейн 10 сохранен, например, на соответствующем узле фирм-участников.
Также составной частью сети блокчейна являются узлы отдельных фирм, которые находятся внутри автоматизированной сети. Она соединена с сетью блокчейна NW. Например, один из узлов сети блокчейна предусмотрен на Iot-устройстве. На этом IoT-устройстве предоставленный в распоряжение объем памяти ограничен. Например, IoT-устройство воспринимает задачи управления внутри установки и кроме того соединено с офисной или IT-сетью. IoT-устройство может задействоваться, в частности, через Интернет. IoT-устройство обращается к блокчейну, чтобы, например, иметь защищенный от манипуляций доступ к транзакциям для актуального проекта автоматизации или актуальной партии. Эти данные транзакции могут, например, состоять из блоков параметров или параметров конфигурации.
n-1
Также данные транзакции могут включать данные заказа для некоторого заказа-контракта. Например, для IoT-устройства представляет интерес область блокчейна, которая содержит данные транзакции, которые были созданы после (n-1)-го промежуточного блока A.
1
n-1
Предпочтительным образом, IoT-устройство может сохранить укороченный блокчейн 11. Для этого, блоки транзакций, которые по времени были созданы перед (n-1)-ым промежуточным блоком, удаляются из блокчейна. При этом промежуточные блоки остаются содержащимися в блокчейне. Таким образом, создается цепочка из генезисного блока G, первого промежуточного блок A, при необходимости, последующих промежуточных блоков, (n-1)-го промежуточного блока A и соединенных с ним блоков транзакций. Укороченный таким образом блокчейн 11 и содержащиеся в нем актуальные блоки транзакций могут валидироваться исходя от генезисного блока G, при этом может прослеживаться формирование контрольной суммы по отдельным блокам. На основе привлечения контрольных сумм соответствующего предшествующего промежуточного блока в промежуточном блоке, цепочка блоков, как они содержатся в укороченном блокчейне 11, может быть валидирована.
n-1
Требуемый объем памяти для укороченного блокчейна 11 сокращается на величину всех удаленных блоков транзакций. Как генерация (n-1)-го промежуточного блока A, так и его выбор в качестве промежуточного блока для удаления предшествующих блоков транзакций, может осуществляться согласованно с проектом автоматизации. Если генерация промежуточных блоков зависит от выбираемого временного интервала от предшествующих промежуточных блоков, то при укорочении блокчейна может соответственно выбираться промежуточный блок, который был сгенерирован перед интересующим участком блокчейна.
n
b-1
b
n
b-1
b
На фиг. 2 представлен второй пример выполнения изобретения, в котором блокчейн 20 создается подобно блокчейну 10, описанному со ссылкой на фиг. 1. В отличие от первого примера выполнения, для укорочения блокчейна 20 посредством удаления блоков транзакций перед промежуточным блоком A, исключается участок блокчейна от удаления промежуточных блоков. Блоки транзакций, которые лежат между (b-1)-ым промежуточным блоком A и b-ым промежуточным блоком A, согласно второму примеру выполнения изобретения, не удаляются. Таким образом, создается укороченный блокчейн 21, который удаляет старые блоки транзакций, которые были сгенерированы перед промежуточным блоком A, до таковых между (b-1)-ым промежуточным блоком A и b-ым промежуточным блоком A.
n
Таким образом, блокчейн 20 эффективно сокращается до укороченного блокчейна 21, и при этом экономится объем памяти, который высвобождается за счет удаленных блоков транзакций. Однако целенаправленно исключается некоторый временной диапазон, так что блоки транзакций из этого временного диапазона являются доступными в укороченном блокчейне 21. Например, таким образом в укороченном блокчейне 21 сохраняются так называемые “золотые серии”, которые известны из технологии производства и представляют планку для текущих производственных партий, в качестве вызываемых данных транзакции в блокчейне, чтобы иметь возможность выполнять соответствующее сравнение данных серий и в укороченном блокчейне. Дополнительно сохраняются, например, новейшие данные транзакции в качестве истории, которые были сгенерированы после промежуточного блока A.
n
n-1
1
n
1
n
n-1
Согласно третьему примеру выполнения, блокчейн 30 создается таким образом, что, например, n-ый промежуточный блок A, наряду с прямо предшествующим ему блоком транзакции и сгенерированным последним (n-1)-ым промежуточным блоком A, дополнительно ссылается, например, к первому промежуточному блоку A. В одном варианте, n-ый промежуточный блок A ссылается еще к другим промежуточным блокам (не показано). При укорочении блокчейна 30 до укороченного блокчейна 31, между выбранным временным диапазоном, например между первым промежуточным блоком A и n-ым промежуточным блоком A, наряду с блоками транзакций из этого временного интервала, также могут удаляться сгенерированные промежуточные блоки в этом временном интервале, в частности (n-1)-ый промежуточный блок A.
n
1
Полная возможность проверки цепочки блокчейна в укороченном блокчейне 31 несмотря на это гарантируется за счет ссылки n-го промежуточного блока A на первый промежуточный блок A. Предпочтительно предусмотрено, что не все промежуточные блоки ссылаются на несколько предшествующих промежуточных блоков, чтобы избежать инфляции ссылок и связанной с этим сложности. Однако можно с увеличенными временными интервалами предусматривать такой промежуточный блок, который, в частности, содержит дополнительный промежуточный блок в качестве контрольной суммы.
n-1
На фиг. 4 показана еще одна возможная альтернатива, чтобы создать блокчейн 40 с промежуточными блоками. При этом многие или особенно все из сгенерированных промежуточных блоков также ссылаются на генезисный  блок G. Укороченный блокчейн 41 может тогда генерироваться так, что данные транзакции перед (n-1)-ым промежуточным блоком A удаляются. Тем самым блокчейн автоматически сокращается до минимально возможной длины. Этот вариант осуществления может представлять интерес для случаев применения, в которых данные транзакции на начальной фазе блокчейна нерелевантны, например, потому что они представляют собой тестовые данные или блоки данных конфигурации, на которые в последующем процессе не нужно ссылаться, например, потому что они ведут к плохим или неоптимальным условиям для установки.
Описанные в примерах выполнения 1-4 возможности осуществления ссылки (привязки) промежуточных блоков и соответствующие возможности для укорочения блокчейна могут также использоваться в комбинации. Например, могут применяться различные механизмы для генерации промежуточных блоков для различных временных интервалов блокчейна. Также могут варьироваться механизмы запуска для создания промежуточного блока внутри блокчейна. Например, в начале блокчейна, который заново создается при пуске в эксплуатацию автоматизированной установке, задается постоянный временной интервал, в то время как в дальнейшем процессе промежуточные блоки запускаются на контекстной основе.
С помощью фиг. 5 иллюстрируется, каким образом укороченные блокчейны 11, 21, 31 используются в сценарии приложения автоматизированной установки. Фиг. 5 показывает сеть блокчейна NW, состоящую из узлов блокчейна 151, 152, 101, 201, 301. По причинам наглядности представления, показаны только пять узлов, участвующих в сети блокчейна NW. В частности, в облаке 150, которое изображено в верхней половине представления на фиг. 5, участвует множество узлов. Узлы 151, 152 в облаке 150 соединены через сеть блокчейна NW с узлами в автоматизированной установке 101, 201, 301.
Узлы автоматизированных установок изображены в нижней половине представления на фиг. 5. При этом речь может идти, например, о промышленной установке, в которой узлы 101, 201, 301 расположены пространственно вблизи друг от друга и на различных устройствах 100, 200, 300 автоматизированной установки. Также узлы могут быть предусмотрены в нескольких пространственно отдельных установках, которые, например, относятся к одному предприятию. Кроме того, изображенные на фиг. 5 узлы могут быть предусмотрены в сетях различных предприятий.
С помощью фиг. 5 можно видеть, что для узлов в облаке 150, как правило, в распоряжении имеется достаточный объем памяти. В узлах на устройствах 100, 200, 300 в автоматизированных установках, напротив, имеющаяся память является ограничивающим фактором.
Например, в первой автоматизированной установке предусмотрено Edge-устройство 100, которое служит в качестве шлюза между сетью автоматизации, которая осуществляет регулирование управления автоматизированными устройствами, и коммуникационной сетью в облаке 150. При этом Edge-устройство 100 осуществляет сбор данных автоматизированной системы, которые могут использоваться службой в облаке 150. Например, таким способом осуществляется сбор данных мониторинга, которые должны предоставляться в распоряжение для анализа больших данных в облаке 150. Например, Edge-устройство 100 обрабатывает собранные данные, прежде чем они будут отправлены в облако. При этом, например, зарегистрированные данные обезличиваются, или осуществляется сбор данных только из определенных временных интервалов, или предоставляются в распоряжение данные, отсортированные по временным интервалам.
В другой автоматизированной установке, например, предусмотрено Edge-устройство 200, которое дополнительно отвечает за зашифрованный обмен данными с облачной службой.
В другой автоматизированной установке, например, предусмотрено IoT-устройство 300, которое, например, управляет процессом упаковки и к тому же имеет коммуникационное соединение с оператором логистики посредством Интернет-соединения.
При этом общим для Edge-устройства 100, Edge-устройства 200 и IoT-устройства 300 является то, что имеющийся объем памяти является ограниченным. Таким образом, эти устройства заинтересованы в том, чтобы экономить объем памяти. На этих устройствах дополнительно реализуется приложение блокчейна согласно пятому примеру выполнения изобретения. При этом данные, которые относятся к действиям обслуживания или показателям качества, защищаются посредством блокчейна. Эти данные должны быть представлены в блокчейне доказуемо не подверженными манипуляциям.
Кроме того, описанные устройства, Edge-устройство 100, Edge-устройство 200 и IoT-устройство 300, применяются в производстве и обработке продукта в автоматизированной среде. Т.е., как правило, скорее недавняя история в зарегистрированных данных является локально релевантной. Данные из этого краткосрочного архива должны, таким образом, предпочтительно предоставляться на соответствующее устройство. Кроме того, блокчейн на соответствующем устройстве должен требовать по возможности меньше объема памяти. Эти требования удовлетворяются тем, что соответствующие узлы 101, 201, 301 на соответствующем устройстве 100, 200, 300 сохраняют соответственно укороченный блокчейн 11, 21, 31. В качестве укороченного блокчейна 11, 21, 31 могут использоваться вышеописанные блокчейны.
Имеются различные возможности, каким образом соответствующий узел 101, 201, 301 реализует укороченный блокчейн. Например, пока имеется достаточный объем памяти, блокчейн может поддерживаться регулярным, без его укорачивания. Как только определенная величина объема памяти становится занятой блокчейном, запускается механизм для укорочения блокчейна. При этом способе соответствующий узел на соответствующем устройстве имеет максимально возможное доступное количество блоков транзакций и тем самым также предпринятых транзакций, как, например, зарегистрированных данных по качеству, до тех пор, пока имеющийся объем памяти не станет недостаточным. Начиная с этого момента времени, например, регулярным образом часть блокчейна может удаляться, или, например, однократно большая часть блокчейна удаляется, пока пороговое значение занятости объема памяти не будет снова превышено.
В другом варианте, узел 101 из автоматизированной установки опрашивает состояние блокчейна регулярно из сети, например, так, что он осуществляет связь с узлом 152 в облаке и при этом удаляет нерелевантные блоки транзакций. Таким способом по существу заранее укороченный блокчейн сохраняется на Edge-устройстве 100.
Предпочтительным образом, предотвращается то, что блокчейн на узле, который осуществляет укорочение блокчейна, постоянно возрастает и таким образом приводит к переполнению памяти.
В частности, в случае промежуточных блоков, которые сами не содержат транзакций, а содержат только ссылку на последний  блок, а также предшествующему промежуточному блоку, след (занимаемый объем) промежуточного блока является постоянно малым. Прирост связанных в цепочку промежуточных блоков не представляет риска также для устройств с ограниченными ресурсами.
Удаление блоков предпочтительно осуществляется локально в узле блокчейна. В частности, тем самым любое количество находящихся в сети блокчейна NW устройств с их специфическими ограничениями в отношении имеющихся ресурсов могут гибко удалять различные временные диапазоны из локально сохраненного блокчейна. В случае укороченного блокчейна, также можно говорить об “урезанном” (очищенном) блокчейне, а в случае узла с укороченным блокчейном - об очищенном узле.
Предложенное изобретение обеспечивает возможность целенаправленного удаления и одновременно осознанного сохранения релевантных полезных данных, которые сохраняются в блокчейне в выбранном временном интервале, который может определяться посредством промежуточных блоков.
Укороченный блокчейн или очищенный узел имеет возможность вновь затребовать удаленные блоки от полного блокчейна или полного узла и связать в цепочку в соответствующих областях между выбранными для удаления промежуточными блоками. Это особенно предпочтительно, если данные из удаленной область блокчейна становятся релевантными для более позднего анализа, например, потому что заказчик продукта, который происходит из некоторой партии, хотел бы получить информацию для поставляемой партии. Кроме того, данные из удаленного диапазона могут потребоваться в качестве опорных данных для конфигурирования управляющей установки.
Кроме того, и в укороченных блокчейнах гарантируется, что актуальные транзакция являются локально доступными. Помимо того, что промежуточные блоки для удаления являются гибко выбираемыми, и поэтому более актуальные промежуточные блоки не должны выбираться, временной диапазон, который был сгенерирован после сгенерированного последним промежуточного блока, исключается из стирания данных.
Актуальные транзакции, таким образом, с доступностью их блоков в сети блокчейна немедленно доступны повсюду, т.е. запрос самых актуальных данных продукции доступен через облако точно так же, как и запрос исторических данных.
Исторические информации внутри сети блокчейна должны, таким образом, иметься только в узлах блокчейна, в которых они также релевантны, например, на серверах долгосрочного архива или в облаке. К тому же запуск, например, IoT-устройства, которое приводит в действие сокращенный или очищенный узел блокчейна, осуществляется с заметно более высоким быстродействием, потому что не требуется загружать удаленные области блокчейна.