На данный момент я нашел 10 LoA в Firedancer и Agave, просто занимаясь делами во время работы или управляя валидаторами. Мой любимый случай до сих пор — это ошибка в Frankendancer, которая не позволяла узлам присоединяться к сети. В августе прошлого года был период примерно 8 часов, когда ни один узел Frankendancer не мог присоединиться к основной сети, хотя узлы, которые уже были онлайн, могли оставаться в сети. Это на самом деле помешало валидатору Cavey Cool присоединиться к сети, и мне пришлось вручную исправить это до того, как был выпущен официальный патч. Я не был первым, кто сообщил об этом, но это все равно очень интересный случай. Проблема заключалась в том, что при запуске валидатор считывал контактную информацию для всех валидаторов. Это включало имя валидатора, например, "Temporal Emerald". При копировании имени он копировал 64 байта из строки имени в массив байтов и обрезал остальные байты. Когда позже он пытался использовать эти байты как строку, возникла проблема: не каждый символ занимает один байт! Валидатор, который носил имя "pico🙄.sol💎+ Firedancer🔥💃 + DoubleZero + giveaways🎉" в то время имел символ 🎉, который занимал байты с 62 по 66, что вызвало сбой всех этих узлов при запуске, когда символ был обрезан. Исправление было простым: обновить логику обрезки, чтобы учитывать utf-8, обрезая раньше в строке, если символ должен быть обрезан.