بڕۆ بۆ ناوەڕۆکەکە
گەڕانەوە بۆ نیمچات

بنکەی زانیاری لە ژێر کابۆکەدا

پشتڕاستکردنەوەی دروستکردنەکە

سەرچاوە کراوە تەنها یارمەتیدەرە ئەگەر ئەو کۆدەی کە تۆ بەکاری دەهێنیت ئەو کۆدە بێت کە بووە بڵاوکراوەتەوە. نیمچات بە شێوەیەکی دیاریکراو دروستکراوە بۆ ئەوەی بتوانیت خۆت ئەوە بپشکنیت، لە ناوەوەی... ئەپ یان لە تێرمیناڵێکەوە.

بیناسازییە دووبارەبووەکان

دروستکردنی ئەپەکە a build-manifest.json کە کۆمیتی سەرچاوەی تێدایە، a هاشی SHA-256 لە هەر سەرمایەیەکی HTML، جاڤاسکڕێپت و CSS کە پێشکەش دەکرێت، و تاکە bundleHash لەسەر ئەو هەموو کۆمەڵە سەروەت و سامانە.

دەرچوونەکە تەنها بەندە بە ناوەڕۆکی سەرچاوە — تەنانەت کاتی دروستکردنی تۆمارکراویش بریتییە لە... مۆری کاتی commit نەک ئەو ساتەی کە دروستکردنەکە بەڕێوەچوو — بۆیە هەرکەسێک هەمان شت دروست بکاتەوە commit فایلەکانی هاوشێوەی بایت و هەمان شت بەدەست دەهێنێت bundleHash.

پاشان کردارێکی GitHub هەر پابەندبوونێک بە شێوەیەکی سەربەخۆ بنیات دەنێتەوە و واژۆی سەرچاوەی دروستکردن دەکات ئیسپاتەکان بۆ هاش و مانیفێستەکە، بۆیە تۆمارێکی واژۆکراو هەیە کە a bundleHash بۆ commit لە کۆگاکەدا، کە لەلایەن شتێکی ترەوە بەرهەم هێنراوە جگە لە... جێگیرکردن.

دیالۆگی About چی دەپشکنێت

دەربارەی لە سەردێڕەکەدا پشکنینەکە بە شێوەیەکی ڕاستەوخۆ جێبەجێ دەکات، لە وێبگەڕەکەتدا.

دیالۆگی Nymchat About، کە وەشانی پیشان دەدات، یەکپارچەیی دروستکردن و گەرەنتی دۆخی کەناری دەکات.
دیالۆگی دەربارەی: وەشانی، یەکپارچەیی دروستکردن، گەرەنتی canary و هێڵێکی ڕاستەوخۆ بۆ گەشەپێدەر.

هەر سەرمایەیەک کە لاپەڕەکە لە ڕاستیدا کاردەکات دووبارە دەهێنێتەوە، بە Web Crypto API هاش دەکات و... بەراورد دەکات لە بەرامبەر مانیفێست. پاشان — و ئەمە ئەو بەشەیە کە گرنگە — ئەوە دووبارە حیساب بۆ... bundleHash لە هاشەکانەوە ئەو تەنها حیساب کراوە نەک لە هەر شتێک کە مانیفێست ئیدیعای بکات، و لە ئیسپاتە واژۆکراوەکانی کۆگاکەدا سەیری ئەوە دەکات لە ڕێگەی GitHub API ەوە.

ئەوەش ئەوەیە کە بڵاوکردنەوەیەک لە گەرەنتیکردنی خۆی دەواسێت: خزمەتکردنی فایلە دەستکاریکراوەکان پێکەوە لەگەڵ... مانیفێستی هاوتاکردن هێشتا شکست دەهێنێت، چونکە هاشی دووبارە حیسابکراو هیچ ئیسپاتێکی نییە.

دۆخواتە
&پشکنین؛ ئەپی فەرمی پشتڕاستکراوە (n/n)هەر سەرمایەیەک هاوتا بێت، هاشی باندڵی دووبارە حیسابکراو لەلایەن کۆگاکەوە پشتڕاست دەکرێتەوە، و لاپەڕەکە لە دۆمەینی فەرمیەوە خزمەت دەکرێت.
⚠ Verified build · نەک ئەپی فەرمیکۆدەکە ڕاستەقینە و پشتڕاستکراوە، بەڵام ئەمە ئاوێنەیە لەسەر دۆمەینێکی تر. ئاوێنە ناتوانێت ئەم هۆشدارییە لاببات بەبێ ئەوەی پشتڕاستکردنەوە شکست بهێنێت.
✗ ناتەباییسەرمایەیەک هاش ناکات بەو شتەی کە مانیفێست دەیڵێت.
✗ دروستکردنی نافەرمیهاشی باندڵی دووبارە حیسابکراو هیچ ئیسپاتێکی لە کۆگاکەوە نییە — مانیفێستێکی خۆدروستکراو.
⚠ سەرچاوەی لێ ناگاتنەتوانرا بگاتە GitHub API، بۆیە نەتوانرا ئیسپاتیکردنەکە بە هیچ کام لەم دوو ڕێگایە بپشکنرێت.

پشتڕاستکردنەوەی خۆت

دووبارە دروستکردنەوەی commit the About دیالۆگ ناوەکان و بەراوردکردن:

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>"

هاشی چاپکراو دەبێت لەگەڵ هەردوو هاشی ناو دیالۆگی About و ئەو هاشەی ئەو commit's بگونجێت پوختەی ڕاکردنی build-provenance. هەروەها دەتوانیت ڕاستەوخۆ بە GitHub CLI واژۆکە بپشکنیت:

gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM

فەرمانی دەستگیرکردنەکە کەناری

گەرەنتی کاناری بریتییە لە لێدوانێک، کە لە خشتەی دیاریکراودا بڵاودەکرێتەوە، کە گەشەپێدەرەکە هەیەتی نەخێر فەرمانێکی نهێنی حکومەتیان وەرگرتووە کە ئاشکرایکردنیان قەدەغەیە — a نامەی ئاسایشی نیشتمانی، فەرمانێکی فیسا. دەتوانرێت گەشەپێدەر ناچار بکرێت بێدەنگ بێت لەبارەی... فەرمانێکی لەو جۆرە، بەڵام ناتوانرێت ناچار بکرێت درۆ بکات، بۆیە کەناری کۆنەبوون یان نەمانی وایە خۆی سیگناڵەکە.

لە... canary.json لە ڕەگی کۆگاکەدایە و ڕاستەوخۆ دەهێنرێت لە GitHub ەوە، بۆیە مێژووەکەی سەربەخۆیە لە هەر شتێک کە سایتی بڵاوکراوە دەیڵێت، وردبینی دەکرێت. دیالۆگی دەربارەی ڕەنگ کۆدی دەکات:

ڕەنگواتە
سەوز — هەموویان ڕووننواژۆکراو، ئێستا و واژۆکراوەکە لەگەڵ کلیلی گەشەپێدەرەکەدا دەگونجێت. تا ئێستا هیچ فەرمانێکی نهێنی پێ نەگەیشتووە.
زەرد — دواکەوتووە، یان هەمووی ڕوون نییەبە بەرواری دیاریکراوی خۆی، یان بە بەرواری دیاریکراوی خۆی تازە نەکرایەوە allClear ئاڵا درۆیە. فەرمانی بێدەنگ ناتوانرێت ڕەت بکرێتەوە.
سوور — واژۆی نادروست، یان نەماوەواژۆکە لەگەڵ کلیلی گەشەپێدەرەکەدا ناگونجێت، یان فایلەکە بە تەواوی لابراوە. ئەمە وەک هۆشدارییەکی جددی مامەڵەی لەگەڵ بکە.

لەنگەری تازەیی

کەناری واژۆکراو نوێترین بەرزی بلۆکی بیتکۆین و هاش لە ساتەوەختی واژۆکردندا جێگیر دەکات. ئەو هاشە پێش بوونی بلۆکەکە نەدەکرا بزانرێت، ئەمەش دەیسەلمێنێت کە کەنارییەکە بووە واژۆ کراوە دوای خاڵێکی دیاریکراو لە کاتی خۆیدا نەک چەند مانگێک پێشتر بە کۆی گشتی پێشوەختە واژۆ بکرێت. دیالۆگی About ئەنکرەکە بەستراوەتەوە بە بلۆک ئێکسپلۆرەرێکەوە بۆ ئەوەی بتوانیت پشکنین بکەیت.