Batayan ti pannakaammo Iti sirok ti hood
Panangpaneknek ti build
Makatulong laeng ti open source no ti code nga ipatpataraymo ket isu ti code nga idi naipablaak. Ti Nymchat ket naibangon a deterministiko tapno mabalinmo a kitaen a mismo dayta, manipud iti uneg ti app wenno manipud iti terminal.
Daytoy a panid ket naipatarus babaen ti makina para iti kombeniente. Ti Ingles nga orihinal ti bersion nga agaplikar.
Dagiti maulit-ulit a panagbangon
Ti panangibangon ti app ket mangiruar iti a build-manifest.json naglaon ti source commit, a
SHA-256 hash ti tunggal naiserbi nga HTML, JavaScript ken CSS asset, ken maymaysa
bundleHash iti rabaw dayta sibubukel nga asset set.
Ti rimmuar ket agpannuray laeng iti taudan a linaon — urayno ti nairekord nga oras ti panagbangon ket ti
ti timestamp ti commit imbes a ti kanito a nagtaray ti panagbangon — isu nga siasinoman a mangbangbangon manen iti isu met laeng
ti commit ket makaala kadagiti byte-identical a file ken isu met laeng bundleHash.
Kalpasanna ti maysa a GitHub Action ket mangbangon manen ti tunggal maysa a panagkumit nga agwaywayas ken agpirma ti build-provenance
dagiti pammaneknek para iti hash ken ti manipesto, isu nga adda napirmaan a rekord a mangisilpo iti a
bundleHash iti maysa a panagkumit iti pagidulinan, a pinataud babaen ti maysa a banag malaksid ti
pannakaipakat.
Ania ti sukimaten ti dialogo ti Maipapan
Maipapan iti header patarayen ti tseke a sibibiag, iti browsermo.
Daytoy ket mangala manen ti tunggal maysa nga asset nga aktual nga agtartaray ti panid, i-hash daytoy babaen ti Web Crypto API, ken
idilig maibusor iti naiparangarang. Kalpasanna — ket daytoy ti paset a napateg — dayta
kuentaenna manen ti bundleHash manipud kadagiti hashes daytoy nakuenta laeng, saan a manipud
aniaman nga ibagbaga ti manipesto, ken kitaenna dayta kadagiti napirmaan a pammaneknek ti pagidulinan
babaen ti GitHub API.
Dayta ti mangpasardeng ti maysa a deployment manipud iti panag-vouching para iti bagina: panagserbi kadagiti nabaliwan a file a kadua ti ti panagtunos a manipesto ket mapaay pay laeng, gapu ta ti nakumpirma manen a hash ket awan ti pammaneknek.
| Estado | Kayat a saoen |
|---|---|
| &kitaen; Naberipikado nga opisial nga app (n/n) . | Tunggal asset ket agpapada, ti nakuenta manen a bundle hash ket paneknekan babaen ti pagidulinan, . ken ti panid ket naserbian manipud iti opisial a dominio. |
| ⚠ Verified build · saan nga opisial nga app | Ti kodigo ket pudno ken napaneknekan, ngem daytoy ket sarming iti sabali a dominio. Saan a maikkat ti sarming daytoy a pakdaar no saan a mapaay ti panangpaneknek. |
| ✗ Di panagtunos | Saan nga ag-hash ti maysa nga asset iti kuna ti manifest. |
| ✗ Di opisial a panagbangon | Ti nakumpirma manen a bundle hash ket awan ti pammaneknek manipud iti pagidulinan — ti bukod a naaramid a manipesto. |
| ⚠ Di madanon ti nagtaudan | Ti GitHub API ket saan a naabot, isu a ti pammaneknek ket saan a nasukimaten iti uray ania a wagas. |
Panangpaneknek a mismo iti dayta
Bangonen manen ti commit dagiti nagan ti dialogo ti Maipapan ken idilig:
git clone https://github.com/Spl0itable/NYM
cd NYM
git checkout <commit shown in the About dialog>
npm ci
npm run build # prints "Build hash: <bundleHash>"
Ti naimaldit a hash ket rumbeng nga agpada a maipada ti adda iti Maipapan a dialogo ken ti adda iti dayta a panagkumit build-provenance run ti pakagupgopan. Mabalinmo pay a kitaen ti pirma a direkta babaen ti GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
Ti warrant canary
Ti warrant canary ket maysa a statement, a naipablaak iti naikeddeng nga eskediul, nga adda iti developer saan nakaawat iti nalimed a bilin ti gobierno a maiparitda nga ipalgak — a Surat ti Nailian a Seguridad, maysa a bilin ti FISA. Mabalin a mapilit ti developer nga agulimek maipapan iti kasta nga bilin, ngem saan a mapilit nga agulbod, isu a ti canary going stale wenno disappearing ket a mismo ti signal.
Agnanaed dayta iti canary.json iti ramut ti pagidulinan ken direkta a maala
manipud iti GitHub, isu a ti pakasaritaanna ket ma-audit nga agwaywayas iti ania man nga ibaga ti naipakat a site.
Ti Maipapan a dialogo ket mangikodigo ti kolor iti daytoy:
| Maris | Kayat a saoen |
|---|---|
| Berde — amin ket nalawag | Ti napirmaan, agdama, ken ti pirma ket maitunos iti tulbek ti developer. Awan pay ti naawat a nalimed a bilin. |
| Duyaw — overdue, wenno saan nga amin ket nalawag | Saan a na-refresh dayta babaen ti naibaga a petsana, wenno ti allClear bandera ket ulbod. Saan a mailaksid ti naulimek a bilin. |
| Nalabbaga — saan nga umiso a pirma, wenno awanen | Ti pirma ket saan a maitunos iti tulbek ti developer, wenno ti file ket naikkat nga interamente. Tratuem daytoy kas serioso a pakdaar. |
Ti angkla ti kinapresko
Ti napirmaan a canary ket mangikabil ti kaudian a kangato ti bloke ti Bitcoin ken hash iti kanito ti panagpirma. Saan koma a naammuan dayta a hash sakbay nga adda ti bloke, a mangpaneknek a kasta ti canary nagpirma kalpasan maysa nga espesipiko a punto ti panawen imbes a nasaksakbay a napirmaan iti bulk a bulan sakbayna. Ti dialogo ti Maipapan ket mangisilpo ti angkla iti maysa a bloke nga eksplorador tapno mabalinmo a sukimaten daytoy.