Laktawan ti linaonna
Agsubli iti Nymchat

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.

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.

Ti dialogo ti Maipapan ti Nymchat, a mangipakpakita ti bersion, mangbangon ti integridad ken warrant ti kasasaad ti canary.
Ti Maipapan a dialogo: bersion, panagbangon ti kinatarnaw, warrant canary ken ti direkta a linia iti developer.

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.

EstadoKayat 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 appTi 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 panagtunosSaan nga ag-hash ti maysa nga asset iti kuna ti manifest.
✗ Di opisial a panagbangonTi nakumpirma manen a bundle hash ket awan ti pammaneknek manipud iti pagidulinan — ti bukod a naaramid a manipesto.
⚠ Di madanon ti nagtaudanTi 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:

MarisKayat a saoen
Berde — amin ket nalawagTi 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 nalawagSaan 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 awanenTi 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.