СПОСОБЫ И УСТРОЙСТВО ДЛЯ РАСПРЕДЕЛЕННОЙ БАЗЫ ДАННЫХ, КОТОРАЯ ПОЗВОЛЯЕТ УДАЛЯТЬ СОБЫТИЯ

1. Устройство, содержащее:
память, связанную с экземпляром распределенной базы данных на вычислительном устройстве, приспособленном для включения во множество вычислительных устройств, которые реализуют распределенную базу данных посредством сети, функционально соединенной с множеством вычислительных устройств, при этом множество вычислительных устройств связано с первой конфигурацией протокола консенсуса событий, связанного с распределенной базой данных; и
процессор, функционально соединенный с памятью,
при этом процессор приспособлен для:
приема набора событий с набора вычислительных устройств из множества вычислительных устройств, при этом каждое событие из набора событий связано с (1) набором транзакций и (2) номером принятого раунда,
определения порядка для каждого события из набора событий на основе:
(1) первой конфигурации протокола консенсуса событий, когда номер принятого раунда, связанный с тем событием, не превышает порог номера принятого раунда, идентифицированный экземпляром распределенной базы данных, и
(2) второй конфигурации протокола консенсуса событий, когда номер принятого раунда, связанный с тем событием, превышает порог номера принятого раунда,
определения текущего состояния, связанного с экземпляром распределенной базы данных, на основе порядка, определенного для каждого события из набора событий,
генерирования подписанного состояния, связанного с экземпляром распределенной базы данных, на основе значения хеша, связанного с текущим состоянием, при этом значение хеша подписано с помощью цифровой подписи с использованием закрытого ключа, связанного с первым вычислительным устройством,
отправки сигнала для внесения в экземпляр распределенной базы данных события, которое содержит транзакцию, указывающую на подписанное состояние.
2. Устройство по п. 1, отличающееся тем, что вычислительное устройство представляет собой первое вычислительное устройство, и множество вычислительных устройств представляет собой первое множество вычислительных устройств, которые реализуют распределенную базу данных во время первого периода времени, при этом порог номера принятого раунда определен на основе принятого раунда события, которое содержит транзакцию для добавления второго вычислительного устройства в первое множество вычислительных устройств для определения второго множества вычислительных устройств.
3. Устройство по п. 1, отличающееся тем, что вычислительное устройство представляет собой первое вычислительное устройство, и множество вычислительных устройств представляет собой первое множество вычислительных устройств, которые реализуют распределенную базу данных во время первого периода времени, при этом порог номера принятого раунда определен на основе номера принятого раунда события, которое содержит транзакцию для удаления второго вычислительного устройства из первого множества вычислительных устройств для определения второго множества вычислительных устройств.
4. Устройство по п. 1, отличающееся тем, что вычислительное устройство представляет собой первое вычислительное устройство из множества вычислительных устройств, и каждое вычислительное устройство из множества вычислительных устройств находится в логической связи с величиной доли, используемой в протоколе консенсуса событий,
при этом порог номера принятого раунда определен на основе номера принятого раунда события, которое содержит транзакцию для изменения величины доли, находящейся в логической связи со вторым вычислительным устройством из множества вычислительных устройств.
5. Устройство по п. 1, отличающееся тем, что порог номера принятого раунда представляет собой первый порог номера принятого раунда, и текущее состояние представляет собой первое состояние, связанное с экземпляром распределенной базы данных, при этом процессор дополнительно приспособлен для:
определения второго порога номера принятого раунда, соответствующего номеру принятого раунда события из набора событий, которое содержит транзакцию для обновления первого состояния экземпляра распределенной базы данных, при этом второй порог номера принятого раунда связан с третьей конфигурацией протокола консенсуса событий, при этом второй порог номера принятого раунда превышает первый порог номера принятого раунда,
при этом процессор приспособлен для определения порядка для каждого события из набора событий на основе:
второй конфигурации протокола консенсуса событий, когда номер принятого раунда, связанный с тем событием, превышает второй порог номера принятого раунда и не превышает второй порог номера принятого раунда,
третьей конфигурации протокола консенсуса событий, когда номер принятого раунда, связанный с тем событием, превышает второй порог номера принятого раунда.
6. Устройство по п. 1, отличающееся тем, что процессор приспособлен для определения текущего состояния, связанного с экземпляром распределенной базы данных, путем выполнения набора транзакций, связанных с каждым событием из набора событий в подпорядке, соответствующем порядку, в котором тот набор транзакций установлен в том событии.
7. Устройство по п. 1, отличающееся тем, что вычислительное устройство представляет собой первое вычислительное устройство из множества вычислительных устройств,
при этом порог номера принятого раунда определен на основе номера принятого раунда события, которое содержит изменение программного обеспечения, связанное с протоколом консенсуса событий.
8. Устройство, содержащее:
память, связанную с экземпляром распределенной базы данных на первом вычислительном устройстве, приспособленном для включения во множество вычислительных устройств, которые реализуют распределенную базу данных посредством сети, функционально соединенной с множеством вычислительных устройств,
процессор, функционально соединенный с памятью,
при этом процессор приспособлен для:
приема события со второго вычислительного устройства из множества вычислительных устройств, при этом событие представляет собой последовательность байтов, связанных с набором событий-родителей, при этом каждое событие-родитель из набора событий-родителей связано со (1) значением хеша и (2) значением созданного раунда,
исключения принятого события из определения порядка событий, когда по меньшей мере один из первого критерия или второго критерия удовлетворен, при этом первый критерий удовлетворен, когда:
(1) по меньшей мере одно событие-родитель из набора событий-родителей не имеет идентификатора в экземпляре распределенной базы данных, и
(2) по меньшей мере одно событие-родитель связано со значением созданного раунда, которое превышает первый порог созданного раунда, и
второй критерий удовлетворен, когда:
(1) первый критерий не удовлетворен, и
(2) каждое событие-родитель из набора событий-родителей связано со значением созданного раунда, которое меньше, чем второй порог созданного раунда, и
сохранения события в экземпляре распределенной базы данных, если событие не было исключено на основе первых критериев или вторых критериев.
9. Устройство по п. 8, отличающееся тем, что первый порог созданного раунда основан на текущем номере принятого раунда, идентифицированном экземпляром распределенной базы данных.
10. Устройство по п. 8, отличающееся тем, что второй порог созданного раунда основан на текущем номере принятого раунда, идентифицированном экземпляром распределенной базы данных.
11. Устройство по п. 8, отличающееся тем, что первый порог созданного раунда соответствует второму порогу созданного раунда.
12. Устройство по п. 8, отличающееся тем, что первый порог созданного раунда отличается от второго порога созданного раунда.
13. Устройство по п. 8, отличающееся тем, что принятое событие содержит набор транзакций, при этом принятое событие исключают из определения порядка событий в первый момент времени, и набор транзакций выполняют во второй момент времени до первого момента времени.
14. Устройство, содержащее:
память, связанную с экземпляром распределенной базы данных на первом вычислительном устройстве, приспособленном для включения во множество вычислительных устройств, которые реализуют распределенную базу данных посредством сети, функционально соединенной с множеством вычислительных устройств,
процессор, функционально соединенный с памятью,
при этом процессор приспособлен для:
сохранения в памяти указания о первом наборе событий из группы событий, определенных вторым вычислительным устройством из множества вычислительных устройств, при этом каждое событие из группы событий содержит последовательность байтов, связанных с (1) порядковым значением и (2) упорядоченным набором транзакций,
отправки запроса синхронизации на третье вычислительное устройство из множества вычислительных устройств, при этом запрос синхронизации содержит первый идентификатор и второй идентификатор, при этом первый идентификатор идентифицирует событие из первого набора событий, связанных с порядковым значением, которое меньше, чем порядковое значение, связанное с каждым из остальных событий из первого набора событий, при этом второй идентификатор идентифицирует событие из первого набора событий, связанных с порядковым значением, которое больше, чем порядковое значение, связанное с каждым из остальных событий из первого набора событий,
приема с третьего вычислительного устройства в ответ на запрос синхронизации второго набора событий из группы событий, определенных вторым вычислительным устройством,
сохранения в памяти указания о втором наборе событий, при этом каждое событие из второго набора событий не включено в первый набор событий,
определения текущего состояния экземпляра распределенной базы данных на основе (1) протокола консенсуса событий, (2) первого набора событий и (3) второго набора событий,
генерирования подписанного состояния экземпляра распределенной базы данных на основе значения хеша, связанного с текущим состоянием, при этом значение хеша подписано с помощью цифровой подписи с использованием закрытого ключа, связанного с первым вычислительным устройством,
отправки сигнала для внесения в экземпляр распределенной базы данных события, которое содержит транзакцию, указывающую на подписанное состояние,
приема с набора вычислительных устройств из множества вычислительных устройств указания о согласии, которое связано с событием, которое содержит транзакцию, указывающую на подписанное состояние, и
удаления из памяти, и на основе указания о согласии, указания о первом наборе событий и указания о втором наборе событий.
15. Устройство по п. 14, отличающееся тем, что процессор приспособлен для приема указания о согласии на основе определения того, что количество цифровых подписей, связанных с подписанным состоянием и связанных с набором вычислительных устройств из множества вычислительных устройств, достигло порогового значения подписей.
16. Устройство по п. 14, отличающееся тем, что текущее состояние представляет собой первое состояние, связанное с первым номером раунда, и процессор приспособлен для генерирования первого состояния в первый момент времени, при этом процессор дополнительно приспособлен для:
генерирования второго состояния экземпляра распределенной базы данных во второй момент времени после первого момента времени, и при этом второе состояние связано со вторым номером раунда, превышающим первый номер раунда.
17. Устройство по п. 14, отличающееся тем, что текущее состояние соответствует состоянию экземпляра распределенной базы данных, сгенерированному за счет выполнения множества транзакций, сортированных на основе порядка консенсуса третьего набора событий, при этом каждое событие из третьего набора событий связано с упорядоченным набором транзакций из множества транзакций, при этом третий набор событий содержит первый набор событий и второй набор событий.