Что происходит с платежом Rayls, если валидаторы отключаются во время перевода?

Я собрал Axyl, клиент консенсуса Rayls, из исходного кода, запустил 4 валидатора на ноутбуке и отключал их во время обработки платежей.

Один валидатор отключён: завершились все 240 из 240 платежей. Самая долгая пауза — 2,58 с.

Два валидатора отключены: цепочка остановилась, пока они не вернулись. Один узел всё ещё принял мой платёж за 15 мс без ошибки, а завершился он через 41 с. Все 45 платежей, отправленных во время этих сбоев, завершились через 8–69 с после отправки.

24 раза отправлял один и тот же nonce двум валидаторам: оба возвращали хеш, но в итоге завершался только один платёж. Двойного списания не было.

Итак, в этой конфигурации сеть приостанавливается, но не расходится на ветки. Вывод для приложений: полученный хеш не означает, что платёж прошёл.

В общедоступной тестовой сети у 150 платежей медианное время от отправки до получения квитанции составило 2,44 с, по данным одного клиента. Это включает около 0,4 с на сетевой обмен.

Ограничения: один ноутбук, только сбои, небольшие выборки, платежей в основной сети не было. После перезапуска один валидатор разошёлся с остальными во время раннего хаотичного прогона. Воспроизвести это не удалось; я сообщил о проблеме Rayls в частном порядке.

Данные и код: https://github.com/anshxft/rayls-axyl-failure-tests

Не является финансовой рекомендацией.+