Stacks-lohkoketjuratkaisu
Bitcoinin toisen kerroksen lohkoketjuratkaisu Stacks ilmoitti 24. toukokuuta lohkojen tuotannon jatkumisesta sen jälkeen, kun se oli ratkaissut ongelmat Stacks-solmujen mempool-synkronointilogiikassa.
Samassa yhteydessä Stacks kehotti kaikkia solmujen operaattoreita, erityisesti kaivostyöläisiä ja allekirjoittajia, päivittämään solmuversiot uusimpaan 3.1.0.0.11-versioon. Kuitenkin päivityksessä varoitettiin mahdollisesta ”satunnaisesta heikkenemisestä” lohkojen tuotannossa, ennen kuin kaikki kaivostyöläiset ja allekirjoittajat ovat tehneet tarvittavat päivitykset.
Ongelman syy ja ratkaisu
Ilmoitus päivittämisestä julkaistiin vain tunteja sen jälkeen, kun ytinkehittäjät olivat tunnistaneet mahdollisen ongelman syyn. Alkuperäisessä jälkipuinnissa, joka jaettiin GitHubissa, Stacks-tiimi totesi:
”Virhe itsessään on peräisin vuodesta 2020 ja liittyy virheelliseen käyttäytymiseen Stacks-solmujen mempool-synkronointilogiikassa, mikä johtaa siihen, että jotkin solmut palauttavat virheellisiä viestejä normaalista mempool-synkronoinnista käytettäviin RPC-kutsuihin. Stacks-solmut, jotka kutsuvat tätä RPC:tä, sisältävät virheellistä logiikkaa, mikä tekee niiden verkosta reagoimattoman. Tämä ei ole ollut ongelma, ennen kuin tietoa on kulkenut huomattavasti enemmän viimeisten lohkojen läpi.”
Esiallisten havaintojen mukaan viimeisin päivitys on yhteensopiva chainstate-hakemistojen kanssa versioilla 3.x.x.x.x. Uuden päivityksen odotetaan lopulta ratkaisevan ongelman, jonka Stacks myönsi 18. huhtikuuta.
Kehittäjien toimet ja jatkotutkimus
Tuolloin Stacks-tiimi totesi, että ”yksinkertainen paikkaus” ratkaisee ongelman, eikä solmujen operaattoreiden tarvitse tehdä mitään erityistä. Kuitenkin Bitcoinin haarautumiseen liittyvä lohkojen tuotannon viive lohkossa 897442 sai kehittäjät aloittamaan uuden tutkimuksen 19. toukokuuta.
Kun 70 % allekirjoittajista palautui aikaisempaan chainstate-versioon, normaali lohkoketjun tuotanto jatkui, kunnes kehittäjät raportoivat jälleen viiveestä neljä päivää myöhemmin.