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

143 lines
9.9 KiB
Markdown

# 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.