aere-node/IMPORT-PROOF-STARE-2026-08-15.md
Aere Network 94438cd8f1 A package-built node has now imported chain 2800 from block 0 to the live tip, with zero anchor rejections
Reaching the tip needed two historical facts encoded, and the second one was
not in the original hypothesis.

First, the disarmed window: 36 anchor heights (13,267,824 to 13,268,944) whose
blocks carry an attached certificate but no digest, and whose signer indices are
not strictly increasing, produced while anchoring was disarmed fleet-wide to
unblock the chain after an incident. Encoded as a named list of historical
windows with fixed bounds in code, after the precedent of the base-fee lapse
windows: inside, the header is accepted as written; outside, nothing changes.

Second, the recovery, found by measuring rather than guessing. After the
emergency re-arm the fleet ran for a stretch with a lowered seal threshold, so
proposers legitimately wrote shorter certificates. Its extent was measured by
reading 25,252 anchor heights one at a time, with NO binary search, because the
property is not monotone: only about 15 percent of heights are affected and the
largest gap between two affected heights is 44, so a binary search would have
returned an answer that looks exactly like a good one. Result: 13,268,976 to
13,890,544, thresholds measured at 1 or 2, never 0.

The second window relaxes the seal COUNT only. Digest binding and index
ordering stay enforced and every seal is still verified. Widening the disarmed
window to cover both would have been easier and would have thrown away
certificate binding on 19,425 anchor heights, which is the one property the
anchor exists for.

Negative control in four directions, because an exception can fail both ways:
the window predicate forced always-false turns 10 tests red; forced always-true
turns 39 red, of which 22 are pre-existing strictness tests, making the
exception swallowing the chain visible; the historical threshold emptied turns 7
red; pinned at 1 turns 8 red. Restored: 641 tests, 0 failures, counted from XML.

Patch verified on a pristine upstream checkout, alone and in series, and the
resulting tree compiles.
2026-08-16 02:00:01 +03:00

9.9 KiB

Dovada de import a pachetului public: cat s-a dovedit si unde s-a oprit, 15 august 2026

Un nod construit DOAR din pachetul public (petice 0001+0003+0004+0005 pe amonte pristin d2032017, build verde JDK 21) a fost pus sa sincronizeze chain 2800 de la blocul 0, pe laptop, in timpul zilei lui H. Ce s-a dovedit, masurat, si unde s-a oprit, scris cinstit.

DOVEDIT

  • Sincronizare de la geneza pana in era ancorei. Nodul a importat de la blocul 0, a traversat fork-ul precompilelor (9.189.161, reparat de peticul 0005: izolarea Osaka + EIP-2935) si fork-ul pragului de taxa (10.141.734, peticul 0004), fara divergenta, ~13 milioane de blocuri.
  • Garda registrului fail-closed, exact cum promite. La 13.014.000 nodul FARA registre a refuzat sa importe (AERE-PQC-REG-BLOCK-01), cu mesajul care spune operatorului sa instaleze registrul numit LA ACEA inaltime, nu mai devreme. Instalate registrele publice (aduse intern, amprente verificate), nodul le-a legat: 7 chei la 13.014.000, 9 la 13.600.000, fiecare rand cu dovada de posesie Falcon verificata, "correctly staged for the activation".

UNDE S-A OPRIT, si e o CONSTATARE, nu un simplu esec

  • La blocul 13.014.000, prima ancora reala (extraData 2515 octeti, certificat cu index 0), regula PqAnchorSealsRule din binarul PUBLIC respinge blocul: "certificate carries index 0, which the registry does not bind to any validator address".
  • Dar registrul pe care nodul insusi l-a legat (manifest-13014000.json) CONTINE cheia 0 (campuri "0".."6", 7 chei, bindHeight 13014000, hash canonic 0xa96ac96d... care e chiar hash-ul cerut de lant). Si productia (binarul de productie) valideaza acest bloc perfect, de doua luni.
  • Deci binarul PUBLIC leaga registrul intr-un fel si il CITESTE in regula de sigilii in alt fel: legarea vede cheia 0, regula spune ca indexul 0 e nelegat. Aceeasi clasa de defect: doua implementari ale aceleiasi idei care diverg. Peticul 0003 public difera de sursa de productie in maparea index -> adresa la validare.

CE INSEAMNA

Aceasta e o piesa de dovada, nu o rusine: pachetul public inca NU reproduce validarea ancorei bit cu bit fata de productie, si o stim fiindca am incercat pe bune, nu fiindca am presupus. Sute de teste unitare verzi nu au prins-o; un import de la geneza a prins-o intr-o seara, a doua oara cand aceeasi metoda ne salveaza (prima data: binarul care ingheta nodul, gasit tot prin import real). Reparatia (alinierea maparii index din peticul 0003 cu sursa de productie) e o sesiune de binar dedicata, cu control negativ, nu o carpeala in focul serii.

RUN-A-NODE.md poarta deja avertismentul corect: aplica 0001+0003+0004+0005 si trateaza build-ul ca urmaritor pana la o dovada de import completa. Aceasta dovada de import a ajuns pana la prima ancora si a gasit exact veriga care lipseste. Constatarea intra in registru.

Adus la zi 15 august, noaptea

  • Cauza, gasita si dovedita in aceeasi seara: un decalaj de un bloc la granita orarului. Regula sigiliilor judeca certificatul purtat de blocul primei ancore H intreband registrul la inaltimea PARINTELUI, H-1, fiindca aceea e inaltimea peste care se semneaza sigiliile. Orarul registrelor leaga insa INCLUSIV de la H, deci la H-1 nu leaga nimic, si ambele cautari pe inaltime cadeau pe registrul de cap, care pe un nod sincronizat de la geneza e gol. Nu era o divergenta de continut a maparii index catre adresa, cum banuia sectiunea de mai sus: era intrebarea pusa cu un bloc mai jos decat singura intrare care putea raspunde.
  • Reparatia minima, in FalconSealSupport, pe amandoua drumurile (cheie si adresa): cand orarul are o intrare la EXACT blockNumber+1, raspunsul vine din registrul legat si verificat al acelei intrari, nu din fisierul de cap neverificat. Granita e exact un bloc: cu doua sau mai multe blocuri sub orar nu se schimba nimic.
  • Dovada, masurata, nu presupusa: nodul construit din pachete a trecut de 13.014.000 si a mers peste 25.000 de blocuri fara nicio respingere, trecand si de treapta cu prag 3 de la 13.034.000. Suitele modulelor de consens: 608 teste, zero esecuri, inclusiv testul nou PqParentHeightAlignmentTest, construit pe forma nodului public (cap gol, registrul doar ca istorie). Control negativ facut: cu conditia dezarmata, exact proba granitei iese rosie; cu ea la loc, verde.
  • Peticul 0003 publicat poarta acum reparatia, regenerat din amonte pristin, cu aceeasi lista de fisiere plus testul nou, si se aplica curat in seria 0001, 0003, 0004, 0005. Avertismentul din RUN-A-NODE.md ramane pana la o dovada de import completa pana la varf.
  • Unde a ajuns rularea dupa reparatie, scris cinstit: nodul a mers de la 13.014.000 pana la 13.267.729, adica 253.729 de blocuri prin era ancorei, cu zero respingeri de certificat, si s-a oprit acolo la o granita NOUA, separata de cea reparata: blocuri din banda urmatoare poarta certificat atasat dar vanityData e sirul obisnuit al clientului, nu digestul, la inaltimi pe care configuratia statica a nodului le considera inaltimi de ancora, si regula digestului le refuza. Productia a acceptat acele blocuri la vremea lor, deci pachetul public inca nu reproduce si acest interval; e urmatoarea veriga de investigat, cu aceeasi metoda.

Cauza granitei de la 13.267.729, gasita 16 august (masurata pe lantul viu)

Nu e un defect al regulii si nu e alt interval de ancorare. Intervalul e acelasi, 32 de blocuri aliniate pe prima ancora. Ce e diferit e o fereastra istorica in care ancorarea a fost dezarmata intentionat pe intreaga flota, ca sa se deblocheze lantul dupa un incident.

Masurat pe lantul public, citind vanityData bloc cu bloc:

ultima ancora CU digest inainte de fereastra   13.267.792
ancore FARA digest (poarta sirul clientului)   13.267.824 .. 13.268.944, 37 de inaltimi
prima ancora CU digest dupa fereastra          13.268.976

Toate cele 37 poarta certificat de sigilii atasat (anteturi de 2620-3282 de octeti), deci atasarea sigiliilor mergea; numai ancorarea digestului era oprita. Cele doua sunt comutatoare diferite, si aceasta fereastra e dovada pe lantul viu ca se pot afla in stari diferite.

Ce s-a intamplat, pe scurt: o repornire a mai multor validatori intr-o fereastra scurta i-a lasat pe toti fara sigilii auzite in acelasi timp, iar urmatoarea inaltime era chiar o inaltime de ancora cu prag, deci niciun nod nu putea propune. Deblocarea a fost dezarmarea ancorei pe toata flota, ceea ce a repornit lantul imediat. Blocurile produse cat timp ancora era dezarmata poarta, in plus, indici de semnatari care nu cresc strict, fiindca ordonarea canonica se aplica pe calea de ancorare.

De ce conteaza pentru cine ruleaza un nod: aceste 37 de inaltimi sunt istorie reala si imuabila a lantului. Un nod care sincronizeaza de la geneza le intalneste si le refuza, corect, daca poarta o singura configuratie de ancorare. Nodurile care rulau atunci nu se impiedica fiindca au deja blocurile in baza si nu le revalideaza. Deci pachetul public are nevoie de ferestrele istorice de ancorare dezarmata, numite cu margini exacte, in care regulile de ancorare accepta antetul asa cum e, exact ca ferestrele de exceptie ale pragului de taxa pe care al doilea client le poarta deja. Reparatia e in lucru; pana e dovedita prin import dincolo de fereastra, aceasta sectiune spune limita in loc sa o ascunda.

DOVADA COMPLETA: nodul din pachete a ajuns la varf, 16 august

Un nod construit numai din pachetele publice a importat lantul 2800 de la blocul 0 pana la varful viu, si acum il urmareste. Ultima inaltime atinsa in aceasta rulare: 14.088.211, si nodul raporta ca nu mai sincronizeaza, adica prinsese varful. Zero respingeri de ancora, zero esecuri de import, zero nepotriviri de stare. A trecut de fereastra dezarmata, de inaltimea consensului blocant complet, si a prins varful.

Ca sa ajunga acolo au trebuit doua lucruri, si al doilea nu era in ipoteza initiala.

Intai, fereastra in care ancorarea a fost dezarmata, descrisa mai sus: 36 de inaltimi de ancora, 13.267.824 pana la 13.268.944, in care blocurile poarta certificat atasat dar nu poarta digest, si in care indicii semnatarilor nu cresc strict. Rezolvata cu o lista de ferestre istorice numite, cu margini fixe in cod, dupa modelul ferestrelor de exceptie ale pragului de taxa: inauntru antetul se accepta asa cum e, in afara nu se schimba absolut nimic.

Apoi, recuperarea de dupa incident, gasita masurand, nu ghicind. Dupa rearmarea de urgenta flota a mers o vreme cu pragul de sigilii coborat, deci propunatorii au scris legitim certificate mai scurte. Intinderea ei s-a masurat citind 25.252 de inaltimi de ancora una cate una, fara cautare binara, fiindca proprietatea nu e monotona: doar ~15 la suta din inaltimi sunt atinse si cea mai mare distanta intre doua atinse e de 44 de inaltimi, deci o cautare binara ar fi dat un raspuns care arata exact ca unul bun. Rezultatul: 13.268.976 pana la 13.890.544, 19.425 de inaltimi, cu praguri masurate de 1 sau 2, niciodata 0.

Relaxarea celei de-a doua ferestre atinge NUMAI numarul de sigilii. Legarea digestului si ordonarea indicilor raman impuse, si fiecare sigiliu e in continuare verificat. Alternativa lenesa, largirea ferestrei dezarmate ca sa le acopere pe amandoua, ar fi aruncat legarea certificatului pe 19.425 de inaltimi de ancora. Aceea ar fi fost o reparatie care sterge exact proprietatea pentru care exista ancora.

Controlul negativ, in patru directii, fiindca o exceptie poate gresi in ambele sensuri: predicatul de fereastra fortat mereu fals inroseste 10 probe (ce e inauntru nu mai e acceptat); fortat mereu adevarat inroseste 39, dintre care 22 sunt probe de strictete care existau dinainte, adica se vede negru pe alb exceptia inghitind lantul; pragul istoric golit inroseste 7; pragul istoric fixat la 1 inroseste 8. Repus, totul verde: 641 de probe, 0 esecuri, numarate din XML.

Peticul publicat poarta amandoua ferestrele si a fost verificat pe un checkout pristin al amontelui, singur si in serie, iar arborele rezultat compileaza.