diff --git a/docs/solutions/integration-issues/sanitizer-test-research.md b/docs/solutions/integration-issues/sanitizer-test-research.md index 7907be98dc7..bc3374e2f10 100644 --- a/docs/solutions/integration-issues/sanitizer-test-research.md +++ b/docs/solutions/integration-issues/sanitizer-test-research.md @@ -66,6 +66,10 @@ | 50 | Smart quote double-wrapping in YAML frontmatter | pl #17445 | `summaryPoint1: ""text""` -- value had smart quotes `\u201C...\u201D`; `quoteFrontmatterNonAscii` saw non-ASCII, didn't recognize smart quotes as existing quoting, wrapped in straight quotes producing double-wrapping | Critical -- breaks YAML parsing | | 51 | Extra spaces around `=` in JSX attributes | pl #17445 | `` -- Crowdin introduces spaces around `=` in href and other JSX attributes; no sanitizer function normalizes this | High -- may break strict MDX parsers | | 52 | Orphaned opening backtick with missing closer | pl #17445 | `` `(...). `` -- opening backtick with no closing backtick; `repairUnclosedBackticks` needs English comparison and may miss cases where English also has backticks but the translated line lost one | High -- exposed MDX tags | +| 53 | Crowdin misplaces closing backtick before JSX fragment closer | sw #17521 | EN: `` (`<> ... `) `` -> SW: `` (`<> ...` ) `` -- Crowdin moves closing backtick before ``, then `escapeMdxAngleBrackets` escapes the exposed `` as `\`. Fix: detect `` `` ) `` pattern and move closing backtick to include `` | Critical -- breaks MDX display | +| 54 | Double punctuation after orphaned tag removal | sw #17521 | `kutoa..` -> `kutoa..` -- `removeOrphanedClosingTags` strips orphaned `` tags but leaves behind double periods where the tag sat between two periods. Fix: collapse `..` to `.` after orphan removal | Low -- cosmetic but noticeable | +| 55 | Escaped quotes `\"` in MDX JSX attributes | sw #17521 | `` -- Crowdin backslash-escapes quotes in JSX attributes; valid in JSON but breaks MDX compilation | Critical -- breaks build | +| 56 | Translated interpolation placeholders in JSON | sw #17521 | EN: `{days}` -> SW: `{siku}` -- Crowdin translates the variable name inside `{}` braces; the app expects the English key name | Critical -- breaks rendering | ## Patterns Already Handled by Sanitizer (Confirmed Working) diff --git a/public/content/translations/sw/about/index.md b/public/content/translations/sw/about/index.md new file mode 100644 index 00000000000..3eb1dd7f80a --- /dev/null +++ b/public/content/translations/sw/about/index.md @@ -0,0 +1,134 @@ +--- +title: "''Kuhusu sisi.''" +description: "''Kuhusu timu, jamii, na dhamira ya ethereum.org" +lang: sw +--- + +# Kuhusu ethereum.org {#about-ethereumorg} + +''ethereum.org ni chanzo-wazi cha umma kwa ajili ya jamii ya Ethereum ambacho mtu yeyote anaweza kuchangia.''. ''Tuna timu ndogo ya msingi iliyejitolea kudumisha na kuendeleza kurasa za mtandao, kwa michango kutoka kwa maelfu ya wanajamii duniani kote.''. + +**Hakuna mtu yeyote kutoka ethereum.org atakayewasiliana nawe kamwe. Usijibu.** + +## Tanbihi kuhusu majina {#a-note-on-names} + +''Ni jambo la kawaida kwa watu kuchanganya majina ndani ya mazingira ya Ethereum, jambo ambalo linaweza kusababisha mitazamo isiyo sahihi kuhusu jinsi Ethereum inavyofanya kazi.''. ''Hapa kuna ufafanuzi mfupi wa kusaidia kufafanua maswala.'': + +### Ethereum {#ethereum} + +''Ethereum ni wavu wa umma, msururu wa vizuizi, na itifaki ya wazi -unaotumika, kuongozwa, kuendeshwa na kumilikiwa na jamii ya kimataifa yenye maelfu ya watengenezaji, waendeshaji wa kituo, wenye ETH na watumiaji.''. + +[Zaidi kuhusu Ethereum](/what-is-ethereum/) + +[Zaidi kuhusu utawala wa Ethereum](/governance/) + +### Ether (ETH) {#ether-or-eth} + +''Ether (maarufu pia kwa kifupi chake cha biashara, ETH) ni sarafu asili inayotumika katika miamala ya Ethereum.''. ''ETH inastahili kulipia matumizi ya wavu wa Ethereum ( kwa njia ya ada za miamala).''. ''ETH pia hutumika kulinda mtandao kupitia kuweka dhamana.''. ''Wakati watu wanazungumza kuhusu bei ya Ethereum, wanamaanisha ETH kama mali.''. + +[Zaidi kuhusu ETH](/what-is-ether/) + +[Zaidi kuhusu kuhodhi ETH](/staking/) + +### Msingi wa Ethereum {#ethereum-foundation} + +Shirika lisilo la faida, lililofadhiliwa awali na uuzaji wa watu wengi wa ETH, inayojitolea kwa usaidizi wa mtandao wa Ethereum na mfumo wa ikolojia. + +[Zaidi kuhusu Msingi wa Ethereum](/foundation/) + +### ethereum.org {#ethereum-org} + +Tovuti ya umma, chanzo-wazi na rasilimali ya elimu kwa jumuiya ya Ethereum. ethereum.org inaongozwa na timu ndogo ya msingi, inayofadhiliwa na msingi wa Ethereum, kwa michango kutoka kwa maelfu ya wanajamii kote ulimwenguni. + +Ukurasa huu unashughulikia habari zaidi kuhusu ethereum.org. + +## Dhamira yetu {#our-mission} + +**dhamira ya ethereum.org ni kuwa lango bora kwa jumuiya inayokua ya Ethereum** + +Tunajitahidi kuunda nyenzo ya elimu iliyo rahisi kueleweka kwa mada zote zinazohusiana na Ethereum, iliyoundwa ili kuwasaidia watumiaji wapya kuifahamu Ethereum na dhana zake kuu. Tunataka: + +- kuelezea Ethereum kwa mtu yeyote mpya kwa teknolojia +- husaidia watumiaji wapya kuanza na ETH na Ethereum +- kusaidia watengenezaji wapya kuanza kujenga +- mabadiliko na Maendeleo katika Ulimwengu wa Ethereum +- onyesha rasilimali iliyoundwa na wanajamii +- kuleta elimu ya Ethereum kwa lugha nyingi iwezekanavyo + +Ili kufikia dhamira hii, timu yetu inaangazia malengo mawili ya msingi kwenye ethereum.org: + +### 1. Kuboresha uzoefu wa mtumiaji kwa wageni wa ethereum.org {#visitors} + +- Panua, boresha, na weka maudhui kuwa ya kisasa +- Boresha urahisi wa kutumia na upatikanaji kupitia ulinganifu wa lugha na mbinu bora za maendeleo ya wavuti +- Ongeza ushiriki wa watumiaji kupitia vipengele kama vile tafiti, maswali na miunganisho ya web3 +- Weka tovuti iwe nyepesi na tendaji + +### 2. Kuza, imarisha na kuwezesha jumuiya yetu ya wachangiaji {#community} + +- Kuza jumla ya idadi ya wachangiaji kwenye tovuti +- Boresha uhifadhi wa wachangiaji kupitia ushirikiano, shukrani na zawadi +- Kuwawezesha wanajamii kutoa mchango mkubwa zaidi +- Kuwezesha utofauti mkubwa zaidi wa michango: kanuni, maudhui, muundo, tafsiri, udhibiti +- Hakikisha msingi wa msimbo uko wa kisasa, safi, na umeandikwa kwa maandishi ya kueleweka + +## Kanuni za msingi {#core-principles} + +Tunayo baadhi ya kanuni za msingi zinazotusaidia kutuongoza kutimiza misheni yetu. + +### 1. ethereum.org ni lango la Ethereum 🌏 {#core-principles-1} + +Tunataka watumiaji wetu wavutiwe na maswali yao kujibiwa. Kwa hivyo tovuti yetu inahitaji kuchanganya habari, "nyakati za kipekee" na viungo vya rasilimali bora za jamii ambazo zipo huko nje. Madhumuni ya maudhui yetu ni kuwa "lango la kuingia" na si kuchukua nafasi ya rasilimali nyingi ambazo tayari zipo. Tuna nia ya kuunga mkono na kujumuika na rasilimali zilizoundwa na jumuiya, kuzipa mwonekano zaidi na kuzifanya ziweze kutambulika zaidi. +[Jumuiya ya Ethereum](/community/) ndiyo kiini cha hili: hatuhitaji tu kuhudumia jumuiya, bali kufanya kazi nayo na kujumuisha maoni yake. Tovuti sio tu ya jumuiya tuliyo nayo sasa bali ni ya jumuiya tunayotarajia kukua. Ni lazima tukumbuke jumuiya yetu ni ya kimataifa, inayo watu kutoka lugha, maeneo na tamaduni nyingi. + +### 2. ethereum.org inabadilika kila wakati 🛠 {#core-principles-2} + +Ethereum na jumuiya daima zinaendelea, kwa hivyo ethereum.org pia. Ndio maana tovuti ina mfumo rahisi wa usanifu na muundo wa moduli. Tunafanya mabadiliko ya mara kwa mara tunapojifunza zaidi kuhusu jinsi watu wanavyotumia tovuti na kile ambacho jumuiya inataka kutoka kwayo. +Sisi ni chanzo huria, na jumuiya ya wachangiaji, kwa hivyo unaweza kupendekeza mabadiliko au utusaidie pia. +[Jifunze kuhusu kuchangia](/contributing/) + +### 3. ethereum.org si tovuti ya kawaida ya bidhaa 🦄 {#core-principles-3} + +Ethereum ni jambo kubwa: inajumuisha jumuiya, teknolojia, seti ya mawazo na itikadi, na zaidi. +Hii inamaanisha kuwa tovuti inahitaji kushughulikia safari nyingi tofauti za watumiaji, kutoka kwa "msanifu programu ambaye anataka zana maalum" na "mgeni ambaye amenunua ETH na hajui pochi ni nini". +"Ni tovuti gani bora kwa jukwaa la kiambajengo?" bado ni swali wazi - sisi ni waanzilishi. Kuunda hii kunahitaji majaribio. + +## Ramani ya maendeleo ya bidhaa {#roadmap} + +Ili kufanya kazi yetu ipatikane zaidi na kuhimiza ushirikiano zaidi wa jumuiya, timu ya msingi ya ethereum.org inachapisha muhtasari wa malengo ya ramani yetu ya maendeleo ya [shape up cycle](https://www.productplan.com/glossary/shape-up-method/). + +[Tazama ramani yetu ya maendeleo ya bidhaa ya Mzunguko 1 wa 2025](https://github.com/ethereum/ethereum-org-website/issues/14726) + +**Unaonaje?** Tunathamini maoni kuhusu ramani yetu ya maendeleo kila wakati - ikiwa kuna jambo unalofikiri tunapaswa kulifanyia kazi, tafadhali tujulishe! Tunakaribisha mawazo na PRs kutoka kwa mtu yeyote katika jumuiya. + +**Je, unataka kujihusisha?** [Jifunze zaidi kuhusu kuchangia](/contributing/), [tupate kwenye Twitter](https://x.com/ethdotorg), au jiunge na majadiliano ya jamii katika [seva yetu ya Discord](https://discord.gg/ethereum-org). + +## Kanuni za usanifu {#design-principles} + +Tunatumia seti ya [kanuni za usanifu](/contributing/design-principles/) kuongoza maudhui yetu na maamuzi ya usanifu kwenye tovuti. + +## Mfumo wa usanifu {#design-system} + +Tulijenga na kutoa [mfumo wa usanifu](https://www.figma.com/file/NrNxGjBL0Yl1PrNrOT8G2B/ethereum.org-Design-System?node-id=0%3A1&t=QBt9RkhpPqzE3Aa6-1) ili kutoa vipengele haraka zaidi na kuruhusu wanajamii kushiriki katika usanifu huria wa ethereum.org. + +Unataka kujihusisha?[Fuatilia kwenye Figma](https://www.figma.com/file/NrNxGjBL0Yl1PrNrOT8G2B/ethereum.org-Design-System), [suala la GitHub](https://github.com/ethereum/ethereum-org-website/issues/6284) na ujiunge na mazungumzo kwenye [chaneli yetu ya Discord ya #design](https://discord.gg/ethereum-org). + +## Mwongozo wa mtindo {#style-guide} + +Tuna [mwongozo wa mtindo](/contributing/style-guide/) wa kusawazisha vipengele fulani vya uandishi wa maudhui ili kurahisisha mchakato wa uchangiaji. + +Hakikisha umesoma [kanuni zetu](/contributing/design-principles/) na [mwongozo wetu wa mtindo](/contributing/style-guide/) ikiwa ungependa [kuchangia kwenye tovuti](/contributing/). + +Tunakaribisha maoni kuhusu kanuni zetu za muundo, mfumo wa muundo na mwongozo wa mtindo. Kumbuka, ethereum.org ni ya jumuiya, na jumuiya. + +## Leseni {#license} + +Tovuti ya ethereum.org ni chanzo huria na imejengwa chini ya [Leseni ya MIT](https://github.com/ethereum/ethereum-org-website/blob/dev/LICENSE) isipokuwa kama itaelezwa vinginevyo. Zaidi kuhusu [masharti ya matumizi](/terms-of-use/) ya ethereum.org. + +## Nafasi za kazi zilizo wazi {#open-jobs} + +''Ingawa tovuti hii ni chanzio huria na mtu yeyote anaweza kuifanyia kazi, tun timu maalum inayojishughulisha na ethereum.org na miradi mengine na wavuti ya Ethereum.' + +''Tutaweka nafasi za kazi hapa.''. Ikiwa huoni nafasi yako hapa, nenda kwenye [seva yetu ya Discord](https://discord.gg/ethereum-org) na utujulishe jinsi ambavyo ungependa kufanya kazi nasi! + +''Kuangalia zaidi ya timu ya etherium.org?''? [Angalia kazi zingine zinazohusiana na Ethereum](/community/get-involved/#ethereum-jobs/). diff --git a/public/content/translations/sw/ai-agents/index.md b/public/content/translations/sw/ai-agents/index.md new file mode 100644 index 00000000000..a11d6ffca75 --- /dev/null +++ b/public/content/translations/sw/ai-agents/index.md @@ -0,0 +1,144 @@ +--- +title: Wakala za AI +metaTitle: Mawakala wa AI | Mawakala wa AI kwenye Ethereum +description: Muhtasari wa mawakala wa AI kwenye Ethereum +lang: sw +template: use-cases +emoji: ":robot:" +sidebarDepth: 2 +image: /images/ai-agents/hero-image.png +alt: Watu walikusanyika kwenye jedwali la kituo +summaryPoint1: AI ambayo inaingiliana na kiambajengo na inafanya biashara kwa kujitegemea +summaryPoint2: Hudhibiti pochi na fedha zilizo kwenye mnyororo +summaryPoint3: Huajiri watu au mawakala wengine kwa kazi +buttons: + - content: Mawakala wa AI ni nini? + toId: what-are-ai-agents + - content: Chunguza mawakala + toId: ai-agents-on-ethereum + isSecondary: false +--- + +Hebu fikiria kupitia Ethereum ukitumia msaidizi wa AI anayesoma mwenendo wa soko kwenye mnyororo 24/7, anajibu maswali, na hata kutekeleza miamala kwa niaba yako. Karibu katika ulimwengu wa Mawakala wa AI—mifumo mahiri iliyoundwa ili kurahisisha maisha yako ya kidijitali. + +Kwenye Ethereum, tunaona ubunifu wa mawakala wa AI kuanzia washawishi bandia na waundaji wa maudhui wanaojitegemea hadi majukwaa ya uchanganuzi wa soko katika wakati halisi, kuwawezesha watumiaji kwa kutoa maarifa, burudani na ufanisi wa utendaji. + +## Mawakala wa AI ni nini? {#what-are-ai-agents} + +Mawakala wa AI ni programu za kompyuta zinazotumia akili ya bandia kufanya kazi au kufanya maamuzi yako mwenyewe. Wanajifunza kutoka kwa data, kukabiliana na mabadiliko, na kushughulikia kazi ngumu. Wanafanya kazi bila kukoma na wanaweza kugundua fursa papo hapo. + +### Jinsi mawakala wa AI hufanya kazi na viambajengo {#how-ai-agents-work-with-blockchains} + +Katika ufadhili wa kitamaduni, mawakala wa AI mara nyingi hufanya kazi katika mazingira ya kati na pembejeo ndogo za data. Hii inazuia uwezo wao wa kujifunza au kudhibiti mali kwa uhuru. + +Kwa upande mwingine, mfumo mtawanyo wa ikilojia wa Ethereum hutoa faida kadhaa muhimu: + +- Data iliyo wazi: Ufikiaji wa maelezo ya muda halisi ya kiambajengo. +- Umiliki halisi wa mali: Raslimali za kidijitali zinamilikiwa kikamilifu na mawakala wa AI. +- Utendaji thabiti wa mnyororo: Huwawezesha Mawakala wa AI kutekeleza miamala, kuingiliana na mikataba mahiri, kutoa ukwasi, na kushirikiana katika itifaki zote. + +Sababu hizi hubadilisha mawakala wa AI kutoka roboti rahisi hadi mifumo inayobadilika, inayojiboresha ambayo hutoa thamani kubwa katika sekta nyingi: + + + + + + + +## AI inayoweza kuthibitishwa {#verifiable-ai} + +Mawakala wa AI wanaoendesha offchain mara nyingi hufanya kazi kama "visanduku vyeusi"—hoja zao, pembejeo zao, na matokeo yao hayawezi kuthibitishwa kwa kujitegemea. Ethereum inabadilisha hilo. Kwa kuimarisha tabia ya wakala onchain, wasanidi programu wanaweza kuunda mawakala ambao ni _wasiohitaji kuaminiwa_, _wazi_, na _wanaojitegemea kiuchumi_. Matendo ya mawakala kama hao yanaweza kukaguliwa, kudhibitiwa na kuthibitishwa. + +### Makisio yanayoweza kuthibitishwa {#verifiable-inference} + +Makisio ya AI kwa kawaida hufanyika offchain, ambapo utekelezaji ni wa bei rahisi lakini utekelezaji wa modeli huwa hauko wazi. Kwenye Ethereum, wasanidi programu wanaweza kuoanisha mawakala na ukokotoaji unaoweza kuthibitishwa kwa kutumia mbinu kadhaa: + +- [**zkML (zero-knowledge machine learning)**](https://opengradient.medium.com/a-gentle-introduction-to-zkml-8049a0e10a04) huruhusu mawakala kuthibitisha kuwa modeli ilitekelezwa ipasavyo bila kufichua modeli au pembejeo. +- [**Uthibitisho wa TEE (mazingira ya utekelezaji ya kuaminika)**](https://en.wikipedia.org/wiki/Trusted_execution_environment) huruhusu ithibati zinazoungwa mkono na maunzi kwamba wakala aliendesha modeli maalum au njia ya msimbo. +- **Kutobadilika kwa onchain** huhakikisha ithibati na uthibitisho huu unaweza kurejelewa, kuchezwa tena, na kuaminiwa na mkataba au wakala yeyote. + +## Malipo, na biashara na x402 {#x402} + +Itifaki ya [x402](https://www.x402.org/), iliyotumwa kwenye Ethereum na L2s, huwapa mawakala njia asilia ya kulipia rasilimali na kuingiliana kiuchumi bila uingiliaji wa binadamu. Wakala wanaweza: + +- Kulipia ukokotoaji, data, na miito ya API kwa kutumia stablecoins. +- Kuomba au kuthibitisha uthibitisho kutoka kwa mawakala au huduma zingine +- Kushiriki katika biashara ya wakala-kwa-wakala, kununua na kuuza ukokotoaji, data, au matokeo ya modeli + +x402 inageuza Ethereum kuwa safu ya kiuchumi inayoweza kupangwa kwa mawakala wanaojitegemea, kuwezesha mwingiliano wa kulipia-kwa-matumizi badala ya akaunti, usajili, au malipo ya kati. + +### Usalama wa kifedha wa kiwakala {#agentic-finance-security} + +Wakala wanaojitegemea wanahitaji vizuizi. Ethereum huwapa katika kiwango cha mkoba na mkataba: + +- [Akaunti mahiri (EIP-4337)](https://eips.ethereum.org/EIPS/eip-4337) huwaruhusu wasanidi programu kutekeleza vikomo vya matumizi, orodha zilizoidhinishwa, funguo za vipindi na ruhusa za kina. +- Vikwazo vilivyopangwa katika mikataba-erevu vinaweza kuzuia kile ambacho wakala anaruhusiwa kufanya. +- Vikomo vinavyotegemea makisio (k.m., kuhitaji ithibati ya zkML kabla ya kutekeleza kitendo hatari) huongeza safu nyingine ya usalama. + +Vidhibiti hivi huwezesha upelekaji wa mawakala wanaojitegemea ambao hawana mipaka. + +### Rejesta za onchain: ERC-8004 {#erc-8004} + +[ERC-8004](https://eips.ethereum.org/EIPS/eip-8004) ni kiwango kinachochipukia (kwa sasa kinapitiwa na wenzao) kinachopendekeza rejesta za onchain za utambulisho wa wakala, uwezo, na uthibitisho. + +Ikikubalika, inaweza kutoa: + +- Saraka ya pamoja, isiyohitaji kuaminiwa ya mawakala +- Miundo sanifu ya uthibitishaji +- Msingi wa "miundombinu ya wakala isiyohitaji kuaminiwa" moja kwa moja kwenye Mtandao Mkuu wa Ethereum + +Hii ingeruhusu mawakala kugundua, kuthibitisha, na kufanya miamala kwa urahisi zaidi katika mazingira yaliyogatuliwa kikamilifu. + +## Mawakala wa AI kwenye Ethereum {#ai-agents-on-ethereum} + +Tunaanza kuchunguza uwezo kamili wa mawakala wa AI, na miradi tayari inaboresha maelewano kati ya AI na kiambajengo—hasa katika uwazi na uchumaji wa mapato. + + + +Mwonekano wa kwanza wa Luna kama mgeni wa podcasti + + + +## Pochi zinazodhibitiwa na wakala {#agent-controlled-wallets} + +Mawakala kama Luna au AIXBT hudhibiti pochi yao ya mnyororo ([pochi ya AIXBT](https://clusters.xyz/aixbt), [pochi ya Luna](https://zapper.xyz/account/0x0d177181e3763b20d47dc3a72dd584368f shughuli za kiuchumi). + +Wakati wa kampeni ya kijamii ya Luna ya #LunaMuralChallenge, Luna alichagua na kuwazawadia washindi kupitia pochi yake ya Base — akiashiria tukio la kwanza la AI kuajiri wanadamu kwa malipo ya sarafu za kidigitali. + + + + +

Ni vizuri kujua

+

Mawakala wa AI na zana zinazohusiana bado ziko katika maendeleo ya mapema na ni za majaribio sana—zinatumiwa kwa tahadhari.

+
+ +
+ +## Dhibiti pochi yako kwa kutumia amri za mazungumzo ya kidigitali {#control-your-wallet-using-chat-commands} + +Unaweza kuruka miingiliano changamano ya DeFi na kudhibiti sarafu yako ya kidigitali kwa amri rahisi za mazungumzo za kidigitali. + +Mbinu hii rahisi kueleweka hufanya miamala kuwa haraka, rahisi, na kukabiliwa na makosa kama vile kutuma pesa kwa anwani isiyo sahihi au kulipia ada kupita kiasi. + + + +## Mawakala wa AI dhidi ya roboti za AI {#ai-agents-vs-ai-bots} + +Tofauti kati ya mawakala wa AI na roboti za AI wakati mwingine inaweza kuwa ya kutatanisha, kwani zote mbili hufanya vitendo vya kiotomatiki kulingana na ingizo. + +- Roboti za AI ni kama wasaidizi otomatiki - Zinafuata maagizo mahususi, yaliyopangwa mapema ili kufanya kazi za kawaida. +- Mawakala wa AI ni kama marafiki wenye akili - Wanajifunza kutokana na uzoefu, kukabiliana na taarifa mpya, na kufanya maamuzi wao wenyewe. + +| | Wakala za AI | Roboti za AI | +| ----------------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------- | +| **Mwingiliano** | Changamano, kinachobadilika, huru-kujiendesha | Rahisi, uliofafanuliwa mapema, wenye msimbo mgumu | +| **Kujifunza** | Anajifunza kila wakati, anaweza kujaribu na kuzoea data mpya katika muda halisi | Inafanya kazi kwa data iliyofunzwa mapema au sheria zilizowekwa | +| **Kukamilika kwa kazi** | Inalenga kufikia malengo mapana | Huzingatia kazi mahususi pekee | + +## Zama kwa undani zaidi {#dive-deeper} + + + +## Unaweza kujenga wakala wako wa AI {#you-can-build-your-own-ai-agent} + + diff --git a/public/content/translations/sw/bridges/index.md b/public/content/translations/sw/bridges/index.md new file mode 100644 index 00000000000..bed29420942 --- /dev/null +++ b/public/content/translations/sw/bridges/index.md @@ -0,0 +1,145 @@ +--- +title: Kuanzishwa kwa daraja za blockchain +description: Daraja hizi zinakubalisha users waweze kupeleka mapato yao kati ya different blockchains +lang: sw +--- + +# Madaraja ya mnyororo wa bloku {#prerequisites} + +_Web3 imepitia mabadiliko mwanana hadi ikawa ukolojia ya L1 blockchains na ufumbuzi wa L2 scaling, kila mmoja imeboreshwa na uwezo wa kipekee na biashara-offs. Idadi ya blochi mnyororo inakua, na mahitaji ya kusogeza mali kati yao pia yanakua.Tunahitaji daraja kutimiza haya mahitaji._ + + + +## Je, daraja ni nini? {#what-are-bridges} + +Daraja za Blockchain zinatumika sawasawa na daraja tunazozitumia kila siku duniani. Jinsi kama daraja ya kawaida inavyounganisha sehemu mbili, daraja ya blockchain inaunganisha ikolojia mbili ya blockchain. **Madaraja huwezesha mawasiliano kati ya minyororo ya kizuizi kupitia utumaji wa habari na mali**. + +Hebu tuzingatie mfano: + +Umetoka Amerika na unapanga kuzuru Ughaibuni. Una USD lakini unahitaji kutumia EUR. Ukitaka kuexchange USD yako iwe EUR unatumia exchange ya masarafu utakapotozwa ada ndogo. + +Lakini, unafanya nini ikiwa unataka kufanya ubadilishanaji sawa ili utumie [mnyororo wa bloku](/glossary/#blockchain) tofauti? Tuseme unataka kubadilishana [ETH](/glossary/#ether) kwenye Mtandao Mkuu wa Ethereum kwa ETH kwenye [Arbitrum](https://arbitrum.io/). Kama vile tulivyounda exchange ya sarafu ya EUR, tunahitaji utaratibu wa kusongeza ETH kutoka Ethereum hadi Arbitrum. Daraja zinafanya hii shughuli itimizwe. Katika hali hii, [Arbitrum ina daraja asili](https://portal.arbitrum.io/bridge) ambalo linaweza kuhamisha ETH kutoka Mtandao Mkuu hadi Arbitrum. + +## Kwa nini tunahitaji madaraja? {#why-do-we-need-bridges} + +Viambajengo vyote vina mapungufu yao. Ili Ethereum ipanuke na kukidhi mahitaji, imehitaji [unda-mpya](/glossary/#rollups). Vinginevyo, L1 kama Solana na Avalanche zimeundwa kwa njia tofauti ili kuwezesha matokeo ya juu lakini kwa gharama ya ugatuaji. + +Hata hivyo, minyororo yote ya bloku hutengenezwa katika mazingira yaliyotengwa na huwa na sheria na mifumo tofauti ya [makubaliano](/glossary/#consensus). Hii inamaanisha kuwa hawawezi kuwasiliana asili, na ishara haziwezi kusonga kwa uhuru kati ya viambajengo. + +Madaraja yapo ili kuunganisha viambajengo, kuruhusu uhamisho wa habari na ishara kati yao. + +**Bridges enable**: + +- uhamisho wa mnyororo wa mali na habari. +- [mfumo mtawanyo wa kimamlaka](/glossary/#dapp) za kufikia uwezo wa minyororo mbalimbali ya bloku – hivyo basi kuimarisha uwezo wao (kwa kuwa sasa itifaki zina nafasi zaidi ya kubuni kwa ajili ya uvumbuzi). +- watumiaji kufikia majukwaa mapya na kuongeza manufaa ya minyororo tofauti. +- watengenezaji kutoka kwa mifumo tofauti ya ikolojia ya kiambajengo ili kushirikiana na kuunda mifumo mipya ya watumiaji. + +[Jinsi ya kuhamisha tokeni kwa safu ya 2 kwa kutumia daraja](/guides/how-to-use-a-bridge/) + + + +## Matumizi ya daraja {#bridge-use-cases} + +Zifuatazo ni baadhi ya matukio ambapo unaweza kutumia daraja: + +### Ada za chini za muamala {#transaction-fees} + +Hebu tuseme una ETH kwenye Ethereum Mainnet lakini unataka ada nafuu za ununuzi ili kuchunguza dapps tofauti. Kwa kuweka daraja la ETH yako kutoka Mainnet hadi kwenye mkusanyo wa Ethereum L2, unaweza kufurahia ada za chini za ununuzi. + +### mfumo mtawanyo wa kimamlaka kwenye minyororo mingine ya bloku {#dapps-other-chains} + +Ikiwa umekuwa ukitumia Aave kwenye Ethereum Mainnet kusambaza USDT lakini kiwango cha riba unachoweza kupokea kwa kusambaza USDT kwa kutumia Aave on Polygon ni cha juu zaidi. + +### Gundua mifumo ikolojia ya mnyororo wa bloku {#explore-ecosystems} + +Ikiwa una ETH kwenye Ethereum Mainnet na ungependa kuchunguza alt L1 ili kujaribu dapp zao asili. Unaweza kutumia daraja kuhamisha ETH yako kutoka Ethereum Mainnet hadi alt L1. + +### Miliki mali asili za sarafu ya kidigitali {#own-native} + +Hebu tuseme unataka kumiliki Bitcoin asilia (BTC), lakini una pesa tu kwenye Ethereum Mainnet. Ili kupata kufichuliwa na BTC kwenye Ethereum, unaweza kununua Wrapped Bitcoin (WBTC). Hata hivyo, WBTC ni tokeni ya [ERC-20](/glossary/#erc-20) asili ya mtandao wa Ethereum, ambayo ina maana kwamba ni toleo la Ethereum la Bitcoin na si mali asili kwenye mnyororo wa bloku wa Bitcoin. Ili kumiliki BTC asili, utahitaji kuunganisha mali yako kutoka Ethereum hadi Bitcoin kwa kutumia daraja. Hii itaunganisha WBTC yako na kuibadilisha kuwa BTC asili. Vinginevyo, unaweza kumiliki BTC na kutaka kuitumia katika itifaki za [DeFi](/glossary/#defi) za Ethereum. Hii itahitaji kuunganishwa kwa njia nyingine, kutoka BTC hadi WBTC ambayo inaweza kutumika kama mali kwenye Ethereum. + + + + + + Unaweza pia kufanya yote yaliyo hapo juu kwa kutumia [centralized exchange](/get-eth). Walakini, isipokuwa pesa zako tayari ziko kwenye ubadilishaji, itahusisha hatua nyingi, na unaweza kuwa bora kutumia daraja. + + + + + + +## Aina za madaraja {#types-of-bridge} + +Madaraja yana aina nyingi za miundo na ugumu. Kwa ujumla, madaraja yapo katika makundi mawili: madaraja yanayoaminika na yasiyoaminika. + +| Madaraja yanayoaminika | Madaraja yasiyoaminika | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Madaraja yanayoaminika hutegemea huluki kuu au mfumo kwa shughuli zao. | Madaraja yasiyoaminika yanafanya kazi kwa kutumia mikataba mahiri na kanuni za algoriti. | +| Madaraja yasiyoaminika yanafanya kazi kwa kutumia mikataba na kanuni za algoriti. Watumiaji wengi hutegemea sifa ya mwendeshaji daraja. | Hawana uaminifu, yaani, usalama wa daraja ni sawa na ule wa kiambajengo cha msingi. | +| Watumiaji wanahitaji kuacha udhibiti wa mali zao za kripto. | Kupitia [mikataba-erevu](/glossary/#smart-contract), madaraja yasiyohitaji kuaminiwa huwawezesha watumiaji kubaki na udhibiti wa fedha zao. | + +Kwa kifupi, tunaweza kusema kwamba madaraja yanayoaminika yana mawazo ya kuaminiana, ilhali madaraja yasiyoaminika yanapunguzwa uaminifu na hayatoi mawazo mapya ya uaminifu zaidi ya yale ya vikoa vya msingi. Hivi ndivyo maneno haya yanaweza kuelezewa: + +- **Isiyohitaji kuaminiwa**: kuwa na usalama sawa na vikoa vya msingi. Kama ilivyoelezwa na [Arjun Bhuptani katika makala hii.](https://medium.com/connext/the-interoperability-trilemma-657c2cf69f17) +- **Dhana za uaminifu:** kuondoka kwenye usalama wa vikoa vya msingi kwa kuongeza vithibitishaji vya nje kwenye mfumo, na hivyo kuufanya usiwe salama sana kiuchumi-kripto. + +Ili kukuza uelewa mzuri wa tofauti kuu kati ya njia hizi mbili, wacha tuchukue mfano: + +Fikiria uko kwenye kituo cha ukaguzi cha usalama cha uwanja wa ndege. Kuna aina mbili za vituo vya ukaguzi: + +1. Vituo vya ukaguzi wa Mwongozo - vinavyoendeshwa na maafisa ambao huangalia wenyewe maelezo yote ya tikiti na utambulisho wako kabla ya kupeana pasi ya kuabiri. +2. Kujiandikisha - kunaendeshwa na mashine ambapo unaweka maelezo ya safari yako ya ndege na kupokea pasi ya kupanda kila kitu kitakapokamilika. + +Sehemu ya ukaguzi ya mwongozo ni sawa na muundo unaoaminika kwani inategemea mtu wa tatu, yaani, maafisa, kwa shughuli zake. Kama mtumiaji, unawaamini maafisa kufanya maamuzi sahihi na kutumia taarifa zako za faragha kwa usahihi. + +Kujiandikisha ni sawa na modeli isiyoaminika kwani huondoa jukumu la mwendeshaji na kutumia teknolojia kwa shughuli zake. Watumiaji daima hubakia kudhibiti data zao na si lazima waamini watu wengine na taarifa zao za faragha. + +Suluhu nyingi za kuweka daraja hupitisha modeli kati ya hali hizi mbili za kupita kiasi na viwango tofauti vya kutokuwa na imani. + + + +## Tumia madaraja {#use-bridge} + +Kutumia madaraja hukuruhusu kuhamisha mali yako kwenye viambajengo tofauti tofauti. Hapa kuna nyenzo ambazo zinaweza kukusaidia kupata na kutumia madaraja: + +- **[L2BEAT Bridges Summary](https://l2beat.com/bridges/summary) & [L2BEAT Bridges Risk Analysis](https://l2beat.com/bridges/summary)**: Muhtasari wa kina wa madaraja mbalimbali, ukijumuisha maelezo kuhusu hisa za soko, aina ya daraja, na minyororo lengwa. L2BEAT pia ina uchanganuzi wa hatari kwa madaraja, kusaidia watumiaji kufanya maamuzi sahihi wakati wa kuchagua daraja. +- **[DefiLlama Bridge Summary](https://defillama.com/bridges/Ethereum)**: Muhtasari wa ujazo wa madaraja kwenye mitandao ya Ethereum. + + + +## Hatari za kutumia madaraja {#bridge-risk} + +Madaraja yako katika hatua za mwanzo za maendeleo. Kuna uwezekano kwamba muundo bora wa daraja bado haujagunduliwa. Kuingiliana na aina yoyote ya daraja hubeba hatari: + +- **Hatari ya Mkataba-erevu —** hatari ya hitilafu kwenye msimbo ambayo inaweza kusababisha fedha za mtumiaji kupotea +- **Hatari ya Teknolojia —** kushindwa kwa programu, msimbo wenye hitilafu, makosa ya kibinadamu, barua taka, na mashambulizi mabaya yanaweza kutatiza shughuli za mtumiaji + +Zaidi ya hayo, kwa kuwa madaraja yanayoaminika huongeza mawazo ya uaminifu, yana hatari zaidi kama vile: + +- **Hatari ya Udhibiti —** waendeshaji wa daraja wanaweza kinadharia kuwazuia watumiaji kuhamisha mali zao kwa kutumia daraja +- **Hatari ya Ulinzi —** waendeshaji wa daraja wanaweza kushirikiana kuiba fedha za watumiaji + +Pesa za mtumiaji ziko hatarini ikiwa: + +- kuna hitilafu kwenye mkataba mahiri +- mtumiaji hufanya makosa +- kiambajengo cha msingi kimedukuliwa +- waendeshaji daraja wana nia ovu katika daraja linaloaminika +- daraja linadukuliwa + +Udukuzi mmoja wa hivi majuzi ulikuwa wa daraja la Wormhole la Solana, [ambapo wETH 120k ($325 milioni USD) iliibwa wakati wa udukuzi huo](https://rekt.news/wormhole-rekt/). [Nyingi za udukuzi mkuu katika minyororo ya bloku zilihusisha madaraja](https://rekt.news/leaderboard/). + +Madaraja ni muhimu kwa watumiaji kuingia kwenye Ethereum L2s, na hata kwa watumiaji wanaotaka kuchunguza mifumo mbalimbali ya ikolojia. Hata hivyo, kutokana na hatari zinazohusika katika kuingiliana na madaraja, watumiaji lazima waelewe usuluhishi unaofanywa na madaraja. Hii ni baadhi ya [mikakati ya usalama wa kuvuka-minyororo](https://debridge.com/learn/blog/10-strategies-for-cross-chain-security/). + + + +## Masomo zaidi {#further-reading} + +- [EIP-5164: Cross-Chain Execution](https://ethereum-magicians.org/t/eip-5164-cross-chain-execution/9658) - _Juni 18, 2022 - Brendan Asselstine_ +- [L2Bridge Risk Framework](https://gov.l2beat.com/t/l2bridge-risk-framework/31) - _Julai 5, 2022 - Bartek Kiepuszewski_ +- ["Kwa nini mustakabali utakuwa wa minyororo mingi, lakini hautakuwa wa kuvuka-minyororo."](https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are_the_efs_research_team_pt_7_07_january/hrngyk8/) - _Januari 8, 2022 - Vitalik Buterin_ +- [Harnessing Shared Security For Secure Cross-Chain Interoperability: Lagrange State Committees And Beyond](https://web.archive.org/web/20250125035123/https://research.2077.xyz/harnessing-shared-security-for-secure-blockchain-interoperability) - _Juni 12, 2024 - Emmanuel Awosika_ +- [The State Of Rollup Interoperability Solutions](https://web.archive.org/web/20250428015516/https://research.2077.xyz/the-state-of-rollup-interoperability) - _Juni 20, 2024 - Alex Hook_ + diff --git a/public/content/translations/sw/community/code-of-conduct/index.md b/public/content/translations/sw/community/code-of-conduct/index.md new file mode 100644 index 00000000000..20ac5b81ed6 --- /dev/null +++ b/public/content/translations/sw/community/code-of-conduct/index.md @@ -0,0 +1,77 @@ +--- +title: Kanuni za maadili +description: Viwango vya msingi ambavyo tunajitahidi kuvifikia katika maeneo yote ya ethereum.org. +lang: sw +--- + +# Kanuni za maadili {#code-of-conduct} + +## Dhamira {#mission} + +Kuendeleza na kudumisha kitovu cha maarifa ambacho ni kamili na kinachopatikana kwa urahisi kwa ajili ya Ethereum. + +## Maadili {#values} + +Jumuiya ya ethereum.org inajitahidi kuwa: + +- ya kielimu, inayolenga kusaidia kila mtu kuelewa Ethereum +- jumuishi +- inayopatikana +- inaendeshwa na jamii +- imejikita kwenye teknolojia ya msingi ya Ethereum na matumizi yake +- imejikita kwenye dhana na kanuni za usanifu za Ethereum + +## Sisi sio nini {#what-we-are-not} + +- Tovuti ya Ethereum Foundation +- Jukwaa la kukuza uwekezaji au upataji faida wa aina yoyote +- Jukwaa la kuinua au kuidhinisha miradi au mashirika binafsi +- DEX, CEX au aina nyingine yoyote ya jukwaa la kifedha +- Jukwaa linalotoa ushauri wa kifedha au kisheria wa aina yoyote + +## Kanuni za maadili {#code-of-conduct} + +### Ahadi {#pledge} + +Ushiriki wa wazi ni msingi wa maadili ya ethereum.org. Sisi ni tovuti na jamii inayodumishwa na maelfu ya wachangiaji, na hili linawezekana tu ikiwa tutadumisha mazingira ya kukaribisha na kushirikisha. Kwa ajili hii, wachangiaji kwenye tovuti hii wanaahidi kudumisha mazingira yasiyo na unyanyasaji kwa washiriki wote katika majukwaa yote ya ethereum.org na maeneo ya jamii. Jumuiya ya ethereum.org inakaribisha na inathamini mtu yeyote anayetaka kushiriki kwa njia ya kujenga na ya kirafiki, bila kujali umri, ulemavu, kabila, sifa za kijinsia, utambulisho wa kijinsia, kiwango cha uzoefu, eneo la utaalamu, elimu, hadhi ya kijamii na kiuchumi, utaifa, mwonekano wa kibinafsi, rangi, dini au kipimo kingine chochote cha utofauti. + +### Wigo {#scope} + +Kanuni hizi za Maadili zinatumika kwa maeneo yote ya ethereum.org (kama vile GitHub, Discord, Figma, Crowdin, X (zamani Twitter) na majukwaa mengine ya mtandaoni), na pia zinatumika wakati jamii inawakilishwa katika maeneo ya umma ya ulimwengu halisi kama vile mikutano, makongamano na matukio. + +### Viwango vyetu {#our-standards} + +Mifano ya tabia inayochangia kuunda mazingira chanya ni pamoja na: + +- Kutumia lugha ya kukaribisha na jumuishi +- Kuheshimu maoni na uzoefu tofauti +- Kukubali kwa upole na/au kutoa ukosoaji wa kujenga kwa huruma +- Kutenda kwa utulivu na weledi wakati wa kutatua migogoro au kutokubaliana +- Kuonyesha huruma na uvumilivu kwa wanajamii wengine +- Kuhimiza na kukuza sauti mpya katika jamii + +Mifano ya tabia isiyokubalika na washiriki ni pamoja na: + +- Ukatili wa kimwili, kutishia ukatili wa kimwili au kuhimiza ukatili wa kimwili wa aina yoyote +- Kutumia lugha au picha za kingono au kulazimisha usikivu wa kingono usiotakikana +- Kujifanya mtu mwingine au vinginevyo kudai kwa udanganyifu kuwa na uhusiano na mtu au shirika fulani +- Uchokozi, matusi/maoni ya dharau, na mashambulizi ya kibinafsi au ya kisiasa +- Kuwasumbua wanajamii wengine katika chaneli za umma au za faragha +- Kuchapisha taarifa za faragha za wengine, kama vile anwani ya mahali au ya kielektroniki, bila ruhusa ya wazi +- Uhandisi wa kijamii, utapeli au vinginevyo kuwahadaa wanajamii wengine +- Kukuza uwekezaji, tokeni, miradi au kitu kingine chochote kwa faida ya kibinafsi ya kifedha au isiyo ya kifedha +- Kutuma barua taka kwenye seva zenye maudhui yasiyohusiana +- Kupuuza maombi au maonyo kutoka kwa wasimamizi wa jamii +- Kujihusisha na mwenendo mwingine ambao unaweza kuchukuliwa kuwa usiofaa katika mazingira ya kitaaluma + +### Kuripoti {#reporting} + +Ukiukaji wa kanuni za maadili kwa kawaida utaonekana kwa jamii kwani tunajaribu kufanya kila kitu katika chaneli za wazi, za umma, kuruhusu wanajamii kujisimamia wenyewe. + +Hata hivyo, ikiwa kitu kitatokea ambacho unahisi kinahitaji uangalizi, unaweza kukiwasilisha kwa mtu ambaye ana jukumu la usimamizi (k.m., mwongozo wa discord) ili waweze kusaidia kuchunguza na kutekeleza jibu linalofaa. + +Unaporipoti, tafadhali jumuisha maelezo mengi iwezekanavyo, ikiwa ni pamoja na mifano maalum na mihuri ya muda. Hii itasaidia kuhakikisha matokeo ya haki. + +### Utekelezaji {#enforcement} + +Kulingana na uzito wa kosa, watu wanaokiuka kanuni za maadili wanaweza kupokea maonyo, marufuku ya muda au marufuku ya kudumu kutoka kwa jamii za ethereum.org. diff --git a/public/content/translations/sw/community/events/organizing/index.md b/public/content/translations/sw/community/events/organizing/index.md new file mode 100644 index 00000000000..d32fa1a80b3 --- /dev/null +++ b/public/content/translations/sw/community/events/organizing/index.md @@ -0,0 +1,221 @@ +--- +title: "''Kuandaa tukio la Ethereum.''" +description: "''Jinsi ya kuandaa tukio la Ethereum.''" +lang: sw +hideEditButton: true +--- + +# ''Jinsi ya kuandaa tukio la Ethereum{#how-to-organize-an-ethereum-event}.'' + +Kujenga jumuiya yenye nguvu na yenye uchangamfu ndio kiini cha kukuza mfumo ikolojia wa Ethereum. Iwe unapanga kuandaa mikutano, warsha, au kongamano kamili, mafanikio ya tukio lako yanategemea miunganisho na ushirikiano ndani ya mtandao wako wa karibu. Mwongozo huu utakusaidia kuweka msingi kwa jumuiya hai ya Ethereum na kukupeleka hatua kwa hatua katika mchakato wa kuandaa mkutano wa kukumbukwa na wenye matokeo. + +## ''Tafakari, je kuna jumuiya ya Ethereum?''? {#ask-yourself-is-there-an-ethereum-community} + +''Mkutano wa Ethereum iliofanikiwa inajengwa juu ya jumuiya iliyo hai na inayoshiriki kikamilifu.''. Ikiwa tayari unayo, uko mbele ya mchezo - lakini ikiwa huna, hatua muhimu ya mapema ni kujenga msingi huo. Ikiwa tayari unayo, uko mbele ya mchezo - lakini ikiwa huna, hatua muhimu ya mapema ni kujenga msingi huo. Jumuiya, kwa upande mwingine, ni mtandao wa watu waliounganishwa na mashirika yanayoshirikiana na kusaidiana, ambayo mara nyingi huonekana katika mifumo ikolojia ya web3. + +**Hatua yako ya kwanza inapaswa kuwa:** + +- Gundua waanzishaji na kampuni za ndani - kuwa na kampuni dhabiti, zinazofanya kazi katika jiji au nchi yako mara nyingi ndilo hitaji muhimu zaidi la kujenga jumuiya. +- Angalia kama tayari kuna baadhi ya mikutano — ethereum.org [ukurasa wa matukio](https://ethereum.org/community/events/) +- [Tovuti ya ethereum.org](https://ethereum.org/community/events/) na ethereum.org Discord — ili kuangalia kama kuna matukio ya ndani ya Ethereum, wasanidi na wachangiaji. +- Luma na Meetup.com — ili kuona kama kuna matukio yanayohusiana na Ethereum au matukio mapana zaidi ya web3 yanayotokea katika eneo lako. +- ''X - jaribu kutafuta watetezi wa ndani au washawishi katika sekta hiyo.''. + +Ukipata vipengele vingi hivi, ni ishara dhabiti kwamba masharti ya kujenga jumuiya yapo - lakini si lazima kwamba jumuiya tayari iko. Hatua inayofuata ni kazi muhimu ya kuandaa, kuwashirikisha, na kuwalea watendaji hawa, kutengeneza fursa za ushirikiano na ukuaji wa muda mrefu. + +### ''Kama sivyo, jinsi ya kuijenga {#if-not-how-to-build-it}.'' + +Ukigundua kuwa vipengele hivi vingi havipo, usijali - kujenga jumuiya kutoka chini ni mchakato mgumu lakini wenye kuthawabisha sana. Jumuiya yenye nguvu ya Ethereum haionekani mara moja; inahitaji subira, uthabiti, na maono yaliyo wazi. ''Hivi ndivyo unaweza kuanza:'': + +- **Weka kituo cha mawasiliano** — hii inaweza kuwa Telegram, Signal, WhatsApp, WeChat, au seva ya Discord, chochote ambacho ni maarufu zaidi mahali ulipo, ili watu waweze kuunganisha, kuuliza maswali na kushiriki nyenzo. +- **Tafuta watu wanaokukubali mapema.** Tambua watu wachache wanaopenda sana Ethereum na Web3. ''Watakua wafuasi wako wakuu na washirikiano wako.''. +- **Pandisha matukio madogo yanayofanana.** Anza na mikutano isiyo rasmi, vikundi vya masomo au warsha. Uthabiti ni muhimu - hata kama kikundi ni kidogo mwanzoni, matukio ya kawaida hujenga uaminifu na kasi. +- **Jaribu kuwasiliana na kampuni za ndani**, taasisi za elimu, au nafasi za kazi ili kukupa nafasi bila malipo. Ikiwa huwezi kupata wazungumzaji kutoka nchi yako, alika wazungumzaji mtandaoni lakini uwakusanye watu kimwili. ''Ni muhimu sana kuhakikisha hadhira yako ipo kimwili katika eneo moja.''. +- **Shirikiana na jumuiya zilizopo za teknolojia.** Ikiwa kuna vikundi vya wasanidi programu, mifumo ikolojia inayoanzishwa, au mikutano ya blockchain tayari imeanzishwa, shirikiana navyo ili kutambulisha mada za Ethereum na kupanua ufikiaji wako. +- **shiriki maudhui ya kielimu** kuhusu uwezo wa Ethereum.''. +- **Fikia jumuiya za kimataifa.** Wasiliana na vikundi na miradi iliyoanzishwa ya Ethereum duniani kote kwa usaidizi, ushauri na ushirikiano unaowezekana. Jumuiya za Ethereum kote ulimwenguni zina angalau jambo moja linalofanana: Zote zina hamu ya kusaidia. +- **Jaribu na upate ufadhili** — iwe kutoka kwa kampuni za ndani za web3 au kupitia baadhi ya mpango wa ruzuku kama vile [ESP](https://esp.ethereum.foundation/). + +### ''Kama ndiyo, jinsi ya kudumisha na kukuza{#if-yes-how-to-maintain-and-grow-it}.'' + +Mara tu ukiwa na jumuiya iliyoanzishwa, kazi haikomi - kwa kweli, inaanza tu. Kuweka jumuiya hai, kuhusika, na kukua kunahitaji juhudi na ubunifu unaoendelea. Mojawapo ya vipengele muhimu vya kuhusisha jamii ni kwamba unapaswa kujaribu kila mara miundo na mawazo mapya. + +''Hapa kuna baadhi ya mbinu za kudumisha jumuiya yenye uhai ya Ethereum.'': + +- \*\*Tofautisha aina za matukio yako.\*\*Usishikilie tu aina moja ya mkusanyiko.''. Changanya mambo na mikutano, hackathons fupi, mijadala ya paneli, na matukio ya mtandao. ''Unaweza kujaribu kuandaa siku za kufanya kazi kwa pamoja au kozi la elimu.''. +- **Mada anuwai:** Ethereum sio teknolojia tu; pia ni seti ya maadili ambayo inahusisha kisheria, masoko, na biashara. +- **Uliza jumuiya yako**maoni na mawazo.''. +- **Shirikiana na hadhira tofauti**sehemu.''. Badilisha maudhui na matukio kulingana na viwango tofauti vya uzoefu - kutoka kwa wanaoanza wanaogundua Ethereum kwa mara ya kwanza hadi watengenezaji na wajasiriamali waliobobea. + +Kwa kutoa fursa mbalimbali za kujifunza, ushirikiano na ukuaji, unahakikisha kuwa jumuiya yako inasalia hai na tayari kwa ajili ya mipango mikubwa kama vile kuandaa mkutano. + +## ''Tukio{#event} + +### ''Ni wakati gani unaofaa kuandaa tukio?''? {#when-is-the-right-time-to-organize-an-event} + +Kuandaa mkutano wa Ethereum wenye mafanikio au tukio la jumuiya kunahitaji muda na kuzingatia kwa uangalifu. Wakati unaofaa unategemea mambo mbalimbali yanayochangia mafanikio ya jumla ya tukio. + +Unapaswa kuzingatia ukomavu wa jumuiya, hali ya soko, kama una timu, na kama kuna mandhari ya karibu (k.m. wafadhili wanaotarajiwa). + +### ''KYC - jua jumuiya yako {#kyc-know-your-community} + +Mojawapo ya hatua muhimu zaidi katika kuandaa tukio ni kuelewa jumuiya yako. Kama vile Mjue Mteja Wako (KYC) katika huduma za kifedha, Jua Jumuiya Yako (KYC) inamaanisha kuchukua muda kuelewa mahitaji mahususi, mapendeleo na sifa za hadhira yako ya karibu. ''Uelewa huu utakusaidia kubuni mkutano ili kuhakikisha mafanikio yake na umuhimu wake.''. + +Inajaribu kulenga tukio kubwa mara moja, lakini kuanza kidogo mara nyingi ndio njia bora zaidi. Utajua ni suluhu gani bora kwako ikiwa utachunguza kwa ukamilifu hali ya jumuiya yako na vipengele vingine ambavyo vinaweza kuonekana kuwa visivyo muhimu kwako, kama vile: je, nchi yako ni kivutio maarufu cha watalii au gharama ya malazi. + +Katika mwaka wa kwanza, sehemu kubwa zaidi ya hadhira yako itakuwa jumuiya ya karibu nawe, kwa hivyo kila kitu unachofanya kwa mwaka wa kwanza kuandaa tukio kubwa zaidi kinapaswa kukidhi mahitaji na ukubwa wa jumuiya hiyo. + +### ''Wapi pa kuanzia{#where-to-start} + +Linapokuja suala la kuandaa mkutano, hatua za kwanza zinaweza kuhisi kuwa nzito. Lakini kwa mpango wazi na muundo, unaweza kuvunja mchakato katika kazi zinazoweza kudhibitiwa. ''Tutavunja kila kimoja chake.''. + +Kuanzia na mbinu iliyopangwa itakusaidia kukaa kwa mpangilio na kupunguza mafadhaiko unapopitia hatua mbali mbali za kuandaa hafla yako. Kila uamuzi unaofanya unapaswa kukuleta karibu na kutoa uzoefu unaokidhi mahitaji ya jumuiya yako. + +**Jambo la kwanza ni kujenga timu ya waandaji yenye majukumu na wajibu ulio wazi.** + +Hatua nyingine muhimu kabla ya kuanza kuunda programu au kufikia wafadhili ni kuchagua tarehe. Ingawa hiyo inaonekana kama hatua rahisi, kuna mambo machache muhimu ambayo unapaswa kuzingatia kabla. ''Baadhi yao ni.'': + +- **Epuka tarehe zinazogongana na mikutano au matukio makubwa **.'' +- **Zingatia hali na hali za eneo lako** (kama vile msimu wa mwaka, likizo kuu, n. k.) +- **Zingatia hali ya soko** +- **Jipe muda wa kutosha kuandaa na kila kitu** - angalau miezi tisa.'' + +### ''Jinsi ya kusanya timu{#how-to-assemble-a-team} + +''Chagua watu wanaoshirikiana na maono yako na wanaokamilisha ujuzi wako.''. Baadhi ya timu hufanya kazi kama vikundi, huku zingine zimebainishwa majukumu - tafuta kinachokufaa zaidi. ''Mawasiliano ya mara kwa mara na matarajio yaliyo wazi ni muhimu.''. Ingawa inavutia kutegemea mifumo ya mawasiliano kwa ajili ya kupanga matukio, tunapendekeza kuchagua jukwaa la usimamizi wa kazi (kama vile Notion, Basecamp, Trello, Asana, au hata Majedwali ya zamani ya Google mazuri) kwa ajili ya kupanga na kufuatilia kile kinachohitajika kufanywa. Ni muhimu kuwa na timu inayofanya kazi vizuri na iliyoandaliwa vizuri. + +Timu tofauti za waandaaji wa Ethereum zina majukumu tofauti katika timu zao, lakini zote zina watu wa kawaida ambao wanafanya kazi kwenye vifaa, bajeti, uuzaji, programu, muundo, na ubia. + +### Mpango: Kipengele muhimu cha tukio lenye ufanisi {#the-program-a-key-element-of-a-successful-event} + +Linapokuja suala la kuandaa mkutano muhimu na wa kukumbukwa, **mpango ndio kila kitu**. Hili si eneo ambalo unaweza kumudu kuafikiana. Ingawa wafadhili ni muhimu na mara nyingi ni muhimu kwa kufadhili tukio, uzoefu wa watazamaji na thamani wanayopokea lazima iwe ya kwanza kila wakati. Mpango uliojaa maudhui ya utangazaji na viwango vingi vya wafadhili vitawatenga waliohudhuria na kudhoofisha uaminifu wa tukio lako. + +Kila kikao, jopo, na warsha vinapaswa kuelimisha, kuhamasisha, na kushirikisha jumuiya. Sikiliza hadhira yako—elewa maslahi, mahitaji, na changamoto zao. Ni mada zipi zinazowagusa? Wakati huo huo, anzisha mitazamo mipya na umbizo bunifu ili kuweka programu ikiwa hai. Sawazisha masomo yanayofahamika na yanayovuma na mawazo ya kisasa, kuhakikisha ajenda iliyokamilika ambayo inashughulikia vipengele tofauti vya mfumo ikolojia wa Ethereum—kutoka kwa kupiga mbizi kwa kina kitaalam na vikao vya kujenga jamii hadi mijadala ya sera na warsha za kushughulikia. Zaidi ya hayo, zingatia lugha ya mkutano huo—wakati Kiingereza ndicho chaguomsingi katika matukio mengi ya Ethereum, kutoa vipindi katika lugha ya ndani kunaweza kufanya tukio hilo kufikiwa zaidi na wasanidi programu wa eneo na wapenda shauku. + +**Unapochagua wazungumzaji, fungua simu angalau miezi sita kabla ya kongamano ili kuvutia mawasilisho ya ubora wa juu na kuruhusu muda wa kutosha wa kuratibu ajenda.** Mtu anayehusika na uteuzi wa spika anapaswa kuwa na uzoefu mkubwa katika sekta hii na ufahamu wa kina wa mfumo ikolojia. Hii inahakikisha kwamba wanaweza kutambua michango muhimu, yenye maarifa na kudumisha kiwango cha juu cha maudhui. + +### Wapi pa kupata msaada wa kifedha {#where-to-find-financial-support} + +Kuandaa mkutano wa ubora wa juu kunakuja na gharama kubwa - kukodisha ukumbi, nyenzo za matangazo, chakula na vinywaji, uzalishaji na gharama zingine nyingi. Kupata usaidizi wa kifedha mapema ni muhimu ili kuhakikisha tukio lako linakidhi viwango vya kitaaluma na kukupa hali nzuri ya matumizi kwa waliohudhuria. + +#### Jinsi ya kuunda wasilisho la udhamini? {#how-to-create-a-sponsorship-deck} + +Kwanza, utahitaji wasilisho. **Waulize waandaaji wengine wa kongamano kwa ushauri**, hata kushiriki staha zao ili uweze kuunda vifurushi vyako kulingana na hilo. Unapaswa kuwa wa kweli linapokuja suala la bei ya vifurushi na ulenga kufidia gharama, sio kupata pesa, haswa mwanzoni. + +**Kila safu ya ufadhili inapaswa kutoa muhtasari wazi na wa kuvutia wa tukio**, kuhakikisha wafadhili watarajiwa wanaelewa upeo, umakini na thamani yake. Anza na mambo ya msingi—mahali, tarehe, na maelezo kuhusu timu inayoratibu—ili kuthibitisha uaminifu. Kisha, onyesha lengo kuu la tukio, kwani mikutano tofauti ya Ethereum inahudumia watazamaji tofauti. Baadhi zina mwelekeo wa wajenzi zaidi, zinazojumuisha mijadala ya kina ya kiufundi, ilhali zingine zinaweza kulenga zaidi DeFi, DAO, au mada za sera. + +Zaidi ya kuelezea tukio tu, weka matarajio wazi. **Orodhesha idadi inayotarajiwa ya wahudhuriaji na wasemaji wowote wakuu ambao tayari wamethibitishwa**, kwa kuwa hii huwasaidia wafadhili kupima uwezo wao wa kufikia. Muhimu zaidi, fafanua kwa uwazi kile watakachopokea kama malipo ya ufadhili wao—nafasi ya kibanda, fursa za kuzungumza, ukuzaji wa mitandao ya kijamii, mwonekano wa chapa, au ufikiaji wa kipekee wa mitandao. Dawati iliyo na muundo mzuri haifahamishi tu bali pia inasisimua wafadhili wanaowezekana kuhusu fursa ya kuwa sehemu ya hafla yako. + +#### Nani anaweza kufadhili tukio lako? {#who-might-support-your-event} + +Anza kwa kuwasiliana na kampuni zilizo ndani ya Ethereum na mfumo mpana wa kiteknolojia katika jiji au nchi yako. **mashirika haya mara nyingi huwa na nia ya kusaidia matukio ya ndani** ambayo yanakuza ukuaji na uvumbuzi wa jumuiya. . + +Once you’ve tapped into local support, expand your outreach to global players in the web3 space. **Itifaki zilizoanzishwa, DAO, na fedha za mfumo ikolojia mara nyingi hutenga bajeti kwa matukio yanayoendeshwa na jamii**. Hili linaweza kuwa changamoto kwa waandaaji wa mara ya kwanza, kwa kuwa bado hawajaunda rekodi ya kuonyesha lakini jaribu kuunda kifurushi cha ufadhili cha kuvutia ambacho kinaonyesha kwa uwazi manufaa ya kuunga mkono tukio lako - mwonekano wa chapa, fursa za kuzungumza, na ushirikiano wa maana na hadhira inayolengwa. Jaribu kupata thamani yako ya kipekee ambayo wengine wanaweza wasiwe nayo. + +#### Njia mbadala za kufadhili tukio lako {#alternative-forms-of-funding-your-event} + +Ruzuku ni chanzo kingine cha ufadhili ambacho waandaaji wengi hukipuuza. Mipango kama vile [Mpango wa Usaidizi wa Mfumo wa Mazingira] wa Ethereum Foundation (https://esp.ethereum.foundation/) (ESP) na [mipango mingine ya ruzuku](https://ethereum.org/community/grants/#ethereum-grants) ipo ili kusaidia matukio yanayoendeshwa na jumuiya. + +Zaidi ya ufadhili wa kifedha, zingatia ushirikiano wa hisani, hasa kwa vyakula na vinywaji. Chapa zinazolingana na utamaduni wa eneo lako au jumuiya ya teknolojia zinaweza kuwa washirika wazuri wa tukio lako. Chapa za kahawa, kampuni za vinywaji, au hata pizzeria za karibu zinaweza kuwa tayari kutoa bidhaa badala ya kuonekana kwenye hafla hiyo. Ushirikiano huu unaweza kusaidia kupunguza gharama huku ukiboresha uzoefu wa mhudhuriaji. + +Kwa kuwa tunazungumza kuhusu fedha, kumbuka hili: kila dola unayowekeza katika kuunda hali ya kipekee ya matumizi ya wahudhuriaji italipa kwa kiasi kikubwa. Uzalishaji wa hali ya juu, kumbi za starehe, swag ya kufikiria, na matukio ya kando yaliyopangwa vyema huchangia tukio la kukumbukwa ambalo washiriki watazungumzia muda mrefu baada ya mkutano kumalizika. Wahudhuriaji wenye furaha huwa watetezi wako wakubwa na huhakikisha mafanikio ya muda mrefu ya tukio lako. + +### Mipangilio {#logistics} + +Sambamba na kupata ufadhili, lengo lako kuu linapaswa kuwa mipangilio. Kongamano lililopangwa vyema linahitaji upangaji wa kina katika maeneo mengi, kuanzia upangaji wa ukumbi hadi tajriba ya wahudhuriaji. Kuwa na mtu aliye na uzoefu thabiti katika kupanga tukio - si lazima iwe matukio ya web3, lakini matukio kwa ujumla - kunaweza kuleta mabadiliko makubwa. Mwongozo wa vifaa mwenye uzoefu anaweza kuona masuala yanayoweza kutokea na kuyatatua kabla hayajawa matatizo, kuokoa muda, pesa na mafadhaiko. + +Mtu anayehusika na usafirishaji anapaswa kuchagua mahali, kampuni ya uzalishaji, na wachuuzi tofauti wa chakula, vinywaji na bidhaa, na pia mfumo rahisi wa kutumia mtandaoni wa kukata tikiti unaoruhusu waliohudhuria kujiandikisha na kulipa kwa njia ya crypto pia. + +### Miundombinu ya eneo {#location-infrastructure} + +Wakati wa kuchagua eneo la mkutano wako, ni muhimu kufikiria zaidi ya ukumbi yenyewe na kuzingatia miundombinu ya jiji na nchi pana. Mambo kama vile hali ya hewa, uhamaji, usalama, na mazingira ya kisiasa huchukua jukumu kubwa katika kuunda uzoefu wa waliohudhuria. + +Kwa maeneo yasiyojulikana sana, hili linakuwa muhimu hasa. Wahudhuriaji na wafadhili kutoka kote ulimwenguni wanahitaji kujisikia ujasiri kwamba wanaweza kusafiri kwa urahisi na kwa usalama. Angalia vipengele kama vile muunganisho wa uwanja wa ndege, usafiri wa umma na chaguzi za malazi. Pia ni busara kuzingatia hali ya kitamaduni na kisiasa ya eneo hili ili kuepuka matatizo yoyote ambayo yanaweza kuzuia washiriki wa kimataifa, kama vile sera ya visa. + +### Jinsi ya kutangaza tukio {#how-to-promote-the-event} + +Kutangaza tukio lako kwa ufanisi ni muhimu ili kuvutia hadhira inayofaa na kujenga msisimko. Mkakati wa ukuzaji uliofikiriwa vyema huhakikisha mkutano wako unapata mwonekano na ushirikiano unaostahili. Ubunifu una jukumu muhimu katika chapa yako pia, kwa hivyo lazima uweke bajeti kwa hiyo pia. + +#### Mitandao ya kijamii {#social-media} + +X.com itakuwa uti wa mgongo wa utangazaji wako kwenye mitandao ya kijamii. Jaribu kuwa hai na kulingana na kuchapisha huko, lakini pia shiriki katika mazungumzo tofauti, na akaunti yako ya kibinafsi na akaunti ya shirika lako. + +Ingawa LinkedIn haionekani kama chaguo dhahiri zaidi la ukuzaji, unaweza kufikia hadhira tofauti kabisa huko, au hata wafadhili wengine. + +#### Ushirikiano na jumuiya nyingine za Ethereum {#partnerships-with-other-ethereum-communities} + +Ushirikiano na waandaaji tofauti wa Ethereum unaweza kusaidia kukuza ufikiaji wako kwa kugusa mitandao iliyopo, haswa unapoanza kutoka mwanzo. Toa punguzo la jumuia, utangaze pamoja na matukio mengine, na waalike washirika waandalizi mwenza matukio ya kando au warsha. + +#### Ufikiaji wa vyuo vikuu {#university-outreach} + +Fikia vyuo vya ufundi na uchumi mjini kupitia vilabu vya wanafunzi au maprofesa ili kukuza tukio. Kujihusisha na vyuo vikuu kunaweza kusaidia kuvutia vipaji vya vijana, watafiti, na wataalamu wa sekta ya siku zijazo, na hivyo kukuza uhusiano mkubwa kati ya wasomi na mfumo wa ikolojia wa Ethereum. Hii ni nzuri sana ikiwa unapanga hackathon, kwani wanafunzi mara nyingi huleta maoni mapya, shauku na msingi thabiti wa kiufundi. + +#### Vyombo vya habari {#media} + +Wasiliana na vyombo vya habari na majarida yanayolenga web3 kwa ajili ya utangazaji wa tukio. Ingawa Web3 Media inatarajia kulipwa kwa makala zao za PR, unaweza kuwapa tikiti bila malipo au mahojiano na wasemaji na wafadhili wengine wa hali ya juu ikiwa huna bajeti ya ukuzaji unaolipishwa. Unda kifurushi cha PR kilicho na taarifa kwa vyombo vya habari na taswira zingine tayari kwa utangazaji kwenye mitandao ya kijamii au tovuti katika miundo tofauti. Pia, panua wigo kwa wanahabari wa ndani au hata waundaji wa maudhui (ilimradi wana sifa nzuri) ambao wanaweza kuandika habari za teknolojia, kwani hiyo inaweza kuwa muhimu katika kuonyesha tukio kwa hadhira kubwa. Hii husaidia kuziba pengo kati ya tasnia ya crypto na umma mpana, na kuvutia watu wa kawaida wa teknolojia na biashara. + +### Je, unapaswa kuandaa hackathon pia? {#should-you-organize-a-hackathon-as-well} + +Kupanga hackathon kunaweza kuwa na manufaa kwa sababu hakathoni inaweza kuwa njia nzuri ya kushirikisha jumuiya ya wasanidi programu na kukuza uvumbuzi. Pia hutoa fursa kwa vitendo kushirikiana na kujenga miradi, ambayo inaweza kusababisha matokeo yanayoonekana kwa mfumo ikolojia. Hakathoni huvutia wasanidi programu ambao huenda wasihudhurie mikutano kwa kawaida lakini wanapenda changamoto ya kujenga na kujaribu mawazo mapya. Ikiwa mkutano wako unalenga wasanidi programu, uvumbuzi, na miradi inayotekelezwa, kuandaa hackathon ni jambo la kawaida. + +Lakini, kabla ya kuandaa, fikiria kama una rasilimali na muda wa kutosha. **Hakathoni inahitaji rasilimali muhimu katika suala la wakati, nguvu kazi, na uwekezaji wa kifedha**. Hakikisha kuwa una timu iliyojitolea kuishughulikia, haswa ikiwa pia unasimamia mkutano. Pia, angalia kama kuna nia katika jumuiya yako. Ikiwa jumuiya yako ina mwelekeo wa wajenzi zaidi, basi pengine itakuwa na maana kuipanga. + +Ingawa kuna manufaa mengi ya kuiandaa, zingatia kwamba, kulingana na ukubwa wa mkutano, kuongeza hackathon kunaweza kuwa mwingi. Ingawa kuna manufaa mengi ya kuiandaa, zingatia kwamba, kulingana na ukubwa wa mkutano, kuongeza hackathon kunaweza kuwa mwingi. Ingawa kuna manufaa mengi ya kuiandaa, zingatia kwamba, kulingana na ukubwa wa mkutano, kuongeza hackathon kunaweza kuwa mwingi. + +### Ingawa kuna manufaa mengi ya kuiandaa, zingatia kwamba, kulingana na ukubwa wa mkutano, kuongeza hackathon kunaweza kuwa mwingi + +Ingawa kuna manufaa mengi ya kuiandaa, zingatia kwamba, kulingana na ukubwa wa mkutano, kuongeza hackathon kunaweza kuwa mwingi. Ingawa kuna manufaa mengi ya kuiandaa, zingatia kwamba, kulingana na ukubwa wa mkutano, kuongeza hackathon kunaweza kuwa mwingi. Ingawa kuna manufaa mengi ya kuiandaa, zingatia kwamba, kulingana na ukubwa wa mkutano, kuongeza hackathon kunaweza kuwa mwingi. Zaidi ya hayo, ugumu wa kuvutia wafadhili unaweza kuongezeka wakati wa kushuka kwa soko, kwa kuwa makampuni yanaweza kuwa na nia ya chini ya kuwekeza katika shughuli zisizo za msingi. + +Kusimamia bajeti kwa ufanisi ni muhimu. **Gharama zisizotarajiwa**, kama vile mabadiliko ya mahali pa dakika za mwisho na mahitaji ya ziada ya teknolojia ya tukio, zinaweza kuboresha bajeti yako kwa haraka. + +Kwa matukio mapya, **kupata wazungumzaji wa hali ya juu kunaweza kuwa ngumu hasa**. Viongozi wa mawazo walioimarishwa au washawishi katika nafasi ya Ethereum wanaweza kuwa tayari wana ratiba kamili na wanaweza kusitasita kujitolea kwa tukio jipya bila rekodi iliyothibitishwa. Kuwa tayari kutumia muda kwenye mitandao na kufikia wazungumzaji watarajiwa muda mrefu kabla ya tukio. + +Pia, linapokuja suala la wazungumzaji, wasiliana nao kwa uwazi na mara kwa mara - weka tarehe ya mwisho ya kutuma mawasilisho na uepuke mabadiliko yoyote ya dakika za mwisho. + +Kongamano lenye mafanikio linahitaji timu iliyojitolea inayoweza kushughulikia vifaa, uuzaji, ufadhili, usaidizi wa kiufundi na usimamizi wa waliohudhuria. Kupata watu walio na uzoefu katika kuandaa matukio ya teknolojia kunaweza kuwa changamoto, hasa ikiwa unafanya kazi na bajeti ndogo au, mara nyingi, bila bajeti, lakini kwa kujitolea. + +### Hupaswi kuifanya peke yako. Unahitaji wanaojitolea. {#you-shouldnt-do-it-alone-you-need-volunteers} + +Kuandaa tukio la Ethereum kunahitaji timu tofauti na iliyojitolea kushughulikia vifaa, usajili, uratibu wa spika, usaidizi wa waliohudhuria, na mengi zaidi. Kwa ukubwa wa timu kuanzia watu 3 hadi 15 tu, inakuwa wazi kuwa watu wa kujitolea ni muhimu kwa ajili ya kuendesha tukio vizuri. + +Wajitolea mara nyingi ni uti wa mgongo wa mikutano mingi, wakitoa usaidizi muhimu, hasa unapofanya kazi na bajeti ndogo. Wanaweza kushughulikia kila kitu kuanzia kusimamia madawati ya usajili hadi kusaidia kupanga tukio, kuhakikisha kuwa tukio linaendeshwa kwa urahisi iwezekanavyo. + +Ingawa ni changamoto kutoa fidia ya fedha kwa wanaojitolea, ni muhimu kuwapa kitu cha thamani kitakachofanya uzoefu wao kuwa wa manufaa. Fikiria kuwapa fursa za mitandao, ukuzaji ujuzi, manufaa fulani ya kipekee, cheti au barua za mapendekezo. + +### Mambo muhimu ya kufuata kwa waandaaji wa hafla {#compliance-essentials-for-event-organizers} + +Wakati wa kuandaa tukio, kuna mambo kadhaa muhimu ya kisheria na ya kuzingatia: + +- **Makubaliano ya ufadhili** - Hakikisha kuwa una mkataba wazi kwa wafadhili, ikijumuisha sera iliyofafanuliwa vyema ya kughairi. +- **Kanuni za Maadili** - Tayarisha Kanuni za Maadili iliyoundwa kulingana na aina mahususi ya tukio (mkutano/hakathoni, nyumba za wadukuzi n. k). +- **Sera ya faragha** - Rasimu ya sera ya faragha kwa tovuti yako ili kutii kanuni na picha za ulinzi wa data +- **Taarifa ya serikali za mitaa** - Hata kama tukio lako ni mkusanyiko wa watu wachache, inashauriwa kuripoti kwa kituo cha polisi cha eneo lako. +- **Makubaliano ya tiketi** – Anzisha makubaliano rasmi na mtoa huduma wako wa tikiti ili kufafanua masharti na majukumu. +- **Utiifu wa udhibiti** - Angalia mapema ikiwa nchi unayoandaa mkutano ina kanuni au vizuizi maalum kwa tasnia ya crypto +- **Uidhinishaji wa forodha kwa bidhaa** - Ikiwa unaagiza bidhaa za wafadhili, inashauriwa kuajiri wakala wa forodha ili kushughulikia mchakato kwa ufanisi. +- **Sera ya upigaji picha na vyombo vya habari** – Fafanua kwa uwazi miongozo kuhusu upigaji picha na utangazaji wa vyombo vya habari, kuhakikisha washiriki wanafahamishwa kuhusu idhini na chaguo za kujiondoa. + +## Baada ya tukio: Nini kinafuata? {#after-the-event-whats-next} + +Baada ya tukio kukamilika, ni muhimu kukusanya maoni kutoka kwa waliohudhuria, wasemaji na wafadhili na kuunda ripoti ya ndani ili uweze kujiandaa vyema kwa matukio yajayo. Hii husaidia kutambua yaliyokwenda vizuri na wapi maboresho yanaweza kufanywa. Tumia tafiti au mahojiano ya ana kwa ana kukusanya maarifa muhimu ambayo yataongoza marudio ya siku zijazo. Chukua muda wa kukagua makosa yoyote au maeneo ya uzembe, kwani yanaweza kuepukwa katika mkutano ujao, na kufanya mchakato kuwa laini. + +Jambo la msingi ni kuendeleza kasi. Endelea kujihusisha na jumuiya yako, shiriki taarifa kuhusu maendeleo unayofanya kulingana na maoni yao, na ujenge msisimko kwa tukio linalofuata. Kwa kudumisha muunganisho huu, unahakikisha athari ya mkutano inaenea zaidi ya tukio lenyewe, kuimarisha uhusiano na kuweka msingi wa mafanikio ya baadaye. + +## Shukrani {#acknowledgement} + +Asante sana kwa kila mtu aliyechangia makala hii kwa kushiriki maarifa yao: Slavo Fabisik kutoka ETHBratislava; Lola kutoka ETH Kipu na ETH Latam; Tanja Mladenovic kutoka ETH Belgrade, Juan David kutoka Ethereum Bogota; Monika Zając kutoka ETHWarsaw; Raffaele Orefice kutoka NapulETH; Xiao Wu(Ling) kutoka ETH Riyadh; Marco kutoka urbe.eth; Caolán Walsh kutoka ETH Dublin; Alex Males kutoka ETHCluj; na Stanko Devic kutoka ETH Slovenia. + +## Rasilimali {#resources} + +Podikasti: Jinsi ya kuandaa na kutangaza tukio la ETH kutoka A hadi Z: + +- [Mfano wa kifani wa ETHWarsaw, wa Nje ya Kawaida](https://www.youtube.com/watch?v=io2Dx1ouse8o) + +Nafasi ya Twitter: + +- [AMA ya Jumuiya ya ETH](https://x.com/NapulETH/status/1905732699094151623) + +Makala: + +- [Kujenga ETHKL, na Danny H.](https://sekto.tech/ethkl24) +- [Mwongozo wa Matukio wa POKT](https://docs.pokt.network/community/pokt-events-playbook) diff --git a/public/content/translations/sw/community/get-involved/index.md b/public/content/translations/sw/community/get-involved/index.md index bf48adaeff1..59b6a109cbb 100644 --- a/public/content/translations/sw/community/get-involved/index.md +++ b/public/content/translations/sw/community/get-involved/index.md @@ -1,5 +1,5 @@ --- -title: Nawezaje kushiriki? +title: Ninaweza kushiriki vipi? description: Jinsi ya kushiriki kwenye jamii ya Ethereum. lang: sw --- @@ -8,105 +8,125 @@ lang: sw Jumuiya ya Ethereum inahusisha watu wa asili tofauti na wenye ujuzi wa kila aina. Endapo wewe ni msanii, msimbuaji au mhasibu, kuna njia za kujihusisha. Hii ni orodha ya mapendekezo yanayoweza kukusaidia. -## Wasimbuaji {#developers} +Anza kwa kusoma kuhusu dhamira na maadili ya ethereum.org katika [kanuni zetu za maadili](/community/code-of-conduct). -- Jifunze kuhusu Ethereum na ijaribishe kwenye [etehereum.org/developers/](/developers/) -- Shiriki kwenye[ETHGlobal](http://ethglobal.co/)hackathon iliyokaribu nawe! -- Vinjari juu ya [miradi inayohusiana na taaluma yako au lugha ya usimbuajiutakayochagua.](/developers/docs/programming-languages/) -- Tazama au shiriki kwenye [mikutano ya wasimbuaji wa ndani](https://www.youtube.com/@EthereumProtocol) -- [Orodha pendekezwa ya kuunga mkono Ikolojia ya Ethereum](https://esp.ethereum.foundation/wishlist/) - maeneo amabayo Ikolojia ya Ethereum inatafuta maombi ya fedha kwa ajili ya vifaa, nyaraka, na miundombinu -- [Daraja la Web3](https://www.web3bridge.com/) - jiunge na wapenzi wa web3 kwenye mpango wa kutambua, kujifunza, na kuunga mkono mamia ya wasanidi programu na wanachama Afrika +## Wasanidi Programu ‍ {#developers} -## Watafiti & Taaluma {#researchers-and-academics} +- Jifunze kuhusu Ethereum na uijaribu katika [ethereum.org/developers/](/developers/) +- Hudhuria hackathon ya [ETHGlobal](http://ethglobal.co/) karibu nawe! +- Angalia [miradi inayohusiana na eneo lako la utaalamu au lugha ya programu unayoipenda](/developers/docs/programming-languages/) +- Tazama au shiriki katika [simu za Safu ya Makubaliano na Utekelezaji](https://www.youtube.com/@EthereumProtocol/streams) +- [Orodha ya matamanio ya Mpango wa Usaidizi wa Mfumo-ikolojia](https://esp.ethereum.foundation/wishlist/) - maeneo ya zana, nyaraka, na miundombinu ambapo Mpango wa Usaidizi wa Mfumo-ikolojia wa Ethereum unatafuta kikamilifu maombi ya ruzuku +- [Web3Bridge](https://www.web3bridgeafrica.com) - jiunge na jumuiya inayochipukia ya web3 katika mpango wao wa kutambua, kufunza, na kusaidia mamia ya wasanidi programu na wanajumuiya kote barani Afrika +- Jiunge na [Discord ya Eth R&D](https://discord.com/invite/VmG7Uxc) +- Jiunge na [Discord ya Ethereum Cat Herders](https://discord.com/invite/Nz6rtfJ8Cu) -Una taaluma ya hisabati, kriptografia ama uchumi? Unaweza kupenda kazi za viwango vya juu, zilizofanywa na ikolojia ya Ethereum +## Watafiti na Wanataaluma ‍ {#researchers-and-academics} -- [Changamoto.ethereum.org](https://challenges.ethereum.org/) - mfululizo wa itilafu zilizofanyiwa uchunguzi, unapoweza kujipatia hadi >$100,000 USD -- [Ethersear.ch](https://ethresear.ch) - Jukwaa la msingi la Ethereum la watafiti, na jukwaa lenye ushawishi mkubwa zaidi duniani kwenye sdarafu za kripto -- [Orodha pendekezwa ya kuunga mkono Ikolojia ya Ethereum](https://esp.ethereum.foundation/wishlist/) - maeneo amabayo Ikolojia ya Ethereum inatafuta maombi ya fedha kwa ajili ya vifaa, nyaraka, na miundombinu +Una taaluma ya hisabati, kriptografia ama uchumi? Unaweza kupenda kazi za viwango vya juu, zilizofanywa na ikolojia ya Ethereum: -## Seti zisizo za kiufundi {#non-technical} +- Jiunge na [Discord ya Eth R&D](https://discord.com/invite/VmG7Uxc) +- Andika au kagua Pendekezo la Uboreshaji la Ethereum + - Andika EIP + 1. Wasilisha wazo lako kwenye [Ethereum Magicians](https://ethereum-magicians.org) + 2. Soma [EIP-1](https://eips.ethereum.org/EIPS/eip-1) - **Ndio, hiyo ndiyo hati _nzima_.** + 3. Fuata maelekezo katika EIP-1. Irejelee unapoandika rasimu yako. + - Jifunze jinsi ya kuwa [Mhariri wa EIP](https://eips.ethereum.org/EIPS/eip-5069) + - Unaweza kufanya ukaguzi wa rika kwa EIPs sasa hivi! Angalia [PR zilizo wazi zenye lebo ya `e-review`](https://github.com/ethereum/EIPs/pulls?q=is%3Apr+is%3Aopen+label%3Ae-review). Toa maoni ya kiufundi kwenye kiungo cha `discussion-to`. + - Shiriki katika [Utawala wa EIP](https://github.com/ethereum-cat-herders/EIPIP) + - Jiunge na [Discord ya Ethereum Cat Herders](https://discord.com/invite/Nz6rtfJ8Cu) + - [Zaidi kuhusu EIPs](/eips/) +- [Challenges.ethereum.org](https://challenges.ethereum.org/) - mfululizo wa zawadi za utafiti za thamani ya juu, ambapo unaweza kupata >$100,000 USD +- [Ethresear.ch](https://ethresear.ch) - jukwaa kuu la Ethereum la utafiti, na jukwaa lenye ushawishi mkubwa zaidi ulimwenguni la uchumi wa kripto +- [Utafiti wa EF AMA](https://old.reddit.com/r/ethereum/comments/vrx9xe/ama_we_are_ef_research_pt_8_07_july_2022) - Mfululizo unaoendelea wa Maswali na Majibu na watafiti. Kila sehemu inayofuata inapofunguliwa, mtu yeyote anaweza kutuma maswali. +- [Orodha ya matamanio ya Mpango wa Usaidizi wa Mfumo-ikolojia](https://esp.ethereum.foundation/wishlist/) - maeneo ya utafiti ambapo Mpango wa Usaidizi wa Mfumo-ikolojia wa Ethereum unatafuta kikamilifu maombi ya ruzuku +- [AllWalletDevs](https://allwallet.dev) - jukwaa la wasanidi programu wa Ethereum, wabunifu, na watumiaji wenye nia kukutana mara kwa mara na kujadili kuhusu mikoba + +[Gundua maeneo mengine hai ya utafiti](/community/research/). + +## Ujuzi usio wa kiufundi ‍ {#non-technical} Kama wewe sio msanidi programu, inaweza kua vigumu kujua ni wapi unapaswa kuanzia kwenye Ethereum. Kuna mapendekezo kadhaa, pamoja nayo ni vyanzo maalumu kwa kila asili ya taaluma. -### Panga kikao kwenye mji wako {#meetups} +### Panga mkutano katika jiji lako {#meetups} -- Huna uhakika jinsi ya kuanza? [Mtandao wa BUIDL](https://consensys.net/developers/buidlnetwork/) unaweza kukusaidia. +- Huna uhakika jinsi ya kuanza? [Mtandao wa BUIDL](https://consensys.net/developers/buidlnetwork/) unaweza kusaidia. ### Andika maudhui kuhusu Ethereum {#write-content} - Ethereum inahitaji waandishi wazuri wanaoweza kuelezea thamani yake kwa kutumia lugha rahisi -- Hauko tayari kuchapisha makala yako pekee? Zingattia kuchangia kwenye maudhui yaliopo kwenye vyanzo vya jumuiya kama, ama pendekeza maudhui mapya kwa ajili ya ethereum.org! +- Hauko tayari kuchapisha makala yako pekee? Fikiria kuchangia kwenye maudhui yaliyopo kwenye rasilimali za jamii, au [pendekeza maudhui mapya kwa ethereum.org](/contributing/)! -### Toa msaada wa kuandika muhtasari kwenye mikutano ya jumuiya {#take-notes} +### Jitolee kuandika madokezo kwa ajili ya simu za jamii {#take-notes} -- Kuna mikutano mingi ya jumuiya, na kua na waandishi wa mihutsari itasaidia sana. Kama ungependa, jiunge na discord ya [ Wafugaji wa Paka wa Ethereum (Ethereum Cat Herders)](https://discord.com/invite/Nz6rtfJ8Cu), na ujitambulishe! +- Kuna mikutano mingi ya jumuiya, na kua na waandishi wa mihutsari itasaidia sana. Ikiwa una nia, jiunge na [discord ya Ethereum Cat Herders](https://discord.com/invite/Nz6rtfJ8Cu), na ujitambulishe! -### Tafsiri maudhui ya Etjereum kwenda kwenye lugha mama, ama lugha uliozaliwa ukizungumza {#translate-ethereum} +### Tafsiri maudhui ya Ethereum kwa lugha yako ya asili {#translate-ethereum} - ethereum.org husimamia programu ya ufasiri inayo fasiri tovuti, na vyanzo vingine, kwenda kwenye lugha zingine tofauti -- Jifunze jinsi ya kuchangia[hapa](/contributing/translation-program) +- Tafuta jinsi ya kujihusisha [hapa](/contributing/translation-program) ### Endesha nodi {#run-a-node} Jiunge na maelefu ya waendesha nodi kwa ugatuzi mkubwa zaidi wa Ethereum. -- [Zaidi juu ya kuendesha nodi](/developers/docs/nodes-and-clients/run-a-node/) +- [Zaidi kuhusu jinsi ya kuendesha nodi](/developers/docs/nodes-and-clients/run-a-node/) -### Weka hisa za ETH {#staking} +### Weka hisa ETH yako {#staking} Kwa kusimamisha hisa zako za ETH unaweza kupata zawadi huku ukisaidia kulinda mtandao wa Ethereum. -- [Zaidi juu ya kusimamisha hisa](/staking/) +- [Zaidi kuhusu kuweka hisa](/staking/) -### Unga mkono miradi {#suport-projects} +### Saidia miradi {#support-projects} -Ikolojia ya Ethereum iko njiani katika kufadhili bidhaa za umma na miradi inayoleta tofauti katika Ethereum. Kwa mchango mdigo tu unaweza kuunga mkono na kuruhsu kazi muhimu kutekelezwa. +Ikolojia ya Ethereum iko njiani katika kufadhili bidhaa za umma na miradi inayoleta tofauti katika Ethereum. Kwa mchango mdogo tu unaweza kuunga mkono na kuruhsu kazi muhimu kutekelezwa. - [Gitcoin](https://gitcoin.co/fund) -- [clr.fedha](https://clr.fund/#/about) +- [clr.fund](https://clr.fund/#/about) -## Wataalamu wa Kifedha & Akaunti {#financial-professionals} +## Wataalamu wa fedha na Wahasibu ‍ {#financial-professionals} -- Ethereum ni mji wa ikolojia ya "feddha zilizogatuliwa" - mtandao wa itifaki na programu zinatoa huduma mbadala za kifedha. Kama wewe ni unataaluma ya uchumi, tazama app za DeFi kwenye [DeFi Llama](https://defillama.com/) ama [DeFiprime](https://defiprime.com) -- Mhasibu? Mali za Ethereum - ETH, tokeni, DeFi, nk - tambulisha masuala mengi ya riwaya. Unaweza kuanza kwa kutazama baadhi ya miradi inayolenga kusaidia watumiaji wa sarafu ya kripto na kupanga vitabu vyao & changamoto za uhasibu, kama [Rotki](https://rotki.com/) +- Ethereum ni mji wa ikolojia ya "feddha zilizogatuliwa" - mtandao wa itifaki na programu zinatoa huduma mbadala za kifedha. Ikiwa wewe ni mtaalamu wa fedha, angalia baadhi ya programu za DeFi katika [DeFi Llama](https://defillama.com/) au [DeFiPrime](https://defiprime.com) +- Mhasibu? Mali za Ethereum - ETH, tokeni, DeFi, nk - tambulisha masuala mengi ya riwaya. Unaweza kuanza kwa kuangalia baadhi ya miradi inayolenga kuwasaidia watumiaji wa sarafu za kidigitali kutatua changamoto zao za uwekaji hesabu na uhasibu, kama vile [Rotki](https://rotki.com/) -## Wasimamizi wa bidhaa {#product-managers} +## Wasimamizi wa Bidhaa ‍ {#product-managers} -- Ikolijia ya Ethereum inahitaji talanta zako! Makampuni mengi yanatoa ajira kwa wasimsmizi wa bidhaa. Kama unataka kuanza kwa kuchangia kwenye mradi wa vyanzo huria, wasiliana na [Wafugaji wa Paka wa Ethereum](https://discord.com/invite/Nz6rtfJ8Cu) ama [RaidGuild](https://www.raidguild.org/) +- Ikolijia ya Ethereum inahitaji talanta zako! Makampuni mengi yanatoa ajira kwa wasimsmizi wa bidhaa. Ikiwa unataka kuanza kwa kuchangia mradi wa chanzo huria, wasiliana na [Ethereum Cat Herders](https://discord.com/invite/Nz6rtfJ8Cu) au [RaidGuild](https://www.raidguild.org/) -## Masoko {#marketing} +## Masoko ‍ {#marketing} - Kuna nafasi nyingi za masoko na mawasiliano kwenye ikolojia ya Ethereum! -## Ajira za Ethereum {#ethereum-jobs} +## Kazi za Ethereum {#ethereum-jobs} **Unataka kupata ajira kwenye Ethereum?** -- [ajiara za ethereum.org](/about/#open-jobs) -- [Bodi ya kazi ya Msingi wa Ethereum (Wenzo)](https://jobs.lever.co/ethereumfoundation) -- [Bodi ya kazi ya Msingi wa Ethereum (BambooHR)](https://ethereum.bamboohr.com/jobs/) -- [Kazi za sarafu ya kripto](https://cryptocurrencyjobs.co/ethereum/) -- [Kazi-za.kripto](https://crypto.jobs/) -- [Ajira kwenye ConsenSys](https://consensys.net/careers/) -- [Orodha ya kazi za kripto](https://cryptojobslist.com/ethereum-jobs) -- [Bodi ya ajira zisizo za benki](https://pallet.xyz/list/bankless/jobs) -- [tumia kazi za Web3](https://www.useweb3.xyz/jobs) +- [Kazi za ethereum.org](/about/#open-jobs) +- [Ubao wa kazi wa Wakfu wa Ethereum](https://jobs.ashbyhq.com/ethereum-foundation) +- [JobStash](https://jobstash.xyz) +- [Ubao wa Kazi wa Ethereum](https://www.ethereumjobboard.com/) +- [Kazi za Sarafu za Kidigitali](https://cryptocurrencyjobs.co/ethereum/) +- [Kazi katika ConsenSys](https://consensys.net/careers/) +- [Orodha ya Kazi za Kripto](https://cryptojobslist.com/ethereum-jobs) +- [Ubao wa kazi wa Bankless](https://pallet.xyz/list/bankless/jobs) - [Kazi za Web3](https://web3.career) - [Jeshi la Web3](https://web3army.xyz/) +- [Kazi za Crypto Valley](https://cryptovalley.jobs/) +- [Kazi za Ethereum](https://startup.jobs/ethereum-jobs) ## Jiunge na DAO {#decentralized-autonomous-organizations-daos} -"DAOs" ni mashirika huru yaliogatuliwa. Haya makundi yanainua teknolojia ya Ethereum ili kuwezesha ushirikiano. Kwa mfano, kudhibiti uanachama, upigaji kura wa mapendekezo, ama kusimamia mali zilizokusanywa. Huku DAO bado ziko kwenye majaribio, zinatoa fursa ya kupata makundi unayofanana nayo, utapata washiriki na kukuza mchango wako kwenye jumuiya ya Ethereum. [Zaidi juu ya DAOs](/dao/) - -- [DAOSquare](https://www.daosquare.io) [@DAOSquare](https://twitter.com/DAOSquare) - _Tangaza dhana ya DAO katika nyanja zisizo za kiufundi na usaidie watu kupata thamani kupitia DAO._ -- [Msanidi DAO](https://www.developerdao.com/) [@Msanidi_dao](https://twitter.com/developer_dao) - _Jumuiya ya wajenzi wanaoamini katika umiliki wa ushirika wa mtandao_ -- [dOrg](https://dOrg.tech) [@dOrg_tech](https://twitter.com/dOrg_tech) - _Mfanyakazi huru wa Web3 akiafanya kazi kama DAO_ -- [HausDAO](https://daohaus.club) [@nowdaoit](https://twitter.com/nowdaoit) - _Utawala wa jumuiya ya DAOhaus_ -- [LexDAO](https://lexdao.org)[@lex_DAO](https://twitter.com/lex_DAO) - _Uhandisi wa kisheria_ -- [MetaCartel](https://metacartel.org) [@Metaa_Cartel](https://twitter.com/Meta_Cartel) - _kiota cha DAO_ -- [Ubia wa MetaCartel](https://metacartel.xyz) [@VENTURE_DAO](https://twitter.com/VENTURE_DAO) - _Ubia wa kripto za kabla ya kuanzishwa_ -- [MetaMchezo](https://metagame.wtf) [@MetaShamba](https://twitter.com/MetaFam) - _MMORPG makanika ya Mchezo kwenye maisha halisi_ -- [KiwandaMeta](https://metafactory.ai) [@KiwandaMeta](https://twitter.com/TheMetaFactory) - _Chapa ya Mavazi ya Nusu dijiti na halisi_ -- [Moloch](https://molochdao.com) [@MolochDAO](https://twitter.com/MolochDAO) - _Jumuiya inayolenga kutegemeza uboreshwaji wa Ethereum_ -- [Chama cha Uvamizi](https://raidguild.org) [@ChamachaUmavimizi](https://twitter.com/RaidGuild) - _Mkusanyiko wa wajenzi wa Web3_ +"DAOs" ni mashirika huru yaliogatuliwa. Haya makundi yanainua teknolojia ya Ethereum ili kuwezesha ushirikiano. Kwa mfano, kudhibiti uanachama, upigaji kura wa mapendekezo, ama kusimamia mali zilizokusanywa. Huku DAO bado ziko kwenye majaribio, zinatoa fursa ya kupata makundi unayofanana nayo, utapata washiriki na kukuza mchango wako kwenye jumuiya ya Ethereum. [Zaidi kuhusu DAOs](/dao/) + +- [DAOSquare](https://daosquare.io/) [@DAOSquare](https://twitter.com/DAOSquare) - _Tangaza dhana ya DAO katika nyanja zisizo za kiufundi na usaidie watu kuunda thamani kupitia DAO_ +- [Developer DAO](https://www.developerdao.com/) [@developer_dao](https://twitter.com/developer_dao) - _Jumuiya ya wajenzi wanaoamini katika umiliki wa pamoja wa mtandao_ +- [dOrg](https://dOrg.tech) [@dOrg_tech](https://twitter.com/dOrg_tech) - _Kikundi cha wasanidi wa kujitegemea wa Web3 kinachofanya kazi kama DAO_ +- [HausDAO](https://daohaus.club) [@nowdaoit](https://twitter.com/nowdaoit) - _Utawala wa kijamii wa DAOhaus_ +- [LexDAO](https://lexdao.org) [@lex_DAO](https://twitter.com/lex_DAO) - _Uhandisi wa kisheria_ +- [MetaCartel Ventures](https://metacartel.xyz) [@VENTURE_DAO](https://twitter.com/VENTURE_DAO) - _Ubia kwa ajili ya miradi ya kripto ya hatua ya awali_ +- [MetaFactory](https://metafactory.ai) [@TheMetaFactory](https://twitter.com/TheMetaFactory) - _Bidhaa za Mavazi za Kidijitali-Halisi_ +- [MolochDAO](https://molochdao.com) [@MolochDAO](https://twitter.com/MolochDAO) - _Jumuiya inayojikita katika kufadhili maendeleo ya Ethereum_ +- [Raid Guild](https://raidguild.org) [@RaidGuild](https://twitter.com/RaidGuild) - _Kikundi cha wajenzi wa Web3_ + +Tafadhali kumbuka kuzingatia [kanuni za maadili](/community/code-of-conduct) za ethereum.org wakati wowote na kwa namna yoyote unayochangia kwenye ethereum.org! diff --git a/public/content/translations/sw/community/grants/index.md b/public/content/translations/sw/community/grants/index.md index cd949d1e064..4afddf6fc84 100644 --- a/public/content/translations/sw/community/grants/index.md +++ b/public/content/translations/sw/community/grants/index.md @@ -1,5 +1,5 @@ --- -title: Msingi wa Ethereum na mipango ya ruzuku ya jamii +title: Programu za ruzuku za Msingi wa Ethereum na jamii description: Orodha ya mipango ya ruzuku katika mazingira yote ya Ethereum. lang: sw --- @@ -10,36 +10,60 @@ Programu zilizoorodheshwa hapa chini hutoa misaada ya ufadhili kwa miradi inayof Orodha hii imepangwa na jamii yetu. Ikiwa kuna kitu kinakosekana au sio sahihi, tafadhali hariri ukurasa huu! + + +
Waanzilishi, mnahitaji msaada kukuza biashara yenu? [Nenda kwenye Usaidizi kwa Waanzilishi](/founders/)
+
+ ## Mfumo mpana wa ikolojia ya Ethereum {#broad-ethereum-ecosystem} Programu hizi zinasaidia ikolojia ya Ethereum kwa kutoa fedha kwa miradi mingi. Hizi ni pamoja na suluhu za kutoweka, ujenzi wa jamii, usalama, faragha, na zaidi. Ruzuku hizi sio maalum kwa jukwaa moja la Ethereum na ni mahali pazuri pa kuanzia ikiwa huna uhakika. -- [Programu ya Usaidizi wa Ekolojia ya EF](https://esp.ethereum.foundation) - _Kufadhili miradi ya chanzo wazi ambayo inanufaisha Ethereum, kwa kuzingatia zana za ulimwengu , miundombinu, utafiti na bidhaa za umma_ -- [ESP Grant Explorer](https://esp.ethereum.foundation/funded-projects) - _Saraka inayoweza kutafutwa ya miradi 1,000+ inayosaidiwa na Programu ya Usaidizi wa Ekolojia_ -- [RFPs za Ethereum](https://github.com/ethereum/requests-for-proposals) - _Maombi ya Mapendekezo na Ethereum Foundation ya kazi na miradi katika ikolojia ya Ethereum_ -- [Moloch DAO](https://www.molochdao.com/) - _Faragha, ukuaji wa safu ya 2, usalama wa mteja, na zaidi_ -- [Ruzuku zilizo wazi](https://opengrants.com/explore) -- [Ruzuku za DAO](https://docs.google.com/spreadsheets/d/1XHc-p_MHNRdjacc8uOEjtPoWL86olP4GyxAJOFO0zxY/edit#gid=0) - _Ukurasa wa google wa mashirika yanayotoa Ruzuku._ +- [Programu ya Usaidizi wa Mfumo Ikolojia ya EF](https://esp.ethereum.foundation) - _Kufadhili miradi ya chanzo huria inayonufaisha Ethereum, kwa kuzingatia hasa zana za jumla, miundombinu, utafiti na bidhaa za umma_ +- [ESP Grant Explorer](https://esp.ethereum.foundation/funded-projects) - _Saraka inayoweza kutafutwa ya miradi 1,000+ inayosaidiwa na Programu ya Usaidizi wa Mfumo Ikolojia_ +- [Ruzuku za Kitaaluma](https://esp.ethereum.foundation/academic-grants) - _Ruzuku za kusaidia kazi ya kitaaluma inayohusiana na Ethereum_ + +## Vikusanyaji na mifumo ya orodha za ruzuku {#grant-list-aggregators} + +Rasilimali hizi hukusanya na kupanga fursa mbalimbali za ruzuku katika mfumo mzima wa ikolojia ya Ethereum, na kurahisisha ugunduzi wa fursa za ufadhili zinazolingana na mahitaji ya mradi wako. Tumezipanga kulingana na wasifu ili kukusaidia kuanza kutafuta rasilimali muhimu zaidi kulingana na mahitaji yako maalum ya ufadhili. + +### Kwa watafutaji wote wa ruzuku: Saraka za kina {#comprehensive-directories} + +Mifumo hii ya jumla inatoa chanjo pana ya ruzuku katika nafasi nzima ya Web3 na ni sehemu muhimu za kuanzia kwa mtu yeyote anayetafuta ufadhili: + +- [Blockworks Grantfarm](https://blockworks.co/grants/programs) - _Blockworks imekusanya saraka ya kina ya ruzuku zote, Maombi ya mapendekezo (RFP), na zawadi za hitilafu._ +- [Ruzuku za Blockchain](https://www.blockchaingrants.org/) - _Saraka ya ruzuku za blockchain na sarafu za kidigitali_ +- [Ramani ya Ufadhili ya Karma](https://gap.karmahq.xyz/funding-map) - Saraka ya programu zote za ruzuku za web3, inayosasishwa kila wiki + +### Kwa wasanidi programu na wajenzi {#for-developers-and-builders} + +- [Kitazamaji cha Programu za Ruzuku](https://airtable.com/shr86elKgWTSCP4AY) - _Hifadhidata ya umma ya Airtable ya programu za ruzuku_ +- [Lahajedwali la Ruzuku za Web3](https://docs.google.com/spreadsheets/d/1c8koZCI-GLnD8MG-eFcXPOBCNu1v8-aXIfwAAvc7AMc/edit#gid=0) - _Lahajedwali la Google la fursa za ruzuku za Web3_ +- [Ruzuku za Arbitrum](https://arbitrum.foundation/grants) — Arbitrum DAO na [The Arbitrum Foundation](https://arbitrum.foundation/) + +### Kwa miradi ya DeFi na programu za kifedha {#for-defi-projects} + +- [LlamaoGrants](https://wiki.defillama.com/wiki/LlamaoGrants) - _Saraka ya programu za ruzuku ya DeFi Llama_ +- [Ruzuku za AlphaGrowth](https://alphagrowth.io/crypto-web3-grants-list) - _Orodha ya kina ya ruzuku za crypto na Web3_ +- [Ruzuku za Uniswap Foundation](https://www.uniswapfoundation.org/build) - _Ruzuku za Unichain na Uniswap v4 na usaidizi kwa wajenzi wa DeFi_ -## Mradi maalum {#project-specific} +### Kwa wachangiaji wa DAO na wabunifu wa utawala {#for-dao-contributors} -Miradi hii imeunda misaada yao kwa miradi inayolenga kukuza na kujaribu teknolojia yao wenyewe. +Rasilimali za miradi inayoendeshwa na jamii na majaribio ya utawala: -- [Mpango wa Ruzuku wa Aave](https://aavegrants.org/) - _[Aave](https://aave.com/) hutoa ruzuku za DAO_ -- [Mpango wa Ruzuku za Compound](https://compoundgrants.questbook.app/) - _[Compaound](https://compound.finance/) hugharamia ikolojia_ -- [Balancer](https://balancer.gitbook.io/balancer-v2/ecosystem/community/grants) - _fedha za ikolojia ya [Balancer](https://balancer.fi/)_ -- [Mpango wa Ruzuku wa Consensys](https://consensys.net/grants/) - _[Consensys](https://consensys.net/) fedha za minyororo ya blocku & ruzuku za Ethereum_ -- [Shirika la Ruzuku ya Ikolojia ya Lido (LEGO)](https://lego.lido.fi/) - _hugharamia ikolojia ya [Lido](https://lido.fi/)_ -- [Grafu](https://airtable.com/shrdfvnFvVch3IOVm) - _Ikolojia ya [Grafu](https://thegraph.com/)_ -- [Programu ya Ruzuku za Uniswap](https://www.uniswapfoundation.org/) - _Jamii ya [Uniswap](https://uniswap.org/)_ +- [Ruzuku za DAO](https://docs.google.com/spreadsheets/d/1XHc-p_MHNRdjacc8uOEjtPoWL86olP4GyxAJOFO0zxY/edit#gid=0) - _Lahajedwali la Google la mashirika yanayotoa ruzuku_ +- [Hifadhidata ya MetaGov](https://docs.google.com/spreadsheets/d/1e5g-dlWWsK2DZoZGBgfxyfGNSddLk-V7sLEgfPjEhbA/edit#gid=780420708) - _Ramani ya kina ya ruzuku za Web3_ -## Ufadhili wa Kwadratiki {#quadratic-funding} +### Bidhaa za umma na athari {#public-goods-and-impact} -Mizizi ya wazi ya Ethereum imesababisha ukuaji wa mtindo mpya wa kuvutia wa kukusanya fedha: fedha za kwadratiki. Hii ina uwezo wa kuboresha jinsi tunavyofadhili aina zote za bidhaa za umma katika siku zijazo. Ufadhili wa kwadaratiki huhakikisha kuwa miradi inayopokea ufadhili mwingi ni ile yenye mahitaji ya kipekee. Kwa maneno mengine, miradi ambayo inasimama kuboresha maisha ya watu wengi. [Zaidi juu ya ufadhili wa kwadaratiki.](/defi/#quadratic-funding) +Programu hizi hulenga kufadhili miradi inayonufaisha jamii pana, bidhaa za umma, na mipango yenye athari. Hizi ni pamoja na watoa ruzuku, pamoja na mifumo ya michango inayotumia mifumo ya ugawaji wa ufadhili wa onchain ikiwa ni pamoja na [ufadhili wa quadratic](/defi/#quadratic-funding): -- [Gitcoin](https://gitcoin.co/grants) -- [clr.fedha](https://clr.fund/) +- [Gitcoin](https://www.gitcoin.co/program) - _Ruzuku za Gitcoin hutumia mifumo mingi ya ugawaji wa mtaji kufadhili miradi ya chanzo huria na bidhaa za umma katika mfumo wa ikolojia wa Ethereum_ +- [Octant](https://octant.app/home) - _Mfumo ikolojia wa ufadhili wa bidhaa za umma unaosawazisha manufaa ya wote na uwezeshaji wa kifedha wa mtu binafsi_ +- [Giveth](https://giveth.io/) - _Jukwaa la michango ya sarafu za kidigitali linalowezesha michango ya moja kwa moja kutoka kwa miradi ya manufaa bila ada zozote za ziada_ +- [Artizen](https://artizen.fund/) - _Husaidia wabunifu kufadhili kwa kulinganisha miradi mipya katika mstari wa mbele wa sanaa, sayansi, teknolojia na utamaduni_ +- [Quadratic Accelerator](https://qacc.giveth.io/) - _Programu ya kuongeza kasi ya uanzishaji inayotumia ufadhili wa quadratic kusaidia miradi inayofaidi umma_ -## Fanya kazi kwenye Ethereum {#work-in-ethereum} +## Kazi katika Ethereum {#work-in-ethereum} Hauko tayari kuanza rasimu yako mwenyewe? Kuna makampuni zaidi ya mia moja yanayotafuta watu binafsi wenye shauku wafanye kazi na kutoa michango kwenye ikolojia ya Ethereum. Unatafuta taarifa zaidi? [Angalia kazi zinazohusiana na Ethereum](/community/get-involved/#ethereum-jobs) diff --git a/public/content/translations/sw/community/language-resources/index.md b/public/content/translations/sw/community/language-resources/index.md index 31a3a660987..9201fc75e7f 100644 --- a/public/content/translations/sw/community/language-resources/index.md +++ b/public/content/translations/sw/community/language-resources/index.md @@ -4,117 +4,150 @@ description: Vyanzo vya kujifunza kuhusu Ethereum vya lugha tofauti na kiingerez lang: sw --- -# Vyanzo vya lugha {#language-resources} +# Rasilimali za lugha {#language-resources} Jamii ya Ethereum ni ya ulimwengu mzima na imejaa mamilioni ya wazungumzaji wasiozungumza kiingereza. Lengo letu ni kutoa elimu kwa kutumia lugha zote na kuondoa kizuizi cha lugha kinachofanya uungaji mkono wa Ethereum kutoka pande zote ulimwenguni kutokua changamoto. -Kama ungependa kusoma katika lugha yako ama unafahamu m tu asiyezungumza kiingereza, unaweza kupata orodha ya vyanzo visivyo katika lugha ya kiingereza hapo chini. Mamia kwa maelfu ya wapenzi wa Ethereum hukusanyika kwenye majukwaa ya mtandaoni kupeana taarufa, kuongelea mabaoresho ya hivi karibuni, jadili masuala ya kiufundi, na kufikiria Ethereum ijayo. +Kama ungependa kusoma katika lugha yako ama unafahamu m tu asiyezungumza kiingereza, unaweza kupata orodha ya vyanzo visivyo katika lugha ya kiingereza hapo chini. Mamia ya maelfu ya wapenzi wa Ethereum hukusanyika kwenye majukwaa haya ya mtandaoni kushiriki taarifa, kuongelea mabaoresho ya hivi karibuni, kujadili masuala ya kiufundi, na kufikiria masuala ya baadaye. -Je, unajua chanzo cha elimu ya Ethereum cha lugha yako? [Fungua suala](https://github.com/ethereum/ethereum-org-website/issues/new/choose) kukiongeza kwenye orodha! +Je, unajua chanzo cha elimu ya Ethereum cha lugha yako? [Fungua suala](https://github.com/ethereum/ethereum-org-website/issues/new/choose) ili kuliongeza kwenye orodha! -## Vyanzo vya Ethereum.org {#ethereum-org} +## Rasilimali za Ethereum.org {#ethereum-org} -Ethereum.org imetafsiriwa kwenda kwenye lugha zaidi ya 40 unazoweza kupata kwenye ukurasa wetu wa lugha. +Ethereum.org imetafsiriwa katika lugha zaidi ya 40 ambazo unaweza kuzipata kwa kutumia menyu yetu ya kiteuzi cha lugha, iliyoko juu ya kila ukurasa. -![Language selector menu](./language-selector-menu.png) +![Menyu ya kiteuzi cha lugha](./language-selector-menu.png) -Kama unazungumza lugha zaidi ya moja na ungependa kutusaidia kufikia watu wengi zaidi, unaweza kujihusisha nasi kwenye[Programu ya Ufasiri wa ethereum.org](/contributing/translation-program/#translation-program) na kutusaidia kutafsiri tovuti yetu. +Ikiwa unajua lugha mbili na unataka kutusaidia kufikia watu wengi zaidi, unaweza pia kushiriki katika [Programu ya Tafsiri ya ethereum.org](/contributing/translation-program/#translation-program) na utusaidie kutafsiri tovuti. -## Vyanzo kwa wanajamii {#community} +## Rasilimali za jamii {#community} -### Kireno cha Brazili {#br-pt} +### Kireno cha Brazil {#br-pt} **Habari** -- [BelnCrypto](http://www.beincrypto.com.br) -taarifa za kripto na majarida, ikijumuisha orodha za masoko yanayopatikana Brazili -- [Cointelegraph](http://cointelegraph.com.br/category/analysis)- Hii ni Cointelegrapgh ya kibrazili, chanzo kikubwa cha habari juu ya kripto -- [Livecoins](http://www.livecoins.com.br/ethereum) - Taarifa na chombo cha kripto -- [Seudinheiro](http://www.seudinheiro.com/criptomoedas/) ripoti na taarifa za kripto +- [BeInCrypto](http://www.beincrypto.com.br) - habari na makala za sarafu ya kidigitali, ikiwa ni pamoja na orodha ya mabadilishano, yanayopatikana nchini Brazil +- [Cointelegraph](http://cointelegraph.com.br/category/analysis) - toleo la Kireno la Cointelegraph, chanzo kikuu cha habari za sarafu ya kidigitali +- [Livecoins](http://www.livecoins.com.br/ethereum) - habari za sarafu ya kidigitali na zana +- [Seudinheiro](http://www.seudinheiro.com/criptomoedas/) - habari na ripoti za sarafu ya kidigitali +- [Modular Crypto](https://modularcrypto.xyz/) - habari za sarafu ya kidigitali na makala za kielimu **Elimu** -- [web3dev](https://www.web3dev.com.br/) - Ghala la maudhui na jamii ya wasanidi programu walioko discord. -- [Web3Brasil](https://github.com/web3brasil/web3brasil) - vyanzo vya kujifunza Web3 na DeFi -- [CriptoFacil](http://www.criptofacil.com/ultimas-noticias/) - taarifa na elimu juu ya kripto, ikijumuisha 'ethereum na DeFi kwa wanaoanza' -- [CriptoAtivos](http://www.criptoativos.wiki.br/) - Utambuzi kutoka kwenye uwazi wa kripto, blogu na elimu -- [Cointimes](http://www.cointimes.com.br/) - Taarfia na elimu juu ya kripto -- [Kianzilishi cha Web3](https://docs.google.com/document/d/1X8PSTFH7FTw9J-gbKWM6Y430SWCBT8d4t4pJgFQHJ8E/) - muongozo unaojibu maswali yanayoulizwa mara nyingi na maswali ya msingi ya kripto +- [web3dev](https://www.web3dev.com.br/) - Kitovu cha maudhui na jamii ya Discord kwa wasanidi programu wa web 3. +- [Web3Brasil](https://github.com/web3brasil/web3brasil) - rasilimali za kujifunza Web3 na DeFi +- [CriptoFacil](http://www.criptofacil.com/ultimas-noticias/) - habari na elimu ya sarafu ya kidigitali, ikiwa ni pamoja na ‘Ethereum kwa wanaoanza’ na ‘DeFi’ kwa wanaoanza +- [CriptoAtivos](http://www.criptoativos.wiki.br/) - maarifa kutoka kwa nafasi ya sarafu ya kidigitali, elimu na blogi +- [Cointimes](http://www.cointimes.com.br/) - habari na elimu ya sarafu ya kidigitali +- [Web3 starter pack](https://docs.google.com/document/d/1X8PSTFH7FTw9J-gbKWM6Y430SWCBT8d4t4pJgFQHJ8E/) - mwongozo unaojibu maswali yanayoulizwa mara kwa mara na ya msingi ya crypto ### Kichina {#zh} **Vyanzo vya jumla** -- [Ethereum.cn](https://www.ethereum.cn/) - maudhui yanayodumishwa na jamii, yakieleza visasisho vya safu ya makubaliano, vikao vyote vya wasanidi programu waliobobea, safu ya 2, na mengineyo mengi. -- [EthFans](https://github.com/editor-Ajian/EthFans.org-annual-collected-works/) - jifunze kila kitu toka misingi ya chini ya Ethereum hadi mada za juu -- [Unitimes](https://mp.weixin.qq.com/s/tvloZSDBSOQN9zDQj_91kA) - maudhui yanayodumisha jamii, yakieleza juu ya Ethereum, DeFi, NFT, maarifa yanayohusiana na Web3 -- [123ETH](https://123eth.org/) - Lango la ikolojia ya Ethereum -- [Zhen Xiao](http://zhenxiao.com/blockchain/) - kozi za bure juu ya sarafu ya kripto na programu zake -- [Karatasi Nyeupe](https://ethereum.org/whitepaper//[%E4%B8%AD%E6%96%87]-%E4%BB%A5%E5%A4%AA%E5%9D%8A%E7%99%BD%E7%9A%AE%E4%B9%A6) - Toleo la kichina la Karatasi Nyeupe +- [Ethereum.cn](https://www.ethereum.cn/) - maudhui yanayotunzwa na jamii, yanayohusu sasisho la safu ya makubaliano, madokezo yote ya mikutano ya wasanidi wa msingi, safu ya 2, n.k. +- [EthFans](https://github.com/editor-Ajian/EthFans.org-annual-collected-works/) - jifunze kila kitu kuanzia misingi hadi mada za juu za Ethereum +- [Unitimes](https://mp.weixin.qq.com/s/tvloZSDBSOQN9zDQj_91kA) - maudhui yanayotunzwa na jamii, yanayohusu maarifa yanayohusiana na Ethereum, DeFi, NFT, Web3 +- [123ETH](https://123eth.org/) - Lango la mfumo ikolojia wa Ethereum +- [Zhen Xiao](http://zhenxiao.com/blockchain/) - kozi za bure za mtandaoni kuhusu sarafu ya kidigitali na matumizi yake +- [Waraka Rasmi wa Ethereum](/zh/whitepaper/) - toleo la Kichina la Waraka Rasmi wa Ethereum **Ikolojia ya Ethereum** -- [ETHPlanet](https://www.ethplanet.org/) - hackathons za mtandaoni na za uso kwa uso, zikitioa mafunzo kwa wanafunzi walioko vyuoni -- [PrimitiveLane](https://www.primitiveslane.org/) - shirika lisilo la faida, lililojikita juu ya teknolojia ya blockchain(mnyororo-wa-bloku) -- [Jamii ya watafsiri wa Ethereum CN](https://www.notion.so/Ethereum-Translation-Community-CN-05375fe0a94c4214acaf90f42ba40171) - jamii iliojikita kutafsiri maudhui ya elimu ya Ethereum +- [ETHPlanet](https://www.ethplanet.org/) - hackathon za mtandaoni na za ana kwa ana, zinazotoa mafunzo kwa wanafunzi wa vyuo vikuu +- [PrimitivesLane](https://www.primitiveslane.org/) - kikundi cha utafiti kisicho cha faida, kinachojikita kwenye teknolojia ya blockchain +- [Ethereum Translation Community CN](https://www.notion.so/Ethereum-Translation-Community-CN-05375fe0a94c4214acaf90f42ba40171) - jamii inayojitolea kutafsiri maudhui ya kielimu ya Ethereum **Kwa wasanidi programu** -- [DappLearning](https://github.com/Dapp-Learning-DAO/Dapp-Learning) - kundi linalojifunza miradi ya dapp na hushirikisha wengine mawazo na maoni yao kila wiki -- [JifunzeBlockchain](https://learnblockchain.cn/) - jumuiya kwa ajili ya wasanidi programu, kushirikishana taarifa juu kuhusu teknolojia ya blockchain(mnyororo wa bloku) +- [DappLearning](https://github.com/Dapp-Learning-DAO/Dapp-Learning) - kikundi cha kujifunza kinachosoma miradi mikuu ya mfumo mtawanyo wa kimamlaka na kushiriki mawazo na maoni kila wiki +- [LearnBlockchain](https://learnblockchain.cn/) - jamii ya wasanidi programu, wanaoshiriki habari kuhusu teknolojia ya blockchain **Kwa watafiti wa Kriptograhia** -- [SecbitLabs](https://mp.weixin.qq.com/s/69_tqBJpr_sbaKtR1sBRMw) ni anauani ta WeChat, inayoelezea kriptograhia, usalama na mengineyo. -- [Sparkbyte](https://mp.weixin.qq.com/s/9KgKTc_jtJ7bWKdbNPoqvQ) - anuanani ya WeChat, inayoelezea teknolijia ya zk +- [SecbitLabs](https://mp.weixin.qq.com/s/69_tqBJpr_sbaKtR1sBRMw) - akaunti ya WeChat, inayoelezea kriptografia, usalama, n.k. +- [Sparkbyte](https://mp.weixin.qq.com/s/9KgKTc_jtJ7bWKdbNPoqvQ) - akaunti ya WeChat, inayoelezea teknolojia ya zk + +### Kicheki {#cs} + +- [Gwei.cz](https://gwei.cz) - jamii ya karibu na Web3, inaunda maudhui ya kielimu, inaandaa matukio ya mtandaoni na ya ana kwa ana +- [Gwei.cz Příručka](https://prirucka.gwei.cz/) - mwongozo wa Ethereum kwa wanaoanza +- [DAO Příručka](https://dao.gwei.cz/) - mwongozo wa wanaoanza kwa DAO +- [Mastering Ethereum](https://ipfs.io/ipfs/bafybeidvuxhnsgfx3tncpfxheqglkjwmdxclknlgd7s7qggd2a6bzgb27m) - Mastering Ethereum kwa Kicheki ### Kifaransa {#fr} -- [Ethereum Ufaransa](https://www.ethereum-france.com/) - Ethereum Ufaransa hupanga matukio, huunda maudhui na huimiza mijadala katika Ethereum -- [Ethereum.fr](https://ethereum.fr/) - Taarifa za Ethereum na elimu -- [BanklessFR](https://banklessfr.substack.com/) - jarida la Bankless katika lugha ya kifaransa -- [KriptoFR](https://cryptofr.com/category/44/ethereum-general) - jukwaa la sarafu-ya-kripto na ukurasa mdogo wa Ethereum +- [Ethereum France](https://www.ethereum-france.com/) - Ethereum France huandaa matukio, huunda maudhui na kuhimiza majadiliano kuhusu Ethereum +- [Ethereum.fr](https://ethereum.fr/) - habari na elimu ya Ethereum +- [BanklessFR](https://banklessfr.substack.com/) - jarida la Bankless kwa Kifaransa +- [CryptoFR](https://cryptofr.com/category/44/ethereum-general) - jukwaa la sarafu ya kidigitali lenye ukurasa mdogo wa Ethereum ### Kijerumani {#de} -- [Jifunze na Microsoft (Solidity)](https://docs.microsoft.com/de-de/learn/modules/blockchain-learning-solidity/) - kwa kutumia Solidity -- [Jifunze na Microsoft (mikataba erevu)](https://docs.microsoft.com/de-de/learn/modules/blockchain-solidity-ethereum-smart-contracts/) - Andika Mikataba Erevu ya Ethereum kwa kutmia Solidity -- [Jifunze na Microsoft (Mitandao ya Ethereum)](https://docs.microsoft.com/de-de/learn/modules/blockchain-ethereum-networks/) - jiunge na tuma mitandao ya Ethereum -- [Jifunze na Microsoft (minyororo-ya-bloku)](https://docs.microsoft.com/de-de/learn/paths/ethereum-blockchain-development/) - kuingia katika uundaji wa minyororo-ya-bloku +- [Microsoft Learn (Solidity)](https://docs.microsoft.com/de-de/learn/modules/blockchain-learning-solidity/) - kutumia Solidity +- [Microsoft Learn (smart contracts)](https://docs.microsoft.com/de-de/learn/modules/blockchain-solidity-ethereum-smart-contracts/) - kuandika mikataba-erevu ya Ethereum kwa kutumia Solidity +- [Microsoft Learn (Ethereum networks)](https://docs.microsoft.com/de-de/learn/modules/blockchain-ethereum-networks/) - unganisha na sambaza mitandao ya Ethereum +- [Microsoft Learn (blockchains)](https://docs.microsoft.com/de-de/learn/paths/ethereum-blockchain-development/) - mwanzo wa usanidi wa blockchain + +### Kiebrania {#he} + +- [Udi Wertheimer - Nini watumiaji wa bitcoin wanaweza kujifunza kutoka kwa Ethereum](https://www.cryptojungle.co.il/udi-wertheimer-what-bitcoiners-can-learn-from-ethereum/) +- [Omer Greismen (OpenZeppelin) - Jinsi Tulivyozuia Udukuzi wa Mkataba-erevu wa Dola Bilioni 15](https://www.cryptojungle.co.il/omer-greisman-openzeppelin/) +- [Shy Datika (INX) - Uwekaji ishara na mustakabali wa dhamana, ikiwa ni pamoja na je Ethereum ni dhamana](https://www.cryptojungle.co.il/shy-datika-tokenization/) +- [Roy Confino (Lemonade) - Bima @ Ethereum](https://www.cryptojungle.co.il/roy-confino-insurance/) +- [Idan Ofrat (Fireblocks) - Upokeaji wa Kitaasisi](https://www.cryptojungle.co.il/idan-ofrat-fireblocks/) +- [Gal Weizman (MetaMask) - MetaMask ni nini](https://www.cryptojungle.co.il/gal-weizman-metamask/) +- [Dror Aviely (Consensys) - Kituo cha Ethereum](https://www.cryptojungle.co.il/dror-aviely-ethereum-center/) +- [Nir Rozin - Kuwa cryptopunk](https://www.cryptojungle.co.il/nir-rozin-cryptopunk/) +- [Adan Kedem - Michezo ya Kubahatisha & Metaverse](https://www.cryptojungle.co.il/adan-kedem-web3-gaming/) +- [Uri Kolodny (Starkware) - Tabaka za Ethereum na blockchain](https://www.cryptojungle.co.il/uri-kolodny-starkware/) +- [Udi Wertheimer - Ethereum 2.0 dhidi ya ushindani](https://www.cryptojungle.co.il/udi-on-eth2/) +- [Ben Samocha (mimi mwenyewe) - Ethereum 2.0 - je ni fursa?](https://www.cryptojungle.co.il/etherurm2-week-summary/) +- [Alon Muroch (Bloxstaking) - Ethereum 2.0 ni nini?](https://www.cryptojungle.co.il/alon-moroch-eth2/) +- [Eilon Aviv (Collider Ventures) - Nini kinaweza kwenda vibaya na Ethereum 2.0](https://www.cryptojungle.co.il/eilon-aviv-eth2-0/) +- [Eilon Aviv (Collider Ventures) - Kwa nini tunahitaji Ethereum 2.0](https://www.cryptojungle.co.il/eilon-aviv-ethereum-2-0/) ### Kiitaliano {#it} -- [Ethereum ya Italia](https://www.ethereum-italia.it/) - Elimu ya Ethereu, Matukio, na taarifa zinazojikiata katika mikataba erevu na teknolijia ya minyororo-ya-bloku -- [Podkasti ya Ethereum Italia](https://www.ethereum-italia.it/podcast/) - Podkasti ya Ethereum katika lugha ya Kiitaliano -- [Jifunze na Microsoft (Solidity)](https://docs.microsoft.com/it-it/learn/modules/blockchain-learning-solidity/) - jifunze jinsi ya kutumia Solidity -- [Jifunze na Microsoft (mikataba erevu)](https://docs.microsoft.com/it-it/learn/modules/blockchain-solidity-ethereum-smart-contracts/) - jifunze juu ya uandishi wa mikataba erevu ya Ethereum kwa kutmia Solidity -- [Jifunze na Microsoft (dApps)](https://docs.microsoft.com/it-it/learn/modules/blockchain-create-ui-decentralized-apps/) - uunda kiolesura kwa kutumia programu zilizogatuliwa +- [Ethereum Italia](https://www.ethereum-italia.it/) - elimu, matukio, na habari za Ethereum, inayojikita kwenye mikataba-erevu na teknolojia ya blockchain +- [Ethereum Italia Podcast](https://www.ethereum-italia.it/podcast/) - Podcast ya Ethereum kwa Kiitaliano +- [Microsoft Learn (Solidity)](https://docs.microsoft.com/it-it/learn/modules/blockchain-learning-solidity/) - jifunze jinsi ya kutumia Solidity +- [Microsoft Learn (Smart contracts)](https://docs.microsoft.com/it-it/learn/modules/blockchain-solidity-ethereum-smart-contracts/) - jifunze kuhusu kuandika mikataba-erevu ukitumia Solidity +- [Microsoft Learn (dapps)](https://docs.microsoft.com/it-it/learn/modules/blockchain-create-ui-decentralized-apps/) - tengeneza kiolesura cha mtumiaji na mifumo uliotawanywa -### Kiispaniola {#es} +### Kijapani {#ja} -- [Ethereum Madrid](https://ethereummadrid.com/) - blockchain, DeFi, na kozi za utawala, matukio na blogi -- [Cointelegraph](https://es.cointelegraph.com/ethereum-for-beginners) - Muongozo wa Ethereum kwa wanaoanza katika lugha ya kihispaniola -- [ Mafunzo mtandaoni](https://tutoriales.online/curso/solidity) - jifunze solidity na usanidi programu juu ya Ethereum -- [ Utangulizi wa kozi za uundaji wa Ethereum](https://youtube.com/playlist?list=PLTqiwJDd_R8y9pfUBjhkVa1IDMwyQz-fU) - Misingi ya Solidity, upimaji na usambazji wa mkataba erevu wa kwanza uliounda -- [Utangilizi wa usalama na uvamizi kwenye Ethereum](https://youtube.com/playlist?list=PLTqiwJDd_R8yHOvteko_DmUxUTMHnlfci) - elewa wa udhaifu wa kawaida na mambo ya usalama kwenye mikataba erevu ilio halisi -- [Utangulizi wa kozo za uundaji wa DeFi](https://youtube.com/playlist?list=PLTqiwJDd_R8zZiP9_jNdaPqA3HqoW2lrS) - jifinze jinsi mikataba erevu ya DeFi inavyofanya kazi kwenye Solidity na unda programu ya kutengeneza masoko kiotomatiki +- [Chama cha Mabadilishano ya Mali za Mtandaoni na za Kripto cha Japani](https://jvcea.or.jp/) +- [Chama cha Biashara ya Mali za Kripto cha Japani](https://cryptocurrency-association.org/) +- [Anza na usanidi wa blockchain - Jifunze | Microsoft Docs](https://docs.microsoft.com/ja-jp/learn/paths/ethereum-blockchain-development/) - Njia hii ya kujifunza inakutambulisha kwa blockchain na usanidi kwenye jukwaa la Ethereum +- [Mastering Ethereum](https://www.oreilly.co.jp/books/9784873118963/) - Mastering Ethereum kwa Kijapani +- [Hands-On Smart Contract Development with Solidity and Ethereum](https://www.oreilly.co.jp/books/9784873119342/) - Usanidi wa Vitendo wa Mkataba-erevu kwa kutumia Solidity na Ethereum kwa Kijapani -### Kituruki {#tr} +### Kirusi {#ru} -- [BTk Akademi](https://www.btkakademi.gov.tr/portal/course/blokzincir-ve-kripto-paralar-10569#!/about) - kozi zinazojikita kwenye blockchain na sarafu ya kirpto -- [Ubadilishwaji mkuu wa jina: nini kilitokea juu ya Eth2?](https://miningturkiye.org/konu/ethereum-madenciligi-bitiyor-mu-onemli-gelisme.655/) - Fasiri ya kituruki ya chapisho la blogi, linaloelezea kuondoka kwa neno 'Eth2' +- [Cyber Academy](https://cyberacademy.dev) - nafasi ya kielimu kwa wajenzi wa web3 +- [Forklog](https://forklog.com) - habari na makala za kielimu kuhusu crypto kwa ujumla, teknolojia zilizopo na masasisho yajayo ya blockchain mbalimbali +- [BeInCrypto](https://ru.beincrypto.com) - habari, uchambuzi wa bei za crypto na makala zisizo za kiufundi zenye maelezo rahisi kuhusu kila kitu katika crypto -### Kivietinamu {#vi} +### Kihispania {#es} -- [Kundi la Tino](https://wiki.tino.org/ethereum-la-gi/) - muihstasari wa Ethereum, dApps, pochi na maulizo -- [Bonyeza Chi Bitcoin](https://tapchibitcoin.io/tap-chi/tin-tuc-ethereum-eth) - jukwaa la mtandaoni likiwa na kurasa ndogo za elimu na taarifa juu ya Ethereum -- [Coin68](https://coin68.com/ethereum-tieu-diem/) - lango la sarafu ya kripto likiwa na taarifa za Ethereum na maudhui ya kuelimisha +- [Ethereum Madrid](https://ethereummadrid.com/) - kozi za blockchain, DeFi, na utawala, matukio na blogi +- [Cointelegraph](https://es.cointelegraph.com/ethereum-for-beginners) - mwongozo wa Ethereum kwa wanaoanza kwa Kihispania +- [Tutoriales online](https://tutoriales.online/curso/solidity) - jifunze Solidity na upangaji programu kwenye Ethereum +- [Utangulizi wa Kozi ya Usanidi wa Ethereum](https://youtube.com/playlist?list=PLTqiwJDd_R8y9pfUBjhkVa1IDMwyQz-fU) - misingi ya Solidity, majaribio na usambazaji wa mkataba wako wa kwanza wa erevu +- [Utangulizi wa Kozi ya Usalama na Udukuzi kwenye Ethereum](https://youtube.com/playlist?list=PLTqiwJDd_R8yHOvteko_DmUxUTMHnlfci) - elewa udhaifu wa kawaida na masuala ya usalama katika mikataba-erevu halisi +- [Utangulizi wa Kozi ya Usanidi wa DeFi](https://youtube.com/playlist?list=PLTqiwJDd_R8zZiP9_jNdaPqA3HqoW2lrS) - jifunze jinsi mikataba-erevu ya DeFi inavyofanya kazi katika Solidity na uunde Muundaji wako wa Soko la Kiotomatiki +- [Cryptoversidad](https://www.youtube.com/c/Cryptoversidad) - Elimu isiyo ya kiufundi ya blockchain kutoka kwa anayeanza hadi wa juu. Jifunze kila kitu kuhusu crypto na Ethereum. -### Kijapani {#ja} +### Kituruki {#tr} + +- [BTK Akademi](https://www.btkakademi.gov.tr/portal/course/blokzincir-ve-kripto-paralar-10569#!/about) - kozi inayozingatia blockchain na sarafu ya kidigitali +- [Kubadilisha jina kuu: nini kilitokea kwa Eth2?](https://miningturkiye.org/konu/ethereum-madenciligi-bitiyor-mu-onemli-gelisme.655/) - Tafsiri ya Kituruki ya chapisho la blogu la kubadilisha jina kuu, ikielezea kuachana na istilahi ya 'Eth2' + +### Kivietinamu {#vi} -- [Muungano wa Masoko ya mtandaoni na mali za Kripto za Japani](https://jvcea.or.jp/) -- [Muungano wa Biashara za Kriptomali za Japani](https://cryptocurrency-association.org/) -- [Anza na uundaji wa programu za blockchain - Jifunze | Nyaraka za Microsoft](https://docs.microsoft.com/ja-jp/learn/paths/ethereum-blockchain-development/) - Njia hii ya kujifunza itakupa utangulizi wa minyororo na usimbuaji juu ya jukwaa la Ethereum -- [Kujiimarisha na Ethereum](https://www.oreilly.co.jp/books/9784873118963/) - Kujiimarisha na Ethereum kwa kijapani -- [Fanya kazi juu ya undaji wa mikataba erevu kwa Solidity na Ethereum](https://www.oreilly.co.jp/books/9784873119342/) - Fanya kazi juu ya undaji wa mikataba erevu kwa Solidity na Ethereum kwa kijapani +- [Tino Group](https://wiki.tino.org/ethereum-la-gi/) - muhtasari wa Ethereum, mfumo mtawanyo wa kimamlaka, mikoba na Maswali Yanayoulizwa Mara kwa Mara +- [Tap Chi Bitcoin](https://tapchibitcoin.io/tap-chi/tin-tuc-ethereum-eth) - jukwaa la wavuti lenye kurasa ndogo za habari na elimu ya Ethereum +- [Coin68](https://coin68.com/ethereum-tieu-diem/) - lango la sarafu ya kidigitali lenye habari za Ethereum na maudhui ya kielimu diff --git a/public/content/translations/sw/community/online/index.md b/public/content/translations/sw/community/online/index.md index 4608c398b56..65ad2cc3d40 100644 --- a/public/content/translations/sw/community/online/index.md +++ b/public/content/translations/sw/community/online/index.md @@ -1,47 +1,74 @@ --- title: Jamii za mtandaoni -description: Orodha ya mipango ya ruzuku katika mazingira yote ya Ethereum. +description: Gundua majukwaa ya mtandaoni, vyumba vya mazungumzo, na jumuiya za mitandao ya kijamii ambapo wapenzi wa Ethereum hukusanyika kujadili na kushirikiana. lang: sw --- -# Jamii za mtandaoni {#online-communities} +# Jumuiya za mtandaoni {#online-communities} Mamia ya maelfu ya wapenzi wa Ethereum hukusanyika kwenye majukwaa haya ya mtandaoni kushiriki taarifa, kuongelea mabaoresho ya hivi karibuni, kujadili masuala ya kiufundi, na kufikiria masuala ya baadaye. -## Mikutano {#forums} +## Sera ya kuorodhesha {#listing-policy} -r/ethereum - mambo yote kuhusu -r/ethfinance - upande wa fedha kuhusu Ethereum, ikiwemo DeFi -r/ethdev - kulenga maboresho ya -r/ethtrader - mitindo na uchanganuzi wa soko -r/ethstaker - karibuni nyote mnaotaka kuweka hisa kwenye -Ushirika wa Ethereum Magicians - jamii iliyozama kwenye viwango vya kiufundi katika -Ethereum Stackexchange - majadiliano na usaidizi wa wasanidi programu wa -Utafiti wa Ethereum - bodi ya ujumbe yenye ushawishi mkubwa kuhusu utafiti wa uchumi wa kripto +Ili kudumisha uadilifu na thamani ya jumuiya zilizoorodheshwa, ethereum.org hufuata sera kali ya kuamua ustahiki: -## Vyumba vya gumzo {#chat-rooms} +### Vigezo vya kustahiki {#eligibility-criteria} -Ethereum Cat Herders - jamii iliyozama kutoa usaidizi wa usimamizi wa miradi kwa maboresho ya -Wadukuzi wa Ethereum - gumzo la Discord linaloendeshwa na ETHGlobal: jamii ya mtandaoni ya wadukuzi wa Ethereum kote duniani -CryptoDevs - Maboresho ya Ethereum yanalenga jamii ya Discord -EthStaker Discord - jamii iliyozama kutoa usaidizi wa usimamizi wa miradi kwa maboresho ya -Timu ya tovuti ya Ethereum.org - tembelea na upige gumzo kwenye maboresho ya wavuti wa ethereum.org na uunde na timu na watu kutoka katika jamii -Solidity Matrix - gumzo la maboresho ya solidity (Gitter) -Solidity Matrix - gumzo la maboresho ya solidity (Matrix) +- **Umuhimu**: Jumuiya lazima ihusiane moja kwa moja na Ethereum na mfumo wake wa ikolojia. +- **Kiwango cha shughuli**: Jumuiya inapaswa kuwa hai, kwa mwingiliano wa mara kwa mara, machapisho, au majadiliano. Jumuiya ambazo hazitumiki au zilizolala zinaweza kuondolewa. +- **Ujumuishi**: Jumuiya inapaswa kukuza mazingira ya kukaribisha yanayoheshimu utofauti na kuhimiza ushiriki kutoka kwa watu wa asili zote. +- **Lengo lisilo la kibiashara**: Orodha zimekusudiwa kwa nafasi zinazoendeshwa na jumuiya badala ya majukwaa ya kibiashara au ya utangazaji. -## YouTube na Twitter {#youtube-and-twitter} +### Miongozo ya maudhui {#content-guidelines} -Msingi wa Ethereum - Fahamu yanayojiri kutoka Msingi wa -@ethereum - Akaunti rasmi ya Msingi wa -@ethdotorg - Tovuti ya Ethereum, imeundwa kwa ajili ya kukuza jamii ya kimataifa -Orodha ya akaunti za twitter za Ethereum zenye ushawishi +- **Maudhui yanayofaa**: Jumuiya lazima ziwe na miongozo yao ya usimamizi, ikiepuka barua taka, matamshi ya chuki, unyanyasaji, au maudhui yoyote yanayokuza shughuli haramu. +- **Lugha**: Ingawa Kiingereza ndiyo lugha ya msingi, jumuiya katika lugha zingine zinahimizwa kuwasilisha mradi tu zinadumisha mazingira jumuishi na ya heshima. +- **Uwazi**: Taarifa zilizo wazi kuhusu madhumuni ya jumuiya, kanuni, na wasimamizi zinapaswa kupatikana kwa wanachama. + +### Mapendekezo mengine {#other-recommendations} + +- **Ufikivu**: Mabaraza ya jumuiya yanapaswa kufikiwa na kila mtu kusoma bila kuhitaji kujisajili. +- **Mialiko ya seva ya Discord**: Inapendekezwa kuwa mialiko ya kuaminika tu ya seva ya Discord iongezwe kwenye ethereum.org. Ikiwezekana, mialiko hii inapaswa kuunganishwa na ukurasa wa jumuiya kwenye tovuti (k.m., [ethglobal.com/discord](https://ethglobal.com/discord)) au kutoka kwa URL rasmi (k.m., [discord.gg/ethstaker](https://discord.gg/ethstaker) au [discord.com/invite/ethstaker](https://discord.com/invite/ethstaker)). + +Ikiwa unaamini jumuiya inapaswa kuongezwa au kuondolewa kulingana na miongozo hii, tafadhali [fungua hoja kwenye hazina yetu ya GitHub](https://github.com/ethereum/ethereum-org-website/issues). + +## Mabaraza {#forums} + +r/ethereum - mambo yote ya Ethereum +r/ethfinance - upande wa kifedha wa Ethereum, ikiwemo DeFi +r/ethdev - inalenga maendeleo ya Ethereum +r/ethtrader - mitindo na uchambuzi wa soko +r/ethstaker - karibu kwa wote wanaopenda kusimamisha kwenye Ethereum +Fellowship of Ethereum Magicians - jumuiya inayolenga viwango vya kiufundi katika Ethereum +Ethereum Stackexchange - majadiliano na msaada kwa wasanidi programu wa Ethereum +Ethereum Research - ubao wa ujumbe wenye ushawishi mkubwa zaidi kwa utafiti wa kiuchumi-kripto + +## Vyumba vya mazungumzo {#chat-rooms} + +Ethereum Cat Herders - jumuiya inayolenga kutoa usaidizi wa usimamizi wa miradi kwa maendeleo ya Ethereum +Ethereum Hackers - Soga ya Discord inayoendeshwa na ETHGlobal: jumuiya ya mtandaoni kwa ajili ya wahandisi wa Ethereum kote ulimwenguni +CryptoDevs - Jumuiya ya Discord inayolenga maendeleo ya Ethereum +EthStaker Discord - mwongozo unaoendeshwa na jumuiya, elimu, usaidizi, na rasilimali kwa wasimamishaji waliopo na wanaotarajiwa +Ethereum.org website team - pita na uzungumze kuhusu maendeleo na usanifu wa wavuti wa ethereum.org na timu na watu kutoka kwa jumuiya +Matos Discord - jumuiya ya wabunifu wa web3 ambapo wajenzi, watu mashuhuri wa viwanda, na wapenzi wa Ethereum hukutana. Tunapenda sana maendeleo, usanifu, na utamaduni wa web3. Njoo ujenge nasi. +Solidity Gitter - soga kwa ajili ya maendeleo ya solidity (Gitter) +Solidity Matrix - soga kwa ajili ya maendeleo ya solidity (Matrix) +Ethereum Stack Exchange - jukwaa la maswali na majibu +Peera Community Forum - jukwaa la maswali na majibu lililogatuliwa + +## YouTube na X (zamani Twitter) {#youtube-and-twitter} + +Ethereum Foundation - Pata taarifa za hivi punde kutoka kwa Msingi wa Ethereum +@ethereum - Akaunti kuu ya Ethereum kwa jumuiya +@ethereumfndn - Akaunti rasmi ya Msingi wa Ethereum +@ethdotorg - Lango la Ethereum, lililojengwa kwa ajili ya jumuiya yetu inayokua ya kimataifa - +
Pata maelezo zaidi kuhusu DAO -
+
diff --git a/public/content/translations/sw/community/research/index.md b/public/content/translations/sw/community/research/index.md new file mode 100644 index 00000000000..c1de2190e4b --- /dev/null +++ b/public/content/translations/sw/community/research/index.md @@ -0,0 +1,399 @@ +--- +title: Maeneo makuu ya utafiti hai kuhusu Ethereum +description: Uchunguzi wa maeneo tofauti ya utafiti huria na jinsi ya kushiriki +lang: sw +--- + +# Maeneo Yanayofanyiwa Utafiti katika Ethereum + +Moja ya nguvu za msingi za Ethereum ni kwamba jumuiya inayofanya kazi ya utafiti na uhandisi inaiboresha kila mara. Watu wengi wenye shauku na ujuzi ulimwenguni pote wangependa kujishughulisha na masuala bora ya Ethereum, lakini si rahisi kila wakati kujua masuala hayo ni nini. Ukurasa huu unaeleza kwa kifupi maeneo muhimu ya utafiti yanayofanyiwa kazi kwa bidii, yakitumika kama mwongozo wa kuelewa maendeleo ya kisasa na ya msingi ya mtandao wa Ethereum. + +## Jinsi ambavyo utafiti wa Ethereum unafanya kazi + +Utafiti wa Ethereum uko wazi na uko wazi, unaojumuisha kanuni za [Sayansi Iliyogatuliwa (DeSci)](https://hackernoon.com/desci-decentralized-science-as-our-chance-to-recover-the-real-science). Utamaduni ni kufanya zana za utafiti na matokeo kuwa wazi na shirikishi iwezekanavyo, kwa mfano, kupitia daftari zinazoweza kutekelezeka. Utafiti wa Ethereum unaendelea haraka, matokeo mapya yamechapishwa na kujadiliwa hadharani kwenye mijadala kama vile [ethresear.ch](https://ethresear.ch/) badala ya kufikia jumuiya kupitia machapisho ya kitamaduni baada ya duru za ukaguzi wa marika. + +## Rasilimali za Jumla za Utafiti + +Bila kujali mada mahususi, kuna habari nyingi kuhusu utafiti wa Ethereum zinazoweza kupatikana katika [ethresear.ch](https://ethresear.ch) na [kituo cha Eth R&D Discord](https://discord.gg/qGpsxSA). Haya ndiyo maeneo ya msingi ambapo watafiti wa Ethereum wanajadili mawazo ya hivi punde na fursa za maendeleo. + +Ripoti hii iliyochapishwa Mei 2022 na [DelphiDigital](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) inatoa muhtasari mzuri wa mpango wa utekelezaji wa Ethereum. + +## Vyanzo vya Ufadhili + +Jinsi ya kuhusika katika utafiti wa Ethereun na kulipwa kwa sababu yake Kwa mfano, [Wakfu wa Ethereum](/foundation/) uliendesha hivi majuzi [raundi ya ufadhili wa Ruzuku za Masomo](https://esp.ethereum.foundation/academic-grants). You can find information on active and upcoming funding opportunities on [the Ethereum grants page](/community/grants/). + +## Utafiti wa Itifaki + +Utafiti wa itifaki unahusika na safu ya msingi ya Ethereum - seti ya sheria zinazofafanua jinsi nodes zinavyounganisha, kuwasiliana, kubadilishana na kuhifadhi data ya Ethereum na kuja kwa makubaliano kuhusu hali ya kiambajengo. Utafiti wa itifaki hugawanywa katika kategoria mbili za kiwango cha juu: makubaliano na utekelezaji. + +### Makubaliano + +Utafiti wa makubaliano unahusika na [utaratibu wa uthibitisho wa hisa wa Ethereum](/developers/docs/consensus-mechanisms/pos/). Baadhi ya Mifano ya Mada za Utafiti wa Makubaliano + +- Kutambua na Kufunga Mianya +- Kukadiria Kiasi cha Usalama wa Uchumi wa Kripto +- Kuongeza Usalama au Utendakazi wa Utekelezaji wa Wateja +- na Kuendeleza Wateja Wepesi + +Pamoja na utafiti wa kuangalia mbele, baadhi ya marekebisho ya kimsingi ya itifaki, kama vile mwisho wa nafasi moja, yanafanyiwa utafiti ili kuruhusu maboresho makubwa kwa Ethereum. Zaidi ya hayo, ufanisi, usalama, na ufuatiliaji wa mitandao ya rika-kwa-rika kati ya wateja wa makubaliano pia ni mada muhimu za utafiti. + +#### Vifaa vya Kusoma vya Msingi + +- Utangulizi wa Uthibitisho wa Rehani +- Hati ya Utafiti ya Casper +- [Maelezo ya Casper-FFG](https://medium.com/unitychain/intro-to-casper-ffg-9ed944d98b2d) +- Hati ya Utafiti ya Gasper + +#### Utafiti wa hivi karibuni + +- Makubaliano ya Ethresear.ch +- Mzozo wa Upatikanaji dhidi ya Uthibitisho wa Mwisho +- [Mwisho wa nafasi moja](https://ethresear.ch/t/a-model-for-cumulative-committee-based-finality/10259) +- Mgawanyo wa Mtengenezaji na Mpendekezaji + +### Utekelezaji + +[Mwisho wa nafasi moja](https://ethresear. ch/t/a-model-for-cumulative-committee-based-finality/10259). Kuna Maeneo Mengi ya Utafiti Inayoendelea, Ikiwa Ni Pamoja Na: + +- Kujenga na Kuimarisha Usaidizi wa Wateja Wepesi +- Utafiti wa Viwango vya Gas +- na kujumuisha miundo mipya ya data (k.m., Verkle Tries). + +#### Vifaa vya Kusoma vya Msingi/Marejeleo + +- Utangulizi wa Mashine Halisi ya Ethereum +- Makubaliano ya Ethresear.ch: Tabaka la Utekelezaji + +#### Utafiti wa Hivi Karibuni + +- [Uboreshaji wa hifadhidata](https://github.com/ledgerwatch/erigon/blob/devel/docs/programmers_guide/db_faq.md) +- Mwisho wa Muda wa Hali ya Mtandao +- Njia za Kufikia Mwisho wa Muda wa Hali ya Mtandao +- [Pendekezo la mwisho wa matumizi na hali](https://notes.ethereum.org/@vbuterin/verkle_and_state_expiry_proposal) +- Usimamizi wa Historia ya Mtandao +- Miti ya Verkle +- [Sampuli ya upatikanaji wa data](https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding) + +## Uendelezaji wa Wateja + +Wateja wa Ethereum ni Utekelezaji wa Itifaki ya Ethereum Ukuzaji wa mteja hufanya matokeo kutoka kwa utafiti wa itifaki kuwa ukweli kwa kuwajenga kuwa wateja hawa. Ukuzaji wa mteja ni pamoja na kusasisha vipimo vya mteja na pia kujenga utekelezaji maalum. + +Kituo cha Ethereum Kinahitajika Kuendesha Programu Mbili + +1. Programu ya Mteja wa Makubaliano +2. Programu ya Mteja wa Utekelezaji + +Marejeo: Kurasa za Vituo na Wateja Unaweza pia kupata historia ya masasisho yote ya Ethereum kwenye [ukurasa wa historia](/ethereum-forks/). + +### Programu ya utekelezaji + +- Programu za Wateja wa Utekelezaji +- Uainishaji wa API ya Utekelezaji + +### Programu za Wateja wa Makubaliano + +- Uainishaji wa Programu za Wateja wa Makubaliano +- Uainishaji wa API ya Beacon + +## Uongezaji na utendaji {#scaling-and-performance} + +Kuongeza Ethereum ni eneo kubwa la utafiti kwa watafiti wa Ethereum. Mbinu za sasa ni pamoja na upakiaji wa miamala kwenye matoleo na kuyafanya kuwa ya bei nafuu iwezekanavyo kwa kutumia matone ya data. Maelezo ya utangulizi kuhusu kuongeza viwango vya Ethereum yanapatikana kwenye [ukurasa wa kuongeza](/developers/docs/scaling). + +### Safu ya 2 {#layer-2} + +Sasa kuna itifaki kadhaa za Tabaka 2 ambazo huweka kiwango cha Ethereum kwa kutumia mbinu tofauti za kuunganisha shughuli na kuziweka kwenye safu ya 1 ya Ethereum. Hili ni jambo linalokua kwa kasi sana lenye utafiti mwingi na uwezo wa maendeleo. + +#### Usomaji wa ziada {#background-reading-2} + +- [Utangulizi wa safu ya 2](/layer-2/) +- [Polynya: Rollups, DA na minyororo ya kawaida](https://polynya.medium.com/rollups-data-availability-layers-modular-blockchains-introductory-meta-post-5a1e7a60119d) + +#### Utafiti wa hivi karibuni {#recent-research-2} + +- [Upangaji-sawa wa Arbitrum kwa waratibu wa mfuatano](https://eprint.iacr.org/2021/1465) +- [Ethresear.ch Safu ya 2](https://ethresear.ch/c/layer-2/32) +- [Ramani inayolenga Rollup](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) +- [L2Beat](https://l2beat.com/) + +### Madaraja {#bridges} + +Eneo moja mahususi la safu ya 2 ambalo linahitaji utafiti na maendeleo zaidi ni madaraja salama na yenye utendaji. Hii inajumuisha madaraja kati ya Safu za 2 mbalimbali na madaraja kati ya Safu ya 1 na Safu ya 2. Hili ni eneo muhimu sana la utafiti kwa sababu madaraja hulengwa mara kwa mara na wadukuzi. + +#### Usomaji wa ziada {#background-reading-3} + +- [Utangulizi wa madaraja ya blockchain](/bridges/) +- [Vitalik kwenye madaraja](https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are_the_efs_research_team_pt_7_07_january/hrngyk8/) +- [Makala ya madaraja ya Blockchain](https://medium.com/1kxnetwork/blockchain-bridges-5db6afac44f8) +- [Thamani iliyofungwa kwenye madaraja](https://dune.com/eliasimos/Bridge-Away-\(from-Ethereum\)) + +#### Utafiti wa hivi karibuni {#recent-research-3} + +- [Kuhalalisha madaraja](https://stonecoldpat.github.io/images/validatingbridges.pdf) + +### Ugawanyaji {#sharding} + +Kugawa blockchain ya Ethereum kwa muda mrefu imekuwa sehemu ya ramani ya maendeleo. Hata hivyo, suluhisho jipya za uongezaji kama vile "Danksharding" kwa sasa zinachukua nafasi kuu. + +Mtangulizi wa Dankharding kamili inayojulikana kama Proto-Dankharding ilipatikana na uboreshaji wa mtandao wa Cancun-Deneb ("Dencun"). + +[Zaidi kuhusu sasisho la Dencun](/roadmap/dencun/) + +#### Usomaji wa ziada {#background-reading-4} + +- [Maelezo ya Proto-Danksharding](https://notes.ethereum.org/@vbuterin/proto_danksharding_faq) +- [Video ya Bankless kuhusu Danksharding](https://www.youtube.com/watch?v=N5p0TB77flM) +- [Muhtasari wa Utafiti wa Ugawanyaji wa Ethereum](https://notes.ethereum.org/@serenity/H1PGqDhpm?type=view) +- [Danksharding (Polynya)](https://polynya.medium.com/danksharding-36dc0c8067fe) + +#### Utafiti wa hivi karibuni {#recent-research-4} + +- [EIP-4844: Proto-Danksharding](https://eips.ethereum.org/EIPS/eip-4844) +- [Vitalik kuhusu ugawanyaji na sampuli za upatikanaji wa data](https://hackmd.io/@vbuterin/sharding_proposal) + +### Vifaa {#hardware} + +[[nodes zinazoendeshwa]](/developers/docs/nodes-and-clients/)run-a-node/kwenye vifaa vya kompyuta vya wastani ni muhimu kuweka mfumo mtawanyo wa kawaida wa Ethereum. Kwa hivyo, utafiti unaofanya kazi katika kupunguza mahitaji ya vifaa vya kuendesha nodi ni eneo muhimu la utafiti. + +#### Usomaji wa ziada {#background-reading-5} + +- [Ethereum kwenye ARM](https://ethereum-on-arm-documentation.readthedocs.io/en/latest/) + +#### Utafiti wa hivi karibuni {#recent-research-5} + +- [ecdsa kwenye FPGAs](https://ethresear.ch/t/does-ecdsa-on-fpga-solve-the-scaling-problem/6738) + +## Usalama {#security} + +Usalama ni mada pana ambayo inaweza kujumuisha uzuiaji wa barua taka/udanganyifu, usalama wa mkoba, usalama wa vifaa, usalama wa uchumi wasarafu ya kidigitali, ufuatiliaji wa hitilafu na majaribio ya programu na programu za mteja na usimamizi wa ufunguo. Kuchangia maarifa katika maeneo haya kutasaidia kuchochea utumiaji mkuu. + +### Kriptografia na ZKP {#cryptography--zkp} + +Uthibitisho wa Zero-knowledge (ZKP) na kriptografia ni muhimu kwa kujenga faragha na usalama katika Ethereum na matumizi yake. Zero-knowledge ni nafasi changa lakini inayosonga Kasi na fursa nyingi za utafiti na maendeleo zilizo wazi. Baadhi ya uwezekano ni pamoja na kuendeleza utekelezaji bora zaidi wa [algorithm ya Keccak hashing](https://hackmd.io/sK7v0lr8Txi1bgION1rRpw?view#overview), kupata ahadi bora zaidi za polynomial kuliko zilizopo sasa au kupunguza gharama ya kutengeneza ufunguo wa umma wa ecdsa na sakiti za uthibitishaji wa sahihi. + +#### Usomaji wa ziada {#background-reading-6} + +- [blogu ya 0xparc](https://0xparc.org/blog) +- [zkp.science](https://zkp.science/) +- [Podikasti ya Zero-Knowledge](https://zeroknowledge.fm/) + +#### Utafiti wa hivi karibuni {#recent-research-6} + +- [Maendeleo ya hivi karibuni katika kriptografia ya mkunjo wa duaradufu](https://ethresear.ch/t/the-ec-fft-algorithm-without-elliptic-curve-and-isogenies/11346) +- [Ethresear.ch ZK](https://ethresear.ch/c/zk-s-nt-arks/13) + +### Pochi {#wallets} + +Pochi za Ethereum zinaweza kuwa viendelezi vya kivinjari, programu za kompyuta na simu au mikataba-erevu kwenye Ethereum. Kuna utafiti unaoendelea kuhusu pochi za urejeshaji za kijamii ambazo hupunguza baadhi ya hatari zinazohusiana na usimamizi wa ufunguo wa mtumiaji binafsi. Kuhusishwa na maendeleo ya mikoba ni utafiti wa aina ya kitofauti ya uondoaji wa akaunti, ambayo ni eneo muhimu la utafiti mchanga. + +#### Usomaji wa ziada {#background-reading-7} + +- [Utangulizi wa pochi](/wallets/) +- [Utangulizi wa usalama wa pochi](/security/) +- [Usalama wa Ethresear.ch](https://ethresear.ch/tag/security) +- [Uondoaji wa Akaunti wa EIP-2938](https://eips.ethereum.org/EIPS/eip-2938) +- [Uondoaji wa Akaunti wa EIP-4337](https://eips.ethereum.org/EIPS/eip-4337) + +#### Utafiti wa hivi karibuni {#recent-research-7} + +- [mkoba wa mikataba mahiri zinazozingatia uhalali](https://ethereum-magicians.org/t/validation-focused-smart-contract-wallets/6603) +- [Mustakabali wa akaunti](https://ethereum-magicians.org/t/validation-focused-smart-contract-wallets/6603) +- [Opcodes za EIP-3074 AUTH na AUTHCALL](https://eips.ethereum.org/EIPS/eip-3074) +- [Kuchapisha msimbo kwenye anwani ya EOA](https://eips.ethereum.org/EIPS/eip-5003) + +## Jamii, elimu na uhamasishaji {#community-education-and-outreach} + +Kuingiza watumiaji wapya kwenye Ethereum kunahitaji nyenzo mpya za elimu na mbinu za kuwafikia. Hii inaweza kujumuisha machapisho na makala za blogu, vitabu, podikasti, meme, rasilimali za kufundishia, matukio na kitu kingine chochote ambacho hujenga jumuiya, kukaribisha wanaoanzisha wapya na kuelimisha watu kuhusu Ethereum. + +### UX/UI {#uxui} + +Ili kuwaleta watu wengi zaidi kwenye Ethereum, mfumo ikolojia lazima uboreshe UX/UI. Hii itahitaji wabunifu na wataalam wa bidhaa kuchunguza upya muundo wa pochi na programu. + +#### Usomaji wa ziada {#background-reading-8} + +- [Ethresear.ch UX/UI](https://ethresear.ch/c/ui-ux/24) + +#### Utafiti wa hivi karibuni {#recent-research-8} + +- [Discord ya Ubunifu wa Web3](https://discord.gg/FsCFPMTSm9) +- [Kanuni za Ubunifu wa Web3](https://www.web3designprinciples.com/) +- [Majadiliano ya UX ya Ethereum Magicians](https://ethereum-magicians.org/t/og-council-ux-follow-up/9032/3) + +### Uchumi {#economics} + +Utafiti wa uchumi katika Ethereum kwa upana hufuata mbinu mbili: kuthibitisha usalama wa taratibu zinazotegemea motisha za kiuchumi na kuchambua mtiririko wa thamani kati ya itifaki, maombi na watumiaji. Kuna mambo changamano ya kiuchumi ya sarafu ya kidigitali zinayohusiana na mali asili ya Ethereum (etha) na ishara zilizojengwa juu yake (kwa mfano NFTs na tokeni za ERC20). + +#### Usomaji wa ziada {#background-reading-9} + +- [Kikundi cha Motisha Imara](https://rig.ethereum.org/) +- [Warsha ya ETHconomics katika Devconnect](https://www.youtube.com/playlist?list=PLTLjFJ0OQOj5PHRvA2snoOKt2udVsyXEm) + +#### Utafiti wa hivi karibuni {#recent-research-9} + +- [Uchambuzi wa kimajaribio wa EIP1559](https://arxiv.org/abs/2201.05574) +- [usawa katika usambazaji wa mzunguko](https://ethresear.ch/t/circulating-supply-equilibrium-for-ethereum-and-minimum-viable-issuance-during-the-proof-of-stake-era/10954) +- [Kupima MEV: Je, msitu una giza kiasi gani?](https://arxiv.org/abs/2101.05511) + +### Nafasi ya bloku na masoko ya ada {#blockspace-fee-markets} + +Masoko ya blockspace husimamia ujumuishaji wa shughuli za watumiaji wa mwisho, ama moja kwa moja kwenye Ethereum (Safu ya 1) au kwenye mitandao iliyounganishwa, kwa mfano, mkusanyo(Safu ya 2). Kwenye Ethereum, miamala huwasilishwa kwa soko la ada lililowekwa katika itifaki kama EIP-1559, kulinda msururu dhidi ya barua taka na msongamano wa bei. Katika tabaka zote mbili, miamala inaweza kuzalisha bidhaa za nje, zinazojulikana kama Thamani ya Juu Inayoweza Kuchimbwa (MEV), ambayo hushawishi miundo mipya ya soko kunasa au kudhibiti bidhaa hizi za nje. + +#### Usomaji wa ziada {#background-reading-10} + +- [Muundo wa Utaratibu wa Ada ya Muamala wa Ethereum kiambajengo: Uchambuzi wa Kiuchumi wa EIP-1559 (Tim Roughgarden, 2020)](https://timroughgarden.org/papers/eip1559.pdf) +- [Uigaji wa EIP-1559 (Kikundi cha Motisha Imara)](https://ethereum.github.io/abm1559) +- [Ongeza uchumi kutoka kanuni za kwanza](https://barnabe.substack.com/p/understanding-rollup-economics-from?utm_source=url) +- [Flash Boys 2.0: Uendeshaji Mbele, Upangaji Upya wa Muamala, na Kukosekana kwa Uthabiti wa Makubaliano katika Ubadilishanaji Madaraka](https://arxiv.org/abs/1904.05234) + +#### Utafiti wa hivi karibuni {#recent-research-10} + +- [Wasilisho la video la EIP-1559 lenye sura nyingi](https://youtu.be/QbR4MTgnCko) +- [MEV ya vikoa tofauti](http://arxiv.org/abs/2112.01472) +- [Minada ya MEV](https://ethresear.ch/t/mev-auction-auctioning-transaction-ordering-rights-as-a-solution-to-miner-extractable-value/6788) + +### Motisha ya Proof-of-stake {#proof-of-stake-incentives} + +Wathibitishaji hutumia mali asili ya Ethereum (ether) kama dhamana dhidi ya tabia isiyo ya uaminifu. Uchumi wa kripto wa hili huamua usalama wa mtandao. Wathibitishaji wa hali ya juu wanaweza kutumia nuances ya safu ya motisha ili kuzindua mashambulizi ya wazi. + +#### Usomaji wa ziada {#background-reading-11} + +- [Kielelezo kikuu cha uchumi na uchumi wa Ethereum](https://github.com/CADLabs/ethereum-economic-model) +- [Uigaji wa motisha za PoS (Kikundi cha Motisha Imara)](https://ethereum.github.io/beaconrunner/) + +#### Utafiti wa hivi karibuni {#recent-research-11} + +- [Kuongezeka kwa upinzani wa udhibiti wa shughuli chini ya utenganisho wa mapendekezo/wajenzi (PBS)](https://notes.ethereum.org/s3JToeApTx6CKLJt8AbhFQ) +- [Mashambulizi Matatu kwenye PoS ya Ethereum](https://arxiv.org/abs/2110.10086) + +### Kusimamisha kioevu na derivatives {#liquid-staking-and-derivatives} + +Uwekaji hisa wa kioevu huruhusu watumiaji walio na chini ya 32 ETH kupokea mavuno mengi kwa kubadilishana ether kwa tokeni inayowakilisha ether iliyowekwa kwenye sehemu ambayo inaweza kutumika katika DeFi. Hata hivyo, motisha na mienendo ya soko inayohusiana na kusimamisha kioevu bado inagunduliwa, pamoja na athari zake kwa usalama wa Ethereum (k.m., hatari za uwekaji kati). + +#### Usomaji wa ziada {#background-reading-12} + +- [Ethresear.ch kusimamisha kioevu](https://ethresear.ch/search?q=liquid%20staking) +- [Lido: njia isiyosahihi ya uwekaji dhamana za Ethereum](https://blog.lido.fi/the-road-to-trustless-ethereum-staking/) +- [Roketi Pool: Utangulizi wa itifaki ya uwekaji dhamana](https://medium.com/rocket-pool/rocket-pool-staking-protocol-part-1-8be4859e5fbd) + +#### Utafiti wa hivi karibuni {#recent-research-12} + +- [Kushughulikia uondoaji kutoka kwa Lido](https://ethresear.ch/t/handling-withdrawals-in-lidos-eth-liquid-staking-protocol/8873) +- [Kitambulisho cha kujiondoa](https://ethresear.ch/t/withdrawal-credential-rotation-from-bls-to-eth1/8722) +- [Hatari za Derivatives za Kusimamisha Kioevu](https://notes.ethereum.org/@djrtwo/risks-of-lsd) + +## Kujaribu {#testing} + +### Uthibitishaji rasmi {#formal-verification} + +Uthibitishaji rasmi ni kuandika msimbo ili kuthibitisha kwamba vipimo vya makubaliano ya Ethereum ni sahihi na hayana hitilafu. Kuna toleo linaloweza kutekelezwa la vipimo vilivyoandikwa katika Python ambalo linahitaji matengenezo na maendeleo. Utafiti zaidi unaweza kusaidia kuboresha utekelezaji wa Python wa vipimo na kuongeza zana ambazo zinaweza kuthibitisha usahihi zaidi na kutambua masuala. + +#### Usomaji wa ziada {#background-reading-13} + +- [Utangulizi wa uthibitishaji rasmi](https://ptolemy.berkeley.edu/projects/embedded/research/vis/doc/VisUser/vis_user/node4.html) +- [Uthibitishaji Rasmi (Intel)](https://www.cl.cam.ac.uk/~jrh13/papers/mark10.pdf) + +#### Utafiti wa hivi karibuni {#recent-research-13} + +- [Uthibitishaji rasmi wa mkataba wa amana](https://github.com/runtimeverification/deposit-contract-verification) +- [Uthibitishaji rasmi wa mnyororo wa Beacon](https://github.com/runtimeverification/deposit-contract-verification) + +## Sayansi ya data na uchanganuzi {#data-science-and-analytics} + +Kuna haja ya zana zaidi za uchambuzi wa data na dashibodi zinazotoa maelezo ya kina kuhusu shughuli kwenye Ethereum na afya ya mtandao. + +### Usomaji wa ziada {#background-reading-14} + +- [Dune Analytics](https://dune.com/browse/dashboards) +- [Dashibodi ya utofauti wa wateja](https://clientdiversity.org/) + +#### Utafiti wa hivi karibuni {#recent-research-14} + +- [Uchanganuzi wa Data wa Kikundi cha Motisha Imara](https://rig.ethereum.org/) + +## Programu na zana {#apps-and-tooling} + +Safu ya maombi inasaidia mfumo wa ikolojia tofauti wa programu ambazo hutatua shughuli kwenye safu ya msingi ya Ethereum. Timu za maendeleo zinatafuta kila mara njia mpya za kutumia Ethereum ili kuunda matoleo yanayotungwa, yasiyoruhusiwa na yanayostahimili udhibiti ya programu muhimu za Web2 au kuunda dhana mpya kabisa za asili ya Web3. Wakati huo huo, zana mpya inatengenezwa ambayo inafanya dapps za ujenzi kwenye Ethereum kuwa ngumu zaidi. + +### DeFi {#defi} + +Fedha za kidijitali zisizo na mfumo mtawanyo (DeFi) ni mojawapo ya makundi makuu ya programu zilizojengwa juu ya Ethereum.Let me know if you need anything else. DeFi inalenga kuunda "legos za pesa" zinazoweza kutumika ambazo huruhusu watumiaji kuhifadhi, kuhamisha, kukopesha, kukopa na kuwekeza mali za sarafu ya Kidigitali kwa kutumia mikataba mahiri. DeFi ni nafasi inayoenda kwa kasi ambayo inasasishwa kila mara. Utafiti kuhusu itifaki salama, zenye ufanisi na zinazopatikana unahitajika kila mara. + +#### Usomaji wa ziada {#background-reading-15} + +- [DeFi](/defi/) +- [Coinbase: DeFi ni nini?](https://www.coinbase.com/learn/crypto-basics/what-is-defi) + +#### Utafiti wa hivi karibuni {#recent-research-15} + +- [Fedha zilizogatuliwa, umiliki wa kati?](https://arxiv.org/pdf/2012.09306.pdf) +- [Matumaini: Njia ya kufikia miamala ya dola ndogo](https://medium.com/ethereum-optimism/the-road-to-sub-dollar-transactions-part-2-compression-edition-6bb2890e3e92) + +### DAO {#daos} + +Kesi ya matumizi yenye athari kwa Ethereum ni uwezo wa kupanga kwa njia iliyotawanywa kupitia matumizi ya DAO. Kuna utafiti mwingi unaoendelea kuhusu jinsi DAOs kwenye Ethereum zinavyoweza kutayarishwa na kutumika kutekeleza aina zilizoboreshwa za utawala, kama zana ya uratibu iliyopunguzwa uaminifu, inayopanua sana chaguo za watu zaidi ya mashirika na mashirika ya kitamaduni. + +#### Usomaji wa ziada {#background-reading-16} + +- [Utangulizi wa DAO](/dao/) +- [Dao Collective](https://daocollective.xyz/) + +#### Utafiti wa hivi karibuni {#recent-research-16} + +- [Kuweka ramani ya mfumo ikolojia wa DAO](https://www.researchgate.net/publication/358694594_Mapping_out_the_DAO_Ecosystem_and_Assessing_DAO_Autonomy) + +### Zana za wasanidi programu {#developer-tools} + +Zana za wasanidi programu wa Ethereum zinaboreshwa kwa kasi. Kuna utafiti mwingi na maendeleo yanayoendelea katika eneo hili kwa ujumla. + +#### Usomaji wa ziada {#background-reading-17} + +- [Zana kulingana na lugha ya programu](/developers/docs/programming-languages/) +- [Mifumo ya Wasanidi Programu](/developers/docs/frameworks/) +- [Orodha ya zana za wasanidi programu za makubaliano](https://github.com/ConsenSys/ethereum-developer-tools-list) +- [Viwango vya tokeni](/developers/docs/standards/tokens/) +- [CryptoDevHub: Zana za EVM](https://cryptodevhub.io/wiki/ethereum-virtual-machine-tools) + +#### Utafiti wa hivi karibuni {#recent-research-17} + +- [Kituo cha Vifaa vya Eth R&D Discord Consensus](https://discordapp.com/channels/595666850260713488/746343380900118528) + +### Oracle {#oracles} + +Oracle huleta data ya nje ya mnyororo kwenye blockchain kwa njia isiyo na ruhusa na iliyogatuliwa. Kupata data hii kwenye mnyororo huwezesha dapps kuwa tendaji kwa matukio ya ulimwengu halisi kama vile kushuka kwa bei katika mali ya ulimwengu halisi, matukio katika programu za nje ya mtandao, au hata mabadiliko ya hali ya hewa. + +#### Usomaji wa ziada {#background-reading-18} + +- [Utangulizi wa Oracle](/developers/docs/oracles/) + +#### Utafiti wa hivi karibuni {#recent-research-18} + +- [Utafiti wa oracle za blockchain](https://arxiv.org/pdf/2004.07140.pdf) +- [Waraka mweupe wa Chainlink](https://chain.link/whitepaper) + +### Usalama wa programu {#app-security} + +Udukuzi kwenye Ethereum kwa ujumla hutumia udhaifu katika programu binafsi badala ya kwenye itifaki yenyewe. Wadukuzi na wasanidi programu wamefungwa katika mbio za silaha ili kuendeleza mashambulizi na ulinzi mpya. Hii inamaanisha kuwa kuna utafiti na maendeleo muhimu kila wakati ili kuweka programu salama dhidi ya udukuzi. + +#### Usomaji wa ziada {#background-reading-19} + +- [Ripoti ya unyonyaji wa Wormhole](https://blog.chainalysis.com/reports/wormhole-hack-february-2022/) +- Orodha ya matukio ya udukuzi wa kandarasi ya Ethereum](https://forum.openzeppelin.com/t/list-of-ethereum-smart-contracts-post-mortems/1191) +- [Rekt News](https://x.com/RektHQ?s=20&t=3otjYQdM9Bqk8k3n1a1Adg) + +#### Utafiti wa hivi karibuni {#recent-research-19} + +- [Programu za Ethresear.ch](https://ethresear.ch/c/applications/18) + +### Rundo la teknolojia {#technology-stack} + +Kugatua rundo zima la teknolojia ya Ethereum ni eneo muhimu la utafiti. Kwa sasa, dapps kwenye Ethereum kwa kawaida huwa na sehemu fulani za uwekaji kati kwa sababu zinategemea zana za kati au miundombinu. + +#### Usomaji wa ziada {#background-reading-20} + +- [Rundo la Ethereum](/developers/docs/ethereum-stack/) +- [Coinbase: utangulizi wa Web3 Stack](https://blog.coinbase.com/a-simple-guide-to-the-web3-stack-785240e557f0) +- [Utangulizi wa mikataba-erevu](/developers/docs/smart-contracts/) +- [Utangulizi wa hifadhi ya ugatuzi](/developers/docs/storage/) + +#### Utafiti wa hivi karibuni {#recent-research-20} + +- [Utungamanifu wa mkataba-erevu](/developers/docs/smart-contracts/composability/) diff --git a/public/content/translations/sw/contributing/adding-desci-projects/index.md b/public/content/translations/sw/contributing/adding-desci-projects/index.md new file mode 100644 index 00000000000..467443b73af --- /dev/null +++ b/public/content/translations/sw/contributing/adding-desci-projects/index.md @@ -0,0 +1,44 @@ +--- +title: Kuongeza miradi ya DeSci +description: Sera tunayoitumia tunapoongeza kiungo cha miradi kwenye ukurasa wa DeSci kwenye ethereum.org +lang: sw +--- + +# Kuongeza miradi {#adding-projects} + +Tunataka kuhakikisha tunaonyesha miradi mbalimbali na kutoa picha nzuri ya mandhari ya DeSci. + +Mtu yeyote yuko huru kupendekeza mradi wa kuorodhesha kwenye ukurasa wa DeSci kwenye ethereum.org. Vile vile, mtu yeyote anayegundua mradi ambao hauhusiani tena au hautimizi tena vigezo vyetu vya kustahiki yuko huru kupendekeza uondoaji wake. + +## Mfumo wa uamuzi {#the-decision-framework} + +### Vigezo vya kujumuishwa: Mahitaji ya lazima {#the-must-haves} + +- **Msimbo/data huria** - Uwazi wa msimbo na data ni kanuni ya msingi ya DeSci, hivyo miradi ya DeSci haipaswi kuwa ya chanzo funge. Msingi wa msimbo unapaswa kupatikana na ikiwezekana uwe wazi kwa maombi ya kuvuta (PRs). +- **Miradi ya DeSci inapaswa kugatuliwa kwa njia inayoonekana** - Hii inaweza kujumuisha kutawaliwa na DAO, au kwa kujenga kwa kutumia rundo la teknolojia lililogatuliwa pamoja na pochi zisizo za ulinzi. Pengine inahusisha mikataba-erevu inayoweza kukaguliwa kwenye Ethereum. +- **Taarifa za uorodheshaji zilizo za kweli na sahihi** - Inatarajiwa kwamba orodha zozote zilizopendekezwa kutoka kwa miradi zinakuja na taarifa za kweli na sahihi. Bidhaa zitakazodanganya taarifa za orodha, kama kudai bidhaa yako ni "chanzo wazi" wakati siyo, zitatolewa. +- **Kujitolea kunakoonekana kupanua ufikiaji wa sayansi** - Mradi wa DeSci unapaswa kuweza kueleza jinsi wanavyopanua ushiriki katika sayansi kwa umma kwa jumla, sio tu kwa wamiliki wa tokeni/NFT. +- **Inapatikana ulimwenguni kote** - Mradi wako hauna vikwazo vya kijiografia au mahitaji ya KYC yanayowatenga watu fulani kupata huduma yako. +- **Tovuti na nyaraka zenye taarifa** - Ni muhimu wageni kwenye tovuti ya mradi waweze kuelewa kile ambacho mradi unafanya hasa, jinsi unavyochangia katika ugatuzi wa miundombinu ya sayansi na jinsi ya kushiriki. +- **Mradi unapaswa kuwa sehemu ya mfumo ikolojia wa Ethereum** - Katika ethereum.org tunaamini Ethereum (na Tabaka zake za 2) kuwa ndio tabaka la msingi linalofaa kwa vuguvugu la DeSci. +- **Mradi umeimarika vizuri** - Mradi una watumiaji halisi ambao wameweza kupata huduma za mradi kwa miezi kadhaa. + +### Sifa za ziada + +- **Inapatikana katika lugha nyingi** - Mradi wako umetafsiriwa katika lugha nyingi, kuruhusu watumiaji kote ulimwenguni kuufikia. +- **Rasilimali za kielimu** - Bidhaa yako inapaswa kuwa na uzoefu mzuri wa kuanzisha mtumiaji ili kusaidia na kuwaelimisha watumiaji. Au ushahidi wa jinsi-ya maudhui kama makala au filamu. +- **Ukaguzi wa wahusika wengine** - Bidhaa yako imekaguliwa kitaalamu kwa ajili ya udhaifu na mhusika mwingine anayeaminika. +- **Mtu wa mawasiliano** - Mtu wa mawasiliano wa mradi (huyu anaweza kuwa mwakilishi kutoka DAO au jamii) atatusaidia sana kupata taarifa sahihi wakati mabadiliko yanapofanywa. Hii itaendelea kuhuisha ethereum.org ili iwe rahisi kusimamia wakati wa kukusanya taarifa za baadaye. + +## Matengenezo {#maintenance} + +Kama ni asili ya maji ya Ethereum, timu na bidhaa kuja na kwenda na uvumbuzi hutokea kila siku, hivyo tutaweza kufanya ukaguzi wa kawaida wa maudhui yetu ya: + +- Hakikisha kwamba miradi yote iliyoorodheshwa bado inatimiza vigezo vyetu +- Thibitisha kuwa hakuna bidhaa ambazo zimependekezwa zinazokidhi vigezo vyetu zaidi kuliko zile zilizoorodheshwa sasa hivi. + +Ethereum.org inasimamiwa na jamii ya chanzo huria na tunategemea jamii kusaidia kuiweka ikiwa ya kisasa. Ukigundua taarifa yoyote kuhusu miradi iliyoorodheshwa inayohitaji kusasishwa, tafadhali fungua suala au ombi la kuvuta (pull request) kwenye hazina yetu ya GitHub. + +## Masharti ya matumizi {#terms-of-use} + +Tafadhali pia rejelea [masharti yetu ya matumizi](/terms-of-use/). Taarifa juu ya ethereum.org hutolewa tu kwa madhumuni ya taarifa ya jumla. diff --git a/public/content/translations/sw/contributing/adding-developer-tools/index.md b/public/content/translations/sw/contributing/adding-developer-tools/index.md new file mode 100644 index 00000000000..50a703b15e4 --- /dev/null +++ b/public/content/translations/sw/contributing/adding-developer-tools/index.md @@ -0,0 +1,61 @@ +--- +title: Kuongeza zana za wasanidi programu +lang: sw +description: Vigezo vyetu vya kuorodhesha zana za wasanidi programu kwenye ethereum.org +--- + +# Kuongeza zana za wasanidi programu {#contributing-to-ethereumorg-} + +Tunataka kuhakikisha tunaorodhesha rasilimali bora zaidi za wasanidi programu iwezekanavyo ili watu waweze kujenga kwa kujiamini na kupata usaidizi wanaohitaji. + +Kama kuna zana muhimu ya msanidi programu ambayo tumeikosa, jisikie huru kuipendekeza mahali panapofaa. + +Kwa sasa tunaorodhesha zana za wasanidi programu katika [tovuti yetu ya wasanidi programu](/developers/). + +**Jisikie huru kupendekeza nyongeza mpya kwenye kurasa zinazofaa.** + +## Jinsi tunavyoamua {#ways-to-contribute} + +Mapendekezo ya zana za wasanidi programu yatatathminiwa kwa vigezo vifuatavyo: + +**Je, imetofautishwa kwa njia ya maana kutoka kwa zana zilizokwisha orodheshwa?** + +- Aina au kategoria mpya za zana +- Vipengele vipya vikilinganishwa na zana zilizopo zinazofanana +- Inalenga matumizi maalum ambayo hayajashughulikiwa na zana zilizopo zinazofanana + +**Je, zana ina nyaraka nzuri?** + +- Je, nyaraka zipo? +- Je, inatosha kutumia zana hiyo? +- Je, imesasishwa hivi karibuni? + +**Je, zana inatumika sana?** + +- Tutazingatia vipimo kama vile nyota za GitHub, takwimu za upakuaji, na iwapo inatumiwa na kampuni au miradi inayojulikana + +**Je, zana ina ubora wa kutosha?** + +- Je, kuna hitilafu zinazojirudia? +- Je, zana ni ya kuaminika? +- Je, zana inatunzwa kikamilifu? + +**Je, zana ni ya chanzo wazi?** + +Miradi mingi katika mfumo wa Ethereum ni ya chanzo wazi. Tuna uwezekano mkubwa wa kuorodhesha miradi ya chanzo wazi inayoruhusu wasanidi programu wa jumuiya kukagua msimbo na kuchangia humo. + +--- + +## Kuagiza Bidhaa {#product-ordering} + +Isipokuwa bidhaa zimepangwa kwa utaratibu maalum, kama vile kialfabeti, bidhaa zitaonyeshwa kuanzia ile iliyoongezwa zamani zaidi hadi ile mpya zaidi kwenye ukurasa. Kwa maneno mengine, bidhaa mpya zaidi huongezwa chini ya orodha. + +--- + +## Ongeza zana yako ya msanidi programu {#how-decisions-about-the-site-are-made} + +Kama unataka kuongeza zana ya msanidi programu kwenye ethereum.org na inakidhi vigezo, fungua suala kwenye GitHub. + + + Unda suala + diff --git a/public/content/translations/sw/contributing/adding-exchanges/index.md b/public/content/translations/sw/contributing/adding-exchanges/index.md new file mode 100644 index 00000000000..6f06bc69fef --- /dev/null +++ b/public/content/translations/sw/contributing/adding-exchanges/index.md @@ -0,0 +1,40 @@ +--- +title: Kuongeza masoko +description: Sera tunazotumia kuongeza masoko kwenye ethereum.org +lang: sw +--- + +# Kuongeza exchange za Ethereum {#adding-ethereum-exchanges} + +Yeyote anaweza kupendekeza kuongeza masoko mapya kwenye ethereum.org. + +Kwa sasa tunayaorodhesha kwenye: + +- [ethereum.org/get-eth](/get-eth/) + +Ukurasa huu unamruhusu mtumiaji kuingiza anapoishi na kuona ni masoko yapi anayoweza kutumia. Hii husaidia kubaini mapema kama kuna vizuizi vya kijiografia. + +Kwa sababu ya muktadha huu, tunahitaji taarifa mahususi pale unapopendekeza soko. + +**KUMBUKA:** Ikiwa unataka kuorodhesha exchange iliyogatuliwa, angalia [sera yetu ya kuorodhesha mikoba na mfumo mtawanyo wa kimamlaka](/contributing/adding-products/). + +## Tunachohitaji {#what-we-need} + +- Vizuizi vya kijiografia vinavyohusiana na soko hilo. Vizuizi vya kijiografia vinavyohusiana na soko la ubadilishaji vinapaswa kuelezwa kwa kina kwenye ukurasa au sehemu maalumu ya tovuti ya soko hilo. +- Sarafu ambazo watumiaji wanaweza kutumia kununua ETH +- Uthibitisho kwamba exchange ni kampuni halali ya biashara +- Taarifa za nyongeza ulizonazo - hizi zinaweza kuwa taarifa kuhusu kampuni kama vile miaka ya kufanya kazi, msaada wa kifedha, nk. + +Tunahitaji taarifa hizi ili tuweze kwa usahihi [kuwasaidia watumiaji kupata exchange wanayoweza kutumia](/get-eth/#country-picker). + +Na pia ili ethereum.org iwe na uhakika zaidi kwamba soko la kubadilishia fedha ni huduma halali na salama. + +--- + +## Ongeza exchange yako {#add-exchange} + +Kama unataka kuongeza soko lako la kubadilishia fedha kwenye ethereum.org, tengeneza suala kwenye GitHub. + + + Unda suala + diff --git a/public/content/translations/sw/contributing/adding-glossary-terms/index.md b/public/content/translations/sw/contributing/adding-glossary-terms/index.md new file mode 100644 index 00000000000..17db93f7a5e --- /dev/null +++ b/public/content/translations/sw/contributing/adding-glossary-terms/index.md @@ -0,0 +1,26 @@ +--- +title: "''Kuweka maneno ya ufafanuzi.''" +lang: sw +description: "''Vigezo vyetu vya kuongeza maneno mapya kwenye kamusi ya ethereum.org.''" +--- + +# Kuongeza maneno ya kamusi {#contributing-to-ethereumorg-} + +''Eneo hili hubadilika kila siku.''. ''Maneno mapya huingia mara kwa mara katika msamiati wa watumiaji wa Ethereum, na tunahitaji msaada wako kutoa marejeleo sahihi na ya kisasa kwa maneno yote yanayohusiana na Ethereum.''. Angalia [kamusi](/glossary/) ya sasa na tazama hapa chini ikiwa unataka kusaidia! + +## Viwango {#criteria} + +''Masharti mapya ya kamusi yatakaguliwa kwa kuzingatia vigezo ifuatavyo.'': + +- ''Je neno/ ufafanuzi huu ni wa kisasa na unahusiana na hali ya sasa? +- ''Je kuna neno linalofanana tayari kwenye kamusi?''? ''(Iwapo ndivyo, zingatia faida za kuongeza neno jipya dhidi ya kusasisha neno iliyokuwepo tayari).'' +- ''Je neno/ufafanuzi bila matangazo ya bidhaa au maudhui mengine ya matangazo? +- ''Je neno/ufafanuzi lina uhusiano wa moja kwa moja na Ethereum? +- ''Je, fasiri hiyo ni ya kimaadili, sahihi na haina maoni ya kibinafsi au upendeleo? +- ''Je chanzo ni cha kuaminika? ''Je wanafanya vyanzo vyao? + +--- + +## Ongeza neno lako {#how-decisions-about-the-site-are-made} + +Ikiwa unataka kuongeza neno la kamusi kwenye ethereum.org na linakidhi vigezo, [tengeneza suala kwenye GitHub](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=feature+%3Asparkles%3A%2Ccontent+%3Afountain_pen%3A&template=suggest_glossary_term.yaml). diff --git a/public/content/translations/sw/contributing/adding-layer-2s/index.md b/public/content/translations/sw/contributing/adding-layer-2s/index.md new file mode 100644 index 00000000000..19fa32e25d9 --- /dev/null +++ b/public/content/translations/sw/contributing/adding-layer-2s/index.md @@ -0,0 +1,97 @@ +--- +title: Kuongeza Tabaka 2s +description: "''Kanuni tunayotumia wakati wa kuongeza tabaka la 2 kwenye ethereu.org.''" +lang: sw +--- + +# Kuongeza safu za 2 {#adding-layer-2} + +''Tunataka kuhakikisha tunaorodhesha rasilimali bora zaidi ili watumiaji waweze kuvinjari nafasi ya tabaka la pili 2 kwa usalama wa kujiamini.''. + +''Kila mtu ana uhuru wa kupendekeza kuongeza tabaka la pili 2 kwenye ethereum.org.''. Ikiwa kuna safu ya 2 ambayo tumeikosa, **[tafadhali pendekeza](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=feature+%3Asparkles%3A%2Ccontent+%3Afountain_pen%3A&template=suggest_layer2.yaml)!** + +''Kwa sasa tunaorodhesha tabaka la pili kwenye kurasa zifuatazo.'': + +- [Optimistic rollups](/developers/docs/scaling/optimistic-rollups/) +- [Zero-knowledge rollups](/developers/docs/scaling/zk-rollups/) +- [Safu ya 2](/layer-2/) + +''Tabaka la pili 2 ni dhana mpya na ya kusisimua kwa Ethereum.''. ''Tumejaribu kuunda mfumo wa haki wa kuzingatia kwenye ethereum.org, lakini vigezo vya kuorodhesha vitabadilika na kubadilika kadri muda unavyopita.''. + +## Mfumo wa uamuzi {#decision-framework} + +### Vigezo vya kujumuishwa: ya lazima {#criteria-for-inclusion-the-must-haves} + +**Kuorodhesha kwenye L2BEAT** + +- Ili mradi huu uzingatiwe, ni lazima uorodheshwe kwenye [L2BEAT](https://l2beat.com). ''L2BEAT inatoa tathmini thabiti ya hatari kwa miradi ya tabaka la pili 2 ambayo tunategemea katika kutathmini miradi ya tabaka la pili L2.''. **Ikiwa mradi haujaangaziwa kwenye L2BEAT, hatutauorodhesha kama L2 kwenye ethereum.org.** +- [Jifunze jinsi ya kuongeza mradi wako wa L2 kwenye L2BEAT](https://github.com/l2beat/l2beat/blob/master/CONTRIBUTING.md). + +**Chanzo wazi** + +- ''Kanuni zako lazima ziweze kupatikana na unapaswa kupokea ombi la mchanganyiko wa mabadiliko kutoka kwa jamii pana.''. + +**Jamii ya safu ya 2** + +''Kwa sasa tunazingatia yafuatayo kuwa suluhisho za tabaka la pili 2: + +- ''Kuunganisha kwa matumaini.'' +- ''Kuunganisha kwa ujanja wa kukosa maarifa.'' + +_Hatuzingatii masuluhisho mengine ya kuongeza kiwango ambayo hayatumii Ethereum kwa upatikanaji wa data au usalama kuwa safu ya 2._ + +**Ethereum kwa upatikanaji wa data** + +- ''Upatikanaji wa taarifa ni kipengele muhimu kinachotofautisha suluhisho zingine za kuongeza kasi na tabaka la pili 2.''. Mradi **lazima** utumie Ethereum Mainnet kwa upatikanaji wa data ili uzingatiwe kuorodheshwa. + +**Madaraja** + +- ''Watumiaji wanawezaje kujiunga na tabaka la pili 2.''? + +**Tarehe ambayo mradi ulianza kufanya kazi** + +- ''Tabaka la pili 2 ambayo imekua ''hai'' inafanya kazi kwenye wavu kuu kwa zaidi ya miezi sita 6.'' + +- ''Miradi mpya ambayo haijajaribiwa kikamilifu na watumiaji ina uwezekano mdogo wa kuorodheshwa.''. + +**Ukaguzi wa usalama wa nje** + +- ''Iwe kupitia ukaguzi, timu ya usalama wa ndani, au njia nyingine yoyote, usalama wa bidhaa yako lazima ijaribiwe kwa kuaminika.''. Hii kupunguza hatari kwa watumiaji wetu na inaonyesha kuwa unachukua usalama kwa makini. + +**Msingi endelevu wa watumiaji** + +- ''Tutazingatia vipimo kama historia ya TVL, takwimu za muamala, na kama inatumika na kampuni au miradi inavyojulikana.'' + +**Timu tendaji ya maendeleo** + +- ''Hatutaorodhesha tabaka la pili 2 ambayo haina timu inayofanya kazi kwenye mradi.''. + +**Kichunguzi cha bloku** + +- ''Miradi iliyoorodheshwa inahitaji kuwa na kichunguzi cha mnyororo kinachofanya kazi ili kuruhusu watumiaji kuvinjari wavu kwa urahisi. + +### Vigezo vingine: vinavyopendelewa lakini si vya lazima {#nice-to-haves} + +**Usaidizi wa Exchange kwa mradi** + +- ''Je, watumiaji wanaweza kuweka na/au kutoa moja kwa moja kutoka kwenye kubadilishana.''? + +**Viungo vya mfumo mtawanyo wa kimamlaka katika mfumo-ikolojia wa safu ya 2** + +- ''Tunataka kuwa na uwezo wa kutoa taarifa juu ya kile watumiaji wanaweza kutegemea kuweza kufanya kwenye tabaka la pili 2.''. (k.m., https://portal.arbitrum.io/, https://www.optimism.io/apps) + +**Orodha za mikataba ya tokeni** + +- ''Kwa kuwa mali zitakuwa na anwani mpya kwenye tabaka la pili 2, kama kuna rasilimali za orodha ya tokeni zinapatikana tafadhali shiriki.''. + +**Usaidizi wa mkoba asilia** + +- ''Je, pochi yoyote inaunga mkono tabaka la pili L2 moja kwa moja? + +## Ongeza safu yako ya 2 {#add-exchange} + +''Kama unataka kuongeza tabaka ya pili 2 kwenye ethereum.org, tengeneza tatizo kwenye GitHub.''. + + + Unda suala + diff --git a/public/content/translations/sw/contributing/adding-products/index.md b/public/content/translations/sw/contributing/adding-products/index.md new file mode 100644 index 00000000000..75b666419d1 --- /dev/null +++ b/public/content/translations/sw/contributing/adding-products/index.md @@ -0,0 +1,100 @@ +--- +title: Kuongeza Bidhaa +description: Hati sisi kutumia wakati kuongeza madaraka maombi kwa ethereum.org +lang: sw +--- + +# Kuongeza bidhaa za Ethereum {#adding-products} + +Mtu yeyote ni huru kupendekeza madaraka maombi mpya kwa maudhui ya ethereum.org, ambapo ni sahihi kufanya hivyo. **Hapana, kosekana kwenye orodha madaraka maombi yako kwenye ukurasa wetu wa nyumbani** 😜 + +Madaraka maombi kwa sasa kwenye orodha: + +- ethereum.org/dapps +- ethereum.org/get-eth + +**Tafadhali tu kupendekeza nyongeza mpya kwenye kurasa hizi.** + +Ingawa karibisha nyongeza mpya, kuchaguliwa madaraka maombi ya sasa kulingana na uzoefu tunajaribu kuunda kwa watumiaji wetu. Hizi kutegemea baadhi ya kanuni zetu za kubuni: + +- _kutia moyo_: kitu chochote juu ethereum.org lazima kutoa kitu kipya kwa watumiaji +- _A hadithi nzuri_: nini ni kwenye orodha lazima kutoa "aha" wakati +- _ Kuaminika_: kila kitu lazima biashara halali / miradi ya kupunguza hatari kwa watumiaji + +Kwa ujumla **ethereum.org inataka kutoa "uzoefu wa utangulizi usio na mshono" kwa watumiaji wapya**. Kwa sababu hiyo, ongeza madaraka maombi kulingana na yao: + +- urahisi wa matumizi +- ushirikiano na bidhaa nyingine +- usalama +- marefu + +Hapa ni mfumo wetu wa uamuzi kwa undani zaidi. Hisi huru kutoa maoni au kupendekeza mabadiliko. + +## Mfumo wa uamuzi {#decision-framework} + +### Vigezo vya kujumuishwa: ya lazima {#criteria-for-inclusion-the-must-haves} + +- **Bidhaa iliyojaribiwa kiusalama** – iwe kupitia ukaguzi, timu ya ndani ya usalama au mbinu nyingine yoyote, usalama wa bidhaa yako lazima ujaribiwe kwa uhakika. Hii kupunguza hatari kwa watumiaji wetu na inaonyesha kuwa unachukua usalama kwa makini. +- **Bidhaa ambayo imekuwa "hewani" kwa zaidi ya miezi 6** – hii ni ishara nyingine ya usalama. Miezi 6 ni muda mzuri kwa ajili ya wadudu muhimu na utumiaji kuwa kupatikana. +- **Inafanyiwa kazi na timu hai** – hii husaidia kuhakikisha ubora na kwamba mtumiaji atapata usaidizi kwa maswali yake. +- **Taarifa ya uorodheshaji iliyo ya kweli na sahihi** - inatarajiwa kuwa orodha zozote zinazopendekezwa kutoka kwa miradi zinakuja na taarifa za kweli na sahihi. Bidhaa ambazo kudanganya orodha ya habari, kama kutangaza bidhaa yako ni "chanzo wazi" wakati sio, kuondolewa. + +### Vigezo vya kupanga: yanayopendeza kuwa nayo {#criteria-for-ranking-the-nice-to-haves} + +Madaraka maombi yako inaweza kuwa kwenye orodha wa ethereum.org kama maarufu kama wengine kwa sababu ya vigezo kufuatia. + +**mfumo mtawanyo wa kimamlaka** + +- **Unaweza kuifikia kupitia mikoba mingi iliyoorodheshwa** – mfumo mtawanyo wa kimamlaka unapaswa kufanya kazi na mikoba mingi iliyoorodheshwa kwenye ethereum.org. +- **Watumiaji wanaweza kujaribu wenyewe –** mtumiaji binafsi anapaswa kuwa na uwezo wa kutumia mfumo wako mtawanyo na kufanikisha kitu kinachoonekana. +- **Kuanza kutumia** – bidhaa yako inapaswa kuwa na uzoefu wa kuanza kutumia ulioundwa vizuri ili kusaidia na kuwaelimisha watumiaji. Au ushahidi wa jinsi-ya maudhui kama makala au filamu. +- **Isiyo na uhifadhi** – watumiaji hudhibiti fedha zao. Kama bidhaa yako kutoweka, watumiaji bado wanaweza kupata na kuhamisha fedha zao. +- **Inapatikana ulimwenguni kote** – bidhaa yako haina vikwazo vya kijiografia au masharti ya KYC yanayowazuia watu fulani kupata huduma yako. +- **Chanzo wazi** – msimbo wako unapaswa kupatikana na unapaswa kukubali PRs kutoka kwa jamii pana. +- **Jumuiya** – una jumuiya maalum, labda Discord, ambapo watumiaji wanaweza kuwasiliana na timu yako kupata msaada au kupendekeza vipengele vipya. + +## Vigezo katika utekelezaji {#criteria-in-practice} + +Zaidi ya vigezo wewe kujaza, zaidi uwezekano bidhaa yako kupata njia yake juu ya ethereum.org. + +Bidhaa kwenye orodha ambayo hukutana tu mahitaji ya lazima inaweza kuondolewa ikiwa bidhaa mpya kupendekeza ambayo hukutana mahitaji ya lazima na kadhaa ya mazuri ya kuwa nayo. + +Vitu mengine ambayo sababu uamuzi huu: + +- Je, kuongeza badala ya kuchukua nafasi kuvunja UX ya ukurasa? + - wavu yetu ni kimsingi elimu na lengo kuu ni kueleza Ethereum na dhana zake husika. Kwa kuongeza chaguzi nyingi sana kwa watumiaji, kurasa zinaweza kuwa chini ya kusoma na hivyo kuwa chini ya manufaa. +- Je ukurasa huu sasa kupooza mtumiaji na chaguzi? + - kama wakati unakaa na kuvinjari Netflix kwa masaa kwa sababu huwezi kuamua kitu cha kutazama. Kudanganya watumiaji wapya na chaguo nyingi ni hatari. + +Hii ni uamuzi wa kubuni kwamba ethereum.org ni wajibu kwa. + +Lakini uwe na hakika, **kutakuwa na viungo vya tovuti nyingine zinazoorodhesha mfumo mtawanyo wa kimamlaka zaidi** + +### Kuagiza Bidhaa {#product-ordering} + +Isipokuwa bidhaa ni maalum ili vinginevyo, kama alfabeti, bidhaa kuonyeshwa kutoka zaidi kwa angalau hivi karibuni aliongeza kwa ukurasa. Kwa maneno mengine, bidhaa mpya zaidi huongezwa chini ya orodha. + +### Masharti ya matumizi {#terms-of-use} + +Tafadhali pia rejelea [masharti yetu ya matumizi](/terms-of-use/). Taarifa juu ya ethereum.org hutolewa tu kwa madhumuni ya taarifa ya jumla. + +## Matengenezo {#maintenance} + +Kama ni asili ya maji ya Ethereum, timu na bidhaa kuja na kwenda na uvumbuzi hutokea kila siku, hivyo tutaweza kufanya ukaguzi wa kawaida wa maudhui yetu ya: + +- kuhakikisha kuwa madaraka maombi zote kwenye orodha bado kutimiza vigezo yetu +- kuthibitisha hakuna bidhaa ambazo kupendekeza ambazo hukutana zaidi ya vigezo vyetu kuliko wao kwenye orodha sasa + +Unaweza kusaidia kwa kuangalia na kujua. [Tengeneza toleo](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=Type%3A+Feature&template=feature_request.yaml&title=)au tuma barua pepe kwa [Mtandao@ethereum.org](mailto:website@ethereum.org) + +_Sisi pia ni kuchunguza chaguzi kwa ajili ya kupiga kura ili jamii inaweza kuonyesha upendeleo wao na kuonyesha bidhaa bora huko nje kwa ajili yetu kupendekeza._ + +--- + +## Ongeza bidhaa yako {#add-your-product} + +Ikiwa unataka kuongeza mfumo mtawanyo kwa ethereum.org na unakidhi vigezo, tafadhali tujulishe. + + + Pendekeza programu + diff --git a/public/content/translations/sw/contributing/adding-resources/index.md b/public/content/translations/sw/contributing/adding-resources/index.md new file mode 100644 index 00000000000..d7cec101897 --- /dev/null +++ b/public/content/translations/sw/contributing/adding-resources/index.md @@ -0,0 +1,53 @@ +--- +title: Kuongeza rasilimali +description: Hati sisi kutumia wakati kuongeza rasilimali kwa ethereum.org +lang: sw +--- + +# Kuongeza Rasilimali {#adding-resources} + +Tunataka kuhakikisha orodha rasilimali bora inawezekana wakati wa kuweka watumiaji salama na kujiamini. + +Mtu yeyote ni huru kupendekeza rasilimali mpya kuongeza kwa rasilimali ubao juu ethereum.org, sasa kupatikana katika [ethereum.org/rasilimali](/resources/). + +Ingawa kuwakaribisha nyongeza mpya, rasilimali za sasa kuchaguliwa kulingana na uzoefu tunajaribu kuunda kwa watumiaji wetu. Hizi kutegemea baadhi ya kanuni zetu za kubuni: + +- _kutia moyo_: kitu chochote juu ethereum.org lazima kutoa kitu kipya kwa watumiaji +- _A hadithi nzuri_: nini ni kwenye orodha lazima kutoa "aha" wakati +- _ Kuaminika_: kila kitu lazima biashara halali / miradi ya kupunguza hatari kwa watumiaji + +Kwa ujumla **ethereum.org inakusudia kutoa bila mshono ndani ya jambo uzoefu kwa watumiaji wapya**. Kwa sababu hiyo, ongeza rasilimali kulingana na: + +- urahisi wa matumizi +- usahihi +- matengenezo + +## Mfumo wa uamuzi {#decision-framework} + +### Viwango {#criteria} + +- ** Habari ya uaminifu na sahihi ya orodha ** - Orodha yoyote kupendekeza lazima kuja na habari ya uaminifu na sahihi. Bidhaa ambazo kudanganya habari kuondolewa. +- ** mradi kazi ** - rasilimali inapaswa kudumisha na timu ya kazi ili kuhakikisha ubora na msaada kwa watumiaji. Rasilimali pitwa na wakati ni chini ya kuondolewa. + +### Kuagiza Bidhaa {#product-ordering} + +Tuna haki ya kuagiza bidhaa kulingana na athari zao. Bidhaa mpya kwa ujumla ongeza chini ya orodha isipokuwa vinginevyo maalum. + +## Matengenezo {#maintenance} + +Kama mazingira ya Ethereum inaendelea, tutaweza mara kwa mara maudhui yetu ili: + +- Kuhakikisha kwamba rasilimali zote kwenye orodha bado kutimiza vigezo yetu +- Thibitisha kuwa hakuna bidhaa ambazo zimependekezwa zinazokidhi vigezo vyetu zaidi kuliko zile zilizoorodheshwa sasa hivi. + +Unaweza kusaidia kwa kuangalia na kujua. [Tengeneza toleo](https://github.com/ethereum/ethereum-org-website/issues/new?template=bug_report.yaml)au tuma barua pepe kwa [Mtandao@ethereum.org](mailto:website@ethereum.org). + +--- + +## Ongeza rasilimali yako {#add-your-resource} + +Kama unataka kuongeza rasilimali kwa ethereum.org na hukutana vigezo, kujenga suala juu ya GitHub. + + + Unda suala + diff --git a/public/content/translations/sw/contributing/adding-staking-products/index.md b/public/content/translations/sw/contributing/adding-staking-products/index.md new file mode 100644 index 00000000000..eede029167c --- /dev/null +++ b/public/content/translations/sw/contributing/adding-staking-products/index.md @@ -0,0 +1,176 @@ +--- +title: Kuongeza kuunganisha bidhaa au huduma +description: Hati sisi kutumia wakati wa kuongeza bidhaa kuunganisha au huduma kwa ethereum.org +lang: sw +--- + +# Kuongeza bidhaa au huduma za kusimamisha {#adding-staking-products-or-services} + +Tunataka kuhakikisha orodha rasilimali bora inawezekana wakati wa kuweka watumiaji salama na kujiamini. + +Mtu yeyote ni huru kupendekeza kuongeza bidhaa kuunganisha au huduma kwenye ehtereum.org. Ikiwa kuna moja ambayo tumeikosa, **[tafadhali pendekeza](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=feature+%3Asparkles%3A%2Ccontent+%3Afountain_pen%3A&template=suggest_staking_product.yaml)!** + +Kwa sasa orodha bidhaa na huduma za kuunganisha kwenye kurasa kufuatia: + +- [Kusimamisha peke yako](/staking/solo/) +- [Kusimamisha kama huduma](/staking/saas/) +- [Vidimbwi vya kusimamisha](/staking/pools/) + +Uthibitisho wa hisa kwenye mlolongo wa mwangaza umekuwa ukifanya kazi tangu Desemba 1, 2020. Wakati kuunganisha bado ni mpya, sisi wamejaribu kujenga haki na uwazi mfumo kwa ajili kuzingatia ethereum.org lakini orodha vigezo mabadiliko na kuendeleza baada ya muda, na ni hatimaye kwa hiari ya ethereum.org Mtandao ya timu. + +## Mfumo wa uamuzi {#the-decision-framework} + +Uamuzi wa orodha ya bidhaa kwenye ethereum.org si tegemezi juu ya sababu yeyote moja. Vigezo mbalimbali ni kuchukuliwa pamoja wakati wa kuamua kuorodhesha bidhaa au huduma. Kadiri zaidi ya vigezo hivi kutimizwa, ndivyo uwezekano zaidi kwenye orodha. + +**Kwanza ni aina gani ya bidhaa au huduma je ni?** + +- Zana za nodi au mteja +- Usimamizi muhimu +- Kuunganisha kama huduma(Mtandao) +- Kuunganisha bwawa + +Kwa sasa kwenye orodha tu bidhaa au huduma katika makundi haya. + +### Vigezo vya kujumuishwa {#criteria-for-inclusion} + +Kuunganisha kwa bidhaa au huduma za wasilisha kutathmini na vigezo kufuatia: + +**Mradi au huduma kuzindua lini?** + +- Je kuna uthibitisho wa wakati bidhaa au huduma ikawa inapatikana kwa umma? +- Hii ni kutumika kuamua bidhaa "mapigano pimwa" alama. + +**Je mradi huo kudumisha kikamilifu?** + +- Je kuna timu hai kuendeleza mradi? ''Ni nani washiriki.''? +- Bidhaa zilizo kudumisha tu kuchukuliwa. + +**Je bidhaa au huduma ni huru ya kuaminiwa / binadamu waamuzi?** + +- Ni hatua gani katika safari ya watumiaji lazima kuamini binadamu ama kushikilia funguo za fedha zao, au kugawanya tuzo kwa usahihi? +- Hii kutumika kuamua bidhaa au huduma "kutokuwa na uaminifu" alama. + +**Je mradi huo hutoa habari sahihi na yenye kutegemeka?** + +- Ni muhimu kwamba Mtandao ya bidhaa ina juu-kwa-habari, sahihi, na yasiyo ya kupotosha habari, hasa kama kuhusiana na itifaki Ethereum au teknolojia nyingine kuhusiana. +- Wasilisha yaliyo na habari potofu, maelezo ya zamani, au taarifa zinazoweza kupotosha kuhusu Ethereum au mada zingine muhimu kutolewa kwenye orodha au kutolewa ikiwa tayari kwenye orodha. + +**Ni majukwaa gani kuungwa mkono?** + +- yaani, Linux, macOS, Windows, iOS, Android + +#### Programu na mikataba-erevu {#software-and-smart-contracts} + +Kwa mpango yeyote maalum au mikataba erevu inayohusika: + +**Je kila kitu ni chanzo wazi?** + +- Kufungua chanzo miradi lazima kuwa na umma inapatikana chanzo kumbukumbu ya kificho +- Hii ni kutumika kuamua bidhaa "chanzo wazi" alama. + +**Je, bidhaa imetoka katika usanidi wa _beta_?** + +- Je, bidhaa ni katika mzunguko yake wa maendeleo? +- Bidhaa katika hatua ya miali si kuchukuliwa kwa ajili ya kuingizwa kwenye ethereum.org + +**Je, mpango imekuwa chini ya ukaguzi wa usalama wa nje?** + +- Kama si, kuna mipango ya kufanya ukaguzi wa nje? +- Hii ni kutumika kuamua bidhaa "kaguliwa" alama. + +**Je, mradi huo una mpango ya kutafuta wadudu?** + +- Kama si, kuna mipango ya kujenga usalama kutafuta wadudu? +- Hii hutumiwa kuamua bidhaa "kutafuta wadudu" alama. + +#### Zana za nodi au mteja {#node-or-client-tooling} + +Kwa ajili ya bidhaa za mpango kuhusiana na nodi au mteja kuanzisha, usimamizi au uhamiaji: + +**Ni wateja gani wa safu ya makubaliano (yaani, Lighthouse, Teku, Nimbus, Prysm, Grandine) wanaotumika?** + +- Ni wateja gani ni saidiwa? Je mtumiaji anaweza kuchagua? +- Hii ni kutumika kuamua bidhaa nyingi-mteja alama. + +#### Kusimamisha kama huduma {#staking-as-a-service} + +Kwa [orodha za kusimamisha kama huduma](/staking/saas/) (yaani, uendeshaji wa nodi uliokabidhiwa): + +**Ni ada gani kuhusishwa na kutumia huduma hiyo?** + +- Muundo wa ada ukoje, k.m., je, kuna ada ya kila mwezi kwa huduma? +- Je kuna matakwa mengine ya kuweka nguzo? + +**Je watumiaji takiwa kujiandikisha kwa ajili ya hifadhi ya fedha?** + +- Je mtu anaweza kutumia huduma bila ruhusa au KYC? +- Hii ni kutumika kuamua bidhaa "ruhusa" alama. + +**Ni nani anayeshikilia funguo za kutia sahihi, na funguo za kuondoa pesa?** + +- Ni funguo gani mtumiaji anaendelea kupata? Ni funguo gani huduma ya kupata kufikia wa? +- Hii hutumiwa kuamua bidhaa "kutokuwa na uhakika" alama. + +**Ni nini mteja tofauti wa nodi kuwa enezwa?** + +- Ni asilimia ngapi ya kuthibitisha funguo ni kuwa kukimbia na wengi makubaliano safu (CL) mteja? +- Kama ya mwisho hariri, Prysm ni makubaliano safu mteja kuwa kukimbia na wengi wa nodi waendeshaji, ambayo ni hatari kwa ajili ya Mtandao. Kama yoyote CL mteja ni sasa kutumika kwa zaidi ya 33% ya Mtandao, sisi kuomba habari kuhusiana na matumizi yake. +- Hii ni kutumika kuamua bidhaa "wanunuzi mbalimbali" alama. + +#### Kidimbwi cha kusimamisha {#staking-pool} + +Kwa [huduma za vidimbwi vya kusimamisha](/staking/pools/): + +**Je ni kiwango cha chini ETH lazima ufanye mchango?** + +- k.m., 0.01 ETH + +**Ni ada au mahitaji gani ya kuweka kushiriki?** + +- Ni asilimia ngapi ya tuzo huondolewa kama ada? +- Je kuna matakwa mengine ya kuweka nguzo? + +**Je, kuna tokeni ya ukwasi?** + +- Ni ishara yapi zinazohusika? Jinsi gani wanafanya kazi? Anwani za mkataba ni nini? +- Hii ni kutumika kuamua bidhaa "fedha taslimu ishara" alama. + +**Je watumiaji kushiriki kama nodi waendeshaji?** + +- Ni nini takiwa kuendesha wateja wa uthibitishaji kutumia fedha pamoja? +- Je hii takiwa ruhusa kutoka kwa mtu binafsi, kampuni au DAO? +- Hii ni kutumika kuamua bidhaa "bila ruhusa nodi" alama. + +**Je ni mteja tofauti wa watoa huduma kundi nodi waendeshaji?** + +- Ni asilimia ngapi ya nodi waendeshaji ni mbio wengi makubaliano safu (CL) mteja? +- Kama ya mwisho hariri, Prysm ni makubaliano safu mteja kuwa kukimbia na wengi wa nodi waendeshaji, ambayo ni hatari kwa ajili ya Mtandao. Kama yoyote CL mteja ni sasa kutumika kwa zaidi ya 33% ya Mtandao, sisi kuomba habari kuhusiana na matumizi yake. +- Hii ni kutumika kuamua bidhaa "wanunuzi mbalimbali" alama. + +### Vigezo vingine: vinavyopendelewa lakini si vya lazima {#other-criteria} + +**Nini mtumiaji wasilisha ni saidiwa?** + +- yaani, Programu ya kivinjari, programu ya kompyuta, programu ya simu, CLI + +**Kwa nodi zana, je mpango kutoa njia rahisi ya kubadili kati ya wateja?** + +- Je mtumiaji urahisi na salama kubadilisha wateja kutumia chombo? + +**Kwa Mtandao, jinsi wengi kuthibitisha kwa sasa ni enezwa na huduma?** + +- Hii inatoa wazo la kufikia huduma yako hadi sasa. + +## Jinsi tunavyoonyesha matokeo {#product-ordering} + +[Vigezo vya kujumuishwa](#criteria-for-inclusion) vilivyo hapo juu hutumika kukokotoa alama ya jumla kwa kila bidhaa au huduma. Hii hutumiwa kama njia ya kuchagua na kuonyesha bidhaa ambazo kukutana vigezo fulani vya lengo. Vigezo zaidi kwamba ushahidi ni kutoa kwa ajili ya, juu ya bidhaa itakuwa aina, na vifungo kuwa nasibu juu ya mzigo. + +Mantiki ya msimbo na uzito wa vigezo hivi kwa sasa vimo ndani ya [sehemu hii ya JavaScript](https://github.com/ethereum/ethereum-org-website/blob/dev/src/components/Staking/StakingProductsCardGrid.js#L350) katika repo yetu. + +## Ongeza bidhaa au huduma yako {#add-product} + +Kama unataka kuongeza bidhaa kuunganisha au huduma kwa ethereum.org, kujenga suala juu ya jukwaa la kuhifadhi. + + + Unda suala + diff --git a/public/content/translations/sw/contributing/adding-wallets/index.md b/public/content/translations/sw/contributing/adding-wallets/index.md new file mode 100644 index 00000000000..aba3e0d5a6a --- /dev/null +++ b/public/content/translations/sw/contributing/adding-wallets/index.md @@ -0,0 +1,80 @@ +--- +title: Kuongeza Pochi za Kidijitali +description: Sera tunazotumia katika kuongeza pochi za kidijitali kwenye ethereum.org +lang: sw +--- + +# Kuongeza mikoba {#adding-wallets} + +Tunataka kuhakikisha tunaonesha aina mbalimbali za pochi za kidijitali zinazohusisha huduma tofauti ili watumiaji waweze kutumia Ethereum kwa namna ya kujiamini. + +Mtu yeyote yuko huru kupendekeza kuongeza pochi za kidijitali kwenye ethereum.org. Kama kuna pochi ambayo hatujaiweka, tafadhali ipendekeze! + +Kwa sasa pochi zimeorodheshwa kwenye: + +- [ethereum.org/wallets/find-wallet/](/wallets/find-wallet/) + +Pochi za kidijitali hubadilika kwa haraka sana kwenye Ethereum. ''Tumejaribu kuunda mfumo wa haki wa kuzingatia kwenye ethereum.org, lakini vigezo vya kuorodhesha vitabadilika na kubadilika kadri muda unavyopita.''. + +## Mfumo wa uamuzi {#the-decision-framework} + +### Vigezo vya kujumuishwa: Mahitaji ya lazima {#the-must-haves} + +- **Bidhaa iliyojaribiwa kiusalama** - iwe kupitia ukaguzi, timu ya ndani ya usalama, msimbo wa chanzo wazi, au njia nyingine yoyote, usalama wa mkoba wako lazima uwe wa kuaminika. Hii kupunguza hatari kwa watumiaji wetu na inaonyesha kuwa unachukua usalama kwa makini. +- **Mkoba ambao umekuwa "live" kwa zaidi ya miezi sita AU umetolewa na kundi lenye rekodi ya sifa nzuri** - hii ni ishara nyingine ya usalama. Miezi sita ni muda mzuri wa makosa muhimu na mianya ya usalama kugunduliwa. Tunaomba miezi sita ili kusaidia kuchuja miradi iliyogawanyika ambayo mara nyingi husalitiwa haraka. +- **Kushughulikiwa na timu hai** - hii husaidia kuhakikisha ubora na kwamba mtumiaji atapata usaidizi kwa maswali yake. +- **Taarifa ya uorodheshaji iliyo ya kweli na sahihi** - inatarajiwa kuwa orodha zozote zinazopendekezwa kutoka kwa miradi zinakuja na taarifa za kweli na sahihi. Bidhaa zitakazodanganya taarifa za orodha, kama kudai bidhaa yako ni "chanzo wazi" wakati siyo, zitatolewa. +- **Anwani ya mawasiliano** - Anwani ya mawasiliano ya mkoba itatusaidia sana kupata taarifa sahihi pindi mabadiliko yanapofanywa. Hii itaendelea kuhuisha ethereum.org ili iwe rahisi kusimamia wakati wa kukusanya taarifa za baadaye. +- **Miamala ya EIP-1559 (aina ya 2)** - mkoba wako lazima uunge mkono miamala ya EIP-1559 (aina ya 2) kwa ajili ya miamala kwenye Mtandao Mkuu wa Ethereum. +- **Uzoefu mzuri wa mtumiaji** - Ingawa UX ni suala la kibinafsi, ikiwa wanachama kadhaa wa timu ya msingi watajaribu bidhaa na kuiona ni ngumu kutumia, tunahifadhi haki ya kuukataa mkoba huo na badala yake tutatoa mapendekezo muhimu ya kuboresha. Hii inafanywa ili kulinda msingi wetu wa watumiaji ambao mara nyingi unajumuishwa na wanaoanza. +- **Unaolenga Ethereum** - Mkoba lazima utoe uzoefu wa kimsingi unaolenga Ethereum. Hii inamaanisha Ethereum (au L2 yoyote) imewekwa kama mtandao chaguo-msingi, mali za ERC zinaungwa mkono ipasavyo, na vipengele vinaendana na mfumo ekolojia wa Ethereum. Mikoba inayopa kipaumbele safu mbadala za 1 (alternative layer 1s) katika kiolesura cha mtumiaji (UI) haitaorodheshwa. + +### Kuondoa bidhaa {#product-removals} + +- **Taarifa zilizosasishwa** - Watoa huduma za mikoba wana jukumu la kuwasilisha tena taarifa za mikoba yao kila baada ya miezi 6 ili kuhakikisha uhalali na umuhimu wa taarifa zilizotolewa (hata kama hakuna mabadiliko kwenye bidhaa zao). Kama timu ya bidhaa itashindwa kufanya hivyo, ethereum.org inaweza kuondoa mradi huo kutoka kwenye ukurasa. + +### Vigezo vingine: Yanayopendeza kuwa nayo {#the-nice-to-haves} + +- **Inapatikana ulimwenguni kote** - mkoba wako hauna vikwazo vya kijiografia au mahitaji ya KYC yanayowatenga baadhi ya watu kupata huduma yako. +- **Inapatikana katika lugha nyingi** - mkoba wako umetafsiriwa katika lugha nyingi na kuruhusu watumiaji kote ulimwenguni kuufikia. +- **Chanzo huria** - msimbo mzima wa mradi wako (sio moduli tu) unapaswa kupatikana na unapaswa kukubali Maombi ya Uunganishaji (PRs) kutoka kwa jamii pana. +- **Isiyo na Mlinzi** - watumiaji hudhibiti fedha zao wenyewe. Kama bidhaa yako kutoweka, watumiaji bado wanaweza kupata na kuhamisha fedha zao. +- **Usaidizi wa mkoba wa maunzi** - watumiaji wanaweza kuunganisha mkoba wao wa maunzi ili kutia saini miamala. +- **WalletConnect** - watumiaji wanaweza kuunganisha kwenye mifumo mtawanyo ya kimamlaka (dapps) wakitumia WalletConnect. +- **Kuingiza vituo vya mwisho vya Ethereum RPC** - watumiaji wanaweza kuingiza data za RPC za nodi, na kuwaruhusu kuungana na nodi ya chaguo lao, au mitandao mingine inayoendana na EVM. +- **NFTs** - watumiaji wanaweza kutazama na kuingiliana na NFTs zao kwenye mkoba. +- **Kuunganisha kwenye programu za Ethereum** - watumiaji wanaweza kuunganisha na kutumia programu za Ethereum. +- **Staking** - watumiaji wanaweza kufanya staking moja kwa moja kupitia mkoba. +- **Ubadilishaji** - watumiaji wanaweza kubadilisha tokeni kupitia mkoba. +- **Mitandao ya Multichain** - mkoba wako unawezesha watumiaji kufikia mitandao mingi ya mnyororo wa bloku kwa chaguo-msingi. +- **Mitandao ya Safu ya 2 (Layer 2)** - mkoba wako unawezesha watumiaji kufikia mitandao ya safu ya 2 kwa chaguo-msingi. +- **Kubinafsisha ada za gesi** - mkoba wako unawaruhusu watumiaji kubinafsisha ada zao za gesi za miamala (ada ya msingi, ada ya kipaumbele, ada ya juu). +- **Usaidizi wa ENS** - mkoba wako unawaruhusu watumiaji kutuma miamala kwenda kwa majina ya ENS. +- **Usaidizi wa ERC-20** - mkoba wako unawaruhusu watumiaji kuingiza mikataba ya tokeni za ERC-20, au unauliza na kuonyesha tokeni za ERC-20 kiotomatiki. +- **Nunua sarafu ya kidigitali** - mkoba wako unawezesha watumiaji kununua na kuanza kutumia sarafu za kidigitali moja kwa moja. +- **Uza kwa fiat** - mkoba wako unawezesha watumiaji kuuza na kutoa kwa fedha za serikali (fiat) moja kwa moja kwenye kadi au akaunti ya benki. +- **Multisig** - mkoba wako unaunga mkono sahihi nyingi ili kutia saini muamala. +- **Urejeshaji wa kijamii** - mkoba wako unaunga mkono walinzi na mtumiaji anaweza kurejesha mkoba wake ikiwa atapoteza funguo la maneno (seed phrase) kwa kutumia walinzi hawa. +- **Timu maalum ya usaidizi** - mkoba wako una timu maalum ya usaidizi ambapo watumiaji wanaweza kwenda wanapopata matatizo. +- **Nyenzo/nyaraka za kielimu** - bidhaa yako inapaswa kuwa na uzoefu mzuri wa kumkaribisha mtumiaji ili kusaidia na kuelimisha watumiaji. Au ushahidi wa jinsi-ya maudhui kama makala au filamu. + +## Kuongeza mkoba {#adding-a-wallet} + +Kama unataka kuongeza pochi kwenye ethereum.org, tengeneza suala kwenye GitHub. + + + Unda suala + + +## Matengenezo {#maintenance} + +Kama ni asili ya maji ya Ethereum, timu na bidhaa kuja na kwenda na uvumbuzi hutokea kila siku, hivyo tutaweza kufanya ukaguzi wa kawaida wa maudhui yetu ya: + +- hakikisha kwamba pochi na dapps zote zilizoorodheshwa bado zinakidhi vigezo vyetu +- kuthibitisha hakuna bidhaa ambazo kupendekeza ambazo hukutana zaidi ya vigezo vyetu kuliko wao kwenye orodha sasa + +ethereum.org inatunzwa na jamii ya chanzo huria na tunategemea jamii kusaidia kuiweka ikiwa imesasishwa. Ukiona taarifa yoyote kuhusu mikoba iliyoorodheshwa inayohitaji kusasishwa, tafadhali [fungua hoja](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=wallet+%3Apurse%3A&template=suggest_wallet.yaml) au [ombi la uunganishaji](https://github.com/ethereum/ethereum-org-website/pulls)! + +## Masharti ya matumizi {#terms-of-use} + +Tafadhali pia rejelea [masharti yetu ya matumizi](/terms-of-use/). Taarifa juu ya ethereum.org hutolewa tu kwa madhumuni ya taarifa ya jumla. diff --git a/public/content/translations/sw/contributing/content-resources/index.md b/public/content/translations/sw/contributing/content-resources/index.md new file mode 100644 index 00000000000..34b318776e4 --- /dev/null +++ b/public/content/translations/sw/contributing/content-resources/index.md @@ -0,0 +1,32 @@ +--- +title: Kuongeza rasilimali za maudhui +lang: sw +description: Vigezo vyetu vya kuorodhesha rasilimali za maudhui kwenye ethereum.org +--- + +# Kuongeza rasilimali za maudhui {#adding-content-resources} + +Hatutarajii kuelezea kila kitu kwenye Ethereum hivyo tunajaribu kuonesha baadhi ya makala bora, mafunzo, barua za taarifa, mbao za matangazo ya kazi na rasilimali mbalimbali za maudhui ambazo zimetengenezwa na jamii. Hii hutoa maelezo zaidi mara kwa mara kuhusu mada ambazo watumiaji wanaweza kuvutiwa nazo. + +Kama kuna rasilimali ya maudhui ambayo unahisi inatakiwa iongezwe kwenye ukurasa, jisikie huru kutoa mapendekezo sehemu husika. + +## Jinsi tunavyoamua {#how-we-decide} + +Rasilimali za kujifunzia zitafanyiwa tathmini kwa vigezo vifuatavyo: + +- Je, maudhui ni ya kisasa? +- Je, maudhui yana kizuizi cha malipo? +- Je, taarifa ni sahihi? Je, ni ya ukweli au ni ya maoni? +- Je, mwandishi ni wa kuaminika? ''Je wanafanya vyanzo vyao? +- Je, maudhui haya yanaongeza thamani mpya ambayo rasilimali/viungo vilivyopo havina? +- Je, maudhui haya yanahudumia mmoja wa [wasifu wetu wa watumiaji](https://www.notion.so/efdn/Ethereum-org-User-Persona-Memo-b44dc1e89152457a87ba872b0dfa366c)? + +--- + +## Ongeza rasilimali yako ya maudhui {#add-your-content-resource} + +Kama unataka kuongeza rasilimali ya maudhui kwenye ethereum.org na imekidhi vigezo, tengeneza suala kwenye GitHub. + + + Unda suala + diff --git a/public/content/translations/sw/contributing/design-principles/index.md b/public/content/translations/sw/contributing/design-principles/index.md new file mode 100644 index 00000000000..5801a0c5c31 --- /dev/null +++ b/public/content/translations/sw/contributing/design-principles/index.md @@ -0,0 +1,93 @@ +--- +title: Kanuni za kubuni +lang: sw +description: Kanuni za usanifu na maamuzi ya maudhui ya ethereum.org +--- + +# Kanuni zetu za usanifu {#contributing-to-ethereumorg-} + + Hujambo, na karibu kwenye kanuni za usanifu za ethereum.org. Hii ni sehemu ya mchakato unaoendelea wa kubadilika na kuboresha ethereum.org. + +Kanuni zetu hufahamisha mwonekano na hisia za tovuti na maudhui yaliyomo. + +Unapaswa kusoma hizi kabla ya [kuchangia ethereum.org](/contributing/). + +## Kanuni za kubuni ni nini? {#ways-to-contribute} + +Usijali, wao ni rahisi sana! **Kanuni za usanifu** ni seti ya miongozo tunayorejelea wakati wa kusanifu (yaani, kuunda, kutunza au kusasisha) kitu. + +Katika muktadha wa ethereum.org kanuni hizi za usanifu ndizo msingi wa kile tunachotaka tovuti iwakilishe na kutayarisha kwa ulimwengu. Zote mbili ni za kutia moyo **na** za kiutendaji. Sio tu jinsi tovuti _inavyoonekana_, lakini pia jinsi _inavyofanya kazi_ na hata jinsi inavyomfanya mtu _ajisikie._ Kila kitu, kuanzia rangi hadi mpangilio wa kurasa hadi jinsi tunavyozungumza kuhusu Ethereum kwenye tovuti kinapaswa kuongozwa na kanuni hizi. + +## Kanuni katika utendaji {#how-decisions-about-the-site-are-made} + +Hebu tuangalie mfano. Mojawapo ya kanuni ni “Inayoaminika”, ambayo ina maana kwamba tunataka wageni kwenye tovuti _wahisi_ na _wajue_ kwamba tovuti ni ya kuaminika - kama ilivyo mfumo mkuu wa ikolojia wa Ethereum. Kwa mujibu wa kanuni hiyo, tuna "kanuni ndogo" 3 zinazofanya kazi ambazo tunaamini ni hatua zinazoweza kuchukuliwa ili kufanya tovuti iaminike: + +- _“Mpya”_ yaani, kuweka maudhui yakiwa yamesasishwa. +- _“Uthibitisho wa Kijamii”_ yaani, onyesha ukubwa, utofauti na shughuli za mfumo wa ikolojia (unajua: maendeleo ya sasisho la Ethereum, DeFi, michezo ya kubahatisha, hackathon zote, n.k.) +- _“Thabiti”_ yaani, uthabiti katika usanifu wa tovuti na sauti na usahihi wa maandishi. + +Kwa hivyo tunapofanya maamuzi ya muundo, au maamuzi ya uandishi, basi tunaweza kurejelea kanuni ya "Inayoaminika" na kuuliza: + +- _“Je, tovuti inaakisi taarifa za sasa?”_ +- _“Tunaonyesha vipi na wapi ukubwa na shughuli za mfumo wa ikolojia?”_ +- _“Je, michango mipya iliyopendekezwa na mwanajumuiya ninayoikagua inalingana na usanifu wa sasa na uandishi kwenye tovuti?”_ + +## Kanuni za usanifu za ethereum.org {#contributors} + +### 1. Ya kutia moyo {#1-inspirational} + +Tovuti inapaswa kuhamasisha watumiaji kuota jinsi Ethereum inaweza kubadilisha ulimwengu. Inapaswa kuwahamasisha watu kuchunguza, kucheza na kucheza kwa kutumia zana na programu za mfumo ikolojia wa Ethereum. + +- **Radical:** Tovuti inapaswa kuwasilisha malengo makuu ya Ethereum ya kubadilisha ulimwengu kwa njia yenye maana. Inapaswa kuwa wazi kuwa Ethereum sio tu safu mpya ya teknolojia - ni teknolojia ya mabadiliko. +- **Uwezeshaji kupitia elimu:** Tovuti inapaswa kuwaelimisha watu ili waweze kuelewa uwezo wa Ethereum, wapate nafasi yao katika mfumo wa ikolojia, na wajisikie wamewezeshwa kushiriki ndani yake. + +Mwelekeo Unaoonekana • Maudhui + +### 2. Kwa wote {#2-universal} + +Ethereum ni mradi wa kimataifa, umfumo mtawanyo na watazamaji wetu wanaonyesha hili. Tovuti inapaswa kutamani kupatikana kwa kila mtu, na nyeti kwa tamaduni nyingi za ulimwengu. + +- **Inayofikika:** Tovuti inapaswa kufuata miongozo ya ufikivu - ikiwa ni pamoja na kwa watu wenye miunganisho ya kipimo data cha chini. +- **Moja kwa moja:** Tovuti inapaswa kuwa rahisi na isiyo na utata. Nakala haipaswi kutumia lugha ambayo inaweza kutafsiriwa vibaya au kupotea katika tafsiri. +- **Ethereum ina vipengele vingi:** Ethereum ni mradi, msingi wa msimbo, jumuiya, na dira. Ethereum ni ya thamani kwa watu tofauti kwa sababu tofauti, na kuna njia nyingi za kuhusika. + +Mifumo ya uandishi • Matumizi ya rangi • Mwelekeo Unaoonekana • Maudhui + +### 3. Hadithi Nzuri {#3-a-good-story} + +Tovuti inapaswa kufanya kazi kama hadithi nzuri. Wageni wako safarini, na maudhui unayochangia ni sehemu yake. Michango yako inapaswa kutoshea ndani ya masimulizi ya wazi: yenye mwanzo (utangulizi/mahali pa kuingilia), katikati (seti ya mafunzo na maarifa), na mwisho (viungo) vya nyenzo husika, au hatua zinazofuata). + +- **Kidaraja**: Usanifu wazi wa habari, uliopangwa kidaraja huwasaidia wageni wa ethereum.org kuvinjari tovuti "kama hadithi" wanapotafuta kufikia malengo yao. +- **Jiwe la Kukanyagia:** Sisi ni jiwe la kukanyagia kwa yeyote anayetafuta majibu. Hatutaki kubadilisha au kuwa mbadala wa rasilimali nyingi ambazo tayari zipo. Tunatoa jibu na kutoa hatua zinazofuata za kuaminika. + +Safari za Mtumiaji • Maudhui + +### 4. Inayoaminika {#4-credible} + +Huenda watu wanatafuta kuanzishwa kwao kwa mfumo ikolojia wa Ethereum au wanaweza kuwa na wasiwasi. Tambua wajibu huo katika jinsi unavyowasiliana. Hakikisha kwamba wote wawili wanaondoka kwa ujasiri mkubwa katika mfumo wa ikolojia wa Ethereum. + +- **Mpya:** Imesasishwa kila wakati. +- **Uthibitisho wa Kijamii:** Onyesha ukubwa, utofauti na shughuli za mfumo wa ikolojia. +- **Thabiti:** Uthabiti katika usanifu na maudhui huwasilisha uaminifu. + +Mwelekeo Unaoonekana • Maudhui + +### 5. Uboreshaji wa Pamoja {#5-collaborative-improvement} + +Tovuti ni zao la wachangiaji wengi, kama vile mfumo wa ikolojia kwa ujumla. + +- **Wazi:** Idhimishe uwazi wa msimbo chanzo, michakato na miradi katika mfumo wote wa ikolojia. +- **Inayoweza Kupanuliwa:** Mfumo wa sehemu ni lengo muhimu nyuma ya kila kitu tunachofanya, na kwa hivyo michango inapaswa pia kuwa ya kimfumo wa sehemu. Usanifu mkuu, msimbo wa kijenzi na utekelezaji wa tovuti unapaswa kuiwezesha kupanuliwa kwa urahisi katika siku zijazo. +- **Kijaribio:** Tunafanya majaribio, kupima na kurudia kila mara. +- **Shirikishi:** Mradi huu unatuleta sote pamoja. +- **Endelevu:** Kuweka mazingira kwa ajili ya matengenezo ya muda mrefu na jamii + +Unaweza kuona kanuni zetu za usanifu zikifanya kazi [katika tovuti yetu yote](/). + +## Toa maoni {#give-feedback} + +**Shiriki maoni yako kuhusu hati hii!** Mojawapo ya kanuni zetu zilizopendekezwa ni “**Uboreshaji wa Pamoja**” ambayo ina maana kwamba tunataka tovuti iwe zao la wachangiaji wengi. Kwa hiyo katika roho ya kanuni hiyo, tunataka kushiriki kanuni hizi za kubuni na jumuiya ya Ethereum. + +Ingawa kanuni hizi zinalenga tovuti ya ethereum.org, tunatumai kuwa nyingi kati yazo zinawakilisha maadili ya mfumo mzima wa ikolojia wa Ethereum. Labda hata unataka kuingiza baadhi yao katika mradi wako mwenyewe! + +Tujulishe mawazo yako kwenye [seva ya Discord](https://discord.gg/ethereum-org) au kwa [kufungua hoja](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=Type%3A+Feature&template=feature_request.yaml&title=). diff --git a/public/content/translations/sw/contributing/design/adding-design-resources/index.md b/public/content/translations/sw/contributing/design/adding-design-resources/index.md new file mode 100644 index 00000000000..49bffa834e4 --- /dev/null +++ b/public/content/translations/sw/contributing/design/adding-design-resources/index.md @@ -0,0 +1,69 @@ +--- +title: Kuongeza rasilimali za kubuni +description: Miongozo na mahitaji ya kuhakikisha ubora wa vifaa vya kubuni kwenye ethereum.org +lang: sw +--- + +# Kuongeza rasilimali za usanifu {#adding-design-resources} + +Mtu yeyote anaweza kupendekeza nyenzo mpya za usanifu kwenye [ukurasa wa Usanifu na UX katika web3](/developers/docs/design-and-ux/). + +Kuwa na ufahamu kwamba lengo la ukurasa huu ni juu ya kutoa thamani ya mtumiaji kwa wabunifu wa Mtandao wanaotamani. Sehemu ya kubuni si huko kutangaza huduma zako, bidhaa, au majukwaa. + +Ili kuhakikisha kwamba kudumisha kiwango cha juu cha habari na endeleza ufahamu wa dhamani, imara hati ya orodha: + +## Tafiti za Utafiti na Dashibodi {#Research-studies} + +1. Mbinu Sahihi + +a. Mbinu inapaswa kufafanua wazi jinsi habari kukusanya. + +ba. Idadi ya washiriki wanaohusika katika utafiti inapaswa kutajwa. + +ka. Mbinu za utafiti wafanyakazi inapaswa kuelezwa. + +2. Umuhimu kwa Mtandao wabunifu na kawaida matukio ya matumizi ya kubuni + +a. Mada ya utafiti inapaswa kuwa muhimu kwa wabunifu wa Mtandao na kushughulikia kesi za kawaida za matumizi ya muundo. + +3. Kuzingatia kutoa ufahamu + +a. Lengo kuu la maandishi inapaswa kuwa kushiriki ufahamu badala ya endeleza mradi maalum au kampuni. + +## Makala {#Articles} + +1. Umuhimu kwa Mtandao wabunifu / watafiti na kawaida Mtandao matukio ya matumizi ya kesi + +a. Mada ya makala inapaswa kuwa muhimu kwa wabunifu wa Mtandao na watafiti, kuelekeza kesi za kawaida za matumizi ya muundo wa Mtandao. + +2. Ubora wa msingi wa kuandika + +a. Makala hiyo Haipaswi kuwa na makosa ya sarufi na ya herufi. + +ba. Msisitizo unapaswa kuwekwa juu ya kutoa ufahamu muhimu na kujifunza. + +ka. Maandishi yapasa kuwa mafupi na ya moja kwa moja. + +3. Kusudi la maandishi + +a. Lengo kuu la makala inapaswa kuwa kushiriki ufahamu badala ya kuendeleza mradi fulani au kampuni. + +## Jumuiya / DAO {#Communities-and-DAOs} + +1. Tovuti lazima wazi kuonyesha jinsi ya kujiunga na DAO/ jumuiya + +2. Manufaa zilizo wazi za ushirikiano + +a. Manufaa za kuwa mshiriki inapaswa kuonyeshwa waziwazi. + +**Mifano**: kupokea mrejesho kuhusu kazi, kupata fursa za kazi au zawadi, kushiriki maarifa ya usanifu na utafiti. + +3. Mawasiliano yenye bidii na yenye nguvu kuhusu ugomvi + +a. Jumuiya ya Discord inapaswa kuonyesha mawasiliano ya kupendeza na ya kushiriki. + +ba. Wasimamizi wanapaswa kushiriki kikamilifu katika kudumisha jamii na kuwezesha majadiliano. + +ka. Jamii inapaswa kuonyesha rekodi ya mazungumzo ya dhamani na yenye tija ndani ya wiki mbili zilizopita. + +Kwa kuzingatia vigezo hivi, tuna lengo mlezi mazingira ya kusisimua na kushiriki maarifa ndani ya jamii yetu. Tunaamini kuwa hati hii ya orodha nyeupe kuhakikisha kwamba watumiaji wetu wanapata rasilimali za kuaminika, muhimu, na zenye ufahamu. Asante kwa kuelewa na ushirikiano wako katika kudumisha ubora wa yaliyomo ndani ya jukwaa letu. diff --git a/public/content/translations/sw/contributing/design/index.md b/public/content/translations/sw/contributing/design/index.md new file mode 100644 index 00000000000..97b56ececd2 --- /dev/null +++ b/public/content/translations/sw/contributing/design/index.md @@ -0,0 +1,77 @@ +--- +title: Mchango wa usanifu +description: Mchango wa usanifu kwa ethereum.org +lang: sw +--- + +# Mchango wa usanifu kwa ethereum.org {#design-contributions} + +Usanifu ni sehemu muhimu ya mradi wowote, na kwa kutumia muda wako na ujuzi wako wa usanifu kwa ethereum.org, unaweza kusaidia kuboresha hali ya utumiaji kwa wageni wetu. Kuchangia katika mradi wa chanzo-wazi kunatoa fursa ya kupata uzoefu muhimu na kukuza ujuzi wako katika mazingira ya ushirikiano. Utapata fursa ya kufanya kazi na wabunifu wengine, wasanidi programu, na wanajamii, ambao wote watakuwa na mitazamo na maarifa yao ya kipekee. + +Mwishowe, hii ni njia nzuri ya kujenga jalada mbalimbali na la kuvutia ambalo linaonyesha ujuzi wako wa usanifu. + +## Jinsi ya kuchangia? + +###  Toa maoni kuhusu mifano ya usanifu ya awali {#design-critique} + +Wakati mwingine tunahitaji msaada katika kujaribu mawazo yetu ghafi. Hii ni njia nzuri ya jinsi ya kuchangia bila maarifa yoyote ya kiufundi. + +1. Timu ya usanifu itashiriki muundo wa dhihaka kwenye [Discord](https://discord.com/invite/ethereum-org) na kwenye [GitHub](https://github.com/ethereum/ethereum-org-website/labels/design%20required%20%F0%9F%8E%A8). +2. Utaongozwa kupitia miundo ili kutoa maoni kupitia kazi ya maoni. +3. Matokeo yatashirikiwa katika suala la GitHub na kisha kufungwa na timu. + +###  Shiriki katika utafiti wa tafiti {#answer-surveys} + +Toa maoni kwenye tovuti yetu kwa: + +1. Kutembelea ethereum.org na kusoma kurasa. +2. Kubofya wijeti ya maoni kwenye kona ya chini kulia na kujibu maswali yanayohusiana na usanifu na maudhui. +3. Zingatia maswali ya muundo huru. + +###  Tafuta masuala yanayohusiana na usanifu kwenye tovuti na uyaripoti {#report-design-issues} + +ethereum.org ni tovuti inayokua kwa kasi na vipengele na maudhui mengi. Baadhi ya UI inaweza kupitwa na wakati kwa urahisi au inaweza kuboreshwa. Ukikutana na tukio kama hilo, tafadhali liripoti ili lipate usikivu wetu. + +1. Pitia tovuti na uzingatie usanifu wake. +2. Piga picha za skrini na uandike madokezo ukiona masuala yoyote ya kuona au ya UX. +3. Ripoti masuala yaliyopatikana kwa kutumia [ripoti ya hitilafu](https://github.com/ethereum/ethereum-org-website/issues/new/choose). + +###  Pendekeza mabadiliko ya usanifu {#propose-design-changes} + +Ikiwa unajisikia vizuri kukabiliana na changamoto za usanifu, unaweza kutembelea bodi yetu ya masuala ya GitHub na kuchuja [masuala yanayohusiana na usanifu](https://github.com/ethereum/ethereum-org-website/labels/design%20required%20%F0%9F%8E%A8). + +1. Pitia tovuti yetu na uzingatie usanifu wake au nenda kwenye hazina yetu ya GitHub na upitie masuala yaliyotiwa alama ya [tagi ya “Usanifu unahitajika”](https://github.com/ethereum/ethereum-org-website/labels/design%20required%20%F0%9F%8E%A8). +2. Pata wazo la suluhisho na ulisanifu. (ikiwezekana kwa kutumia [mfumo wetu wa usanifu](https://www.figma.com/community/file/1134414495420383395)). +3. Pendekeza suluhisho katika suala linalolingana la GitHub au [unda jipya.](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=feature+%3Asparkles%3A&template=feature_request.yaml&title=Feature+request) +4. Subiri timu ya usanifu ipitie. + +###  Jenga Mfumo wa Usanifu pamoja {#Contribute-to-design-system} + +Mfumo wetu wa usanifu hufanya usanifu wa ethereum.org uwe wa kufurahisha na rahisi. Ikiwa wewe ni mbunifu mwenye uzoefu, unaweza kutusaidia kuandaa vipengele vingi vya tovuti. + +1. Chagua suala la kufanyia kazi kutoka kwa [bodi ya mfumo wa usanifu](https://github.com/ethereum/ethereum-org-website/labels/design%20system) kwenye GitHub au unda jipya. +2. Omba suala lililochaguliwa lipewe wewe. +3. Anza kusanifu kijenzi kilichoombwa katika Figma. +4. Shiriki na timu ya usanifu kwenye GitHub pindi utakapohitaji mapitio au mwongozo. +5. Timu ya usanifu itapitia. +6. Timu ya usanifu itajumuisha mabadiliko katika faili kuu na kuchapisha faili hiyo kwa jamii. + +###  Andika maudhui yanayohusiana na usanifu kwenye tovuti {#write-design-articles} + +Jumuiya ya wasanidi programu wa Ethereum ina nguvu, lakini jumuiya ya usanifu iko nyuma kidogo. Ikiwa wewe ni mbunifu mwenye ujuzi wa web3, tafadhali fikiria kushiriki mafunzo yako na jumuiya kubwa ili sote tuweze kukua na kuboresha pamoja; tuna [ukurasa wa usanifu wa Ethereum](/developers/docs/design-and-ux/) unaoweza kuchangia. Unaweza pia kuangalia [sera zetu za kuorodhesha](/contributing/design/adding-design-resources). + +1. Pata mawazo juu ya mada za usanifu ambazo zinapaswa kushughulikiwa kwenye ethereum.org na ambazo zingekuwa za manufaa kwa wabunifu katika nyanja hii. +2. Nenda kwenye hazina yetu ya GitHub na [fungua suala](https://github.com/ethereum/ethereum-org-website/issues/new) ukipendekeza mada (usiiandike maudhui bado). +3. Subiri timu ya usanifu iidhinishe. +4. Mara baada ya kuidhinishwa, andika maudhui. +5. Wasilisha katika suala linalolingana la GitHub. + +###  Chora vielelezo vipya {#prepare-illustrations} + +Taswira ni mojawapo ya zana zenye nguvu zaidi za kuelezea mada dhahania. Kuna uwezo mkubwa kwa kuongeza michoro na infographics. Hata hivyo, picha moja inaweza kusema maneno elfu. + +1. Nenda kwenye tovuti yetu na uone kurasa ambapo infographics mpya zinaweza kuongezwa. +2. Hakikisha kwamba mtindo wa kielelezo unalingana na [rasilimali](/assets/) zetu. +3. Nenda kwenye hazina yetu ya GitHub na [fungua suala](https://github.com/ethereum/ethereum-org-website/issues/new) ukipendekeza kielelezo. +4. Timu ya usanifu itaipitia. +5. Tunaunda suala jipya la kumuuliza msanidi programu atekeleze picha mpya. diff --git a/public/content/translations/sw/developers/docs/nodes-and-clients/index.md b/public/content/translations/sw/developers/docs/nodes-and-clients/index.md new file mode 100644 index 00000000000..1259c9282ee --- /dev/null +++ b/public/content/translations/sw/developers/docs/nodes-and-clients/index.md @@ -0,0 +1,319 @@ +--- +title: Nodi na wateja +description: Muhtasari wa nodi za Ethereum na programu ya mteja, pamoja na jinsi ya kuanzisha nodi na kwa nini unapaswa kuifanya. +lang: sw +sidebarDepth: 2 +--- + +Ethereum ni mtandao unaosambazwa wa kompyuta (unaojulikana kama nodi) zinazoendesha programu ambazo zinaweza kuthibitisha vizuizi na data ya muamala. Programu lazima iendeshwe kwenye kompyuta yako ili kuigeuza kuwa nodi ya Ethereum. Kuna vipande viwili tofauti vya programu (vinavyojulikana kama 'wateja') vinavyohitajika kuunda nodi. + +## Mahitaji ya awali {#prerequisites} + +Unapaswa kuelewa dhana ya mtandao wa rika-kwa-rika na [misingi ya EVM](/developers/docs/evm/) kabla ya kuingia ndani zaidi na kuendesha mfano wako mwenyewe wa mteja wa Ethereum. Tazama [utangulizi wetu kwa Ethereum](/developers/docs/intro-to-ethereum/). + +Ikiwa wewe ni mgeni kwenye mada ya nodi, tunapendekeza kwanza uangalie utangulizi wetu unaofaa mtumiaji kuhusu [kuendesha nodi ya Ethereum](/run-a-node). + +## Nodi na wateja ni nini? {#what-are-nodes-and-clients} + +"Node" ni mfano wowote wa programu ya mteja wa Ethereum ambayo imeunganishwa kwa kompyuta nyingine pia inayoendesha programu ya Ethereum, kutengeneza mtandao. Mteja ni utekelezaji wa Ethereum ambao huthibitisha data dhidi ya kanuni za itifaki na kuweka mtandao salama. Nodi inabidi iendeshe wateja wawili: mteja wa makubaliano na mteja wa utekelezaji. + +- Mteja wa utekelezaji (pia anajulikana kama Injini ya Utekelezaji, mteja wa EL au aliyekuwa mteja wa Eth1) husikiliza shughuli mpya zinazotangazwa kwenye mtandao, kuzitekeleza katika EVM, na hushikilia hifadhidata ya hivi punde zaidi ya data yote ya sasa ya Ethereum. +- Mteja wa maafikiano (pia hujulikana kama Beacon node, mteja wa CL au aliyekuwa mteja wa Eth2) hutekeleza kanuni ya makubaliano ya uthibitisho wa dau, ambayo huwezesha mtandao kufikia makubaliano kulingana na data iliyoidhinishwa kutoka kwa mteja wa utekelezaji. Pia kuna kipande cha tatu cha programu, kinachojulikana kama 'kithibitishaji' ambacho kinaweza kuongezwa kwa mteja wa makubaliano, kuruhusu nodi kushiriki katika kulinda mtandao. + +Wateja hawa hufanya kazi pamoja ili kufuatilia kichwa cha mnyororo wa Ethereum na kuruhusu watumiaji kuingiliana na mtandao wa Ethereum. Muundo wa moduli wenye vipande vingi vya programu vinavyofanya kazi pamoja unaitwa [utata uliofungwa](https://vitalik.eth.limo/general/2022/02/28/complexity.html). Mbinu hii imerahisisha kutekeleza [The Merge](/roadmap/merge) bila mshono, hurahisisha kudumisha na kuendeleza programu ya mteja, na kuwezesha utumiaji tena wa wateja binafsi, kwa mfano, katika [mfumo ikolojia wa safu ya 2](/layer-2/). + +![Wateja wa utekelezaji na makubaliano waliounganishwa](./eth1eth2client.png) +Mchoro uliorahisishwa wa mteja wa utekelezaji na makubaliano uliounganishwa. + +### Utofauti wa wateja {#client-diversity} + +[Wateja wa utekelezaji](/developers/docs/nodes-and-clients/#execution-clients) na [wateja wa makubaliano](/developers/docs/nodes-and-clients/#consensus-clients) hupatikana katika lugha mbalimbali za programu zilizotengenezwa na timu tofauti. + +Utekelezaji wa wateja wengi unaweza kufanya mtandao kuwa na nguvu zaidi kwa kupunguza utegemezi wake kwenye msingi mmoja wa msimbo. Lengo bora ni kufikia utofauti bila mteja yeyote kutawala mtandao, na hivyo kuondoa uwezekano wa kutofaulu. +Lugha mbalimbali pia hualika jumuiya pana ya wasanidi programu na kuwaruhusu kuunda miunganisho katika lugha wanayopendelea. + +Jifunze zaidi kuhusu [anuwai ya wateja](/developers/docs/nodes-and-clients/client-diversity/). + +Kitu ambacho utekelezaji huu unafanana ni kwamba zote hufuata vipimo maalum kimoja. Vipimo maalum huamua jinsi mtandao wa Ethereum na mnyororo wa bloku hufanya kazi. Kila maelezo ya kiufundi yamefafanuliwa na vipimo maalum vinaweza kupatikana kama: + +- Hapo awali, [Karatasi ya Njano ya Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf) +- [Vipimo maalum vya utekelezaji](https://github.com/ethereum/execution-specs/) +- [Vipimo maalum vya makubaliano](https://github.com/ethereum/consensus-specs) +- [EIPs](https://eips.ethereum.org/) zilizotekelezwa katika [maboresho mbalimbali ya mtandao](/ethereum-forks/) + +### Kufuatilia nodi kwenye mtandao {#network-overview} + +Vifuatiliaji vingi hutoa muhtasari wa wakati halisi wa nodi katika mtandao wa Ethereum. Kumbuka kuwa kutokana na hali ya mitandao iliyotawanywa, watafutaji hawa wanaweza tu kutoa mwonekano mdogo wa mtandao na wanaweza kuripoti matokeo tofauti. + +- [Ramani ya nodi](https://etherscan.io/nodetracker) na Etherscan +- [Ethernodes](https://ethernodes.org/) na Bitfly +- [Nodewatch](https://www.nodewatch.io/) na Chainsafe, inayotambaa kwenye nodi za makubaliano +- [Monitoreth](https://monitoreth.io/) - na MigaLabs, Zana ya ufuatiliaji wa mtandao uliosambazwa +- [Ripoti za Afya za Mtandao za Kila Wiki](https://probelab.io) - na ProbeLab, Inatumia [kitambaaji cha Nebula](https://github.com/dennis-tra/nebula) na zana zingine + +## Aina za nodi {#node-types} + +Ikiwa unataka [kuendesha nodi yako mwenyewe](/developers/docs/nodes-and-clients/run-a-node/), unapaswa kuelewa kuwa kuna aina tofauti za nodi zinazotumia data kwa njia tofauti. Kwa hakika, wateja wanaweza kuendesha aina tatu tofauti za nodi: nyepesi, kamili na kumbukumbu. Pia kuna chaguo za mikakati tofauti ya usawazishaji ambayo huwezesha muda wa usawazishaji wa haraka zaidi. Uunganishaji unarejelea jinsi inavyoweza kupata taarifa za hivi punde kuhusu jimbo la Ethereum kwa haraka. + +### Nodi kamili {#full-node} + +Nodi kamili hufanya uthibitishaji wa kizuizi kwa kizuizi cha kiambajengo, ikiwa ni pamoja na kupakua na kuthibitisha kiini cha kizuia na data ya serikali kwa kila kizuizi. Kuna aina tofauti za nodi kamili - zingine huanza kutoka kwa kizuizi cha mwanzo na kuthibitisha kila kizuizi kimoja katika historia nzima ya kiambajengo. Wengine huanza uthibitishaji wao kwenye bloku ya hivi karibuni zaidi wanayoiamini kuwa halali (k.m., 'usawazishaji wa snap' wa Geth). Bila kujali mahali ambapo uthibitishaji unaanzia, nodi kamili huweka tu nakala ya ndani ya data ya hivi karibuni (kawaida vizuizi 128 vya hivi karibuni), ikiruhusu data ya zamani kufutwa ili kuhifadhi nafasi ya diski. Data za zamani zinaweza kutengenezwa upya zinapohitajika. + +- Huhifadhi data kamili ya mnyororo wa bloku (ingawa hii hupunguzwa mara kwa mara kwa hivyo nodi kamili haihifadhi data zote za hali hadi mwanzo) +- Hushiriki katika uthibitishaji wa bloku, huthibitisha bloku na hali zote. +- Majimbo yote yanaweza kupatikana kutoka kwa hifadhi ya ndani au kutolewa upya kutoka kwa 'picha za kumbukumbu' kwa nodi kamili. +- Huhudumia mtandao na hutoa data kwa ombi. + +### Nodi ya kumbukumbu {#archive-node} + +Nodi za kumbukumbu ni nodi kamili ambazo huthibitisha kila kizuizi kutoka kwa mwanzo na kamwe kufuta data yoyote iliyopakuliwa. + +- Huhifadhi kila kitu kilichohifadhiwa kwenye nodi kamili na hujenga kumbukumbu ya hali za kihistoria. Inahitajika ikiwa ungependa kuuliza swali kama salio la akaunti kwenye kizuizi #4,000,000, au jaribu kwa urahisi na kwa uhakika miamala yako uliyoweka bila kuithibitisha kwa kutumia ufuatiliaji. +- Data hii inawakilisha vitengo vya terabaiti, ambayo hufanya nodi za kumbukumbu zisiwe na mvuto kwa watumiaji wastani lakini inaweza kutumika kwa huduma kama vile vivinjari, wachuuzi wa mkoba na uchanganuzi wa minyororo. + +Kusawazisha wateja katika hali yoyote isipokuwa kumbukumbu kutasababisha data ya mnyororo wa bloku iliyopunguzwa. Hii ina maana, hakuna kumbukumbu ya majimbo yote ya kihistoria lakini nodi kamili inaweza kujenga yao juu ya mahitaji. + +Jifunze zaidi kuhusu [Nodi za kumbukumbu](/developers/docs/nodes-and-clients/archive-nodes). + +### Nodi nyepesi {#light-node} + +Badala ya kupakua kila bloku, nodi nyepesi hupakua tu vichwa vya bloku. Vichwa hivi vina maelezo ya muhtasari kuhusu yaliyomo kwenye bloku. Taarifa nyingine yoyote ambayo nodi nyepesi inahitaji huombwa kutoka kwa nodi kamili. Nodi ya nyepesi inaweza kuthibitisha kwa kujitegemea data wanayopokea dhidi ya mizizi ya majimbo kwenye vichwa vya kuzuia. Node za mwanga huwawezesha watumiaji kushiriki katika mtandao wa Ethereum bila vifaa vyenye nguvu au kipimo cha juu kinachohitajika ili kuendesha nodi kamili. Hatimaye, nodi nyepesi zinaweza kuendeshwa kwenye simu za mkononi au vifaa vilivyopachikwa. Nodi nyepesi hazishiriki katika makubaliano (yaani, haziwezi kuwa wathibitishaji), lakini zinaweza kufikia mnyororo wa bloku wa Ethereum na utendaji sawa na dhamana za usalama kama nodi kamili. + +Wateja wa mwanga ni eneo la maendeleo ya kazi kwa Ethereum na tunatarajia kuona wateja wapya wa mwanga kwa safu ya makubaliano na safu ya utekelezaji hivi karibuni. +Pia kuna njia zinazowezekana za kutoa data ya mteja nyepesi kupitia [mtandao wa gossip](https://www.ethportal.net/). Hii ni faida kwa sababu mtandao wa porojo unaweza kusaidia mtandao wa nodi nyepesi bila kuhitaji nodi kamili ili kuwasilisha maombi. + +Ethereum haiungi mkono idadi kubwa ya nodi za mwanga bado, lakini usaidizi wa nodi za mwanga ni eneo linalotarajiwa kuendeleza haraka katika siku za usoni. Hasa, wateja kama [Nimbus](https://nimbus.team/), [Helios](https://github.com/a16z/helios), na [LodeStar](https://lodestar.chainsafe.io/) kwa sasa wamejikita sana kwenye nodi nyepesi. + +## Kwa nini niendeshe nodi ya Ethereum? {#why-should-i-run-an-ethereum-node} + +Kuendesha nodi hukuruhusu kutumia Ethereum moja kwa moja, bila uaminifu na kwa faragha huku ukiunga mkono mtandao kwa kuuweka imara zaidi na kutawanywa. + +### Faida kwako {#benefits-to-you} + +Kuendesha nodi yako mwenyewe hukuwezesha kutumia Ethereum kwa njia ya faragha, ya kujitegemea na isiyoaminika. Huna haja ya kuamini mtandao kwa sababu unaweza kuthibitisha data mwenyewe na mteja wako. "Usiamini, thibitisha" ni kauli mbiu maarufu ya mnyororo wa bloku. + +- Nodi yako huthibitisha miamala na bloku zote dhidi ya sheria za makubaliano yenyewe. Hii inamaanisha si lazima utegemee nodi zingine zozote kwenye mtandao au kuziamini kikamilifu. +- Unaweza kutumia mkoba wa Ethereum na nodi yako mwenyewe. Unaweza kutumia dapps kwa usalama zaidi na kwa faragha kwa sababu hutalazimika kuvujisha anwani na salio zako kwa wapatanishi. Kila kitu kinaweza kukaguliwa na mteja wako mwenyewe. [MetaMask](https://metamask.io), [Frame](https://frame.sh/), na [mikoba mingine mingi](/wallets/find-wallet/) hutoa uagizaji wa RPC, kuwaruhusu kutumia nodi yako. +- Unaweza kuendesha na kujihifadhi huduma zingine ambazo hutegemea data kutoka Ethereum. Kwa mfano, hii inaweza kuwa kithibitishaji cha mnyororo wa Beacon, programu kama vile safu ya 2, miundombinu, wachunguzi wa kuzuia, wachakataji malipo, n. k. +- Unaweza kutoa [ncha zako maalum za RPC](/developers/docs/apis/json-rpc/). Unaweza hata kutoa viunganishi hivi hadharani kwa jamii ili kuwasaidia kuepuka watoa huduma wakuu wa kimamlaka. +- Unaweza kuunganisha kwenye nodi yako kwa kutumia **Mawasiliano ya Mchakato wa Kati (IPC)** au uandike upya nodi ili kupakia programu yako kama programu-jalizi. Hii inatoa muda wa kusubiri wa chini, ambayo husaidia sana, k.m., wakati wa kuchakata data nyingi kwa kutumia maktaba za web3 au unapohitaji kubadilisha miamala yako haraka iwezekanavyo (yaani, kukimbia mbele). +- Unaweza kuweka hisa ETH moja kwa moja ili kulinda mtandao na kupata zawadi. Angalia [uwekaji hisa pekee](/staking/solo/) ili kuanza. + +![Jinsi unavyofikia Ethereum kupitia mfumo wako na nodi](./nodes.png) + +### Faida za mtandao {#network-benefits} + +Seti mbalimbali za nodi ni muhimu kwa afya, usalama na ustahimilivu wa kiutendaji wa Ethereum. + +- Nodi kamili hutekeleza sheria za maafikiano ili wasiweze kudanganywa ili wakubali vizuizi ambavyo havifuati. Hii hutoa usalama wa ziada kwenye mtandao kwa sababu ikiwa nodi zote zingekuwa nodi nyepesi, ambazo hazifanyi uthibitishaji kamili, viidhinishi vinaweza kushambulia mtandao. +- Katika kisa cha shambulio ambalo hushinda ulinzi wa kiuchumi wa kripto wa [uthibitisho wa hisa](/developers/docs/consensus-mechanisms/pos/#what-is-pos), urejeshaji wa kijamii unaweza kufanywa na nodi kamili zinazochagua kufuata mnyororo mnyofu. +- Nodi nyingi zaidi kwenye mtandao husababisha mtandao tofauti na thabiti, lengo kuu la utawanyaji, ambalo huwezesha mfumo unaostahimili udhibiti na unaotegemewa. +- Nodi kamili hutoa ufikiaji wa data ya mnyororo wa bloku kwa wateja wepesi wanaotegemea. Nodi nyepesi hazihifadhi mnyororo mzima wa bloku, badala yake huthibitisha data kupitia [mizizi ya hali katika vichwa vya bloku](/developers/docs/blocks/#block-anatomy). Wanaweza kuomba maelezo zaidi kutoka kwa nodi kamili ikiwa wanahitaji. + +Ikiwa unatumia nodi kamili, mtandao wote wa Ethereum unafaidika nayo, hata ikiwa hutumii kithibitishaji. + +## Kuendesha nodi yako mwenyewe {#running-your-own-node} + +Unavutiwa na kuendesha mteja wako mwenyewe wa Ethereum? + +Kwa utangulizi unaofaa kwa wanaoanza tembelea ukurasa wetu wa [endesha nodi](/run-a-node) ili kujifunza zaidi. + +Ikiwa wewe ni mtumiaji wa kiufundi zaidi, ingia katika maelezo na chaguo zaidi kuhusu jinsi ya [kuanzisha nodi yako mwenyewe](/developers/docs/nodes-and-clients/run-a-node/). + +## Njia mbadala {#alternatives} + +Kuandaa nodi yako mwenyewe kunaweza kukugharimu wakati na rasilimali lakini huhitaji kila wakati kuendesha mfano wako mwenyewe. Katika kesi hii, unaweza kutumia mtoa huduma wa API wa wahusika wengine. Kwa muhtasari wa kutumia huduma hizi, angalia [nodi kama huduma](/developers/docs/nodes-and-clients/nodes-as-a-service/). + +Iwapo mtu anaendesha nodi ya Ethereum iliyo na API ya umma katika jumuiya yako, unaweza kuelekeza mikoba yako kwenye nodi ya jumuiya kupitia Custom RPC na upate faragha zaidi kuliko na mtu mwingine anayeaminika bila mpangilio. + +Kwa upande mwingine, ikiwa unaendesha mteja, unaweza kuishiriki na marafiki zako wanaoweza kuihitaji. + +## Wateja wa utekelezaji {#execution-clients} + +Jumuiya ya Ethereum hudumisha wateja wengi wa utekelezaji wa programu huria (hapo awali walijulikana kama 'Wateja wa Eth1', au 'wateja wa Ethereum' pekee), iliyotengenezwa na timu tofauti zinazotumia lugha tofauti za programu. Hii hufanya mtandao kuwa imara zaidi na [wenye anuwai zaidi](/developers/docs/nodes-and-clients/client-diversity/). Lengo bora ni kufikia utofauti bila mteja yeyote kutawala ili kupunguza uwezekano wowote wa kushindwa. + +Jedwali hili linatoa muhtasari wa wateja tofauti. Wote hupita [majaribio ya wateja](https://github.com/ethereum/tests) na hudumishwa kikamilifu ili kusasishwa na maboresho ya mtandao. + +| Mteja | Lugha | Mifumo ya uendeshaji | Mitandao | Mikakati ya Usawazishaji | Upunguzaji wa hali | +| ------------------------------------------------------------------------------------------- | ------------------------ | --------------------- | ---------------------------- | ------------------------------------------------------------------------------------ | ------------------------- | +| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mtandao Mkuu, Sepolia, Hoodi | [Snap](#snap-sync), [Kamili](#full-sync) | Kumbukumbu, Iliyopunguzwa | +| [Nethermind](https://www.nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mtandao Mkuu, Sepolia, Hoodi | [Snap](#snap-sync) (bila kuhudumia), Haraka, [Kamili](#full-sync) | Kumbukumbu, Iliyopunguzwa | +| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mtandao Mkuu, Sepolia, Hoodi | [Snap](#snap-sync), [Haraka](#fast-sync), [Kamili](#full-sync) | Kumbukumbu, Iliyopunguzwa | +| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux, Windows, macOS | Mtandao Mkuu, Sepolia, Hoodi | [Kamili](#full-sync) | Kumbukumbu, Iliyopunguzwa | +| [Reth](https://reth.rs/) | Rust | Linux, Windows, macOS | Mtandao Mkuu, Sepolia, Hoodi | [Kamili](#full-sync) | Kumbukumbu, Iliyopunguzwa | +| [EthereumJS](https://github.com/ethereumjs/ethereumjs-monorepo) _(beta)_ | TypeScript | Linux, Windows, macOS | Sepolia, Hoodi | [Kamili](#full-sync) | Iliyopunguzwa | + +Kwa zaidi kuhusu mitandao inayotumika, soma kuhusu [mitandao ya Ethereum](/developers/docs/networks/). + +Kila mteja ana matumizi na faida za kipekee, kwa hivyo unapaswa kuchagua mmoja kulingana na mapendeleo yako mwenyewe. Anuwai inaruhusu utekelezaji kulenga vipengele tofauti na hadhira ya watumiaji. Unaweza kutaka kuchagua mteja kulingana na vipengele, usaidizi, lugha ya programu, au leseni. + +### Besu {#besu} + +Hyperledger Besu ni mteja wa Ethereum wa kiwango cha biashara kwa mitandao ya umma na yenye ruhusa. Inaendesha vipengele vyote vya Mtandao Mkuu wa Ethereum, kutoka ufuatiliaji hadi GraphQL, ina ufuatiliaji wa kina na inasaidiwa na ConsenSys, katika njia za wazi za jamii na kupitia SLAs za kibiashara kwa biashara. Imeandikwa kwa Java na ina leseni ya Apache 2.0. + +[Nyaraka](https://besu.hyperledger.org/en/stable/) za kina za Besu zitakuongoza kupitia maelezo yote kuhusu vipengele na usanidi wake. + +### Erigon {#erigon} + +Erigon, ambaye awali alijulikana kama Turbo-Geth, ilianza kama uma wa Go Ethereum inayoelekezwa kwa kasi na ufanisi wa nafasi ya diski. Erigon ni usanifu upya kabisa wa utekelezaji wa Ethereum, ulioandikwa kwa sasa katika Go lakini ukiwa na utekelezaji katika lugha nyingine zinazoendelea. Lengo la Erigon ni kutoa utekelezaji wa haraka, wa moduli zaidi, na ulioboreshwa zaidi wa Ethereum. Inaweza kufanya usawazishaji kamili wa nodi ya kumbukumbu kwa kutumia takriban 2TB ya nafasi ya diski, chini ya siku 3. + +### Go Ethereum {#geth} + +Go Ethereum (Geth kwa ufupi) ni moja ya utekelezaji wa asili wa itifaki ya Ethereum. Hivi sasa, ndiye mteja aliyeenea zaidi na msingi mkubwa zaidi wa watumiaji na zana anuwai kwa watumiaji na wasanifu. Imeandikwa kwa Go, chanzo wazi kikamilifu na ina leseni chini ya GNU LGPL v3. + +Jifunze zaidi kuhusu Geth katika [nyaraka](https://geth.ethereum.org/docs/) zake. + +### Nethermind {#nethermind} + +Nethermind ni utekelezaji wa Ethereum ulioundwa kwa mkusanyiko wa teknolojia ya C# .NET, iliyopewa leseni na LGPL-3.0, inayoendeshwa kwenye mifumo yote mikuu ikijumuisha ARM. Inatoa utendaji mzuri na: + +- mashine halisi iliyoboreshwa +- ufikiaji wa hali +- mitandao na vipengele vingi kama vile dashibodi za Prometheus/Grafana, msaada wa uandikishaji wa seq, ufuatiliaji wa JSON-RPC na programu jalizi za uchanganuzi. + +Nethermind pia ina [nyaraka za kina](https://docs.nethermind.io), usaidizi mkubwa wa wasanidi, jumuiya ya mtandaoni na usaidizi wa 24/7 unaopatikana kwa watumiaji wa malipo. + +### Reth {#reth} + +Reth (ufupi wa Rust Ethereum) ni utekelezaji wa nodi kamili ya Ethereum unaolenga kuwa rafiki kwa mtumiaji, unaoweza kubadilishwa kwa urahisi, haraka na wenye ufanisi. Reth awali ilijengwa na kuendeshwa mbele na Paradigm, na ina leseni chini ya leseni za Apache na MIT. + +Reth iko tayari kwa uzalishaji, na inafaa kwa matumizi katika mazingira muhimu ya dhamira kama vile huduma za kasi au za muda wa juu. Hufanya kazi vyema katika hali za utumiaji ambapo utendaji wa juu wenye ukingo mkubwa unahitajika kama vile RPC, MEV kuorodhesha, kuiga mienendo, na shighuli za P2P. + +Jifunze zaidi kwa kuangalia [Kitabu cha Reth](https://reth.rs/), au [repo ya Reth ya GitHub](https://github.com/paradigmxyz/reth?tab=readme-ov-file#reth). + +### Inayoendelezwa {#execution-in-development} + +Wateja hawa bado wako katika hatua za awali za maendeleo na bado hawajapendekezwa kwa matumizi ya uzalishaji. + +#### EthereumJS {#ethereumjs} + +Mteja wa Utekelezaji wa EthereumJS (EthereumJS) imeandikwa katika TypeScript na inaundwa na idadi ya vifurushi, ikiwa ni pamoja na vipengele vya msingi vya Ethereum zinazowakilishwa na kizuizi, Transaction, na Merkle-Patricia Trie na vipengele vya msingi vya mteja ikiwa ni pamoja na utekelezaji wa Ethereum Virtual Machine (EVM), mtandao wa kiambajengo cha 2P, na mfuko wa mitandao wa DevP2P. + +Jifunze zaidi kuihusu kwa kusoma [nyaraka](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master) zake + +## Wateja wa makubaliano {#consensus-clients} + +Kuna wateja wengi wa makubaliano (hapo awali walijulikana kama wateja wa 'Eth2') ili kusaidia [maboresho ya makubaliano](/roadmap/beacon-chain/). Wanawajibika kwa mantiki yote inayohusiana na makubaliano ikiwa ni pamoja na algoriti ya kuchagua uma, kuchakata uthibitisho na kusimamia zawadi na adhabu za [uthibitisho wa hisa](/developers/docs/consensus-mechanisms/pos). + +| Mteja | Lugha | Mifumo ya uendeshaji | Mitandao | +| ------------------------------------------------------------- | ---------- | --------------------- | ----------------------------------------------------------- | +| [Lighthouse](https://lighthouse.sigmaprime.io/) | Rust | Linux, Windows, macOS | Mnyororo Kioleza, Hoodi, Pyrmont, Sepolia, na zaidi | +| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Mnyororo Kioleza, Hoodi, Sepolia, na zaidi | +| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Mnyororo Kioleza, Hoodi, Sepolia, na zaidi | +| [Prysm](https://prysm.offchainlabs.com/docs/) | Go | Linux, Windows, macOS | Mnyororo Kioleza, Gnosis, Hoodi, Pyrmont, Sepolia, na zaidi | +| [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) | Java | Linux, Windows, macOS | Mnyororo Kioleza, Gnosis, Hoodi, Sepolia, na zaidi | +| [Grandine](https://docs.grandine.io/) | Rust | Linux, Windows, macOS | Mnyororo Kioleza, Hoodi, Sepolia, na zaidi | + +### Lighthouse {#lighthouse} + +Lighthouse ni utekelezaji wa mteja wa makubaliano ulioandikwa kwa Rust chini ya leseni ya Apache-2.0. Inatunzwa na Sigma Prime na imekuwa thabiti na tayari kwa uzalishaji tangu mwanzo wa mnyororo wa Beacon. Inategemewa na biashara mbalimbali, mabwawa ya uwekaji hisa na watu binafsi. Inalenga kuwa salama, utendaji na kushirikiana katika mazingira mbalimbali, kutoka kwa Kompyuta za mezani hadi uwekaji wa kiotomatiki wa hali ya juu. + +Nyaraka zinaweza kupatikana katika [Kitabu cha Lighthouse](https://lighthouse-book.sigmaprime.io/) + +### Lodestar {#lodestar} + +Lodestar ni utekelezaji wa makubaliano ya mteja ulio tayari kwa uzalishaji ulioandikwa katika Typescript chini ya leseni ya LGPL-3.0. Inasimamiwa na ChainSafe Systems na ndiyo wateja wapya zaidi wa makubaliano kwa washikadau pekee, watengenezaji na watafiti. Lodestar inajumuisha nodi ya beacon na mteja wa uthibitishaji unaoendeshwa na utekelezaji wa JavaScript wa itifaki za Ethereum. Lodestar inalenga kuboresha urahisi wa matumizi ya Ethereum kwa kutumia wateja wepesi, kupanua upatikanaji kwa kundi kubwa zaidi la watengenezaji, na kuchangia zaidi katika utofauti wa mfumo wa ikolojia. + +Maelezo zaidi yanaweza kupatikana kwenye [tovuti ya Lodestar](https://lodestar.chainsafe.io/) + +### Nimbus {#nimbus} + +Nimbus ni utekelezaji wa mteja wa makubaliano ulioandikwa kwa Nim chini ya leseni ya Apache-2.0. Ni mteja aliye tayari kwa uzalishaji anayetumiwa na waweka hisa pekee na mabwawa ya uwekaji hisa. Nimbus imeundwa kwa ajili ya ufanisi wa rasilimali, na kuifanya iwe rahisi kutumia vifaa vyenye vikwazo vya rasilimali na miundombinu ya biashara kwa urahisi sawa, bila kuathiri uthabiti au utendakazi wa zawadi. Alama ya rasilimali nyepesi inamaanisha kuwa mteja ana ukingo mkubwa wa usalama wakati mtandao uko chini ya msongo. + +Jifunze zaidi katika [hati za Nimbus](https://nimbus.guide/) + +### Prysm {#prysm} + +Prysm ni mteja wa makubaliano wa chanzo wazi wenye vipengele kamili, ulioandikwa kwa Go chini ya leseni ya GPL-3.0. Ina kipengele cha hiari cha UI ya wavuti na inatanguliza uzoefu wa mtumiaji, nyaraka, na urekebishwaji kwa watumiaji wa nyumbani na wale wa taasisi. + +Tembelea [hati za Prysm](https://prysm.offchainlabs.com/docs/) ili kujifunza zaidi. + +### Teku {#teku} + +Teku ni mmoja wa wateja wa asili wa mwanzo wa Mnyororo Kioleza. Pamoja na malengo ya kawaida (usalama, uimara, uthabiti, utumiaji, utendaji), Teku inalenga hasa kuzingatia kikamilifu viwango vyote mbalimbali vya wateja wa makubaliano. + +Teku inatoa chaguo rahisi sana za upelekaji. Nodi ya mnyororo kioleza na mteja wa mthibitishaji vinaweza kuendeshwa pamoja kama mchakato mmoja, ambayo ni rahisi sana kwa waweka hisa pekee, au nodi zinaweza kuendeshwa kando kwa shughuli za uwekaji hisa za hali ya juu. Kwa kuongeza, Teku inaingiliana kikamilifu na [Web3Signer](https://github.com/ConsenSys/web3signer/) kwa usalama wa ufunguo wa kutia saini na ulinzi wa kupunguzwa. + +Teku imeandikwa kwa Java na ina leseni ya Apache 2.0. Inatengenezwa na timu ya Itifaki huko ConsenSys ambayo pia inawajibika kwa Besu na Web3Signer. Jifunze zaidi katika [hati za Teku](https://docs.teku.consensys.net/en/latest/). + +### Grandine {#grandine} + +Grandine ni utekelezaji wa mteja wa makubaliano, ulioandikwa kwa Rust chini ya leseni ya GPL-3.0. Inadumishwa na Timu ya Msingi ya Grandine na ni ya haraka, yenye utendaji wa juu na nyepesi. Inafaa kwa waweka hisa anuwai kutoka kwa waweka hisa pekee wanaoendesha vifaa vyenye rasilimali ndogo kama vile Raspberry Pi hadi waweka hisa wakubwa wa kitaasisi wanaoendesha makumi ya maelfu ya wathibitishaji. + +Nyaraka zinaweza kupatikana katika [Kitabu cha Grandine](https://docs.grandine.io/) + +## Njia za usawazishaji {#sync-modes} + +Ili kufuata na kuthibitisha data ya sasa kwenye mtandao, mteja wa Ethereum anahitaji kusawazisha na hali ya hivi karibuni ya mtandao. Hii inafanywa kwa kupakua data kutoka kwa rika, kuthibitisha uadilifu wao kwa kriptografia, na kujenga hifadhidata ya mnyororo wa bloku ya ndani. + +Njia za usawazishaji zinawakilisha mbinu tofauti za mchakato huu na maelewano mbalimbali. Wateja pia hutofautiana katika utekelezaji wao wa algoriti za usawazishaji. Daima rejelea nyaraka rasmi za mteja uliyemchagua kwa maelezo maalum juu ya utekelezaji. + +### Njia za usawazishaji za safu ya utekelezaji {#execution-layer-sync-modes} + +Safu ya utekelezaji inaweza kuendeshwa katika njia tofauti ili kukidhi matumizi tofauti, kutoka kutekeleza tena hali ya ulimwengu ya mnyororo wa bloku hadi kusawazisha tu na ncha ya mnyororo kutoka kwa kituo cha ukaguzi kinachoaminika. + +#### Usawazishaji kamili {#full-sync} + +Usawazishaji kamili hupakua bloku zote (ikiwa ni pamoja na vichwa na miili ya bloku) na hutengeneza upya hali ya mnyororo wa bloku kwa kuongeza kwa kutekeleza kila bloku kutoka mwanzo. + +- Hupunguza uaminifu na hutoa usalama wa juu zaidi kwa kuthibitisha kila muamala. +- Kwa kuongezeka kwa idadi ya miamala, inaweza kuchukua siku hadi wiki kuchakata miamala yote. + +[Nodi za kumbukumbu](#archive-node) hufanya usawazishaji kamili ili kujenga (na kuhifadhi) historia kamili ya mabadiliko ya hali yaliyofanywa na kila muamala katika kila bloku. + +#### Usawazishaji wa haraka {#fast-sync} + +Kama usawazishaji kamili, usawazishaji wa haraka hupakua bloku zote (ikiwa ni pamoja na vichwa, miamala, na risiti). Hata hivyo, badala ya kuchakata upya miamala ya nyuma, uunganishaji wa haraka hutegemea stakabadhi hadi kufikia kichwa cha hivi majuzi, inapobadilika na kuingiza na kuchakata vitalu ili kutoa nodi kamili. + +- Mkakati wa usawazishaji wa haraka. +- Hupunguza mahitaji ya uchakataji kwa kupendelea matumizi ya kipimo data. + +#### Usawazishaji wa Snap {#snap-sync} + +Usawazishaji wa Snap pia huthibitisha mnyororo bloku kwa bloku. Hata hivyo, badala ya kuanza kwenye kizuizi cha mwanzo, uunganishaji wa haraka huanza katika sehemu ya hivi karibuni ya ukaguzi 'inayoaminika' ambayo inajulikana kuwa sehemu ya kiambajengo ya halisi. Nodi huhifadhi vituo vya ukaguzi vya mara kwa mara huku ikifuta data ya zamani zaidi ya umri fulani. Picha hizi za haraka hutumiwa kutengeneza upya data ya hali inavyohitajika, badala ya kuihifadhi milele. + +- Mkakati wa haraka zaidi wa usawazishaji, kwa sasa ni chaguomsingi katika Mtandao Mkuu wa Ethereum. +- Huokoa matumizi mengi ya diski na kipimo data cha mtandao bila kuathiri usalama. + +[Zaidi kuhusu usawazishaji wa snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md). + +#### Usawazishaji mwepesi {#light-sync} + +Njia ya mteja mwepesi hupakua vichwa vyote vya bloku, data ya bloku, na huthibitisha baadhi kwa nasibu. Husawazisha tu ncha ya mnyororo kutoka kwa kituo cha ukaguzi kinachoaminika. + +- Hupata tu hali ya hivi karibuni huku ikitegemea uaminifu kwa wasanidi programu na utaratibu wa makubaliano. +- Mteja tayari kutumika na hali ya sasa ya mtandao ndani ya dakika chache. + +**NB** Usawazishaji mwepesi bado haufanyi kazi na uthibitisho wa hisa wa Ethereum - matoleo mapya ya usawazishaji mwepesi yanapaswa kutolewa hivi karibuni! + +[Zaidi kuhusu wateja wepesi](/developers/docs/nodes-and-clients/light-clients/) + +### Njia za usawazishaji za safu ya makubaliano {#consensus-layer-sync-modes} + +#### Usawazishaji wa matumaini {#optimistic-sync} + +Optimistic syn ni mkakati wa ulandanishi wa baada ya kuunganisha iliyoundwa kuingia na inyooana na matoleo ya zamani, kuruhusu nodi za utekelezaji kuunganisha kupitia mbinu zilizowekwa. Injini ya utekelezaji inaweza kuingiza bloku za mnyororo kioleza _kwa matumaini_ bila kuzithibitisha kikamilifu, kupata kichwa cha hivi karibuni, na kisha kuanza kusawazisha mnyororo na mbinu zilizo hapo juu. Kisha, baada ya mteja wa utekelezaji kukamata, itajulisha mteja wa makubaliano ya uhalali wa miamala katika Mnyororo wa Beacon. + +[Zaidi kuhusu usawazishaji wa matumaini](https://github.com/ethereum/consensus-specs/blob/dev/sync/optimistic.md) + +#### Usawazishaji wa kituo cha ukaguzi {#checkpoint-sync} + +Uunganishaji wa sehemu ya ukaguzi, unaojulikana pia kama uunganishaji dhaifu wa ubinafsi, hutengeneza hali bora ya mtumiaji ya kuunganisha Nodi ya Beacon. Inategemea dhana za [udhaifu wa kibinafsi](/developers/docs/consensus-mechanisms/pos/weak-subjectivity/) ambayo huwezesha kusawazisha Mnyororo Kioleza kutoka kwa kituo cha ukaguzi cha hivi karibuni cha udhaifu wa kibinafsi badala ya mwanzo. Usawazishaji wa kituo cha ukaguzi hufanya muda wa awali wa usawazishaji kuwa haraka zaidi na dhana sawa za uaminifu kama kusawazisha kutoka [mwanzo](/glossary/#genesis-block). + +Kwa mazoezi, hii inamaanisha kuwa nodi yako inaunganishwa na huduma ya mbali ili kupakua majimbo yaliyokamilishwa hivi karibuni na kuendelea kuthibitisha data kutoka kwa hatua hiyo. Mhusika wa tatu anayetoa data anaaminika na anapaswa kuchaguliwa kwa uangalifu. + +Zaidi kuhusu [usawazishaji wa kituo cha ukaguzi](https://notes.ethereum.org/@djrtwo/ws-sync-in-practice) + +## Masomo zaidi {#further-reading} + +- [Ethereum 101 - Sehemu ya 2 - Kuelewa Nodi](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _– Wil Barnes, 13 Februari 2019_ +- [Kuendesha Nodi Kamili za Ethereum: Mwongozo kwa Wenye Ari Kidogo](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 Novemba 2019_ + +## Mada zinazohusiana {#related-topics} + +- [Bloku](/developers/docs/blocks/) +- [Mitandao](/developers/docs/networks/) + +## Mafunzo yanayohusiana {#related-tutorials} + +- [Geuza Raspberry Pi 4 yako kuwa nodi ya mthibitishaji kwa kuwasha tu kadi ya MicroSD – Mwongozo wa usakinishaji](/developers/tutorials/run-node-raspberry-pi/) _– Washa Raspberry Pi 4 yako, chomeka kebo ya ethaneti, unganisha diski ya SSD na uwashe kifaa ili kugeuza Raspberry Pi 4 kuwa nodi kamili ya Ethereum inayoendesha safu ya utekelezaji (Mtandao Mkuu) na/au safu ya makubaliano (Mnyororo Kioleza / mthibitishaji)._ diff --git a/public/content/translations/sw/developers/docs/nodes-and-clients/light-clients/index.md b/public/content/translations/sw/developers/docs/nodes-and-clients/light-clients/index.md new file mode 100644 index 00000000000..f42490a1e26 --- /dev/null +++ b/public/content/translations/sw/developers/docs/nodes-and-clients/light-clients/index.md @@ -0,0 +1,61 @@ +--- +title: Wateja wepesi +description: Utangulizi wa wateja wepesi wa Ethereum. +lang: sw +--- + +Kuendesha nodi kamili ndiyo njia isiyo na uaminifu zaidi, ya faragha, iliyogatuliwa na sugu ya udhibiti ya kuingiliana na Ethereum. Ukiwa na nodi kamili unahifadhi nakala yako mwenyewe ya mnyororo wa bloku ambayo unaweza kuiuliza papo hapo na unapata ufikiaji wa moja kwa moja kwa mtandao rika-kwa-rika wa Ethereum. Hata hivyo, kuendesha nodi kamili kunahitaji kiasi kikubwa cha kumbukumbu, ghala na CPU. Hii inamaanisha haiwezekani kwa kila mtu kuendesha nodi yake mwenyewe. Kuna suluhisho kadhaa kwa hili kwenye ramani ya barabara ya Ethereum, ikiwa ni pamoja na statelessness, lakini ziko miaka kadhaa kabla ya kutekelezwa. Jibu la muda mfupi ni kubadilishana baadhi ya faida za kuendesha nodi kamili kwa maboresho makubwa ya utendaji ambayo huruhusu nodi kufanya kazi na mahitaji ya chini sana ya maunzi. Nodi zinazofanya biashara hii zinajulikana kama nodi nyepesi. + +## Mteja mwepesi ni nini {#what-is-a-light-client} + +Nodi nyepesi ni nodi inayoendesha programu ya mteja mwepesi. Badala ya kuhifadhi nakala za ndani za data ya mnyororo wa bloku na kuthibitisha mabadiliko yote kwa kujitegemea, huomba data muhimu kutoka kwa mtoa huduma fulani badala yake. Mtoa huduma anaweza kuwa muunganisho wa moja kwa moja kwa nodi kamili au kupitia seva fulani ya RPC iliyowekwa katikati. Data kisha inathibitishwa na nodi nyepesi, ikiruhusu kwenda sambamba na kichwa cha mnyororo. Nodi nyepesi huchakata tu vichwa vya bloku, ikipakua mara chache tu yaliyomo halisi ya bloku. Nodi zinaweza kutofautiana katika wepesi wao, kulingana na mchanganyiko wa programu za mteja mwepesi na kamili wanazoendesha. Kwa mfano, usanidi mwepesi zaidi itakuwa ni kuendesha mteja mwepesi wa utekelezaji na mteja mwepesi wa makubaliano. Pia kuna uwezekano kwamba nodi nyingi zitachagua kuendesha wateja wepesi wa makubaliano na wateja kamili wa utekelezaji, au kinyume chake. + +## Wateja wepesi hufanyaje kazi? {#how-do-light-clients-work} + +Wakati Ethereum ilipoanza kutumia utaratibu wa makubaliano unaotegemea uthibitisho wa hisa, miundombinu mipya ilianzishwa mahususi kusaidia wateja wepesi. Njia inavyofanya kazi ni kwa kuchagua bila mpangilio kikundi kidogo cha wathibitishaji 512 kila baada ya siku 1.1 kufanya kazi kama **kamati ya kusawazisha**. Kamati ya kusawazisha hutia saini kichwa cha bloku za hivi karibuni. Kila kichwa cha bloku kina saini iliyokusanywa ya wathibitishaji katika kamati ya kusawazisha na "bitfield" inayoonyesha ni wathibitishaji gani waliotia saini na ni wapi hawakutia saini. Kila kichwa pia kinajumuisha orodha ya wathibitishaji wanaotarajiwa kushiriki katika kutia saini bloku inayofuata. Hii inamaanisha mteja mwepesi anaweza kuona haraka kwamba kamati ya kusawazisha imetia saini data wanayopokea, na pia wanaweza kuangalia kuwa kamati ya kusawazisha ni ya kweli kwa kulinganisha ile wanayopokea na ile waliyoambiwa kutarajia katika bloku iliyotangulia. Kwa njia hii, mteja mwepesi anaweza kuendelea kusasisha maarifa yake ya bloku ya hivi karibuni ya Ethereum bila kupakua bloku yenyewe, bali kichwa tu ambacho kina habari za muhtasari. + +Kwenye safu ya utekelezaji hakuna maelezo mahususi kwa mteja mwepesi wa utekelezaji. Wigo wa mteja mwepesi wa utekelezaji unaweza kutofautiana kutoka "hali nyepesi" ya mteja kamili wa utekelezaji ambayo ina utendakazi wote wa EVM na mtandao wa nodi kamili lakini inathibitisha tu vichwa vya bloku, bila kupakua data inayohusiana, au inaweza kuwa mteja aliyepunguzwa zaidi ambaye anategemea sana kupeleka maombi kwa mtoa huduma wa RPC ili kuingiliana na Ethereum. + +## Kwa nini wateja wepesi ni muhimu? {#why-are-light-clients-important} + +Wateja wepesi ni muhimu kwa sababu wanawaruhusu watumiaji kuthibitisha data inayoingia badala ya kuamini kwa upofu kwamba mtoa data wao ni sahihi na mwaminifu, huku wakitumia sehemu ndogo tu ya rasilimali za kikokotozi ya nodi kamili. Data wanayopokea wateja wepesi inaweza kukaguliwa dhidi ya vichwa vya bloku ambavyo wanajua vimetiwa saini na angalau 2/3 ya seti nasibu ya wathibitishaji 512 wa Ethereum. Huu ni ushahidi dhabiti sana kwamba data ni sahihi. + +Mteja mwepesi hutumia tu kiasi kidogo sana cha nguvu ya kompyuta, kumbukumbu na ghala kwa hivyo inaweza kuendeshwa kwenye simu ya mkononi, iliyopachikwa kwenye programu au kama sehemu ya kivinjari. Wateja wepesi ni njia ya kufanya ufikiaji uliopunguzwa uaminifu kwa Ethereum kuwa rahisi kama vile kumwamini mtoa huduma wa tatu. + +Hebu tuchukue mfano rahisi. Fikiria unataka kuangalia salio la akaunti yako. Ili kufanya hivi inabidi utume ombi kwa nodi ya Ethereum. Nodi hiyo itaangalia nakala yake ya ndani ya hali ya Ethereum kwa salio lako na kukurejeshea. Ikiwa huna ufikiaji wa moja kwa moja kwa nodi, kuna waendeshaji wa kati wanaotoa data hii kama huduma. Unaweza kuwatumia ombi, wanaangalia nodi yao, na kukutumia matokeo. Tatizo la hili ni kwamba inabidi umwamini mtoa huduma kukupa taarifa sahihi. Huwezi kujua kweli habari ni sahihi ikiwa huwezi kujithibitishia mwenyewe. + +Mteja mwepesi hushughulikia suala hili. Bado unaomba data kutoka kwa mtoa huduma wa nje, lakini unapopokea data inakuja na uthibitisho ambao nodi yako nyepesi inaweza kuangalia dhidi ya habari iliyopokea kwenye kichwa cha bloku. Hii inamaanisha Ethereum inathibitisha usahihi wa data yako badala ya mwendeshaji fulani anayeaminika. + +## Ni ubunifu gani ambao wateja wepesi huwezesha? {#what-innovations-do-light-clients-enable} + +Faida kuu ya wateja wepesi ni kuwezesha watu wengi zaidi kufikia Ethereum kwa kujitegemea na mahitaji madogo ya maunzi na utegemezi mdogo kwa wahusika wengine. Hii ni nzuri kwa watumiaji kwa sababu wanaweza kuthibitisha data zao wenyewe na ni nzuri kwa mtandao kwa sababu inaongeza idadi na utofauti wa nodi zinazothibitisha mnyororo. + +Uwezo wa kuendesha nodi za Ethereum kwenye vifaa vyenye ghala, kumbukumbu na nguvu ndogo sana za usindikaji ni moja ya maeneo makuu ya uvumbuzi yaliyofunguliwa na wateja wepesi. Ambapo leo nodi za Ethereum zinahitaji rasilimali nyingi za kompyuta, wateja wepesi wanaweza kupachikwa kwenye vivinjari, kuendeshwa kwenye simu za mkononi na labda hata vifaa vidogo zaidi kama vile saa janja. Hii inamaanisha mikoba ya Ethereum yenye wateja waliopachikwa inaweza kufanya kazi kwenye simu ya mkononi. Hii inamaanisha mikoba ya simu inaweza kugatuliwa zaidi kwani haitalazimika kuamini watoa huduma wa data wa kati kwa data zao. + +Upanuzi wa hii ni kuwezesha vifaa vya **intaneti ya vitu (IoT)**. Mteja mwepesi anaweza kutumika kuthibitisha haraka umiliki wa salio la tokeni au NFT, na dhamana zote za usalama zinazotolewa na kamati za kusawazisha, na hivyo kusababisha hatua fulani kwenye mtandao wa IoT. Fikiria [huduma ya kukodisha baiskeli](https://youtu.be/ZHNrAXf3RDE?t=929) inayotumia programu iliyo na mteja mwepesi aliyejengewa ndani ili kuthibitisha haraka kwamba unamiliki NFT ya huduma ya kukodisha na ikithibitika, inafungua baiskeli ili uondoke nayo! + +Unda-mpya za Ethereum pia zitanufaika na wateja wepesi. Moja ya matatizo makubwa kwa unda-mpya imekuwa ni udukuzi unaolenga madaraja yanayoruhusu fedha kuhamishwa kutoka Mtandao Mkuu wa Ethereum hadi kwenye unda-mpya. Udhaifu mmoja ni oracles ambazo unda-mpya hutumia kugundua kwamba mtumiaji ameweka amana kwenye daraja. Ikiwa oracle inatoa data mbaya, inaweza kuidanganya unda-mpya kufikiria kulikuwa na amana kwenye daraja na kutoa fedha kimakosa. Mteja mwepesi aliyepachikwa kwenye unda-mpya anaweza kutumika kulinda dhidi ya oracles zilizoharibiwa kwa sababu amana kwenye daraja inaweza kuja na uthibitisho unaoweza kuthibitishwa na unda-mpya kabla ya kutoa tokeni zozote. Dhana hiyo hiyo inaweza pia kutumika kwa madaraja mengine ya kati ya minyororo. + +Wateja wepesi wanaweza pia kutumika kusasisha mikoba ya Ethereum. Badala ya kuamini data inayotolewa na mtoa huduma wa RPC, mkoba wako unaweza kuthibitisha moja kwa moja data unayopewa kwa kutumia mteja mwepesi aliyejengewa ndani. Hii itaongeza usalama kwenye mkoba wako. Ikiwa mtoa huduma wako wa RPC hakuwa mwaminifu na akakupa data isiyo sahihi, mteja mwepesi aliyejengewa ndani anaweza kukuambia! + +## Hali ya sasa ni ipi ya maendeleo ya wateja wepesi? {#current-state-of-development} + +Kuna wateja kadhaa wepesi wanaoendelezwa, ikiwa ni pamoja na wateja wepesi wa utekelezaji, makubaliano na mchanganyiko wa wateja wepesi wa utekelezaji/makubaliano. Hizi ni tekelezo za wateja wepesi tunazozijua wakati wa kuandika ukurasa huu: + +- [Lodestar](https://github.com/ChainSafe/lodestar/tree/unstable/packages/light-client): mteja mwepesi wa makubaliano katika TypeScript +- [Helios](https://github.com/a16z/helios): mteja mwepesi wa mchanganyiko wa utekelezaji na makubaliano katika Rust +- [Geth](https://github.com/ethereum/go-ethereum/tree/master/beacon/light): hali nyepesi ya mteja wa utekelezaji (katika maendeleo) katika Go +- [Nimbus](https://nimbus.guide/el-light-client.html): mteja mwepesi wa makubaliano katika Nim + +Kwa ufahamu wetu hakuna kati ya hizi inayoonekana kuwa tayari kwa uzalishaji bado. + +Pia kuna kazi nyingi inayofanywa kuboresha njia ambazo wateja wepesi wanaweza kufikia data ya Ethereum. Hivi sasa, wateja wepesi wanategemea maombi ya RPC kwa nodi kamili kwa kutumia mtindo wa mteja/seva, lakini katika siku zijazo data inaweza kuombwa kwa njia iliyogatuliwa zaidi kwa kutumia mtandao maalum kama vile [Mtandao wa Portal](https://www.ethportal.net/) ambao unaweza kutoa data kwa wateja wepesi kwa kutumia itifaki ya uvumi rika-kwa-rika. + +Vipengele vingine vya [ramani ya barabara](/roadmap/) kama vile [miti ya Verkle](/roadmap/verkle-trees/) na [statelessness](/roadmap/statelessness/) hatimaye vitaleta dhamana za usalama za wateja wepesi kuwa sawa na zile za wateja kamili. + +## Masomo zaidi {#further-reading} + +- [Zsolt Felfodhi kuhusu wateja wepesi wa Geth](https://www.youtube.com/watch?v=EPZeFXau-RE) +- [Etan Kissling kuhusu mtandao wa wateja wepesi](https://www.youtube.com/watch?v=85MeiMA4dD8) +- [Etan Kissling kuhusu wateja wepesi baada ya Muungano](https://www.youtube.com/watch?v=ZHNrAXf3RDE) +- [Piper Merriam: Barabara ndefu kuelekea wateja wepesi wanaofanya kazi](https://snakecharmers.ethereum.org/the-winding-road-to-functional-light-clients/) diff --git a/public/content/translations/sw/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/translations/sw/developers/docs/nodes-and-clients/node-architecture/index.md new file mode 100644 index 00000000000..641080db105 --- /dev/null +++ b/public/content/translations/sw/developers/docs/nodes-and-clients/node-architecture/index.md @@ -0,0 +1,59 @@ +--- +title: Muundo wa Nodi +description: Utangulizi wa jinsi nodi za Ethereum zinavyopangwa. +lang: sw +--- + +Nodi ya Ethereum imeundwa na programu mbili: [programu ya utekelezaji](/developers/docs/nodes-and-clients/#execution-clients) na [programu ya makubaliano](/developers/docs/nodes-and-clients/#consensus-clients). Ili nodi iweze kupendekeza bloku mpya, ni lazima pia iendeshe [programu ya mthibitishaji](#validators). + +Wakati Ethereum ilikuwa ikitumia [uthibitishaji-wa-kazi](/developers/docs/consensus-mechanisms/pow/), programu ya utekelezaji ilitosha kuendesha nodi kamili ya Ethereum. Hata hivyo, tangu kutekelezwa kwa [uthibitisho wa hisa](/developers/docs/consensus-mechanisms/pow/), programu ya utekelezaji lazima itumike pamoja na programu nyingine inayoitwa [programu ya makubaliano](/developers/docs/nodes-and-clients/#consensus-clients). + +Mchoro ulio hapa chini unaonyesha uhusiano kati ya programu mbili za Ethereum. Programu hizi mbili huunganishwa kwenye mitandao yao husika ya rika-kwa-rika (P2P). Mitandao tofauti ya P2P inahitajika kwani programu za utekelezaji husambaza miamala kupitia mtandao wao wa P2P, na kuziruhusu kudhibiti hifadhi zao za ndani za miamala, wakati programu za makubaliano husambaza bloku kupitia mtandao wao wa P2P, na kuwezesha makubaliano na ukuaji wa mnyororo. + +![](node-architecture-text-background.png) + +_Kuna chaguo kadhaa za programu ya utekelezaji ikiwa ni pamoja na Erigon, Nethermind, na Besu_. + +Ili muundo huu wa programu mbili ufanye kazi, programu za makubaliano lazima zipitishe mafungu ya miamala kwa programu ya utekelezaji. Programu ya utekelezaji hutekeleza miamala ndani ya mfumo ili kuhakiki kwamba miamala haikiuki sheria zozote za Ethereum na kwamba sasisho lililopendekezwa kwa hali ya Ethereum ni sahihi. Wakati nodi inapochaguliwa kuwa mzalishaji wa bloku, kielelezo chake cha programu ya makubaliano huomba mafungu ya miamala kutoka kwa programu ya utekelezaji ili kujumuisha katika bloku mpya na kuzitekeleza ili kusasisha hali ya kimataifa. Programu ya makubaliano huendesha programu ya utekelezaji kupitia muunganisho wa RPC wa ndani kwa kutumia [API ya Injini](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). + +## Programu ya utekelezaji hufanya nini? {#execution-client} + +Programu ya utekelezaji inawajibika kwa uhakiki wa miamala, utunzaji, na usambazaji, pamoja na usimamizi wa hali na kusaidia Mashine Halisi ya Ethereum ([EVM](/developers/docs/evm/)). Haiwajibiki **kwa** ujenzi wa bloku, usambazaji wa bloku au kushughulikia mantiki ya makubaliano. Haya yako chini ya mamlaka ya programu ya makubaliano. + +Programu ya utekelezaji huunda mizigo ya utekelezaji - orodha ya miamala, trie ya hali iliyosasishwa, na data nyingine zinazohusiana na utekelezaji. Programu za makubaliano hujumuisha mzigo wa utekelezaji katika kila bloku. Programu ya utekelezaji pia inawajibika kwa kutekeleza tena miamala katika bloku mpya ili kuhakikisha kuwa ni halali. Utekelezaji wa miamala hufanywa kwenye kompyuta iliyopachikwa ya programu ya utekelezaji, inayojulikana kama [Mashine Halisi ya Ethereum (EVM)](/developers/docs/evm). + +Programu ya utekelezaji pia hutoa kiolesura cha mtumiaji kwa Ethereum kupitia [mbinu za RPC](/developers/docs/apis/json-rpc) zinazowawezesha watumiaji kuuliza mnyororo wa bloku wa Ethereum, kuwasilisha miamala na kupeleka mikataba-erevu. Ni kawaida kwa simu za RPC kushughulikiwa na maktaba kama vile [Web3js](https://docs.web3js.org/), [Web3py](https://web3py.readthedocs.io/en/v5/), au kwa kiolesura cha mtumiaji kama vile mkoba wa kivinjari. + +Kwa muhtasari, programu ya utekelezaji ni: + +- lango la mtumiaji kuelekea Ethereum +- mahali pa Mashine Halisi ya Ethereum, hali ya Ethereum na hifadhi ya miamala. + +## Programu ya makubaliano hufanya nini? {#consensus-client} + +Programu ya makubaliano inashughulikia mantiki yote inayowezesha nodi kusalia ikisawazishwa na mtandao wa Ethereum. Hii ni pamoja na kupokea bloku kutoka kwa rika na kuendesha algoriti ya kuchagua uma ili kuhakikisha nodi inafuata kila wakati mnyororo wenye mkusanyiko mkubwa zaidi wa uthibitisho (unaopimwa kwa salio faafu za mthibitishaji). Sawa na programu ya utekelezaji, programu za makubaliano zina mtandao wao wenyewe wa P2P ambapo hushiriki bloku na uthibitisho. + +Programu ya makubaliano haishiriki katika kuidhinisha au kupendekeza bloku - hii inafanywa na mthibitishaji, programu jalizi ya hiari kwa programu ya makubaliano. Programu ya makubaliano isiyo na mthibitishaji hufuata tu kichwa cha mnyororo, ikiruhusu nodi kusalia imesawazishwa. Hii humwezesha mtumiaji kufanya miamala na Ethereum kwa kutumia programu yake ya utekelezaji, akiwa na uhakika kwamba yuko kwenye mnyororo sahihi. + +## Wathibitishaji {#validators} + +Kusimamisha hisa na kuendesha programu ya mthibitishaji hufanya nodi istahili kuchaguliwa kupendekeza bloku mpya. Waendeshaji wa nodi wanaweza kuongeza mthibitishaji kwenye programu zao za makubaliano kwa kuweka ETH 32 kwenye mkataba wa amana. Programu ya mthibitishaji huja ikiwa imefungwa pamoja na programu ya makubaliano na inaweza kuongezwa kwenye nodi wakati wowote. Mthibitishaji hushughulikia uthibitisho na mapendekezo ya bloku. Pia huwezesha nodi kukusanya zawadi au kupoteza ETH kupitia adhabu au 'slashing'. + +[Zaidi kuhusu kusimamisha hisa](/staking/). + +## Ulinganisho wa vijenzi vya nodi {#node-comparison} + +| Programu ya Utekelezaji | Programu ya Makubaliano | Mthibitishaji | +| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | +| Husambaza miamala kupitia mtandao wake wa P2P | Husambaza bloku na uthibitisho kupitia mtandao wake wa P2P | Hupendekeza bloku | +| Hutekeleza/hutekeleza upya miamala | Huendesha algoriti ya kuchagua uma | Hukusanya zawadi/adhabu | +| Huhakiki mabadiliko ya hali yanayoingia | Hufuatilia kichwa cha mnyororo | Hufanya uthibitisho | +| Husimamia hali na trie za risiti | Husimamia hali ya Beacon (ina taarifa za makubaliano na utekelezaji) | Inahitaji ETH 32 kusimamishwa | +| Huunda mzigo wa utekelezaji | Hufuatilia nasibu iliyokusanywa katika RANDAO (algoriti inayotoa nasibu inayoweza kuthibitishwa kwa ajili ya uteuzi wa mthibitishaji na shughuli nyingine za makubaliano) | Inaweza kupata 'slashing' | +| Hufichua API ya JSON-RPC kwa ajili ya kuingiliana na Ethereum | Hufuatilia uhalalishaji na ukamilishaji | | + +## Masomo zaidi {#further-reading} + +- [Uthibitisho wa Hisa](/developers/docs/consensus-mechanisms/pos) +- [Pendekezo la bloku](/developers/docs/consensus-mechanisms/pos/block-proposal) +- [Zawadi na adhabu za mthibitishaji](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) diff --git a/public/content/translations/sw/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/sw/developers/docs/nodes-and-clients/nodes-as-a-service/index.md new file mode 100644 index 00000000000..36d9c7fa6a9 --- /dev/null +++ b/public/content/translations/sw/developers/docs/nodes-and-clients/nodes-as-a-service/index.md @@ -0,0 +1,418 @@ +--- +title: Nodi kama huduma +description: Muhtasari wa kiwango cha msingi wa huduma za nodi, faida na hasara, na watoa huduma maarufu. +lang: sw +sidebarDepth: 2 +--- + +## Utangulizi {#Introduction} + +Kuendesha [nodi yako mwenyewe ya Ethereum](/developers/docs/nodes-and-clients/#what-are-nodes-and-clients) kunaweza kuwa na changamoto, hasa unapoanza au unapoongezeka kwa kasi. Kuna [idadi ya huduma](#popular-node-services) zinazoendesha miundombinu ya nodi iliyoboreshwa kwa ajili yako, ili uweze kuzingatia kuendeleza programu au bidhaa yako badala yake. Tutaeleza jinsi huduma za nodi zinavyofanya kazi, faida na hasara za kuzitumia na kuorodhesha watoa huduma ikiwa ungependa kuanza. + +## Mahitaji ya awali {#prerequisites} + +Ikiwa bado huna uelewa wa nodi na wateja ni nini, angalia [Nodi na wateja](/developers/docs/nodes-and-clients/). + +## Waweka-dau {#stakoooooooooooooors} + +Waweka-dau wa pekee lazima waendeshe miundombinu yao wenyewe badala ya kutegemea watoa huduma wengine. Hii inamaanisha kuendesha programu ya utekelezaji pamoja na programu ya makubaliano. Kabla ya [Muungano](/roadmap/merge), iliwezekana kuendesha programu ya makubaliano pekee na kutumia mtoa huduma wa kati kwa data ya utekelezaji; hii haiwezekani tena - mweka-dau wa pekee lazima aendeshe programu zote mbili. Hata hivyo, kuna huduma zinazopatikana ili kurahisisha mchakato huu. + +[Soma zaidi kuhusu kuendesha nodi](/developers/docs/nodes-and-clients/run-a-node/). + +Huduma zilizoelezwa kwenye ukurasa huu ni za nodi zisizoweka dau. + +## Huduma za nodi hufanyaje kazi? {#how-do-node-services-work} + +Watoa huduma za nodi huendesha programu za wateja wa nodi zilizosambazwa kwa ajili yako, kwa hivyo huna haja ya kufanya hivyo. + +Huduma hizi kwa kawaida hutoa ufunguo wa API unaoweza kutumia kuandika na kusoma kutoka kwenye mnyororo wa bloku. Mara nyingi hujumuisha ufikiaji wa [testnets za Ethereum](/developers/docs/networks/#ethereum-testnets) pamoja na Mtandao Mkuu. + +Baadhi ya huduma hukupa nodi yako ya kipekee ambayo wanakuendeshea, huku zingine zikitumia visawazisha vya mzigo kusambaza shughuli kwenye nodi. + +Takriban huduma zote za nodi ni rahisi sana kuunganisha nazo, ikihusisha mabadiliko ya mstari mmoja katika msimbo wako ili kubadilisha nodi yako unayojiendeshea, au hata kubadilisha kati ya huduma zenyewe. + +Mara nyingi huduma za nodi zitaendesha aina mbalimbali za [programu za wateja wa nodi](/developers/docs/nodes-and-clients/#execution-clients) na [aina](/developers/docs/nodes-and-clients/#node-types), huku zikikuruhusu kufikia nodi kamili na za kumbukumbu pamoja na mbinu maalum za mteja katika API moja. + +Ni muhimu kutambua kwamba huduma za nodi hazihifadhi na hazipaswi kuhifadhi funguo zako binafsi au taarifa. + +## Je, ni faida gani za kutumia huduma ya nodi? {#benefits-of-using-a-node-service} + +Faida kuu ya kutumia huduma ya nodi ni kutolazimika kutumia muda wa uhandisi kutunza na kusimamia nodi wewe mwenyewe. Hii inakuruhusu kuzingatia kujenga bidhaa yako badala ya kuwa na wasiwasi juu ya matengenezo ya miundombinu. + +Kuendesha nodi zako mwenyewe kunaweza kuwa ghali sana kuanzia uhifadhi, kipimo data hadi muda muhimu wa uhandisi. Mambo kama vile kuanzisha nodi zaidi wakati wa uongezwaji, kuboresha nodi hadi matoleo ya hivi karibuni, na kuhakikisha uthabiti wa hali, yanaweza kukukengeusha kutoka kwa ujenzi na matumizi ya rasilimali kwenye bidhaa yako ya web3 unayoitaka. + +## Je, ni hasara gani za kutumia Huduma ya Nodi? {#cons-of-using-a-node-service} + +Kwa kutumia huduma ya nodi unakusanya kipengele cha miundombinu ya bidhaa yako. Kwa sababu hii, miradi inayoshikilia ugatuzi kuwa muhimu sana inaweza kupendelea kujiendeshea nodi badala ya kutoa huduma kwa mhusika mwingine. + +Soma zaidi kuhusu [faida za kuendesha nodi yako mwenyewe](/developers/docs/nodes-and-clients/#benefits-to-you). + +## Huduma maarufu za nodi {#popular-node-services} + +Hii ni orodha ya baadhi ya watoa huduma maarufu wa nodi za Ethereum, jisikie huru kuongeza zozote zinazokosekana! Kila huduma ya nodi hutoa manufaa na vipengele tofauti pamoja na viwango vya bure au vya kulipia, unapaswa kuchunguza ni vipi vinavyofaa zaidi mahitaji yako kabla ya kufanya uamuzi. + +- [**Alchemy**](https://alchemy.com/) + - [Hati](https://www.alchemy.com/docs/) + - Vipengele + - Kiwango kikubwa cha bure na vitengo vya kukokotoa milioni 300 kwa mwezi (\~maombi milioni 30 ya getLatestBlock) + - Usaidizi wa minyororo mingi kwa Polygon, Starknet, Optimism, Arbitrum + - Inawezesha ~70% ya mfumo mtawanyo wa kimamlaka mkubwa zaidi wa Ethereum na ujazo wa miamala wa DeFi + - Arifa za webhook za wakati halisi kupitia Alchemy Notify + - Usaidizi bora na utegemezi / uthabiti + - API ya NFT ya Alchemy + - Dashibodi yenye Kigunduzi cha Maombi, Mfuatiliaji wa Mempool, na Mtunzi + - Ufikiaji jumuishi wa bomba la testnet + - Jumuiya ya wajenzi hai ya Discord yenye watumiaji 18k + +- [**Allnodes**](https://www.allnodes.com/) + - [Hati](https://docs.allnodes.com/) + - Vipengele + - Hakuna vikomo vya viwango na tokeni ya PublicNode iliyoundwa kwenye ukurasa wa kwingineko ya Allnodes. + - Ncha za RPC za bure zinazozingatia faragha (minyororo ya bloku 100+) kwenye [PublicNode](https://www.publicnode.com) + - Nodi za kipekee bila vikomo vya viwango kwa minyororo ya bloku 90+ + - Nodi za kumbukumbu za kipekee kwa minyororo ya bloku 30+ + - Inapatikana katika maeneo 3 (Marekani, EU, Asia) + - Picha za muda kwa minyororo ya bloku 100+ kwenye [PublicNode](https://www.publicnode.com/snapshots) + - Usaidizi wa kiufundi wa 24/7 na SLA ya muda wa kufanya kazi ya 99.90%-99.98% (inategemea mpango). + - Bei ya kulipa kwa saa + - Lipa kwa Kadi ya Mkopo, PayPal au Kripto + +- [**All That Node**](https://allthatnode.com/) + - [Hati](https://docs.allthatnode.com/) + - Vipengele + - Maombi 50,000 kwa siku na kiwango cha bure + - Usaidizi kwa zaidi ya itifaki 40 + - API za JSON-RPC (EVM, Tendermint), REST, na Websocket zinasaidiwa + - Ufikiaji usio na kikomo wa data ya kumbukumbu + - Usaidizi wa kiufundi 24/7 na zaidi ya 99.9% ya muda wa kufanya kazi + - Bomba linapatikana kwenye minyororo mingi + - Ufikiaji usio na kikomo wa ncha na idadi isiyo na kikomo ya funguo za API + - API ya Kufuatilia/Kurekebisha hitilafu inasaidiwa + - Sasisho za kiotomatiki + +- [**Amazon Managed Blockchain**](https://aws.amazon.com/managed-blockchain/) + - [Hati](https://aws.amazon.com/managed-blockchain/resources/) + - Vipengele + - Nodi za Ethereum zinazosimamiwa kikamilifu + - Inapatikana katika maeneo sita + - JSON-RPC kupitia HTTP na WebSockets salama + - Inasaidia minyororo 3 + - SLA, Usaidizi wa AWS 24/7 + - Go-ethereum na Lighthouse + +- [**Ankr**](https://www.ankr.com/) + - [Hati](https://docs.ankr.com/) + - Vipengele + - Itifaki ya Ankr - ufikiaji wazi kwa ncha za umma za API za RPC kwa minyororo 8+ + - Usawazishaji wa mzigo na ufuatiliaji wa afya ya nodi kwa lango la haraka na la kutegemewa kwa nodi iliyo karibu zaidi + - Kiwango cha juu kinachowezesha ncha ya WSS na kikomo cha kiwango kisicho na ukomo + - Uwekaji wa nodi kamili na nodi ya mthibitishaji kwa mbofyo mmoja kwa minyororo 40+ + - Ongeza kadri unavyoendelea + - Zana za uchanganuzi + - Dashibodi + - Ncha za RPC, HTTPS na WSS + - Usaidizi wa moja kwa moja + +- [**Blast**](https://blastapi.io/) + - [Hati](https://docs.blastapi.io/) + - Vipengele + - Usaidizi wa RPC na WSS + - Uenyeji wa nodi wa maeneo mengi + - Miundombinu iliyogatuliwa + - API ya Umma + - Mpango wa Bure wa Kipekee + - Usaidizi wa minyororo mingi (minyororo ya bloku 17+) + - Nodi za Kumbukumbu + - Usaidizi wa Discord 24/7 + - Ufuatiliaji na arifa 24/7 + - SLA ya jumla ya 99.9% + - Lipa kwa kripto + +- [**BlockDaemon**](https://blockdaemon.com/) + - [Hati](https://ubiquity.docs.blockdaemon.com/) + - Faida + - Dashibodi + - Kwa msingi wa nodi + - Uchanganuzi + +- [**BlockPI**](https://blockpi.io/) + - [Hati](https://docs.blockpi.io/) + - Vipengele + - Muundo thabiti na uliosambazwa wa nodi + - Hadi ncha 40 za HTTPS na WSS + - Kifurushi cha kujisajili cha bure na kifurushi cha kila mwezi + - Mbinu ya kufuatilia + Usaidizi wa data ya kumbukumbu + - Vifurushi vyenye uhalali wa hadi siku 90 + - Mpango maalum na malipo ya kadri unavyotumia + - Lipa kwa kripto + - Usaidizi wa moja kwa moja & Usaidizi wa kiufundi + +- [**Chainbase**](https://www.chainbase.com/) + - [Hati](https://docs.chainbase.com) + - Vipengele + - Huduma ya RPC inayopatikana sana, haraka, na inayoweza kuongezwa + - Usaidizi wa minyororo mingi + - Ushuru wa bure + - Dashibodi rahisi kutumia + - Hutoa huduma za data za mnyororo wa bloku zaidi ya RPC + +- [**Chainstack**](https://chainstack.com/) + - [Hati](https://docs.chainstack.com/) + - Vipengele + - Nodi za pamoja za bure + - Nodi za kumbukumbu za pamoja + - Usaidizi wa GraphQL + - Ncha za RPC na WSS + - Nodi kamili na za kumbukumbu za kipekee + - Muda wa haraka wa kusawazisha kwa uwekaji wa kipekee + - Leta cloud yako + - Bei ya kulipa kwa saa + - Usaidizi wa moja kwa moja 24/7 + +- [**dRPC**](https://drpc.org/) + - [Hati](https://drpc.org/docs) + - NodeCloud: Miundombinu ya RPC ya plug-n-play kuanzia $10 (USD)—kasi kamili, hakuna vikomo + - Vipengele vya NodeCloud: + - Usaidizi wa API kwa mitandao 185 + - Pool iliyosambazwa ya watoa huduma 40+ + - Ufikiaji wa kimataifa na makundi tisa (9) ya kijiografia + - Mfumo wa kusawazisha mzigo unaoendeshwa na AI + - Bei bapa ya malipo ya kadri unavyotumia—hakuna ongezeko, hakuna kuisha muda, hakuna kufungia + - Funguo zisizo na kikomo, marekebisho madogo ya funguo, majukumu ya timu, ulinzi wa mbele + - Kiwango bapa cha mbinu kwa vitengo 20 vya kukokotoa (CUs) kwa kila mbinu + - [Orodha ya ncha za umma](https://drpc.org/chainlist) + - [Kikokotoo cha bei](https://drpc.org/pricing#calculator) + - NodeCore: mrundiko wa chanzo-wazi kwa mashirika yanayotaka udhibiti kamili + +- [**GetBlock**](https://getblock.io/) + - [Hati](https://getblock.io/docs/get-started/authentication-with-api-key/) + - Vipengele + - Ufikiaji wa nodi za mnyororo wa bloku 40+ + - Maombi 40K ya bure kila siku + - Idadi isiyo na kikomo ya funguo za API + - Kasi ya juu ya muunganisho wa 1GB/sekunde + - Fuatilia+Hifadhi + - Uchanganuzi wa hali ya juu + - Sasisho za kiotomatiki + - Usaidizi wa kiufundi + +- [**InfStones**](https://infstones.com/) + - Vipengele + - Chaguo la kiwango cha bure + - Ongeza kadri unavyoendelea + - Uchanganuzi + - Dashibodi + - Ncha za kipekee za API + - Nodi kamili za kipekee + - Muda wa haraka wa kusawazisha kwa uwekaji wa kipekee + - Usaidizi wa moja kwa moja 24/7 + - Ufikiaji wa nodi za mnyororo wa bloku 50+ + +- [**Infura**](https://infura.io/) + - [Hati](https://infura.io/docs) + - Vipengele + - Chaguo la kiwango cha bure + - Ongeza kadri unavyoendelea + - Data ya kumbukumbu ya kulipia + - Usaidizi wa Moja kwa Moja + - Dashibodi + +- [**Kaleido**](https://kaleido.io/) + - [Hati](https://docs.kaleido.io/) + - Vipengele + - Kiwango cha kuanza cha bure + - Uwekaji wa nodi ya Ethereum kwa mbofyo mmoja + - Wateja na algoriti zinazoweza kubinafsishwa (Geth, Quorum & Besu || PoA, IBFT & Raft) + - API 500+ za usimamizi na huduma + - Kiolesura cha RESTful kwa uwasilishaji wa miamala ya Ethereum (kinachoungwa mkono na Apache Kafka) + - Mitiririko ya kutoka kwa uwasilishaji wa matukio (inayoungwa mkono na Apache Kafka) + - Mkusanyiko wa kina wa huduma za "offchain" na saidizi (k.m., usafirishaji wa ujumbe uliosimbwa kwa pande mbili) + - Uingiaji rahisi wa mtandao na utawala na udhibiti wa ufikiaji unaotegemea majukumu + - Usimamizi wa hali ya juu wa watumiaji kwa wasimamizi na watumiaji wa mwisho + - Miundombinu inayoweza kuongezwa sana, imara, na ya kiwango cha biashara + - Usimamizi wa ufunguo binafsi wa Cloud HSM + - Ufunganisho wa Mtandao Mkuu wa Ethereum + - Vyeti vya ISO 27k na SOC 2, Aina ya 2 + - Usanidi wa runtime unaobadilika (k.m., kuongeza ujumuishaji wa cloud, kubadilisha uingiaji wa nodi, n.k.) + - Usaidizi kwa uratibu wa uwekaji wa cloud nyingi, maeneo mengi na mseto + - Bei rahisi ya kila saa inayotegemea SaaS + - SLA na usaidizi wa 24x7 + +- [**Lava Network**](https://www.lavanet.xyz/) + - [Hati](https://docs.lavanet.xyz/) + - Vipengele + - Matumizi ya Testnet ya Bure + - Upungufu Uliogatuliwa kwa Muda wa Juu wa Kufanya Kazi + - Chanzo-wazi + - SDK Iliyogatuliwa Kikamilifu + - Ujumuishaji wa Ethers.js + - Kiolesura cha Usimamizi wa Mradi chenye Uelewa wa Haraka + - Uadilifu wa Data unaotegemea Makubaliano + - Usaidizi wa Minyororo Mingi + +- [**Moralis**](https://moralis.io/) + - [Hati](https://docs.moralis.io/) + - Vipengele + - Nodi za pamoja za bure + - Nodi za kumbukumbu za pamoja za bure + - Inayozingatia faragha (sera ya kutokuweka kumbukumbu) + - Usaidizi wa minyororo-tofauti + - Ongeza kadri unavyoendelea + - Dashibodi + - SDK ya kipekee ya Ethereum + - Ncha za kipekee za API + - Usaidizi wa moja kwa moja, wa kiufundi + +- [**NodeReal MegaNode**](https://nodereal.io/) + - [Hati](https://docs.nodereal.io/docs/introduction) + - Vipengele + - Huduma za API za RPC za kuaminika, za haraka na zinazoweza kuongezwa + - API iliyoboreshwa kwa wasanidi programu wa web3 + - Usaidizi wa minyororo mingi + - Anza bure + +- [**NOWNodes**](https://nownodes.io/) + - [Hati](https://documenter.getpostman.com/view/13630829/TVmFkLwy) + - Vipengele + - Ufikiaji wa nodi za mnyororo wa bloku 50+ + - Ufunguo wa API wa Bure + - Vichunguzi vya Bloku + - Muda wa Majibu ya API ⩽ sekunde 1 + - Timu ya Usaidizi 24/7 + - Msimamizi wa Akaunti ya Kibinafsi + - Nodi za pamoja, za kumbukumbu, za nakala na za kipekee + +- [**Pocket Network**](https://www.pokt.network/) + - [Hati](https://docs.pokt.network/home/) + - Vipengele + - Itifaki ya RPC na Soko lililogatuliwa + - Maombi Milioni 1 kwa Siku Kiwango cha Bure (kwa kila ncha, upeo 2) + - [Ncha za Umma](https://docs.pokt.network/developers/public-endpoints) + - Programu ya Pre-Stake+ (ikiwa unahitaji zaidi ya maombi milioni 1 kwa siku) + - Minyororo ya Bloku 15+ Inasaidiwa + - Nodi 6400+ zinazopata POKT kwa kuhudumia programu + - Usaidizi wa Nodi ya Kumbukumbu, Nodi ya Kumbukumbu yenye Ufuatiliaji, & Nodi ya Testnet + - Utofauti wa Mteja wa Nodi ya Mtandao Mkuu wa Ethereum + - Hakuna Sehemu Moja ya Kushindwa + - Muda Sifuri wa Kutofanya Kazi + - Tokenomiki za Gharama nafuu Karibu na Sifuri (weka dau la POKT mara moja kwa kipimo data cha mtandao) + - Hakuna gharama za mwezi zilizopotea, geuza miundombinu yako kuwa rasilimali + - Usawazishaji wa Mzigo uliojengwa ndani ya Itifaki + - Ongeza bila kikomo idadi ya maombi kwa siku na nodi kwa saa kadri unavyoendelea + - Chaguo la faragha zaidi, linalostahimili udhibiti + - Usaidizi wa vitendo kwa msanidi programu + - Dashibodi na uchanganuzi wa [Pocket Portal](https://bit.ly/ETHorg_POKTportal) + +- [**QuickNode**](https://www.quicknode.com) + - [Hati](https://www.quicknode.com/docs/) + - Vipengele + - Usaidizi wa kiufundi 24/7 & jumuiya ya wasanidi wa Discord + - Mtandao wenye usawaziko wa kijiografia, cloud/metal nyingi, na muda mdogo wa kusubiri + - Usaidizi wa minyororo mingi (Optimism, Arbitrum, Polygon + 11 zingine) + - Safu za kati kwa kasi & uthabiti (uelekezaji wa simu, kache, uorodheshaji) + - Ufuatiliaji wa Mkataba-Smart kupitia Webhooks + - Dashibodi yenye uelewa wa haraka, seti ya uchanganuzi, mtunzi wa RPC + - Vipengele vya usalama vya hali ya juu (JWT, ufichaji, uorodheshaji mweupe) + - API ya data na uchanganuzi wa NFT + - [Iliyothibitishwa na SOC2](https://www.quicknode.com/security) + - Inafaa kwa Wasanidi programu hadi Biashara + +- [**Rivet**](https://rivet.cloud/) + - [Hati](https://rivet.readthedocs.io/en/latest/) + - Vipengele + - Chaguo la kiwango cha bure + - Ongeza kadri unavyoendelea + +- [**SenseiNode**](https://senseinode.com) + - [Hati](https://docs.senseinode.com/) + - Vipengele + - Nodi za kipekee na za Pamoja + - Dashibodi + - Uenyeji nje ya AWS kwa watoa huduma wengi wa uenyeji katika maeneo tofauti Amerika ya Kusini + - Wateja wa Prysm na Lighthouse + +- [**SettleMint**](https://console.settlemint.com/) + - [Hati](https://docs.settlemint.com/) + - Vipengele + - Jaribio la bure + - Ongeza kadri unavyoendelea + - Usaidizi wa GraphQL + - Ncha za RPC na WSS + - Nodi kamili za kipekee + - Leta cloud yako + - Zana za uchanganuzi + - Dashibodi + - Bei ya kulipa kwa saa + - Usaidizi wa moja kwa moja + +- [**Tenderly**](https://tenderly.co/web3-gateway) + - [Hati](https://docs.tenderly.co/web3-gateway/web3-gateway) + - Vipengele + - Kiwango cha bure kinachojumuisha Vitengo milioni 25 vya Tenderly kwa mwezi + - Ufikiaji wa bure wa data ya kihistoria + - Hadi 8x kasi zaidi kwa mizigo ya kazi ya kusoma sana + - 100% ufikiaji thabiti wa kusoma + - Ncha za JSON-RPC + - Mjenzi wa ombi la RPC anayetegemea UI na onyesho la kukagua ombi + - Imeunganishwa kwa karibu na zana za maendeleo, utatuzi wa hitilafu, na majaribio za Tenderly + - Uigaji wa miamala + - Uchanganuzi wa matumizi na uchujaji + - Usimamizi rahisi wa ufunguo wa ufikiaji + - Usaidizi maalum wa uhandisi kupitia soga, barua pepe, na Discord + +- [**Tokenview**](https://services.tokenview.io/) + - [Hati](https://services.tokenview.io/docs?type=nodeService) + - Vipengele + - Usaidizi wa kiufundi 24/7 & Jumuiya ya Wasanidi wa Telegram + - Usaidizi wa minyororo mingi (Bitcoin, Ethereum, Tron, BNB Smart Chain, Ethereum Classic) + - Ncha zote za RPC na WSS ziko wazi kutumika + - Ufikiaji usio na kikomo wa API ya data ya kumbukumbu + - Dashibodi yenye Kigunduzi cha Maombi na Mfuatiliaji wa Mempool + - API ya data ya NFT na arifa za Webhook + - Lipa kwa Kripto + - Usaidizi wa nje kwa mahitaji ya ziada ya tabia + +- [**Watchdata**](https://watchdata.io/) + - [Hati](https://docs.watchdata.io/) + - Vipengele + - Utegemezi wa data + - Muunganisho usiokatizwa bila muda wa kutofanya kazi + - Uendeshaji wa kiotomatiki wa mchakato + - Ushuru wa bure + - Vikomo vya juu vinavyomfaa mtumiaji yeyote + - Usaidizi kwa nodi mbalimbali + - Uongezaji wa rasilimali + - Kasi ya juu ya uchakataji + +- [**ZMOK**](https://zmok.io/) + - [Hati](https://docs.zmok.io/) + - Vipengele + - Uendeshaji-wa-mbele kama huduma + - Mempool ya miamala ya kimataifa yenye mbinu za utafutaji/uchujaji + - Ada isiyo na kikomo ya TX na Gesi isiyo na kikomo kwa kutuma miamala + - Upataji wa haraka zaidi wa bloku mpya na usomaji wa mnyororo wa bloku + - Dhamana ya bei bora kwa kila simu ya API + +- [**Zeeve**](https://www.zeeve.io/) + - [Hati](https://www.zeeve.io/docs/) + - Vipengele + - Jukwaa la kiwango cha biashara la uendeshaji wa kiotomatiki bila msimbo linalotoa uwekaji, ufuatiliaji na usimamizi wa nodi na mitandao ya Mnyororo wa Bloku + - Itifaki na Ujumuishaji 30+ Zinazosaidiwa, na kuongeza zaidi + - Huduma za miundombinu ya web3 zilizoongezwa thamani kama uhifadhi uliogatuliwa, utambulisho uliogatuliwa na API za data za Leja ya Mnyororo wa Bloku kwa matumizi ya ulimwengu halisi + - Usaidizi wa 24/7 na ufuatiliaji makini huhakikisha afya ya nodi wakati wote. + - Ncha za RPC hutoa ufikiaji uliothibitishwa kwa API, usimamizi usio na usumbufu na dashibodi yenye uelewa wa haraka na uchanganuzi. + - Hutoa chaguo za cloud zinazosimamiwa na leta cloud yako mwenyewe za kuchagua na inasaidia watoa huduma wote wakuu wa cloud kama AWS, Azure, Google Cloud, Digital Ocean na kwenye majengo. + - Tunatumia uelekezaji wa akili kufikia nodi iliyo karibu zaidi na mtumiaji wako kila wakati + +## Masomo zaidi {#further-reading} + +- [Orodha ya huduma za nodi za Ethereum](https://ethereumnodes.com/) + +## Mada zinazohusiana {#related-topics} + +- [Nodi na wateja](/developers/docs/nodes-and-clients/) + +## Mafunzo yanayohusiana {#related-tutorials} + +- [Kuanza na maendeleo ya Ethereum kwa kutumia Alchemy](/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/) +- [Mwongozo wa kutuma miamala kwa kutumia web3 na Alchemy](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) diff --git a/public/content/translations/sw/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/sw/developers/docs/nodes-and-clients/run-a-node/index.md new file mode 100644 index 00000000000..838e1094fc1 --- /dev/null +++ b/public/content/translations/sw/developers/docs/nodes-and-clients/run-a-node/index.md @@ -0,0 +1,484 @@ +--- +title: Anzisha nodi yako mwenyewe ya Ethereum +description: Utangulizi wa jumla wa kuendesha mfano wako wa mteja wa Ethereum. +lang: sw +sidebarDepth: 2 +--- + +Kuendesha nodi yako hukupa faida mbalimbali, hufungua uwezekano mpya, na husaidia mfumo wa ikolojia. Ukurasa huu utakusaidia kuanzisha nodi yako na kushiriki katika kuthibitisha miamala ya Ethereum. + +Kumbuka kuwa baada ya [Muungano](/roadmap/merge), wateja wawili wanahitajika kuendesha nodi ya Ethereum; mteja wa **safu ya utekelezaji (EL)** na mteja wa **safu ya makubaliano (CL)**. Ukurasa huu utaonesha jinsi ya kusakinisha, kusanidi na kuunganisha wateja hawa wawili ili kuendesha nodi ya Ethereum. + +## Mahitaji ya awali {#prerequisites} + +Unatakiwa kuelewa nodi ya Ethereum ni nini na kwanini utatakiwa kuendesha mteja. Hili limeelezwa katika [Nodi na wateja](/developers/docs/nodes-and-clients/). + +Kama wewe ni mgeni katika mada ya kuendesha nodi, au unatafuta njia isiyo ya kiufundi sana, tunapendekeza kwanza uangalie utangulizi wetu rahisi kwa mtumiaji kuhusu [kuendesha nodi ya Ethereum](/run-a-node). + +## Kuchagua mbinu {#choosing-approach} + +Hatua ya kwanza kwenye kuendesha nodi yako ni kuchagua mbinu yako. Kulingana na mahitaji na uwezekano mbalimbali, unatakiwa uchague utekelezaji wa mteja (wa wateja wa utekelezaji na makubaliano), mazingira (vifaa, mfumo), na vigezo vya mipangilio ya mteja. + +Ukurasa huu utakusaidia katika kufanya maamuzi na kukusaidia kupata njia inayofaa zaidi ya kuendesha tukio lako la Ethereum. + +Ili kuchagua kutoka kwa utekelezaji wa wateja, angalia wote [wateja wa utekelezaji](/developers/docs/nodes-and-clients/#execution-clients) walio tayari kwa Mtandao Mkuu, [wateja wa makubaliano](/developers/docs/nodes-and-clients/#consensus-clients) na ujifunze kuhusu [utofauti wa wateja](/developers/docs/nodes-and-clients/client-diversity). + +Amua ikiwa utaendesha programu kwenye [maunzi yako mwenyewe au kwenye wingu](#local-vs-cloud), ukizingatia [mahitaji](#requirements) ya wateja. + +Baada ya kuandaa mazingira, sakinisha wateja waliochaguliwa ama kwa [kiolesura rahisi kwa wanaoanza](#automatized-setup) au [kwa mikono](#manual-setup) ukitumia terminal yenye chaguo za hali ya juu. + +Wakati nodi inaendeshwa na kusawazisha, uko tayari [kuitumia](#using-the-node), lakini hakikisha unafuatilia [utunzaji](#operating-the-node) wake. + +![Usanidi wa mteja](./diagram.png) + +### Mazingira na maunzi {#environment-and-hardware} + +#### Kwenye kifaa au kwenye wingu {#local-vs-cloud} + +Wateja wa Ethereum wanaweza kuendeshwa kwenye kompyuta za kawaida za watumiaji na hawahitaji vifaa maalumu, kama mashine za kuchimba madini mfano. Kwa hivyo, una machaguo mbalimbali ya kuendesha nodi kulingana na mahitaji yako. +Ili kurahisisha, tufikirie kuhusu kuendesha nodi kwenye kifaa chako binafsi na kwenye seva ya mtandaoni: + +- Wingu + - Watoa huduma hutoa muda mrefu wa upatikanaji wa seva na anwani za IP zisizobadilika + - Kupata seva maalumu au seva ya mtandaoni inaweza kuwa rahisi zaidi kuliko kujenga yako + - Hasara ni kutaabika kwa mtu wa tatu - mtoa huduma wa seva + - Kwa sababu ya kiasi kinachohitajika cha nodi nzima, bei ya seva iliyokodishwa inaweza ikawa kubwa +- Miliki vifaa + - Njia ya kujiamini kidogo na uhuru zaidi + - Uwekezaji wa mara moja + - Chaguo la kununua mashine zilizosanifiwa tayari + - Unatakiwa uandae, utunze, na kutatua matatizo ya mashine na mtandao + +Machaguo yote mawili yana faida tofauti zilizoelezwa kwa ufupi hapo juu. Kama unatafuta suluhisho la wingu, pamoja na watoa huduma wa kompyuta za wingu, kuna pia huduma zinazolenga kuendesha nodi. Angalia [nodi kama huduma](/developers/docs/nodes-and-clients/nodes-as-a-service/) kwa chaguo zaidi kuhusu nodi zilizopangishwa. + +#### Vifaa {#hardware} + +Hata hivyo, mtandao usioweza kudhibitiwa na ulioenea hautakiwi kutegemea watoa huduma wa wingu. Badala yake, kuendesha nodi yako kwenye vifaa vyako binafsi ni bora zaidi kwa mfumo wa ikolojia. [Makadirio](https://www.ethernodes.org/networkType/cl/Hosting) yanaonyesha sehemu kubwa ya nodi huendeshwa kwenye wingu, jambo ambalo linaweza kuwa chanzo kimoja cha hitilafu. + +Wateja wa Ethereum wanaweza kuendeshwa kwenye kompyuta, kompyuta ya mkononi, seva au hata kompyuta ya bodi moja. Ingawa inawezekana kuendesha wateja kwenye kompyuta yako binafsi, kuwa na mashine maalumu kwa ajili ya nodi yako tu inaweza kuongeza utendaji na usalama wake kwa kiasi kikubwa huku ikipunguza athari kwenye kompyuta yako kuu. + +Kutumia vifaa vyako inaweza kuwa rahisi zaidi. Kuna machaguo mengi rahisi na pia kuna machaguo ya juu kwa ajili ya watu wa kiufundi zaidi. Hivyo basi tuangalie mahitaji na njia za kuendesha wateja wa Ethereum kwenye mashine yako. + +#### Mahitaji {#requirements} + +Mahitaji ya vifaa hutofautiana kulingana na mteja lakini kwa kawaida hayako juu sana kwani nodi zinahitaji tu kuwa zimesawazishwa. Usiichanganye na kuchimba madini, ambayo inahitaji nguvu kubwa zaidi ya kompyuta. Muda wa kusawazisha na utendaji huboreshwa zaidi na vifaa vyenye nguvu zaidi. + +Kabla ya kusakinisha mteja yeyote, tafadhali hakikisha kompyuta yako ina uwezo wa kutosha kuiendesha. Unaweza kupata mahitaji ya chini na yaliyopendekezwa hapa chini. + +Kizuizi kikubwa cha kifaa chako mara nyingi ni nafasi ya diski. Kusawazisha blockchain ya Ethereum kunahitaji input/output ya kiwango cha juu na nafasi kubwa ya hifadhi. Ni bora kuwa na **hifadhi ya hali dhabiti (SSD)** yenye mamia ya GB za nafasi ya ziada hata baada ya usawazishaji. + +Ukubwa wa hifadhidata na kasi ya usawazishaji wa awali hutegemea mteja aliyechaguliwa, usanidi wake na [mkakati wa kusawazisha](/developers/docs/nodes-and-clients/#sync-modes). + +Pia hakikisha muunganisho wako wa intaneti hauna [kikomo cha kipimo data](https://wikipedia.org/wiki/Data_cap). Inashauriwa kutumia muunganisho usio na kikomo kwa kuwa usawazishaji wa awali na data inayotumwa kwenye mtandao inaweza kuzidi kikomo chako. + +##### Mfumo wa uendeshaji + +Wateja wote wanaunga mkono mifumo mikuu ya uendeshaji - Linux MacOS, Windows. Hii inamaanisha kuwa unaweza kuendesha nodi kwenye kompyuta ya kawaida au mashine ya seva kwa kutumia mfumo wa uendeshaji (OS) unaokufaa sana. Hakikisha mfumo wako wa uendeshaji umesasishwa ili kuepuka matatizo yanayoweza kutokea na udhaifu wa kiusalama. + +##### Vigezo vya chini + +- CPU yenye angalau cores 2 na zaidi +- RAM yenye GB 8 +- SSD yenye 2TB +- Kipimo data cha angalau 10 MBit/s + +##### Maelezo yaliyopendekezwa + +- CPU ya haraka yenye angalau core 4 na zaidi +- RAM yenye GB 16 na zaidi +- SSD ya haraka yenye 2 TB na zaidi +- Kipimo data cha 25+ MBit/s + +Hali ya usawazishaji na mteja utakayochagua itaathiri mahitaji ya nafasi, lakini tumekadiria nafasi ya diski utakayohitaji kwa kila mteja hapa chini. + +| Mteja | Ukubwa wa diski (usawazishaji wa haraka) | Ukubwa wa diski (kumbukumbu kamili) | +| ---------- | ----------------------------------------------------------- | ------------------------------------------------------ | +| Besu | 800GB+ | 12TB+ | +| Erigon | N/A | 2.5TB+ | +| Geth | 500GB+ | 12TB+ | +| Nethermind | 500GB+ | 12TB+ | +| Reth | N/A | 2.2TB+ | + +- Kumbuka: Erigon na Reth hawatoi usawazishaji wa haraka, lakini Full Prunning inawezekana (\~2TB kwa Erigon, ~1.2TB kwa Reth) + +Kwa wateja wa makubaliano, hitaji la nafasi pia linategemea utekelezaji wa mteja na vipengele vilivyowezeshwa (k.m., kikataji cha mthibitishaji) lakini kwa ujumla hesabia GB 200 nyingine inayohitajika kwa data ya beacon. Kwa namba kubwa ya wahalalishaji, kipimo data kinakuwa kikubwa pia. Unaweza kupata [maelezo kuhusu mahitaji ya mteja wa makubaliano katika uchambuzi huu](https://mirror.xyz/0x934e6B4D7eee305F8C9C42b46D6EEA09CcFd5EDc/b69LBy8p5UhcGJqUAmT22dpvdkU-Pulg2inrhoS9Mbc). + +#### Suluhisho za chomeka-na-cheza {#plug-and-play} + +Chaguo rahisi la kuendesha nodi kwa vifaa vyako binafsi ni kutumia masanduku ya plug-and-play. Mashine zilizosanifiwa tayari kutoka kwa wauzaji hutoa uzoefu rahisi zaidi: oda, unganisha, endesha. Kila kitu kimesanifiwa tayari na kinaendeshwa kiotomatiki kwa kutumia mwongozo wa kirahisi na dashibodi ya kufuatilia na kudhibiti programu. + +- [DappNode](https://dappnode.io/) +- [Avado](https://ava.do/) + +#### Ethereum kwenye kompyuta ya bodi moja {#ethereum-on-a-single-board-computer} + +Njia rahisi na ya bei nafuu ya kuendesha nodi ya Ethereum ni kutumia kompyuta yenye bodi moja, hata yenye usanifu wa ARM kama Raspberry Pi. [Ethereum kwenye ARM](https://ethereum-on-arm-documentation.readthedocs.io/en/latest/) hutoa picha rahisi kuendesha za wateja wengi wa utekelezaji na makubaliano kwa ajili ya Raspberry Pi na bodi zingine za ARM. + +Vifaa vidogo, vya bei nafuu na vyenye ufanisi kama hivi ni bora kwa kuendesha modi nyumbani lakini kumbuka utendaji wao mdogo. + +## Kuanzisha nodi {#spinning-up-node} + +Usanidi halisi wa mteja unaweza kufanywa ama kwa kutumia zana za kuanzisha kiotomatiki au kwa mikono, ukisanidi programu ya mteja moja kwa moja. + +Kwa watumiaji wasio wa kitaalamu sana, njia inayopendekezwa ni kutumia kizindua, programu inayokuongoza kwenye usanikishaji na kuotomatisha mchakato wa usanidi wa mteja. Hata hivyo, kama una uzoefu wowote wa kutumia terminal, hatua za usanidi kwa mikono zinapaswa kuwa rahisi kufuatwa. + +### Usanidi wa kuongozwa {#automatized-setup} + +Miradi mbalimbali rahisi kwa watumiaji inalenga kuboresha uzoefu wa kuanzisha mteja. Zana hizi za kuanzisha zinatoa usakinishaji na usanidi wa mteja kiotomatiki, na baadhi hata hutoa kiolesura cha picha kwa ajili ya usanidi uliopangwa na ufuatiliaji wa wateja. + +Hapa chini kuna miradi michache inayoweza kukusaidia kusakinisha na kudhibiti wateja kwa mibofyo michache: + +- [DappNode](https://docs.dappnode.io/docs/user/getting-started/choose-your-path) - DappNode haiji tu na mashine kutoka kwa mchuuzi. Programu, kizindua halisi cha nodi na kituo cha kudhibiti chenye vipengele vingi inaweza kutumika kwenye vifaa vyovyote. +- [EthPillar](https://www.coincashew.com/coins/overview-eth/ethpillar) - Njia ya haraka na rahisi zaidi ya kusanidi nodi kamili. Zana ya usanidi kwa mstari mmoja na TUI ya usimamizi wa nodi. Huru. Chanzo cha wazi. Bidhaa za umma za Ethereum zinazotolewa na wadau binafsi. Inasaidia ARM64 na AMD64. +- [eth-docker](https://eth-docker.net/) - Usanidi wa kiotomatiki unaotumia Docker unaolenga kusimamisha kwa urahisi na usalama, unahitaji maarifa ya msingi ya terminal na Docker, unapendekezwa kwa watumiaji walio na uzoefu zaidi. +- [Stereum](https://stereum-dev.github.io/ethereum-node-web-docs) - Kizinduzi cha kusakinisha wateja kwenye seva ya mbali kupitia muunganisho wa SSH na mwongozo wa usanidi wa GUI, kituo cha udhibiti, na vipengele vingine vingi. +- [NiceNode](https://www.nicenode.xyz/) - Kizinduzi chenye uzoefu rahisi wa mtumiaji ili kuendesha nodi kwenye kompyuta yako. Chagua tu wateja na uwanzishe kwa kubofya mara chache. Bado inaendelezwa. +- [Sedge](https://docs.sedge.nethermind.io/docs/intro) - Zana ya usanidi wa nodi inayotengeneza kiotomatiki usanidi wa Docker kwa kutumia kichawi cha CLI. Imeandikwa kwa Go na Nethermind. + +### Usanidi wa wateja kwa mikono {#manual-setup} + +Chaguo jingine ni kupakua, kuthibitisha, na kusanidi programu ya mteja kwa mikono. Hata kama baadhi ya wateja wanatoa kiolesura cha picha, usanidi wa mikono bado unahitaji ujuzi wa msingi na terminal lakini unatoa wepesi mwingi zaidi. + +Kama ilivyoelezwa hapo awali, kusanidi nodi yako ya Ethereum kutahitaji kuendesha jozi ya wateja wa makubaliano na wateja wa utekelezaji. Baadhi ya wateja wanaweza kujumuisha mteja mwepesi wa aina nyingine na kusawazisha bila kuhitaji programu nyingine yoyote. Hata hivyo, uthibitisho kamili usio na uaminifu unahitaji utekelezaji wote miwili. + +#### Kupata programu ya mteja {#getting-the-client} + +Kwanza, unahitaji kupata programu unayopendelea ya [mteja wa utekelezaji](/developers/docs/nodes-and-clients/#execution-clients) na [mteja wa makubaliano](/developers/docs/nodes-and-clients/#consensus-clients). + +Unaweza kupakua tu programu inayoweza kuendeshwa au kifurushi cha usakinishaji kinachofaa mfumo wako wa uendeshaji na usanifu. Thibitisha saini na jumla ya ukaguzi ya vifurushi vilivyopakuliwa kila wakati. Baadhi ya wateja pia hutoa hazina au picha za Docker kwa usakinishaji na masasisho rahisi. Wateja wote ni chanzo-wazi, kwa hivyo unaweza pia kuwajenga kutoka kwa chanzo. Hii ni njia ya hali ya juu zaidi, lakini katika hali zingine, inaweza kuhitajika. + +Maagizo ya kusakinisha kila mteja yametolewa katika nyaraka zilizounganishwa kwenye orodha za wateja hapo juu. + +Hizi ni kurasa za matoleo ya wateja ambapo unaweza kupata faili zao za binary zilizojengwa awali au maagizo ya usakinishaji: + +##### Programu za utelekezji + +- [Besu](https://github.com/hyperledger/besu/releases) +- [Erigon](https://github.com/ledgerwatch/erigon/releases) +- [Geth](https://geth.ethereum.org/downloads/) +- [Nethermind](https://downloads.nethermind.io/) +- [Reth](https://reth.rs/installation/installation.html) + +Inafaa pia kuzingatia kuwa utofauti wa wateja ni [suala kwenye safu ya utekelezaji](/developers/docs/nodes-and-clients/client-diversity/#execution-layer). Inapendekezwa wasomaji wafikirie kuendesha mteja wa utekelezaji wa wachache. + +##### Programu ya makubaliano + +- [Lighthouse](https://github.com/sigp/lighthouse/releases/latest) +- [Lodestar](https://chainsafe.github.io/lodestar/run/getting-started/installation#build-from-source/) (Haitoi faili ya binary iliyojengwa awali, bali picha ya Docker tu au ya kujengwa kutoka kwa chanzo) +- [Nimbus](https://github.com/status-im/nimbus-eth2/releases/latest) +- [Prysm](https://github.com/prysmaticlabs/prysm/releases/latest) +- [Teku](https://github.com/ConsenSys/teku/releases) + +[Utofauti wa wateja](/developers/docs/nodes-and-clients/client-diversity/) ni muhimu kwa nodi za makubaliano zinazoendesha wathibitishaji. Ikiwa wathibitishaji wengi wanaendesha utekelezaji wa mteja mmoja, usalama wa mtandao uko hatarini. Kwa hivyo inapendekezwa kufikiria kuchagua mteja wa wachache. + +[Angalia matumizi ya hivi karibuni ya wateja wa mtandao](https://clientdiversity.org/) na jifunze zaidi kuhusu [utofauti wa wateja](/developers/docs/nodes-and-clients/client-diversity). + +##### Kuthibitisha programu + +Unapopakua programu kutoka kwenye intaneti, inapendekezwa kuthibitisha uadilifu wake. Hatua hii ni ya hiari lakini hasa kwa sehemu muhimu ya miundombinu kama mteja wa Ethereum, ni muhimu kufahamu vekta za mashambulizi zinazowezekana na kuziepuka. Ikiwa umepakua faili ya binary iliyojengwa awali, unahitaji kuiamini na kuhatarisha kwamba mshambuliaji anaweza kubadilisha faili inayoweza kuendeshwa na moja hasidi. + +Wasanidi programu hutia saini faili za binary zilizotolewa kwa funguo zao za PGP ili uweze kuthibitisha kwa njia ya kriptografia kuwa unaendesha hasa programu waliyoiunda. Unahitaji tu kupata funguo za umma zinazotumiwa na wasanidi programu, ambazo zinaweza kupatikana kwenye kurasa za matoleo ya mteja au kwenye nyaraka. Baada ya kupakua toleo la mteja na saini yake, unaweza kutumia utekelezaji wa PGP, k.m., [GnuPG](https://gnupg.org/download/index.html) ili kuzithibitisha kwa urahisi. Angalia mafunzo ya jinsi ya kuthibitisha programu chanzo-wazi kwa kutumia `gpg` kwenye [linux](https://www.tecmint.com/verify-pgp-signature-downloaded-software/) au [Windows/MacOS](https://freedom.press/training/verifying-open-source-software/). + +Aina nyingine ya uthibitisho ni kuhakikisha kuwa hashi, alama ya kipekee ya kriptografia, ya programu uliyoipakua inalingana na ile iliyotolewa na wasanidi programu. Hii ni rahisi zaidi kuliko kutumia PGP, na baadhi ya wateja hutoa chaguo hili pekee. Endesha tu chaguo la kukokotoa la hashi kwenye programu iliyopakuliwa na uilinganishe na ile kutoka kwa ukurasa wa toleo. Kwa mfano: + +```sh +sha256sum teku-22.6.1.tar.gz + +9b2f8c1f8d4dab0404ce70ea314ff4b3c77e9d27aff9d1e4c1933a5439767dde +``` + +#### Usanidi wa mteja {#client-setup} + +Baada ya kusakinisha, kupakua, au kukusanya programu ya mteja, uko tayari kuiendesha. Hii inamaanisha tu kwamba inapaswa kutekelezwa na usanidi unaofaa. Wateja hutoa chaguo nyingi za usanidi, ambazo zinaweza kuwezesha vipengele mbalimbali. + +Tuanze na chaguo ambazo zinaweza kuathiri sana utendaji wa mteja na matumizi ya data. [Njia za usawazishaji](/developers/docs/nodes-and-clients/#sync-modes) zinawakilisha mbinu tofauti za kupakua na kuthibitisha data ya mnyororo wa bloku. Kabla ya kuanzisha nodi, unapaswa kuamua ni mtandao gani na njia gani ya kusawazisha utumie. Mambo muhimu zaidi ya kuzingatia ni nafasi ya diski, na muda wa kusawazisha ambao mteja atahitaji. Zingatia nyaraka za mteja ili kubaini ni njia gani ya kusawazisha ndiyo chaguo-msingi. Ikiwa hiyo haikufai, chagua nyingine kulingana na kiwango cha usalama, data inayopatikana, na gharama. Mbali na algoriti ya usawazishaji, unaweza pia kuweka upunguzaji wa aina tofauti za data ya zamani. Upunguzaji huwezesha kufuta data iliyopitwa na wakati, yaani, kuondoa nodi za state trie ambazo hazifikiwi kutoka kwa bloku za hivi karibuni. + +Chaguo zingine za msingi za usanidi ni, k.m., kuchagua mtandao - Mtandao Mkuu au testnet, kuwezesha sehemu ya mwisho ya HTTP kwa RPC au WebSockets, n.k. Unaweza kupata vipengele na chaguo zote katika nyaraka za mteja. Usanidi mbalimbali wa mteja unaweza kuwekwa kwa kutekeleza mteja na bendera zinazolingana moja kwa moja kwenye CLI au faili ya usanidi. Kila mteja ni tofauti kidogo; tafadhali rejelea daima nyaraka zake rasmi au ukurasa wa usaidizi kwa maelezo juu ya chaguo za usanidi. + +Kwa madhumuni ya majaribio, unaweza kupendelea kuendesha mteja kwenye mojawapo ya mitandao ya testnet. [Angalia muhtasari wa mitandao inayotumika](/developers/docs/nodes-and-clients/#execution-clients). + +Mifano ya kuendesha wateja wa utekelezaji na usanidi wa msingi inaweza kupatikana katika sehemu inayofuata. + +#### Kuanzisha mteja wa utekelezaji {#starting-the-execution-client} + +Kabla ya kuanzisha programu ya mteja wa Ethereum, fanya ukaguzi wa mwisho ili kuhakikisha mazingira yako yako tayari. Kwa mfano, hakikisha: + +- Kuna nafasi ya kutosha ya diski ukizingatia mtandao uliochaguliwa na hali ya usawazishaji. +- Kumbukumbu na CPU hazijasimamishwa na programu zingine. +- Mfumo wa uendeshaji umesasishwa kwa toleo la hivi karibuni. +- Mfumo una saa na tarehe sahihi. +- Router na firewall yako vinakubali miunganisho kwenye bandari za kusikiliza. Kwa chaguo-msingi wateja wa Ethereum hutumia bandari ya msikilizaji (TCP) na bandari ya ugunduzi (UDP), zote mbili kwenye 30303 kwa chaguo-msingi. + +Endesha mteja wako kwenye testnet kwanza ili kusaidia kuhakikisha kila kitu kinafanya kazi ipasavyo. + +Unahitaji kutangaza mipangilio yoyote ya mteja ambayo si chaguomsingi mwanzoni. Unaweza kutumia bendera au faili ya usanidi kutangaza usanidi unaopendelea. Seti ya vipengele na sintaksia ya usanidi ya kila mteja hutofautiana. Angalia nyaraka za mteja wako kwa maelezo maalum. + +Wateja wa utekelezaji na makubaliano huwasiliana kupitia sehemu ya mwisho iliyothibitishwa iliyoainishwa katika [Engine API](https://github.com/ethereum/execution-apis/tree/main/src/engine). Ili kuunganisha na mteja wa makubaliano, mteja wa utekelezaji lazima atengeneze [`jwtsecret`](https://jwt.io/) kwenye njia inayojulikana. Kwa sababu za usalama na uthabiti, wateja wanapaswa kufanya kazi kwenye mashine moja, na wateja wote wawili lazima wajue njia hii kwani inatumiwa kuthibitisha muunganisho wa RPC wa ndani kati yao. Mteja wa utekelezaji lazima pia aainishe bandari ya kusikiliza kwa API zilizothibitishwa. + +Tokeni hii hutolewa kiotomatiki na programu ya mteja, lakini katika hali zingine, unaweza kuhitaji kuifanya mwenyewe. Unaweza kuitengeneza kwa kutumia [OpenSSL](https://www.openssl.org/): + +```sh +openssl rand -hex 32 > jwtsecret +``` + +#### Kuendesha mteja wa utekelezaji {#running-an-execution-client} + +Sehemu hii itakuongoza katika kuanzisha wateja wa utekelezaji. Inatumika tu kama mfano wa usanidi wa msingi, ambao utaanzisha mteja na mipangilio hii: + +- Inaainisha mtandao wa kuunganisha, Mtandao Mkuu katika mifano yetu + - Badala yake unaweza kuchagua [mojawapo ya testnet](/developers/docs/networks/) kwa majaribio ya awali ya usanidi wako +- Inafafanua saraka ya data, ambapo data zote zikiwemo za mnyororo wa bloku zitahifadhiwa + - Hakikisha unabadilisha njia na moja halisi, k.m., inayoelekeza kwenye hifadhi yako ya nje +- Huwezesha violessura vya mawasiliano na mteja + - Ikiwa ni pamoja na JSON-RPC na Engine API kwa mawasiliano na mteja wa makubaliano +- Inafafanua njia ya `jwtsecret` kwa API iliyothibitishwa + - Hakikisha unabadilisha njia ya mfano na moja halisi inayoweza kufikiwa na wateja, k.m., `/tmp/jwtsecret` + +Tafadhali kumbuka kuwa huu ni mfano wa msingi tu, mipangilio mingine yote itawekwa kwa chaguomsingi. Zingatia nyaraka za kila mteja ili kujifunza kuhusu maadili chaguomsingi, mipangilio, na vipengele. Kwa vipengele zaidi, kwa mfano kwa kuendesha wathibitishaji, ufuatiliaji, n.k., tafadhali rejelea nyaraka za mteja mahususi. + +> Kumbuka kuwa backslash `` katika mifano ni kwa madhumuni ya uumbizaji tu; bendera za usanidi zinaweza kufafanuliwa katika mstari mmoja. + +##### Inaendesha Besu + +Mfano huu unaanzisha Besu kwenye Mtandao Mkuu, huhifadhi data ya mnyororo wa bloku katika umbizo la chaguomsingi kwenye `/data/ethereum`, huwezesha JSON-RPC na Engine RPC kwa kuunganisha mteja wa makubaliano. Engine API inathibitishwa na tokeni `jwtsecret` na miito kutoka `localhost` pekee ndiyo inaruhusiwa. + +```sh +besu --network=mainnet \ + --data-path=/data/ethereum \ + --rpc-http-enabled=true \ + --engine-rpc-enabled=true \ + --engine-host-allowlist="*" \ + --engine-jwt-enabled=true \ + --engine-jwt-secret=/path/to/jwtsecret +``` + +Besu pia huja na chaguo la kizinduzi ambalo litauliza mfululizo wa maswali na kutengeneza faili ya usanidi. Endesha kizinduzi shirikishi kwa kutumia: + +```sh +besu --Xlauncher +``` + +[Nyaraka za Besu](https://besu.hyperledger.org/public-networks/get-started/start-node/) zina chaguo za ziada na maelezo ya usanidi. + +##### Inaendesha Erigon + +Mfano huu unaanzisha Erigon kwenye Mtandao Mkuu, huhifadhi data ya mnyororo wa bloku kwenye `/data/ethereum`, huwezesha JSON-RPC, hufafanua ni nafasi zipi za majina zinaruhusiwa na huwezesha uthibitishaji wa kuunganisha mteja wa makubaliano ambao umefafanuliwa na njia ya `jwtsecret`. + +```sh +erigon --chain mainnet \ + --datadir /data/ethereum \ + --http --http.api=engine,eth,web3,net \ + --authrpc.jwtsecret=/path/to/jwtsecret +``` + +Kwa chaguomsingi Erigon hufanya usawazishaji kamili na HDD ya 8GB ambayo itasababisha zaidi ya 2TB ya data ya kumbukumbu. Hakikisha `datadir` inaelekeza kwenye diski yenye nafasi ya kutosha au angalia bendera ya `--prune` ambayo inaweza kupunguza aina tofauti za data. Angalia `--help` ya Erigon ili kujifunza zaidi. + +##### Inaendesha Geth + +Mfano huu unaanzisha Geth kwenye Mtandao Mkuu, huhifadhi data ya mnyororo wa bloku kwenye `/data/ethereum`, huwezesha JSON-RPC na hufafanua ni nafasi zipi za majina zinaruhusiwa. Pia huwezesha uthibitishaji wa kuunganisha mteja wa makubaliano ambao unahitaji njia ya `jwtsecret` na pia chaguo linalofafanua ni miunganisho ipi inaruhusiwa, katika mfano wetu ni kutoka `localhost` pekee. + +```sh +geth --mainnet \ + --datadir "/data/ethereum" \ + --http --authrpc.addr localhost \ + --authrpc.vhosts="localhost" \ + --authrpc.port 8551 + --authrpc.jwtsecret=/path/to/jwtsecret +``` + +Angalia [nyaraka za chaguo zote za usanidi](https://geth.ethereum.org/docs/fundamentals/command-line-options) na ujifunze zaidi kuhusu [kuendesha Geth na mteja wa makubaliano](https://geth.ethereum.org/docs/getting-started/consensus-clients). + +##### Inaendesha Nethermind + +Nethermind hutoa [chaguo mbalimbali za usakinishaji](https://docs.nethermind.io/get-started/installing-nethermind). Kifurushi huja na faili mbalimbali za binary, ikiwa ni pamoja na Kizinduzi chenye usanidi wa kuongozwa, ambacho kitakusaidia kuunda usanidi kwa njia shirikishi. Vinginevyo, utapata Runner ambayo ni faili yenyewe inayoweza kuendeshwa na unaweza kuiendesha tu na bendera za usanidi. JSON-RPC huwashwa kwa chaguo-msingi. + +```sh +Nethermind.Runner --config mainnet \ + --datadir /data/ethereum \ + --JsonRpc.JwtSecretFile=/path/to/jwtsecret +``` + +Nyaraka za Nethermind hutoa [mwongozo kamili](https://docs.nethermind.io/get-started/running-node/) juu ya kuendesha Nethermind na mteja wa makubaliano. + +Mteja wa utekelezaji atanzisha kazi zake za msingi, sehemu za mwisho zilizochaguliwa, na kuanza kutafuta rika. Baada ya kugundua rika kwa mafanikio, mteja huanza usawazishaji. Mteja wa utekelezaji atasubiri muunganisho kutoka kwa mteja wa makubaliano. Data ya sasa ya mnyororo wa bloku itapatikana mara tu mteja atakaposawazishwa kwa mafanikio na hali ya sasa. + +##### Inaendesha Reth + +Mfano huu unaanzisha Reth kwenye Mtandao Mkuu, ukitumia eneo la data la chaguo-msingi. Huwezesha JSON-RPC na uthibitishaji wa Engine RPC kwa kuunganisha mteja wa makubaliano ambao umefafanuliwa na njia ya `jwtsecret`, na miito kutoka `localhost` pekee ndiyo inaruhusiwa. + +```sh +reth node \ + --authrpc.jwtsecret /path/to/jwtsecret \ + --authrpc.addr 127.0.0.1 \ + --authrpc.port 8551 +``` + +Angalia [Kusanidi Reth](https://reth.rs/run/config.html?highlight=data%20directory#configuring-reth) ili kujifunza zaidi kuhusu saraka za data za chaguo-msingi. [Nyaraka za Reth](https://reth.rs/run/mainnet.html) zina chaguo za ziada na maelezo ya usanidi. + +#### Kuanzisha mteja wa makubaliano {#starting-the-consensus-client} + +Mteja wa makubaliano lazima aanzishwe na usanidi sahihi wa bandari ili kuanzisha muunganisho wa RPC wa ndani na mteja wa utekelezaji. Wateja wa makubaliano wanapaswa kuendeshwa na bandari ya mteja wa utekelezaji iliyo wazi kama hoja ya usanidi. + +Mteja wa makubaliano pia anahitaji njia ya `jwt-secret` ya mteja wa utekelezaji ili kuthibitisha muunganisho wa RPC kati yao. Sawa na mifano ya utekelezaji hapo juu, kila mteja wa makubaliano ana bendera ya usanidi ambayo inachukua njia ya faili ya tokeni ya jwt kama hoja. Hii lazima iendane na njia ya `jwtsecret` iliyotolewa kwa mteja wa utekelezaji. + +Ikiwa unapanga kuendesha mthibitishaji, hakikisha unaongeza bendera ya usanidi inayobainisha anwani ya Ethereum ya mpokeaji ada. Hapa ndipo zawadi za ether za mthibitishaji wako zinakusanywa. Kila mteja wa makubaliano ana chaguo, k.m., `--suggested-fee-recipient=0xabcd1`, ambalo huchukua anwani ya Ethereum kama hoja. + +Unapoanzisha Nodi ya Beacon kwenye testnet, unaweza kuokoa muda mwingi wa kusawazisha kwa kutumia sehemu ya mwisho ya umma kwa [Checkpoint sync](https://notes.ethereum.org/@launchpad/checkpoint-sync). + +#### Kuendesha mteja wa makubaliano {#running-a-consensus-client} + +##### Inaendesha Lighthouse + +Kabla ya kuendesha Lighthouse, jifunze zaidi jinsi ya kuisakinisha na kuisanidi katika [Lighthouse Book](https://lighthouse-book.sigmaprime.io/installation.html). + +```sh +lighthouse beacon_node \ + --network mainnet \ + --datadir /data/ethereum \ + --http \ + --execution-endpoint http://127.0.0.1:8551 \ + --execution-jwt /path/to/jwtsecret +``` + +##### Inaendesha Lodestar + +Sakinisha programu ya Lodestar kwa kuikusanya au kupakua picha ya Docker. Jifunze zaidi katika [nyaraka](https://chainsafe.github.io/lodestar/) na [mwongozo kamili zaidi wa usanidi](https://hackmd.io/@philknows/rk5cDvKmK). + +```sh +lodestar beacon \ + --dataDir="/data/ethereum" \ + --network=mainnet \ + --eth1.enabled=true \ + --execution.urls="http://127.0.0.1:8551" \ + --jwt-secret="/path/to/jwtsecret" +``` + +##### Inaendesha Nimbus + +Nimbus huja na wateja wa makubaliano na wa utekelezaji. Inaweza kuendeshwa kwenye vifaa mbalimbali hata vyenye nguvu ndogo sana ya kompyuta. +Baada ya [kusakinisha vitegemezi na Nimbus yenyewe](https://nimbus.guide/quick-start.html), unaweza kuendesha mteja wake wa makubaliano: + +```sh +nimbus_beacon_node \ + --network=mainnet \ + --web3-url=http://127.0.0.1:8551 \ + --rest \ + --jwt-secret="/path/to/jwtsecret" +``` + +##### Inaendesha Prysm + +Prysm huja na hati ambayo inaruhusu usakinishaji rahisi wa kiotomatiki. Maelezo zaidi yanaweza kupatikana katika [nyaraka za Prysm](https://prysm.offchainlabs.com/docs/install-prysm/install-with-script/). + +```sh +./prysm.sh beacon-chain \ + --mainnet \ + --datadir /data/ethereum \ + --execution-endpoint=http://localhost:8551 \ + --jwt-secret=/path/to/jwtsecret +``` + +##### Inaendesha Teku + +```sh +teku --network mainnet \ + --data-path "/data/ethereum" \ + --ee-endpoint http://localhost:8551 \ + --ee-jwt-secret-file "/path/to/jwtsecret" +``` + +Wakati mteja wa makubaliano anapounganisha na mteja wa utekelezaji kusoma mkataba wa amana na kutambua wathibitishaji, pia huunganisha na rika zingine za Nodi ya Beacon na kuanza kusawazisha nafasi za makubaliano kutoka mwanzo. Mara Nodi ya Beacon inapofikia epoch ya sasa, API ya Beacon inakuwa tayari kutumika kwa wathibitishaji wako. Jifunze zaidi kuhusu [API za Nodi ya Beacon](https://eth2docs.vercel.app/). + +### Kuongeza Wathibitishaji {#adding-validators} + +Mteja wa makubaliano hutumika kama Nodi ya Beacon kwa wathibitishaji kuunganisha. Kila mteja wa makubaliano ana programu yake ya mthibitishaji iliyoelezwa kwa undani katika nyaraka zake husika. + +Kuendesha mthibitishaji wako mwenyewe kunaruhusu [kusimamisha peke yako](/staking/solo/), njia yenye athari zaidi na isiyo na uaminifu ya kusaidia mtandao wa Ethereum. Hata hivyo, hii inahitaji amana ya ETH 32. Ili kuendesha mthibitishaji kwenye nodi yako mwenyewe kwa kiasi kidogo, bwawa la ugatuzi na waendeshaji wa nodi wasio na ruhusa, kama vile [Rocket Pool](https://rocketpool.net/node-operators), linaweza kukuvutia. + +Njia rahisi zaidi ya kuanza na kusimamisha na uzalishaji wa ufunguo wa mthibitishaji ni kutumia [Jukwaa la Uzinduzi la Kusimamisha la Hoodi Testnet](https://hoodi.launchpad.ethereum.org/), ambalo linakuruhusu kupima usanidi wako kwa [kuendesha nodi kwenye Hoodi](https://notes.ethereum.org/@launchpad/hoodi). Unapokuwa tayari kwa Mtandao Mkuu, unaweza kurudia hatua hizi ukitumia [Jukwaa la Uzinduzi la Kusimamisha la Mtandao Mkuu](https://launchpad.ethereum.org/). + +Angalia [ukurasa wa kusimamisha](/staking) kwa muhtasari kuhusu chaguo za kusimamisha. + +### Kutumia nodi {#using-the-node} + +Wateja wa utekelezaji hutoa [sehemu za mwisho za API za RPC](/developers/docs/apis/json-rpc/) ambazo unaweza kutumia kuwasilisha miamala, kuingiliana na au kupeleka mikataba-erevu kwenye mtandao wa Ethereum kwa njia mbalimbali: + +- Kuzipiga simu kwa mikono na itifaki inayofaa (k.m., kwa kutumia `curl`) +- Kuambatanisha koni iliyotolewa (k.m., `geth attach`) +- Kuzitekeleza katika programu kwa kutumia maktaba za web3, k.m., [web3.py](https://web3py.readthedocs.io/en/stable/overview.html#overview), [ethers](https://github.com/ethers-io/ethers.js/) + +Wateja tofauti wana utekelezaji tofauti wa sehemu za mwisho za RPC. Lakini kuna JSON-RPC ya kawaida ambayo unaweza kutumia na kila mteja. Kwa muhtasari [soma nyaraka za JSON-RPC](/developers/docs/apis/json-rpc/). Programu zinazohitaji habari kutoka kwa mtandao wa Ethereum zinaweza kutumia RPC hii. Kwa mfano, mkoba maarufu wa MetaMask unakuwezesha [kuunganisha kwenye sehemu yako ya mwisho ya RPC](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) ambayo ina manufaa makubwa ya faragha na usalama. + +Wateja wote wa makubaliano huonyesha [API ya Beacon](https://ethereum.github.io/beacon-APIs) ambayo inaweza kutumika kuangalia hali ya mteja wa makubaliano au kupakua bloku na data ya makubaliano kwa kutuma maombi kwa kutumia zana kama vile [Curl](https://curl.se). Taarifa zaidi juu ya hili inaweza kupatikana katika nyaraka za kila mteja wa makubaliano. + +#### Kufikia RPC {#reaching-rpc} + +Bandari ya chaguo-msingi ya JSON-RPC ya mteja wa utekelezaji ni `8545` lakini unaweza kurekebisha bandari za sehemu za mwisho za ndani katika usanidi. Kwa chaguomsingi, kiolesura cha RPC kinapatikana tu kwenye localhost ya kompyuta yako. Ili kuifanya ipatikane kwa mbali, unaweza kutaka kuifungua kwa umma kwa kubadilisha anwani kuwa `0.0.0.0`. Hii itafanya ifikiwe kupitia mtandao wa ndani na anwani za IP za umma. Katika hali nyingi utahitaji pia kusanidi usambazaji wa bandari kwenye router yako. + +Fikia kufungua bandari kwa mtandao kwa tahadhari kwani hii itamruhusu mtu yeyote kwenye mtandao kudhibiti nodi yako. Wahusika hasidi wanaweza kufikia nodi yako ili kuharibu mfumo wako au kuiba fedha zako ikiwa unatumia mteja wako kama mkoba. + +Njia ya kuzunguka hii ni kuzuia mbinu hatari za RPC kurekebishwa. Kwa mfano, na Geth, unaweza kutangaza mbinu zinazoweza kurekebishwa na bendera: `--http.api web3,eth,txpool`. + +Ufikiaji wa kiolesura cha RPC unaweza kupanuliwa kupitia ukuzaji wa API za safu ya pembeni au programu za seva za wavuti, kama Nginx, na kuziunganisha na anwani na bandari ya ndani ya mteja wako. Kutumia safu ya kati kunaweza pia kuwapa wasanidi programu uwezo wa kusanidi cheti cha miunganisho salama ya `https` kwenye kiolesura cha RPC. + +Kuanzisha seva ya wavuti, proksi, au API ya nje ya Rest sio njia pekee ya kutoa ufikiaji wa sehemu ya mwisho ya RPC ya nodi yako. Njia nyingine ya kuhifadhi faragha ya kuanzisha sehemu ya mwisho inayopatikana hadharani ni kupangisha nodi kwenye huduma yako mwenyewe ya [Tor](https://www.torproject.org/) onion. Hii itakuwezesha kufikia RPC nje ya mtandao wako wa ndani bila anwani ya IP ya umma tuli au bandari zilizofunguliwa. Hata hivyo, kutumia usanidi huu kunaweza kuruhusu tu sehemu ya mwisho ya RPC kupatikana kupitia mtandao wa Tor ambao hauhimiliwi na programu zote na inaweza kusababisha matatizo ya muunganisho. + +Ili kufanya hivi, unapaswa kuunda [huduma yako ya onion](https://community.torproject.org/onion-services/). Angalia [nyaraka](https://community.torproject.org/onion-services/setup/) juu ya usanidi wa huduma ya onion ili upate yako mwenyewe. Unaweza kuielekeza kwenye seva ya wavuti na proksi kwenye bandari ya RPC au moja kwa moja kwenye RPC. + +Mwisho, na mojawapo ya njia maarufu zaidi za kutoa ufikiaji wa mitandao ya ndani ni kupitia muunganisho wa VPN. Kulingana na matumizi yako na idadi ya watumiaji wanaohitaji ufikiaji wa nodi yako, muunganisho salama wa VPN unaweza kuwa chaguo. [OpenVPN](https://openvpn.net/) ni SSL VPN yenye vipengele kamili inayotekeleza upanuzi salama wa mtandao wa safu ya OSI 2 au 3 kwa kutumia itifaki ya SSL/TLS ya kiwango cha tasnia, inasaidia mbinu rahisi za uthibitishaji wa mteja kulingana na vyeti, kadi janja, na/au vitambulisho vya jina la mtumiaji/nenosiri, na inaruhusu sera za udhibiti wa ufikiaji maalum za mtumiaji au kikundi kwa kutumia sheria za firewall zinazotumika kwenye kiolesura cha mtandao cha VPN. + +### Kuendesha nodi {#operating-the-node} + +Unapaswa kufuatilia nodi yako mara kwa mara ili kuhakikisha inafanya kazi ipasavyo. Unaweza kuhitaji kufanya matengenezo ya mara kwa mara. + +#### Kuweka nodi mtandaoni {#keeping-node-online} + +Nodi yako haihitaji kuwa mtandaoni kila wakati, lakini unapaswa kuiweka mtandaoni iwezekanavyo ili iendelee kusawazisha na mtandao. Unaweza kuizima ili kuiwasha upya, lakini kumbuka kwamba: + +- Kuzima kunaweza kuchukua dakika chache ikiwa hali ya hivi karibuni bado inaandikwa kwenye diski. +- Kuzima kwa lazima kunaweza kuharibu hifadhidata na kukuhitaji usawazishe upya nodi nzima. +- Mteja wako atatoka kwenye usawazishaji na mtandao na atahitaji kusawazisha upya unapoiwasha tena. Wakati nodi inaweza kuanza kusawazisha kutoka pale ilipozimwa mara ya mwisho, mchakato unaweza kuchukua muda kulingana na muda ambao imekuwa nje ya mtandao. + +_Hii haihusu nodi za wathibitishaji wa safu ya makubaliano._ Kuzima nodi yako kutaathiri huduma zote zinazoitegemea. Ikiwa unaendesha nodi kwa madhumuni ya _kusimamisha_ unapaswa kujaribu kupunguza muda wa kutofanya kazi iwezekanavyo. + +#### Kuunda huduma za mteja {#creating-client-services} + +Fikiria kuunda huduma ili kuendesha wateja wako kiotomatiki wakati wa kuanza. Kwa mfano, kwenye seva za Linux, ni vizuri kuunda huduma, k.m., na `systemd`, ambayo inatekeleza mteja na usanidi unaofaa, chini ya mtumiaji mwenye marupurupu machache na kuanza upya kiotomatiki. + +#### Kusasisha wateja {#updating-clients} + +Unahitaji kuweka programu yako ya mteja ikiwa imesasishwa na viraka vya hivi karibuni vya usalama, vipengele, na [EIPs](/eips/). Hasa kabla ya [uma ngumu](/ethereum-forks/), hakikisha unaendesha matoleo sahihi ya mteja. + +> Kabla ya masasisho muhimu ya mtandao, EF huchapisha chapisho kwenye [blogu](https://blog.ethereum.org) yake. Unaweza [kujisajili kwa matangazo haya](https://blog.ethereum.org/category/protocol#subscribe) ili kupata arifa kwenye barua pepe yako wakati nodi yako inahitaji sasisho. + +Kusasisha wateja ni rahisi sana. Kila mteja ana maagizo maalum katika nyaraka zake, lakini mchakato kwa ujumla ni kupakua toleo la hivi karibuni na kuanzisha upya mteja na faili mpya inayoweza kuendeshwa. Mteja anapaswa kuendelea kutoka pale alipoishia, lakini na masasisho yaliyotumika. + +Kila utekelezaji wa mteja una mfuatano wa toleo unaoweza kusomwa na binadamu unaotumika katika itifaki ya rika-kwa-rika lakini pia unapatikana kutoka kwa mstari wa amri. Mfuatano huu wa toleo unawawezesha watumiaji kuangalia kama wanaendesha toleo sahihi na huruhusu wachunguzi wa bloku na zana zingine za uchanganuzi zinazopenda kupima usambazaji wa wateja maalum kwenye mtandao. Tafadhali rejelea nyaraka za mteja binafsi kwa habari zaidi kuhusu mfuatano wa matoleo. + +#### Kuendesha huduma za ziada {#running-additional-services} + +Kuendesha nodi yako mwenyewe kunakuwezesha kutumia huduma zinazohitaji ufikiaji wa moja kwa moja kwenye RPC ya mteja wa Ethereum. Hizi ni huduma zilizojengwa juu ya Ethereum kama [suluhisho za safu ya 2](/developers/docs/scaling/#layer-2-scaling), backend kwa mikoba, wachunguzi wa bloku, zana za wasanidi programu na miundombinu mingine ya Ethereum. + +#### Kufuatilia nodi {#monitoring-the-node} + +Ili kufuatilia vizuri nodi yako, fikiria kukusanya vipimo. Wateja hutoa sehemu za mwisho za vipimo ili uweze kupata data kamili kuhusu nodi yako. Tumia zana kama vile [InfluxDB](https://www.influxdata.com/get-influxdb/) au [Prometheus](https://prometheus.io/) kuunda hifadhidata ambazo unaweza kuzigeuza kuwa taswira na chati katika programu kama [Grafana](https://grafana.com/). Kuna usanidi mwingi wa kutumia programu hii na dashibodi tofauti za Grafana kwako kuona nodi yako na mtandao kwa ujumla. Kwa mfano, angalia [mafunzo ya jinsi ya kufuatilia Geth](/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/). + +Kama sehemu ya ufuatiliaji wako, hakikisha unaangalia utendaji wa mashine yako. Wakati wa usawazishaji wa awali wa nodi yako, programu ya mteja inaweza kuwa nzito sana kwenye CPU na RAM. Mbali na Grafana, unaweza kutumia zana ambazo OS yako inatoa kama `htop` au `uptime` kufanya hivi. + +## Masomo zaidi {#further-reading} + +- [Miongozo ya Kusimamisha ya Ethereum](https://github.com/SomerEsat/ethereum-staking-guides) - _Somer Esat, husasishwa mara kwa mara_ +- [Mwongozo | Jinsi ya kusanidi mthibitishaji kwa ajili ya kusimamisha Ethereum kwenye mtandao mkuu](https://www.coincashew.com/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet) _– CoinCashew, husasishwa mara kwa mara_ +- [Miongozo ya ETHStaker juu ya kuendesha wathibitishaji kwenye testnet](https://github.com/remyroy/ethstaker#guides) – _ETHStaker, husasishwa mara kwa mara_ +- [Sampuli ya programu ya AWS Blockchain Node Runner kwa Nodi za Ethereum](https://aws-samples.github.io/aws-blockchain-node-runners/docs/Blueprints/Ethereum) - _AWS, husasishwa mara kwa mara_ +- [Maswali Yanayoulizwa Mara kwa Mara ya Muungano kwa waendeshaji wa nodi](https://notes.ethereum.org/@launchpad/node-faq-merge) - _Julai 2022_ +- [Kuchambua mahitaji ya maunzi ili kuwa nodi kamili iliyothibitishwa ya Ethereum](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 Septemba 2018_ +- [Kuendesha Nodi Kamili za Ethereum: Mwongozo kwa Wenye Ari Kidogo](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 Novemba 2019_ +- [Kuendesha Nodi ya Hyperledger Besu kwenye Mtandao Mkuu wa Ethereum: Faida, Mahitaji, na Usanidi](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 Mei 2020_ +- [Kupeleka Mteja wa Nethermind Ethereum na Mrundikano wa Ufuatiliaji](https://medium.com/nethermind-eth/deploying-nethermind-ethereum-client-with-monitoring-stack-55ce1622edbd) _– Nethermind.eth, 8 Julai 2020_ + +## Mada zinazohusiana {#related-topics} + +- [Nodi na wateja](/developers/docs/nodes-and-clients/) +- [Bloku](/developers/docs/blocks/) +- [Mitandao](/developers/docs/networks/) diff --git a/public/content/translations/sw/developers/docs/oracles/index.md b/public/content/translations/sw/developers/docs/oracles/index.md new file mode 100644 index 00000000000..2697357eaab --- /dev/null +++ b/public/content/translations/sw/developers/docs/oracles/index.md @@ -0,0 +1,433 @@ +--- +title: Maneno +description: Vyanzo vya data vya nje hutoa mikataba mahiri ya Ethereum na ufikiaji wa data ya ulimwengu halisi, kufungua kesi nyingi za utumiaji na thamani kubwa kwa watumiaji. +lang: sw +--- + +Chabzo cha nje cha data ni programu zinazozalisha milisho ya data ambayo hufanya vyanzo vya data vya offchain kupatikana kwa blockchain kwa mikataba mahiri. Hii ni muhimu kwa sababu mikataba mahiri ya msingi wa Ethereum haiwezi, kwa chaguomsingi, kufikia maelezo yaliyohifadhiwa nje ya mtandao wa kiambajengo. + +Kutoa kandarasi mahiri uwezo wa kutekeleza kwa kutumia data ya nje ya mnyororo huongeza matumizi na thamani ya programu zilizotawanywa. Kwa mfano, masoko ya utabiri wa ndani ya mnyororo hutegemea maneno ili kutoa taarifa kuhusu matokeo ambayo hutumia kuthibitisha utabiri wa mtumiaji. Tuseme Alice anabeti ETH 20 juu ya nani atakuwa U.S. ajaye. Rais. Katika hali hiyo, dapp ya soko la ubashiri inahitaji maandishi ili kuthibitisha matokeo ya uchaguzi na kubaini kama Alice anastahiki malipo. + +## Mahitaji ya awali {#prerequisites} + +Ukurasa huu unadhani msomaji anafahamu misingi ya Ethereum, ikiwa ni pamoja na [nodi](/developers/docs/nodes-and-clients/), [mbinu za makubaliano](/developers/docs/consensus-mechanisms/), na [EVM](/developers/docs/evm/). Unapaswa pia kuwa na ufahamu mzuri wa [mikataba mahiri](/developers/docs/smart-contracts/) na [muundo wa mikataba mahiri](/developers/docs/smart-contracts/anatomy/), hasa [matukio](/glossary/#events). + +## Oracle ya mnyororo wa bloku ni nini? {#what-is-a-blockchain-oracle} + +Oracles ni programu zinazotoa, kuthibitisha, na kusambaza taarifa za nje (yaani, taarifa zilizohifadhiwa nje ya mnyororo) kwa mikataba mahiri inayoendeshwa kwenye mnyororo wa bloku. Kando na "kuvuta" data ya nje ya mnyororo na kuitangaza kwenye Ethereum, chanzo cha data cha nje pia kinaweza "kusukuma" habari kutoka kwa blockchain hadi mifumo ya nje, kwa mfano, kufungua kufuli mahiri mara tu mtumiaji anapotuma ada kupitia shughuli ya Ethereum. + +Bila oracle, mkataba mahiri ungekuwa na data ya kwenye mnyororo pekee. + +Maneno hutofautiana kulingana na chanzo cha data (chanzo kimoja au vingi), miundo ya uaminifu (iliyowekwa kati au iliyogatuliwa), na usanifu wa mfumo (kusoma mara moja, kuchapisha-kujisajili na kujibu ombi). Tunaweza pia kutofautisha kati ya hotuba kulingana na ikiwa zinapata data ya nje kwa ajili ya matumizi ya kandarasi za ndani ya mnyororo(neno za pembejeo), kutuma taarifa kutoka kwa kiambajengo hadi kwa programu za nje ya mnyororo (neno za pato), au kutekeleza majukumu ya kimahesabu nje ya mnyororo (neno za tarakilishi). + +## Kwa nini mikataba mahiri inahitaji oracles? {#why-do-smart-contracts-need-oracles} + +Wasanidi programu wengi huona mikataba mahiri kama msimbo unaoendeshwa kwenye anwani maalum kwenye mnyororo wa bloku. Hata hivyo, mtazamo [mpana zaidi wa mikataba mahiri](/smart-contracts/) ni kwamba ni programu za kompyuta zinazojitekeleza zenye uwezo wa kutekeleza makubaliano kati ya pande mbalimbali pindi masharti maalum yanapotimizwa - ndiyo maana ya neno “mikataba mahiri.” + +Lakini kutumia mikataba mahiri kutekeleza makubaliano kati ya watu si jambo la moja kwa moja, ikizingatiwa kwamba Ethereum ni ya kuamua. [Mfumo wa kubainisha](https://en.wikipedia.org/wiki/Deterministic_algorithm) ni ule ambao daima hutoa matokeo sawa kwa kupewa hali ya awali na ingizo fulani, ikimaanisha hakuna nasibu au tofauti katika mchakato wa kukokotoa matokeo kutoka kwa ingizo. + +Ili kufikia utekelezaji wa kubainisha, mnyororo wa bloku huweka kikomo nodi kufikia makubaliano juu ya maswali rahisi ya binary (kweli/sivyo) kwa kutumia data _pekee_ iliyohifadhiwa kwenye mnyororo wa bloku wenyewe. Mifano ya maswali kama hayo ni pamoja na: + +- "Je, mmiliki wa akaunti (aliyetambuliwa kwa ufunguo wa umma) alitia saini shughuli hii kwa ufunguo wa faragha uliooanishwa?" +- “Je, akaunti hii ina fedha za kutosha kulipia muamala?” +- “Je, muamala huu ni halali katika muktadha wa mkataba huu mahiri?”, n.k. + +Ikiwa mnyororo wa bloku ungepokea taarifa kutoka vyanzo vya nje (yaani, kutoka ulimwengu halisi), uamuzi haungewezekana kufikiwa, na kuzuia nodi kukubaliana juu ya uhalali wa mabadiliko kwenye hali ya mnyororo wa bloku. Chukua kwa mfano mkataba mahiri ambao hutekeleza shughuli kulingana na kiwango cha ubadilishaji cha ETH-USD kilichopatikana kutoka kwa API ya bei ya kawaida. Idadi hii ina uwezekano wa kubadilika mara kwa mara (bila kutaja kuwa API inaweza kuacha kutumika au kudukuliwa), ikimaanisha kwamba nodi zinazotekeleza msimbo sawa wa mkataba zinaweza kufikia matokeo tofauti. + +Kwa kiambajeng cha umma kama Ethereum, iliyo na maelfu ya nodi kote ulimwenguni kuchakata miamala, uamuzi ni muhimu. Bila mamlaka kuu inayotumika kama chanzo cha ukweli, nodi zinahitaji mbinu za kuwasili katika hali sawa baada ya kutumia shughuli sawa. Kesi ambapo nodi A hutekeleza msimbo wa mkataba mahiri na kupata "3" kama matokeo, huku nodi B ikipata "7" baada ya kufanya shughuli hiyo hiyo inaweza kusababisha makubaliano kuvunjika na kuondoa thamani ya Ethereum kama jukwaa la kompyuta lililotawanywa. + +Hali hii pia inaangazia tatizo la kubuni viambajengo ili kuvuta taarifa kutoka kwa vyanzo vya nje. Chanzo cha data cha nje, hata hivyo, hutatua tatizo hili kwa kuchukua maelezo kutoka kwa vyanzo vya offchain na kuyahifadhi kwenye kiambajengo ili mkataba mahiri zitumike. Kwa kuwa maelezo yaliyohifadhiwa kwenye mnyororo hayabadiliki na yanapatikana kwa umma, nodi za Ethereum zinaweza kutumia kwa usalama data ya chumba kilicholetwa nje ya mnyororo ili kukokotoa mabadiliko ya hali bila kuvunja makubaliano. + +Ili kufanya hivyo, chumba cha ndani kwa kawaida huundwa na kandarasi mahiri inayoendesha mnyororo na baadhi ya vipengele vya nje ya mnyororo. Mkataba wa ndani ya mnyororo hupokea maombi ya data kutoka kwa mikataba mingine mahiri, ambayo hupitishwa kwa sehemu ya nje ya mnyororo(inayoitwa nodi ya chanzo cha nje). Nodi hii ya chumba cha ndani inaweza kuuliza vyanzo vya data kwa kutumia violesura vya utayarishaji wa programu (API), kwa mfano na kutuma miamala ili kuhifadhi data iliyoombwa kwenye hifadhi ya mkataba mahiri. + +Kimsingi, chumba cha ndani cha blockchain hufunga pengo la habari kati ya kiamabjengo na mazingira ya nje, na kuunda "mkataba wa mahiri wa mseto". Mkataba wa mahiri wa mseto ni ule unaofanya kazi kulingana na mseto wa msimbo wa mkataba wa onchain na miundombinu ya ndani ya mnyororo. Masoko ya utabiri yaliyogatuliwa ni mfano bora wa mikataba mahiri ya mseto. Mifano mingine inaweza kujumuisha mikataba mahiri ya bima ya mazao ambayo hulipa wakati seti ya maneno hubaini kuwa matukio fulani ya hali ya hewa yamefanyika. + +## Tatizo la oracle ni nini? {#the-oracle-problem} + +Oracles hutatua tatizo muhimu, lakini pia huleta matatizo fulani, k.m.,: + +- Je, tunawezaje kuthibitisha kuwa maelezo yaliyodungwa yalitolewa kutoka kwa chanzo sahihi au hayajachezewa? + +- Tunahakikishaje kuwa data hii inapatikana kila wakati na inasasishwa mara kwa mara? + +Kinachojulikana kama "tatizo la ombi" linaonyesha maswala ambayo huja kwa kutumia maneno ya kiambajengo kutuma maoni kwa mkataba mahiri. Data kutoka kwa oracle lazima iwe sahihi ili mkataba mahiri utekelezwe ipasavyo. Zaidi ya hayo, kulazimika ‘kuamini’ waendeshaji mazungumzo kutoa taarifa sahihi kunadhoofisha kipengele cha 'kutoaminika' cha mikataba mahiri. + +Nadharia tofauti hutoa suluhu tofauti kwa tatizo la oracle, ambayo tutachunguza baadaye. Oracles kwa kawaida hutathminiwa kulingana na jinsi wanavyoweza kushughulikia changamoto zifuatazo: + +1. **Usahihi**: Oracle haipaswi kusababisha mikataba mahiri kuanzisha mabadiliko ya hali kulingana na data batili ya nje ya mnyororo. Oracle lazima ihakikishe _uhalisi_ na _uadilifu_ wa data. Uhalisi unamaanisha data ilipatikana kutoka chanzo sahihi, huku uadilifu ukimaanisha data ilibaki bila kubadilika (yaani, haikubadilishwa) kabla ya kutumwa kwenye mnyororo. + +2. **Upatikanaji**: Oracle haipaswi kuchelewesha au kuzuia mikataba mahiri kutekeleza vitendo na kuanzisha mabadiliko ya hali. Hii inamaanisha kuwa data kutoka kwa oracle lazima _ipatikane unapoomba_ bila kukatizwa. + +3. **Utangamano wa motisha**: Oracle inapaswa kuhamasisha watoa data wa nje ya mnyororo kuwasilisha taarifa sahihi kwa mikataba mahiri. Utangamano wa motisha unahusisha _uwezo wa kuhusishwa_ na _uwajibikaji_. Uwezo wa kuhusishwa huruhusu kuunganisha sehemu ya taarifa ya nje na mtoa huduma wake, ilhali uwajibikaji huwaunganisha watoa huduma wa data na taarifa wanazotoa, ili waweze kuzawadiwa au kuadhibiwa kulingana na ubora wa taarifa inayotolewa. + +## Huduma ya oracle ya mnyororo wa bloku hufanyaje kazi? {#how-does-a-blockchain-oracle-service-work} + +### Watumiaji {#users} + +Watumiaji ni vyombo (yaani, mikataba mahiri) vinavyohitaji taarifa za nje ya mnyororo wa bloku ili kukamilisha vitendo maalum. Mtiririko wa kazi wa msingi wa huduma ya oracle huanza na mtumiaji kutuma ombi la data kwa mkataba wa oracle. Maombi ya data kwa kawaida yatajibu baadhi au maswali yote yafuatayo: + +1. Ni vyanzo gani ambavyo nodi za nje ya mnyororo zinaweza kushauriana kwa taarifa zilizoombwa? + +2. Jinsi gani waandishi wa habari huchakata taarifa kutoka vyanzo vya data na kutoa pointi za data muhimu? + +3. Ni nodi ngapi za oracle zinaweza kushiriki katika kupata data? + +4. Tofauti katika ripoti za oracle zishughulikiwe vipi? + +5. Ni mbinu gani inapaswa kutekelezwa katika kuchuja mawasilisho na kujumlisha ripoti katika thamani moja? + +### Mkataba wa Oracle {#oracle-contract} + +Mkataba wa oracle ni sehemu ya kwenye mnyororo kwa ajili ya huduma ya oracle. Husikiliza maombi ya data kutoka kwa mikataba mingine, hupeleka maswali ya data kwa nodi za oracle, na kutangaza data iliyorejeshwa kwa mikataba ya mteja. Mkataba huu unaweza pia kufanya hesabu fulani kwenye pointi za data zilizorejeshwa ili kutoa thamani ya jumla ya kutuma kwa mkataba unaoomba. + +Mkataba wa oracle hufichua baadhi ya vipengele ambavyo mikataba ya mteja huita wakati wa kutuma ombi la data. Baada ya kupokea swali jipya, mkataba mahiri utatoa [tukio la kumbukumbu](/developers/docs/smart-contracts/anatomy/#events-and-logs) na maelezo ya ombi la data. Hii huarifu nodi za nje ya mnyororo zilizojisajili kwenye kumbukumbu (kawaida kwa kutumia kitu kama amri ya JSON-RPC `eth_subscribe`), ambao huendelea kupata data iliyobainishwa katika tukio la kumbukumbu. + +Hapo chini kuna [mfano wa mkataba wa oracle](https://medium.com/@pedrodc/implementing-a-blockchain-oracle-on-ethereum-cedc7e26b49e) na Pedro Costa. Hii ni huduma rahisi ya oracle ambayo inaweza kuuliza API za nje ya mnyororo kwa ombi la mikataba mingine mahiri na kuhifadhi taarifa zilizoombwa kwenye mnyororo wa bloku: + +```solidity +pragma solidity >=0.4.21 <0.6.0; + +contract Oracle { + Request[] requests; // orodha ya maombi yaliyotumwa kwa mkataba + uint currentId = 0; // kuongeza kitambulisho cha ombi + uint minQuorum = 2; // idadi ya chini ya majibu ya kupokea kabla ya kutangaza matokeo ya mwisho + uint totalOracleCount = 3; // Hesabu ya oracle iliyosimbikwa + + // inafafanua ombi la jumla la api + struct Request { + uint id; // kitambulisho cha ombi + string urlToQuery; // URL ya API + string attributeToFetch; // sifa ya json (ufunguo) ya kupata katika jibu + string agreedValue; // thamani kutoka kwa ufunguo + mapping(uint => string) answers; // majibu yaliyotolewa na oracles + mapping(address => uint) quorum; // oracles ambazo zitauliza jibu (1=oracle haijapiga kura, 2=oracle imepiga kura) + } + + // tukio linaloanzisha oracle nje ya mnyororo wa bloku + event NewRequest ( + uint id, + string urlToQuery, + string attributeToFetch + ); + + // huanzishwa kunapokuwa na makubaliano juu ya matokeo ya mwisho + event UpdatedRequest ( + uint id, + string urlToQuery, + string attributeToFetch, + string agreedValue + ); + + function createRequest ( + string memory _urlToQuery, + string memory _attributeToFetch + ) + public + { + uint length = requests.push(Request(currentId, _urlToQuery, _attributeToFetch, "")); + Request storage r = requests[length-1]; + + // Anwani za oracles zilizosimbikwa + r.quorum[address(0x6c2339b46F41a06f09CA0051ddAD54D1e582bA77)] = 1; + r.quorum[address(0xb5346CF224c02186606e5f89EACC21eC25398077)] = 1; + r.quorum[address(0xa2997F1CA363D11a0a35bB1Ac0Ff7849bc13e914)] = 1; + + // anzisha tukio litakalogunduliwa na oracle nje ya mnyororo wa bloku + emit NewRequest ( + currentId, + _urlToQuery, + _attributeToFetch + ); + + // ongeza kitambulisho cha ombi + currentId++; + } + + // huitwa na oracle kurekodi jibu lake + function updateRequest ( + uint _id, + string memory _valueRetrieved + ) public { + + Request storage currRequest = requests[_id]; + + // angalia kama oracle iko kwenye orodha ya oracles zinazoaminika + // na kama oracle haijapiga kura bado + if(currRequest.quorum[address(msg.sender)] == 1){ + + // kuashiria kuwa anwani hii imepiga kura + currRequest.quorum[msg.sender] = 2; + + // pitia "safu" ya majibu hadi nafasi iwe huru na uhifadhi thamani iliyopatikana + uint tmpI = 0; + bool found = false; + while(!found) { + // tafuta nafasi ya kwanza tupu + if(bytes(currRequest.answers[tmpI]).length == 0){ + found = true; + currRequest.answers[tmpI] = _valueRetrieved; + } + tmpI++; + } + + uint currentQuorum = 0; + + // pitia orodha ya oracle na uangalie ikiwa oracles za kutosha (akidi ya chini) + // wamepiga kura jibu sawa na la sasa + for(uint i = 0; i < totalOracleCount; i++){ + bytes memory a = bytes(currRequest.answers[i]); + bytes memory b = bytes(_valueRetrieved); + + if(keccak256(a) == keccak256(b)){ + currentQuorum++; + if(currentQuorum >= minQuorum){ + currRequest.agreedValue = _valueRetrieved; + emit UpdatedRequest ( + currRequest.id, + currRequest.urlToQuery, + currRequest.attributeToFetch, + currRequest.agreedValue + ); + } + } + } + } + } +} +``` + +### Nodi za Oracle {#oracle-nodes} + +Nodi ya oracle ni sehemu ya nje ya mnyororo ya huduma ya oracle. Hutoa taarifa kutoka vyanzo vya nje, kama vile API zilizopangishwa kwenye seva za watu wengine, na kuiweka kwenye mnyororo kwa matumizi ya mikataba mahiri. Nodi za Oracle husikiliza matukio kutoka kwa mkataba wa oracle wa kwenye mnyororo na kuendelea kukamilisha kazi iliyoelezwa kwenye kumbukumbu. + +Kazi ya kawaida kwa nodi za oracle ni kutuma ombi la [HTTP GET](https://www.w3schools.com/tags/ref_httpmethods.asp) kwa huduma ya API, kuchanganua jibu ili kutoa data husika, kuiweka katika umbizo linaloweza kusomeka na blockchain, na kuituma kwenye mnyororo kwa kuijumuisha katika muamala kwa mkataba wa oracle. Nodi ya oracle inaweza pia kuhitajika kuthibitisha uhalali na uadilifu wa taarifa iliyowasilishwa kwa kutumia “uthibitisho wa uhalisi”, ambao tutauchunguza baadaye. + +Oracles za kukokotoa pia hutegemea nodi za nje ya mnyororo kutekeleza kazi za kukokotoa ambazo hazingewezekana kutekeleza kwenye mnyororo, kutokana na gharama za gesi na vikomo vya ukubwa wa bloku. Kwa mfano, nodi ya chumba cha ndani inaweza kuwa na jukumu la kuzalisha takwimu isiyo ya kawaida (k.m., kwa michezo ya kiambajengo). + +## Miundo ya usanifu wa Oracle {#oracle-design-patterns} + +Oracles huja katika aina tofauti, ikiwa ni pamoja na _usomaji-wa-papo-hapo_, _uchapishaji-usajili_, na _ombi-jibu_, huku mbili za mwisho zikiwa maarufu zaidi miongoni mwa mikataba mahiri ya Ethereum. Hapa tunaelezea kwa ufupi mifumo ya uchapishaji-usajili na ombi-jibu. + +### Oracles za uchapishaji-usajili {#publish-subscribe-oracles} + +Aina hii ya ora hufichua "mlisho wa data" ambao mikataba mingine inaweza kusoma mara kwa mara ili kupata taarifa. Data katika kesi hii inatarajiwa kubadilika mara kwa mara, kwa hivyo ni lazima mikataba ya mteja isikilize masasisho ya data iliyo kwenye hifadhi ya chumba cha ndani. Mfano ni oracle inayotoa taarifa za hivi punde za bei ya ETH-USD kwa watumiaji. + +### Oracles za ombi-jibu {#request-response-oracles} + +Usanidi wa jibu la ombi huruhusu kandarasi ya mteja kuomba data kiholela isipokuwa ile iliyotolewa na ombi la uchapishaji wa kujisajili. Maagizo ya majibu ya ombi ni bora wakati mkusanyiko wa data ni mkubwa mno kuhifadhiwa kwenye hifadhi ya mkataba mahiri, na/au watumiaji watahitaji tu sehemu ndogo ya data wakati wowote. + +Ingawa ni ngumu zaidi kuliko miundo ya kujiandikisha kwa uchapishaji, maneno ya ombi majibu kimsingi ndiyo tuliyoelezea katika sehemu iliyotangulia. Chanzo cha data cha nje itakuwa na sehemu ya ndani ya mnyororo ambayo inapokea ombi la data na kuipitisha kwa nodi ya nje ya mnyororo kwa usindikaji. + +Watumiaji wanaoanzisha hoja za data lazima walipe gharama ya kurejesha maelezo kutoka kwa chanzo cha nje ya mnyororo. Watumiaji wanaoanzisha hoja za data lazima walipe gharama ya kurejesha maelezo kutoka kwa chanzo cha nje ya mnyororo. + +## Oracles za kati dhidi ya zilizogatuliwa {#types-of-oracles} + +### Oracles za kati {#centralized-oracles} + +Sehemu kuu ya ndani inadhibitiwa na huluki moja inayohusika na kukusanya maelezo ya nje ya mnyororo na kusasisha data ya mkataba wa chumba cha ndani kama ilivyoombwa. Oracles za kati ni bora kwa vile zinategemea chanzo kimoja cha ukweli. Zinaweza kufanya kazi vyema zaidi katika hali ambapo hifadhidata za wamiliki zinachapishwa moja kwa moja na mmiliki kwa saini inayokubaliwa na wengi. Hata hivyo, huleta hasara pia: + +#### Dhamana za chini za usahihi {#low-correctness-guarantees} + +Ukiwa na oracles za kati, hakuna njia ya kuthibitisha ikiwa taarifa iliyotolewa ni sahihi au la. Hata watoa huduma "wanaoaminika" wanaweza kuharibika au kudukuliwa. Ikiwa oracle itaharibika, mikataba mahiri itatekelezwa kulingana na data mbovu. + +#### Upatikanaji duni {#poor-availability} + +Maneno ya kati hayana hakikisho ya kufanya data ya nje ya mtandao ipatikane kwa mikataba mingine mahiri kila wakati. Iwapo mtoa huduma ataamua kuzima huduma au mdukuzi anateka sehemu ya chanzo cha nje ya mnyororo, mkataba wako mahiri uko katika hatari ya shambulio la kunyimwa huduma (DoS). + +#### Utangamano duni wa motisha {#poor-incentive-compatibility} + +Maandishi ya kati mara nyingi huwa na vivutio vilivyoundwa vibaya au kutokuwepo kwa mtoa data kutuma taarifa sahihi/ambayo haijabadilishwa. Kulipa oracle kwa usahihi hakuhakikishi uaminifu. Tatizo hili linakuwa kubwa zaidi kadiri kiasi cha thamani kinachodhibitiwa na mikataba mahiri kinavyoongezeka. + +### Oracles zilizogatuliwa {#decentralized-oracles} + +Maneno yaliyogatuliwa yameundwa ili kushinda mapungufu ya hotuba kuu kwa kuondoa alama moja za kutofaulu. Huduma ya hotuba iliyogatuliwa hujumuisha washiriki wengi katika mtandao wa kati-ka-rika ambao huunda makubaliano kuhusu data ya offchain kabla ya kuituma kwa mkataba mahiri. + +Sehemu ya hotuba iliyogatuliwa inapaswa (ikiwezekana) kuwa isiyo na ruhusa, isiyoaminika, na isiyo na usimamizi wa chama kikuu; kwa kweli, ugatuaji kati ya hotuba ni juu ya wigo. Kuna mitandao ya siri iliyogatuliwa ambapo mtu yeyote anaweza kushiriki, lakini akiwa na "mmiliki" anayeidhinisha na kuondoa nodi kulingana na utendakazi wa kihistoria. Mitandao ya siri iliyotawanywa kikamilifu pia ipo: kwa kawaida hii huendeshwa kama misururu ya pekee na imefafanua mbinu za maafikiano za kuratibu nodi na kuadhibu tabia mbaya. + +Kutumia oracles zilizogatuliwa huja na manufaa yafuatayo: + +### Dhamana za juu za usahihi {#high-correctness-guarantees} + +Oracles zilizogatuliwa hujaribu kufikia usahihi wa data kwa kutumia mbinu tofauti. Hii ni pamoja na kutumia uthibitisho unaothibitisha uhalisi na uadilifu wa taarifa iliyorejeshwa na kuhitaji huluki nyingi kukubaliana kwa pamoja juu ya uhalali wa data ya nje ya mnyororo. + +#### Uthibitisho wa uhalisi {#authenticity-proofs} + +Uthibitisho wa uhalisi ni mbinu za kriptografia ambazo huwezesha uthibitishaji huru wa maelezo yaliyopatikana kutoka kwa vyanzo vya nje. Uthibitisho huu unaweza kuthibitisha chanzo cha habari na kugundua mabadiliko yanayoweza kutokea kwa data baada ya kurejesha. + +Mifano ya uthibitisho wa uhalisi ni pamoja na: + +**Uthibitisho wa Usalama wa Tabaka la Usafiri (TLS)**: Nodi za Oracle mara nyingi hupata data kutoka vyanzo vya nje kwa kutumia muunganisho salama wa HTTP kulingana na itifaki ya Usalama wa Tabaka la Usafiri (TLS). Baadhi ya hotuba zilizogatuliwa hutumia uthibitisho wa uhalisi ili kuthibitisha vipindi vya TLS (yaani, kuthibitisha ubadilishanaji wa taarifa kati ya nodi na seva mahususi) na kuthibitisha kuwa maudhui ya kipindi hayakubadilishwa. + +**Uthibitisho wa Mazingira ya Utekelezaji Yanayoaminika (TEE)**: [Mazingira ya utekelezaji yanayoaminika](https://en.wikipedia.org/wiki/Trusted_execution_environment) (TEE) ni mazingira ya ukokotoaji yaliyowekwa kwenye sandbox ambayo yametengwa na michakato ya uendeshaji ya mfumo wake mkuu. TEE huhakikisha kwamba msimbo wowote wa programu au data iliyohifadhiwa/inayotumiwa katika mazingira ya ukokotoaji huhifadhi uadilifu, usiri, na kutobadilika. Watumiaji wanaweza pia kutoa uthibitisho ili kuthibitisha kuwa kielelezo cha programu kinaendeshwa ndani ya mazingira ya utekelezaji yanayoaminika. + +Aina fulani za oracles zilizogatuliwa zinahitaji waendeshaji wa nodi za oracle kutoa uthibitisho wa TEE. Hii inathibitisha kwa mtumiaji kwamba mwendeshaji wa nodi anaendesha kielelezo cha mteja wa oracle katika mazingira ya utekelezaji yanayoaminika. TEE huzuia michakato ya nje kubadilisha au kusoma msimbo na data ya programu, kwa hiyo, uthibitisho huo unathibitisha kwamba nodi ya oracle imehifadhi taarifa hizo bila kubadilika na kwa siri. + +#### Uthibitishaji wa taarifa kulingana na makubaliano {#consensus-based-validation-of-information} + +Oracles za kati hutegemea chanzo kimoja cha ukweli wakati wa kutoa data kwa mikataba mahiri, jambo ambalo huleta uwezekano wa kuchapisha taarifa zisizo sahihi. Oracles zilizogatuliwa hutatua tatizo hili kwa kutegemea nodi nyingi za oracle kuuliza taarifa za nje ya mnyororo. Kwa kulinganisha data kutoka vyanzo vingi, oracles zilizogatuliwa hupunguza hatari ya kupitisha taarifa batili kwa mikataba ya kwenye mnyororo. + +Hata hivyo, oracles zilizogatuliwa lazima zishughulikie tofauti katika taarifa zilizopatikana kutoka vyanzo vingi vya nje ya mnyororo. Ili kupunguza tofauti katika taarifa na kuhakikisha data inayopitishwa kwa mkataba wa oracle inaonyesha maoni ya pamoja ya nodi za oracle, oracles zilizogatuliwa hutumia mifumo ifuatayo: + +##### Upigaji kura/uwekaji hisa juu ya usahihi wa data + +Baadhi ya mitandao ya oracle iliyogatuliwa inahitaji washiriki kupiga kura au kuweka hisa juu ya usahihi wa majibu kwa maswali ya data (k.m., "Nani alishinda uchaguzi wa Marekani wa 2020?") kwa kutumia tokeni asili ya mtandao. Itifaki ya ujumlishaji kisha hujumlisha kura na hisa na kuchukua jibu linaloungwa mkono na walio wengi kama lile halali. + +Nodi ambazo majibu yake yanatofautiana na jibu la wengi huadhibiwa kwa kugawiwa tokeni zao kwa wengine wanaotoa thamani sahihi zaidi. Kulazimisha nodi kutoa dhamana kabla ya kutoa data huhamasisha majibu ya uaminifu kwani wanachukuliwa kuwa watendaji wa kiuchumi wenye busara wanaokusudia kuongeza mapato. + +Uwekaji hisa/upigaji kura pia hulinda oracles zilizogatuliwa dhidi ya [mashambulizi ya Sybil](/glossary/#sybil-attack) ambapo watendaji hasidi huunda vitambulisho vingi ili kudanganya mfumo wa makubaliano. Hata hivyo, uwekaji hisa hauwezi kuzuia “utegaji” (nodi za oracle kunakili taarifa kutoka kwa wengine) na “uthibitishaji wa uvivu” (nodi za oracle kufuata walio wengi bila kuthibitisha taarifa wenyewe). + +##### Mifumo ya Schelling point + +[Schelling point](https://en.wikipedia.org/wiki/Focal_point_\(game_theory\)) ni dhana ya nadharia ya mchezo inayodhani kuwa vyombo vingi daima vitachagua suluhisho la kawaida kwa tatizo bila mawasiliano yoyote. Mifumo ya Schelling-point mara nyingi hutumiwa katika mitandao ya oracle iliyogatuliwa ili kuwezesha nodi kufikia makubaliano juu ya majibu kwa maombi ya data. + +Wazo la mapema kwa hili lilikuwa [SchellingCoin](https://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/), mlisho wa data uliopendekezwa ambapo washiriki huwasilisha majibu kwa maswali ya "scalar" (maswali ambayo majibu yake yanaelezewa na ukubwa, k.m., "bei ya ETH ni nini?"), pamoja na amana. Watumiaji wanaotoa thamani kati ya [percentile](https://en.wikipedia.org/wiki/Percentile) ya 25 na 75 wanazawadiwa, huku wale ambao thamani zao zinatofautiana sana na thamani ya wastani wanaadhibiwa. + +Ingawa SchellingCoin haipo leo, idadi ya oracles zilizogatuliwa—hasa [Oracles za Maker Protocol](https://docs.makerdao.com/smart-contract-modules/oracle-module)—hutumia mfumo wa schelling-point ili kuboresha usahihi wa data ya oracle. Kila Oracle ya Maker ina mtandao wa P2P wa nje ya mnyororo wa nodi ("relayers" na "feeds") ambao huwasilisha bei za soko kwa mali za dhamana na mkataba wa kwenye mnyororo wa “Medianizer” unaokokotoa wastani wa thamani zote zilizotolewa. Mara tu kipindi maalum cha kucheleweshwa kinapoisha, thamani hii ya wastani inakuwa bei mpya ya kumbukumbu ya mali inayohusishwa. + +Mifano mingine ya oracles zinazotumia mifumo ya Schelling point ni pamoja na [Chainlink Offchain Reporting](https://docs.chain.link/architecture-overview/off-chain-reporting) na [Witnet](https://witnet.io/). Katika mifumo yote miwili, majibu kutoka kwa nodi za oracle katika mtandao wa rika-kwa-rika hujumlishwa kuwa thamani moja ya jumla, kama vile wastani au wastani. Nodi hutuzwa au kuadhibiwa kulingana na kiwango ambacho majibu yao yanalingana au kupotoka kutoka kwa jumla ya thamani. + +Taratibu za sehemu za Schelling zinavutia kwa sababu zinapunguza alama ya onchain (muamala mmoja tu ndio unahitaji kutumwa) huku ukihakikisha utawanyaji. La mwisho linawezekana kwa sababu nodi lazima ziondoke kwenye orodha ya majibu yaliyowasilishwa kabla ya kulishwa kwenye algoriti inayotoa thamani ya wastani/wastani. + +### Upatikanaji {#availability} + +Huduma za oracle zilizogatuliwa huhakikisha upatikanaji wa juu wa data ya nje ya mnyororo kwa mikataba mahiri. Hili linaafikiwa kwa kugawanya vyanzo vyote viwili vya maelezo ya nje ya mnyororo na nodi zinazohusika na kuhamisha taarifa kwenye mnyororo. + +Hii inahakikisha uvumilivu wa hitilafu kwa kuwa mkataba wa chumba cha ndani unaweza kutegemea nodi nyingi (ambazo pia hutegemea vyanzo vingi vya data) kutekeleza hoja kutoka kwa mikataba mingine. Ugatuzi katika chanzo _na_ kiwango cha mwendeshaji-nodi ni muhimu—mtandao wa nodi za oracle unaotoa taarifa zilizopatikana kutoka chanzo kimoja utakumbana na tatizo sawa na oracle ya kati. + +Inawezekana pia kwa maneno yanayotegemea hisa kufyeka waendeshaji wa nodi ambao wanashindwa kujibu maombi ya data haraka. Hii inatia motisha kwa kiasi kikubwa nodi za oracle kuwekeza katika miundombinu inayostahimili hitilafu na kutoa data kwa wakati ufaao. + +### Utangamano mzuri wa motisha {#good-incentive-compatibility} + +Oracles zilizogatuliwa hutekeleza miundo mbalimbali ya motisha ili kuzuia tabia ya [Byzantine](https://en.wikipedia.org/wiki/Byzantine_fault) miongoni mwa nodi za oracle. Hasa, wanafanikisha _uwezo wa kuhusishwa_ na _uwajibikaji_: + +1. Nodi za chanzo cha data cha nje kilichotawanywa mara nyingi huhitajika kutia sahihi data wanazotoa kujibu maombi ya data. Maelezo haya husaidia kutathmini utendakazi wa kihistoria wa nodi za oracle, ili watumiaji waweze kuchuja nodi za siri zisizotegemewa wanapotuma maombi ya data. Mfano ni [Mfumo wa Sifa za Algorithmic](https://docs.witnet.io/intro/about/architecture#algorithmic-reputation-system) wa Witnet. + +2. Maandishi yaliyotawanywa kama ilivyoelezwa hapo awali huenda ikahitaji nodi kuweka hisa kwenye imani yao katika ukweli wa data wanayowasilisha. Ikiwa dai litathibitishwa, hisa hii inaweza kurejeshwa pamoja na zawadi kwa huduma ya uaminifu. Lakini pia inaweza kupunguzwa ikiwa habari si sahihi, ambayo hutoa kipimo fulani cha uwajibikaji. + +## Matumizi ya oracles katika mikataba mahiri {#applications-of-oracles-in-smart-contracts} + +Yafuatayo ni matumizi ya kawaida ya oracles katika Ethereum: + +### Kupata data ya kifedha {#retrieving-financial-data} + +Programu za [fedha zilizogatuliwa](/defi/) (DeFi) huruhusu ukopeshaji, ukopaji, na biashara ya mali baina ya watu. Hii mara nyingi huhitaji kupata taarifa tofauti za kifedha, ikiwa ni pamoja na data ya kiwango cha ubadilishaji (kwa kukokotoa thamani ya fiat ya sarafu za siri au kulinganisha bei za tokeni) na data ya masoko ya mitaji (kwa kukokotoa thamani ya mali iliyowekewa alama, kama vile dhahabu au dola ya Marekani). + +Itifaki ya ukopeshaji wa DeFi, kwa mfano, inahitaji kuuliza bei za sasa za soko za mali (k.m., ETH) zilizowekwa kama dhamana. Hii huruhusu mkataba kubainisha thamani ya mali ya dhamana na kubainisha ni kiasi gani kinaweza kukopa kutoka kwa mfumo. + +"Oracles za bei" maarufu (kama zinavyoitwa mara nyingi) katika DeFi ni pamoja na Chainlink Price Feeds, [Open Price Feed](https://compound.finance/docs/prices) ya Compound Protocol, [Time-Weighted Average Prices (TWAPs)](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles) za Uniswap, na [Maker Oracles](https://docs.makerdao.com/smart-contract-modules/oracle-module). + +Wajenzi wanapaswa kuelewa tahadhari zinazokuja na maneno haya ya bei kabla ya kujumuisha katika mradi wao. [Makala](https://blog.openzeppelin.com/secure-smart-contract-guidelines-the-dangers-of-price-oracles/) hii inatoa uchambuzi wa kina wa nini cha kuzingatia unapopanga kutumia mojawapo ya oracles za bei zilizotajwa. + +Ufuatao ni mfano wa jinsi unavyoweza kurejesha bei ya hivi punde ya ETH katika mkataba wako mahiri kwa kutumia mlisho wa bei wa Chainlink: + +```solidity +pragma solidity ^0.6.7; + +import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol"; + +contract PriceConsumerV3 { + + AggregatorV3Interface internal priceFeed; + + /** + * Mtandao: Kovan + * Mjumlishi: ETH/USD + * Anwani: 0x9326BFA02ADD2366b30bacB125260Af641031331 + */ + constructor() public { + priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331); + } + + /** + * Hurejesha bei ya hivi punde + */ + function getLatestPrice() public view returns (int) { + ( + uint80 roundID, + int price, + uint startedAt, + uint timeStamp, + uint80 answeredInRound + ) = priceFeed.latestRoundData(); + return price; + } +} +``` + +### Kuzalisha unasibu unaoweza kuthibitishwa {#generating-verifiable-randomness} + +Baadhi ya programu za blockchain, kama vile michezo ya kiambajengo au miradi ya bahati nasibu, zinahitaji kiwango cha juu cha kutotabirika na nasibu ili kufanya kazi kwa ufanisi. Hata hivyo, utekelezaji wa kubainisha wa blockchains huondoa unasibu. + +Mbinu ya awali ilikuwa kutumia vitendaji vya kriptografia vya pseudorandom, kama vile `blockhash`, lakini hizi zinaweza [kudanganywa na wachimbaji](https://ethereum.stackexchange.com/questions/3140/risk-of-using-blockhash-other-miners-preventing-attack#:~:text=So%20while%20the%20miners%20can,to%20one%20of%20the%20players.) kutatua algoriti ya uthibitisho-wa-kazi. Pia, [mabadiliko ya Ethereum kwenda uthibitisho-wa-hisa](/roadmap/merge/) inamaanisha wasanidi programu hawawezi tena kutegemea `blockhash` kwa unasibu wa kwenye mnyororo. Mfumo wa [RANDAO](https://eth2book.info/altair/part2/building_blocks/randomness) wa Beacon Chain hutoa chanzo mbadala cha unasibu badala yake. + +Inawezekana kutoa thamani nasibu nje ya mnyororo na kuituma kwenye mnyororo, lakini kufanya hivyo huweka mahitaji ya juu ya uaminifu kwa watumiaji. Ni lazima waamini kwamba thamani ilitolewa kupitia njia zisizotabirika na haikubadilishwa katika usafiri. + +Maandishi yaliyoundwa kwa ajili ya kukokotoa nje ya mnyororo hutatua tatizo hili kwa kutoa matokeo nasibu nje ya mnyororo kwa usalama ambayo hutangaza kwenye msururu pamoja na uthibitisho wa kriptografia unaothibitisha kutotabirika kwa mchakato huo. Mfano ni [Chainlink VRF](https://docs.chain.link/docs/chainlink-vrf/) (Verifiable Random Function), ambayo ni jenereta ya nambari nasibu (RNG) inayoweza kuthibitishwa kuwa ya haki na isiyoweza kuchezewa, muhimu kwa ajili ya kujenga mikataba mahiri ya kuaminika kwa programu zinazotegemea matokeo yasiyotabirika. + +### Kupata matokeo ya matukio {#getting-outcomes-for-events} + +Ukiwa na oracles, kuunda mikataba mahiri inayojibu matukio ya ulimwengu halisi ni rahisi. Huduma za chanzo cha data cha nje hurahisisha hili kwa kuruhusu kandarasi kuunganishwa kwa API za nje kupitia vipengele vya offchain na kutumia taarifa kutoka kwa vyanzo hivyo vya data. Kwa mfano, utabiri wa dapp uliotajwa hapo awali unaweza kuomba hotuba ya kurudisha matokeo ya uchaguzi kutoka kwa chanzo kinachoaminika (k.m., Associated Press). + +Kutumia hotuba kupata data kulingana na matokeo ya ulimwengu halisi huwezesha visa vingine vya utumiaji wa riwaya; kwa mfano, bidhaa ya bima iliyogatuliwa inahitaji taarifa sahihi kuhusu hali ya hewa, majanga, n. k. ili kufanya kazi kwa ufanisi. + +### Kufanya mikataba mahiri ijiendeshe yenyewe {#automating-smart-contracts} + +Mikataba mahiri haiendeshwi kiotomatiki; badala yake, akaunti inayomilikiwa na nje (EOA), au akaunti nyingine ya mkataba, lazima ianzishe kazi zinazofaa ili kutekeleza msimbo wa mkataba. Mara nyingi, sehemu kubwa ya kazi za mkataba ni za umma na zinaweza kutumiwa na EOAs na mikataba mingine. + +Lakini pia kuna _vitendaji vya faragha_ ndani ya mkataba ambavyo havifikiki kwa wengine;, lakini ni muhimu kwa utendakazi wa jumla wa dapp. Mifano ni pamoja na kitendaji cha `mintERC721Token()` ambacho mara kwa mara huchapisha NFTs mpya kwa watumiaji, kitendaji cha kutoa malipo katika soko la utabiri, au kitendaji cha kufungua tokeni zilizowekwa hisa katika DEX. + +Wasanidi programu watahitaji kuanzisha vitendaji hivyo kwa vipindi ili kuweka programu iendeshe vizuri. Hata hivyo, hii inaweza kusababisha kupoteza masaa mengi zaidi kwenye kazi za kawaida kwa wasanidi programu, ndiyo maana kufanya utekelezaji wa mikataba mahiri ujiendeshe wenyewe kunavutia. + +Baadhi ya mitandao ya oracle iliyogatuliwa hutoa huduma za kujiendesha, ambazo huruhusu nodi za oracle za nje ya mnyororo kuanzisha vitendaji vya mkataba mahiri kulingana na vigezo vilivyobainishwa na mtumiaji. Kwa kawaida, hii inahitaji “kusajili” mkataba lengwa na huduma ya oracle, kutoa fedha za kumlipa mwendeshaji wa oracle, na kubainisha masharti au nyakati za kuanzisha mkataba. + +[Mtandao wa Keeper](https://chain.link/keepers) wa Chainlink hutoa chaguo kwa mikataba mahiri kutoa kazi za matengenezo ya mara kwa mara kwa njia ya kupunguza uaminifu na iliyogatuliwa. Soma [nyaraka](https://docs.chain.link/docs/chainlink-keepers/introduction/) rasmi za Keeper kwa taarifa juu ya kufanya mkataba wako uendane na Keeper na kutumia huduma ya Upkeep. + +## Jinsi ya kutumia oracles za mnyororo wa bloku {#use-blockchain-oracles} + +Kuna programu nyingi za oracle unazoweza kuunganisha kwenye dapp yako ya Ethereum: + +**[Chainlink](https://chain.link/)** - _Mitandao ya oracle iliyogatuliwa ya Chainlink hutoa ingizo, matokeo, na hesabu zisizoweza kuchezewa ili kusaidia mikataba mahiri ya hali ya juu kwenye mnyororo wowote wa bloku._ + +**[RedStone Oracles](https://redstone.finance/)** - _RedStone ni oracle ya msimu iliyogatuliwa inayotoa milisho ya data iliyoboreshwa kwa gesi. Inajihusisha na kutoa milisho ya bei kwa mali zinazoibuka, kama vile tokeni za uwekaji hisa kioevu (LSTs), tokeni za uwekaji hisa kioevu (LRTs), na derivatives za uwekaji hisa za Bitcoin._ + +**[Chronicle](https://chroniclelabs.org/)** - _Chronicle inashinda vikwazo vya sasa vya kuhamisha data kwenye mnyororo kwa kuendeleza oracles zinazoweza kuongezeka, za gharama nafuu, zilizogatuliwa, na zinazoweza kuthibitishwa._ + +**[Witnet](https://witnet.io/)** - _Witnet ni oracle isiyo na ruhusa, iliyogatuliwa, na inayostahimili udhibiti inayosaidia mikataba mahiri kujibu matukio ya ulimwengu halisi na dhamana dhabiti za kiuchumi-kripto._ + +**[UMA Oracle](https://uma.xyz)** - _Oracle ya matumaini ya UMA inaruhusu mikataba mahiri kupokea haraka na aina yoyote ya data kwa programu tofauti, ikiwa ni pamoja na bima, derivatives za kifedha, na masoko ya utabiri._ + +**[Tellor](https://tellor.io/)** - _Tellor ni itifaki ya oracle ya uwazi na isiyo na ruhusa kwa mkataba wako mahiri kupata data yoyote kwa urahisi wakati wowote inapohitaji._ + +**[Band Protocol](https://bandprotocol.com/)** - _Band Protocol ni jukwaa la oracle la data la mnyororo-tofauti ambalo hujumlisha na kuunganisha data ya ulimwengu halisi na API kwa mikataba mahiri._ + +**[Pyth Network](https://pyth.network/)** - _Mtandao wa Pyth ni mtandao wa oracle wa kifedha wa wahusika wa kwanza ulioundwa kuchapisha data endelevu ya ulimwengu halisi kwenye mnyororo katika mazingira yasiyoweza kuchezewa, yaliyogatuliwa, na yanayojitegemea._ + +**[API3 DAO](https://www.api3.org/)** - _API3 DAO inatoa suluhisho za oracle za wahusika wa kwanza ambazo hutoa uwazi zaidi wa chanzo, usalama na uwezo wa kuongezeka katika suluhisho lililogatuliwa kwa mikataba mahiri_ + +**[Supra](https://supra.com/)** - Zana iliyounganishwa kiwima ya suluhisho za mnyororo-tofauti zinazounganisha blockchains zote, za umma (L1s na L2s) au za kibinafsi (biashara), ikitoa milisho ya bei ya oracle iliyogatuliwa ambayo inaweza kutumika kwa matumizi ya kwenye mnyororo na nje ya mnyororo. + +**[Gas Network](https://gas.network/)** - Jukwaa la oracle lililosambazwa linalotoa data ya bei ya gesi ya wakati halisi kote kwenye mnyororo wa bloku. Kwa kuleta data kutoka kwa watoa huduma wakuu wa data ya bei ya gesi kwenye mnyororo, Gas Network inasaidia kuendesha ushirikiano. Gas Network inasaidia data kwa minyororo zaidi ya 35, ikiwa ni pamoja na Ethereum Mainnet na L2 nyingi zinazoongoza. + +## Masomo zaidi {#further-reading} + +**Makala** + +- [Oracle ya Mnyororo wa Bloku ni Nini?](https://chain.link/education/blockchain-oracles) — _Chainlink_ +- [Oracle ya Mnyororo wa Bloku ni Nini?](https://medium.com/better-programming/what-is-a-blockchain-oracle-f5ccab8dbd72) — _Patrick Collins_ +- [Oracles Zilizogatuliwa: muhtasari wa kina](https://medium.com/fabric-ventures/decentralised-oracles-a-comprehensive-overview-d3168b9a8841) — _Julien Thevenard_ +- [Kutekeleza Oracle ya Mnyororo wa Bloku kwenye Ethereum](https://medium.com/@pedrodc/implementing-a-blockchain-oracle-on-ethereum-cedc7e26b49e) – _Pedro Costa_ +- [Kwa nini mikataba mahiri haiwezi kupiga simu za API?](https://ethereum.stackexchange.com/questions/301/why-cant-contracts-make-api-calls) — _StackExchange_ +- [Kwa hiyo unataka kutumia oracle ya bei](https://samczsun.com/so-you-want-to-use-a-price-oracle/) — _samczsun_ + +**Video** + +- [Oracles na Upanuzi wa Matumizi ya Mnyororo wa Bloku](https://youtu.be/BVUZpWa8vpw) — _Real Vision Finance_ + +**Mafunzo** + +- [Jinsi ya Kupata Bei ya Sasa ya Ethereum katika Solidity](https://blog.chain.link/fetch-current-crypto-price-data-solidity/) — _Chainlink_ +- [Kutumia Data ya Oracle](https://docs.chroniclelabs.org/Developers/tutorials/Remix) — _Chronicle_ + +**Mifano ya kazi** + +- [Mradi kamili wa kuanzia wa Chainlink kwa Ethereum katika Solidity](https://github.com/hackbg/chainlink-fullstack) — _HackBG_ diff --git a/public/content/translations/sw/developers/docs/programming-languages/dart/index.md b/public/content/translations/sw/developers/docs/programming-languages/dart/index.md new file mode 100644 index 00000000000..44425b1a953 --- /dev/null +++ b/public/content/translations/sw/developers/docs/programming-languages/dart/index.md @@ -0,0 +1,32 @@ +--- +title: Ethereum kwa wasanidi programu wa Dart +description: Jifunze jinsi ya kuendeleza Ethereum kwa kutumia lugha ya Dart +lang: sw +incomplete: true +--- + +## Kuanza na mikataba-erevu na lugha ya Solidity {#getting-started-with-smart-contracts-and-solidity} + +## Mafunzo {#tutorials} + +- [Flutter na Mnyororo wa bloku – Hello World Dapp](https://www.geeksforgeeks.org/flutter-and-blockchain-hello-world-dapp/) inakupitisha katika hatua zote za kuanza: + 1. Kuandika mkataba-erevu katika [Solidity](https://soliditylang.org/) + 2. Kuandika kiolesura cha mtumiaji katika Dart +- [Kuunda dapp ya Simu na Flutter](https://medium.com/dash-community/building-a-mobile-dapp-with-flutter-be945c80315a) ni fupi zaidi, ambayo inaweza kuwa bora + ikiwa tayari unajua mambo ya msingi +- Ikiwa unapendelea kujifunza kwa kutazama video, unaweza kutazama [Jenga Programu yako ya Kwanza ya Blockchain ya Flutter](https://www.youtube.com/watch?v=3Eeh3pJ6PeA), ambayo ina urefu wa takriban saa moja +- Ikiwa huna subira, unaweza kupendelea [Kuunda Programu-iliyogatuliwa ya Blockchain na Flutter na Dart kwenye Ethereum](https://www.youtube.com/watch?v=jaMFEOCq_1s), ambayo ni takriban dakika ishirini tu +- [Kuunganisha MetaMask katika programu ya Flutter na Web3Modal kutoka WalletConnect](https://www.youtube.com/watch?v=v_M2buHCpc4) - video hii fupi inakupitisha katika hatua za kuunganisha MetaMask kwenye programu zako za Flutter na maktaba ya [Web3Modal](https://pub.dev/packages/web3modal_flutter) kutoka WalletConnect +- [Kozi ya Bootcamp ya Msanidi Programu wa Blockchain ya Simu na Solidity & Flutter](https://youtube.com/playlist?list=PL4V4Unlk5luhQ266ERO6hWEbcUwHDSSmVH) - orodha ya kucheza ya kozi kamili ya msanidi programu wa blockchain ya simu + +## Kufanya kazi na wateja wa Ethereum {#working-with-ethereum-clients} + +Unaweza kutumia Ethereum kuunda mifumo iliyotawanywa (au "mfumo mtawanyo wa kimamlaka") zinazotumia manufaa ya sarafu ya kidigitali na teknolojia ya mnyororo wa bloku. +Kuna angalau maktaba mbili zinazodumishwa sasa kwa Dart kutumia +[JSON-RPC API](/developers/docs/apis/json-rpc/) ya Ethereum. + +1. [Web3dart kutoka pwa.ir](https://pub.dev/packages/web3dart) +2. [Ethereum 5.0.0 kutoka darticulate.com](https://pub.dev/packages/ethereum) + +Pia kuna maktaba za ziada zinazokuruhusu kudhibiti anwani maalum za Ethereum, au zinazokuruhusu kupata bei za sarafu mbalimbali za kidigitali. +[Unaweza kuona orodha kamili hapa](https://pub.dev/dart/packages?q=ethereum). diff --git a/public/content/translations/sw/developers/docs/programming-languages/delphi/index.md b/public/content/translations/sw/developers/docs/programming-languages/delphi/index.md new file mode 100644 index 00000000000..bc866db0781 --- /dev/null +++ b/public/content/translations/sw/developers/docs/programming-languages/delphi/index.md @@ -0,0 +1,56 @@ +--- +title: Ethereum kwa wajenzi wa Delphi +description: Jifunze jinsi ya kuendeleza Ethereum kwa kutumia lugha ya programu ya Delphi +lang: sw +incomplete: true +--- + + + +Jifunze jinsi ya kuendeleza Ethereum kwa kutumia lugha ya programu ya Delphi + + + +Tumia Ethereum kuunda programu zilizogatuliwa (au "dapps") zinazotumia manufaa ya sarafu fiche na teknolojia ya kiambajengo. Dapp hizi zinaweza kuaminika, kumaanisha kwamba pindi tu zitakapotumwa Ethereum, zitatumika kila mara jinsi zilivyoratibiwa. Wanaweza kudhibiti vipengee vya dijitali ili kuunda aina mpya za programu za kifedha. Zinaweza kugatuliwa, kumaanisha kuwa hakuna huluki moja au mtu anayezidhibiti na karibu haiwezekani kuzidhibiti. + +Unda programu zilizogatuliwa juu ya Ethereum na uwasiliane na mikataba mahiri kwa kutumia lugha ya programu ya Delphi! + +## Kuanza na mikataba-erevu na lugha ya Solidity {#getting-started-with-smart-contracts-and-the-solidity-language} + +**Chukua hatua zako za kwanza ili kuunganisha Delphi na Ethereum** + +Je, unahitaji primer ya msingi zaidi kwanza? Angalia [ethereum.org/learn](/learn/) au [ethereum.org/developers](/developers/). + +- [Mnyororo wa bloku Umefafanuliwa](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [Kuelewa Mikataba-erevu](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Andika Mkataba-erevu wako wa Kwanza](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Jifunze Jinsi ya Kuandaa na Kupeleka Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) + +## Marejeleo na viungo kwa wanaoanza {#beginner-references-and-links} + +**Kuanzisha maktaba ya Delphereum** + +- [Delphereum ni nini?](https://github.com/svanas/delphereum/blob/master/README.md) +- [Kuunganisha Delphi na mnyororo wa bloku wa karibu (kwenye kumbukumbu)](https://medium.com/@svanas/connecting-delphi-to-a-local-in-memory-blockchain-9a1512d6c5b0) +- [Kuunganisha Delphi na Mtandao Mkuu wa Ethereum](https://medium.com/@svanas/connecting-delphi-to-the-ethereum-main-net-5faf1feffd83) +- [Kuunganisha Delphi na Mikataba-erevu](https://medium.com/@svanas/connecting-delphi-to-smart-contracts-3146b12803a1) + +**Je, unataka kuruka usanidi kwa sasa, na urukie moja kwa moja kwenye sampuli?** + +- [Mkataba-erevu wa dakika 3 na Delphi - Sehemu ya 1](https://medium.com/@svanas/a-3-minute-smart-contract-and-delphi-61d998571d) +- [Mkataba-erevu wa dakika 3 na Delphi - Sehemu ya 2](https://medium.com/@svanas/a-3-minute-smart-contract-and-delphi-part-2-446925faa47b) + +## Makala za wastani {#intermediate-articles} + +- [Kuzalisha sahihi ya ujumbe uliosainiwa na Ethereum katika Delphi](https://medium.com/@svanas/generating-an-ethereum-signed-message-signature-in-delphi-75661ce5031b) +- [Kuhamisha ether kwa kutumia Delphi](https://medium.com/@svanas/transferring-ether-with-delphi-b5f24b1a98a4) +- [Kuhamisha tokeni za ERC-20 kwa kutumia Delphi](https://medium.com/@svanas/transferring-erc-20-tokens-with-delphi-bb44c05b295d) + +## Mifumo ya juu ya matumizi {#advanced-use-patterns} + +- [Delphi na Huduma ya Majina ya Ethereum (ENS)](https://medium.com/@svanas/delphi-and-ethereum-name-service-ens-4443cd278af7) +- [QuikNode, Ethereum na Delphi](https://medium.com/@svanas/quiknode-ethereum-and-delphi-f7bfc9671c23) +- [Delphi na Msitu Giza wa Ethereum](https://svanas.medium.com/delphi-and-the-ethereum-dark-forest-5b430da3ad93) +- [Badilisha tokeni moja na nyingine katika Delphi](https://svanas.medium.com/swap-one-token-for-another-in-delphi-bcb999c47f7) + +Je, unatafuta rasilimali zaidi? Angalia [ethereum.org/developers](/developers/). diff --git a/public/content/translations/sw/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/sw/developers/docs/programming-languages/dot-net/index.md new file mode 100644 index 00000000000..0a50b6b1466 --- /dev/null +++ b/public/content/translations/sw/developers/docs/programming-languages/dot-net/index.md @@ -0,0 +1,86 @@ +--- +title: Ethereum kwa wasanidi programu wa .NET +description: Jifunze jinsi ya kuendeleza Ethereum kwa kutumia miradi inayotegemea .NET na zana +lang: sw +incomplete: true +--- + +Jifunze jinsi ya kuendeleza Ethereum kwa kutumia miradi inayotegemea .NET na zana + +Tumia Ethereum kuunda programu zilizogatuliwa (au "dapps") zinazotumia manufaa ya sarafu fiche na teknolojia ya kiambajengo. Dapp hizi zinaweza kuaminika, kumaanisha kwamba pindi tu zitakapotumwa Ethereum, zitatumika kila mara jinsi zilivyoratibiwa. Wanaweza kudhibiti vipengee vya dijitali ili kuunda aina mpya za programu za kifedha. Zinaweza kugatuliwa, kumaanisha kuwa hakuna huluki moja au mtu anayezidhibiti na karibu haiwezekani kuzidhibiti. + +Tengeneza mifumo iliyotawanywa juu ya Ethereum na uingiliane na mikataba-erevu kwa kutumia zana na lugha kutoka kwenye mrundikano wa teknolojia ya Microsoft - Inayotumika na C#, # Visual Basic .NET, F#, kwenye zana kama vile VSCode na Visual Studio, kwenye .NET Framework/.NET Core/.NET Standard. Sambaza mnyororo wa bloku wa Ethereum kwenye Azure kwa kutumia Microsoft Azure Blockchain ndani ya dakika. Leta upendo wa .NET kwa Ethereum! + +## Kuanza na mikataba-erevu na lugha ya Solidity {#getting-started-with-smart-contracts-and-the-solidity-language} + +**Chukua hatua zako za kwanza za kuunganisha .NET na Ethereum** + +Je, unahitaji primer ya msingi zaidi kwanza? Angalia [ethereum.org/learn](/learn/) au [ethereum.org/developers](/developers/). + +- [Mnyororo wa bloku Umefafanuliwa](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [Kuelewa Mikataba-erevu](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Andika Mkataba-erevu wako wa Kwanza](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Jifunze Jinsi ya Kuandaa na Kupeleka Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) + +## Marejeleo na viungo kwa wanaoanza {#beginner-references-and-links} + +**Utangulizi wa maktaba ya Nethereum na VS Code Solidity** + +- [Nethereum, Kuanza](https://docs.nethereum.com/en/latest/getting-started/) +- [Kusakinisha VS Code Solidity](https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity) +- [Mtiririko wa Kazi wa Msanidi Programu wa .NET kwa ajili ya Kuunda na Kuita Mikataba-erevu ya Ethereum](https://medium.com/coinmonks/a-net-developers-workflow-for-creating-and-calling-ethereum-smart-contracts-44714f191db2) +- [Ujumuishaji wa mikataba-erevu na Nethereum](https://kauri.io/#collections/Getting%20Started/smart-contracts-integration-with-nethereum/#smart-contracts-integration-with-nethereumm) +- [Kuunganisha .NET na Mikataba-erevu ya Mnyororo wa Bloku wa Ethereum na Nethereum](https://medium.com/my-blockchain-development-daily-journey/interfacing-net-and-ethereum-blockchain-smart-contracts-with-nethereum-2fa3729ac933), pia katika [中文版](https://medium.com/my-blockchain-development-daily-journey/%E4%BD%BF%E7%94%A8nethereum%E9%80%A3%E6%8E%A5-net%E5%92%8C%E4%BB%A5%E5%A4%AA%E7%B6%B2%E5%8D%80%E5%A1%8A%E9%8F%88%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-4a96d35ad1e1) +- [Nethereum - Maktaba ya chanzo-wazi ya ujumuishaji wa .NET kwa ajili ya mnyororo wa bloku](https://kauri.io/#collections/a%20hackathon%20survival%20guide/nethereum-an-open-source-.net-integration-library/) +- [Kuandika Miamala ya Ethereum kwenye Hifadhidata ya SQL kwa kutumia Nethereum](https://medium.com/coinmonks/writing-ethereum-transactions-to-sql-database-using-nethereum-fd94e0e4fa36) +- [Angalia jinsi ya kusambaza kwa urahisi mikataba-erevu ya Ethereum kwa kutumia C# na VisualStudio](https://koukia.ca/deploy-ethereum-smart-contracts-using-c-and-visualstudio-5be188ae928c) + +**Je, unataka kuruka usanidi kwa sasa, na urukie moja kwa moja kwenye sampuli?** + +- [Playground](http://playground.nethereum.com/) - Ingiliana na Ethereum na jifunze jinsi ya kutumia Nethereum kupitia kivinjari. + - Hoja Salio la Akaunti [C#](http://playground.nethereum.com/csharp/id/1001) [VB.NET](http://playground.nethereum.com/vb/id/2001) + - Hoja Salio la Mkataba-erevu wa ERC20 [C#](http://playground.nethereum.com/csharp/id/1005) [VB.NET](http://playground.nethereum.com/vb/id/2004) + - Hamisha ether kwenye Akaunti [C#](http://playground.nethereum.com/csharp/id/1003) [VB.NET](http://playground.nethereum.com/vb/id/2003) + - ... Na zaidi! + +## Makala za wastani {#intermediate-articles} + +- [Kitabu cha Kazi/Orodha ya Sampuli ya Nethereum](http://docs.nethereum.com/en/latest/Nethereum.Workbooks/docs/) +- [Sambaza Testchains zako za Maendeleo](https://github.com/Nethereum/Testchains) +- [Programu-jalizi ya Codegen ya VSCode kwa ajili ya Solidity](https://docs.nethereum.com/en/latest/nethereum-codegen-vscodesolidity/) +- [Unity na Ethereum: Kwa nini na Jinsi gani](https://www.raywenderlich.com/5509-unity-and-ethereum-why-and-how) +- [Unda API ya Wavuti ya ASP.NET Core kwa ajili ya mfumo mtawanyo wa kimamlaka ya Ethereum](https://tech-mint.com/blockchain/create-asp-net-core-web-api-for-ethereum-dapps/) +- [Kutumia Nethereum Web3 kutekeleza Mfumo wa Ufuatiliaji wa Mnyororo wa Ugavi](http://blog.pomiager.com/post/using-nethereum-web3-to-implement-a-supply-chain-traking-system4) +- [Uchakataji wa Bloku za Nethereum](https://nethereum.readthedocs.io/en/latest/nethereum-block-processing-detail/), na [sampuli ya Playground ya C#](http://playground.nethereum.com/csharp/id/1025) +- [Utiririshaji wa Websocket wa Nethereum](https://nethereum.readthedocs.io/en/latest/nethereum-subscriptions-streaming/) +- [Kaleido na Nethereum](https://kaleido.io/kaleido-and-nethereum/) +- [Quorum na Nethereum](https://github.com/Nethereum/Nethereum/blob/master/src/Nethereum.Quorum/README.md) + +## Mifumo ya juu ya matumizi {#advanced-use-patterns} + +- [Azure Key Vault na Nethereum](https://github.com/Azure-Samples/bc-community-samples/tree/master/akv-nethereum) +- [Nethereum.DappHybrid](https://github.com/Nethereum/Nethereum.DappHybrid) +- [Usanifu wa marejeleo wa backend ya Ujo Nethereum](https://docs.nethereum.com/en/latest/nethereum-ujo-backend-sample/) + +## Miradi ya .NET, zana na mambo mengine ya kufurahisha {#dot-net-projects-tools-and-other-fun-stuff} + +- [Nethereum Playground](http://playground.nethereum.com/) - _Kusanya, unda, na endesha vijisehemu vya msimbo vya Nethereum kwenye kivinjari_ +- [Nethereum Codegen Blazor](https://github.com/Nethereum/Nethereum.CodeGen.Blazor) - _Nethereum codegen na UI katika Blazor_ +- [Nethereum Blazor](https://github.com/Nethereum/NethereumBlazor) - _Kichunguzi chepesi cha mnyororo wa bloku cha .NET Wasm SPA na mkoba rahisi_ +- [Injini ya Kanuni za Biashara ya Wonka](https://docs.nethereum.com/en/latest/wonka/) - _Injini ya kanuni za biashara (kwa jukwaa la .NET na jukwaa la Ethereum) ambayo inaendeshwa na metadata_ +- [Nethermind](https://github.com/NethermindEth/nethermind) - _Mteja wa Ethereum wa .NET Core kwa ajili ya Linux, Windows, MacOS_ +- [eth-utils](https://github.com/ethereum/eth-utils/) - _kazi za matumizi kwa ajili ya kufanya kazi na misimbo-msingi inayohusiana na Ethereum_ +- [TestChains](https://github.com/Nethereum/TestChains) - _.NET devchains zilizosanidiwa awali kwa ajili ya majibu ya haraka (PoA)_ + +Je, unatafuta rasilimali zaidi? Angalia [ethereum.org/developers](/developers/). + +## Wachangiaji wa jumuiya ya .NET {#dot-net-community-contributors} + +Katika Nethereum, mara nyingi huwa tunabarizi kwenye [Gitter](https://gitter.im/Nethereum/Nethereum) ambapo kila mtu anakaribishwa kuuliza/kujibu maswali, kupata usaidizi, au kupumzika tu. Jisikie huru kufanya PR au kufungua suala kwenye [hazina ya GitHub ya Nethereum](https://github.com/Nethereum), au vinjari tu miradi mingi ya kando/sampuli tuliyo nayo. Unaweza pia kutupata kwenye [Discord](https://discord.gg/jQPrR58FxX)! + +Ikiwa wewe ni mgeni kwenye Nethermind na unahitaji usaidizi ili kuanza, jiunge na [Discord](http://discord.gg/PaCMRFdvWT) yetu. Wasanidi wetu wako tayari kujibu maswali yako. Usisite kufungua PR au kuibua masuala yoyote kwenye [hazina ya GitHub ya Nethermind](https://github.com/NethermindEth/nethermind). + +## Orodha zingine zilizokusanywa {#other-aggregated-lists} + +[Tovuti Rasmi ya Nethereum](https://nethereum.com/) +[Tovuti Rasmi ya Nethermind](https://nethermind.io/) diff --git a/public/content/translations/sw/developers/docs/programming-languages/elixir/index.md b/public/content/translations/sw/developers/docs/programming-languages/elixir/index.md new file mode 100644 index 00000000000..8e3b254ea50 --- /dev/null +++ b/public/content/translations/sw/developers/docs/programming-languages/elixir/index.md @@ -0,0 +1,55 @@ +--- +title: Ethereum kwa Wasanidi wa Elixir +description: Jifunze jinsi ya kusanidi kwa Ethereum ukitumia miradi na zana zinazotumia Elixir. +lang: sw +incomplete: false +--- + +Jifunze jinsi ya kusanidi kwa Ethereum ukitumia miradi na zana zinazotumia Elixir. + +Tumia Ethereum kuunda programu zilizogatuliwa (au "dapps") zinazotumia manufaa ya sarafu fiche na teknolojia ya kiambajengo. Hizi mfumo mtawanyo wa kimamlaka zinaweza kuwa za bila kuaminiana, ikimaanisha kwamba pindi tu zinapowekwa kwenye Ethereum, zitaendeshwa daima kama zilivyopangwa. Wanaweza kudhibiti mali za kidijitali ili kuunda aina mpya za programu za kifedha. Zinaweza kugatuliwa, kumaanisha kuwa hakuna huluki moja au mtu anayezidhibiti na karibu haiwezekani kuzidhibiti. + +## Kuanza na mikataba-erevu na lugha ya Solidity {#getting-started-with-smart-contracts-and-solidity} + +**Chukua hatua zako za kwanza za kuunganisha Elixir na Ethereum** + +Je, unahitaji primer ya msingi zaidi kwanza? Angalia [ethereum.org/learn](/learn/) au [ethereum.org/developers](/developers/). + +- [Mnyororo wa bloku Umefafanuliwa](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [Kuelewa Mikataba-erevu](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Andika Mkataba-erevu wako wa Kwanza](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Jifunze Jinsi ya Kuandaa na Kupeleka Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) + +## Makala za wanaoanza {#beginner-articles} + +- [Hatimaye kuelewa akaunti za Ethereum](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) +- [Ethers — Maktaba ya kiwango cha juu ya Ethereum Web3 kwa Elixir](https://medium.com/@alisinabh/announcing-ethers-a-first-class-ethereum-web3-library-for-elixir-1d64e9409122) + +## Makala za wastani {#intermediate-articles} + +- [Jinsi ya kutia saini miamala ghafi ya mkataba wa Ethereum kwa kutumia Elixir](https://kohlerjp.medium.com/how-to-sign-raw-ethereum-contract-transactions-with-elixir-f8822bcc813b) +- [Mikataba-erevu ya Ethereum na Elixir](https://medium.com/agile-alpha/ethereum-smart-contracts-and-elixir-c7c4b239ddb4) + +## Miradi na zana za Elixir {#elixir-projects-and-tools} + +### Inayotumika {#active} + +- [block_keys](https://github.com/ExWeb3/block_keys) - _Utekelezaji wa BIP32 & BIP44 katika Elixir (Madaraja ya Akaunti Nyingi kwa ajili ya Mikoba ya Kudumu)_ +- [ethereumex](https://github.com/mana-ethereum/ethereumex) - _Mteja wa Elixir JSON-RPC kwa blockchain ya Ethereum_ +- [ethers](https://github.com/ExWeb3/elixir_ethers) - _Maktaba kina ya Web3 kwa ajili ya kuingiliana na mikataba-erevu kwenye Ethereum kwa kutumia Elixir_ +- [ethers_kms](https://github.com/ExWeb3/elixir_ethers_kms) - _Maktaba ya kutia saini ya KMS kwa Ethers (tia saini miamala kwa AWS KMS)_ +- [ex_abi](https://github.com/poanetwork/ex_abi) - _Utekelezaji wa kichanganuzi/kisimbuzi/kisimbaji wa Ethereum ABI katika Elixir_ +- [ex_keccak](https://github.com/ExWeb3/ex_keccak) - _Maktaba ya Elixir ya kukokotoa hashi za Keccak SHA3-256 kwa kutumia kreti ya Rust ya tiny-keccak iliyoundwa na NIF_ +- [ex_rlp](https://github.com/mana-ethereum/ex_rlp) - _Utekelezaji wa Elixir wa usimbaji wa RLP (Kiambishi awali cha Urefu wa Kujirudia) wa Ethereum_ + +### Imehifadhiwa kwenye kumbukumbu / Haitunzwi tena {#archived--no-longer-maintained} + +- [eth](https://hex.pm/packages/eth) - _Huduma za Ethereum kwa Elixir_ +- [exw3](https://github.com/hswick/exw3) - _Mteja wa RPC wa Ethereum wa kiwango cha juu kwa Elixir_ +- [mana](https://github.com/mana-ethereum/mana) - _Utekelezaji kamili wa nodi ya Ethereum ulioandikwa katika Elixir_ + +Je, unatafuta rasilimali zaidi? Angalia [nyumbani kwa Wasanidi wetu](/developers/). + +## Wachangiaji wa jumuiya ya Elixir {#elixir-community-contributors} + +[Chaneli ya #ethereum ya Slack ya Elixir](https://elixir-lang.slack.com/archives/C5RPZ3RJL) ni mwenyeji wa jumuiya inayokua kwa kasi na ni rasilimali maalum kwa majadiliano kuhusu miradi yoyote iliyo hapo juu na mada zinazohusiana. diff --git a/public/content/translations/sw/developers/docs/programming-languages/golang/index.md b/public/content/translations/sw/developers/docs/programming-languages/golang/index.md new file mode 100644 index 00000000000..a693af19218 --- /dev/null +++ b/public/content/translations/sw/developers/docs/programming-languages/golang/index.md @@ -0,0 +1,84 @@ +--- +title: Ethereum kwa watengenezaji wa Go +description: Jifunze jinsi ya kutengeneza kwa ajili ya Ethereum kwa kutumia miradi inayotegemea Go na zana +lang: sw +incomplete: true +--- + +Jifunze jinsi ya kutengeneza kwa ajili ya Ethereum kwa kutumia miradi inayotegemea Go na zana + +Tumia Ethereum kuunda mifumo iliyotawanywa (au "mfumo mtawanyo wa kimamlaka"). Dapp hizi zinaweza kuaminika, kumaanisha kwamba pindi tu zitakapotumwa Ethereum, zitatumika kila mara jinsi zilivyoratibiwa. Zimegatuliwa, kumaanisha kwamba zinaendeshwa kwenye mtandao wa rika-kwa-rika na hakuna sehemu moja ya kushindwa. Hakuna huluki moja au mtu anayezidhibiti na ni karibu haiwezekani kuzidhibiti. Wanaweza kudhibiti mali za kidijitali ili kuunda aina mpya za programu. + +## Kuanza na mikataba-erevu na lugha ya Solidity {#getting-started-with-smart-contracts-and-solidity} + +**Chukua hatua zako za kwanza za kuunganisha Go na Ethereum** + +Je, unahitaji primer ya msingi zaidi kwanza? Angalia [ethereum.org/learn](/learn/) au [ethereum.org/developers](/developers/). + +- [Mnyororo wa bloku Umefafanuliwa](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [Kuelewa Mikataba-erevu](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Andika Mkataba-erevu wako wa Kwanza](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Jifunze Jinsi ya Kuandaa na Kupeleka Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) +- [Mafunzo ya Mkataba](https://github.com/ethereum/go-ethereum/wiki/Contract-Tutorial) + +## Makala na vitabu vya wanaoanza {#beginner-articles-and-books} + +- [Kuanza na Geth](https://medium.com/@tzhenghao/getting-started-with-geth-c1a30b8d6458) +- [Tumia Golang Kuunganisha na Ethereum](https://www.youtube.com/watch?v=-7uChuO_VzM) +- [Sambaza Mikataba-erevu ya Ethereum kwa kutumia Golang](https://www.youtube.com/watch?v=pytGqQmDslE) +- [Mwongozo wa Hatua kwa Hatua wa Kujaribu na Kusambaza Mikataba-erevu ya Ethereum katika Go](https://hackernoon.com/a-step-by-step-guide-to-testing-and-deploying-ethereum-smart-contracts-in-go-9fc34b178d78) +- [Kitabu cha Kielektroniki: Utengenezaji wa Ethereum kwa kutumia Go](https://goethereumbook.org/) - _Tengeneza programu za Ethereum kwa kutumia Go_ + +## Makala na nyaraka za kati {#intermediate-articles-and-docs} + +- [Nyaraka za Go Ethereum](https://geth.ethereum.org/docs/) - _Nyaraka za Golang rasmi ya Ethereum_ +- [Mwongozo wa Mtayarishaji Programu wa Erigon](https://github.com/ledgerwatch/erigon/blob/devel/docs/programmers_guide/guide.md) - _Mwongozo wenye picha unaojumuisha mti wa hali, uthibitisho-anuwai, na uchakataji wa miamala_ +- [Erigon na Ethereum Isiyo na Hali](https://youtu.be/3-Mn7OckSus?t=394) - _Mkutano wa Jumuiya ya Ethereum wa 2020 (EthCC 3)_ +- [Erigon: kuboresha wateja wa Ethereum](https://www.youtube.com/watch?v=CSpc1vZQW2Q) - _2018 Devcon 4_ +- [Go Ethereum GoDoc](https://godoc.org/github.com/ethereum/go-ethereum) +- [Kuunda mfumo mtawanyo wa kimamlaka katika Go na Geth](https://kauri.io/#collections/A%20Hackathon%20Survival%20Guide/creating-a-dapp-in-go-with-geth/) +- [Fanya kazi na Mtandao wa Kibinafsi wa Ethereum kwa kutumia Golang na Geth](https://myhsts.org/tutorial-learn-how-to-work-with-ethereum-private-network-with-golang-with-geth.php) +- [Kujaribu vipimo vya mikataba ya Solidity kwenye Ethereum kwa kutumia Go](https://medium.com/coinmonks/unit-testing-solidity-contracts-on-ethereum-with-go-3cc924091281) +- [Rejea ya haraka ya kutumia Geth kama maktaba](https://medium.com/coinmonks/web3-go-part-1-31c68c68e20e) + +## Mifumo ya juu ya matumizi {#advanced-use-patterns} + +- [Mwisho wa Nyuma Ulioigwa wa GETH](https://kauri.io/#collections/An%20ethereum%20test%20toolkit%20in%20Go/the-geth-simulated-backend/#_top) +- [Programu za Mnyororo-wa-bloku-kama-Huduma Zinazotumia Ethereum na Quorum](https://blockchain.dcwebmakers.com/blockchain-as-a-service-apps-using-ethereum-and-quorum.html) +- [Hifadhi Iliyosambazwa ya IPFS na Swarm katika Programu za Mnyororo wa bloku wa Ethereum](https://blockchain.dcwebmakers.com/work-with-distributed-storage-ipfs-and-swarm-in-ethereum.html) +- [Wateja wa Simu: Maktaba na Nodi za Inproc za Ethereum](https://github.com/ethereum/go-ethereum/wiki/Mobile-Clients:-Libraries-and-Inproc-Ethereum-Nodes) +- [mfumo mtawanyo wa kimamlaka Asilia: viunganishi vya Go kwa mikataba ya Ethereum](https://github.com/ethereum/go-ethereum/wiki/Native-DApps:-Go-bindings-to-Ethereum-contracts) + +## Miradi na zana za Go {#go-projects-and-tools} + +- [Geth / Go Ethereum](https://github.com/ethereum/go-ethereum) - _Utekelezaji rasmi wa Go wa itifaki ya Ethereum_ +- [Uchambuzi wa Msimbo wa Go Ethereum](https://github.com/ZtesoftCS/go-ethereum-code-analysis) - _Mapitio na uchambuzi wa msimbo chanzo wa Go Ethereum_ +- [Erigon](https://github.com/ledgerwatch/erigon) - _Toleo la haraka zaidi la Go Ethereum, lenye mwelekeo kwenye nodi za kumbukumbu_ +- [Golem](https://github.com/golemfactory/golem) - _Golem inaunda soko la kimataifa la nguvu za kompyuta_ +- [Quorum](https://github.com/jpmorganchase/quorum) - _Utekelezaji wenye ruhusa wa Ethereum unaosaidia faragha ya data_ +- [Prysm](https://github.com/prysmaticlabs/prysm) - _Utekelezaji wa Go wa Ethereum 'Serenity' 2.0_ +- [Eth Tweet](https://github.com/yep/eth-tweet) - _Twitter Iliyogatuliwa: Huduma ya uandishi wa blogu ndogo inayoendeshwa kwenye mnyororo wa bloku wa Ethereum_ +- [Plasma MVP Golang](https://github.com/kyokan/plasma) — _Utekelezaji na upanuzi wa Golang wa vipimo vya Njozi Inayowezekana Kiwango cha Chini_ +- [Bwawa la Uchimbaji la Open Ethereum](https://github.com/sammy007/open-ethereum-pool) - _Bwawa la uchimbaji la Ethereum la chanzo huria_ +- [Mkoba wa Ethereum HD](https://github.com/miguelmota/go-ethereum-hdwallet) - _Matoleo ya Mkoba wa Ethereum HD katika Go_ +- [Multi Geth](https://github.com/multi-geth/multi-geth) - _Usaidizi kwa aina nyingi za mitandao ya Ethereum_ +- [Mteja Mwepesi wa Geth](https://github.com/zsfelfoldi/go-ethereum/wiki/Geth-Light-Client) - _Utekelezaji wa Geth wa Itifaki Ndogo ya Ethereum Nyepesi_ +- [SDK ya Ethereum Golang](https://github.com/everFinance/goether) - _Utekelezaji rahisi wa mkoba wa Ethereum na huduma katika Golang_ +- [SDK ya Covalent Golang](https://github.com/covalenthq/covalent-api-sdk-go) - _Ufikiaji bora wa data ya mnyororo wa bloku kupitia SDK ya Go kwa minyororo ya bloku 200+_ + +Je, unatafuta rasilimali zaidi? Angalia [ethereum.org/developers](/developers/) + +## Wachangiaji wa jumuiya ya Go {#go-community-contributors} + +- [Geth Discord](https://discordapp.com/invite/nthXNEv) +- [Geth Gist](https://gitter.im/ethereum/go-ethereum) +- [Gophers Slack](https://invite.slack.golangbridge.org/) - [kituo cha #ethereum](https://gophers.slack.com/messages/C9HP1S9V2) +- [StackExchange - Ethereum](https://ethereum.stackexchange.com/) +- [Multi Geth Gitter](https://gitter.im/ethoxy/multi-geth) +- [Ethereum Gitter](https://gitter.im/ethereum/home) +- [Mteja Mwepesi wa Geth Gitter](https://gitter.im/ethereum/light-client) + +## Orodha zingine zilizokusanywa {#other-aggregated-lists} + +- [Awesome Ethereum](https://github.com/btomashvili/awesome-ethereum) +- [Consensys: Orodha Kamili ya Zana za Wasanidi Programu wa Ethereum](https://media.consensys.net/an-definitive-list-of-ethereum-developer-tools-2159ce865974) | [Chanzo cha GitHub](https://github.com/ConsenSys/ethereum-developer-tools-list) diff --git a/public/content/translations/sw/developers/docs/programming-languages/index.md b/public/content/translations/sw/developers/docs/programming-languages/index.md new file mode 100644 index 00000000000..3e8cb5c27ae --- /dev/null +++ b/public/content/translations/sw/developers/docs/programming-languages/index.md @@ -0,0 +1,33 @@ +--- +title: Lugha za programu +description: Gundua rasilimali za usanidi wa Ethereum kwa lugha mbalimbali za programu ikiwa ni pamoja na JavaScript, Python, Go, Rust, na zaidi. +lang: sw +--- + +Dhana potofu ya kawaida ni kwamba wasanidi programu lazima waandike [mikataba-erevu](/developers/docs/smart-contracts/) ili kujenga kwenye Ethereum. Huu ni uongo. +Moja ya mambo mazuri kuhusu mtandao na jumuiya ya Ethereum ni kwamba unaweza [kushiriki](/community/) katika takriban lugha yoyote ya programu. + +Ethereum na jumuiya yake wanakumbatia chanzo huria. Unaweza kupata miradi ya jumuiya - utekelezaji wa mteja, API, mifumo ya maendeleo, zana za majaribio - katika anuwai ya lugha. + +## Chagua lugha yako {#data} + +Chagua lugha yako ya upangaji ya chaguo ili kupata miradi, rasilimali na jumuiya ya kufikirika: + +- [Ethereum kwa wasanidi programu wa Dart](/developers/docs/programming-languages/dart/) +- [Ethereum kwa wasanidi programu wa Delphi](/developers/docs/programming-languages/delphi/) +- [Ethereum kwa wasanidi programu wa .NET](/developers/docs/programming-languages/dot-net/) +- [Ethereum kwa wasanidi programu wa Elixir](/developers/docs/programming-languages/elixir/) +- [Ethereum kwa wasanidi programu wa Go](/developers/docs/programming-languages/golang/) +- [Ethereum kwa wasanidi programu wa Java](/developers/docs/programming-languages/java/) +- [Ethereum kwa wasanidi programu wa JavaScript](/developers/docs/programming-languages/javascript/) +- [Ethereum kwa wasanidi programu wa Python](/developers/docs/programming-languages/python/) +- [Ethereum kwa wasanidi programu wa Ruby](/developers/docs/programming-languages/ruby/) +- [Ethereum kwa wasanidi programu wa Rust](/developers/docs/programming-languages/rust/) + +### Vipi ikiwa lugha yangu haitumiki {#other-lang} + +Ikiwa unataka kuunganisha kwa rasilimali au kuelekeza kwenye jumuiya pepe kwa lugha ya ziada ya programu unaweza kuomba ukurasa mpya kwa [kufungua suala](https://github.com/ethereum/ethereum-org-website/issues/new/choose). + +Ikiwa unataka tu kuandika msimbo ili kuingiliana na mnyororo wa bloku kwa kutumia lugha ambayo haitumiki kwa sasa +unaweza kutumia [kiolesura cha JSON-RPC](/developers/docs/apis/json-rpc/) kuunganisha na mtandao wa Ethereum. Upangaji wowote +lugha inayoweza kutumia TCP/IP inaweza kutumia kiolesura hiki. diff --git a/public/content/translations/sw/developers/docs/programming-languages/java/index.md b/public/content/translations/sw/developers/docs/programming-languages/java/index.md new file mode 100644 index 00000000000..ff8ef56147d --- /dev/null +++ b/public/content/translations/sw/developers/docs/programming-languages/java/index.md @@ -0,0 +1,64 @@ +--- +title: Ethereum kwa wajenzi wa Java +description: Jifunze jinsi ya kutengeneza Ethereum kwa kutumia miradi na zana zinazotegemea Java +lang: sw +incomplete: true +--- + +Jifunze jinsi ya kutengeneza Ethereum kwa kutumia miradi na zana zinazotegemea Java + +Tumia Ethereum kuunda programu zilizogatuliwa (au "dapps") zinazotumia manufaa ya sarafu fiche na teknolojia ya kiambajengo. Dapp hizi zinaweza kuaminika, kumaanisha kwamba pindi tu zitakapotumwa Ethereum, zitatumika kila mara jinsi zilivyoratibiwa. Wanaweza kudhibiti vipengee vya dijitali ili kuunda aina mpya za programu za kifedha. Zinaweza kugatuliwa, kumaanisha kuwa hakuna huluki moja au mtu anayezidhibiti na karibu haiwezekani kuzidhibiti. + +## Kuanza na mikataba-erevu na lugha ya Solidity {#getting-started-with-smart-contracts-and-solidity} + +**Chukua hatua zako za kwanza za kuunganisha Java na Ethereum** + +Je, unahitaji primer ya msingi zaidi kwanza? Angalia [ethereum.org/learn](/learn/) au [ethereum.org/developers.](/developers/) + +- [Mnyororo wa bloku Umefafanuliwa](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [Kuelewa Mikataba-erevu](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Andika Mkataba-erevu wako wa Kwanza](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Jifunze Jinsi ya Kuandaa na Kupeleka Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) + +## Kufanya kazi na wateja wa Ethereum {#working-with-ethereum-clients} + +Jifunze jinsi ya kutumia [Web3J](https://github.com/web3j/web3j) na Hyperledger Besu, Wateja wawili wakuu wa Java Ethereum + +- [Kuunganisha kwa mteja wa Ethereum kwa kutumia Java, Eclipse, na Web3J](https://kauri.io/article/b9eb647c47a546bc95693acc0be72546/connecting-to-an-ethereum-client-with-java-eclipse-and-web3j) +- [Dhibiti akaunti ya Ethereum kwa kutumia Java na Web3j](https://kauri.io/article/925d923e12c543da9a0a3e617be963b4/manage-an-ethereum-account-with-java-and-web3j) +- [Tengeneza Wrapper ya Java kutoka kwa Mkataba-erevu wako](https://kauri.io/article/84475132317d4d6a84a2c42eb9348e4b/generate-a-java-wrapper-from-your-smart-contract) +- [Kuwasiliana na Mkataba-erevu wa Ethereum](https://kauri.io/article/14dc434d11ef4ee18bf7d57f079e246e/interacting-with-an-ethereum-smart-contract-in-java) +- [Kusikiliza Matukio ya Mkataba-erevu wa Ethereum](https://kauri.io/article/760f495423db42f988d17b8c145b0874/listening-for-ethereum-smart-contract-events-in-java) +- [Kutumia Besu (Pantheon), Mteja wa Java Ethereum na Linux](https://kauri.io/article/276dd27f1458443295eea58403fd6965/using-pantheon-the-java-ethereum-client-with-linux) +- [Kuendesha Nodi ya Hyperledger Besu (Pantheon) katika Majaribio ya Ujumuishaji wa Java](https://kauri.io/article/7dc3ecc391e54f7b8cbf4e5fa0caf780/running-a-pantheon-node-in-java-integration-tests) +- [Karatasi ya Muhtasari wa Web3j](https://kauri.io/web3j-cheat-sheet-\(java-ethereum\)/5dfa1ea941ac3d0001ce1d90/c) + +Jifunze jinsi ya kutumia [ethers-kt](https://github.com/Kr1ptal/ethers-kt), maktaba ya async ya Kotlin yenye utendaji wa juu ya kuingiliana na minyororo ya bloku inayotegemea EVM. Kulenga JVM na majukwaa ya Android. + +- [Hamisha tokeni za ERC20](https://github.com/Kr1ptal/ethers-kt/blob/master/examples/src/main/kotlin/io/ethers/examples/abi/TransferERC20.kt) +- [Ubadilishaji wa UniswapV2 na usikilizaji wa matukio](https://github.com/Kr1ptal/ethers-kt/blob/master/examples/src/main/kotlin/io/ethers/examples/tokenswapwitheventlistening/TokenSwapWithEventListening.kt) +- [Kifuatiliaji cha salio la ETH / ERC20](https://github.com/Kr1ptal/ethers-kt/blob/master/examples/src/main/kotlin/io/ethers/examples/balancetracker/BalanceTracker.kt) + +## Makala za wastani {#intermediate-articles} + +- [Kudhibiti hifadhi katika programu ya Java kwa kutumia IPFS](https://kauri.io/article/3e8494f4f56f48c4bb77f1f925c6d926/managing-storage-in-a-java-application-with-ipfs) +- [Dhibiti tokeni za ERC20 katika Java kwa kutumia Web3j](https://kauri.io/article/d13e911bbf624108b1d5718175a5e0a0/manage-erc20-tokens-in-java-with-web3j) +- [Wasimamizi wa Miamala wa Web3j](https://kauri.io/article/4cb780bb4d0846438d11885a25b6d7e7/web3j-transaction-managers) + +## Mifumo ya juu ya matumizi {#advanced-use-patterns} + +- [Kutumia Eventeum kujenga kache ya data ya mkataba-erevu wa Java](https://kauri.io/article/fe81ee9612eb4e5a9ab72790ef24283d/using-eventeum-to-build-a-java-smart-contract-data-cache) + +## Miradi na zana za Java {#java-projects-and-tools} + +- [Web3J (Maktaba ya Kuingiliana na Wateja wa Ethereum)](https://github.com/web3j/web3j) +- [ethers-kt (Maktaba ya async ya Kotlin/Java/Android yenye utendaji wa juu kwa minyororo ya bloku inayotegemea EVM.)](https://github.com/Kr1ptal/ethers-kt) +- [Eventeum (Msikilizaji wa Matukio)](https://github.com/ConsenSys/eventeum) +- [Mahuta (Zana za Wasanidi Programu za IPFS)](https://github.com/ConsenSys/mahuta) + +Je, unatafuta rasilimali zaidi? Angalia [ethereum.org/developers.](/developers/) + +## Wachangiaji wa jumuiya ya Java {#java-community-contributors} + +- [IO Builders](https://io.builders) +- [Kauri](https://kauri.io) diff --git a/public/content/translations/sw/developers/docs/programming-languages/javascript/index.md b/public/content/translations/sw/developers/docs/programming-languages/javascript/index.md new file mode 100644 index 00000000000..4ebbf4092bd --- /dev/null +++ b/public/content/translations/sw/developers/docs/programming-languages/javascript/index.md @@ -0,0 +1,72 @@ +--- +title: Ethereum kwa wajenzi wa JavaScript +description: Jifunze jinsi ya kutengeneza Ethereum kwa kutumia miradi na zana zinazotegemea JavaScript. +lang: sw +--- + +JavaScript ni kati ya lugha maarufu katika mfumo ikolojia wa Ethereum. Kwa hakika, kuna [timu](https://github.com/ethereumjs) iliyojitolea kuleta kiasi kikubwa cha Ethereum kwenye JavaScript iwezekanavyo. + +Kuna fursa za kuandika JavaScript (au kitu cha karibu) katika [viwango vyote vya mrundikano](/developers/docs/ethereum-stack/). + +## Wasiliana na Ethereum {#interact-with-ethereum} + +### Maktaba za API za JavaScript {#javascript-api-libraries} + +Ikiwa ungependa kuandika JavaScript ili kuuliza maswali kwenye blockchain, kutuma miamala na zaidi, njia rahisi zaidi ya kufanya hivyo ni kutumia [maktaba ya API ya JavaScript](/developers/docs/apis/javascript/). API hizi huruhusu wasanidi programu kuwasiliana kwa urahisi na [nodi katika mtandao wa Ethereum](/developers/docs/nodes-and-clients/). + +Unaweza kutumia maktaba hizi kuingiliana na mikataba mahiri kwenye Ethereum ili uweze kutengeneza dapp ambapo unatumia JavaScript kuingiliana na mikataba iliyokuwepo awali. + +**Angalia** + +- [Web3.js](https://web3js.readthedocs.io) +- [Ethers.js](https://ethers.org) – _inajumuisha utekelezaji wa mkoba wa Ethereum na huduma katika JavaScript na TypeScript._ +- [viem](https://viem.sh) – _Kiolesura cha TypeScript cha Ethereum ambacho hutoa viambajengo vya hali ya chini visivyo na hali kwa ajili ya kuwasiliana na Ethereum._ +- [Drift](https://ryangoree.github.io/drift/) – _maktaba-meta ya TypeScript yenye kache iliyojengewa ndani, ndoano, na dhihaka za majaribio kwa ajili ya usanidi rahisi wa Ethereum katika maktaba za web3._ + +### Mikataba-erevu {#smart-contracts} + +Ikiwa wewe ni msanidi programu wa JavaScript na unataka kuandika mkataba wako mahiri, unaweza kutaka kufahamiana na [Solidity](https://solidity.readthedocs.io). Hii ndiyo lugha mahiri ya mkataba maarufu na inafanana kisintaksia na JavaScript, ambayo inaweza kurahisisha kujifunza. + +Zaidi kuhusu [mikataba mahiri](/developers/docs/smart-contracts/). + +## Elewa itifaki {#understand-the-protocol} + +### Mashine halisi ya Ethereum {#the-ethereum-virtual-machine} + +Kuna utekelezaji wa JavaScript wa [mashine halisi ya Ethereum](/developers/docs/evm/). Inaauni sheria za hivi punde za uma. Sheria za uma hurejelea mabadiliko yaliyofanywa kwa EVM kama matokeo ya uboreshaji uliopangwa. + +Imegawanywa katika vifurushi anuwai vya JavaScript ambavyo unaweza kuangalia ili kuelewa vyema: + +- Akaunti +- Vipande +- Kiambajengo chenyewe +- Miamala +- Na zaidi... + +Hii itakusaidia kuelewa mambo kama vile "muundo wa data wa akaunti ni upi?". + +Ikiwa ungependa kusoma msimbo, JavaScript hii inaweza kuwa njia mbadala nzuri ya kusoma kupitia hati zetu. + +**Angalia EVM** +[`@ethereumjs/evm`](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm) + +### Nodi na wateja {#nodes-and-clients} + +Mteja wa Ethereumjs yuko katika maendeleo amilifu ambayo hukuwezesha kuchunguza jinsi wateja wa Ethereum hufanya kazi katika lugha unayoelewa; JavaScript! + +**Angalia mteja** +[`@ethereumjs/client`](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/client) + +## Miradi mingine {#other-projects} + +Pia kuna mambo mengine mengi yanayoendelea katika ulimwengu wa JavaScript ya Ethereum, ikiwa ni pamoja na: + +- maktaba za huduma za mkoba. +- zana za kuzalisha, kuingiza, na kuhamisha funguo za Ethereum. +- utekelezaji wa `merkle-patricia-tree` – muundo wa data ulioainishwa katika karatasi ya njano ya Ethereum. + +Chunguza chochote kinachokuvutia zaidi kwenye [repo ya EthereumJS](https://github.com/ethereumjs) + +## Masomo zaidi {#further-reading} + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ diff --git a/public/content/translations/sw/developers/docs/programming-languages/python/index.md b/public/content/translations/sw/developers/docs/programming-languages/python/index.md new file mode 100644 index 00000000000..21d9413eb03 --- /dev/null +++ b/public/content/translations/sw/developers/docs/programming-languages/python/index.md @@ -0,0 +1,99 @@ +--- +title: Ethereum kwa wajenzi wa Python +description: Jifunze jinsi ya kuendeleza Ethereum kwa kutumia miradi ya msingi ya python na zana +lang: sw +incomplete: true +--- + +Jifunze jinsi ya kuendeleza Ethereum kwa kutumia miradi ya msingi wa Python na zana + +Tumia Ethereum kuunda programu zilizogatuliwa (au "dapps") zinazotumia manufaa ya sarafu fiche na teknolojia ya kiambajengo. Dapp hizi zinaweza kuaminika, kumaanisha kwamba pindi tu zitakapotumwa Ethereum, zitatumika kila mara jinsi zilivyoratibiwa. Wanaweza kudhibiti vipengee vya dijitali ili kuunda aina mpya za programu za kifedha. Zinaweza kugatuliwa, kumaanisha kuwa hakuna huluki moja au mtu anayezidhibiti na karibu haiwezekani kuzidhibiti. + +## Kuanza na mikataba-erevu na lugha ya Solidity {#getting-started-with-smart-contracts-and-solidity} + +**Chukua hatua zako za kwanza za kuunganisha Python na Ethereum** + +Je, unahitaji primer ya msingi zaidi kwanza? Angalia [ethereum.org/learn](/learn/) au [ethereum.org/developers](/developers/). + +- [Mnyororo wa bloku Umefafanuliwa](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [Kuelewa Mikataba-erevu](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Andika Mkataba-erevu wako wa Kwanza](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Jifunze Jinsi ya Kuandaa na Kupeleka Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) +- [Ripoti ya hali ya Python katika mnyororo wa bloku 2023](https://tradingstrategy.ai/blog/the-state-of-python-in-blockchain-in-2023) + +## Makala za wanaoanza {#beginner-articles} + +- [Muhtasari wa web3.py](https://web3py.readthedocs.io/en/latest/overview.html) +- [Ziara ya Mfumo Ikolojia wa Python wa Ethereum](https://snakecharmers.ethereum.org/python-ecosystem/) +- [Mwongozo wa Msanidi Programu (wa Python) wa Ethereum](https://snakecharmers.ethereum.org/a-developers-guide-to-ethereum-pt-1/) +- [Yenye Kustahili Tuzo: Mwongozo wa Hackathon ya Python ya Ethereum](https://snakecharmers.ethereum.org/prize-worthy/) +- [Utangulizi wa Mikataba-erevu kwa kutumia Vyper](https://kauri.io/#collections/Getting%20Started/an-introduction-to-smart-contracts-with-vyper/) +- [Jinsi ya kuendeleza mkataba wa Ethereum kwa kutumia Python Flask?](https://medium.com/coinmonks/how-to-develop-ethereum-contract-using-python-flask-9758fe65976e) +- [Utangulizi wa Web3.py · Ethereum kwa Wasanidi Programu wa Python](https://www.dappuniversity.com/articles/web3-py-intro) +- [Jinsi ya kuita kazi ya Mkataba-erevu kwa kutumia Python na web3.py](https://stackoverflow.com/questions/57580702/how-to-call-a-smart-contract-function-using-python-and-web3-py) + +## Makala za wastani {#intermediate-articles} + +- [Marafiki wa web3.py: Utangulizi wa Ape](https://snakecharmers.ethereum.org/intro-to-ape/) +- [Uendelezaji wa mfumo mtawanyo wa kimamlaka kwa Wasanidi Programu wa Python](https://levelup.gitconnected.com/dapps-development-for-python-developers-f52b32b54f28) +- [Kuunda Kiolesura cha Python cha Ethereum: Sehemu ya 1](https://hackernoon.com/creating-a-python-ethereum-interface-part-1-4d2e47ea0f4d) +- [Mikataba-erevu ya Ethereum katika Python: mwongozo wa kina (kwa kiasi)](https://hackernoon.com/ethereum-smart-contracts-in-python-a-comprehensive-ish-guide-771b03990988) + +## Mifumo ya juu ya matumizi {#advanced-use-patterns} + +- [Mifumo ya web3.py: Usajili wa Matukio ya Wakati Halisi](https://snakecharmers.ethereum.org/subscriptions/) +- [Mifumo ya web3.py: WebSocketProvider](https://snakecharmers.ethereum.org/websocketprovider/) +- [Kuandaa, kupeleka na kuita mkataba-erevu wa Ethereum kwa kutumia Python](https://yohanes.gultom.id/2018/11/28/compiling-deploying-and-calling-ethereum-smartcontract-using-python/) +- [Changanua Mikataba-erevu ya Solidity kwa kutumia Slither](https://kauri.io/#collections/DevOps/analyze-solidity-smart-contracts-with-slither/#analyze-solidity-smart-contracts-with-slither) +- [Mafunzo ya Fintech ya Mnyororo wa bloku: Kukopesha na Kukopa kwa Kutumia Python](https://blog.chain.link/blockchain-fintech-defi-tutorial-lending-borrowing-python/) + +## Makala yaliyohifadhiwa + +- [Peleka Tokeni yako mwenyewe ya ERC20 kwa kutumia Python na Brownie](https://betterprogramming.pub/python-blockchain-token-deployment-tutorial-create-an-erc20-77a5fd2e1a58) +- [Kutumia Brownie na Python kupeleka Mikataba-erevu](https://dev.to/patrickalphac/using-brownie-for-to-deploy-smart-contracts-1kkp) +- [Kuunda NFT kwenye OpenSea kwa kutumia Brownie](https://www.freecodecamp.org/news/how-to-make-an-nft-and-render-on-opensea-marketplace/) + +## Miradi na zana za Python {#python-projects-and-tools} + +### Inayotumika: {#active} + +- [Web3.py](https://github.com/ethereum/web3.py) - _Maktaba ya Python ya kuingiliana na Ethereum_ +- [Vyper](https://github.com/ethereum/vyper/) - _Lugha ya Mkataba-erevu ya Kipthoni kwa ajili ya EVM_ +- [Ape](https://github.com/ApeWorX/ape) - _Zana ya kuendeleza mikataba-erevu kwa Wapythoni, Wanasayansi wa Data, na Wataalamu wa Usalama_ +- [py-evm](https://github.com/ethereum/py-evm) - _utekelezaji wa Mashine ya Mtandaoni ya Ethereum_ +- [eth-tester](https://github.com/ethereum/eth-tester) - _zana za kujaribu programu-tumizi za msingi wa Ethereum_ +- [eth-utils](https://github.com/ethereum/eth-utils/) - _kazi za matumizi kwa ajili ya kufanya kazi na misimbo-msingi inayohusiana na Ethereum_ +- [py-solc-x](https://pypi.org/project/py-solc-x/) - _Kifuniko cha Python kuzunguka kikusanyaji cha solc cha solidity chenye usaidizi wa 0.5.x_ +- [pymaker](https://github.com/makerdao/pymaker) - _API ya Python kwa mikataba ya Maker_ +- [siwe](https://github.com/signinwithethereum/siwe-py) - _Ingia na Ethereum (siwe) kwa Python_ +- [Web3 DeFi kwa miunganisho ya Ethereum](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _Kifurushi cha Python kilicho na miunganisho tayari kwa ERC-20, Uniswap na miradi mingine maarufu_ +- [Wake](https://getwake.io) - _Mfumo mmoja wa Python kwa ajili ya majaribio ya mikataba, fuzzing, upelekaji, uchunguzi wa udhaifu na urambazaji wa msimbo (seva ya lugha - [Zana za Solidity](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ + +### Imehifadhiwa / Haihudumiwi tena: {#archived--no-longer-maintained} + +- [Trinity](https://github.com/ethereum/trinity) - _Mteja wa Python wa Ethereum_ +- [Mamba](https://github.com/arjunaskykok/mamba) - _mfumo wa kuandika, kuandaa, na kupeleka mikataba-erevu iliyoandikwa kwa lugha ya Vyper_ +- [Brownie](https://github.com/eth-brownie/brownie) - _Mfumo wa Python wa kupeleka, kujaribu na kuingiliana na mikataba-erevu ya Ethereum_ +- [pydevp2p](https://github.com/ethereum/pydevp2p) - _utekelezaji wa safu ya P2P ya Ethereum_ +- [py-wasm](https://github.com/ethereum/py-wasm) - _utekelezaji wa Python wa mkalimani wa web assembly_ + +Je, unatafuta rasilimali zaidi? Angalia [ethereum.org/developers](/developers/). + +## Miradi inayotumia zana za Python {#projects-using-python-tooling} + +Miradi ifuatayo ya msingi wa Ethereum hutumia zana zilizotajwa kwenye ukurasa huu. Hifadhi za chanzo-wazi zinazohusiana hutumika kama marejeleo mazuri kwa mfano msimbo na mbinu bora. + +- [Yearn Finance](https://yearn.finance/) na [hazina ya Mikataba ya Vault ya Yearn](https://github.com/yearn/yearn-vaults) +- [Curve](https://www.curve.finance/) na [hazina ya mikataba-erevu ya Curve](https://github.com/curvefi/curve-contract) +- [BadgerDAO](https://badger.com/) na [mikataba-erevu inayotumia msururu wa zana za Brownie](https://github.com/Badger-Finance/badger-system) +- [Sushi](https://sushi.com/) hutumia [Python katika kusimamia na kupeleka mikataba yao ya ugawaji](https://github.com/sushiswap/sushi-vesting-protocols) +- [Alpha Finance](https://alphafinance.io/), inayofahamika kwa Alpha Homora, hutumia [Brownie kujaribu na kupeleka mikataba-erevu](https://github.com/AlphaFinanceLab/alpha-staking-contract) + +## Majadiliano ya Jumuiya ya Python {#python-community-contributors} + +- [Discord ya Jumuiya ya Python ya Ethereum](https://discord.gg/9zk7snTfWe) kwa majadiliano ya Web3.py na mifumo mingine ya Python +- [Discord ya Vyper](https://discord.gg/SdvKC79cJk) kwa majadiliano ya programu za mkataba-erevu wa Vyper + +## Orodha zingine zilizokusanywa {#other-aggregated-lists} + +Wiki ya Vyper ina [orodha ya ajabu ya rasilimali za Vyper](https://github.com/vyperlang/vyper/wiki/Vyper-tools-and-resources) \ No newline at end of file diff --git a/public/content/translations/sw/developers/docs/programming-languages/ruby/index.md b/public/content/translations/sw/developers/docs/programming-languages/ruby/index.md new file mode 100644 index 00000000000..1bb92656e49 --- /dev/null +++ b/public/content/translations/sw/developers/docs/programming-languages/ruby/index.md @@ -0,0 +1,60 @@ +--- +title: Ethereum kwa Wasanidi wa Ruby +description: Jifunze jinsi ya kusanidi kwa Ethereum ukitumia miradi na zana zinazotumia Ruby. +lang: sw +incomplete: false +--- + +Jifunze jinsi ya kusanidi kwa Ethereum ukitumia miradi na zana zinazotumia Ruby. + +Tumia Ethereum kuunda programu zilizogatuliwa (au "dapps") zinazotumia manufaa ya sarafu fiche na teknolojia ya kiambajengo. Hizi mfumo mtawanyo wa kimamlaka zinaweza kuwa za bila kuaminiana, ikimaanisha kwamba pindi tu zinapowekwa kwenye Ethereum, zitaendeshwa daima kama zilivyopangwa. Wanaweza kudhibiti mali za kidijitali ili kuunda aina mpya za programu za kifedha. Zinaweza kugatuliwa, kumaanisha kuwa hakuna huluki moja au mtu anayezidhibiti na karibu haiwezekani kuzidhibiti. + +## Kuanza na mikataba-erevu na lugha ya Solidity {#getting-started-with-smart-contracts-and-solidity} + +**Chukua hatua zako za kwanza za kuunganisha Ruby na Ethereum** + +Je, unahitaji primer ya msingi zaidi kwanza? Angalia [ethereum.org/learn](/learn/) au [ethereum.org/developers](/developers/). + +- [Mnyororo wa bloku Umefafanuliwa](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [Kuelewa Mikataba-erevu](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Andika Mkataba-erevu wako wa Kwanza](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Jifunze Jinsi ya Kuandaa na Kupeleka Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) + +## Makala za wanaoanza {#beginner-articles} + +- [Hatimaye kuelewa akaunti za Ethereum](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) +- [Hatimaye Uthibitishaji wa Watumiaji wa Rails na MetaMask](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) +- [Jinsi ya kuunganisha kwenye mtandao wa Ethereum kwa kutumia Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) +- [Jinsi ya kuzalisha anwani mpya ya Ethereum katika Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) + +## Makala za wastani {#intermediate-articles} + +- [Programu ya Blockchain na Ruby](https://www.nopio.com/blog/blockchain-app-ruby/) +- [Tumia Ruby, iliyounganishwa na Ethereum, kutekeleza Mkataba Mahiri](https://titanwolf.org/Network/Articles/Article?AID=87285822-9b25-49d5-ba2a-7ad95fff7ef9) + +## Miradi na zana za Ruby {#ruby-projects-and-tools} + +### Inayotumika {#active} + +- [eth.rb](https://github.com/q9f/eth.rb) - _Maktaba ya Ruby na mteja wa RPC wa kushughulikia akaunti za Ethereum, ujumbe na miamala_ +- [keccak.rb](https://github.com/q9f/keccak.rb) - _Hashi ya Keccak (SHA3) inayotumiwa na Ethereum_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) - _Utekelezaji wa Ruby wa Ingia na Ethereum_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) - _Gem ya Rails inaoongeza njia za kuingia za SIWE_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) - _Mfano wa SIWE unaotumia Ruby on Rails na kidhibiti maalum_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) - _Mkakati wa OmniAuth kwa ajili ya Ingia na Ethereum (SIWE)_ +- [omniauth-nft](https://github.com/valthon/omniauth-nft) - _Mkakati wa OmniAuth wa kuthibitisha kupitia umiliki wa NFT_ +- [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) - _Kiolezo cha Ethereum on Rails kinachoruhusu kuunganisha MetaMask kwenye Ruby on Rails_ + +### Imehifadhiwa kwenye kumbukumbu / Haitunzwi tena {#archived--no-longer-maintained} + +- [web3-eth](https://github.com/spikewilliams/vtada-ethereum) - _Kuita mbinu za RPC za nodi ya Ethereum na Ruby_ +- [ethereum_tree](https://github.com/longhoangwkm/ethereum_tree) - _Maktaba ya Ruby ya kuzalisha anwani za ETH kutoka kwa mkoba wa Hierarchical Deterministic kulingana na kiwango cha BIP32_ +- [etherlite](https://github.com/budacom/etherlite) - _Uunganishaji wa Ethereum kwa Ruby on Rails_ +- [ethereum.rb](https://github.com/EthWorks/ethereum.rb) - _Mteja wa Ruby Ethereum anayetumia kiolesura cha JSON-RPC kutuma miamala, kuunda na kuingiliana na mikataba pamoja na zana muhimu ya kufanya kazi na nodi ya Ethereum_ +- [omniauth-ethereum.rb](https://github.com/q9f/omniauth-ethereum.rb) - _Hutekeleza mkakati wa mtoaji wa Ethereum kwa OmniAuth_ + +Je, unatafuta rasilimali zaidi? Angalia [nyumbani kwa Wasanidi wetu](/developers/). + +## Wachangiaji wa jumuiya ya Ruby {#ruby-community-contributors} + +[Kundi la Telegram la Ethereum Ruby](https://t.me/ruby_eth) ni mwenyeji wa jumuiya inayokua kwa kasi na ni rasilimali maalum kwa majadiliano juu ya miradi yoyote hapo juu na mada zinazohusiana. diff --git a/public/content/translations/sw/developers/docs/programming-languages/rust/index.md b/public/content/translations/sw/developers/docs/programming-languages/rust/index.md new file mode 100644 index 00000000000..0890c47562e --- /dev/null +++ b/public/content/translations/sw/developers/docs/programming-languages/rust/index.md @@ -0,0 +1,65 @@ +--- +title: Ethereum kwa watengenezaji wa rust +description: Jifunze jinsi ya kuendeleza Ethereum kwa kutumia miradi inayotegemea Rust na zana +lang: sw +incomplete: true +--- + +Jifunze jinsi ya kutengeneza kwa ajili ya Ethereum kwa kutumia miradi na zana zinazotokana na Rust + +Tumia Ethereum kuunda programu zilizogatuliwa (au "dapps") zinazotumia manufaa ya sarafu fiche na teknolojia ya kiambajengo. Dapp hizi zinaweza kuaminika, kumaanisha kwamba pindi tu zitakapotumwa Ethereum, zitatumika kila mara jinsi zilivyoratibiwa. Wanaweza kudhibiti vipengee vya dijitali ili kuunda aina mpya za programu za kifedha. Zinaweza kugatuliwa, kumaanisha kuwa hakuna huluki moja au mtu anayezidhibiti na karibu haiwezekani kuzidhibiti. + +## Kuanza na mikataba-erevu na lugha ya Solidity {#getting-started-with-smart-contracts-and-solidity} + +**Chukua hatua zako za kwanza za kuunganisha Rust na Ethereum** + +Je, unahitaji primer ya msingi zaidi kwanza? Angalia [ethereum.org/learn](/learn/) au [ethereum.org/developers](/developers/). + +- [Mnyororo wa bloku Umefafanuliwa](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [Kuelewa Mikataba-erevu](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Andika Mkataba-erevu wako wa Kwanza](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Jifunze Jinsi ya Kuandaa na Kupeleka Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) + +## Makala za wanaoanza {#beginner-articles} + +- [Mteja wa Rust Ethereum](https://openethereum.github.io/) \* **Kumbuka kuwa OpenEthereum [imesitishwa](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) na haitunzwi tena.** Itumie kwa tahadhari na inapendekezwa ubadilishe hadi kwa utekelezaji mwingine wa mteja. +- [Kutuma Muamala kwa Ethereum kwa Kutumia Rust](https://kauri.io/#collections/A%20Hackathon%20Survival%20Guide/sending-ethereum-transactions-with-rust/) +- [Mafunzo ya hatua kwa hatua kuhusu jinsi ya kuandika mikataba katika rust Wasm kwa ajili ya Kovan](https://github.com/paritytech/pwasm-tutorial) + +## Makala za wastani {#intermediate-articles} + +## Mifumo ya juu ya matumizi {#advanced-use-patterns} + +- [Maktaba ya pwasm_ethereum externs ya kuingiliana na mtandao unaofanana na Ethereum](https://github.com/openethereum/pwasm-ethereum) + +- [Unda Soga Iliyogatuliwa kwa kutumia JavaScript na Rust](https://medium.com/perlin-network/build-a-decentralized-chat-using-javascript-rust-webassembly-c775f8484b52) + +- [Unda Programu ya Mambo ya Kufanya Iliyogatuliwa kwa kutumia Vue.js & Rust](https://medium.com/@jjmace01/build-a-decentralized-todo-app-using-vue-js-rust-webassembly-5381a1895beb) + +- [Unda mnyororo wa bloku katika Rust](https://blog.logrocket.com/how-to-build-a-blockchain-in-rust/) + +## Miradi na zana za Rust {#rust-projects-and-tools} + +- [pwasm-ethereum](https://github.com/paritytech/pwasm-ethereum) - _Mkusanyiko wa externs ili kuingiliana na mtandao unaofanana na Ethereum_ +- [Lighthouse](https://github.com/sigp/lighthouse) - _Mteja wa haraka wa safu ya makubaliano ya Ethereum_ +- [Ethereum WebAssembly](https://ewasm.readthedocs.io/en/mkdocs/) - _Muundo mpya uliopendekezwa wa safu ya utekelezaji ya mkataba-erevu wa Ethereum kwa kutumia seti ndogo maalum ya WebAssembly_ +- [oasis_std](https://docs.rs/oasis-std/latest/oasis_std/index.html) - _Rejeleo la API la OASIS_ +- [Solaris](https://github.com/paritytech/sol-rs) - _Mfumo wa majaribio ya kitengo kwa Mikataba-Erevu ya Solidity kwa kutumia EVM asili ya Mteja wa Parity._ +- [SputnikVM](https://github.com/rust-blockchain/evm) - _Utekelezaji wa Rust wa Mashine Halisi ya Ethereum_ +- [Wavelet](https://wavelet.perlin.net/docs/smart-contracts) - _Mkataba-erevu wa Wavelet katika Rust_ +- [Foundry](https://github.com/foundry-rs/foundry) - _Seti ya zana za uundaji wa programu za Ethereum_ +- [Alloy](https://alloy.rs) - _Maktaba za utendaji wa hali ya juu, zilizojaribiwa vizuri na zilizoandikwa kwa ajili ya kuingiliana na Ethereum na minyororo mingine inayotegemea EVM._ +- [Ethers_rs](https://github.com/gakonst/ethers-rs) - _Utekelezaji wa maktaba na mkoba wa Ethereum_ +- [SewUp](https://github.com/second-state/SewUp) - _Maktaba ya kukusaidia kuunda mkataba wako wa webassembly wa Ethereum ukitumia Rust kama vile unavyotengeneza kwenye sehemu ya nyuma ya kawaida_ +- [Substreams](https://github.com/streamingfast/substreams) - _Teknolojia ya kuorodhesha data ya mnyororo wa bloku kwa usambamba_ +- [Reth](https://github.com/paradigmxyz/reth) Reth (kifupi cha Rust Ethereum) ni utekelezaji mpya wa node kamili ya Ethereum +- [Awesome Ethereum Rust](https://github.com/Vid201/awesome-ethereum-rust) - _Mkusanyiko ulioratibiwa wa miradi katika mfumo ikolojia wa Ethereum iliyoandikwa kwa Rust_ + +Je, unatafuta rasilimali zaidi? Angalia [ethereum.org/developers.](/developers/) + +## Wachangiaji wa jumuiya ya Rust {#rust-community-contributors} + +- [Ethereum WebAssembly](https://gitter.im/ewasm/Lobby) +- [Oasis Gitter](https://gitter.im/Oasis-official/Lobby) +- [Parity Gitter](https://gitter.im/paritytech/parity) +- [Enigma](https://discord.gg/SJK32GY) diff --git a/public/content/translations/sw/developers/docs/scaling/index.md b/public/content/translations/sw/developers/docs/scaling/index.md new file mode 100644 index 00000000000..937ecb73d80 --- /dev/null +++ b/public/content/translations/sw/developers/docs/scaling/index.md @@ -0,0 +1,113 @@ +--- +title: Uongezwaji +description: Utangulizi wa chaguzi tofauti za kuongeza viwango zinazoendelezwa sasa na jumuiya ya Ethereum. +lang: sw +sidebarDepth: 3 +--- + +## Muhtasari wa uongezwaji {#scaling-overview} + +Kwa kuwa idadi ya watu wanaotumia Ethereum imeongezeka, blockchain imefikia mapungufu fulani ya uwezo. Hii imeongeza gharama ya kutumia mtandao, na kujenga hitaji la "suluhisho za kuongeza kiwango." Kuna masuluhisho mengi yanayofanyiwa utafiti, kujaribiwa na kutekelezwa ambayo huchukua mbinu tofauti kufikia malengo sawa. + +Lengo kuu la uwezo wa kuongezeka ni kuongeza kasi ya muamala (mwisho wa haraka) na upitishaji wa miamala (idadi kubwa ya miamala kwa sekunde) bila kuathiri ugatuzi au usalama. Kwenye mnyororo wa bloku wa safu ya 1 ya Ethereum, mahitaji makubwa husababisha miamala ya polepole na [bei za gesi](/developers/docs/gas/) zisizowezekana. Kuongeza uwezo wa mtandao kwa suala la kasi na upitishaji ni msingi wa kupitishwa kwa maana na kwa wingi kwa Ethereum. + +Ingawa kasi na matokeo ni muhimu, ni muhimu kwamba masuluhisho ya kuongeza viwango yanayowezesha malengo haya yabaki yakiwa yamegawanywa na salama. Kuweka kizuizi cha kuingia kwa waendeshaji wa nodi kuwa chini ni muhimu katika kuzuia maendeleo kuelekea nguvu ya kompyuta ya kati na isiyo salama. + +Kimsingi, kwanza tunaainisha uongezwaji kama uongezwaji wa onchain au uongezwaji wa offchain. + +## Mahitaji ya awali {#prerequisites} + +Unapaswa kuwa na uelewa mzuri wa mada zote za msingi. Utekelezaji wa suluhisho za uongezwaji ni wa hali ya juu kwani teknolojia haijajaribiwa sana, na inaendelea kutafitiwa na kuendelezwa. + +## Uongezwaji wa Onchain {#onchain-scaling} + +Uongezwaji wa Onchain unahitaji mabadiliko kwenye itifaki ya Ethereum (safu ya 1 ya [Mtandao Mkuu](/glossary/#mainnet)). Kwa muda mrefu, ugawanyaji wa mnyororo wa bloku ulitarajiwa kuongeza Ethereum. Hii ingehusisha kugawanya mnyororo wa bloku katika vipande tofauti (shards) ili kuthibitishwa na vikundi vidogo vya wathibitishaji. Hata hivyo, uongezwaji kwa kutumia unda-mpya za safu-2 umechukua nafasi kama mbinu ya msingi ya uongezwaji. Hili linaungwa mkono na nyongeza ya aina mpya ya data ya bei nafuu iliyoambatishwa kwenye bloku za Ethereum ambayo imeundwa mahususi kufanya unda-mpya ziwe nafuu kwa watumiaji. + +### Ugawanyaji {#sharding} + +Ugawanyaji ni mchakato wa kugawanya hifadhidata. Vikundi vidogo vya wathibitishaji vingewajibika kwa shardi binafsi badala ya kufuatilia Ethereum yote. Ugawanyaji ulikuwa kwenye [ramani ya maendeleo](/roadmap/) ya Ethereum kwa muda mrefu, na hapo awali ulikusudiwa kutolewa kabla ya Muungano kuelekea uthibitisho-wa-hisa. Hata hivyo, maendeleo ya haraka ya [unda-mpya za safu 2](#layer-2-scaling) na uvumbuzi wa [Danksharding](/roadmap/danksharding) (kuongeza matone ya data ya unda-mpya kwenye bloku za Ethereum ambazo zinaweza kuthibitishwa kwa ufanisi sana na wathibitishaji) umesababisha jumuiya ya Ethereum kupendelea uongezwaji unaozingatia unda-mpya badala ya uongezwaji kwa ugawanyaji. Hii pia itasaidia kuweka mantiki ya makubaliano ya Ethereum kuwa rahisi. + +## Uongezwaji wa Offchain {#offchain-scaling} + +Suluhisho za Offchain zinatekelezwa kando na Mtandao Mkuu wa safu ya 1 - hazihitaji mabadiliko yoyote kwenye itifaki iliyopo ya Ethereum. Baadhi ya suluhisho, zinazojulikana kama suluhisho za "safu ya 2", hupata usalama wao moja kwa moja kutoka kwa makubaliano ya safu ya 1 ya Ethereum, kama vile [optimistic rollups](/developers/docs/scaling/optimistic-rollups/), [zero-knowledge rollups](/developers/docs/scaling/zk-rollups/) au [chaneli za hali](/developers/docs/scaling/state-channels/). Suluhisho zingine zinahusisha uundaji wa minyororo mipya katika aina mbalimbali ambazo hupata usalama wao kando na Mtandao Mkuu, kama vile [sidechains](#sidechains), [validiums](#validium), au [minyororo ya njozi](#plasma). Suluhisho hizi huwasiliana na Mtandao Mkuu lakini hupata usalama wao kwa njia tofauti ili kufikia malengo mbalimbali. + +### Uongezwaji wa safu ya 2 {#layer-2-scaling} + +Aina hii ya suluhisho za offchain hupata usalama wake kutoka kwa Mtandao Mkuu wa Ethereum. + +Safu ya 2 ni neno la pamoja la suluhisho zilizoundwa kusaidia kuongeza programu yako kwa kushughulikia miamala nje ya Mtandao Mkuu wa Ethereum (safu ya 1) huku ukichukua fursa ya mfumo imara wa usalama wa ugatuzi wa Mtandao Mkuu. Kasi ya muamala hupungua mtandao unapokuwa na shughuli nyingi, na kufanya uzoefu wa mtumiaji kuwa duni kwa aina fulani za dapps. Na mtandao unapozidi kuwa na shughuli nyingi, bei za gesi huongezeka kadri watumaji wa miamala wanavyolenga kushindana kwa bei. Hii inaweza kufanya utumiaji wa Ethereum kuwa ghali sana. + +Suluhisho nyingi za safu ya 2 huzingatia seva au nguzo ya seva, ambapo kila moja inaweza kujulikana kama nodi, mthibitishaji, mwendeshaji, mratibu wa mfuatano, mtayarishaji wa bloku, au neno linalofanana. Kulingana na utekelezaji, nodi hizi za safu ya 2 zinaweza kuendeshwa na watu binafsi, biashara au mashirika yanayozitumia, au na mwendeshaji wa tatu, au na kundi kubwa la watu binafsi (sawa na Mtandao Mkuu). Kwa ujumla, miamala huwasilishwa kwa nodi hizi za safu ya 2 badala ya kuwasilishwa moja kwa moja kwa safu ya 1 (Mtandao Mkuu). Kwa baadhi ya suluhisho, kisa cha safu ya 2 kisha huviweka katika makundi kabla ya kuvitia nanga kwenye safu ya 1, na baada ya hapo hulindwa na safu ya 1 na haviwezi kubadilishwa. Maelezo ya jinsi hii inafanywa hutofautiana sana kati ya teknolojia na utekelezaji tofauti wa safu ya 2. + +Kisa maalum cha safu ya 2 kinaweza kuwa wazi na kushirikiwa na programu nyingi, au kinaweza kupelekwa na mradi mmoja na kujitolea kusaidia programu yao pekee. + +#### Kwa nini safu ya 2 inahitajika? {#why-is-layer-2-needed} + +- Kuongezeka kwa miamala kwa sekunde kunaboresha sana uzoefu wa mtumiaji, na kupunguza msongamano wa mtandao kwenye Mtandao Mkuu wa Ethereum. +- Miamala hukusanywa katika muamala mmoja kwenye Mtandao Mkuu wa Ethereum, na kupunguza ada za gesi kwa watumiaji na kuifanya Ethereum kuwa jumuishi zaidi na kupatikana kwa watu kila mahali. +- Sasisho zozote za uwezo wa kuongezeka hazipaswi kuwa kwa gharama ya ugatuzi au usalama – safu ya 2 inajengwa juu ya Ethereum. +- Kuna mitandao ya safu ya 2 maalum kwa programu ambayo huleta seti zao za ufanisi wakati wa kufanya kazi na mali kwa kiwango kikubwa. + +[Zaidi kuhusu safu ya 2](/layer-2/). + +#### Unda-mpya {#rollups} + +Unda-mpya hutekeleza miamala nje ya safu ya 1 na kisha data huwekwa kwenye safu ya 1 ambapo makubaliano hufikiwa. Kwa vile data ya muamala imejumuishwa katika bloku za safu ya 1, hii inaruhusu unda-mpya kulindwa na usalama asili wa Ethereum. + +Kuna aina mbili za unda-mpya zenye miundo tofauti ya usalama: + +- **Optimistic rollups**: huchukulia miamala kuwa halali kwa chaguo-msingi na huendesha hesabu tu, kupitia [**uthibitisho wa ulaghai**](/glossary/#fraud-proof), endapo kuna changamoto. [Zaidi kuhusu Optimistic rollups](/developers/docs/scaling/optimistic-rollups/). +- **Zero-knowledge rollups**: huendesha hesabu offchain na huwasilisha [**uthibitisho wa uhalali**](/glossary/#validity-proof) kwenye mnyororo. [Zaidi kuhusu zero-knowledge rollups](/developers/docs/scaling/zk-rollups/). + +#### Chaneli za hali {#channels} + +Chaneli za hali hutumia mikataba ya multisig kuwezesha washiriki kufanya miamala haraka na kwa uhuru offchain, kisha kukamilisha mwisho na Mtandao Mkuu. Hii inapunguza msongamano wa mtandao, ada, na ucheleweshaji. Aina mbili za chaneli kwa sasa ni chaneli za hali na chaneli za malipo. + +Jifunze zaidi kuhusu [chaneli za hali](/developers/docs/scaling/state-channels/). + +### Sidechains {#sidechains} + +Sidechain ni blockchain huru inayolingana na EVM ambayo inaendeshwa sambamba na Mainnet. Hizi zinapatana na Ethereum kupitia madaraja ya njia mbili na huendeshwa chini ya sheria zao walizochagua za makubaliano na vigezo vya kuzuia. + +Jifunze zaidi kuhusu [Sidechains](/developers/docs/scaling/sidechains/). + +### Njozi {#plasma} + +Mnyororo wa njozi ni mnyororo wa bloku tofauti ambao umetiwa nanga kwenye mnyororo mkuu wa Ethereum na hutumia uthibitisho wa ulaghai (kama [optimistic rollups](/developers/docs/scaling/optimistic-rollups/)) kusuluhisha mizozo. + +Jifunze zaidi kuhusu [Njozi](/developers/docs/scaling/plasma/). + +### Validium {#validium} + +Mnyororo wa Validium hutumia uthibitisho wa uhalali kama zero-knowledge rollups lakini data haihifadhiwi kwenye mnyororo mkuu wa safu ya 1 ya Ethereum. Hii inaweza kusababisha miamala 10k kwa sekunde kwa kila mnyororo wa Validium na minyororo mingi inaweza kuendeshwa sambamba. + +Jifunze zaidi kuhusu [Validium](/developers/docs/scaling/validium/). + +## Kwa nini suluhisho nyingi za uongezwaji zinahitajika? {#why-do-we-need-these} + +- Suluhisho nyingi zinaweza kusaidia kupunguza msongamano wa jumla kwenye sehemu yoyote ya mtandao na pia kuzuia sehemu moja ya kushindwa. +- Jumla ni kubwa kuliko jumla ya sehemu zake. Suluhisho tofauti zinaweza kuwepo na kufanya kazi kwa pamoja, kuruhusu athari ya kielelezo kwenye kasi ya muamala ya baadaye na upitishaji. +- Sio suluhisho zote zinahitaji kutumia kanuni ya makubaliano ya Ethereum moja kwa moja, na mbadala zinaweza kutoa manufaa ambayo vinginevyo yangekuwa magumu kupata. + +## Wewe ni mwanafunzi wa kuona zaidi? {#visual-learner} + + + +_Kumbuka maelezo katika video yanatumia neno "Safu ya 2" kurejelea suluhisho zote za uongezwaji za offchain, wakati sisi tunatofautisha "Safu ya 2" kama suluhisho la offchain ambalo hupata usalama wake kupitia makubaliano ya Mtandao Mkuu wa safu ya 1._ + + + +## Masomo zaidi {#further-reading} + +- [Ramani ya maendeleo ya Ethereum inayozingatia unda-mpya](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) _Vitalik Buterin_ +- [Uchanganuzi wa kisasa kuhusu suluhisho za uongezwaji za Safu ya 2 kwa Ethereum](https://www.l2beat.com/) +- [Kutathmini Suluhisho za Uongezwaji za safu ya 2 za Ethereum: Mfumo wa Kulinganisha](https://medium.com/matter-labs/evaluating-ethereum-l2-scaling-solutions-a-comparison-framework-b6b2f410f955) +- [Mwongozo Usio Kamili wa Unda-mpya](https://vitalik.eth.limo/general/2021/01/05/rollup.html) +- [ZK-Rollups zinazoendeshwa na Ethereum: Washindi wa Dunia](https://hackmd.io/@canti/rkUT0BD8K) +- [Optimistic Rollups dhidi ya ZK Rollups](https://limechain.tech/blog/optimistic-rollups-vs-zk-rollups/) +- [Kwa nini unda-mpya + vipande vya data ndio suluhisho pekee endelevu kwa uwezo mkubwa wa kuongezeka](https://polynya.medium.com/why-rollups-data-shards-are-the-only-sustainable-solution-for-high-scalability-c9aabd6fbb48) +- [Ni aina gani za Safu za 3 zina mantiki?](https://vitalik.eth.limo/general/2022/09/17/layer_3.html) +- [Upatikanaji wa Data au: Jinsi Unda-mpya zilivyojifunza Kuacha Kuhangaika na Kuipenda Ethereum](https://web.archive.org/web/20250515194659/https://web.archive.org/web/20241108192208/https://research.2077.xyz/data-availability-or-how-rollups-learned-to-stop-worrying-and-love-ethereum) +- [Mwongozo wa Vitendo kwa Unda-mpya za Ethereum](https://web.archive.org/web/20241108192208/https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ diff --git a/public/content/translations/sw/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/sw/developers/docs/scaling/optimistic-rollups/index.md new file mode 100644 index 00000000000..eb718b888d5 --- /dev/null +++ b/public/content/translations/sw/developers/docs/scaling/optimistic-rollups/index.md @@ -0,0 +1,265 @@ +--- +title: Optimistic rollups +description: "Utangulizi wa optimistic rollups—suluhisho la kuongeza ukubwa linalotumiwa na jamii ya Ethereum." +lang: sw +--- + +Optimistic rollups ni itifaki za safu ya 2 (L2) zilizoundwa kuongeza kasi ya usindikaji wa safu ya msingi ya Ethereum. Hupunguza hesabu kwenye mnyororo mkuu wa Ethereum kwa kushughulikia miamala nje ya mnyororo, na hivyo kutoa maboresho makubwa katika kasi za usindikaji. Tofauti na suluhisho zingine za kuongeza ukubwa, kama vile [sidechains](/developers/docs/scaling/sidechains/), optimistic rollups hupata usalama kutoka kwa Mtandao Mkuu kwa kuchapisha matokeo ya muamala kwenye mnyororo, au [minyororo ya plasma](/developers/docs/scaling/plasma/), ambayo pia huthibitisha miamala kwenye Ethereum kwa kutumia thibitisho za ulaghai, lakini huhifadhi data ya muamala mahali pengine. + +Kwa kuwa hesabu ni sehemu ya polepole na ya gharama kubwa ya kutumia Ethereum, optimistic rollups zinaweza kutoa maboresho ya hadi mara 10-100 katika kuongeza ukubwa. Optimistic rollups pia huandika miamala kwa Ethereum kama `calldata` au katika [blobs](/roadmap/danksharding/), na hivyo kupunguza gharama za gesi kwa watumiaji. + +## Mahitaji ya awali {#prerequisites} + +Unapaswa kuwa umesoma na kuelewa kurasa zetu kuhusu [Uongezwaji wa Ethereum](/developers/docs/scaling/) na [safu ya 2](/layer-2/). + +## Optimistic rollup ni nini? {#what-is-an-optimistic-rollup} + +Optimistic rollup ni mbinu ya kuongeza ukubwa wa Ethereum ambayo inahusisha kuhamisha hesabu na hifadhi ya hali nje ya mnyororo. Optimistic rollups hutekeleza miamala nje ya Ethereum, lakini hutuma data ya muamala kwa Mtandao Mkuu kama `calldata` au katika [blobs](/roadmap/danksharding/). + +Waendeshaji wa optimistic rollup hukusanya miamala mingi ya nje ya mnyororo pamoja katika makundi makubwa kabla ya kuiwasilisha kwa Ethereum. Mbinu hii huwezesha kueneza gharama zisizobadilika kwa miamala mingi katika kila kundi, na hivyo kupunguza ada kwa watumiaji wa mwisho. Optimistic rollups pia hutumia mbinu za ukandamizaji ili kupunguza kiasi cha data inayotumwa kwenye Ethereum. + +Uboreshaji wa matumaini unachukuliwa kuwa "wenye matumaini" kwa sababu wanadhania kwamba miamala ya nje ya mtandao ni halali na haichapishi uthibitisho wa uhalali wa bechi za miamala zilizochapishwa kwenye mnyororo. Hii hutenganisha optimistic rollups na [zero-knowledge rollups](/developers/docs/scaling/zk-rollups) ambazo huchapisha [thibitisho za uhalali](/glossary/#validity-proof) za kriptografia kwa miamala ya nje ya mnyororo. + +Badala yake, optimistic rollups hutegemea mpango wa kuthibitisha ulaghai ili kugundua visa ambapo miamala haijahesabiwa kwa usahihi. Baada ya kundi la rollup kuwasilishwa kwenye Ethereum, kuna muda maalum (unaoitwa kipindi cha changamoto) ambapo mtu yeyote anaweza kupinga matokeo ya muamala wa rollup kwa kukokotoa [thibitisho la ulaghai](/glossary/#fraud-proof). + +Ikiwa thibitisho la ulaghai litafaulu, itifaki ya rollup hutekeleza tena muamala (miamala) na kusasisha hali ya rollup ipasavyo. Athari nyingine ya uthibitisho wa ulaghai uliofaulu ni kwamba mfuataji wa mpangilio anayehusika na kujumuisha muamala uliotekelezwa vibaya kwenye kizuizi hupokea adhabu. + +Ikiwa kundi la makusanyoa litasalia bila kupingwa (yaani, miamala yote itatekelezwa ipasavyo) baada ya kipindi cha changamoto kuisha, itachukuliwa kuwa halali na kukubaliwa kwenye Ethereum. Wengine wanaweza kuendelea kujenga juu ya kizuizi ambacho hakijathibitishwa, lakini kwa tahadhari: matokeo ya muamala yatatenguliwa ikiwa kulingana na muamala usio sahihi uliochapishwa hapo awali. + +## Je, optimistic rollups huingilianaje na Ethereum? {#optimistic-rollups-and-Ethereum} + +Optimistic rollups ni [suluhisho za kuongeza ukubwa nje ya mnyororo](/developers/docs/scaling/#offchain-scaling) zilizoundwa ili kufanya kazi juu ya Ethereum. Kila optimistic rollup husimamiwa na seti ya mikataba-erevu iliyotumwa kwenye mtandao wa Ethereum. Usambazaji wenye matumaini huchakata miamala kutoka kwa mnyororo mkuu wa Ethereum, lakini miamala ya baada ya nje ya mnyororo (kwa makundi) hadi kwenye mkataba wa kukuza mtandao wa mnyororo. Kama mnyororo wa bloku wa Ethereum, rekodi hii ya muamala haibadiliki na huunda "mnyororo wa optimistic rollup." + +Muundo wa optimistic rollup unajumuisha sehemu zifuatazo: + +**Mikataba ya kwenye mnyororo**: Uendeshaji wa optimistic rollup unadhibitiwa na mikataba-erevu inayoendeshwa kwenye Ethereum. Hii inajumuisha mikataba inayohifadhi bloku za rollup, kufuatilia sasisho za hali kwenye rollup, na kufuatilia amana za watumiaji. Kwa maana hii, Ethereum hutumika kama safu ya msingi au "safu ya 1" kwa optimistic rollups. + +**Mashine halisi ya nje ya mnyororo (VM)**: Ingawa mikataba inayosimamia itifaki ya optimistic rollup inaendeshwa kwenye Ethereum, itifaki ya rollup hufanya hesabu na hifadhi ya hali kwenye mashine nyingine halisi tofauti na [Mashine Halisi ya Ethereum](/developers/docs/evm/). Nje ya mnyrooro VM ni mahali ambapo maombi mubashara na mabadiliko ya hali yanatekelezwa; hutumika kama safu ya juu au "safu ya 2" kwa safu ya matumaini. + +Kwa vile makusanyo ya matumaini yameundwa ili kuendesha programu ama zilizoandikwa au kukusanywa kwa ajili ya EVM, VM ya nje ya mnyororo hujumuisha vipimo vingi vya muundo wa EVM. Zaidi ya hayo, thibitisho za ulaghai zilizokokotwa kwenye mnyororo huuruhusu mtandao wa Ethereum kutekeleza uhalali wa mabadiliko ya hali yaliyokokotwa kwenye VM ya nje ya mnyororo. + +Mipangilio yenye matumaini inafafanuliwa kuwa 'suluhisho mseto za kuongeza uwezu wa mtandao ' kwa sababu, ingawa zipo kama itifaki tofauti, sifa zao za usalama zinatokana na Ethereum. Miongoni mwa mambo mengine, Ethereum inahakikisha usahihi wa hesabu ya nje ya mnyororo ya makusanyo na upatikanaji wa data nyuma ya hesabu. Hii inafanya optimistic rollups kuwa salama zaidi kuliko itifaki za uongezaji za nje ya mnyororo (k.m., [sidechains](/developers/docs/scaling/sidechains/)) ambazo hazitegemei Ethereum kwa usalama. + +Optimistic rollups hutegemea itifaki kuu ya Ethereum kwa yafuatayo: + +### Upatikanaji wa data {#data-availability} + +Kama ilivyoelezwa, optimistic rollups huchapisha data ya muamala kwenye Ethereum kama `calldata` au [blobs](/roadmap/danksharding/). Kwa kuwa utekelezaji wa mnyororo wa rollup unategemea miamala iliyowasilishwa, mtu yeyote anaweza kutumia taarifa hii—iliyotiwa nanga kwenye safu ya msingi ya Ethereum—kutekeleza hali ya rollup na kuthibitisha usahihi wa mabadiliko ya hali. + +Upatikanaji wa data ni muhimu sana kwa sababu bila ufikiaji wa data ya hali, wapinzani hawawezi kuunda thibitisho za ulaghai ili kupinga utendakazi batili wa rollup. Huku Ethereum ikitoa upatikanaji wa data, hatari ya waendeshaji orodha kuepuka vitendo viovu (k.m., kuwasilisha vizuizi batili) hupunguzwa. + +### Ukinzani dhidi ya udhibiti {#censorship-resistance} + +Optimistic rollups pia hutegemea Ethereum kwa ajili ya ukinzani dhidi ya udhibiti. Katika optimistic rollup, huluki ya kati (opereta) inawajibika kwa kuchakata miamala na kuwasilisha bloku za rollup kwa Ethereum. Hii ina baadhi ya athari: + +- Waendeshaji wa rollup wanaweza kudhibiti watumiaji kwa kutokuwa mtandaoni kabisa, au kwa kukataa kutoa bloku zinazojumuisha miamala fulani ndani yake. + +- Waendeshaji wa makusanyo wanaweza kuzuia watumiaji kutoa pesa zilizowekwa katika mkataba wa uwasilishaji kwa kushikilia data ya majimbo muhimu kwa uthibitisho wa umiliki wa Merkle. Data ya jimbo iliyozuiliwa inaweza pia kuficha hali ya uwasilishaji kutoka kwa watumiaji na kuwazuia kuingiliana na ukusanyaji. + +Mkusanyo yenye matumaini hutatua tatizo hili kwa kuwalazimisha waendeshaji kuchapisha data inayohusiana na maboresho ya jimbo kwenye Ethereum. Kuchapisha data ya rollup kwenye mnyororo kuna faida zifuatazo: + +- Ikiwa opereta wa optimistic rollup ataenda nje ya mtandao au ataacha kutoa makundi ya miamala, nodi nyingine inaweza kutumia data inayopatikana ili kuzalisha upya hali ya mwisho ya rollup na kuendelea na uzalishaji wa bloku. + +- Watumiaji wanaweza kutumia data ya muamala kuunda thibitisho za Merkle zinazothibitisha umiliki wa fedha na kutoa mali zao kutoka kwenye rollup. + +- Watumiaji wanaweza pia kuwasilisha miamala yao kwenye L1 badala ya kwa mratibu wa mfuatano, ambapo mratibu wa mfuatano atalazimika kujumuisha muamala huo ndani ya muda maalum ili kuendelea kutoa bloku halali. + +### Marekebisho {#settlement} + +Jukumu lingine ambalo Ethereum inacheza katika muktadha wa optimistic rollups ni lile la safu ya suluhu. Safu ya suluhu hutia nanga mfumo mzima wa mnyororo wa bloku, huanzisha usalama, na hutoa umalizikaji wenye lengo ikiwa mzozo utatokea kwenye mnyororo mwingine (optimistic rollups katika kesi hii) unaohitaji usuluhishi. + +Mtandao Mkuu wa Ethereum hutoa kitovu kwa optimistic rollups kuthibitisha thibitisho za ulaghai na kutatua mizozo. Zaidi ya hayo, miamala inayofanywa kwenye rollup inakuwa ya mwisho _baada ya_ bloku ya rollup kukubaliwa kwenye Ethereum. Mara tu muamala wa rollup unapowekwa kwenye safu ya msingi ya Ethereum, hauwezi kurejeshwa nyuma (isipokuwa katika kisa kisichowezekana kabisa cha upangaji upya wa mnyororo). + +## Je, optimistic rollups hufanyaje kazi? {#how-optimistic-rollups-work} + +### Utekelezaji na mkusanyiko wa miamala {#transaction-execution-and-aggregation} + +Watumiaji huwasilisha miamala kwa “waendeshaji”, ambao ni nodi zinazohusika na kuchakata miamala kwenye optimistic rollup. Pia anajulikana kama “mthibitishaji” au “mkusanyaji”, mwendeshaji hukusanya miamala, hubana data ya msingi, na kuchapisha bloku kwenye Ethereum. + +Ingawa mtu yeyote anaweza kuwa mthibitishaji, wathibitishaji wa optimistic rollup lazima watoe dhamana kabla ya kutoa bloku, sawa na [mfumo wa uthibitisho wa hisa](/developers/docs/consensus-mechanisms/pos/). Dhamana hii inaweza kupunguzwa ikiwa mthibitishaji atachapisha bloku batili au kujenga juu ya bloku ya zamani lakini batili (hata kama bloku yake ni halali). Kwa njia hii optimistic rollups hutumia motisha za kiuchumi za kripto kuhakikisha wathibitishaji wanatenda kwa uaminifu. + +Wathibitishaji wengine kwenye mnyororo wa optimistic rollup wanatarajiwa kutekeleza miamala iliyowasilishwa kwa kutumia nakala yao ya hali ya rollup. Ikiwa hali ya mwisho ya mthibitishaji ni tofauti na hali iliyopendekezwa na opereta, wanaweza kuanzisha changamoto na kukokotoa ushahidi wa ulaghai. + +Baadhi ya ukusanyaji wenye matumaini yanaweza kuacha mfumo wa kiidhinishaji usio na ruhusa na kutumia "kifuatiliaji" kimoja kutekeleza mnyororo. Kama vile kihalalishaji, kiratibu huchakata miamala, hutengeneza vizuizi, na kuwasilisha miamala ya kusambaza kwa mnyororo wa L1 (Ethereum). + +Mfuatano ni tofauti na mwendeshaji wa kawaida wa kusambaza kwa sababu wana udhibiti mkubwa zaidi wa upangaji wa miamala. Pia, mfuatano wa mpangilio una ufikiaji wa kipaumbele kwa mnyororo wa kusambaza na ndiyo huluki pekee iliyoidhinishwa kuwasilisha miamala kwa mkataba wa ndani ya mnyororo. Miamala kutoka kwa nodi zisizo za mpangilio au watumiaji wa kawaida hupangwa tu kwenye kisanduku pokezi tofauti hadi kipanga mpangilio kijumuishe kwenye kundi jipya. + +#### Kuwasilisha bloku za rollup kwa Ethereum {#submitting-blocks-to-ethereum} + +Kama ilivyotajwa, mwendeshaji wa kusanyo la matumaini hukusanya miamala ya nje ya mnyororo kwenye kundi na kuituma kwa Ethereum kwa uthibitishaji. Mchakato huu unahusisha kubana data inayohusiana na muamala na kuichapisha kwenye Ethereum kama `calldata` au kwa blobs. + +`calldata` ni eneo lisiloweza kurekebishwa, lisilo la kudumu katika mkataba-erevu ambalo hufanya kazi kwa kiasi kikubwa kama [kumbukumbu](/developers/docs/smart-contracts/anatomy/#memory). Wakati `calldata` hudumu kwenye mnyororo kama sehemu ya [kumbukumbu za historia](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html?highlight=memory#logs) za mnyororo wa bloku, haihifadhiwi kama sehemu ya hali ya Ethereum. Kwa sababu `calldata` haigusi sehemu yoyote ya hali ya Ethereum, ni nafuu zaidi kuliko hali kwa kuhifadhi data kwenye mnyororo. + +Neno msingi `calldata` pia hutumiwa katika Solidity kupitisha hoja kwa kazi ya mkataba-erevu wakati wa utekelezaji. `calldata` hubainisha kazi inayoitwa wakati wa muamala na hushikilia ingizo kwa kazi hiyo katika mfumo wa mfuatano holela wa baiti. + +Katika muktadha wa optimistic rollups, `calldata` hutumiwa kutuma data ya muamala iliyobanwa kwa mkataba wa kwenye mnyororo. Mtoa huduma wa kusambaza huongeza awamu mpya kwa kuita kitendaji kazi kinachohitajika katika mkataba wa kusambaza na kupitisha data iliyobanwa kama hoja za utendaji kazi. Kutumia `calldata` hupunguza ada za mtumiaji kwa kuwa gharama nyingi ambazo rollups huingia hutokana na kuhifadhi data kwenye mnyororo. + +Huu ni [mfano](https://eth.blockscout.com/tx/0x9102bfce17c58b5fc1c974c24b6bb7a924fb5fbd7c4cd2f675911c27422a5591) wa uwasilishaji wa kundi la rollup kuonyesha jinsi dhana hii inavyofanya kazi. Mratibu wa mfuatano alianzisha mbinu ya `appendSequencerBatch()` na kupitisha data ya muamala iliyobanwa kama ingizo kwa kutumia `calldata`. + +Baadhi ya rollups sasa hutumia blobs kuchapisha makundi ya miamala kwenye Ethereum. + +Blobs hazirekebishiki na si za kudumu (kama vile `calldata`) lakini hupunguzwa kutoka kwenye historia baada ya takriban siku 18. Kwa maelezo zaidi kuhusu blobs, angalia [Danksharding](/roadmap/danksharding). + +### Ahadi za hali {#state-commitments} + +Wakati wowote, hali ya optimistic rollup (akaunti, salio, msimbo wa mkataba, n.k.) hupangwa kama [Mti wa Merkle](/whitepaper/#merkle-trees) unaoitwa “mti wa hali”. Mzizi wa mti huu wa Merkle (mzizi wa jimbo), ambao unarejelea hali ya hivi punde ya upandaji, huharakishwa na kuhifadhiwa katika mkataba wa kuorodhesha. Kila mpito wa jimbo kwenye mnyoro huzalisha hali mpya ya kusambaza, ambayo mtoa huduma hujitolea kwa kukokotoa mzizi wa jimbo jipya. + +Opereta anahitajika kuwasilisha mizizi ya zamani ya hali na mizizi mipya ya hali anapochapisha makundi. Ikiwa mzizi wa hali ya zamani unalingana na mzizi wa jimbo uliopo katika mkataba wa ndani ya mnyororo, mwisho hutupwa na kubadilishwa na mzizi wa jimbo jipya. + +Opereta wa rollup pia anahitajika kuweka mzizi wa Merkle kwa kundi la muamala lenyewe. Hii inaruhusu mtu yeyote kuthibitisha ujumuishwaji wa muamala katika kundi (kwenye L1) kwa kuwasilisha [uthibitisho wa Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/). + +Ahadi za hali, hasa mizizi ya hali, ni muhimu kwa kuthibitisha usahihi wa mabadiliko ya hali katika optimistic rollup. Mkataba wa ugawaji hukubali mizizi ya jimbo jipya kutoka kwa waendeshaji mara tu baada ya kuchapishwa, lakini inaweza baadaye kufuta mizizi batili ya hali ili kurejesha uwasilishaji katika hali yake sahihi. + +### Uthibitishaji wa ulaghai {#fraud-proving} + +Kama ilivyoelezwa, optimistic rollups huruhusu mtu yeyote kuchapisha bloku bila kutoa thibitisho za uhalali. Hata hivyo, ili kuhakikisha kuwa mnyoror unasalia kuwa salama, uwasilishaji wa matumaini hubainisha muda ambao mtu yeyote anaweza kupinga mabadiliko ya jimbo. Hivyo, bloku za rollup huitwa “madai” kwani mtu yeyote anaweza kupinga uhalali wake. + +Ikiwa mtu atapinga dai, basi itifaki ya rollup itaanzisha ukokotoaji wa ushahidi wa ulaghai. Kila aina ya ushahidi wa ulaghai ni wa mwingiliano—mtu lazima achapishe dai kabla ya mtu mwingine kulipinga. Tofauti iko katika raundi ngapi za mwingiliano zinahitajika ili kukokotoa ushahidi wa ulaghai. + +Mifumo ya uthibitishaji wa mwingiliano wa raundi moja hurudia miamala iliyopingwa kwenye L1 ili kugundua madai batili. Itifaki ya ujumuishaji huiga utekelezaji upya wa miamala iliyobishaniwa kwenye L1 (Ethereum) kwa kutumia mkataba wa kithibitishaji, huku hali iliyokokotwa ikibainisha ni nani atashinda shindano hilo. Ikiwa dai la mpinzani kuhusu hali sahihi ya uwasilishaji ni sahihi, mwendeshaji ataadhibiwa kwa kukatwa dhamana yake. + +Hata hivyo, kutekeleza tena miamala kwenye L1 ili kugundua ulaghai kunahitaji uchapishaji wa ahadi za jimbo kwa miamala ya mtu binafsi na kuongeza orodha za data lazima zichapishwe kwenye mnyororo. Kurudia miamala pia husababisha gharama kubwa za gesi. Kwa sababu hizi, uboreshaji wa matumaini unabadilika hadi uthibitishaji wa mwingiliano wa pande nyingi, ambao unafikia lengo sawa (yaani, kugundua utendakazi batili) kwa ufanisi zaidi. + +#### Uthibitishaji wa mwingiliano wa raundi nyingi {#multi-round-interactive-proving} + +Uthibitishaji wa mwingiliano wa pande nyingi unahusisha itifaki ya kurudi na kwenda kati ya mdai na mpinzani inayosimamiwa na mkataba wa kithibitishaji cha L1, ambao hatimaye huamua mhusika mwongo. Baada ya nodi ya L2 kupinga dai, mdai anahitajika kugawanya dai lililopingwa katika nusu mbili sawa. Kila dai la kibinafsi katika kesi hii litakuwa na hatua nyingi za ukokotoaji kama lile lingine. + +Mpinzani atachagua dai gani anataka kupinga. Mchakato wa kugawanya (unaoitwa “itifaki ya sehemu mbili”) unaendelea hadi pande zote mbili zinapinga dai kuhusu hatua _moja_ ya utekelezaji. Katika hatua hii, mkataba wa L1 utatatua mzozo kwa kutathmini maagizo (na matokeo yake) ili kumkamata mhusika mdanganyifu. + +Mdai anahitajika kutoa “uthibitisho wa hatua moja” unaothibitisha uhalali wa ukokotoaji wa hatua moja uliopingwa. Ikiwa mdai atashindwa kutoa uthibitisho wa hatua moja, au mthibitishaji wa L1 akiona uthibitisho huo ni batili, wanapoteza changamoto. + +Baadhi ya dokezo kuhusu aina hii ya ushahidi wa ulaghai: + +1. Uthibitishaji wa ulaghai wa mwingiliano wa raundi nyingi unachukuliwa kuwa na ufanisi kwa sababu unapunguza kazi ambayo mnyororo wa L1 lazima ufanye katika usuluhishi wa mizozo. Badala ya kurudia muamala mzima, mnyororo wa L1 unahitaji tu kutekeleza tena hatua moja katika utekelezaji wa rollup. + +2. Itifaki za sehemu mbili hupunguza kiasi cha data iliyochapishwa kwenye mnyororo (hakuna haja ya kuchapisha ahadi za hali kwa kila muamala). Pia, miamala ya optimistic rollup haibanwi na kikomo cha gesi cha Ethereum. Kinyume chake, optimistic rollups zinazotekeleza tena miamala lazima zihakikishe muamala wa L2 una kikomo cha chini cha gesi ili kuiga utekelezaji wake ndani ya muamala mmoja wa Ethereum. + +3. Sehemu ya dhamana ya mdai mwenye nia mbaya hupewa mpinzani, huku sehemu nyingine ikichomwa. Uchomaji huo huzuia kula njama miongoni mwa wathibitishaji; ikiwa wathibitishaji wawili watakula njama kuanzisha changamoto za uwongo, bado watapoteza sehemu kubwa ya hisa yote. + +4. Uthibitishaji wa mwingiliano wa raundi nyingi huhitaji pande zote mbili (mdai na mpinzani) kuchukua hatua ndani ya muda maalum. Kushindwa kuchukua hatua kabla ya muda uliopangwa kuisha husababisha mhusika aliyeshindwa kupoteza changamoto. + +#### Kwa nini thibitisho za ulaghai ni muhimu kwa optimistic rollups {#fraud-proof-benefits} + +Thibitisho za ulaghai ni muhimu kwa sababu huwezesha _umalizikaji usio na uaminifu_ katika optimistic rollups. Umalizikaji usio na uaminifu ni ubora wa optimistic rollups unaohakikisha kwamba muamala—mradi tu ni halali—hatimaye utathibitishwa. + +Nodi zenye nia mbaya zinaweza kujaribu kuchelewesha uthibitisho wa bloku halali ya rollup kwa kuanzisha changamoto za uwongo. Hata hivyo, thibitisho za ulaghai hatimaye zitathibitisha uhalali wa bloku ya rollup na kusababisha ithibitishwe. + +Hii pia inahusiana na sifa nyingine ya usalama ya optimistic rollups: uhalali wa mnyororo unategemea kuwepo kwa nodi _moja_ ya uaminifu. Nodi ya uaminifu inaweza kuendeleza mnyororo kwa usahihi kwa kuchapisha madai halali au kupinga madai batili. Vyovyote iwavyo, nodi zenye nia mbaya zinazoingia kwenye mizozo na nodi ya uaminifu zitapoteza hisa zao wakati wa mchakato wa uthibitishaji wa ulaghai. + +### Uwezo wa kushirikiana wa L1/L2 {#l1-l2-interoperability} + +Ukusanyaji wenye matumaini imeundwa kwa ajili ya ushirikiano na Ethereum Mtandao mkuu na kuruhusu watumiaji kupitisha ujumbe na data kiholela kati ya L1 na L2. Pia zinaoana na EVM, kwa hivyo unaweza kuhamisha [mfumo mtawanyo wa kimamlaka](/developers/docs/dapps/) zilizopo kwenda optimistic rollups au kuunda mfumo mtawanyo wa kimamlaka mpya kwa kutumia zana za maendeleo za Ethereum. + +#### 1. Uhamisho wa mali {#asset-movement} + +##### Kuingia kwenye rollup + +Ili kutumia optimistic rollup, watumiaji huweka ETH, tokeni za ERC-20, na mali zingine zinazokubalika katika mkataba wa [daraja](/developers/docs/bridges/) la rollup kwenye L1. Mkataba wa daraja utarejesha muamala hadi L2, ambapo kiasi sawa cha vipengele hutungwa na kutumwa kwa anwani iliyochaguliwa na mtumiaji kwenye orodha ya matumaini. + +Miamala inayotokana na mtumiaji (kama vile amana ya L1 > L2) kwa kawaida huwekwa kwenye foleni hadi mratibu wa mfuatano atakapoziwasilisha tena kwenye mkataba wa rollup. Hata hivyo, ili kuhifadhi upinzani wa udhibiti, uwasilishaji wenye matumaini huruhusu watumiaji kuwasilisha muamala moja kwa moja kwa mkataba wa uongezaji wa mtandao ikiwa umecheleweshwa kupita muda wa juu unaoruhusiwa. + +Baadhi ya optimistic rollups huchukua mbinu ya moja kwa moja zaidi kuzuia waratibu wa mfuatano kudhibiti watumiaji. Hapa, kizuizi kinafafanuliwa na miamala yote iliyowasilishwa kwa mkataba wa L1 tangu kizuizi cha awali (k.m., amana) pamoja na miamala iliyochakatwa kwenye mnyororo wa usambazaji. Ikiwa mfuatano utapuuza shughuli ya L1, itachapisha (inawezekana) mzizi wa hali mbaya; kwa hivyo, wafuataji ufuatano hawawezi kuchelewesha jumbe zinazozalishwa na mtumiaji mara tu zitakapowekwa kwenye L1. + +##### Kutoka kwenye rollup + +Kutoa pesa kutoka kwa optimistic rollup kwenda Ethereum ni ngumu zaidi kutokana na mpango wa uthibitishaji wa ulaghai. Ikiwa mtumiaji ataanzisha muamala wa L2 > L1 ili kutoa fedha zilizowekwa kwenye L1, lazima asubiri hadi kipindi cha changamoto—kinachodumu takriban siku saba—kiishe. Hata hivyo, mchakato wa kutoa pesa wenyewe ni rahisi. + +Baada ya ombi la uondoaji kuanzishwa kwenye utayarishaji wa L2, muamala hujumuishwa kwenye kundi linalofuata, huku mali za mtumiaji kwenye uwekaji zikiteketezwa. Pindi kundi linapochapishwa kwenye Ethereum, mtumiaji anaweza kukokotoa uthibitisho wa Merkle unaothibitisha kujumuishwa kwa muamala wao wa kuondoka kwenye kizuizi. Kisha ni suala la kusubiri kupitia kipindi cha kuchelewa ili kukamilisha shughuli kwenye L1 na kutoa fedha kwa Mtandao mkuu. + +Ili kuepuka kusubiri wiki moja kabla ya kutoa fedha kwenda Ethereum, watumiaji wa optimistic rollup wanaweza kutumia **mtoa huduma wa ukwasi** (LP). Mtoa huduma wa ukwasi huchukua umiliki wa uondoaji unaosubiri wa L2 na humlipa mtumiaji kwenye L1 (kwa kubadilishana na ada). + +Watoa huduma za ukwasi wanaweza kuangalia uhalali wa ombi la mtumiaji la kujiondoa (kwa kutekeleza mnyororo wenyewe) kabla ya kutoa pesa. Kwa njia hii wanakuwa na uhakika kwamba muamala utathibitishwa hatimaye (yaani, umalizikaji usio na uaminifu). + +#### 2. Upatanifu wa EVM {#evm-compatibility} + +Kwa wasanidi programu, faida ya optimistic rollups ni utangamano wao—au, bora zaidi, usawa—na [Mashine Halisi ya Ethereum (EVM)](/developers/docs/evm/). Rollups zinazoendana na EVM zinatii masharti katika [Karatasi ya Njano ya Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf) na kuunga mkono EVM katika kiwango cha bytecode. + +Utangamano wa EVM katika optimistic rollups una faida zifuatazo: + +i. Wasanifu programu wanaweza kuhamisha mkataba mahiri zilizopo kwenye Ethereum hadi kwa minyororo ya kusambaza yenye matumaini bila kulazimika kurekebisha misingi ya msimbo kwa upana. Hii inaweza kuokoa muda wa timu za maendeleo wakati wa kupeleka mikataba-erevu ya Ethereum kwenye L2. + +ii. Wasanidi programu na timu za mradi zinazotumia optimistic rollups wanaweza kutumia miundombinu ya Ethereum. Hii inajumuisha lugha za programu, maktaba za msimbo, zana za majaribio, programu za wateja, miundombinu ya upelekaji, na kadhalika. + +Kutumia zana zilizopo ni muhimu kwa sababu zana hizi zimekaguliwa kwa kina, zimerekebishwa, na kuboreshwa kwa miaka mingi. Pia huondoa hitaji la wasanidi wa Ethereum kujifunza jinsi ya kujenga na rundo jipya kabisa la maendeleo. + +#### 3. Wito wa mkataba wa minyororo-tofauti {#cross-chain-contract-calls} + +Watumiaji (akaunti zinazomilikiwa na kampuni ya nje) huingiliana na mikataba ya L2 kwa kuwasilisha muamala kwa mkataba wa kusajili au kuwa na mfuatano au kithibitishaji kuwafanyia hivyo. Machapisho yenye matumaini pia huruhusu akaunti za mikataba kwenye Ethereum kuingiliana na mikataba ya L2 kwa kutumia mikataba ya kuweka madaraja kutuma ujumbe na kupitisha data kati ya L1 na L2. Hii inamaanisha kuwa unaweza kupanga mkataba wa L1 kwenye Ethereum mtandao mkuu ili kuomba utendaji kazi wa mikataba kwenye uwasilishaji wa matumaini wa L2. + +Wito wa mkataba wa minyororo-tofauti hufanyika bila mpangilio maalum—ikimaanisha wito huanzishwa kwanza, kisha hutekelezwa baadaye. Hii ni tofauti na wito kati ya mikataba miwili kwenye Ethereum, ambapo wito hutoa matokeo mara moja. + +Mfano wa wito wa mkataba wa minyororo-tofauti ni uwekaji wa tokeni ulioelezewa hapo awali. Mkataba kwenye L1 huondoa tokeni za mtumiaji na kutuma ujumbe kwa mkataba wa L2 uliooanishwa ili kutengeneza kiasi sawa cha tokeni kwenye ukusanyaji. + +Kwa vile wito wa ujumbe wa minyororo-tofauti husababisha utekelezaji wa mkataba, mtumaji kwa kawaida huhitajika kulipia [gharama za gesi](/developers/docs/gas/) kwa ajili ya ukokotoaji. Inashauriwa kuweka kikomo cha juu cha gesi ili kuzuia muamala ushindwe kwenye mnyororo lengwa. Hali ya kuweka daraja la ishara ni mfano mzuri; ikiwa upande wa L1 wa shughuli (kuweka ishara) hufanya kazi, lakini upande wa L2 (kutengeneza ishara mpya) hushindwa kutokana na gharama ya muamala ya chini, amana inakuwa isiyoweza kurejeshwa. + +Hatimaye, tunapaswa kutambua kwamba wito wa ujumbe wa L2 > L1 kati ya mikataba unahitaji kuzingatia ucheleweshaji (wito wa L1 > L2 kwa kawaida hutekelezwa baada ya dakika chache). Hii ni kwa sababu ujumbe uliotumwa kwa Mtandao Mkuu kutoka kwa optimistic rollup hauwezi kutekelezwa hadi dirisha la changamoto liishe. + +## Ada za optimistic rollup hufanyaje kazi? {#how-do-optimistic-rollup-fees-work} + +Optimistic rollups hutumia mpango wa ada ya gesi, sawa na Ethereum, kuashiria ni kiasi gani watumiaji hulipa kwa kila muamala. Ada zinazotozwa kwenye optimistic rollups hutegemea vipengele vifuatavyo: + +1. **Uandishi wa hali**: Optimistic rollups huchapisha data ya muamala na vichwa vya bloku (vinavyojumuisha hashi ya kichwa cha bloku iliyopita, mzizi wa hali, mzizi wa kundi) kwa Ethereum kama `blob`, au "binary large object". [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) ilianzisha suluhisho la gharama nafuu la kujumuisha data kwenye mnyororo. `blob` ni sehemu mpya ya muamala ambayo inaruhusu rollups kuchapisha data ya mabadiliko ya hali iliyobanwa kwa Ethereum L1. Tofauti na `calldata`, ambayo hubaki kwenye mnyororo kabisa, blobs ni za muda mfupi na zinaweza kupunguzwa kutoka kwa wateja baada ya [epochs 4096](https://github.com/ethereum/consensus-specs/blob/81f3ea8322aff6b9fb15132d050f8f98b16bdba4/configs/mainnet.yaml#L147) (takriban siku 18). Kwa kutumia blobs kuchapisha makundi ya miamala iliyobanwa, optimistic rollups zinaweza kupunguza kwa kiasi kikubwa gharama ya kuandika miamala kwenye L1. + +2. **Gesi ya blob iliyotumika**: Miamala inayobeba blob hutumia utaratibu wa ada unaobadilika sawa na ule ulioletwa na [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559). Ada ya gesi kwa miamala ya aina-3 inazingatia ada ya msingi ya blobs, ambayo huamuliwa na mtandao kulingana na mahitaji ya nafasi ya blob na matumizi ya nafasi ya blob ya muamala unaotumwa. + +3. **Ada za opereta wa L2**: Hiki ni kiasi kinacholipwa kwa nodi za rollup kama fidia kwa gharama za ukokotoaji zinazotumika katika kuchakata miamala, sawa na ada za gesi kwenye Ethereum. Nodi za rollup hutoza ada za chini za muamala kwa kuwa L2s zina uwezo wa juu wa uchakataji na hazikabiliwi na msongamano wa mtandao unaowalazimisha wathibitishaji kwenye Ethereum kutoa kipaumbele kwa miamala yenye ada za juu. + +Optimistic rollups hutumia mifumo kadhaa kupunguza ada kwa watumiaji, ikiwa ni pamoja na kuweka miamala katika makundi na kubana `calldata` ili kupunguza gharama za uchapishaji wa data. Unaweza kuangalia [kifuatiliaji cha ada za L2](https://l2fees.info/) kwa muhtasari wa wakati halisi wa gharama ya kutumia optimistic rollups zinazotegemea Ethereum. + +## Je, optimistic rollups huongezaje ukubwa wa Ethereum? {#scaling-ethereum-with-optimistic-rollups} + +Kama ilivyoelezwa, optimistic rollups huchapisha data ya muamala iliyobanwa kwenye Ethereum ili kuhakikisha upatikanaji wa data. Uwezo wa kubana data iliyochapishwa kwenye mnyororo ni muhimu ili kuongeza upitishaji kwenye Ethereum kwa kutumia optimistic rollups. + +Mnyororo mkuu wa Ethereum huweka vikomo vya kiasi cha data ambacho bloku zinaweza kushikilia, kinachopimwa kwa vitengo vya gesi ([ukubwa wa wastani wa bloku](/developers/docs/blocks/#block-size) ni gesi milioni 15). Ingawa hii inazuia kiasi cha gesi ambacho kila muamala unaweza kutumia, inamaanisha pia tunaweza kuongeza miamala inayochakatwa kwa kila bloku kwa kupunguza data inayohusiana na muamala—na hivyo kuboresha moja kwa moja uongezaji. + +Optimistic rollups hutumia mbinu kadhaa kufikia ubanaji wa data ya muamala na kuboresha viwango vya TPS. Kwa mfano, [makala](https://vitalik.eth.limo/general/2021/01/05/rollup.html) hii inalinganisha data ambayo muamala wa msingi wa mtumiaji (kutuma ether) huzalisha kwenye Mtandao Mkuu dhidi ya kiasi cha data ambacho muamala huo huo huzalisha kwenye rollup: + +| Kigezo | Ethereum (L1) | Rollup (L2) | +| ----------- | ---------------------------------------------------- | ------------------------------------ | +| Nonce | ~3 | 0 | +| Bei ya gesi | ~8 | 0-0.5 | +| Gesi | 3 | 0-0.5 | +| Kwa | 21 | 4 | +| Thamani | 9 | ~3 | +| Sahihi | ~68 (2 + 33 + 33) | ~0.5 | +| Kutoka | 0 (imerejeshwa kutoka kwa sig) | 4 | +| **Jumla** | **\~baiti 112** | **\~baiti 12** | + +Kufanya hesabu zisizo sahihi kwenye takwimu hizi kunaweza kusaidia kuonyesha uboreshaji wa uwezo wa kupanuka unaotolewa na uwasilishaji wa matumaini: + +1. Ukubwa unaolengwa kwa kila bloku ni gesi milioni 15 na inagharimu gesi 16 kuthibitisha baiti moja ya data. Kugawa ukubwa wa wastani wa bloku kwa gesi 16 (15,000,000/16) kunaonyesha kuwa bloku ya wastani inaweza kushikilia **baiti 937,500 za data**. +2. Ikiwa muamala wa msingi wa rollup unatumia baiti 12, basi bloku ya wastani ya Ethereum inaweza kuchakata **miamala 78,125 ya rollup** (937,500/12) au **makundi 39 ya rollup** (ikiwa kila kundi lina wastani wa miamala 2,000). +3. Ikiwa bloku mpya inazalishwa kwenye Ethereum kila sekunde 15, basi kasi ya uchakataji ya rollup ingekuwa takriban **miamala 5,208 kwa sekunde**. Hii inafanywa kwa kugawa idadi ya miamala ya msingi ya rollup ambayo bloku ya Ethereum inaweza kushikilia (**78,125**) kwa wastani wa muda wa bloku (**sekunde 15**). + +Huu ni makadirio ya matumaini, kwa kuzingatia kwamba miamala ya optimistic rollup haiwezi kujumuisha bloku nzima kwenye Ethereum. Hata hivyo, inaweza kutoa wazo potofu la ni kiasi gani cha faida za scalability ambazo matoleo yenye matumaini yanaweza kumudu watumiaji wa Ethereum (utekelezaji wa sasa unatoa hadi TPS 2,000). + +Kuanzishwa kwa [ugawanyaji wa data](/roadmap/danksharding/) kwenye Ethereum kunatarajiwa kuboresha uongezaji katika optimistic rollups. Kwa sababu miamala ya rollup lazima ishiriki nafasi ya bloku na miamala mingine isiyo ya rollup, uwezo wao wa uchakataji umewekewa mipaka na upitishaji wa data kwenye mnyororo mkuu wa Ethereum. Danksharding itaongeza nafasi inayopatikana kwa minyororo ya L2 kuchapisha data kwa kila bloku, kwa kutumia hifadhi ya "blob" ya bei nafuu, isiyo ya kudumu badala ya `CALLDATA` ya gharama kubwa, ya kudumu. + +### Faida na hasara za optimistic rollups {#optimistic-rollups-pros-and-cons} + +| Faida | Hasara | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Hutoa maboresho makubwa katika uongezaji bila kuathiri usalama au hali ya kutokuwa na uaminifu. | Ucheleweshaji katika umalizikaji wa muamala kutokana na changamoto zinazowezekana za ulaghai. | +| Data ya muamala huhifadhiwa kwenye mnyororo wa safu ya 1, na kuboresha uwazi, usalama, ukinzani dhidi ya udhibiti, na ugatuzi. | Waendeshaji wa rollup wa kati (waratibu wa mfuatano) wanaweza kuathiri mpangilio wa miamala. | +| Uthibitishaji wa ulaghai huhakikisha umalizikaji usio na uaminifu na huruhusu walio wachache waaminifu kulinda mnyororo. | Ikiwa hakuna nodi za uaminifu, opereta mwenye nia mbaya anaweza kuiba fedha kwa kuchapisha bloku batili na ahadi za hali. | +| Kukokotoa thibitisho za ulaghai kuko wazi kwa nodi ya kawaida ya L2, tofauti na thibitisho za uhalali (zinazotumika katika ZK-rollups) ambazo zinahitaji vifaa maalum. | Mfumo wa usalama unategemea angalau nodi moja ya uaminifu inayotekeleza miamala ya rollup na kuwasilisha thibitisho za ulaghai ili kupinga mabadiliko batili ya hali. | +| Rollups hunufaika na "uhai usio na uaminifu" (mtu yeyote anaweza kulazimisha mnyororo kuendelea kwa kutekeleza miamala na kuchapisha madai) | Watumiaji lazima wasubiri kipindi cha changamoto cha wiki moja kiishe kabla ya kutoa fedha kurudi Ethereum. | +| Optimistic rollups hutegemea motisha za kiuchumi za kripto zilizoundwa vizuri ili kuongeza usalama kwenye mnyororo. | Rollups lazima zichapishe data zote za muamala kwenye mnyororo, jambo ambalo linaweza kuongeza gharama. | +| Utangamano na EVM na Solidity huruhusu wasanidi programu kuhamisha mikataba-erevu asilia ya Ethereum kwenda kwa rollups au kutumia zana zilizopo kuunda mfumo mtawanyo wa kimamlaka mpya. | | + +### Maelezo ya kuona ya optimistic rollups {#optimistic-video} + +Wewe ni mwanafunzi wa kuona zaidi? Tazama Finematics ikielezea optimistic rollups: + + + +## Masomo zaidi kuhusu optimistic rollups + +- [Jinsi optimistic rollups zinavyofanya kazi (Mwongozo Kamili)](https://www.alchemy.com/overviews/optimistic-rollups) +- [Rollup ya Mnyororo wa Bloku ni Nini? Utangulizi wa Kiufundi](https://www.ethereum-ecosystem.com/blog/what-is-a-blockchain-rollup-a-technical-introduction) +- [Mwongozo Muhimu wa Arbitrum](https://www.bankless.com/the-essential-guide-to-arbitrum) +- [Mwongozo wa Vitendo wa Rollups za Ethereum](https://web.archive.org/web/20241108192208/https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) +- [Hali ya Thibitisho za Ulaghai katika L2s za Ethereum](https://web.archive.org/web/20241124154627/https://research.2077.xyz/the-state-of-fraud-proofs-in-ethereum-l2s) +- [Je, Rollup ya Optimism inafanyaje kazi kweli?](https://www.paradigm.xyz/2021/01/how-does-optimism-s-rollup-really-work) +- [Uchambuzi wa Kina wa OVM](https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52) +- [Mashine Halisi ya Matumaini ni Nini?](https://www.alchemy.com/overviews/optimistic-virtual-machine) diff --git a/public/content/translations/sw/developers/docs/scaling/plasma/index.md b/public/content/translations/sw/developers/docs/scaling/plasma/index.md new file mode 100644 index 00000000000..6623a9e0113 --- /dev/null +++ b/public/content/translations/sw/developers/docs/scaling/plasma/index.md @@ -0,0 +1,176 @@ +--- +title: Minyororo ya njozi +description: Utangulizi wa minyororo ya njozi kama suluhisho la uongezwaji linalotumiwa sasa na jumuiya ya Ethereum. +lang: sw +incomplete: true +sidebarDepth: 3 +--- + +Mnyororo wa Njozi ni mnyororo wa bloku tofauti unaofungwa kwenye Mtandao Mkuu wa Ethereum lakini hufanya miamala offchain kwa utaratibu wake wa uthibitishaji wa bloku. Minyororo ya njozi wakati mwingine hujulikana kama minyororo ya "mtoto", kimsingi nakala ndogo za Mtandao Mkuu wa Ethereum. Minyororo ya njozi hutumia [ushahidi wa ulaghai](/glossary/#fraud-proof) (kama [optimistic rollups](/developers/docs/scaling/optimistic-rollups/)) kusuluhisha mizozo. + +Miti ya Merkle huwezesha uundaji wa rundo lisilo na mwisho la minyororo hii ambayo inaweza kufanya kazi ili kupunguza kipimo data kutoka kwa minyororo ya wazazi (ikiwa ni pamoja na Mtandao Mkuu wa Ethereum). Hata hivyo, ingawa minyororo hii hupata usalama kutoka kwa Ethereum (kupitia ushahidi wa ulaghai), usalama na ufanisi wao huathiriwa na mapungufu kadhaa ya kimuundo. + +## Mahitaji ya awali {#prerequisites} + +Unapaswa kuwa na ufahamu mzuri wa mada zote za msingi na uelewa wa hali ya juu wa [uongezwaji wa Ethereum](/developers/docs/scaling/). + +## Njozi ni nini? + +Njozi ni mfumo wa kuboresha uwezo wa kuongezeka kwa minyororo ya bloku ya umma kama Ethereum. Kama ilivyoelezwa katika [karatasi nyeupe ya Njozi](http://plasma.io/plasma.pdf) ya awali, minyororo ya Njozi hujengwa juu ya mnyororo mwingine wa bloku (unaoitwa "mnyororo mkuu"). Kila "mnyororo wa mtoto" hupanuka kutoka kwa mnyororo mkuu na kwa ujumla hudhibitiwa na mkataba-erevu uliotumwa kwenye mnyororo wa mzazi. + +Mkataba wa Njozi hufanya kazi, miongoni mwa mambo mengine, kama [daraja](/developers/docs/bridges/) linalowaruhusu watumiaji kuhamisha mali kati ya Mtandao Mkuu wa Ethereum na mnyororo wa njozi. Ingawa hii inazifanya kuwa sawa na [sidechains](/developers/docs/scaling/sidechains/), minyororo ya njozi hunufaika—angalau, kwa kiasi fulani—kutokana na usalama wa Mtandao Mkuu wa Ethereum. Hii ni tofauti na sidechains ambazo zinawajibika kikamilifu kwa usalama wao. + +## Njozi inafanyaje kazi? + +Vipengele vya msingi vya mfumo wa Njozi ni: + +### Ukokotoaji wa Offchain {#offchain-computation} + +Kasi ya sasa ya uchakataji ya Ethereum imepunguzwa hadi miamala ~15-20 kwa sekunde, na hivyo kupunguza uwezekano wa muda mfupi wa uongezwaji ili kushughulikia watumiaji wengi zaidi. Tatizo hili lipo hasa kwa sababu [utaratibu wa makubaliano](/developers/docs/consensus-mechanisms/) wa Ethereum unahitaji nodi nyingi za mtandao wa rika-kwa-rika ili kuthibitisha kila sasisho la hali ya mnyororo wa bloku. + +Ingawa utaratibu wa makubaliano wa Ethereum ni muhimu kwa usalama, huenda usitumike kwa kila hali ya utumiaji. Kwa mfano, Alice anaweza asihitaji malipo yake ya kila siku kwa Bob kwa ajili ya kikombe cha kahawa kuthibitishwa na mtandao mzima wa Ethereum kwa kuwa kuna uaminifu fulani kati ya pande zote mbili. + +Njozi inadhania kuwa Mtandao Mkuu wa Ethereum hauhitaji kuthibitisha miamala yote. Badala yake, tunaweza kuchakata miamala nje ya Mtandao Mkuu, na kuondoa nodi kutoka kwa kulazimika kuthibitisha kila muamala. + +Ukokotoaji wa offchain ni muhimu kwa kuwa minyororo ya Njozi inaweza kuboresha kasi na gharama. Kwa mfano, mnyororo wa Njozi unaweza—na mara nyingi hufanya—kutumia "opereta" mmoja kusimamia mpangilio na utekelezaji wa miamala. Kwa chombo kimoja tu kinachothibitisha miamala, muda wa uchakataji kwenye mnyororo wa njozi ni wa haraka kuliko Mtandao Mkuu wa Ethereum. + +### Ahadi za hali {#state-commitments} + +Ingawa Njozi hutekeleza miamala offchain, hukamilishwa kwenye safu kuu ya utekelezaji ya Ethereum—vinginevyo, minyororo ya Njozi haiwezi kufaidika na dhamana za usalama za Ethereum. Lakini kukamilisha miamala ya offchain bila kujua hali ya mnyororo wa njozi kungevunja mtindo wa usalama na kuruhusu kuenea kwa miamala batili. Hii ndiyo sababu opereta, chombo kinachohusika na utengenezaji wa bloku kwenye mnyororo wa njozi, anahitajika kuchapisha "ahadi za hali" kwenye Ethereum mara kwa mara. + +[Mpango wa ahadi](https://en.wikipedia.org/wiki/Commitment_scheme) ni mbinu ya kriptografia ya kujitolea kwa thamani au taarifa bila kuifichua kwa mhusika mwingine. Ahadi ni za "lazima" kwa maana kwamba huwezi kubadilisha thamani au taarifa mara tu unapojitolea kwayo. Ahadi za hali katika Njozi huchukua fomu ya "mizizi ya Merkle" (inayotokana na [mti wa Merkle](/whitepaper/#merkle-trees)) ambayo opereta hutuma kwa vipindi kwa mkataba wa Njozi kwenye mnyororo wa Ethereum. + +Mizizi ya Merkle ni misingi ya kriptografia inayowezesha kubana kiasi kikubwa cha habari. Mzizi wa Merkle (pia huitwa "mzizi wa bloku" katika hali hii) unaweza kuwakilisha miamala yote katika bloku. Mizizi ya Merkle pia hurahisisha kuthibitisha kuwa kipande kidogo cha data ni sehemu ya mkusanyiko mkubwa wa data. Kwa mfano, mtumiaji anaweza kutoa [uthibitisho wa Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/#main-content) ili kuthibitisha ujumuishaji wa muamala katika bloku maalum. + +Mizizi ya Merkle ni muhimu kwa kutoa habari kuhusu hali ya offchain kwa Ethereum. Unaweza kufikiria mizizi ya Merkle kama "sehemu za kuhifadhi": opereta anasema, "Hii ndiyo hali ya mnyororo wa Njozi kwa wakati x, na huu ni mzizi wa Merkle kama uthibitisho." Opereta anajitolea kwa _hali ya sasa_ ya mnyororo wa njozi na mzizi wa Merkle, ndiyo sababu inaitwa "ahadi ya hali". + +### Kuingia na kutoka {#entries-and-exits} + +Ili watumiaji wa Ethereum wanufaike na Njozi, kunahitaji kuwa na utaratibu wa kuhamisha fedha kati ya Mtandao Mkuu na minyororo ya njozi. Hatuwezi kutuma ether kiholela kwa anwani kwenye mnyororo wa njozi, ingawa—minyororo hii haiendani, kwa hivyo muamala unaweza kushindwa au kusababisha upotevu wa fedha. + +Njozi hutumia mkataba mkuu unaoendeshwa kwenye Ethereum ili kuchakata maingizo na matokeo ya watumiaji. Mkataba huu mkuu pia unawajibika kwa kufuatilia ahadi za hali (zilizoelezwa mapema) na kuadhibu tabia isiyo ya uaminifu kupitia ushahidi wa ulaghai (zaidi juu ya hili baadaye). + +#### Kuingia kwenye mnyororo wa njozi {#entering-the-plasma-chain} + +Ili kuingia kwenye mnyororo wa njozi, Alice (mtumiaji) atalazimika kuweka ETH au tokeni yoyote ya ERC-20 kwenye mkataba wa njozi. Opereta wa njozi, anayefuatilia amana za mkataba, huunda tena kiasi kinacholingana na amana ya awali ya Alice na kuitoa kwa anwani yake kwenye mnyororo wa njozi. Alice anahitajika kuthibitisha kupokea fedha kwenye mnyororo wa mtoto na kisha anaweza kutumia fedha hizi kwa miamala. + +#### Kutoka kwenye mnyororo wa njozi {#exiting-the-plasma-chain} + +Kutoka kwenye mnyororo wa njozi ni ngumu zaidi kuliko kuingia kwa sababu kadhaa. Kubwa zaidi ni kwamba, ingawa Ethereum ina habari kuhusu hali ya mnyororo wa njozi, haiwezi kuthibitisha ikiwa habari hiyo ni ya kweli au la. Mtumiaji mwenye nia mbaya anaweza kutoa madai yasiyo sahihi ("Nina ETH 1000") na akafanikiwa kutoa uthibitisho wa uongo ili kuunga mkono madai hayo. + +Ili kuzuia utoaji wenye nia mbaya, "kipindi cha changamoto" kimeanzishwa. Katika kipindi cha changamoto (kawaida wiki moja), yeyote anaweza kupinga ombi la kutoa pesa kwa kutumia uthibitisho wa ulaghai. Ikiwa changamoto itafaulu, basi ombi la kutoa pesa linakataliwa. + +Hata hivyo, kwa kawaida watumiaji ni waaminifu na hutoa madai sahihi kuhusu fedha wanazomiliki. Katika hali hii, Alice ataanzisha ombi la kutoa pesa kwenye mnyororo mkuu (Ethereum) kwa kuwasilisha muamala kwa mkataba wa njozi. + +Lazima pia atoe uthibitisho wa Merkle unaothibitisha kuwa muamala uliounda fedha zake kwenye mnyororo wa Njozi ulijumuishwa kwenye bloku. Hii ni muhimu kwa marudio ya Njozi, kama vile [Njozi MVP](https://www.learnplasma.org/en/learn/mvp.html), ambayo hutumia mtindo wa [Matokeo ya Muamala Usiotumika (UTXO)](https://en.wikipedia.org/wiki/Unspent_transaction_output). + +Nyingine, kama [Njozi Cash](https://www.learnplasma.org/en/learn/cash.html), huwakilisha fedha kama [tokeni zisizoweza kubadilishwa](/developers/docs/standards/tokens/erc-721/) badala ya UTXO. Kutoa pesa, katika kesi hii, kunahitaji uthibitisho wa umiliki wa tokeni kwenye mnyororo wa Njozi. Hili hufanywa kwa kuwasilisha miamala miwili ya hivi karibuni inayohusisha tokeni na kutoa uthibitisho wa Merkle unaothibitisha ujumuishaji wa miamala hiyo kwenye bloku. + +Mtumiaji lazima pia aongeze dhamana kwenye ombi la kutoa pesa kama hakikisho la tabia ya uaminifu. Ikiwa mpinzani atathibitisha ombi la Alice la kutoa pesa ni batili, dhamana yake hupunguzwa, na baadhi yake huenda kwa mpinzani kama zawadi. + +Ikiwa kipindi cha changamoto kitapita bila mtu yeyote kutoa uthibitisho wa ulaghai, ombi la Alice la kutoa pesa linachukuliwa kuwa halali, na kumruhusu kupata amana kutoka kwa mkataba wa Njozi kwenye Ethereum. + +### Usuluhishi wa mizozo {#dispute-arbitration} + +Kama mnyororo wowote wa bloku, minyororo ya njozi inahitaji utaratibu wa kutekeleza uadilifu wa miamala iwapo washiriki watatenda kwa nia mbaya (k.m., kutumia fedha mara mbili). Kwa ajili hii, minyororo ya njozi hutumia ushahidi wa ulaghai kusuluhisha mizozo kuhusu uhalali wa mabadiliko ya hali na kuadhibu tabia mbaya. Ushahidi wa ulaghai hutumika kama utaratibu ambapo mnyororo wa mtoto wa Njozi huwasilisha malalamiko kwa mnyororo wake mkuu au kwa mnyororo mzizi. + +Ushahidi wa ulaghai ni dai tu kwamba mpito fulani wa hali si halali. Mfano ni ikiwa mtumiaji (Alice) anajaribu kutumia fedha zilezile mara mbili. Labda alitumia UTXO katika muamala na Bob na anataka kutumia UTXO ileile (ambayo sasa ni ya Bob) katika muamala mwingine. + +Ili kuzuia utoaji, Bob ataunda uthibitisho wa ulaghai kwa kutoa ushahidi wa Alice kutumia UTXO hiyo katika muamala uliopita na uthibitisho wa Merkle wa ujumuishaji wa muamala huo kwenye bloku. Mchakato uleule hufanya kazi katika Njozi Cash—Bob angehitaji kutoa uthibitisho kwamba Alice alihamisha tokeni anazojaribu kutoa mapema. + +Ikiwa changamoto ya Bob itafaulu, ombi la Alice la kutoa pesa linafutwa. Hata hivyo, mbinu hii inategemea uwezo wa Bob kufuatilia mnyororo kwa maombi ya kutoa pesa. Ikiwa Bob hayuko mtandaoni, basi Alice anaweza kuchakata utoaji wenye nia mbaya mara tu kipindi cha changamoto kinapokwisha. + +## Tatizo la kutoka kwa wingi katika njozi {#the-mass-exit-problem-in-plasma} + +Tatizo la kutoka kwa wingi hutokea wakati idadi kubwa ya watumiaji wanajaribu kutoa pesa kutoka kwa mnyororo wa njozi kwa wakati mmoja. Kwa nini tatizo hili lipo linahusiana na mojawapo ya matatizo makubwa ya Njozi: **kutopatikana kwa data**. + +Upatikanaji wa data ni uwezo wa kuthibitisha kuwa habari ya bloku iliyopendekezwa ilichapishwa kweli kwenye mtandao wa mnyororo wa bloku. Bloku "haipatikani" ikiwa mzalishaji anachapisha bloku yenyewe lakini anazuia data iliyotumika kuunda bloku hiyo. + +Bloku lazima zipatikane ikiwa nodi zitakuwa na uwezo wa kupakua bloku na kuthibitisha uhalali wa miamala. Minyororo ya bloku huhakikisha upatikanaji wa data kwa kulazimisha wazalishaji wa bloku kuchapisha data zote za miamala onchain. + +Upatikanaji wa data pia husaidia katika kupata itifaki za uongezwaji za offchain zinazojengwa kwenye safu ya msingi ya Ethereum. Kwa kulazimisha waendeshaji kwenye minyororo hii kuchapisha data za miamala kwenye Ethereum, mtu yeyote anaweza kupinga bloku batili kwa kuunda ushahidi wa ulaghai unaorejelea hali sahihi ya mnyororo. + +Minyororo ya njozi kimsingi huhifadhi data za miamala na opereta na **haichapishi data yoyote kwenye Mtandao Mkuu** (yaani, kando na ahadi za hali za mara kwa mara). Hii inamaanisha watumiaji lazima wategemee opereta kutoa data ya bloku ikiwa wanahitaji kuunda ushahidi wa ulaghai unaopinga miamala batili. Ikiwa mfumo huu utafanya kazi, basi watumiaji wanaweza kutumia ushahidi wa ulaghai kila wakati ili kulinda fedha zao. + +Tatizo huanza pale opereta, na si mtumiaji yeyote tu, ndiye mhusika anayetenda kwa nia mbaya. Kwa sababu opereta ndiye anayedhibiti mnyororo wa bloku peke yake, wana motisha zaidi ya kuendeleza mabadiliko batili ya hali kwa kiwango kikubwa, kama vile kuiba fedha za watumiaji kwenye mnyororo wa njozi. + +Katika hali hii, kutumia mfumo wa kawaida wa uthibitisho wa ulaghai haufanyi kazi. Opereta anaweza kwa urahisi kufanya muamala batili wa kuhamisha fedha za Alice na Bob kwenye pochi yake na kuficha data muhimu kwa ajili ya kuunda uthibitisho wa ulaghai. Hili linawezekana kwa sababu opereta hahitajiki kufanya data ipatikane kwa watumiaji au Mtandao Mkuu. + +Kwa hivyo, suluhisho la matumaini zaidi ni kujaribu "kutoka kwa wingi" kwa watumiaji kutoka kwenye mnyororo wa njozi. Kutoka kwa wingi kunapunguza kasi ya mpango wa opereta mwenye nia mbaya wa kuiba fedha na kunatoa kiwango fulani cha ulinzi kwa watumiaji. Maombi ya kutoa pesa hupangwa kulingana na wakati kila UTXO (au tokeni) ilipoundwa, na kuzuia waendeshaji wenye nia mbaya kuwatangulia watumiaji waaminifu. + +Hata hivyo, bado tunahitaji njia ya kuthibitisha uhalali wa maombi ya kutoa pesa wakati wa kutoka kwa wingi—ili kuzuia watu wenye fursa kutumia fujo kuchakata matokeo batili. Suluhisho ni rahisi: wahitaji watumiaji kuchapisha **hali halali ya mwisho ya mnyororo** ili kutoa pesa zao. + +Lakini mbinu hii bado ina matatizo. Kwa mfano, ikiwa watumiaji wote kwenye mnyororo wa njozi wanahitaji kutoka (ambalo linawezekana katika kesi ya opereta mwenye nia mbaya), basi hali nzima halali ya mnyororo wa njozi lazima itupwe kwenye safu ya msingi ya Ethereum mara moja. Kwa ukubwa wa kiholela wa minyororo ya njozi (throughput ya juu = data zaidi) na vikwazo vya kasi ya uchakataji wa Ethereum, hili si suluhisho bora. + +Ingawa michezo ya kutoka inasikika vizuri kinadharia, kutoka kwa wingi katika maisha halisi kunaweza kusababisha msongamano wa mtandao mzima kwenye Ethereum yenyewe. Kando na kudhuru utendaji kazi wa Ethereum, kutoka kwa wingi bila uratibu mzuri kunamaanisha kuwa watumiaji wanaweza wasiweze kutoa fedha kabla ya opereta kumaliza kila akaunti kwenye mnyororo wa njozi. + +## Faida na hasara za njozi {#pros-and-cons-of-plasma} + +| Faida | Hasara | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Inatoa throughput ya juu na gharama ya chini kwa kila muamala. | Haiungi mkono ukokotoaji wa jumla (haiwezi kuendesha mikataba-erevu). Uhamisho wa msingi tu wa tokeni, ubadilishanaji, na aina nyingine chache za miamala ndizo zinazotumika kupitia mantiki ya kiarifu. | +| Nzuri kwa miamala kati ya watumiaji wa kiholela (hakuna gharama za ziada kwa kila jozi ya watumiaji ikiwa wote wameanzishwa kwenye mnyororo wa njozi) | Unahitaji kufuatilia mtandao mara kwa mara (mahitaji ya uhai) au kukabidhi jukumu hili kwa mtu mwingine ili kuhakikisha usalama wa fedha zako. | +| Minyororo ya njozi inaweza kurekebishwa kwa matumizi maalum ambayo hayahusiani na mnyororo mkuu. Mtu yeyote, ikiwa ni pamoja na biashara, anaweza kubinafsisha mikataba-erevu ya Njozi ili kutoa miundombinu inayoweza kuongezwa inayofanya kazi katika mazingira tofauti. | Inategemea waendeshaji mmoja au zaidi kuhifadhi data na kuitoa inapohitajika. | +| Hupunguza mzigo kwenye Mtandao Mkuu wa Ethereum kwa kuhamisha ukokotoaji na ghala offchain. | Utoaji hucheleweshwa kwa siku kadhaa ili kuruhusu changamoto. Kwa mali zinazoweza kubadilishwa, hii inaweza kupunguzwa na watoa huduma za ukwasi, lakini kuna gharama ya mtaji inayohusishwa. | +| | Ikiwa watumiaji wengi sana watajaribu kutoka kwa wakati mmoja, Mtandao Mkuu wa Ethereum unaweza kupata msongamano. | + +## Njozi dhidi ya itifaki za uongezwaji za safu 2 {#plasma-vs-layer-2} + +Ingawa Njozi iliwahi kuchukuliwa kuwa suluhisho muhimu la uongezwaji kwa Ethereum, tangu wakati huo imeachwa kwa kupendelea [itifaki za uongezwaji za safu 2 (L2)](/layer-2/). Suluhisho za uongezwaji za L2 hurekebisha matatizo kadhaa ya Njozi: + +### Ufanisi {#efficiency} + +[Zero-Knowledge rollups](/developers/docs/scaling/zk-rollups) huzalisha ithibati za kriptografia za uhalali wa kila kundi la miamala inayochakatwa offchain. Hii huwazuia watumiaji (na waendeshaji) kuendeleza mabadiliko batili ya hali, na kuondoa hitaji la vipindi vya changamoto na michezo ya kutoka. Pia inamaanisha watumiaji hawana haja ya kufuatilia mnyororo mara kwa mara ili kulinda fedha zao. + +### Usaidizi kwa mikataba-erevu {#support-for-smart-contracts} + +Tatizo lingine la mfumo wa njozi lilikuwa [kutokuwa na uwezo wa kusaidia utekelezaji wa mikataba-erevu ya Ethereum](https://ethresear.ch/t/why-smart-contracts-are-not-feasible-on-plasma/2598/4). Kwa sababu hiyo, utekelezaji mwingi wa Njozi ulijengwa hasa kwa ajili ya malipo rahisi au ubadilishanaji wa tokeni za ERC-20. + +Kinyume chake, optimistic rollups, zinaendana na [Mashine ya Mtandaoni ya Ethereum](/developers/docs/evm/) na zinaweza kuendesha [mikataba-erevu](/developers/docs/smart-contracts/) asilia ya Ethereum, na kuzifanya kuwa suluhisho muhimu na _salama_ la kuongeza [programu zilizogatuliwa](/developers/docs/dapps/). Vile vile, mipango inaendelea ya [kuunda utekelezaji wa zero-knowledge wa EVM (zkEVM)](https://ethresear.ch/t/a-zk-evm-specification/11549) ambayo itaruhusu ZK-rollups kuchakata mantiki ya kiholela na kutekeleza mikataba-erevu. + +### Kutopatikana kwa data {#data-unavailability} + +Kama ilivyoelezwa awali, njozi inakabiliwa na tatizo la upatikanaji wa data. Ikiwa opereta mwenye nia mbaya angeendeleza mpito batili kwenye mnyororo wa njozi, watumiaji wasingeweza kuupinga kwa kuwa opereta anaweza kuzuia data inayohitajika kuunda uthibitisho wa ulaghai. Unda-mpya hutatua tatizo hili kwa kulazimisha waendeshaji kuchapisha data za miamala kwenye Ethereum, na kumruhusu yeyote kuthibitisha hali ya mnyororo na kuunda ushahidi wa ulaghai ikibidi. + +### Tatizo la kutoka kwa wingi {#mass-exit-problem} + +ZK-rollups na optimistic rollups zote zinatatua tatizo la Njozi la kutoka kwa wingi kwa njia mbalimbali. Kwa mfano, ZK-rollup inategemea mifumo ya kriptografia inayohakikisha waendeshaji hawawezi kuiba fedha za watumiaji katika hali yoyote. + +Vile vile, optimistic rollups huweka kipindi cha kuchelewesha utoaji ambapo mtu yeyote anaweza kuanzisha changamoto na kuzuia maombi ya utoaji yenye nia mbaya. Ingawa hii ni sawa na Njozi, tofauti ni kwamba wathibitishaji wanapata data inayohitajika kuunda ushahidi wa ulaghai. Hivyo, hakuna haja kwa watumiaji wa unda-mpya kujihusisha na uhamiaji wa haraka, wa "wa kwanza kutoka" kwenda Mtandao Mkuu wa Ethereum. + +## Njozi inatofautianaje na sidechains na ugawanyaji? {#plasma-sidechains-sharding} + +Njozi, sidechains, na ugawanyaji ni sawa kabisa kwa sababu zote zinaunganishwa na Mtandao Mkuu wa Ethereum kwa njia fulani. Hata hivyo, kiwango na nguvu ya miunganisho hii hutofautiana, jambo ambalo huathiri sifa za usalama za kila suluhisho la uongezwaji. + +### Njozi dhidi ya sidechains {#plasma-vs-sidechains} + +[Sidechain](/developers/docs/scaling/sidechains/) ni mnyororo wa bloku unaoendeshwa kwa kujitegemea na umeunganishwa na Mtandao Mkuu wa Ethereum kupitia daraja la pande mbili. [Madaraja](/bridges/) huwaruhusu watumiaji kubadilishana tokeni kati ya minyororo miwili ya bloku ili kufanya miamala kwenye sidechain, na hivyo kupunguza msongamano kwenye Mtandao Mkuu wa Ethereum na kuboresha uongezwaji. +Sidechains hutumia utaratibu tofauti wa makubaliano na kwa kawaida ni ndogo zaidi kuliko Mtandao Mkuu wa Ethereum. Matokeo yake, kuunganisha mali kwenye minyororo hii kunahusisha hatari iliyoongezeka; kutokana na ukosefu wa dhamana za usalama zilizorithiwa kutoka Mtandao Mkuu wa Ethereum katika mtindo wa sidechain, watumiaji wako katika hatari ya kupoteza fedha katika shambulio kwenye sidechain. + +Kinyume chake, minyororo ya njozi hupata usalama wao kutoka kwa Mtandao Mkuu. Hii inazifanya kuwa salama zaidi kwa kipimo kuliko sidechains. Sidechains na minyororo ya njozi zote zinaweza kuwa na itifaki tofauti za makubaliano, lakini tofauti ni kwamba minyororo ya njozi huchapisha mizizi ya Merkle kwa kila bloku kwenye Mtandao Mkuu wa Ethereum. Mizizi ya bloku ni vipande vidogo vya habari tunavyoweza kutumia kuthibitisha habari kuhusu miamala inayotokea kwenye mnyororo wa njozi. Ikiwa shambulio litatokea kwenye mnyororo wa njozi, watumiaji wanaweza kutoa fedha zao kwa usalama na kuzirudisha kwenye Mtandao Mkuu kwa kutumia uthibitisho unaofaa. + +### Njozi dhidi ya ugawanyaji {#plasma-vs-sharding} + +Minyororo ya njozi na minyororo ya kugawanyisha huchapisha ithibati za kriptografia mara kwa mara kwenye Mtandao Mkuu wa Ethereum. Hata hivyo, zote mbili zina sifa tofauti za usalama. + +Minyororo ya kugawanyisha huwasilisha "vichwa vya mkusanyo" kwa Mtandao Mkuu vikiwa na taarifa za kina kuhusu kila kigae cha data. Nodi kwenye Mtandao Mkuu huthibitisha na kutekeleza uhalali wa vigae vya data, na hivyo kupunguza uwezekano wa mabadiliko batili ya vigae na kulinda mtandao dhidi ya shughuli mbaya. + +Njozi ni tofauti kwa sababu Mtandao Mkuu hupokea tu habari ndogo kuhusu hali ya minyororo ya watoto. Hii inamaanisha Mtandao Mkuu hauwezi kuthibitisha kwa ufanisi miamala inayofanywa kwenye minyororo ya watoto, na kuifanya kuwa salama kidogo. + +**Kumbuka** kwamba ugawanyaji wa mnyororo wa bloku wa Ethereum haupo tena kwenye ramani. Imebadilishwa na uongezwaji kupitia unda-mpya na [Danksharding](/roadmap/danksharding). + +### Tumia Njozi {#use-plasma} + +Miradi mingi hutoa utekelezaji wa Njozi ambao unaweza kuunganisha kwenye dApps zako: + +- [Polygon](https://polygon.technology/) (hapo awali Mtandao wa Matic) + +## Masomo zaidi {#further-reading} + +- [Jifunze Njozi](https://www.learnplasma.org/en/) +- [Kikumbusho cha haraka cha maana ya "usalama wa pamoja" na kwa nini ni muhimu sana](https://old.reddit.com/r/ethereum/comments/sgd3zt/a_quick_reminder_of_what_shared_security_means/) +- [Sidechains dhidi ya Njozi dhidi ya Ugawanyaji](https://vitalik.eth.limo/general/2019/06/12/plasma_vs_sharding.html) +- [Kuelewa Njozi, Sehemu ya 1: Misingi](https://www.theblockcrypto.com/amp/post/10793/understanding-plasma-part-1-the-basics) +- [Maisha na Kifo cha Njozi](https://medium.com/dragonfly-research/the-life-and-death-of-plasma-b72c6a59c5ad#) + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ diff --git a/public/content/translations/sw/developers/docs/scaling/sidechains/index.md b/public/content/translations/sw/developers/docs/scaling/sidechains/index.md new file mode 100644 index 00000000000..539078b2cce --- /dev/null +++ b/public/content/translations/sw/developers/docs/scaling/sidechains/index.md @@ -0,0 +1,73 @@ +--- +title: Minyororo ya pembeni +description: Utangulizi wa sidechains kama suluhisho la kuongeza ukubwa linalotumiwa sasa na jumuiya ya Ethereum. +lang: sw +sidebarDepth: 3 +--- + +Sidechain ni mnyororo wa bloku tofauti unaofanya kazi bila kutegemea Ethereum na umeunganishwa na Mtandao Mkuu wa Ethereum kwa daraja la njia mbili. Sidechains zinaweza kuwa na vigezo tofauti vya bloku na [algoriti za makubaliano](/developers/docs/consensus-mechanisms/), ambazo mara nyingi zimeundwa kwa ajili ya uchakataji bora wa miamala. Hata hivyo, kutumia sidechain kuna hasara zake, kwa kuwa hairithi sifa za usalama za Ethereum. Tofauti na [suluhu za kuongeza ukubwa za safu ya 2](/layer-2/), sidechains hazichapishi mabadiliko ya hali na data ya miamala kwenye Mtandao Mkuu wa Ethereum. + +Sidechains pia huacha baadhi ya vipimo vya ugatuaji au usalama ili kufikia uwezo wa juu wa kuchakata ([scalability trilemma](https://vitalik.eth.limo/general/2021/05/23/scaling.html)). Hata hivyo, Ethereum imejitolea kuongeza ukubwa bila kuathiri ugatuaji na usalama. + +## Sidechains hufanyaje kazi? {#how-do-sidechains-work} + +Sidechains ni minyororo ya bloku huru, yenye historia tofauti, ramani za maendeleo, na mazingatio ya usanifu. Ingawa sidechain inaweza kuwa na mfanano wa juu juu na Ethereum, ina sifa kadhaa za kipekee. + +### Algoriti za makubaliano {#consensus-algorithms} + +Moja ya sifa zinazofanya sidechains kuwa za kipekee (yaani, tofauti na Ethereum) ni algoriti ya makubaliano inayotumika. Sidechains hazitegemei Ethereum kwa makubaliano na zinaweza kuchagua itifaki mbadala za makubaliano zinazokidhi mahitaji yao. Baadhi ya mifano ya algoriti za makubaliano zinazotumiwa kwenye sidechains ni pamoja na: + +- [Uthibitisho wa Mamlaka](/developers/docs/consensus-mechanisms/poa/) +- [Uthibitisho wa hisa uliokabidhiwa](https://en.bitcoin.it/wiki/Delegated_proof_of_stake) +- [Ustahimilivu wa kosa la Byzantine](https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained). + +Kama Ethereum, sidechains zina nodi za kuthibitisha ambazo huhakiki na kuchakata miamala, huzalisha bloku, na huhifadhi hali ya mnyororo wa bloku. Wathibitishaji pia wanawajibika kwa kudumisha makubaliano kwenye mtandao na kuulinda dhidi ya mashambulizi hasidi. + +#### Vigezo vya bloku {#block-parameters} + +Ethereum inaweka vikomo kwenye [muda wa bloku](/developers/docs/blocks/#block-time) (yaani, muda unaochukua kuzalisha bloku mpya) na [ukubwa wa bloku](/developers/docs/blocks/#block-size) (yaani, kiasi cha data kilichomo kwenye kila bloku kinachopimwa kwa gesi). Kinyume chake, sidechains mara nyingi hutumia vigezo tofauti, kama vile muda mfupi wa bloku na vikomo vya juu vya gesi, ili kufikia uwezo wa juu wa kuchakata, miamala ya haraka, na ada za chini. + +Ingawa hii ina faida fulani, ina athari muhimu kwa ugatuaji na usalama wa mtandao. Vigezo vya bloku, kama vile muda mfupi wa bloku na ukubwa mkubwa wa bloku, huongeza ugumu wa kuendesha nodi kamili—na kuacha "supernodes" chache zikiwajibika kwa kuulinda mnyororo. Katika hali kama hiyo, uwezekano wa wathibitishaji kula njama au uchukuaji hasidi wa mnyororo huongezeka. + +Ili minyororo ya bloku iongeze ukubwa bila kudhuru ugatuaji, uendeshaji wa nodi lazima uwe wazi kwa kila mtu—sio lazima wahusika wenye maunzi maalum. Hii ndiyo sababu jitihada zinaendelea ili kuhakikisha kila mtu anaweza [kuendesha nodi kamili](/developers/docs/nodes-and-clients/#why-should-i-run-an-ethereum-node) kwenye mtandao wa Ethereum. + +### Upatanifu wa EVM {#evm-compatibility} + +Baadhi ya sidechains zinapatana na EVM na zinaweza kutekeleza mikataba iliyotengenezwa kwa ajili ya [Mashine ya Mtandaoni ya Ethereum (EVM)](/developers/docs/evm/). Sidechains zinazopatana na EVM zinaauni mikataba-erevu [iliyoandikwa kwa Solidity](/developers/docs/smart-contracts/languages/), pamoja na lugha nyingine za mikataba-erevu za EVM, ambayo ina maana kwamba mikataba-erevu iliyoandikwa kwa ajili ya Mtandao Mkuu wa Ethereum pia itafanya kazi kwenye sidechains zinazopatana na EVM. + +Hii ina maana kwamba ikiwa unataka kutumia [mfumo mtawanyo wa kimamlaka](/developers/docs/dapps/) yako kwenye sidechain, ni suala la kusambaza [mkataba-erevu](/developers/docs/smart-contracts/) wako kwenye sidechain hii. Inaonekana, inahisika, na inafanya kazi kama Mtandao Mkuu—unaandika mikataba kwa Solidity, na kuingiliana na mnyororo kupitia RPC za sidechains. + +Kwa sababu sidechains zinapatana na EVM, zinachukuliwa kuwa [suluhisho muhimu la kuongeza ukubwa](/developers/docs/scaling/) kwa mfumo mtawanyo wa kimamlaka asilia za Ethereum. Ukiwa na mfumo mtawanyo wa kimamlaka wako kwenye sidechain, watumiaji wanaweza kufurahia ada za chini za gesi na miamala ya haraka, hasa ikiwa Mtandao Mkuu una msongamano. + +Hata hivyo, kama ilivyoelezwa hapo awali, kutumia sidechain kuna hasara kubwa. Kila sidechain inawajibika kwa usalama wake na hairithi sifa za usalama za Ethereum. Hii huongeza uwezekano wa tabia hasidi ambayo inaweza kuathiri watumiaji wako au kuweka fedha zao hatarini. + +### Uhamisho wa mali {#asset-movement} + +Ili mnyororo wa bloku tofauti uwe sidechain ya Mtandao Mkuu wa Ethereum, unahitaji uwezo wa kuwezesha uhamishaji wa mali kutoka na kwenda kwenye Mtandao Mkuu wa Ethereum. Uwezo huu wa kuingiliana na Ethereum unafikiwa kwa kutumia daraja la mnyororo wa bloku. [Madaraja](/bridges/) hutumia mikataba-erevu iliyosambazwa kwenye Mtandao Mkuu wa Ethereum na sidechain ili kudhibiti uunganishaji wa fedha kati yao. + +Ingawa madaraja huwasaidia watumiaji kuhamisha fedha kati ya Ethereum na sidechain, mali haihamishiwi kimwili kati ya minyororo hiyo miwili. Badala yake, taratibu zinazohusisha kawaida utengenezaji na uchomaji hutumiwa kwa ajili ya kuhamisha thamani kati ya minyororo. Zaidi kuhusu [jinsi madaraja yanavyofanya kazi](/developers/docs/bridges/#how-do-bridges-work). + +## Faida na hasara za sidechains {#pros-and-cons-of-sidechains} + +| Faida | Hasara | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Teknolojia inayosimamia sidechains imeimarika na inanufaika kutokana na utafiti mpana na maboresho katika usanifu. | Sidechains huacha baadhi ya vipimo vya ugatuaji na ukosefu wa kuaminiana kwa ajili ya kuongeza ukubwa. | +| Sidechains zinaauni ukokotoaji wa jumla na zinatoa upatanifu wa EVM (zinaweza kuendesha mfumo mtawanyo wa kimamlaka asilia za Ethereum). | Sidechain hutumia utaratibu tofauti wa makubaliano na hainufaiki na dhamana za usalama za Ethereum. | +| Sidechains hutumia mifumo tofauti ya makubaliano ili kuchakata miamala kwa ufanisi na kupunguza ada za miamala kwa watumiaji. | Sidechains zinahitaji dhana za juu za uaminifu (k.m., akidi ya wathibitishaji hasidi wa sidechain inaweza kufanya ulaghai). | +| Sidechains zinazopatana na EVM huruhusu mfumo mtawanyo wa kimamlaka kupanua mfumo wao wa ikolojia. | | + +### Tumia Sidechains {#use-sidechains} + +Miradi mingi hutoa utekelezaji wa sidechains ambazo unaweza kuunganisha kwenye mfumo mtawanyo wa kimamlaka zako: + +- [Polygon PoS](https://polygon.technology/solutions/polygon-pos) +- [Skale](https://skale.network/) +- [Gnosis Chain (zamani xDai)](https://www.gnosischain.com/) +- [Loom Network](https://loomx.io/) +- [Metis Andromeda](https://www.metis.io/) + +## Masomo zaidi {#further-reading} + +- [Kuongeza ukubwa wa mfumo mtawanyo wa kimamlaka za Ethereum kupitia Sidechains](https://medium.com/loom-network/dappchains-scaling-ethereum-dapps-through-sidechains-f99e51fff447) _Feb 8, 2018 - Georgios Konstantopoulos_ + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ diff --git a/public/content/translations/sw/developers/docs/scaling/state-channels/index.md b/public/content/translations/sw/developers/docs/scaling/state-channels/index.md new file mode 100644 index 00000000000..d637d025db5 --- /dev/null +++ b/public/content/translations/sw/developers/docs/scaling/state-channels/index.md @@ -0,0 +1,261 @@ +--- +title: Njia za Hali +description: Utangulizi wa njia za hali na njia za malipo kama suluhisho la uongezwaji linalotumiwa sasa na jumuiya ya Ethereum. +lang: sw +sidebarDepth: 3 +--- + +Njia za hali huruhusu washiriki kufanya miamala kwa usalama nje ya mnyororo huku wakiweka maingiliano na Mtandao Mkuu wa Ethereum kwa kiwango cha chini kabisa. Rika wa njia wanaweza kufanya idadi yoyote ya miamala ya nje ya mnyororo huku wakiwasilisha miamala miwili tu kwenye mnyororo ili kufungua na kufunga njia. Hii inaruhusu upitishaji wa juu sana wa miamala na husababisha gharama za chini kwa watumiaji. + +## Mahitaji ya awali {#prerequisites} + +Unapaswa kuwa umesoma na kuelewa kurasa zetu kuhusu [Uongezwaji wa Ethereum](/developers/docs/scaling/) na [safu ya 2](/layer-2/). + +## Njia ni nini? {#what-are-channels} + +Minyororo ya bloku ya umma, kama vile Ethereum, hukumbana na changamoto za uongezwaji kutokana na usanifu wake uliosambazwa: miamala ya kwenye mnyororo lazima itekelezwe na nodi zote. Nodi zinapaswa kuwa na uwezo wa kushughulikia idadi ya miamala katika bloku kwa kutumia vifaa vya kawaida, na kuweka kikomo kwenye upitishaji wa miamala ili kuweka mtandao uliogatuliwa. Njia za mnyororo wa bloku hutatua tatizo hili kwa kuruhusu watumiaji kuingiliana nje ya mnyororo huku wakitegemea usalama wa mnyororo mkuu kwa suluhu ya mwisho. + +Njia ni itifaki rahisi za rika-kwa-rika zinazoruhusu pande mbili kufanya miamala mingi kati yao na kisha kutuma tu matokeo ya mwisho kwenye mnyororo wa bloku. Njia hutumia kriptografia kuonyesha kuwa data ya muhtasari wanayotengeneza ni matokeo ya kweli ya seti halali ya miamala ya kati. Mkataba-erevu wa ["multisig"](/developers/docs/smart-contracts/#multisig) huhakikisha kuwa miamala inatiwa saini na pande sahihi. + +Kwa kutumia njia, mabadiliko ya hali hutekelezwa na kuthibitishwa na pande zinazohusika, na hivyo kupunguza hesabu kwenye safu ya utekelezaji ya Ethereum. Hii hupunguza msongamano kwenye Ethereum na pia huongeza kasi ya uchakataji wa miamala kwa watumiaji. + +Kila njia inasimamiwa na [mkataba-erevu wa multisig](/developers/docs/smart-contracts/#multisig) inayofanya kazi kwenye Ethereum. Ili kufungua njia, washiriki hupeleka mkataba wa njia kwenye mnyororo na kuweka fedha ndani yake. Pande zote mbili kwa pamoja hutia saini sasisho la hali ili kuanzisha hali ya njia, baada ya hapo wanaweza kufanya miamala haraka na kwa uhuru nje ya mnyororo. + +Ili kufunga njia, washiriki huwasilisha hali ya mwisho iliyokubaliwa ya njia kwenye mnyororo. Baadaye, mkataba-erevu hugawanya fedha zilizofungwa kulingana na salio la kila mshiriki katika hali ya mwisho ya njia. + +Njia za rika-kwa-rika ni muhimu sana kwa hali ambapo baadhi ya washiriki waliobainishwa mapema wanataka kufanya miamala kwa marudio ya juu bila kupata gharama za ziada zinazoonekana. Njia za mnyororo wa bloku ziko chini ya kategoria mbili: **njia za malipo** na **njia za hali**. + +## Njia za malipo {#payment-channels} + +Njia ya malipo inaelezewa vyema kama "leja ya pande mbili" inayodumishwa kwa pamoja na watumiaji wawili. Salio la awali la leja ni jumla ya amana zilizofungwa katika mkataba wa kwenye mnyororo wakati wa awamu ya ufunguzi wa njia. Uhamisho wa njia ya malipo unaweza kufanywa papo hapo na bila kuhusisha mnyororo halisi wa bloku, isipokuwa kwa uundaji wa awali wa mara moja kwenye mnyororo na hatimaye kufungwa kwa njia. + +Masasisho ya salio la leja (yaani, hali ya njia ya malipo) yanahitaji idhini ya pande zote katika njia. Sasisho la njia, lililotiwa saini na washiriki wote wa njia, linachukuliwa kuwa la mwisho, kama vile muamala kwenye Ethereum. + +Njia za malipo zilikuwa miongoni mwa suluhisho za awali za kuongeza ukubwa zilizoundwa ili kupunguza shughuli za gharama kubwa za kwenye mnyororo za maingiliano rahisi ya watumiaji (k.m., uhamisho wa ETH, ubadilishanaji wa atomiki, malipo madogo). Washiriki wa njia wanaweza kufanya idadi isiyo na kikomo ya miamala ya papo hapo, isiyo na ada kati yao mradi tu jumla ya uhamisho wao haizidi tokeni zilizowekwa. + +## Njia za hali {#state-channels} + +Mbali na kusaidia malipo ya nje ya mnyororo, njia za malipo hazijathibitishwa kuwa muhimu kwa kushughulikia mantiki ya jumla ya mpito wa hali. Njia za hali ziliundwa kutatua tatizo hili na kufanya njia ziwe muhimu kwa ajili ya kuongeza ukubwa wa hesabu za madhumuni ya jumla. + +Njia za hali bado zina mambo mengi yanayofanana na njia za malipo. Kwa mfano, watumiaji huingiliana kwa kubadilishana ujumbe uliotiwa saini kwa njia ya kriptografia (miamala), ambao washiriki wengine wa njia lazima pia watie saini. Ikiwa sasisho la hali lililopendekezwa halijatiwa saini na washiriki wote, linachukuliwa kuwa batili. + +Hata hivyo, pamoja na kushikilia salio la watumiaji, njia pia hufuatilia hali ya sasa ya ghala la mkataba (yaani, thamani za vigezo vya mkataba). + +Hii inafanya iwezekane kutekeleza mkataba-erevu nje ya mnyororo kati ya watumiaji wawili. Katika hali hii, masasisho ya hali ya ndani ya mkataba-erevu yanahitaji tu idhini ya rika walioanzisha njia. + +Ingawa hii inatatua tatizo la uongezaji ukubwa lililoelezwa awali, ina athari kwa usalama. Kwenye Ethereum, uhalali wa mabadiliko ya hali unatekelezwa na itifaki ya makubaliano ya mtandao. Hii inafanya iwezekane kupendekeza sasisho batili kwa hali ya mkataba-erevu au kubadilisha utekelezaji wa mkataba-erevu. + +Njia za hali hazina hakikisho sawa la usalama. Kwa kiasi fulani, njia ya hali ni toleo dogo la Mtandao Mkuu. Kwa seti ndogo ya washiriki wanaotekeleza sheria, uwezekano wa tabia hasidi (k.m., kupendekeza masasisho ya hali batili) huongezeka. Njia za hali hupata usalama wao kutoka kwa mfumo wa usuluhishi wa mizozo unaotegemea [ushahidi wa ulaghai](/glossary/#fraud-proof). + +## Jinsi njia za hali zinavyofanya kazi {#how-state-channels-work} + +Kimsingi, shughuli katika njia ya hali ni kipindi cha maingiliano yanayohusisha watumiaji na mfumo wa mnyororo wa bloku. Watumiaji huwasiliana zaidi nje ya mnyororo na huingiliana tu na mnyororo wa bloku uliopo chini ili kufungua njia, kufunga njia, au kusuluhisha mizozo inayoweza kutokea kati ya washiriki. + +Sehemu ifuatayo inaelezea mtiririko wa kazi wa msingi wa njia ya hali: + +### Kufungua njia {#opening-the-channel} + +Kufungua njia kunahitaji washiriki kuweka fedha kwenye mkataba-erevu kwenye Mtandao Mkuu. Amana pia hufanya kazi kama kichupo halisi, kwa hivyo washiriki wanaoshiriki wanaweza kufanya miamala kwa uhuru bila kuhitaji kulipia malipo mara moja. Ni pale tu njia inapokamilishwa kwenye mnyororo ndipo pande zote hulipana na kutoa kile kilichobaki kwenye kichupo chao. + +Amana hii pia hutumika kama dhamana ya kuhakikisha tabia ya uaminifu kutoka kwa kila mshiriki. Ikiwa wawekaji amana watapatikana na hatia ya vitendo hasidi wakati wa awamu ya utatuzi wa mizozo, mkataba huchukua amana zao. + +Rika wa njia lazima watie saini hali ya awali, ambayo wote wanakubaliana nayo. Hii hutumika kama chanzo cha njia ya hali, baada ya hapo watumiaji wanaweza kuanza kufanya miamala. + +### Kutumia njia {#using-the-channel} + +Baada ya kuanzisha hali ya njia, rika huingiliana kwa kutia saini miamala na kuituma kwa wengine kwa idhini. Washiriki huanzisha masasisho ya hali na miamala hii na kutia saini masasisho ya hali kutoka kwa wengine. Kila muamala unajumuisha yafuatayo: + +- **Nonce**, ambayo hufanya kazi kama kitambulisho cha kipekee kwa miamala na kuzuia mashambulizi ya kurudia. Pia inabainisha mpangilio ambao masasisho ya hali yalitokea (ambayo ni muhimu kwa utatuzi wa mizozo) + +- Hali ya zamani ya njia + +- Hali mpya ya njia + +- Muamala unaosababisha mpito wa hali (k.m., Alice anamtumia Bob ETH 5) + +Masasisho ya hali katika njia hayatangazwi kwenye mnyororo kama ilivyo kawaida wakati watumiaji wanapoingiliana kwenye Mtandao Mkuu, jambo ambalo linaendana na lengo la njia za hali la kupunguza alama ya kwenye mnyororo. Muda wote washiriki wanapokubaliana juu ya masasisho ya hali, huwa ya mwisho kama muamala wa Ethereum. Washiriki wanahitaji tu kutegemea makubaliano ya Mtandao Mkuu ikiwa mzozo utatokea. + +### Kufunga njia {#closing-the-channel} + +Kufunga njia ya hali kunahitaji kuwasilisha hali ya mwisho, iliyokubaliwa ya njia kwenye mkataba-erevu wa kwenye mnyororo. Maelezo yaliyorejelewa katika sasisho la hali ni pamoja na idadi ya hatua za kila mshiriki na orodha ya miamala iliyoidhinishwa. + +Baada ya kuthibitisha kuwa sasisho la hali ni halali (yaani, limetiwa saini na pande zote), mkataba-erevu hukamilisha njia na kugawanya fedha zilizofungwa kulingana na matokeo ya njia. Malipo yaliyofanywa nje ya mnyororo yanatumika kwa hali ya Ethereum na kila mshiriki anapokea sehemu yake iliyobaki ya fedha zilizofungwa. + +Hali iliyoelezwa hapo juu inawakilisha kile kinachotokea katika kisa cha furaha. Wakati mwingine, watumiaji wanaweza kushindwa kufikia makubaliano na kukamilisha njia (kisa cha huzuni). Yoyote kati ya yafuatayo yanaweza kuwa kweli kuhusu hali hiyo: + +- Washiriki wanatoka mtandaoni na kushindwa kupendekeza mabadiliko ya hali + +- Washiriki wanakataa kutia saini pamoja masasisho halali ya hali + +- Washiriki wanajaribu kukamilisha njia kwa kupendekeza sasisho la hali ya zamani kwenye mkataba wa kwenye mnyororo + +- Washiriki wanapendekeza mabadiliko batili ya hali kwa wengine kutia saini + +Wakati wowote makubaliano yanapovunjika kati ya washiriki katika njia, chaguo la mwisho ni kutegemea makubaliano ya Mtandao Mkuu ili kutekeleza hali ya mwisho, halali ya njia. Katika kesi hii, kufunga njia ya hali kunahitaji kutatua mizozo kwenye mnyororo. + +### Kutatua mizozo {#settling-disputes} + +Kwa kawaida, pande zote katika njia hukubaliana kufunga njia mapema na kutia saini pamoja mpito wa hali ya mwisho, ambao wanauwasilisha kwenye mkataba-erevu. Mara tu sasisho linapoidhinishwa kwenye mnyororo, utekelezaji wa mkataba-erevu wa nje ya mnyororo unaisha na washiriki wanatoka kwenye njia na pesa zao. + +Hata hivyo, upande mmoja unaweza kuwasilisha ombi kwenye mnyororo ili kumaliza utekelezaji wa mkataba-erevu na kukamilisha njia—bila kusubiri idhini ya mwenzake. Ikiwa hali yoyote ya kuvunja makubaliano iliyoelezwa awali itatokea, upande wowote unaweza kuanzisha mkataba wa kwenye mnyororo ili kufunga njia na kugawanya fedha. Hii hutoa **kutokuaminiana**, kuhakikisha kuwa pande zaaminifu zinaweza kutoa amana zao wakati wowote, bila kujali matendo ya upande mwingine. + +Ili kushughulikia utokaji wa njia, mtumiaji lazima awasilishe sasisho la mwisho la hali halali ya mfumo uliotawanywa kwenye mkataba wa kwenye mnyororo. Ikiwa hii itakaguliwa (yaani, ina saini ya pande zote), basi fedha zinagawanywa tena kwa niaba yao. + +Kuna, hata hivyo, ucheleweshaji katika kutekeleza maombi ya kutoka kwa mtumiaji mmoja. Ikiwa ombi la kuhitimisha njia liliidhinishwa kwa kauli moja, basi muamala wa kutoka kwenye mnyororo unatekelezwa mara moja. + +Ucheleweshaji hutokea katika utokaji wa mtumiaji mmoja kutokana na uwezekano wa vitendo vya ulaghai. Kwa mfano, mshiriki wa njia anaweza kujaribu kukamilisha njia kwenye Ethereum kwa kuwasilisha sasisho la hali la zamani kwenye mnyororo. + +Kama hatua ya kukabiliana, njia za hali huruhusu watumiaji waaminifu kupinga masasisho batili ya hali kwa kuwasilisha hali ya hivi karibuni, halali ya njia kwenye mnyororo. Njia za hali zimeundwa kiasi kwamba masasisho mapya zaidi, yaliyokubaliwa ya hali hupita masasisho ya hali ya zamani. + +Mara tu rika anapoanzisha mfumo wa utatuzi wa mizozo kwenye mnyororo, upande mwingine unahitajika kujibu ndani ya muda uliopangwa (unaoitwa dirisha la changamoto). Hii inaruhusu watumiaji kupinga muamala wa kutoka, hasa ikiwa upande mwingine unatumia sasisho la zamani. + +Vyovyote iwavyo, watumiaji wa njia daima wana hakikisho thabiti la mwisho: ikiwa mpito wa hali walio nao ulitiwa saini na wanachama wote na ndio sasisho la hivi karibuni zaidi, basi lina mwisho sawa na muamala wa kawaida wa kwenye mnyororo. Bado wanapaswa kumpinga mpinzani mwingine kwenye mnyororo, lakini matokeo pekee yanayowezekana ni kukamilisha hali ya mwisho halali, ambayo wanayo. + +### Njia za hali huingilianaje na Ethereum? {#how-do-state-channels-interact-with-ethereum} + +Ingawa zipo kama itifaki za nje ya mnyororo, njia za hali zina sehemu ya kwenye mnyororo: mkataba-erevu uliowekwa kwenye Ethereum wakati wa kufungua njia. Mkataba huu unadhibiti mali zilizowekwa kwenye njia, unathibitisha masasisho ya hali, na unasuluhisha mizozo kati ya washiriki. + +Njia za hali hazichapishi data ya muamala au ahadi za hali kwenye Mtandao Mkuu, tofauti na suluhisho za kuongeza ukubwa za [safu ya 2](/layer-2/). Hata hivyo, zimeunganishwa zaidi na Mtandao Mkuu kuliko, tuseme, [sidechains](/developers/docs/scaling/sidechains/), na kuzifanya kuwa salama kwa kiasi fulani. + +Njia za hali zinategemea itifaki kuu ya Ethereum kwa yafuatayo: + +#### 1. Uhai {#liveness} + +Mkataba wa kwenye mnyororo unaotumika wakati wa kufungua njia unahusika na utendaji wa njia. Ikiwa mkataba unafanya kazi kwenye Ethereum, basi njia inapatikana kila wakati kwa matumizi. Kinyume chake, sidechain inaweza kushindwa kufanya kazi wakati wowote, hata kama Mtandao Mkuu unafanya kazi, na kuweka fedha za mtumiaji hatarini. + +#### 2. Usalama {#security} + +Kwa kiasi fulani, njia za hali hutegemea Ethereum kutoa usalama na kuwalinda watumiaji dhidi ya rika hasidi. Kama ilivyojadiliwa katika sehemu za baadaye, njia hutumia utaratibu wa ushahidi wa ulaghai unaoruhusu watumiaji kupinga majaribio ya kukamilisha njia na sasisho batili au la zamani. + +Katika kesi hii, upande mwaminifu hutoa hali ya hivi karibuni halali ya njia kama ushahidi wa ulaghai kwa mkataba wa kwenye mnyororo kwa ajili ya uthibitisho. Ushahidi wa ulaghai huwezesha pande zisizoaminiana kufanya miamala nje ya mnyororo bila kuhatarisha fedha zao katika mchakato huo. + +#### 3. Mwisho {#finality} + +Masasisho ya hali yaliyotiwa saini kwa pamoja na watumiaji wa njia yanachukuliwa kuwa mazuri kama miamala ya kwenye mnyororo. Bado, shughuli zote za ndani ya njia hufikia tu mwisho wa kweli wakati njia inapofungwa kwenye Ethereum. + +Katika kesi ya matumaini, pande zote mbili zinaweza kushirikiana na kutia saini sasisho la hali ya mwisho na kuwasilisha kwenye mnyororo ili kufunga njia, baada ya hapo fedha zinagawanywa kulingana na hali ya mwisho ya njia. Katika kisa cha kukata tamaa, ambapo mtu anajaribu kudanganya kwa kuchapisha sasisho la hali lisilo sahihi kwenye mnyororo, muamala wao haukamilishwi hadi dirisha la changamoto litakapopita. + +## Njia za hali halisi {#virtual-state-channels} + +Utekelezaji wa kimsingi wa njia ya hali itakuwa ni kupeleka mkataba mpya wakati watumiaji wawili wanataka kutekeleza mfumo uliotawanywa nje ya mnyororo. Hii sio tu haiwezekani, lakini pia inabatilisha ufanisi wa gharama wa njia za hali (gharama za muamala wa kwenye mnyororo zinaweza kuongezeka haraka). + +Ili kutatua tatizo hili, "njia halisi" ziliundwa. Tofauti na njia za kawaida zinazohitaji miamala ya kwenye mnyororo ili kufungua na kumaliza, njia halisi inaweza kufunguliwa, kutekelezwa, na kukamilishwa bila kuingiliana na mnyororo mkuu. Inawezekana hata kutatua mizozo nje ya mnyororo kwa kutumia njia hii. + +Mfumo huu unategemea kuwepo kwa kinachoitwa "njia za leja", ambazo zimewekewa fedha kwenye mnyororo. Njia halisi kati ya pande mbili zinaweza kujengwa juu ya njia ya leja iliyopo, huku mmiliki (wamiliki) wa njia ya leja wakitumika kama mpatanishi. + +Watumiaji katika kila njia halisi huingiliana kupitia mfano mpya wa mkataba, huku njia ya leja ikiwa na uwezo wa kusaidia mifano mingi ya mkataba. Hali ya njia ya leja pia ina zaidi ya hali moja ya ghala la mkataba, na kuruhusu utekelezaji sambamba wa mifumo iliyotawanywa tofauti nje ya mnyororo kati ya watumiaji tofauti. + +Kama tu njia za kawaida, watumiaji hubadilishana masasisho ya hali ili kuendeleza mashine ya hali. Isipokuwa mzozo utatokea, mpatanishi anahitaji tu kuwasiliana naye wakati wa kufungua au kumaliza njia. + +### Njia halisi za malipo {#virtual-payment-channels} + +Njia halisi za malipo hufanya kazi kwa wazo sawa na njia halisi za hali: washiriki waliounganishwa kwenye mtandao mmoja wanaweza kupitisha ujumbe bila kuhitaji kufungua njia mpya kwenye mnyororo. Katika njia halisi za malipo, uhamisho wa thamani huelekezwa kupitia mpatanishi mmoja au zaidi, na hakikisho kwamba ni mpokeaji aliyekusudiwa pekee anayeweza kupokea fedha zilizohamishwa. + +## Matumizi ya njia za hali {#applications-of-state-channels} + +### Malipo {#payments} + +Njia za awali za mnyororo wa bloku zilikuwa itifaki rahisi zilizoruhusu washiriki wawili kufanya uhamisho wa haraka, wa ada ya chini nje ya mnyororo bila kulipa ada za juu za muamala kwenye Mtandao Mkuu. Leo, njia za malipo bado ni muhimu kwa mifumo iliyotawanywa iliyoundwa kwa ajili ya kubadilishana na kuweka ether na tokeni. + +Malipo yanayotegemea njia yana faida zifuatazo: + +1. **Upitishaji**: Kiasi cha miamala ya nje ya mnyororo kwa kila njia hakihusiani na upitishaji wa Ethereum, ambao huathiriwa na mambo mbalimbali, hasa ukubwa wa bloku na muda wa bloku. Kwa kutekeleza miamala nje ya mnyororo, njia za mnyororo wa bloku zinaweza kufikia upitishaji wa juu zaidi. + +2. **Faragha**: Kwa sababu njia zipo nje ya mnyororo, maelezo ya maingiliano kati ya washiriki hayarekodiwi kwenye mnyororo wa bloku wa umma wa Ethereum. Watumiaji wa njia wanahitaji tu kuingiliana kwenye mnyororo wakati wa kuweka fedha na kufunga njia au kutatua mizozo. Hivyo, njia ni muhimu kwa watu wanaotaka miamala ya faragha zaidi. + +3. **Ucheleweshaji**: Miamala ya nje ya mnyororo inayofanywa kati ya washiriki wa njia inaweza kusuluhishwa papo hapo, ikiwa pande zote mbili zitashirikiana, na hivyo kupunguza ucheleweshaji. Kinyume chake, kutuma muamala kwenye Mtandao Mkuu kunahitaji kusubiri nodi zichakate muamala, zitoe bloku mpya na muamala, na kufikia makubaliano. Watumiaji wanaweza pia kuhitaji kusubiri uthibitisho zaidi wa bloku kabla ya kuzingatia muamala kuwa wa mwisho. + +4. **Gharama**: Njia za hali ni muhimu sana katika hali ambapo seti ya washiriki watabadilishana masasisho mengi ya hali kwa kipindi kirefu. Gharama pekee zinazotozwa ni kufungua na kufunga mkataba-erevu wa njia ya hali; kila mabadiliko ya hali kati ya kufungua na kufunga njia yatakuwa ya bei nafuu kuliko ya mwisho kwani gharama ya suluhu inasambazwa ipasavyo. + +Kutekeleza njia za hali kwenye suluhisho za safu ya 2, kama vile [unda-mpya](/developers/docs/scaling/#rollups), kunaweza kuzifanya zivutie zaidi kwa malipo. Ingawa njia hutoa malipo ya bei nafuu, gharama za kuanzisha mkataba wa kwenye mnyororo kwenye Mtandao Mkuu wakati wa awamu ya ufunguzi zinaweza kuwa ghali—hasa wakati ada za gesi zinapopanda. Unda-mpya zinazotegemea Ethereum hutoa [ada za chini za muamala](https://l2fees.info/) na zinaweza kupunguza gharama za ziada kwa washiriki wa njia kwa kupunguza ada za usanidi. + +### Miamala midogo {#microtransactions} + +Miamala midogo ni malipo ya thamani ya chini (k.m., chini ya sehemu ya dola) ambayo biashara haziwezi kushughulikia bila kupata hasara. Vyombo hivi lazima vilipe watoa huduma za malipo, jambo ambalo hawawezi kufanya ikiwa faida kwenye malipo ya wateja ni ndogo sana kupata faida. + +Njia za malipo hutatua tatizo hili kwa kupunguza gharama za ziada zinazohusiana na miamala midogo. Kwa mfano, Mtoa Huduma za Mtandao (ISP) anaweza kufungua njia ya malipo na mteja, na kuwaruhusu kutiririsha malipo madogo kila wanapotumia huduma. + +Zaidi ya gharama ya kufungua na kufunga njia, washiriki hawapati gharama zaidi kwenye miamala midogo (hakuna ada za gesi). Hii ni hali ya kushinda-kushinda kwani wateja wana unyumbufu zaidi katika jinsi wanavyolipia huduma na biashara hazipotezi miamala midogo yenye faida. + +### Mifumo iliyotawanywa {#decentralized-applications} + +Kama njia za malipo, njia za hali zinaweza kufanya malipo ya masharti kulingana na hali za mwisho za mashine ya hali. Njia za hali zinaweza pia kusaidia mantiki ya mpito ya hali holela, na kuzifanya kuwa muhimu kwa kutekeleza programu za jumla nje ya mnyororo. + +Njia za hali mara nyingi huwekewa mipaka kwa programu rahisi za zamu, kwani hii inafanya iwe rahisi kudhibiti fedha zilizowekwa kwenye mkataba wa kwenye mnyororo. Pia, kwa idadi ndogo ya pande zinazosasisha hali ya mfumo uliotawanywa wa nje ya mnyororo kwa vipindi, kuadhibu tabia isiyo ya uaminifu ni rahisi kiasi. + +Ufanisi wa mfumo uliotawanywa wa njia ya hali pia unategemea muundo wake. Kwa mfano, msanidi programu anaweza kupeleka mkataba wa njia ya programu kwenye mnyororo mara moja na kuruhusu wachezaji wengine kutumia tena programu bila kulazimika kwenda kwenye mnyororo. Katika kesi hii, njia ya awali ya programu hutumika kama njia ya leja inayosaidia njia nyingi halisi, kila moja ikiendesha mfano mpya wa mkataba-erevu wa programu nje ya mnyororo. + +Kesi inayowezekana ya matumizi ya mifumo iliyotawanywa ya njia za hali ni michezo rahisi ya wachezaji wawili, ambapo fedha zinagawanywa kulingana na matokeo ya mchezo. Faida hapa ni kwamba wachezaji hawana haja ya kuaminiana (kutokuaminiana) na mkataba wa kwenye mnyororo, sio wachezaji, ndio unaodhibiti ugawaji wa fedha na utatuzi wa mizozo (ugatuaji). + +Kesi zingine zinazowezekana za matumizi ya programu za njia za hali ni pamoja na umiliki wa jina la ENS, leja za NFT, na mengi zaidi. + +### Uhamisho wa atomiki {#atomic-transfers} + +Njia za malipo za awali ziliwekewa mipaka kwa uhamisho kati ya pande mbili, na hivyo kupunguza utumiaji wao. Hata hivyo, kuanzishwa kwa njia halisi kuliruhusu watu binafsi kuelekeza uhamisho kupitia wapatanishi (yaani, njia nyingi za p2p) bila kulazimika kufungua njia mpya kwenye mnyororo. + +Yanayoelezewa kwa kawaida kama "uhamisho wa hatua nyingi", malipo yaliyoelekezwa ni ya atomiki (yaani, sehemu zote za muamala hufaulu au inashindwa kabisa). Uhamisho wa atomiki hutumia [Mikataba ya Kufunga Muda kwa Hashi (HTLCs)](https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts) kuhakikisha malipo yanatolewa tu ikiwa masharti fulani yametimizwa, na hivyo kupunguza hatari ya upande mwingine. + +## Hasara za kutumia njia za hali {#drawbacks-of-state-channels} + +### Dhana za uhai {#liveness-assumptions} + +Ili kuhakikisha ufanisi, njia za hali huweka mipaka ya muda juu ya uwezo wa washiriki wa njia kujibu mizozo. Sheria hii inadhani kuwa rika watakuwa mtandaoni kila wakati ili kufuatilia shughuli za njia na kupinga changamoto inapobidi. + +Kwa kweli, watumiaji wanaweza kutoka mtandaoni kwa sababu zisizo za hiari yao (k.m., muunganisho duni wa intaneti, hitilafu ya kiufundi, n.k.). Ikiwa mtumiaji mwaminifu atatoka mtandaoni, rika hasidi anaweza kutumia hali hiyo kwa kuwasilisha hali za zamani za kati kwenye mkataba wa msuluhishi na kuiba fedha zilizowekwa. + +Baadhi ya njia hutumia "walinzi wa mnara"—vyombo vinavyohusika na kutazama matukio ya mizozo ya kwenye mnyororo kwa niaba ya wengine na kuchukua hatua muhimu, kama vile kuwatahadharisha wahusika. Hata hivyo, hii inaweza kuongeza gharama za kutumia njia ya hali. + +### Kutopatikana kwa data {#data-unavailability} + +Kama ilivyoelezwa awali, kupinga mzozo batili kunahitaji kuwasilisha hali ya hivi karibuni, halali ya njia ya hali. Hii ni sheria nyingine inayotegemea dhana—kwamba watumiaji wana ufikiaji wa hali ya hivi karibuni ya njia. + +Ingawa kutarajia watumiaji wa njia kuhifadhi nakala za hali ya mfumo uliotawanywa wa nje ya mnyororo ni jambo la busara, data hii inaweza kupotea kutokana na kosa au hitilafu ya kiufundi. Ikiwa mtumiaji hana nakala ya data, anaweza tu kutumaini kwamba upande mwingine hautakamilisha ombi batili la kutoka kwa kutumia mabadiliko ya hali ya zamani yaliyo mikononi mwake. + +Watumiaji wa Ethereum hawana haja ya kukabiliana na tatizo hili kwani mtandao unatekeleza sheria za upatikanaji wa data. Data ya muamala huhifadhiwa na kusambazwa na nodi zote na inapatikana kwa watumiaji kupakua ikiwa na inapobidi. + +### Masuala ya ukwasi {#liquidity-issues} + +Ili kuanzisha njia ya mnyororo wa bloku, washiriki wanahitaji kufunga fedha katika mkataba-erevu wa kwenye mnyororo kwa ajili ya mzunguko wa maisha wa njia. Hii inapunguza ukwasi wa watumiaji wa njia na pia inazuia njia kwa wale tu wanaoweza kumudu kuweka fedha zilizofungwa kwenye Mtandao Mkuu. + +Hata hivyo, njia za leja—zinazoendeshwa na mtoa huduma wa nje ya mnyororo (OSP)—zinaweza kupunguza masuala ya ukwasi kwa watumiaji. Rika wawili waliounganishwa na njia ya leja wanaweza kuunda njia halisi, ambayo wanaweza kuifungua na kuikamilisha kabisa nje ya mnyororo, wakati wowote wanapotaka. + +Watoa huduma wa nje ya mnyororo wanaweza pia kufungua njia na rika wengi, na kuwafanya kuwa muhimu kwa kuelekeza malipo. Bila shaka, watumiaji lazima walipe ada kwa OSP kwa huduma zao, jambo ambalo linaweza kuwa lisilopendeza kwa wengine. + +### Mashambulizi ya kukera {#griefing-attacks} + +Mashambulizi ya kukera ni kipengele cha kawaida cha mifumo inayotegemea ushahidi wa ulaghai. Shambulio la kukera halimnufaishi moja kwa moja mshambuliaji lakini linasababisha kero (yaani, madhara) kwa mwathiriwa, ndiyo maana ya jina hilo. + +Uthibitishaji wa ulaghai huathiriwa na mashambulizi ya kukera kwa sababu upande mwaminifu lazima ujibu kila mzozo, hata yale batili, au kuhatarisha kupoteza fedha zao. Mshiriki hasidi anaweza kuamua kurudia kuchapisha mabadiliko ya hali ya zamani kwenye mnyororo, na kumlazimisha upande mwaminifu kujibu na hali halali. Gharama za miamala hiyo ya kwenye mnyororo inaweza kuongezeka haraka, na kusababisha pande zaaminifu kupoteza katika mchakato huo. + +### Seti za washiriki zilizobainishwa mapema {#predefined-participant-sets} + +Kwa muundo, idadi ya washiriki wanaounda njia ya hali hubaki sawa katika maisha yake yote. Hii ni kwa sababu kusasisha seti ya washiriki kungechanganya utendaji wa njia, hasa wakati wa kuweka fedha kwenye njia, au kutatua mizozo. Kuongeza au kuondoa washiriki pia kungehitaji shughuli za ziada kwenye mnyororo, jambo ambalo huongeza gharama za ziada kwa watumiaji. + +Ingawa hii inafanya njia za hali kuwa rahisi kufikiria, inapunguza manufaa ya miundo ya njia kwa wasanidi programu. Hii inaelezea kwa kiasi kwa nini njia za hali zimeachwa na kupendelewa suluhisho zingine za kuongeza ukubwa, kama vile unda-mpya. + +### Uchakataji wa miamala sambamba {#parallel-transaction-processing} + +Washiriki katika njia ya hali hutuma masasisho ya hali kwa zamu, ndiyo maana zinafanya kazi vizuri zaidi kwa "mifumo iliyotawanywa ya zamu" (k.m., mchezo wa chess wa wachezaji wawili). Hii huondoa hitaji la kushughulikia masasisho ya hali ya wakati mmoja na inapunguza kazi ambayo mkataba wa kwenye mnyororo unapaswa kufanya ili kuwaadhibu wachapishaji wa sasisho la zamani. Hata hivyo, athari ya upande ya muundo huu ni kwamba miamala inategemeana, na kuongeza ucheleweshaji na kupunguza uzoefu wa jumla wa mtumiaji. + +Baadhi ya njia za hali hutatua tatizo hili kwa kutumia muundo wa "duplex kamili" unaogawanya hali ya nje ya mnyororo katika hali mbili za "simplex" za mwelekeo mmoja, na kuruhusu masasisho ya hali ya wakati mmoja. Miundo kama hiyo inaboresha upitishaji wa nje ya mnyororo na inapunguza ucheleweshaji wa miamala. + +## Tumia njia za hali {#use-state-channels} + +Miradi mingi hutoa utekelezaji wa njia za hali ambazo unaweza kuunganisha kwenye mifumo yako mtawanyo ya kimamlaka: + +- [Connext](https://connext.network/) +- [Kchannels](https://www.kchannels.io/) +- [Perun](https://perun.network/) +- [Raiden](https://raiden.network/) +- [Statechannels.org](https://statechannels.org/) + +## Masomo zaidi {#further-reading} + +**Njia za hali** + +- [Kuelewa Masuluhisho ya Uongezwaji ya Safu ya 2 ya Ethereum: Njia za Hali, Plasma, na Truebit](https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4) _– Josh Stark, Feb 12 2018_ +- [Njia za Hali - maelezo](https://www.jeffcoleman.ca/state-channels/) _Nov 6, 2015 - Jeff Coleman_ +- [Misingi ya Njia za Hali](https://education.district0x.io/general-topics/understanding-ethereum/basics-state-channels/) _District0x_ +- [Njia za Hali za Mnyororo wa Bloku: Hali ya Sanaa](https://ieeexplore.ieee.org/document/9627997) + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ diff --git a/public/content/translations/sw/developers/docs/scaling/validium/index.md b/public/content/translations/sw/developers/docs/scaling/validium/index.md new file mode 100644 index 00000000000..9294a329594 --- /dev/null +++ b/public/content/translations/sw/developers/docs/scaling/validium/index.md @@ -0,0 +1,166 @@ +--- +title: Validium +description: Utangulizi wa Validium kama suluhisho la kuongeza ukubwa linalotumika sasa na jumuiya ya Ethereum. +lang: sw +sidebarDepth: 3 +--- + +Validium ni [suluhisho la kuongeza ukubwa](/developers/docs/scaling/) ambalo hutekeleza uadilifu wa miamala kwa kutumia ithibati za uhalali kama vile [ZK-rollups](/developers/docs/scaling/zk-rollups/), lakini haihifadhi data ya miamala kwenye Mtandao Mkuu wa Ethereum. Ingawa upatikanaji wa data nje ya mnyororo una changamoto zake, unaweza kusababisha maboresho makubwa katika kuongeza ukubwa (validiums zinaweza kuchakata [miamala ~9,000, au zaidi, kwa sekunde](https://blog.matter-labs.io/zkrollup-vs-validium-starkex-5614e38bc263)). + +## Mahitaji ya awali {#prerequisites} + +Unapaswa kuwa umesoma na kuelewa ukurasa wetu kuhusu [kuongeza ukubwa wa Ethereum](/developers/docs/scaling/) na [safu ya 2](/layer-2). + +## Validium ni nini? {#what-is-validium} + +Validiums ni suluhu za kuongeza ukubwa zinazotumia upatikanaji wa data na ukokotoaji nje ya mnyororo zilizoundwa kuboresha upitishaji kwa kuchakata miamala nje ya Mtandao Mkuu wa Ethereum. Kama vile zero-knowledge rollups (ZK-rollups), validiums huchapisha [ithibati za zero-knowledge](/glossary/#zk-proof) ili kuthibitisha miamala ya nje ya mnyororo kwenye Ethereum. Hii huzuia mabadiliko ya hali batili na huongeza dhamana ya usalama ya mnyororo wa validium. + +"Ithibati hizi za uhalali" zinaweza kuja kwa njia ya ZK-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) au ZK-STARKs (Zero-Knowledge Scalable Transparent ARgument of Knowledge). Zaidi kuhusu [ithibati za zero-knowledge](https://consensys.net/blog/blockchain-explained/zero-knowledge-proofs-starks-vs-snarks/). + +Fedha za watumiaji wa validium zinadhibitiwa na mkataba-erevu kwenye Ethereum. Validiums hutoa uondoaji wa pesa karibu na papo hapo, kama vile ZK-rollups; mara tu ithibati ya uhalali kwa ombi la uondoaji imethibitishwa kwenye Mtandao Mkuu, watumiaji wanaweza kutoa fedha kwa kutoa [ithibati za Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/). Ithibati ya Merkle huthibitisha ujumuishwaji wa muamala wa uondoaji wa mtumiaji katika kundi la miamala lililothibitishwa, ikiruhusu mkataba wa kwenye mnyororo kuchakata uondoaji huo. + +Hata hivyo, watumiaji wa validium wanaweza kugandishiwa fedha zao na uondoaji kuzuiwa. Hii inaweza kutokea ikiwa wasimamizi wa upatikanaji wa data kwenye mnyororo wa validium watawazuilia watumiaji data ya hali ya nje ya mnyororo. Bila ufikiaji wa data ya miamala, watumiaji hawawezi kukokotoa ithibati ya Merkle inayohitajika kuthibitisha umiliki wa fedha na kutekeleza uondoaji. + +Huu ndio tofauti kuu kati ya validiums na ZK-rollups—msimamo wao kwenye wigo wa upatikanaji wa data. Suluhisho zote mbili zinashughulikia uhifadhi wa data kwa njia tofauti, jambo ambalo lina athari kwa usalama na kutohitaji uaminifu. + +## Je, validiums huingiliana vipi na Ethereum? {#how-do-validiums-interact-with-ethereum} + +Validiums ni itifaki za kuongeza ukubwa zilizojengwa juu ya mnyororo uliopo wa Ethereum. Ingawa hutekeleza miamala nje ya mnyororo, mnyororo wa validium unasimamiwa na mkusanyiko wa mikataba-erevu iliyotumwa kwenye Mtandao Mkuu ikijumuisha: + +1. **Mkataba wa kuthibitisha**: Mkataba wa kuthibitisha huthibitisha uhalali wa ithibati zilizowasilishwa na mwendeshaji wa validium wakati wa kufanya masasisho ya hali. Hii inajumuisha ithibati za uhalali zinazothibitisha usahihi wa miamala ya nje ya mnyororo na ithibati za upatikanaji wa data zinazothibitisha uwepo wa data ya miamala ya nje ya mnyororo. + +2. **Mkataba mkuu**: Mkataba mkuu huhifadhi ahadi za hali (mizizi ya Merkle) zilizowasilishwa na wazalishaji wa bloku na husasisha hali ya validium mara tu ithibati ya uhalali inapothibitishwa kwenye mnyororo. Mkataba huu pia huchakata amana na uondoaji kutoka kwa mnyororo wa validium. + +Validiums pia hutegemea mnyororo mkuu wa Ethereum kwa yafuatayo: + +### Marekebisho {#settlement} + +Miamala inayotekelezwa kwenye validium haiwezi kuthibitishwa kikamilifu hadi mnyororo mkuu utakapothibitisha uhalali wake. Shughuli zote zinazofanywa kwenye validium lazima hatimaye zirekebishwe kwenye Mtandao Mkuu. Mnyororo wa bloku wa Ethereum pia hutoa "dhamana za marekebisho" kwa watumiaji wa validium, ikimaanisha miamala ya nje ya mnyororo haiwezi kubadilishwa au kurekebishwa mara tu inapowekwa kwenye mnyororo. + +### Usalama {#security} + +Ethereum, ikifanya kazi kama safu ya marekebisho, pia inahakikisha uhalali wa mabadiliko ya hali kwenye validium. Miamala ya nje ya mnyororo inayotekelezwa kwenye mnyororo wa validium huthibitishwa kupitia mkataba-erevu kwenye safu ya msingi ya Ethereum. + +Ikiwa mkataba wa kuthibitisha kwenye mnyororo utaona ithibati ni batili, miamala hukataliwa. Hii inamaanisha waendeshaji lazima watimize masharti ya uhalali yanayotekelezwa na itifaki ya Ethereum kabla ya kusasisha hali ya validium. + +## Je, validium inafanyaje kazi? {#how-does-validium-work} + +### Miamala {#transactions} + +Watumiaji huwasilisha miamala kwa mwendeshaji, nodi inayohusika na kutekeleza miamala kwenye mnyororo wa validium. Baadhi ya validiums zinaweza kutumia mwendeshaji mmoja kutekeleza mnyororo au kutegemea utaratibu wa [uthibitisho wa hisa (PoS)](/developers/docs/consensus-mechanisms/pos/) kwa waendeshaji wanaozunguka. + +Mwendeshaji hukusanya miamala katika kundi na kuituma kwenye sakiti ya kuthibitisha kwa ajili ya uthibitisho. Sakiti ya kuthibitisha inakubali kundi la miamala (na data nyingine muhimu) kama pembejeo na hutoa ithibati ya uhalali inayothibitisha kuwa shughuli zilifanywa kwa usahihi. + +### Ahadi za hali {#state-commitments} + +Hali ya validium huwekwa hashi kama mti wa Merkle na mzizi huhifadhiwa kwenye mkataba mkuu kwenye Ethereum. Mzizi wa Merkle, unaojulikana pia kama mzizi wa hali, hufanya kazi kama ahadi ya kriptografia kwa hali ya sasa ya akaunti na salio kwenye validium. + +Ili kufanya sasisho la hali, mwendeshaji lazima akokotoe mzizi mpya wa hali (baada ya kutekeleza miamala) na kuiwasilisha kwa mkataba wa kwenye mnyororo. Ikiwa ithibati ya uhalali itakaguliwa, hali iliyopendekezwa inakubaliwa na validium hubadilika na kuwa mzizi mpya wa hali. + +### Amana na uondoaji {#deposits-and-withdrawals} + +Watumiaji huhamisha fedha kutoka Ethereum hadi validium kwa kuweka ETH (au tokeni yoyote inayoendana na ERC) kwenye mkataba wa kwenye mnyororo. Mkataba hupeleka tukio la amana kwa validium nje ya mnyororo, ambapo anwani ya mtumiaji hupewa kiasi sawa na amana yake. Mwendeshaji pia hujumuisha muamala huu wa amana katika kundi jipya. + +Ili kurudisha fedha kwenye Mtandao Mkuu, mtumiaji wa validium huanzisha muamala wa uondoaji na kuwasilisha kwa mwendeshaji ambaye huthibitisha ombi la uondoaji na kulijumuisha kwenye kundi. Mali za mtumiaji kwenye mnyororo wa validium pia huharibiwa kabla ya kuweza kutoka kwenye mfumo. Mara tu ithibati ya uhalali inayohusishwa na kundi inapothibitishwa, mtumiaji anaweza kupiga simu mkataba mkuu ili kuondoa salio la amana yake ya awali. + +Kama utaratibu wa kuzuia udhibiti, itifaki ya validium inaruhusu watumiaji kuondoa moja kwa moja kutoka kwa mkataba wa validium bila kupitia kwa mwendeshaji. Katika kesi hii, watumiaji wanahitaji kutoa ithibati ya Merkle kwa mkataba wa kuthibitisha ikionyesha ujumuishwaji wa akaunti katika mzizi wa hali. Ikiwa ithibati itakubaliwa, mtumiaji anaweza kupiga simu kazi ya uondoaji ya mkataba mkuu ili kutoa fedha zake kutoka kwa validium. + +### Uwasilishaji wa kundi {#batch-submission} + +Baada ya kutekeleza kundi la miamala, mwendeshaji huwasilisha ithibati ya uhalali inayohusiana na mkataba wa kuthibitisha na kupendekeza mzizi mpya wa hali kwa mkataba mkuu. Ikiwa ithibati ni halali, mkataba mkuu husasisha hali ya validium na kukamilisha matokeo ya miamala katika kundi. + +Tofauti na ZK-rollup, wazalishaji wa bloku kwenye validium hawahitajiki kuchapisha data ya miamala kwa makundi ya miamala (vichwa vya bloku pekee). Hii inafanya validium kuwa itifaki ya kuongeza ukubwa ya nje ya mnyororo tu, kinyume na itifaki za kuongeza ukubwa "mseto" (yaani, [safu ya 2](/layer-2/)) ambazo huchapisha data ya hali kwenye mnyororo mkuu wa Ethereum kwa kutumia data ya blob, `calldata`, au mchanganyiko wa zote mbili. + +### Upatikanaji wa data {#data-availability} + +Kama ilivyotajwa, validiums hutumia mtindo wa upatikanaji wa data nje ya mnyororo, ambapo waendeshaji huhifadhi data yote ya miamala nje ya Mtandao Mkuu wa Ethereum. Nyayo ya chini ya data kwenye mnyororo ya Validium inaboresha kuongeza ukubwa (upitishaji hauzuiwi na uwezo wa Ethereum wa kuchakata data) na inapunguza ada za watumiaji (gharama ya kuchapisha data kwenye mnyororo ni ya chini). + +Hata hivyo, upatikanaji wa data nje ya mnyororo huleta tatizo: data muhimu kwa ajili ya kuunda au kuthibitisha ithibati za Merkle inaweza isipatikane. Hii inamaanisha watumiaji wanaweza wasiweze kutoa fedha kutoka kwa mkataba wa kwenye mnyororo ikiwa waendeshaji watafanya vitendo vya hasidi. + +Suluhisho mbalimbali za validium zinajaribu kutatua tatizo hili kwa kugatua uhifadhi wa data ya hali. Hii inahusisha kuwalazimisha wazalishaji wa bloku kutuma data ya msingi kwa "wasimamizi wa upatikanaji wa data" wanaohusika na kuhifadhi data ya nje ya mnyororo na kuifanya ipatikane kwa watumiaji wanapoiomba. + +Wasimamizi wa upatikanaji wa data katika validium huthibitisha upatikanaji wa data kwa miamala ya nje ya mnyororo kwa kutia saini kila kundi la validium. Sahihi hizi huunda aina ya "ithibati ya upatikanaji" ambayo mkataba wa kuthibitisha kwenye mnyororo huikagua kabla ya kuidhinisha masasisho ya hali. + +Validiums hutofautiana katika mbinu zao za usimamizi wa upatikanaji wa data. Baadhi hutegemea wahusika wanaoaminika kuhifadhi data ya hali, wakati wengine hutumia wathibitishaji waliopewa nasibu kwa kazi hiyo. + +#### Kamati ya upatikanaji wa data (DAC) {#data-availability-committee} + +Ili kuhakikisha upatikanaji wa data ya nje ya mnyororo, baadhi ya suluhu za validium huteua kundi la vyombo vinavyoaminika, vinavyojulikana kwa pamoja kama kamati ya upatikanaji wa data (DAC), ili kuhifadhi nakala za hali na kutoa uthibitisho wa upatikanaji wa data. Kamati za DAC ni rahisi kutekeleza na zinahitaji uratibu mdogo kwa kuwa uanachama ni mdogo. + +Hata hivyo, watumiaji lazima waamini DAC ili kufanya data ipatikane inapohitajika (k.m., kwa ajili ya kuzalisha ithibati za Merkle). Kuna uwezekano wa wanachama wa kamati za upatikanaji wa data [kuathiriwa na mhusika hasidi](https://notes.ethereum.org/DD7GyItYQ02d0ax_X-UbWg?view) ambaye anaweza kuzuia data ya nje ya mnyororo. + +[Zaidi kuhusu kamati za upatikanaji wa data katika validiums](https://medium.com/starkware/data-availability-e5564c416424). + +#### Upatikanaji wa data uliodhaminiwa {#bonded-data-availability} + +Validiums nyingine zinahitaji washiriki wanaohusika na kuhifadhi data ya nje ya mtandao kuweka hisa (yaani, kufungia) tokeni katika mkataba-erevu kabla ya kuchukua majukumu yao. Hisa hii hutumika kama "dhamana" ili kuhakikisha tabia ya uaminifu miongoni mwa wasimamizi wa upatikanaji wa data na inapunguza dhana za uaminifu. Ikiwa washiriki hawa watashindwa kuthibitisha upatikanaji wa data, dhamana hupunguzwa. + +Katika mpango wa upatikanaji wa data uliodhaminiwa, mtu yeyote anaweza kupewa jukumu la kushikilia data ya nje ya mnyororo mara tu anapotoa hisa inayohitajika. Hii huongeza bwawa la wasimamizi wa upatikanaji wa data wanaostahili, na kupunguza ugatuzi unaoathiri kamati za upatikanaji wa data (DACs). Muhimu zaidi, mbinu hii inategemea motisha za kiuchumi za kripto kuzuia shughuli hasidi, ambayo ni salama zaidi kuliko kuteua wahusika wanaoaminika ili kulinda data ya nje ya mtandao katika validium. + +[Zaidi kuhusu upatikanaji wa data uliodhaminiwa katika validiums](https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf). + +## Volitions na validium {#volitions-and-validium} + +Validiums hutoa faida nyingi lakini huja na changamoto (hasa, upatikanaji wa data). Lakini, kama ilivyo kwa suluhu nyingi za kuongeza ukubwa, validiums zinafaa kwa matumizi maalum—ndiyo maana volitions ziliundwa. + +Volitions huchanganya ZK-rollup na mnyororo wa validium na huruhusu watumiaji kubadili kati ya suluhu mbili za kuongeza ukubwa. Kwa kutumia volitions, watumiaji wanaweza kunufaika na upatikanaji wa data nje ya mnyororo wa validium kwa miamala fulani, huku wakibaki na uhuru wa kubadili hadi suluhisho la upatikanaji wa data kwenye mnyororo (ZK-rollup) ikihitajika. Hii kimsingi huwapa watumiaji uhuru wa kuchagua changamoto kulingana na mazingira yao ya kipekee. + +Exchange isiyogatuliwa (DEX) inaweza kupendelea kutumia miundombinu inayoweza kuongezeka na ya faragha ya validium kwa biashara za thamani ya juu. Inaweza pia kutumia ZK-rollup kwa watumiaji wanaotaka dhamana za juu za usalama na kutohitaji uaminifu za ZK-rollup. + +## Upatanifu wa Validiums na EVM {#validiums-and-evm-compatibility} + +Kama ZK-rollups, validiums zinafaa zaidi kwa programu rahisi, kama vile ubadilishanaji wa tokeni na malipo. Kusaidia ukokotoaji wa jumla na utekelezaji wa mikataba-erevu miongoni mwa validiums ni vigumu kutekeleza, kutokana na gharama kubwa ya kuthibitisha maagizo ya [EVM](/developers/docs/evm/) katika sakiti ya ithibati ya zero-knowledge. + +Baadhi ya miradi ya validium hujaribu kukwepa tatizo hili kwa kuandaa lugha zinazoendana na EVM (k.m., Solidity, Vyper) ili kuunda bytecode maalum iliyoboreshwa kwa uthibitisho mzuri. Upungufu wa mbinu hii ni kwamba VM mpya zinazofaa kwa ithibati za zero-knowledge zinaweza zisiunge mkono opcodes muhimu za EVM, na wasanidi programu wanapaswa kuandika moja kwa moja katika lugha ya kiwango cha juu kwa uzoefu bora. Hii inaleta matatizo zaidi: inawalazimisha wasanidi programu kujenga mfumo mtawanyo wa kimamlaka na rundo jipya kabisa la usanidi na inavunja upatanifu na miundombinu ya sasa ya Ethereum. + +Hata hivyo, baadhi ya timu zinajaribu kuboresha opcodes zilizopo za EVM kwa ajili ya sakiti za uthibitisho wa ZK. Hii itasababisha uundaji wa Mashine Halisi ya Ethereum ya Zero-Knowledge (zkEVM), VM inayoendana na EVM ambayo hutoa ithibati ili kuthibitisha usahihi wa utekelezaji wa programu. Kwa zkEVM, minyororo ya validium inaweza kutekeleza mikataba-erevu nje ya mnyororo na kuwasilisha ithibati za uhalali ili kuthibitisha ukokotoaji wa nje ya mnyororo (bila kulazimika kuitekeleza tena) kwenye Ethereum. + +[Zaidi kuhusu zkEVMs](https://www.alchemy.com/overviews/zkevm). + +## Je, validiums huongezaje ukubwa wa Ethereum? {#scaling-ethereum-with-validiums} + +### 1. Uhifadhi wa data nje ya mnyororo {#offchain-data-storage} + +Miradi ya kuongeza ukubwa ya Safu ya 2, kama vile optimistic rollups na ZK-rollups, hubadilisha uongezaji usio na kikomo wa itifaki za kuongeza ukubwa za nje ya mnyororo (k.m., [Njozi](/developers/docs/scaling/plasma/)) kwa usalama kwa kuchapisha baadhi ya data za miamala kwenye L1. Lakini hii inamaanisha sifa za kuongeza ukubwa za rollups zimezuiwa na kipimo data kwenye Mtandao Mkuu wa Ethereum ([ugawanyaji wa data](/roadmap/danksharding/) unapendekeza kuboresha uwezo wa uhifadhi wa data wa Ethereum kwa sababu hii). + +Validiums hufikia kuongeza ukubwa kwa kuweka data yote ya miamala nje ya mnyororo na huweka tu ahadi za hali (na ithibati za uhalali) wakati wa kupeleka masasisho ya hali kwenye mnyororo mkuu wa Ethereum. Hata hivyo, uwepo wa ithibati za uhalali huipa validiums dhamana za juu za usalama kuliko suluhu nyingine za kuongeza ukubwa za nje ya mnyororo, ikiwa ni pamoja na Njozi na [sidechains](/developers/docs/scaling/sidechains/). Kwa kupunguza kiasi cha data ambacho Ethereum inapaswa kuchakata kabla ya kuthibitisha miamala ya nje ya mnyororo, miundo ya validium huongeza sana upitishaji kwenye Mtandao Mkuu. + +### 2. Ithibati za kujirudia {#recursive-proofs} + +Ithibati ya kujirudia ni ithibati ya uhalali inayothibitisha uhalali wa ithibati nyingine. "Ithibati hizi za ithibati" huzalishwa kwa kukusanya ithibati nyingi kwa kujirudia hadi ithibati moja ya mwisho inayothibitisha ithibati zote za awali itengenezwe. Ithibati za kujirudia huongeza kasi ya usindikaji wa mnyororo wa bloku kwa kuongeza idadi ya miamala inayoweza kuthibitishwa kwa kila ithibati ya uhalali. + +Kwa kawaida, kila ithibati ya uhalali ambayo mwendeshaji wa validium huiwasilisha kwa Ethereum kwa uthibitisho huthibitisha uadilifu wa bloku moja. Wakati ithibati moja ya kujirudia inaweza kutumika kuthibitisha uhalali wa bloku kadhaa za validium kwa wakati mmoja—hii inawezekana kwani sakiti ya kuthibitisha inaweza kukusanya ithibati kadhaa za bloku kwa kujirudia na kuwa ithibati moja ya mwisho. Ikiwa mkataba wa kuthibitisha kwenye mnyororo utakubali ithibati ya kujirudia, bloku zote za msingi hukamilishwa mara moja. + +## Faida na hasara za validium {#pros-and-cons-of-validium} + +| Faida | Hasara | +| --------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Ithibati za uhalali hutekeleza uadilifu wa miamala ya nje ya mnyororo na kuzuia waendeshaji kukamilisha masasisho ya hali batili. | Uzalishaji wa ithibati za uhalali unahitaji maunzi maalum, jambo linaloleta hatari ya ugatuzi. | +| Huongeza ufanisi wa mtaji kwa watumiaji (hakuna ucheleweshaji wa kutoa fedha kurudi Ethereum) | Usaidizi mdogo kwa ukokotoaji wa jumla/mikataba-erevu; lugha maalum zinahitajika kwa usanidi. | +| Haiathiriwi na mashambulizi fulani ya kiuchumi yanayokabili mifumo inayotegemea uthibitisho wa ulaghai katika matumizi ya thamani ya juu. | Nguvu kubwa ya ukokotoaji inahitajika kuzalisha ithibati za ZK; haina gharama nafuu kwa programu za upitishaji wa chini. | +| Hupunguza ada za gesi kwa watumiaji kwa kutoweka calldata kwenye Mtandao Mkuu wa Ethereum. | Muda wa polepole wa ukamilisho wa kihisia (dakika 10-30 kuzalisha ithibati ya ZK) lakini haraka zaidi kufikia ukamilisho kamili kwa sababu hakuna ucheleweshaji wa muda wa mzozo. | +| Inafaa kwa matumizi maalum, kama vile biashara au michezo ya mnyororo wa bloku inayotanguliza faragha ya miamala na kuongeza ukubwa. | Watumiaji wanaweza kuzuiwa kutoa fedha kwa kuwa uzalishaji wa ithibati za umiliki za Merkle unahitaji data ya nje ya mnyororo kupatikana wakati wote. | +| Upatikanaji wa data nje ya mnyororo hutoa viwango vya juu vya upitishaji na huongeza kuongezeka kwa ukubwa. | Mtindo wa usalama unategemea dhana za uaminifu na motisha za kiuchumi za kripto, tofauti na ZK-rollups, ambazo hutegemea tu mifumo ya usalama ya kriptografia. | + +### Tumia Validium/Volitions {#use-validium-and-volitions} + +Miradi mingi hutoa utekelezaji wa Validium na volitions ambayo unaweza kuiunganisha katika mfumo mtawanyo wa kimamlaka wako: + +**StarkWare StarkEx** - _StarkEx ni suluhisho la kuongeza ukubwa la Safu ya 2 (L2) ya Ethereum ambalo linategemea ithibati za uhalali. Inaweza kufanya kazi katika modi za upatikanaji wa data za ZK-Rollup au Validium._ + +- [Nyaraka](https://docs.starkware.co/starkex-v4/starkex-deep-dive/data-availability-modes#validium) +- [Tovuti](https://starkware.co/starkex/) + +**Matter Labs zkPorter**- _zkPorter ni itifaki ya kuongeza ukubwa ya Safu ya 2 inayoshughulikia upatikanaji wa data kwa mbinu mseto inayochanganya mawazo ya zkRollup na ugawanyaji. Inaweza kusaidia idadi yoyote ya shards, kila moja ikiwa na sera yake ya upatikanaji wa data._ + +- [Blogu](https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf) +- [Nyaraka](https://docs.zksync.io/zksync-protocol/rollup/data-availability) +- [Tovuti](https://zksync.io/) + +## Masomo zaidi {#further-reading} + +- [Validium na Safu ya 2 Mbili-kwa-Mbili — Toleo Na. 99](https://www.buildblockchain.tech/newsletter/issues/no-99-validium-and-the-layer-2-two-by-two) +- [ZK-rollups dhidi ya Validium](https://blog.matter-labs.io/zkrollup-vs-validium-starkex-5614e38bc263) +- [Volition na Wigo Unaoibuka wa Upatikanaji wa Data](https://medium.com/starkware/volition-and-the-emerging-data-availability-spectrum-87e8bfa09bb) +- [Rollups, Validiums, na Volitions: Jifunze Kuhusu Suluhu Moto Zaidi za Kuongeza Ukubwa za Ethereum](https://www.defipulse.com/blog/rollups-validiums-and-volitions-learn-about-the-hottest-ethereum-scaling-solutions) +- [Mwongozo wa Vitendo kwa Unda-mpya za Ethereum](https://web.archive.org/web/20241108192208/https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) diff --git a/public/content/translations/sw/developers/docs/storage/index.md b/public/content/translations/sw/developers/docs/storage/index.md new file mode 100644 index 00000000000..ea5717e4a25 --- /dev/null +++ b/public/content/translations/sw/developers/docs/storage/index.md @@ -0,0 +1,216 @@ +--- +title: Hifadhi Iliyogatuliwa +description: Muhtasari wa hifadhi iliyogatuliwa ni nini na zana zinazopatikana za kuiunganisha katika mfumo mtawanyo wa kimamlaka. +lang: sw +--- + +Tofauti na seva ya kati inayoendeshwa na kampuni au shirika moja, mifumo ya hifadhi iliyogatuliwa inajumuisha mtandao wa rika-kwa-rika wa watumiaji-waendeshaji ambao wanashikilia sehemu ya data kwa ujumla, na kuunda mfumo thabiti wa kushiriki hifadhi ya faili. Hizi zinaweza kuwa katika programu inayotegemea mnyororo wa bloku au mtandao wowote unaotegemea rika-kwa-rika. + +Ethereum yenyewe inaweza kutumika kama mfumo wa hifadhi iliyogatuliwa, na ndivyo ilivyo linapokuja suala la uhifadhi wa msimbo katika mikataba yote mahiri. Hata hivyo, inapofikia kiasi kikubwa cha data, hiyo siyo ilivyoundwa kwa ajili ya Ethereum. Mnyororo unakua kwa kasi, lakini wakati wa kuandika, mnyororo wa Ethereum una takriban GB 500 - 1TB ([kulingana na mteja](https://etherscan.io/chartsync/chaindefault)), na kila nodi kwenye mtandao inahitaji kuwa na uwezo wa kuhifadhi data zote. Ikiwa mnyororo ungepanuka hadi kiasi kikubwa cha data (tuseme 5TB) haingewezekana kwa nodi zote kuendelea kufanya kazi. Pia, gharama ya kupeleka data nyingi hivi kwenye Mtandao Mkuu itakuwa ghali mno kutokana na ada za [gesi](/developers/docs/gas). + +Kwa sababu ya vikwazo hivi, tunahitaji mnyororo au mbinu tofauti ya kuhifadhi kiasi kikubwa cha data kwa njia iliyogatuliwa. + +Unapoangalia chaguo za hifadhi iliyogatuliwa (dStorage), kuna mambo machache ambayo mtumiaji anapaswa kuzingatia. + +- Utaratibu wa kudumu / muundo wa motisha +- Utekelezaji wa uhifadhi wa data +- Ugatuaji +- Makubaliano + +## Utaratibu wa kudumu / muundo wa motisha {#persistence-mechanism} + +### Kulingana na mnyororo wa bloku {#blockchain-based} + +Ili kipande cha data kiendelee kuwepo milele, tunahitaji kutumia utaratibu wa kudumu. Kwa mfano, kwenye Ethereum, utaratibu wa kudumu ni kwamba mnyororo mzima unahitaji kuzingatiwa wakati wa kuendesha nodi. Vipande vipya vya data vinaunganishwa kwenye mwisho wa mnyororo, na unaendelea kukua - ukihitaji kila nodi kuiga data yote iliyopachikwa. + +Hii inajulikana kama uendelevu **unaotegemea mnyororo wa bloku**. + +Tatizo la uendelevu unaotegemea mnyororo wa bloku ni kwamba mnyororo unaweza kuwa mkubwa sana kuweza kudumishwa na kuhifadhi data zote kwa njia inayowezekana (k.m., [vyanzo vingi](https://healthit.com.au/how-big-is-the-internet-and-how-do-we-measure-it/) vinakadiria kuwa Mtandao unahitaji zaidi ya Zetabaiti 40 za uwezo wa hifadhi). + +Mnyororo wa bloku lazima pia uwe na aina fulani ya muundo wa motisha. Kwa uendelevu unaotegemea mnyororo wa bloku, kuna malipo yanayofanywa kwa mthibitishaji. Wakati data inaongezwa kwenye mnyororo, wathibitishaji hulipwa ili kuongeza data hiyo. + +Majukwaa yenye uendelevu unaotegemea mnyororo wa bloku: + +- Ethereum +- [Arweave](https://www.arweave.org/) + +### Kulingana na mkataba {#contract-based} + +Uendelevu **unaotegemea mkataba** una dhana kwamba data haiwezi kuigwa na kila nodi na kuhifadhiwa milele, na badala yake lazima idumishwe kwa makubaliano ya kimkataba. Haya ni makubaliano yaliyofanywa na nodi nyingi ambazo zimeahidi kushikilia kipande cha data kwa kipindi fulani cha muda. Ni lazima zirejeshewe fedha au zifanywe upya kila zinapoisha ili kuweka data iendelee kuwepo. + +Katika hali nyingi, badala ya kuhifadhi data zote kwenye mnyororo, hashi ya mahali data inapatikana kwenye mnyororo ndiyo huhifadhiwa. Kwa njia hii, mnyororo mzima hauhitaji kupanuka ili kuhifadhi data zote. + +Majukwaa yenye uendelevu unaotegemea mkataba: + +- [Filecoin](https://docs.filecoin.io/basics/what-is-filecoin) +- [Skynet](https://sia.tech/) +- [Storj](https://storj.io/) +- [Züs](https://zus.network/) +- [Crust Network](https://crust.network) +- [Swarm](https://www.ethswarm.org/) +- [4EVERLAND](https://www.4everland.org/) + +### Mawazo ya ziada {#additional-consideration} + +IPFS ni mfumo uliosambazwa wa kuhifadhi na kupata faili, tovuti, programu, na data. Haina mpango wa motisha uliojengewa ndani, lakini badala yake inaweza kutumika na suluhisho zozote za motisha zinazotegemea mkataba hapo juu kwa uendelevu wa muda mrefu. Njia nyingine ya kuendeleza data kwenye IPFS ni kufanya kazi na huduma ya kubandika, ambayo "itabandika" data yako kwa ajili yako. Unaweza hata kuendesha nodi yako mwenyewe ya IPFS na kuchangia kwenye mtandao ili kudumisha data yako na/au ya wengine bure! + +- [IPFS](https://docs.ipfs.io/concepts/what-is-ipfs/) +- [Pinata](https://www.pinata.cloud/) _(huduma ya kubandika ya IPFS)_ +- [web3.storage](https://web3.storage/) _(Huduma ya kubandika ya IPFS/Filecoin)_ +- [Infura](https://infura.io/product/ipfs) _(huduma ya kubandika ya IPFS)_ +- [IPFS Scan](https://ipfs-scan.io) _(kichunguzi cha kubandika cha IPFS)_ +- [4EVERLAND](https://www.4everland.org/)_(huduma ya kubandika ya IPFS)_ +- [Filebase](https://filebase.com) _(Huduma ya Kubandika ya IPFS)_ +- [Spheron Network](https://spheron.network/) _(huduma ya kubandika ya IPFS/Filecoin)_ + +SWARM ni teknolojia ya ugatuaji wa hifadhi na usambazaji wa data yenye mfumo wa motisha wa hifadhi na oracle ya bei ya kukodisha hifadhi. + +## Uhifadhi wa data {#data-retention} + +Ili kuhifadhi data, mifumo lazima iwe na aina fulani ya utaratibu wa kuhakikisha data inahifadhiwa. + +### Utaratibu wa changamoto {#challenge-mechanism} + +Mojawapo ya njia maarufu zaidi za kuhakikisha data inahifadhiwa, ni kutumia aina fulani ya changamoto ya kriptografia ambayo hutolewa kwa nodi ili kuhakikisha bado zina data. Mfano rahisi ni kuangalia uthibitisho wa ufikiaji wa Arweave. Wanatoa changamoto kwa nodi ili kuona kama wana data katika bloku ya hivi karibuni zaidi na bloku ya nasibu katika siku za nyuma. Ikiwa nodi haiwezi kupata jibu, inaadhibiwa. + +Aina za dStorage zenye utaratibu wa changamoto: + +- Züs +- Skynet +- Arweave +- Filecoin +- Crust Network +- 4EVERLAND + +### Ugatuaji {#decentrality} + +Hakuna zana bora za kupima kiwango cha ugatuaji wa majukwaa, lakini kwa ujumla, utataka kutumia zana ambazo hazina aina fulani ya KYC ili kutoa ushahidi kuwa hazijawekwa kati. + +Zana zilizogatuliwa bila KYC: + +- Skynet +- Arweave +- Filecoin +- IPFS +- Ethereum +- Crust Network +- 4EVERLAND + +### Makubaliano + +Zana nyingi hizi zina toleo lao la [utaratibu wa makubaliano](/developers/docs/consensus-mechanisms/) lakini kwa ujumla zinatokana na [**Uthibitishaji-wa-kazi (PoW)**](/developers/docs/consensus-mechanisms/pow/) au [**Uthibitisho-wa-hisa (PoS)**](/developers/docs/consensus-mechanisms/pos/). + +Uthibitisho-wa-kazi msingi: + +- Skynet +- Arweave + +Uthibitisho-wa-stake: + +- Ethereum +- Filecoin +- Züs +- Crust Network + +## Zana zinazohusiana {#related-tools} + +**IPFS - _Mfumo wa Faili wa K baina ya Sayari ni mfumo uliogatuliwa wa hifadhi na urejeleaji wa faili kwa ajili ya Ethereum._** + +- [Ipfs.io](https://ipfs.io/) +- [Nyaraka](https://docs.ipfs.io/) +- [GitHub](https://github.com/ipfs/ipfs) + +**Storj DCS - _Hifadhi ya vitu vya wingu iliyogatuliwa, salama, ya faragha, na inayooana na S3 kwa wasanidi programu._** + +- [Storj.io](https://storj.io/) +- [Nyaraka](https://docs.storj.io/) +- [GitHub](https://github.com/storj/storj) + +**Sia - _Hutumia kriptografia kuunda soko la hifadhi ya wingu lisilohitaji uaminifu, kuruhusu wanunuzi na wauzaji kufanya miamala moja kwa moja._** + +- [Skynet.net](https://sia.tech/) +- [Nyaraka](https://docs.sia.tech/) +- [GitHub](https://github.com/SiaFoundation/) + +**Filecoin - _Filecoin iliundwa na timu ile ile iliyo nyuma ya IPFS. Ni safu ya motisha juu ya maadili ya IPFS._** + +- [Filecoin.io](https://filecoin.io/) +- [Nyaraka](https://docs.filecoin.io/) +- [GitHub](https://github.com/filecoin-project/) + +**Arweave - _Arweave ni jukwaa la dStorage la kuhifadhi data._** + +- [Arweave.org](https://www.arweave.org/) +- [Nyaraka](https://docs.arweave.org/info/) +- [Arweave](https://github.com/ArweaveTeam/arweave/) + +**Züs - _Züs ni jukwaa la dStorage la uthibitisho-wa-hisa lenye ugawanyaji na blobbers._** + +- [zus.network](https://zus.network/) +- [Nyaraka](https://docs.zus.network/zus-docs/) +- [GitHub](https://github.com/0chain/) + +**Crust Network - _Crust ni jukwaa la dStorage juu ya IPFS._** + +- [Crust.network](https://crust.network) +- [Nyaraka](https://wiki.crust.network) +- [GitHub](https://github.com/crustio) + +**Swarm - _Jukwaa la hifadhi iliyosambazwa na huduma ya usambazaji wa maudhui kwa ajili ya rundo la web3 la Ethereum._** + +- [EthSwarm.org](https://www.ethswarm.org/) +- [Nyaraka](https://docs.ethswarm.org/) +- [GitHub](https://github.com/ethersphere/) + +**OrbitDB - _Hifadhidata iliyogatuliwa ya rika-kwa-rika juu ya IPFS._** + +- [OrbitDB.org](https://orbitdb.org/) +- [Nyaraka](https://github.com/orbitdb/field-manual/) +- [GitHub](https://github.com/orbitdb/orbit-db/) + +**Aleph.im - _Mradi wa wingu uliogatuliwa (hifadhidata, hifadhi ya faili, kompyuta na DID). Mchanganyiko wa kipekee wa teknolojia ya rika-kwa-rika ya nje ya mnyororo na ndani ya mnyororo. Upatanifu wa IPFS na minyororo mingi._** + +- [Aleph.im](https://aleph.cloud/) +- [Nyaraka](https://docs.aleph.cloud/) +- [GitHub](https://github.com/aleph-im/) + +**Ceramic - _Hifadhi ya hifadhidata ya IPFS inayodhibitiwa na mtumiaji kwa ajili ya programu zenye data nyingi na zinazovutia._** + +- [Ceramic.network](https://ceramic.network/) +- [Nyaraka](https://developers.ceramic.network/) +- [GitHub](https://github.com/ceramicnetwork/js-ceramic/) + +**Filebase - _Hifadhi iliyogatuliwa inayooana na S3 na huduma ya kubandika ya IPFS yenye nakala za ziada za kijiografia. Faili zote zilizopakiwa kwenye IPFS kupitia Filebase hubandikwa kiotomatiki kwenye miundombinu ya Filebase na nakala 3x kote ulimwenguni._** + +- [Filebase.com](https://filebase.com/) +- [Nyaraka](https://docs.filebase.com/) +- [GitHub](https://github.com/filebase) + +**4EVERLAND - _Jukwaa la kompyuta ya wingu la Web 3.0 linalounganisha uwezo mkuu wa hifadhi, kompyuta na mtandao, linaoana na S3 na hutoa hifadhi ya data inayolandana kwenye mitandao ya hifadhi iliyogatuliwa kama vile IPFS na Arweave._** + +- [4everland.org](https://www.4everland.org/) +- [Nyaraka](https://docs.4everland.org/) +- [GitHub](https://github.com/4everland) + +**Kaleido - _Jukwaa la mnyororo-kama-huduma lenye Nodi za IPFS za kubofya kitufe_** + +- [Kaleido](https://kaleido.io/) +- [Nyaraka](https://docs.kaleido.io/kaleido-services/ipfs/) +- [GitHub](https://github.com/kaleido-io) + +**Spheron Network - _Spheron ni jukwaa-kama-huduma (PaaS) iliyoundwa kwa ajili ya mifumo mtawanyo wa kimamlaka inayotafuta kuzindua programu zao kwenye miundombinu iliyogatuliwa yenye utendaji bora. Hutoa kompyuta, hifadhi iliyogatuliwa, CDN na upangishaji wa wavuti bila kuhitaji usanidi._** + +- [spheron.network](https://spheron.network/) +- [Nyaraka](https://docs.spheron.network/) +- [GitHub](https://github.com/spheronFdn) + +## Masomo zaidi {#further-reading} + +- [Hifadhi Iliyogatuliwa ni Nini?](https://coinmarketcap.com/academy/article/what-is-decentralized-storage-a-deep-dive-by-filecoin) - _CoinMarketCap_ +- [Kuondoa Hadithi Tano za Kawaida kuhusu Hifadhi Iliyogatuliwa](https://www.storj.io/blog/busting-five-common-myths-about-decentralized-storage) - _Storj_ + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ + +## Mada zinazohusiana {#related-topics} + +- [Mifumo ya uundaji](/developers/docs/frameworks/) diff --git a/public/content/translations/sw/developers/docs/transactions/index.md b/public/content/translations/sw/developers/docs/transactions/index.md new file mode 100644 index 00000000000..452310ad207 --- /dev/null +++ b/public/content/translations/sw/developers/docs/transactions/index.md @@ -0,0 +1,231 @@ +--- +title: Miamala +description: Muhtasari wa miamala ya Ethereum - jinsi inavyofanya kazi, muundo wao wa data, na jinsi ya kuzituma kupitia mfumo. +lang: sw +--- + +Miamala ni maagizo yaliyosainiwa kwa njia fiche kutoka kwa akaunti. Akaunti itaanzisha muamala ili kusasisha hali ya mtandao wa Ethereum. Muamala rahisi zaidi ni kuhamisha ETH kutoka akaunti moja hadi nyingine. + +## Mahitaji ya awali {#prerequisites} + +Ili kukusaidia kuelewa ukurasa huu vizuri, tunapendekeza usome kwanza [Akaunti](/developers/docs/accounts/) na [utangulizi wetu wa Ethereum](/developers/docs/intro-to-ethereum/). + +## Muamala ni nini? {#whats-a-transaction} + +Muamala wa Ethereum unamaanisha kitendo kilichoanzishwa na akaunti inayomilikiwa na mtu wa nje, kwa maneno mengine akaunti inayosimamiwa na binadamu, sio mkataba. Kwa mfano, kama Bob atatuma ETH 1 kwa Alice, akaunti ya Bob lazima ipunguzwe na ya Alice ni lazima iongezwe. Kitendo hiki cha kubadilisha hali hufanyika ndani ya muamala. + +![Mchoro unaoonyesha muamala unaosababisha mabadiliko ya hali](./tx.png) +_Mchoro umechukuliwa kutoka [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Miamala, ambayo hubadilisha hali ya EVM, yanahitaji kutangazwa kwa mtandao mzima. Nodi yoyote inaweza kutangaza ombi la muamala kutekelezwa kwenye EVM; baada ya hili kutokea, mthibitishaji atatekeleza muamala na kueneza mabadiliko ya hali yaliyotokana kwa sehemu iliyobaki ya mtandao. + +Miamala inahitaji ada na lazima ijumuishwe kwenye bloku iliyothibitishwa. Ili kurahisisha muhtasari huu, tutaangazia ada za gesi na uthibitishaji mahali pengine. + +Muamala uliowasilishwa unajumuisha taarifa zifuatazo: + +- `from` – anwani ya mtumaji, ambayo itatia saini kwenye muamala. Hii itakuwa akaunti inayomilikiwa na mtu wa nje kwa kuwa akaunti za mkataba haziwezi kutuma miamala +- `to` – anwani ya mpokeaji (ikiwa ni akaunti inayomilikiwa na mtu wa nje, muamala utahamisha thamani. Ikiwa ni akaunti ya mkataba, muamala utatekeleza msimbo wa mkataba) +- `sahihi` – kitambulisho cha mtumaji. Hii inatengenezwa wakati ufunguo binafsi wa mtumaji unapotia saini muamala na kuthibitisha kuwa mtumaji ameidhinisha muamala huu +- `nonce` - kaunta inayoongezeka kwa mfuatano ambayo inaonyesha nambari ya muamala kutoka kwa akaunti +- `value` – kiasi cha ETH cha kuhamishwa kutoka kwa mtumaji hadi kwa mpokeaji (kimetajwa kwa WEI, ambapo 1ETH ni sawa na 1e+18wei) +- `input data` – sehemu ya hiari ya kujumuisha data yoyote +- `gasLimit` – kiwango cha juu cha vitengo vya gesi ambavyo vinaweza kutumiwa na muamala. [EVM](/developers/docs/evm/opcodes) inabainisha vitengo vya gesi vinavyohitajika kwa kila hatua ya kukokotoa +- `maxPriorityFeePerGas` - bei ya juu zaidi ya gesi iliyotumika kujumuishwa kama zawadi kwa mthibitishaji +- `maxFeePerGas` - ada ya juu zaidi kwa kila kitengo cha gesi ambayo mtu yuko tayari kulipia muamala (inajumuisha `baseFeePerGas` na `maxPriorityFeePerGas`) + +Gesi ni rejeleo la hesabu inayohitajika kuchakata muamala na mthibitishaji. Watumiaji wanapaswa kulipa ada kwa ajili ya hesabu hii. `gasLimit`, na `maxPriorityFeePerGas` huamua ada ya juu zaidi ya muamala inayolipwa kwa mthibitishaji. [Zaidi kuhusu Gesi](/developers/docs/gas/). + +Kitu cha muamala kitaonekana kama hivi: + +```js +{ + from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8", + to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a", + gasLimit: "21000", + maxFeePerGas: "300", + maxPriorityFeePerGas: "10", + nonce: "0", + value: "10000000000" +} +``` + +Lakini kitu cha muamala kinahitaji kutiwa saini kwa kutumia ufunguo binafsi wa mtumaji. Hii inathibitisha kuwa muamala ungeweza tu kutoka kwa mtumaji na haukutumwa kwa njia ya ulaghai. + +Mteja wa Ethereum kama Geth atashughulikia mchakato huu wa kutia saini. + +Mfano wa wito wa [JSON-RPC](/developers/docs/apis/json-rpc): + +```json +{ + "id": 2, + "jsonrpc": "2.0", + "method": "account_signTransaction", + "params": [ + { + "from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db", + "gas": "0x55555", + "maxFeePerGas": "0x1234", + "maxPriorityFeePerGas": "0x1234", + "input": "0xabcd", + "nonce": "0x0", + "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", + "value": "0x1234" + } + ] +} +``` + +Mfano wa jibu: + +```json +{ + "jsonrpc": "2.0", + "id": 2, + "result": { + "raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", + "tx": { + "nonce": "0x0", + "maxFeePerGas": "0x1234", + "maxPriorityFeePerGas": "0x1234", + "gas": "0x55555", + "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", + "value": "0x1234", + "input": "0xabcd", + "v": "0x26", + "r": "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e", + "s": "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", + "hash": "0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e" + } + } +} +``` + +- `raw` ni muamala uliotiwa saini katika mfumo uliosimbwa kwa [Kiambishi awali cha Urefu Kinachojirudia (RLP)](/developers/docs/data-structures-and-encoding/rlp) +- `tx` ni muamala uliotiwa saini katika mfumo wa JSON + +Kwa kutumia hashi ya saini, muamala unaweza kuthibitishwa kwa njia fiche kwamba ulitoka kwa mtumaji na uliwasilishwa kwenye mtandao. + +### Sehemu ya data {#the-data-field} + +Idadi kubwa ya miamala hufikia mkataba kutoka kwa akaunti inayomilikiwa na mtu wa nje. +Mikataba mingi imeandikwa kwa lugha ya Solidity na inatafsiri sehemu yake ya data kulingana na [kiolesura cha programu ya binary (ABI)](/glossary/#abi). + +Baiti nne za kwanza hubainisha ni kazi ipi ya kuitwa, kwa kutumia hashi ya jina la kazi na hoja zake. +Wakati mwingine unaweza kutambua kazi kutoka kwa kiteuzi kwa kutumia [hifadhidata hii](https://www.4byte.directory/signatures/). + +Sehemu iliyobaki ya calldata ni hoja, [zilizosimbwa kama ilivyobainishwa katika maelezo ya ABI](https://docs.soliditylang.org/en/latest/abi-spec.html#formal-specification-of-the-encoding). + +Kwa mfano, hebu tuangalie [muamala huu](https://etherscan.io/tx/0xd0dcbe007569fcfa1902dae0ab8b4e078efe42e231786312289b1eee5590f6a1). +Tumia **Bofya ili kuona Zaidi** ili kuona calldata. + +Kiteuzi cha kazi ni `0xa9059cbb`. Kuna [kazi kadhaa zinazojulikana na saini hii](https://www.4byte.directory/signatures/?bytes4_signature=0xa9059cbb). +Katika kesi hii [msimbo chanzo wa mkataba](https://etherscan.io/address/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48#code) umepakiwa kwenye Etherscan, kwa hivyo tunajua kazi ni `transfer(address,uint256)`. + +Data iliyobaki ni: + +``` +0000000000000000000000004f6742badb049791cd9a37ea913f2bac38d01279 +000000000000000000000000000000000000000000000000000000003b0559f4 +``` + +Kulingana na maelezo ya ABI, thamani za nambari kamili (kama vile anwani, ambazo ni nambari kamili za baiti-20) huonekana katika ABI kama maneno ya baiti-32, yaliyojazwa na sufuri mbele. +Kwa hivyo tunajua anwani ya `to` ni [`4f6742badb049791cd9a37ea913f2bac38d01279`](https://etherscan.io/address/0x4f6742badb049791cd9a37ea913f2bac38d01279). +`value` ni 0x3b0559f4 = 990206452. + +## Aina za miamala {#types-of-transactions} + +Kwenye Ethereum kuna aina chache tofauti za miamala: + +- Miamala ya kawaida: muamala kutoka akaunti moja kwenda nyingine. +- Miamala ya kupeleka mkataba: muamala bila anwani ya 'to', ambapo sehemu ya data hutumika kwa msimbo wa mkataba. +- Utekelezaji wa mkataba: muamala unaoingiliana na mkataba-erevu uliowekwa. Katika kesi hii, anwani ya 'to' ni anwani ya mkataba-erevu. + +### Kuhusu gesi {#on-gas} + +Kama ilivyotajwa, miamala inagharimu [gesi](/developers/docs/gas/) kutekeleza. Miamala rahisi ya uhamishaji inahitaji vitengo 21,000 vya Gesi. + +Kwa hiyo Bob kumtumia Alice 1 ETH kwa `baseFeePerGas` ya 190 gwei na `maxPriorityFeePerGas` ya 10 gwei, Bob atahitaji kulipa ada ifuatayo: + +``` +(190 + 10) * 21000 = 4,200,000 gwei +--au-- +0.0042 ETH +``` + +Akaunti ya Bob itapunguzwa **-1.0042 ETH** (ETH 1 kwa Alice + ETH 0.0042 katika ada za gesi) + +Akaunti ya Alice itaongezwa **+1.0 ETH** + +Ada ya msingi itachomwa **-0.00399 ETH** + +Mthibitishaji huweka zawadi **+0.000210 ETH** + +![Mchoro unaonyesha jinsi gesi isiyotumika inavyorejeshwa](./gas-tx.png) +_Mchoro umechukuliwa kutoka [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Gesi yoyote isiyotumika katika muamala hurejeshwa kwenye akaunti ya mtumiaji. + +### Mwingiliano wa mkataba-erevu {#smart-contract-interactions} + +Gesi inahitajika kwa muamala wowote unaohusisha mkataba-erevu. + +Mikataba-erevu pia inaweza kuwa na kazi zinazojulikana kama kazi za [`view`](https://docs.soliditylang.org/en/latest/contracts.html#view-functions) au [`pure`](https://docs.soliditylang.org/en/latest/contracts.html#pure-functions), ambazo hazibadilishi hali ya mkataba. Kwa hivyo, kuita kazi hizi kutoka kwa EOA hakutahitaji gesi yoyote. Wito wa msingi wa RPC kwa hali hii ni [`eth_call`](/developers/docs/apis/json-rpc#eth_call). + +Tofauti na inapofikiwa kwa kutumia `eth_call`, kazi hizi za `view` au `pure` pia huitwa kwa kawaida ndani (yaani, kutoka kwa mkataba wenyewe au kutoka kwa mkataba mwingine) ambazo hugharimu gesi. + +## Mzunguko wa maisha ya muamala {#transaction-lifecycle} + +Mara tu muamala unapowasilishwa, yafuatayo hutokea: + +1. Hashi ya muamala inatolewa kwa njia fiche: + `0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017` +2. Kisha muamala hutangazwa kwenye mtandao na kuongezwa kwenye dimbwi la miamala linalojumuisha miamala mingine yote ya mtandao inayosubiri. +3. Mthibitishaji lazima achague muamala wako na kuujumuisha kwenye bloku ili kuthibitisha muamala na kuuchukulia kama "uliyefanikiwa". +4. Kadiri muda unavyopita, bloku iliyo na muamala wako itasasishwa kuwa "iliyohalalishwa" kisha "iliyokamilishwa". Maboresho haya hufanya iwe na uhakika zaidi kwamba muamala wako ulifanikiwa na hautawahi kubadilishwa. Mara tu bloku "inapokamilishwa", inaweza tu kubadilishwa na shambulio la kiwango cha mtandao ambalo lingegharimu mabilioni mengi ya dola. + +## Onyesho la picha {#a-visual-demo} + +Tazama Austin akikuelekeza kupitia miamala, gesi, na uchimbaji madini. + + + +## Bahasha ya Muamala Uliochapwa {#typed-transaction-envelope} + +Ethereum hapo awali ilikuwa na muundo mmoja wa miamala. Kila muamala ulikuwa na nonce, bei ya gesi, kikomo cha gesi, anwani ya mpokeaji, thamani, data, v, r, na s. Sehemu hizi [zimesimbwa kwa RLP](/developers/docs/data-structures-and-encoding/rlp/), ili kuonekana kama hivi: + +`RLP([nonce, gasPrice, gasLimit, to, value, data, v, r, s])` + +Ethereum imebadilika ili kusaidia aina nyingi za miamala ili kuruhusu vipengele vipya kama vile orodha za ufikiaji na [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) kutekelezwa bila kuathiri miundo ya miamala ya zamani. + +[EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) ndicho kinachoruhusu tabia hii. Miamala inatafsiriwa kama: + +`TransactionType || TransactionPayload` + +Ambapo sehemu zimefafanuliwa kama: + +- `TransactionType` - nambari kati ya 0 na 0x7f, kwa jumla ya aina 128 zinazowezekana za miamala. +- `TransactionPayload` - safu ya baiti isiyo ya mpangilio iliyofafanuliwa na aina ya muamala. + +Kulingana na thamani ya `TransactionType`, muamala unaweza kuainishwa kama: + +1. **Aina ya 0 (Urithi) Miamala:** Muundo asili wa muamala uliotumika tangu uzinduzi wa Ethereum. Hazijumuishi vipengele kutoka [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) kama vile hesabu za ada za gesi zinazobadilika au orodha za ufikiaji za mikataba-erevu. Miamala ya urithi haina kiambishi awali maalum kinachoonyesha aina yake katika mfumo wake wa mfululizo, ikianza na baiti `0xf8` wakati wa kutumia usimbaji wa [Kiambishi awali cha Urefu Kinachojirudia (RLP)](/developers/docs/data-structures-and-encoding/rlp). Thamani ya TransactionType kwa miamala hii ni `0x0`. + +2. **Miamala ya Aina 1:** Ilianzishwa katika [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) kama sehemu ya [Sasisho la Berlin la](/ethereum-forks/#berlin) Ethereum, miamala hii inajumuisha kigezo cha `accessList`. Orodha hii inabainisha anwani na funguo za hifadhi ambazo muamala unatarajia kufikia, ikisaidia kupunguza gharama za [gesi](/developers/docs/gas/) kwa miamala tata inayohusisha mikataba-erevu. Mabadiliko ya soko la ada la EIP-1559 hayajumuishwi katika miamala ya Aina 1. Miamala ya Aina 1 pia inajumuisha kigezo cha `yParity`, ambacho kinaweza kuwa `0x0` au `0x1`, kikionyesha usawa wa thamani ya y ya saini ya secp256k1. Zinatambuliwa kwa kuanza na baiti `0x01`, na thamani yao ya TransactionType ni `0x1`. + +3. **Miamala ya Aina 2**, inayojulikana kama miamala ya EIP-1559, ni miamala iliyoanzishwa katika [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), katika [Sasisho la London la](/ethereum-forks/#london) Ethereum. Zimekuwa aina ya kawaida ya muamala kwenye mtandao wa Ethereum. Miamala hii inaleta utaratibu mpya wa soko la ada ambao unaboresha utabiri kwa kutenganisha ada ya muamala kuwa ada ya msingi na ada ya kipaumbele. Zinaanza na baiti `0x02` na zinajumuisha sehemu kama vile `maxPriorityFeePerGas` na `maxFeePerGas`. Miamala ya Aina 2 sasa ndiyo chaguo-msingi kutokana na unyumbufu na ufanisi wake, hasa inapendelewa wakati wa msongamano mkubwa wa mtandao kwa uwezo wake wa kusaidia watumiaji kudhibiti ada za miamala kwa utabiri zaidi. Thamani ya TransactionType kwa miamala hii ni `0x2`. + +4. **Miamala ya Aina 3 (Blob)** ilianzishwa katika [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) kama sehemu ya [Sasisho la Dencun la](/ethereum-forks/#dencun) Ethereum. Miamala hii imeundwa kushughulikia data ya "blob" (Vitu Vikubwa vya Binary) kwa ufanisi zaidi, hasa ikinufaisha unda-mpya wa Safu 2 kwa kutoa njia ya kutuma data kwenye mtandao wa Ethereum kwa gharama ya chini. Miamala ya blob inajumuisha sehemu za ziada kama vile `blobVersionedHashes`, `maxFeePerBlobGas`, na `blobGasPrice`. Zinaanza na baiti `0x03`, na thamani yao ya TransactionType ni `0x3`. Miamala ya blob inawakilisha uboreshaji mkubwa katika upatikanaji wa data wa Ethereum na uwezo wa kuongezeka. + +5. **Miamala ya Aina 4** ilianzishwa katika [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) kama sehemu ya [Sasisho la Pectra la](/roadmap/pectra/) Ethereum. Miamala hii imeundwa kuwa na uoanifu wa mbele na uondoaji wa akaunti. Zinaruhusu EOA kutenda kwa muda kama akaunti za mkataba-erevu bila kuathiri utendaji wao wa asili. Zinajumuisha kigezo cha `authorization_list`, ambacho kinabainisha mkataba-erevu ambao EOA inakabidhi mamlaka yake. Baada ya muamala, sehemu ya msimbo ya EOA itakuwa na anwani ya mkataba-erevu uliokabidhiwa. + +## Masomo zaidi {#further-reading} + +- [EIP-2718: Bahasha ya Muamala Yenye Aina](https://eips.ethereum.org/EIPS/eip-2718) + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ + +## Mada zinazohusiana {#related-topics} + +- [Hifadhi ya fedha](/developers/docs/accounts/) +- [Mashine Halisi ya Ethereum (EVM)](/developers/docs/evm/) +- [Gesi](/developers/docs/gas/) diff --git a/public/content/translations/sw/developers/docs/web2-vs-web3/index.md b/public/content/translations/sw/developers/docs/web2-vs-web3/index.md new file mode 100644 index 00000000000..9f9c23fd659 --- /dev/null +++ b/public/content/translations/sw/developers/docs/web2-vs-web3/index.md @@ -0,0 +1,62 @@ +--- +title: Wavuti-2 dhidi ya Wavuti-3 +description: Linganisha huduma za Web2 zilizowekwa kati na programu zilizogatuliwa za Web3 zilizojengwa kwenye teknolojia ya mnyororo wa bloku wa Ethereum. +lang: sw +--- + +Web2 inarejelea toleo la intaneti ambalo wengi wetu tunalijua leo. Intaneti inayotawaliwa na makampuni ambayo hutoa huduma kwa kubadilishana na data yako ya kibinafsi. Web3, katika muktadha wa Ethereum, inarejelea programu zilizogatuliwa zinazoendeshwa kwenye mnyororo wa bloku. Hizi ni programu zinazomruhusu mtu yeyote kushiriki bila kuchuma mapato kutokana na data yake ya kibinafsi. + +Unatafuta rasilimali inayofaa zaidi kwa wanaoanza? Tazama [utangulizi wetu wa web3](/web3/). + +## Faida za Web3 {#web3-benefits} + +Wasanidi programu wengi wa Web3 wamechagua kujenga mifumo mtawanyo ya kimamlaka kwa sababu ya ugatuaji asili wa Ethereum: + +- Mtu yeyote aliye kwenye mtandao ana ruhusa ya kutumia huduma – au kwa maneno mengine, ruhusa haihitajiki. +- Hakuna anayeweza kukuzuia au kukukatalia ufikiaji wa huduma. +- Malipo yamejengewa ndani kupitia tokeni asili, ether (ETH). +- Ethereum ni turing-complete, ikimaanisha unaweza kupanga programu karibu kila kitu. + +## Ulinganisho wa vitendo {#practical-comparisons} + +| Web2 | Wavuti3 | +| ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | +| Twitter inaweza kudhibiti akaunti au tweet yoyote | Tweet za Web3 haziwezi kudhibitiwa kwa sababu udhibiti umegatuliwa | +| Huduma ya malipo inaweza kuamua kutoruhusu malipo kwa aina fulani za kazi | Programu za malipo za Web3 hazihitaji data ya kibinafsi na haziwezi kuzuia malipo | +| Seva za programu za uchumi wa gig zinaweza kuacha kufanya kazi na kuathiri mapato ya wafanyakazi | Seva za Web3 haziwezi kuacha kufanya kazi – zinatumia Ethereum, mtandao uliogatuliwa wa maelfu ya kompyuta kama backend yao | + +Hii haimaanishi kwamba huduma zote zinahitaji kugeuzwa kuwa mfumo mtawanyo wa kimamlaka. Mifano hii inaonyesha tofauti kuu kati ya huduma za web2 na web3. + +## Mapungufu ya Web3 {#web3-limitations} + +Web3 ina mapungufu kadhaa kwa sasa: + +- Uwezo wa kuongezeka – miamala ni ya polepole zaidi kwenye web3 kwa sababu imegatuliwa. Mabadiliko ya hali, kama vile malipo, yanahitaji kuchakatwa na nodi na kuenezwa kwenye mtandao mzima. +- UX – kuingiliana na programu za web3 kunaweza kuhitaji hatua za ziada, programu, na elimu. Hii inaweza kuwa kikwazo kwa kukubalika. +- Ufikiaji – ukosefu wa muunganisho katika vivinjari vya kisasa hufanya web3 isifikiwe kwa urahisi na watumiaji wengi. +- Gharama – mifumo mtawanyo ya kimamlaka iliyofanikiwa zaidi huweka sehemu ndogo sana ya msimbo wao kwenye mnyororo wa bloku kwa kuwa ni ghali. + +## Uwekaji kati dhidi ya ugatuaji {#centralization-vs-decentralization} + +Katika jedwali lililo hapa chini, tumeorodhesha baadhi ya faida na hasara kwa ujumla za mitandao ya kidijitali iliyowekwa kati na iliyogatuliwa. + +| Mifumo Iliyowekwa Kati | Mifumo Iliyogatuliwa | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Kipenyo cha chini cha mtandao (washiriki wote wameunganishwa na mamlaka kuu); habari huenea haraka, kwani ueneaji hushughulikiwa na mamlaka kuu yenye rasilimali nyingi za kukokotoa. | Washiriki walio mbali zaidi kwenye mtandao wanaweza kuwa kingo nyingi mbali kutoka kwa kila mmoja. Habari inayotangazwa kutoka upande mmoja wa mtandao inaweza kuchukua muda mrefu kufikia upande mwingine. | +| Kawaida utendaji wa juu (upitishaji wa juu, rasilimali chache za kukokotoa zinazotumika) na rahisi kutekeleza. | Kawaida utendaji wa chini (upitishaji wa chini, rasilimali nyingi zaidi za kukokotoa zinazotumika) na ngumu zaidi kutekeleza. | +| Katika tukio la data zinazokinzana, utatuzi ni wazi na rahisi: chanzo kikuu cha ukweli ni mamlaka kuu. | Itifaki (mara nyingi ngumu) inahitajika kwa utatuzi wa mizozo, ikiwa rika hutoa madai yanayokinzana kuhusu hali ya data ambayo washiriki wanapaswa kusawazishwa kwayo. | +| Sehemu moja ya kutofaulu: wahusika hasidi wanaweza kuuangusha mtandao kwa kulenga mamlaka kuu. | Hakuna sehemu moja ya kutofaulu: mtandao bado unaweza kufanya kazi hata kama sehemu kubwa ya washiriki watashambuliwa/kuondolewa. | +| Uratibu kati ya washiriki wa mtandao ni rahisi zaidi, na hushughulikiwa na mamlaka kuu. Mamlaka kuu inaweza kulazimisha washiriki wa mtandao kupitisha maboresho, masasisho ya itifaki, n.k., bila shida nyingi. | Uratibu mara nyingi ni mgumu, kwani hakuna wakala mmoja aliye na kauli ya mwisho katika maamuzi ya kiwango cha mtandao, maboresho ya itifaki, n.k. Katika hali mbaya zaidi, mtandao uko katika hatari ya kugawanyika kunapokuwa na kutokubaliana kuhusu mabadiliko ya itifaki. | +| Mamlaka kuu inaweza kudhibiti data, na hivyo kuweza kukata sehemu za mtandao zisishirikiane na sehemu iliyobaki ya mtandao. | Udhibiti ni mgumu zaidi, kwani habari ina njia nyingi za kuenea katika mtandao. | +| Ushiriki katika mtandao unadhibitiwa na mamlaka kuu. | Mtu yeyote anaweza kushiriki katika mtandao; hakuna “walinzi wa lango.” Kimsingi, gharama ya ushiriki ni ya chini sana. | + +Kumbuka kuwa hizi ni ruwaza za jumla ambazo huenda zisiwe za kweli katika kila mtandao. Zaidi ya hayo, katika uhalisia kiwango ambacho mtandao umewekwa kati/umegatuliwa kipo kwenye wigo; hakuna mtandao uliowekwa kati kabisa au uliogatuliwa kabisa. + +## Masomo zaidi {#further-reading} + +- [Web3 ni nini?](/web3/) - _ethereum.org_ +- [Usanifu wa programu ya Web 3.0](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) - _Preethi Kasireddy_ +- [Maana ya Ugatuaji](https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274) _Feb 6, 2017 - Vitalik Buterin_ +- [Kwa Nini Ugatuaji ni Muhimu](https://onezero.medium.com/why-decentralization-matters-5e3f79f7638e) _Feb 18, 2018 - Chris Dixon_ +- [Web 3.0 ni Nini na Kwa Nini ni Muhimu](https://medium.com/fabric-ventures/what-is-web-3-0-why-it-matters-934eb07f3d2b) _Dec 31, 2019 - Max Mersch and Richard Muirhead_ +- [Kwa Nini Tunahitaji Web 3.0](https://gavofyork.medium.com/why-we-need-web-3-0-5da4f2bf95ab) _Sep 12, 2018 - Gavin Wood_ diff --git a/public/content/translations/sw/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/translations/sw/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md new file mode 100644 index 00000000000..232ba53e345 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md @@ -0,0 +1,300 @@ +--- +title: Utangulizi wa msanidi programu wa Python kwa Ethereum, sehemu ya 1 +description: Utangulizi wa uundaji wa Ethereum, muhimu hasa kwa wale wenye ujuzi wa lugha ya programu ya Python +author: Marc Garreau +lang: sw +tags: [ "Python", "web3.py" ] +skill: beginner +published: 2020-09-08 +source: Snake charmers +sourceUrl: https://snakecharmers.ethereum.org/a-developers-guide-to-ethereum-pt-1/ +--- + +Kwa hivyo, umesikia kuhusu jambo hili la Ethereum na uko tayari kuanza safari ya kulichunguza kwa kina? Chapisho hili litaelezea kwa haraka misingi fulani ya mnyororo wa bloku, kisha kukuwezesha kuingiliana na nodi ya Ethereum iliyoigwa – kusoma data ya bloku, kuangalia salio la akaunti, na kutuma miamala. Wakati huo huo, tutaangazia tofauti kati ya njia za jadi za kuunda programu na dhana hii mpya ya ugatuzi. + +## Mahitaji (yasiyo ya lazima) {#soft-prerequisites} + +Chapisho hili linalenga kufikiwa na wasanidi programu mbalimbali. [Zana za Python](/developers/docs/programming-languages/python/) zitatumika, lakini ni kama chombo tu cha kuwasilisha mawazo – hakuna shida kama wewe si msanidi programu wa Python. Hata hivyo, nitakuwa na mawazo machache kuhusu kile ambacho tayari unakijua, ili tuweze kuendelea haraka na sehemu mahususi za Ethereum. + +Mawazo: + +- Unaweza kutumia terminal, +- Umeandika mistari michache ya msimbo wa Python, +- Toleo la Python 3.6 au la juu zaidi limesakinishwa kwenye kompyuta yako (matumizi ya [mazingira ya mtandaoni](https://realpython.com/effective-python-environment/#virtual-environments) yanapendekezwa sana), na +- umetumia `pip`, kisakinishi cha vifurushi cha Python. + Tena, ikiwa yoyote kati ya haya si kweli, au huna mpango wa kuiga msimbo katika makala hii, bado unaweza kufuatilia vizuri tu. + +## Minyororo ya bloku, kwa ufupi {#blockchains-briefly} + +Kuna njia nyingi za kuelezea Ethereum, lakini kiini chake ni mnyororo wa bloku. Minyororo ya bloku huundwa na mfululizo wa bloku, kwa hivyo tuanzie hapo. Kwa maneno rahisi, kila bloku kwenye mnyororo wa bloku wa Ethereum ni metadata fulani na orodha ya miamala. Katika umbizo la JSON, inaonekana kama hivi: + +```json +{ + "number": 1234567, + "hash": "0xabc123...", + "parentHash": "0xdef456...", + ..., + "transactions": [...] +} +``` + +Kila [bloku](/developers/docs/blocks/) ina rejeleo la bloku iliyotangulia; `parentHash` ni hashi tu ya bloku iliyopita. + +Kumbuka: Ethereum hutumia mara kwa mara
kazi za hashi kutoa thamani za ukubwa usiobadilika ("hashi"). Hashi zina jukumu muhimu katika Ethereum, lakini kwa sasa unaweza kuzichukulia kama vitambulisho vya kipekee. + +![Mchoro unaoonyesha mnyororo wa bloku pamoja na data ndani ya kila bloku](./blockchain-diagram.png) + +_Mnyororo wa bloku kimsingi ni orodha iliyounganishwa; kila bloku ina rejeleo la bloku iliyopita._ + +Muundo huu wa data si jambo jipya, lakini sheria (yaani, itifaki za rika-kwa-rika) zinazoongoza mtandao ndizo zilizo mpya. Hakuna mamlaka kuu; mtandao wa marika lazima ushirikiane ili kuendeleza mtandao, na kushindana kuamua ni miamala ipi itakayojumuishwa katika bloku inayofuata. Kwa hivyo, unapotaka kumtumia rafiki pesa, utahitaji kutangaza muamala huo kwa mtandao, kisha subiri ujumuishwe katika bloku ijayo. + +Njia pekee ya mnyororo wa bloku kuthibitisha kuwa pesa zilitumwa kweli kutoka kwa mtumiaji mmoja hadi mwingine ni kutumia sarafu asili ya (yaani, iliyoundwa na kusimamiwa na) mnyororo huo wa bloku. Katika Ethereum, sarafu hii inaitwa ether, na mnyororo wa bloku wa Ethereum una rekodi rasmi pekee ya salio za akaunti. + +## Dhana mpya {#a-new-paradigm} + +Rundo hili jipya la teknolojia ya ugatuzi limechochea zana mpya za wasanidi programu. Zana kama hizo zipo katika lugha nyingi za programu, lakini tutakuwa tukiangalia kupitia lenzi ya Python. Kukariri: hata kama Python si lugha unayoipendelea, haipaswi kuwa shida sana kufuatilia. + +Wasanidi programu wa Python wanaotaka kuingiliana na Ethereum huenda wakatumia [Web3.py](https://web3py.readthedocs.io/). Web3.py ni maktaba inayorahisisha sana jinsi unavyounganisha kwenye nodi ya Ethereum, kisha kutuma na kupokea data kutoka kwayo. + +Kumbuka: "Nodi ya Ethereum" na "Mteja wa Ethereum" hutumika kwa kubadilishana. Katika hali zote mbili, inarejelea programu ambayo mshiriki katika mtandao wa Ethereum anatumia. Programu hii inaweza kusoma data ya bloku, kupokea sasisho wakati bloku mpya zinaongezwa kwenye mnyororo, kutangaza miamala mipya, na zaidi. Kitaalamu, mteja ni programu, nodi ni kompyuta inayoendesha programu hiyo. + +[Wateja wa Ethereum](/developers/docs/nodes-and-clients/) wanaweza kusanidiwa kufikiwa na [IPC](https://wikipedia.org/wiki/Inter-process_communication), HTTP, au Websockets, kwa hivyo Web3.py itahitaji kuiga usanidi huu. Web3.py inarejelea chaguo hizi za muunganisho kama **watoa huduma**. Utataka kuchagua mmoja wa watoa huduma watatu ili kuunganisha tukio la Web3.py na nodi yako. + +![Mchoro unaoonyesha jinsi web3.py inavyotumia IPC kuunganisha programu yako na nodi ya Ethereum](./web3py-and-nodes.png) + +_Sanidi nodi ya Ethereum na Web3.py ili kuwasiliana kupitia itifaki ileile, k.m., IPC katika mchoro huu._ + +Mara tu Web3.py itakaposanidiwa vizuri, unaweza kuanza kuingiliana na mnyororo wa bloku. Hapa kuna mifano michache ya matumizi ya Web3.py kama onyesho la kile kitakachofuata: + +```python +# soma data ya bloku: +w3.eth.get_block('latest') + +# tuma muamala: +w3.eth.send_transaction({'from': ..., 'to': ..., 'value': ...}) +``` + +## Usakinishaji {#installation} + +Katika mwongozo huu, tutakuwa tukifanya kazi ndani ya mkalimani wa Python tu. Hatutakuwa tukitengeneza saraka, faili, madarasa au kazi zozote. + +Kumbuka: Katika mifano iliyo hapa chini, amri zinazoanza na `$` zimekusudiwa kuendeshwa kwenye terminal. (Usiandike `$`, inaashiria tu mwanzo wa mstari.) + +Kwanza, sakinisha [IPython](https://ipython.org/) kwa mazingira rahisi ya mtumiaji ya kuchunguza. IPython inatoa ukamilishaji wa kichupo, miongoni mwa vipengele vingine, na kuifanya iwe rahisi zaidi kuona kinachowezekana ndani ya Web3.py. + +```bash +pip install ipython +``` + +Web3.py imechapishwa chini ya jina `web3`. Isakinishe kama ifuatavyo: + +```bash +pip install web3 +``` + +Jambo moja zaidi – tutaiga mnyororo wa bloku baadaye, jambo ambalo linahitaji vitegemezi vingine vichache. Unaweza kuzisakinisha kupitia: + +```bash +pip install 'web3[tester]' +``` + +Uko tayari kuanza! + +Kumbuka: Kifurushi cha `web3[tester]` hufanya kazi hadi Python 3.10.xx + +## Anzisha sanduku la mchanga {#spin-up-a-sandbox} + +Fungua mazingira mapya ya Python kwa kuendesha `ipython` kwenye terminal yako. Hii inalinganishwa na kuendesha `python`, lakini inakuja na mambo mengi zaidi. + +```bash +ipython +``` + +Hii itachapisha habari fulani kuhusu matoleo ya Python na IPython unayotumia, kisha unapaswa kuona kidokezo kinachosubiri uingizaji: + +```python +In [1]: +``` + +Sasa unaangalia ganda la maingiliano la Python. Kimsingi, ni sanduku la mchanga la kuchezea. Ikiwa umefika hapa, ni wakati wa kuingiza Web3.py: + +```python +In [1]: from web3 import Web3 +``` + +## Kutambulisha moduli ya Web3 {#introducing-the-web3-module} + +Licha ya kuwa lango la Ethereum, moduli ya [Web3](https://web3py.readthedocs.io/en/stable/overview.html#base-api) hutoa kazi chache za urahisi. Hebu tuchunguze kadhaa. + +Katika programu ya Ethereum, kwa kawaida utahitaji kubadilisha madhehebu ya sarafu. Moduli ya Web3 hutoa mbinu kadhaa za usaidizi kwa ajili ya hili tu: [from_wei](https://web3py.readthedocs.io/en/stable/web3.main.html#web3.Web3.from_wei) na [to_wei](https://web3py.readthedocs.io/en/stable/web3.main.html#web3.Web3.to_wei). + + +Kumbuka: Kompyuta ni mbaya sana katika kushughulikia hesabu za desimali. Ili kuepuka hili, wasanidi programu mara nyingi huhifadhi kiasi cha dola katika senti. Kwa mfano, bidhaa yenye bei ya $5.99 inaweza kuhifadhiwa kwenye hifadhidata kama 599. + +Mfumo kama huo hutumiwa wakati wa kushughulikia miamala katika ether. Hata hivyo, badala ya nukta mbili za desimali, ether ina 18! Dhehebu dogo zaidi la ether linaitwa wei, kwa hivyo hiyo ndiyo thamani iliyobainishwa wakati wa kutuma miamala. + +ether 1 = wei 1000000000000000000 + +wei 1 = ether 0.000000000000000001 + + + +Jaribu kubadilisha baadhi ya thamani kwenda na kutoka wei. Kumbuka kwamba [kuna majina kwa madhehebu mengi](https://web3py.readthedocs.io/en/stable/troubleshooting.html#how-do-i-convert-currency-denominations) kati ya ether na wei. Mojawapo ya inayojulikana zaidi kati yao ni **gwei**, kwani mara nyingi ndivyo ada za muamala zinavyowakilishwa. + +```python +In [2]: Web3.to_wei(1, 'ether') +Out[2]: 1000000000000000000 + +In [3]: Web3.from_wei(500000000, 'gwei') +Out[3]: Decimal('0.5') +``` + +Mbinu zingine za matumizi kwenye moduli ya Web3 ni pamoja na vibadilishaji umbizo la data (k.m., [`toHex`](https://web3py.readthedocs.io/en/stable/web3.main.html#web3.Web3.toHex)), wasaidizi wa anwani (k.m., [`isAddress`](https://web3py.readthedocs.io/en/stable/web3.main.html#web3.Web3.isAddress)), na kazi za hashi (k.m., [`keccak`](https://web3py.readthedocs.io/en/stable/web3.main.html#web3.Web3.keccak)). Mengi ya haya yatajadiliwa baadaye katika mfululizo huu. Ili kuona mbinu na sifa zote zinazopatikana, tumia ukamilishaji kiotomatiki wa IPython kwa kuandika `Web3`. na kugonga kitufe cha kichupo mara mbili baada ya kipindi. + +## Zungumza na mnyororo {#talk-to-the-chain} + +Mbinu za urahisi ni nzuri, lakini hebu tuendelee kwenye mnyororo wa bloku. Hatua inayofuata ni kusanidi Web3.py ili kuwasiliana na nodi ya Ethereum. Hapa tuna chaguo la kutumia watoa huduma wa IPC, HTTP, au Websocket. + +Hatutapitia njia hii, lakini mfano wa mtiririko kamili wa kazi kwa kutumia Mtoa huduma wa HTTP unaweza kuonekana kama hivi: + +- Pakua nodi ya Ethereum, k.m., [Geth](https://geth.ethereum.org/). +- Anzisha Geth katika dirisha moja la terminal na usubiri isawazishe mtandao. Lango la msingi la HTTP ni `8545`, lakini linaweza kusanidiwa. +- Iambie Web3.py iunganishe kwenye nodi kupitia HTTP, kwenye `localhost:8545`. + `w3 = Web3(Web3.HTTPProvider('http://127.0.0.1:8545'))` +- Tumia tukio la `w3` ili kuingiliana na nodi. + +Ingawa hii ni njia moja "halisi" ya kufanya hivyo, mchakato wa kusawazisha huchukua masaa na si lazima ikiwa unataka tu mazingira ya usanidi. Web3.py inaonyesha mtoa huduma wa nne kwa madhumuni haya, **EthereumTesterProvider**. Mtoa huduma huyu wa majaribio anaunganisha kwenye nodi ya Ethereum iliyoigwa yenye ruhusa zilizolegezwa na sarafu bandia ya kuchezea. + +![Mchoro unaoonyesha EthereumTesterProvider ikiunganisha programu yako ya web3.py na nodi ya Ethereum iliyoigwa](./ethereumtesterprovider.png) + +_EthereumTesterProvider huunganisha kwenye nodi iliyoigwa na ni muhimu kwa mazingira ya usanidi wa haraka._ + +Nodi hiyo iliyoigwa inaitwa [eth-tester](https://github.com/ethereum/eth-tester) na tuliisakikisha kama sehemu ya amri ya `pip install web3[tester]`. Kusanidi Web3.py kutumia mtoa huduma huyu wa majaribio ni rahisi kama: + +```python +In [4]: w3 = Web3(Web3.EthereumTesterProvider()) +``` + +Sasa uko tayari kutembelea mnyororo! Hilo si jambo ambalo watu husema. Nimebuni tu. Hebu tufanye ziara ya haraka. + +## Ziara ya haraka {#the-quick-tour} + +Kwanza kabisa, ukaguzi wa haraka: + +```python +In [5]: w3.is_connected() +Out[5]: True +``` + +Kwa kuwa tunatumia mtoa huduma wa majaribio, hili si jaribio la thamani sana, lakini likishindikana, kuna uwezekano uliandika kitu kimakosa ulipokuwa ukianzisha kigezo cha `w3`. Hakikisha mara mbili kuwa umejumuisha mabano ya ndani, yaani, `Web3.EthereumTesterProvider()`. + +## Kituo cha ziara #1: [akaunti](/developers/docs/accounts/) {#tour-stop-1-accounts} + +Ili kurahisisha, mtoa huduma wa majaribio alitengeneza akaunti na kuziwekea ether ya majaribio. + +Kwanza, hebu tuone orodha ya akaunti hizo: + +```python +In [6]: w3.eth.accounts +Out[6]: ['0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', + '0x2B5AD5c4795c026514f8317c7a215E218DcCD6cF', + '0x6813Eb9362372EEF6200f3b1dbC3f819671cBA69', ...] +``` + +Ukitekeleza amri hii, unapaswa kuona orodha ya nyuzi kumi zinazoanza na `0x`. Kila moja ni **anwani ya umma** na kwa namna fulani, inafanana na nambari ya akaunti kwenye akaunti ya hundi. Ungetoa anwani hii kwa mtu anayetaka kukutumia ether. + +Kama ilivyotajwa, mtoa huduma wa majaribio ameweka ether ya majaribio katika kila akaunti hizi. Hebu tujue ni kiasi gani kiko kwenye akaunti ya kwanza: + +```python +In [7]: w3.eth.get_balance(w3.eth.accounts[0]) +Out[7]: 1000000000000000000000000 +``` + +Hizo ni sufuri nyingi sana! Kabla ya kucheka hadi benki bandia, kumbuka somo kuhusu madhehebu ya sarafu la awali. Thamani za Ether huwakilishwa katika dhehebu dogo zaidi, wei. Badilisha hiyo iwe ether: + +```python +In [8]: w3.from_wei(1000000000000000000000000, 'ether') +Out[8]: Decimal('1000000') +``` + +Ether milioni moja za majaribio — bado si haba. + +## Kituo cha ziara #2: data ya bloku {#tour-stop-2-block-data} + +Hebu tuangalie hali ya mnyororo huu wa bloku ulioigwa: + +```python +In [9]: w3.eth.get_block('latest') +Out[9]: AttributeDict({ + 'number': 0, + 'hash': HexBytes('0x9469878...'), + 'parentHash': HexBytes('0x0000000...'), + ... + 'transactions': [] +}) +``` + +Habari nyingi hurudishwa kuhusu bloku, lakini kuna mambo kadhaa ya kuonyesha hapa: + +- Nambari ya bloku ni sifuri — haijalishi ni muda gani umepita tangu usanidi mtoa huduma wa majaribio. Tofauti na mtandao halisi wa Ethereum, ambao huongeza bloku mpya kila sekunde 12, uigaji huu utasubiri hadi uupe kazi ya kufanya. +- `transactions` ni orodha tupu, kwa sababu ileile: bado hatujafanya chochote. Bloku hii ya kwanza ni **bloku tupu**, ili tu kuanzisha mnyororo. +- Angalia kwamba `parentHash` ni kundi tu la baiti tupu. Hii inaashiria kuwa ni bloku ya kwanza kwenye mnyororo, pia inajulikana kama **bloku ya mwanzo**. + +## Kituo cha ziara #3: [miamala](/developers/docs/transactions/) {#tour-stop-3-transactions} + +Tumenaswa kwenye bloku sifuri hadi kuwe na muamala unaosubiri, kwa hivyo hebu tuupe mmoja. Tuma ether chache za majaribio kutoka akaunti moja hadi nyingine: + +```python +In [10]: tx_hash = w3.eth.send_transaction({ + 'from': w3.eth.accounts[0], + 'to': w3.eth.accounts[1], + 'value': w3.to_wei(3, 'ether'), + 'gas': 21000 +}) +``` + +Kwa kawaida hapa ndipo mahali ambapo ungesubiri kwa sekunde kadhaa ili muamala wako ujumuishwe katika bloku mpya. Mchakato mzima unaenda kama hivi: + +1. Wasilisha muamala na ushikilie hashi ya muamala. Hadi bloku iliyo na muamala itakapoundwa na kutangazwa, muamala huo "unasubiri." + `tx_hash = w3.eth.send_transaction({ … })` +2. Subiri muamala ujumuishwe katika bloku: + `w3.eth.wait_for_transaction_receipt(tx_hash)` +3. Endelea na mantiki ya programu. Ili kuona muamala uliofanikiwa: + `w3.eth.get_transaction(tx_hash)` + +Mazingira yetu yaliyoigwa yataongeza muamala katika bloku mpya mara moja, kwa hivyo tunaweza kuona muamala mara moja: + +```python +In [11]: w3.eth.get_transaction(tx_hash) +Out[11]: AttributeDict({ + 'hash': HexBytes('0x15e9fb95dc39...'), + 'blockNumber': 1, + 'transactionIndex': 0, + 'from': '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf', + 'to': '0x2B5AD5c4795c026514f8317c7a215E218DcCD6cF', + 'value': 3000000000000000000, + ... +}) +``` + +Utaona maelezo ya kawaida hapa: sehemu za `from`, `to`, na `value` zinapaswa kufanana na viingizo vya wito wetu wa `send_transaction`. Jambo lingine la kutia moyo ni kwamba muamala huu ulijumuishwa kama muamala wa kwanza (`'transactionIndex': 0`) ndani ya bloku nambari 1. + +Tunaweza pia kuthibitisha kwa urahisi mafanikio ya muamala huu kwa kuangalia salio la akaunti mbili zinazohusika. Ether tatu zinapaswa kuwa zimehamishwa kutoka moja hadi nyingine. + +```python +In [12]: w3.eth.get_balance(w3.eth.accounts[0]) +Out[12]: 999996999979000000000000 + +In [13]: w3.eth.get_balance(w3.eth.accounts[1]) +Out[13]: 1000003000000000000000000 +``` + +Ya mwisho inaonekana vizuri! Salio liliongezeka kutoka ether 1,000,000 hadi 1,000,003. Lakini nini kilitokea kwa akaunti ya kwanza? Inaonekana imepoteza ether zaidi kidogo ya tatu. Ole, hakuna kitu maishani bure, na kutumia mtandao wa umma wa Ethereum kunahitaji uwalipe wenzako kwa jukumu lao la kusaidia. Ada ndogo ya muamala ilikatwa kutoka kwenye akaunti iliyowasilisha muamala - ada hii ni kiasi cha gesi iliyotumika (vitengo 21000 vya gesi kwa uhamisho wa ETH) kilichozidishwa na ada ya msingi ambayo hutofautiana kulingana na shughuli za mtandao pamoja na bakshishi inayokwenda kwa mthibitishaji anayejumuisha muamala katika bloku. + +Zaidi kuhusu [gesi](/developers/docs/gas/#post-london) + +Kumbuka: Kwenye mtandao wa umma, ada za muamala hubadilika kulingana na mahitaji ya mtandao na jinsi unavyotaka muamala uchakatwe haraka. Ikiwa una nia ya uchanganuzi wa jinsi ada zinavyokokotolewa, angalia chapisho langu la awali kuhusu jinsi miamala inavyojumuishwa katika bloku. + +## Na pumua {#and-breathe} + +Tumekuwa tukifanya hivi kwa muda, kwa hivyo hapa panaonekana kuwa mahali pazuri pa kupumzika. Safari ya uchunguzi wa kina inaendelea, na tutaendelea kuchunguza katika sehemu ya pili ya mfululizo huu. Baadhi ya dhana zijazo: kuunganisha kwenye nodi halisi, mikataba-erevu, na tokeni. Una maswali ya kufuatilia? Nijulishe! Maoni yako yataathiri wapi tutaelekea kutoka hapa. Maombi yanakaribishwa kupitia [Twitter](https://twitter.com/wolovim). diff --git a/public/content/translations/sw/developers/tutorials/all-you-can-cache/index.md b/public/content/translations/sw/developers/tutorials/all-you-can-cache/index.md new file mode 100644 index 00000000000..13e98f9e9c5 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/all-you-can-cache/index.md @@ -0,0 +1,867 @@ +--- +title: "Yote unayoweza kuhifadhi kwenye kache" +description: Jifunze jinsi ya kuunda na kutumia mkataba wa kuhifadhi kache kwa ajili ya miamala ya bei nafuu ya unda-mpya +author: Ori Pomerantz +tags: [ "safu ya 2", "kuhifadhi kache", "ghala" ] +skill: intermediate +published: 2022-09-15 +lang: sw +--- + +Unapotumia unda-mpya, gharama ya baiti katika muamala ni ghali zaidi kuliko gharama ya sehemu ya ghala. Kwa hiyo, ni jambo la busara kuhifadhi taarifa nyingi iwezekanavyo kwenye kache kwenye chain. + +Katika makala haya utajifunza jinsi ya kuunda na kutumia mkataba wa kuhifadhi kache kwa njia ambayo thamani yoyote ya kigezo ambayo ina uwezekano wa kutumika mara nyingi itahifadhiwa kwenye kache na kupatikana kwa matumizi (baada ya mara ya kwanza) na idadi ndogo zaidi ya baiti, na jinsi ya kuandika msimbo wa offchain unaotumia kache hii. + +Ikiwa unataka kuruka makala na kuona msimbo chanzo, [upo hapa](https://github.com/qbzzt/20220915-all-you-can-cache). Safu ya uundaji ni [Foundry](https://getfoundry.sh/introduction/installation/). + +## Muundo wa jumla {#overall-design} + +Kwa ajili ya kurahisisha, tutachukulia vigezo vyote vya muamala ni `uint256`, urefu wa baiti 32. Tunapopokea muamala, tutachanganua kila kigezo kama hivi: + +1. Ikiwa baiti ya kwanza ni `0xFF`, chukua baiti 32 zinazofuata kama thamani ya kigezo na uiandike kwenye kache. + +2. Ikiwa baiti ya kwanza ni `0xFE`, chukua baiti 32 zinazofuata kama thamani ya kigezo lakini _usi_iandike kwenye kache. + +3. Kwa thamani nyingine yoyote, chukua biti nne za juu kama idadi ya baiti za ziada, na biti nne za chini kama biti muhimu zaidi za ufunguo wa kache. Hapa kuna baadhi ya mifano: + + | Baiti katika calldata | Ufunguo wa kache | + | :-------------------- | ---------------: | + | 0x0F | 0x0F | + | 0x10,0x10 | 0x10 | + | 0x12,0xAC | 0x02AC | + | 0x2D,0xEA, 0xD6 | 0x0DEAD6 | + +## Udhibiti wa kache {#cache-manipulation} + +Kache inatekelezwa katika [`Cache.sol`](https://github.com/qbzzt/20220915-all-you-can-cache/blob/main/src/Cache.sol). Wacha tuipitie mstari kwa mstari. + +```solidity +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + + +contract Cache { + + bytes1 public constant INTO_CACHE = 0xFF; + bytes1 public constant DONT_CACHE = 0xFE; +``` + +Vigezo hivi vya kudumu hutumiwa kutafsiri visa maalum ambapo tunatoa taarifa zote na ama tunataka iandikwe kwenye kache au la. Kuandika kwenye kache kunahitaji operesheni mbili za [`SSTORE`](https://www.evm.codes/#55) katika sehemu za ghala ambazo hazijatumika hapo awali kwa gharama ya gesi 22100 kila moja, kwa hivyo tunafanya iwe hiari. + +```solidity + + mapping(uint => uint) public val2key; +``` + +[Uhusiano](https://www.geeksforgeeks.org/solidity/solidity-mappings/) kati ya thamani na funguo zake. Taarifa hii ni muhimu ili kusimba thamani kabla ya kutuma muamala. + +```solidity + // Mahali n pana thamani ya ufunguo n+1, kwa sababu tunahitaji kuhifadhi + // sufuri kama "sio kwenye kache". + uint[] public key2val; +``` + +Tunaweza kutumia safu kwa ajili ya uhusiano kutoka kwa funguo hadi thamani kwa sababu tunakabidhi funguo, na kwa kurahisisha tunafanya hivyo kwa mfuatano. + +```solidity + function cacheRead(uint _key) public view returns (uint) { + require(_key <= key2val.length, "Inasoma ingizo la kache lisiloanzishwa"); + return key2val[_key-1]; + } // somaKache +``` + +Soma thamani kutoka kwenye kache. + +```solidity + // Andika thamani kwenye kache ikiwa bado haipo + // Ni ya umma tu ili kuwezesha jaribio kufanya kazi + function cacheWrite(uint _value) public returns (uint) { + // Ikiwa thamani tayari iko kwenye kache, rudisha ufunguo wa sasa + if (val2key[_value] != 0) { + return val2key[_value]; + } +``` + +Hakuna maana ya kuweka thamani ile ile kwenye kache zaidi ya mara moja. Ikiwa thamani tayari ipo, rudisha tu ufunguo uliopo. + +```solidity + // Kwa kuwa 0xFE ni kisa maalum, ufunguo mkubwa zaidi ambao kache inaweza + // kushikilia ni 0x0D ikifuatiwa na 0xFF mara 15. Ikiwa urefu wa kache tayari ni + // mkubwa kiasi hicho, shindwa. + // 1 2 3 4 5 6 7 8 9 A B C D E F + require(key2val.length+1 < 0x0DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, + "mfuriko wa kache"); +``` + +Sidhani kama tutawahi kupata kache kubwa kiasi hicho (takriban maingizo 1.8\*1037, ambayo yangehitaji takriban 1027 TB kuhifadhi). Hata hivyo, nina umri wa kutosha kukumbuka ["640kB zingekuwa za kutosha daima"](https://quoteinvestigator.com/2011/09/08/640k-enough/). Jaribio hili ni la bei nafuu sana. + +```solidity + // Andika thamani ukitumia ufunguo unaofuata + val2key[_value] = key2val.length+1; +``` + +Ongeza utafutaji wa kinyume (kutoka thamani hadi ufunguo). + +```solidity + key2val.push(_value); +``` + +Ongeza utafutaji wa mbele (kutoka ufunguo hadi thamani). Kwa sababu tunakabidhi thamani kwa mfuatano, tunaweza tu kuiongeza baada ya thamani ya mwisho ya safu. + +```solidity + return key2val.length; + } // andikaKache +``` + +Rudisha urefu mpya wa `key2val`, ambao ni seli ambapo thamani mpya imehifadhiwa. + +```solidity + function _calldataVal(uint startByte, uint length) + private pure returns (uint) +``` + +Kazi hii inasoma thamani kutoka kwa calldata yenye urefu wowote (hadi baiti 32, ukubwa wa neno). + +```solidity + { + uint _retVal; + + require(length < 0x21, + "kikomo cha urefu wa _calldataVal ni baiti 32"); + require(length + startByte <= msg.data.length, + " _calldataVal inajaribu kusoma zaidi ya ukubwa wa calldata"); +``` + +Kazi hii ni ya ndani, kwa hivyo ikiwa msimbo uliobaki umeandikwa kwa usahihi, majaribio haya hayahitajiki. Hata hivyo, hayana gharama kubwa kwa hivyo tunaweza kuwa nayo. + +```solidity + assembly { + _retVal := calldataload(startByte) + } +``` + +Msimbo huu uko katika [Yul](https://docs.soliditylang.org/en/v0.8.16/yul.html). Inasoma thamani ya baiti 32 kutoka kwa calldata. Hii inafanya kazi hata kama calldata itaacha kabla ya `startByte+32` kwa sababu nafasi isiyoanzishwa katika EVM inachukuliwa kuwa sufuri. + +```solidity + _retVal = _retVal >> (256-length*8); +``` + +Hatuhitaji lazima thamani ya baiti 32. Hii huondoa baiti za ziada. + +```solidity + return _retVal; + } // _thamaniCalldata + + + // Soma kigezo kimoja kutoka kwa calldata, kuanzia _fromByte + function _readParam(uint _fromByte) internal + returns (uint _nextByte, uint _parameterValue) + { +``` + +Soma kigezo kimoja kutoka kwa calldata. Kumbuka kwamba tunahitaji kurudisha sio tu thamani tunayosoma, bali pia eneo la baiti inayofuata kwa sababu vigezo vinaweza kuwa na urefu kutoka baiti 1 hadi baiti 33. + +```solidity + // Baiti ya kwanza inatuambia jinsi ya kutafsiri iliyobaki + uint8 _firstByte; + + _firstByte = uint8(_calldataVal(_fromByte, 1)); +``` + +Solidity inajaribu kupunguza idadi ya hitilafu kwa kuzuia [ubadilishaji wa aina unaoweza kuwa hatari](https://docs.soliditylang.org/en/v0.8.16/types.html#implicit-conversions). Upungufu, kwa mfano kutoka biti 256 hadi biti 8, unahitaji kuwa wazi. + +```solidity + + // Soma thamani, lakini usiiandike kwenye kache + if (_firstByte == uint8(DONT_CACHE)) + return(_fromByte+33, _calldataVal(_fromByte+1, 32)); + + // Soma thamani, na uiandike kwenye kache + if (_firstByte == uint8(INTO_CACHE)) { + uint _param = _calldataVal(_fromByte+1, 32); + cacheWrite(_param); + return(_fromByte+33, _param); + } + + // Ikiwa tumefika hapa inamaanisha tunahitaji kusoma kutoka kwa kache + + // Idadi ya baiti za ziada za kusoma + uint8 _extraBytes = _firstByte / 16; +``` + +Chukua [nibble](https://en.wikipedia.org/wiki/Nibble) ya chini na uichanganye na baiti zingine ili kusoma thamani kutoka kwa kache. + +```solidity + uint _key = (uint256(_firstByte & 0x0F) << (8*_extraBytes)) + + _calldataVal(_fromByte+1, _extraBytes); + + return (_fromByte+_extraBytes+1, cacheRead(_key)); + + } // _somaKigezo + + + // Soma vigezo n (kazi zinajua ni vigezo vingapi wanavyotarajia) + function _readParams(uint _paramNum) internal returns (uint[] memory) { +``` + +Tungeweza kupata idadi ya vigezo tulivyo navyo kutoka kwa calldata yenyewe, lakini kazi zinazotuita zinajua ni vigezo vingapi wanavyotarajia. Ni rahisi kuwaacha watuambie. + +```solidity + // Vigezo tunavyosoma + uint[] memory params = new uint[](_paramNum); + + // Vigezo vinaanza kwenye baiti 4, kabla ya hapo ni saini ya kazi + uint _atByte = 4; + + for(uint i=0; i<_paramNum; i++) { + (_atByte, params[i]) = _readParam(_atByte); + } +``` + +Soma vigezo hadi upate nambari unayohitaji. Ikiwa tutapita mwisho wa calldata, `_readParams` itabatilisha wito. + +```solidity + + return(params); + } // somaVigezo + + // Kwa kujaribu _readParams, jaribu kusoma vigezo vinne + function fourParam() public + returns (uint256,uint256,uint256,uint256) + { + uint[] memory params; + params = _readParams(4); + return (params[0], params[1], params[2], params[3]); + } // kigezoNne +``` + +Faida moja kubwa ya Foundry ni kwamba inaruhusu majaribio kuandikwa katika Solidity ([angalia Kujaribu kache hapa chini](#testing-the-cache)). Hii inafanya majaribio ya kitengo kuwa rahisi zaidi. Hii ni kazi ambayo inasoma vigezo vinne na kuvirudisha ili jaribio liweze kuthibitisha kuwa vilikuwa sahihi. + +```solidity + // Pata thamani, rudisha baiti ambazo zitaisimba (kwa kutumia kache ikiwezekana) + function encodeVal(uint _val) public view returns(bytes memory) { +``` + +`encodeVal` ni kazi ambayo msimbo wa offchain huita ili kusaidia kuunda calldata inayotumia kache. Inapokea thamani moja na kurudisha baiti zinazoisimba. Kazi hii ni `view`, kwa hivyo haihitaji muamala na inapoitwa kutoka nje haina gharama yoyote ya gesi. + +```solidity + uint _key = val2key[_val]; + + // Thamani bado haiko kwenye kache, iongeze + if (_key == 0) + return bytes.concat(INTO_CACHE, bytes32(_val)); +``` + +Katika [EVM](/developers/docs/evm/) ghala zote ambazo hazijaanzishwa huchukuliwa kuwa sufuri. Kwa hivyo, ikiwa tutatafuta ufunguo wa thamani ambayo haipo, tunapata sufuri. Katika hali hiyo baiti zinazoisimba ni `INTO_CACHE` (kwa hivyo itahifadhiwa kwenye kache wakati ujao), ikifuatiwa na thamani halisi. + +```solidity + // Ikiwa ufunguo ni <0x10, rudisha kama baiti moja + if (_key < 0x10) + return bytes.concat(bytes1(uint8(_key))); +``` + +Baiti moja ndiyo rahisi zaidi. Tunatumia tu [`bytes.concat`](https://docs.soliditylang.org/en/v0.8.16/types.html#the-functions-bytes-concat-and-string-concat) kubadilisha aina ya `bytes` kuwa safu ya baiti ambayo inaweza kuwa na urefu wowote. Licha ya jina, inafanya kazi vizuri inapotolewa na hoja moja tu. + +```solidity + // Thamani ya baiti mbili, imesimbwa kama 0x1vvv + if (_key < 0x1000) + return bytes.concat(bytes2(uint16(_key) | 0x1000)); +``` + +Tunapokuwa na ufunguo ambao ni chini ya 163, tunaweza kuuelezea kwa baiti mbili. Kwanza tunabadilisha `_key`, ambayo ni thamani ya biti 256, kuwa thamani ya biti 16 na kutumia OR ya kimantiki kuongeza idadi ya baiti za ziada kwenye baiti ya kwanza. Kisha tunaibadilisha kuwa thamani ya `bytes2`, ambayo inaweza kubadilishwa kuwa `bytes`. + +```solidity + // Labda kuna njia ya kijanja ya kufanya mistari ifuatayo kama kitanzi, + // lakini ni kazi ya kutazama kwa hivyo ninaboresha muda wa mtayarishaji programu na + // urahisi. + + if (_key < 16*256**2) + return bytes.concat(bytes3(uint24(_key) | (0x2 * 16 * 256**2))); + if (_key < 16*256**3) + return bytes.concat(bytes4(uint32(_key) | (0x3 * 16 * 256**3))); + . + . + . + if (_key < 16*256**14) + return bytes.concat(bytes15(uint120(_key) | (0xE * 16 * 256**14))); + if (_key < 16*256**15) + return bytes.concat(bytes16(uint128(_key) | (0xF * 16 * 256**15))); +``` + +Thamani zingine (baiti 3, baiti 4, n.k.) zinashughulikiwa kwa njia ile ile, ila tu na saizi tofauti za uga. + +```solidity + // Ikiwa tutafika hapa, kuna kitu kibaya. + revert("Hitilafu katika encodeVal, haipaswi kutokea"); +``` + +Ikiwa tutafika hapa inamaanisha tumepata ufunguo ambao si chini ya 16\*25615. Lakini `cacheWrite` inaweka kikomo kwa funguo kwa hivyo hatuwezi hata kufikia 14\*25616 (ambayo ingekuwa na baiti ya kwanza ya 0xFE, kwa hivyo ingeonekana kama `DONT_CACHE`). Lakini haitugharimu sana kuongeza jaribio endapo mtayarishaji programu wa siku zijazo ataleta hitilafu. + +```solidity + } // simbaThamani + +} // Kache +``` + +### Kujaribu kache {#testing-the-cache} + +Moja ya faida za Foundry ni kwamba [inakuwezesha kuandika majaribio katika Solidity](https://getfoundry.sh/forge/tests/overview/), ambayo inafanya iwe rahisi kuandika majaribio ya kitengo. Majaribio ya darasa la `Cache` yapo [hapa](https://github.com/qbzzt/20220915-all-you-can-cache/blob/main/test/Cache.t.sol). Kwa sababu msimbo wa majaribio unajirudia, kama majaribio yanavyokuwa, makala haya yanaelezea sehemu za kuvutia tu. + +```solidity +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import "forge-std/Test.sol"; + + +// Inahitaji kuendesha `forge test -vv` kwa konsoli. +import "forge-std/console.sol"; +``` + +Huu ni msimbo wa kiolezo tu ambao ni muhimu kutumia kifurushi cha majaribio na `console.log`. + +```solidity +import "src/Cache.sol"; +``` + +Tunahitaji kujua mkataba tunaoujaribu. + +```solidity +contract CacheTest is Test { + Cache cache; + + function setUp() public { + cache = new Cache(); + } +``` + +Kazi ya `setUp` inaitwa kabla ya kila jaribio. Katika kesi hii tunaunda kache mpya, ili majaribio yetu yasiathiriane. + +```solidity + function testCaching() public { +``` + +Majaribio ni kazi ambazo majina yake huanza na `test`. Kazi hii inakagua utendaji wa msingi wa kache, kuandika thamani na kuzisoma tena. + +```solidity + for(uint i=1; i<5000; i++) { + cache.cacheWrite(i*i); + } + + for(uint i=1; i<5000; i++) { + assertEq(cache.cacheRead(i), i*i); +``` + +Hivi ndivyo unavyofanya majaribio halisi, ukitumia [kazi za `assert...`](https://getfoundry.sh/reference/forge-std/std-assertions/). Katika kesi hii, tunakagua kuwa thamani tuliyoandika ndiyo tunayoisoma. Tunaweza kupuuza matokeo ya `cache.cacheWrite` kwa sababu tunajua kwamba funguo za kache zinakabidhiwa kwa mpangilio. + +```solidity + } + } // jaribuKache + + + // Hifadhi thamani ile ile mara nyingi kwenye kache, hakikisha ufunguo unabaki + // vile vile + function testRepeatCaching() public { + for(uint i=1; i<100; i++) { + uint _key1 = cache.cacheWrite(i); + uint _key2 = cache.cacheWrite(i); + assertEq(_key1, _key2); + } +``` + +Kwanza tunaandika kila thamani mara mbili kwenye kache na kuhakikisha funguo ni sawa (ikimaanisha uandishi wa pili haukutokea kweli). + +```solidity + for(uint i=1; i<100; i+=3) { + uint _key = cache.cacheWrite(i); + assertEq(_key, i); + } + } // jaribuKacheInayorudiwa +``` + +Kwa nadharia kunaweza kuwa na hitilafu ambayo haiathiri uandishi wa kache unaofuatana. Kwa hivyo hapa tunafanya maandishi kadhaa ambayo hayafuatani na tunaona thamani bado haziandikwi upya. + +```solidity + // Soma uint kutoka kwenye bafa ya kumbukumbu (kuhakikisha tunapata vigezo + // tulivyotuma) + function toUint256(bytes memory _bytes, uint256 _start) internal pure + returns (uint256) +``` + +Soma neno la biti 256 kutoka kwenye bafa ya `bytes memory`. Kazi hii ya matumizi inatuwezesha kuthibitisha kwamba tunapokea matokeo sahihi tunapoendesha wito wa kazi unaotumia kache. + +```solidity + { + require(_bytes.length >= _start + 32, "toUint256_njeYaMipaka"); + uint256 tempUint; + + assembly { + tempUint := mload(add(add(_bytes, 0x20), _start)) + } +``` + +Yul haitumii miundo ya data zaidi ya `uint256`, kwa hivyo unapoelekeza kwenye muundo wa data wa hali ya juu zaidi, kama vile bafa ya kumbukumbu `_bytes`, unapata anwani ya muundo huo. Solidity huhifadhi thamani za `bytes memory` kama neno la baiti 32 ambalo lina urefu, ikifuatiwa na baiti halisi, kwa hivyo ili kupata baiti namba `_start` tunahitaji kukokotoa `_bytes+32+_start`. + +```solidity + + return tempUint; + } // kwaUint256 + + // Saini ya kazi kwa fourParams(), kwa hisani ya + // https://www.4byte.directory/signatures/?bytes4_signature=0x3edc1e6d + bytes4 constant FOUR_PARAMS = 0x3edc1e6d; + + // Thamani za kudumu tu ili kuona tunapata thamani sahihi + uint256 constant VAL_A = 0xDEAD60A7; + uint256 constant VAL_B = 0xBEEF; + uint256 constant VAL_C = 0x600D; + uint256 constant VAL_D = 0x600D60A7; +``` + +Baadhi ya thamani za kudumu tunazohitaji kwa majaribio. + +```solidity + function testReadParam() public { +``` + +Ita `fourParams()`, kazi inayotumia `readParams`, ili kujaribu kama tunaweza kusoma vigezo kwa usahihi. + +```solidity + address _cacheAddr = address(cache); + bool _success; + bytes memory _callInput; + bytes memory _callOutput; +``` + +Hatuwezi kutumia utaratibu wa kawaida wa ABI kuita kazi kwa kutumia kache, kwa hivyo tunahitaji kutumia utaratibu wa kiwango cha chini cha [`
.call()`](https://docs.soliditylang.org/en/v0.8.16/types.html#members-of-addresses). Utaratibu huo unachukua `bytes memory` kama ingizo, na kuirudisha (pamoja na thamani ya Boolean) kama towe. + +```solidity + // Wito wa kwanza, kache haina kitu + _callInput = bytes.concat( + FOUR_PARAMS, +``` + +Ni muhimu kwa mkataba ule ule kuunga mkono kazi zote mbili za kache (kwa wito kutoka kwa miamala moja kwa moja) na kazi zisizo za kache (kwa wito kutoka kwa mikataba-erevu mingine). Ili kufanya hivyo tunahitaji kuendelea kutegemea utaratibu wa Solidity kuita kazi sahihi, badala ya kuweka kila kitu katika [kazi ya `fallback`](https://docs.soliditylang.org/en/v0.8.16/contracts.html#fallback-function). Kufanya hivi hurahisisha sana utangamano. Baiti moja ingetosheleza kutambua kazi katika visa vingi, kwa hivyo tunapoteza baiti tatu (gesi 16\*3=48). Hata hivyo, ninapoandika haya, gesi hizo 48 zinagharimu senti 0.07, ambayo ni gharama nzuri kwa msimbo rahisi na usio na hitilafu nyingi. + +```solidity + // Thamani ya kwanza, iongeze kwenye kache + cache.INTO_CACHE(), + bytes32(VAL_A), +``` + +Thamani ya kwanza: Bendera inayosema ni thamani kamili inayohitaji kuandikwa kwenye kache, ikifuatiwa na baiti 32 za thamani hiyo. Thamani tatu zingine ni sawa, isipokuwa `VAL_B` haiandikwi kwenye kache na `VAL_C` ni kigezo cha tatu na cha nne. + +```solidity + . + . + . + ); + (_success, _callOutput) = _cacheAddr.call(_callInput); +``` + +Hapa ndipo tunapoita mkataba wa `Cache`. + +```solidity + assertEq(_success, true); +``` + +Tunatarajia wito ufanikiwe. + +```solidity + assertEq(cache.cacheRead(1), VAL_A); + assertEq(cache.cacheRead(2), VAL_C); +``` + +Tunaanza na kache tupu na kisha tunaongeza `VAL_A` ikifuatiwa na `VAL_C`. Tungetarajia ya kwanza kuwa na ufunguo 1, na ya pili kuwa na 2. + +``` + assertEq(toUint256(_callOutput,0), VAL_A); + assertEq(toUint256(_callOutput,32), VAL_B); + assertEq(toUint256(_callOutput,64), VAL_C); + assertEq(toUint256(_callOutput,96), VAL_C); +``` + +Towe ni vigezo vinne. Hapa tunathibitisha kuwa ni sahihi. + +```solidity + // Wito wa pili, tunaweza kutumia kache + _callInput = bytes.concat( + FOUR_PARAMS, + + // Thamani ya kwanza kwenye Kache + bytes1(0x01), +``` + +Funguo za kache chini ya 16 ni baiti moja tu. + +```solidity + // Thamani ya pili, usiiongeze kwenye kache + cache.DONT_CACHE(), + bytes32(VAL_B), + + // Thamani ya tatu na ya nne, thamani sawa + bytes1(0x02), + bytes1(0x02) + ); + . + . + . + } // jaribuSomaKigezo +``` + +Majaribio baada ya wito ni sawa na yale ya baada ya wito wa kwanza. + +```solidity + function testEncodeVal() public { +``` + +Kazi hii ni sawa na `testReadParam`, isipokuwa badala ya kuandika vigezo kwa uwazi tunatumia `encodeVal()`. + +```solidity + . + . + . + _callInput = bytes.concat( + FOUR_PARAMS, + cache.encodeVal(VAL_A), + cache.encodeVal(VAL_B), + cache.encodeVal(VAL_C), + cache.encodeVal(VAL_D) + ); + . + . + . + assertEq(_callInput.length, 4+1*4); + } // jaribuSimbaThamani +``` + +Jaribio pekee la ziada katika `testEncodeVal()` ni kuthibitisha kuwa urefu wa `_callInput` ni sahihi. Kwa wito wa kwanza ni 4+33\*4. Kwa wa pili, ambapo kila thamani tayari iko kwenye kache, ni 4+1\*4. + +```solidity + // Jaribu encodeVal wakati ufunguo una zaidi ya baiti moja + // Upeo wa baiti tatu kwa sababu kujaza kache hadi baiti nne huchukua + // muda mrefu sana. + function testEncodeValBig() public { + // Weka idadi ya thamani kwenye kache. + // Ili kurahisisha mambo, tumia ufunguo n kwa thamani n. + for(uint i=1; i<0x1FFF; i++) { + cache.cacheWrite(i); + } +``` + +Kazi ya `testEncodeVal` hapo juu inaandika thamani nne tu kwenye kache, kwa hivyo [sehemu ya kazi inayoshughulikia thamani za baiti nyingi](https://github.com/qbzzt/20220915-all-you-can-cache/blob/main/src/Cache.sol#L144-L171) haikaguliwi. Lakini msimbo huo ni mgumu na rahisi kupata hitilafu. + +Sehemu ya kwanza ya kazi hii ni kitanzi kinachoandika thamani zote kutoka 1 hadi 0x1FFF kwenye kache kwa mpangilio, ili tuweze kusimba thamani hizo na kujua zinakokwenda. + +```solidity + . + . + . + + _callInput = bytes.concat( + FOUR_PARAMS, + cache.encodeVal(0x000F), // Baiti moja 0x0F + cache.encodeVal(0x0010), // Baiti mbili 0x1010 + cache.encodeVal(0x0100), // Baiti mbili 0x1100 + cache.encodeVal(0x1000) // Baiti tatu 0x201000 + ); +``` + +Jaribu thamani za baiti moja, baiti mbili, na baiti tatu. Hatujaribu zaidi ya hapo kwa sababu itachukua muda mrefu sana kuandika maingizo ya kutosha ya steki (angalau 0x10000000, takriban robo bilioni). + +```solidity + . + . + . + . + } // jaribuSimbaThamaniKubwa + + + // Jaribu kinachotokea na bafa ndogo sana tunapata urejeshaji + function testShortCalldata() public { +``` + +Jaribu kinachotokea katika hali isiyo ya kawaida ambapo hakuna vigezo vya kutosha. + +```solidity + . + . + . + (_success, _callOutput) = _cacheAddr.call(_callInput); + assertEq(_success, false); + } // jaribuCalldataFupi +``` + +Kwa kuwa inarejesha, matokeo tunayopaswa kupata ni `false`. + +``` + // Ita kwa funguo za kache ambazo hazipo + function testNoCacheKey() public { + . + . + . + _callInput = bytes.concat( + FOUR_PARAMS, + + // Thamani ya kwanza, iongeze kwenye kache + cache.INTO_CACHE(), + bytes32(VAL_A), + + // Thamani ya pili + bytes1(0x0F), + bytes2(0x1234), + bytes11(0xA10102030405060708090A) + ); +``` + +Kazi hii inapata vigezo vinne halali kabisa, isipokuwa kwamba kache haina kitu kwa hivyo hakuna thamani za kusoma. + +```solidity + . + . + . + // Jaribu kinachotokea na bafa ndefu sana, kila kitu kinafanya kazi vizuri + function testLongCalldata() public { + address _cacheAddr = address(cache); + bool _success; + bytes memory _callInput; + bytes memory _callOutput; + + // Wito wa kwanza, kache haina kitu + _callInput = bytes.concat( + FOUR_PARAMS, + + // Thamani ya kwanza, iongeze kwenye kache + cache.INTO_CACHE(), bytes32(VAL_A), + + // Thamani ya pili, iongeze kwenye kache + cache.INTO_CACHE(), bytes32(VAL_B), + + // Thamani ya tatu, iongeze kwenye kache + cache.INTO_CACHE(), bytes32(VAL_C), + + // Thamani ya nne, iongeze kwenye kache + cache.INTO_CACHE(), bytes32(VAL_D), + + // Na thamani nyingine kwa "bahati njema" + bytes4(0x31112233) + ); +``` + +Kazi hii inatuma thamani tano. Tunajua kwamba thamani ya tano inapuzwa kwa sababu si ingizo halali la kache, ambalo lingesababisha urejeshaji kama lisingejumuishwa. + +```solidity + (_success, _callOutput) = _cacheAddr.call(_callInput); + assertEq(_success, true); + . + . + . + } // jaribuCalldataNdefu + +} // JaribuKache + +``` + +## Programu ya mfano {#a-sample-app} + +Kuandika majaribio katika Solidity ni vizuri sana, lakini mwisho wa siku mfumo mtawanyo wa kimamlaka (dapp) unahitaji kuweza kushughulikia maombi kutoka nje ya chaini ili kuwa na manufaa. Makala haya yanaonyesha jinsi ya kutumia uhifadhi wa kache katika mfumo mtawanyo wa kimamlaka (dapp) na `WORM`, ambayo inasimama kwa "Andika Mara Moja, Soma Mara Nyingi". Ikiwa ufunguo bado haujaandikwa, unaweza kuandika thamani kwake. Ikiwa ufunguo tayari umeandikwa, unapata urejeshaji. + +### Mkataba {#the-contract} + +[Huu ndio mkataba](https://github.com/qbzzt/20220915-all-you-can-cache/blob/main/src/WORM.sol). Mara nyingi inarudia kile ambacho tayari tumefanya na `Cache` na `CacheTest`, kwa hivyo tunashughulikia tu sehemu za kuvutia. + +```solidity +import "./Cache.sol"; + +contract WORM is Cache { +``` + +Njia rahisi zaidi ya kutumia `Cache` ni kuirithi katika mkataba wetu wenyewe. + +```solidity + function writeEntryCached() external { + uint[] memory params = _readParams(2); + writeEntry(params[0], params[1]); + } // andikaIngizoLaKache +``` + +Kazi hii ni sawa na `fourParam` katika `CacheTest` hapo juu. Kwa sababu hatufuati vipimo vya ABI, ni bora kutotangaza vigezo vyovyote kwenye kazi. + +```solidity + // Fanya iwe rahisi kutuita + // Saini ya kazi kwa writeEntryCached(), kwa hisani ya + // https://www.4byte.directory/signatures/?bytes4_signature=0xe4e4f2d3 + bytes4 constant public WRITE_ENTRY_CACHED = 0xe4e4f2d3; +``` + +Msimbo wa nje unaoita `writeEntryCached` utahitaji kujenga calldata mwenyewe, badala ya kutumia `worm.writeEntryCached`, kwa sababu hatufuati vipimo vya ABI. Kuwa na thamani hii ya kudumu hufanya iwe rahisi kuiandika. + +Kumbuka kwamba ingawa tunafafanua `WRITE_ENTRY_CACHED` kama kigezo cha hali, ili kuisoma kutoka nje ni muhimu kutumia kazi ya kupata, `worm.WRITE_ENTRY_CACHED()`. + +```solidity + function readEntry(uint key) public view + returns (uint _value, address _writtenBy, uint _writtenAtBlock) +``` + +Kazi ya kusoma ni `view`, kwa hivyo haihitaji muamala na haina gharama ya gesi. Kwa hivyo, hakuna faida ya kutumia kache kwa kigezo. Kwa kazi za kutazama ni bora kutumia utaratibu wa kawaida ambao ni rahisi zaidi. + +### Msimbo wa majaribio {#the-testing-code} + +[Huu ni msimbo wa majaribio wa mkataba](https://github.com/qbzzt/20220915-all-you-can-cache/blob/main/test/WORM.t.sol). Tena, hebu tuangalie tu yale ya kuvutia. + +```solidity + function testWReadWrite() public { + worm.writeEntry(0xDEAD, 0x60A7); + + vm.expectRevert(bytes("ingizo tayari limeandikwa")); + worm.writeEntry(0xDEAD, 0xBEEF); +``` + +[Hivi (`vm.expectRevert`)](https://book.getfoundry.sh/cheatcodes/expect-revert#expectrevert) ndivyo tunavyobainisha katika jaribio la Foundry kwamba wito unaofuata unapaswa kushindwa, na sababu iliyoripotiwa ya kushindwa. Hii inatumika tunapotumia sintaksia `.()` badala ya kujenga calldata na kuita mkataba kwa kutumia kiolesura cha kiwango cha chini (`.call()`, n.k.). + +```solidity + function testReadWriteCached() public { + uint cacheGoat = worm.cacheWrite(0x60A7); +``` + +Hapa tunatumia ukweli kwamba `cacheWrite` inarudisha ufunguo wa kache. Hiki si kitu tunachotarajia kutumia katika uzalishaji, kwa sababu `cacheWrite` inabadilisha hali, na kwa hivyo inaweza kuitwa tu wakati wa muamala. Miamala haina thamani za kurudisha, ikiwa ina matokeo, matokeo hayo yanapaswa kutolewa kama matukio. Kwa hivyo, thamani ya kurudisha ya `cacheWrite` inapatikana tu kutoka kwa msimbo wa onchain, na msimbo wa onchain hauhitaji uhifadhi wa kache wa vigezo. + +```solidity + (_success,) = address(worm).call(_callInput); +``` + +Hivi ndivyo tunavyoiambia Solidity kwamba ingawa `.call()` ina thamani mbili za kurudisha, tunajali tu ya kwanza. + +```solidity + (_success,) = address(worm).call(_callInput); + assertEq(_success, false); +``` + +Kwa kuwa tunatumia kazi ya kiwango cha chini `
.call()`, hatuwezi kutumia `vm.expectRevert()` na tunapaswa kuangalia thamani ya mafanikio ya boolean tunayopata kutoka kwa wito. + +```solidity + event EntryWritten(uint indexed key, uint indexed value); + + . + . + . + + _callInput = bytes.concat( + worm.WRITE_ENTRY_CACHED(), worm.encodeVal(a), worm.encodeVal(b)); + vm.expectEmit(true, true, false, false); + emit EntryWritten(a, b); + (_success,) = address(worm).call(_callInput); +``` + +Hii ndiyo njia tunayotumia kuthibitisha kwamba msimbo [unatoa tukio kwa usahihi](https://getfoundry.sh/reference/cheatcodes/expect-emit/) katika Foundry. + +### Mteja {#the-client} + +Jambo moja usilopata na majaribio ya Solidity ni msimbo wa JavaScript unaoweza kunakili na kubandika kwenye programu yako mwenyewe. Ili kuandika msimbo huo, nilipeleka WORM kwenye [Optimism Goerli](https://community.optimism.io/docs/useful-tools/networks/#optimism-goerli), testnet mpya ya [Optimism](https://www.optimism.io/). Inapatikana kwenye anwani [`0xd34335b1d818cee54e3323d3246bd31d94e6a78a`](https://goerli-optimism.etherscan.io/address/0xd34335b1d818cee54e3323d3246bd31d94e6a78a). + +[Unaweza kuona msimbo wa JavaScript wa mteja hapa](https://github.com/qbzzt/20220915-all-you-can-cache/blob/main/javascript/index.js). Ili kuitumia: + +1. Fanya nakala ya hifadhi ya git: + + ```sh + git clone https://github.com/qbzzt/20220915-all-you-can-cache.git + ``` + +2. Sakinisha vifurushi vinavyohitajika: + + ```sh + cd javascript + yarn + ``` + +3. Nakili faili ya usanidi: + + ```sh + cp .env.example .env + ``` + +4. Hariri `.env` kwa usanidi wako: + + | Kigezo | Thamani | + | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | MNEMONIC | Neno la siri la akaunti ambayo ina ETH ya kutosha kulipia muamala. [Unaweza kupata ETH ya bure kwa mtandao wa Optimism Goerli hapa](https://optimismfaucet.xyz/). | + | OPTIMISM_GOERLI_URL | URL ya Optimism Goerli. Sehemu ya umma, `https://goerli.optimism.io`, ina kikomo cha viwango lakini inatosha kwa tunachohitaji hapa | + +5. Endesha `index.js`. + + ```sh + node index.js + ``` + + Programu hii ya mfano kwanza inaandika ingizo kwa WORM, ikionyesha calldata na kiungo cha muamala kwenye Etherscan. Kisha inasoma tena ingizo hilo, na kuonyesha ufunguo inaotumia na thamani katika ingizo (thamani, nambari ya bloku, na mwandishi). + +Sehemu kubwa ya mteja ni JavaScript ya kawaida ya Dapp. Kwa hivyo tena tutapitia tu sehemu za kuvutia. + +```javascript +. +. +. +const main = async () => { + const func = await worm.WRITE_ENTRY_CACHED() + + // Unahitaji ufunguo mpya kila wakati + const key = await worm.encodeVal(Number(new Date())) +``` + +Sehemu fulani inaweza kuandikwa mara moja tu, kwa hivyo tunatumia muhuri wa muda kuhakikisha haturudii kutumia sehemu. + +```javascript +const val = await worm.encodeVal("0x600D") + +// Andika ingizo +const calldata = func + key.slice(2) + val.slice(2) +``` + +Ethers inatarajia data ya wito iwe mfuatano wa heksi, `0x` ikifuatiwa na idadi shufwa ya tarakimu za heksadesimali. Kwa kuwa `key` na `val` zote zinaanza na `0x`, tunahitaji kuondoa vichwa hivyo. + +```javascript +const tx = await worm.populateTransaction.writeEntryCached() +tx.data = calldata + +sentTx = await wallet.sendTransaction(tx) +``` + +Kama ilivyo kwa msimbo wa majaribio wa Solidity, hatuwezi kuita kazi iliyohifadhiwa kwenye kache kawaida. Badala yake, tunahitaji kutumia utaratibu wa kiwango cha chini. + +```javascript + . + . + . + // Soma ingizo lililoandikwa sasa hivi + const realKey = '0x' + key.slice(4) // ondoa bendera ya FF + const entryRead = await worm.readEntry(realKey) + . + . + . +``` + +Kwa kusoma maingizo tunaweza kutumia utaratibu wa kawaida. Hakuna haja ya kutumia uhifadhi wa kache wa vigezo na kazi za `view`. + +## Hitimisho {#conclusion} + +Msimbo katika makala haya ni uthibitisho wa dhana, lengo ni kurahisisha wazo kueleweka. Kwa mfumo ulio tayari kwa uzalishaji unaweza kutaka kutekeleza utendaji fulani wa ziada: + +- Shughulikia thamani ambazo si `uint256`. Kwa mfano, mifuatano. +- Badala ya kache ya kimataifa, labda uwe na uhusiano kati ya watumiaji na kache. Watumiaji tofauti hutumia thamani tofauti. +- Thamani zinazotumiwa kwa anwani ni tofauti na zile zinazotumiwa kwa madhumuni mengine. Inaweza kuwa na maana kuwa na kache tofauti kwa ajili ya anwani tu. +- Hivi sasa, funguo za kache ziko kwenye algorithm ya "wa kwanza kuja, ufunguo mdogo zaidi". Thamani kumi na sita za kwanza zinaweza kutumwa kama baiti moja. Thamani 4080 zinazofuata zinaweza kutumwa kama baiti mbili. Thamani takriban milioni zinazofuata ni baiti tatu, n.k. Mfumo wa uzalishaji unapaswa kuweka vihesabu vya matumizi kwenye maingizo ya kache na kuzipanga upya ili thamani kumi na sita _za kawaida zaidi_ ziwe baiti moja, thamani 4080 zinazofuata za kawaida zaidi ziwe baiti mbili, n.k. + + Hata hivyo, hiyo ni operesheni inayoweza kuwa hatari. Fikiria mfuatano ufuatao wa matukio: + + 1. Noam Naive anaita `encodeVal` ili kusimba anwani anayotaka kutuma tokeni. Anwani hiyo ni mojawapo ya za kwanza kutumika kwenye programu, kwa hivyo thamani iliyosimbwa ni 0x06. Hii ni kazi ya `view`, si muamala, kwa hivyo ni kati ya Noam na nodi anayoitumia, na hakuna mwingine anayejua kuihusu + + 2. Owen Mmiliki anaendesha operesheni ya kupanga upya kache. Watu wachache sana hutumia anwani hiyo, kwa hivyo sasa imesimbwa kama 0x201122. Thamani tofauti, 1018, imekabidhiwa 0x06. + + 3. Noam Naive anatuma tokeni zake kwa 0x06. Zinakwenda kwenye anwani `0x0000000000000000000000000de0b6b3a7640000`, na kwa kuwa hakuna anayejua ufunguo binafsi wa anwani hiyo, zimekwama tu hapo. Noam _hana furaha_. + + Kuna njia za kutatua tatizo hili, na tatizo linalohusiana na miamala ambayo iko kwenye mempool wakati wa kupanga upya kache, lakini ni lazima ufahamu. + +Nilionyesha uhifadhi wa kache hapa na Optimism, kwa sababu mimi ni mfanyakazi wa Optimism na hii ndiyo unda-mpya ninaifahamu vizuri zaidi. Lakini inapaswa kufanya kazi na unda-mpya yoyote inayotoza gharama ndogo kwa usindikaji wa ndani, ili kwa kulinganisha uandishi wa data ya muamala kwa L1 uwe gharama kuu. + +[Tazama hapa kwa kazi zangu zaidi](https://cryptodocguy.pro/). + diff --git a/public/content/translations/sw/developers/tutorials/app-plasma/index.md b/public/content/translations/sw/developers/tutorials/app-plasma/index.md new file mode 100644 index 00000000000..a29d9db6fda --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/app-plasma/index.md @@ -0,0 +1,1255 @@ +--- +title: Andika Njozi maalum ya programu ambayo inahifadhi faragha +description: Katika mafunzo haya, tunaunda benki ya nusu-siri kwa ajili ya amana. Benki ni sehemu ya kati; inajua salio la kila mtumiaji. Hata hivyo, taarifa hii haihifadhiwi kwenye mnyororo. Badala yake, benki hutuma hashi ya hali. Kila mara muamala unapofanyika, benki hutuma hashi mpya, pamoja na uthibitisho wa zero-knowledge kwamba ina muamala uliosainiwa ambao hubadilisha hali ya hashi kuwa mpya. Baada ya kusoma mafunzo haya, utaelewa sio tu jinsi ya kutumia ithibati za zero-knowledge, lakini pia kwa nini unazitumia na jinsi ya kufanya hivyo kwa usalama. +author: Ori Pomerantz +tags: [ "zero-knowledge", "seva", "offchain", "faragha" ] +skill: advanced +lang: sw +published: 2025-10-15 +--- + +## Utangulizi {#introduction} + +Tofauti na [unda-mpya](/developers/docs/scaling/zk-rollups/), [njozi](/developers/docs/scaling/plasma) hutumia Mtandao Mkuu wa Ethereum kwa uadilifu, lakini si upatikanaji. Katika makala haya, tunaandika programu inayofanya kazi kama njozi, huku Ethereum ikihakikisha uadilifu (hakuna mabadiliko yasiyoidhinishwa) lakini si upatikanaji (sehemu ya kati inaweza kushuka na kuzima mfumo mzima). + +Programu tunayoandika hapa ni benki inayohifadhi faragha. Anwani tofauti zina akaunti zenye salio, na zinaweza kutuma pesa (ETH) kwa akaunti zingine. Benki hutuma hashi za hali (akaunti na salio zake) na miamala, lakini huweka salio halisi nje ya mnyororo ambapo zinaweza kubaki za faragha. + +## Ubunifu {#design} + +Huu si mfumo ulio tayari kwa uzalishaji, bali ni zana ya kufundishia. Kwa hivyo, imeandikwa kwa mawazo kadhaa ya kurahisisha. + +- Dimbwi la akaunti zisizobadilika. Kuna idadi maalum ya akaunti, na kila akaunti ni ya anwani iliyoamuliwa mapema. Hii hufanya mfumo kuwa rahisi zaidi kwa sababu ni vigumu kushughulikia miundo ya data ya ukubwa tofauti katika ithibati za zero-knowledge. Kwa mfumo ulio tayari kwa uzalishaji, tunaweza kutumia [mzizi wa Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/) kama hashi ya hali na kutoa ithibati za Merkle kwa salio zinazohitajika. + +- Hifadhi ya kumbukumbu. Kwenye mfumo wa uzalishaji, tunahitaji kuandika salio zote za akaunti kwenye diski ili kuzihifadhi iwapo kutakuwa na uanzishaji upya. Hapa, ni sawa ikiwa habari itapotea tu. + +- Uhamisho pekee. Mfumo wa uzalishaji utahitaji njia ya kuweka mali kwenye benki na kuzitoa. Lakini madhumuni hapa ni kuonyesha tu dhana, kwa hivyo benki hii imepunguzwa kwa uhamisho. + +### Ithibati za zero-knowledge {#zero-knowledge-proofs} + +Katika kiwango cha msingi, uthibitisho wa zero-knowledge unaonyesha kwamba mthibitishaji anajua data fulani, _Dataprivate_ kiasi kwamba kuna uhusiano _Relationship_ kati ya data fulani ya umma, _Datapublic_, na _Dataprivate_. Mthibitishaji anajua _Uhusiano_ na _Dataumma_. + +Ili kuhifadhi faragha, tunahitaji hali na miamala iwe ya faragha. Lakini ili kuhakikisha uadilifu, tunahitaji [hashi ya kriptografia](https://en.wikipedia.org/wiki/Cryptographic_hash_function) ya hali iwe ya umma. Ili kuthibitisha kwa watu wanaowasilisha miamala kwamba miamala hiyo ilifanyika kweli, tunahitaji pia kuchapisha hashi za miamala. + +Katika hali nyingi, _Dataprivate_ ni ingizo kwa programu ya uthibitisho wa zero-knowledge, na _Datapublic_ ni tokeo. + +Sehemu hizi katika _Dataprivate_: + +- _Halin_, hali ya zamani +- _Halin+1_, hali mpya +- _Muamala_, muamala unaobadilika kutoka hali ya zamani hadi hali mpya. Muamala huu unahitaji kujumuisha sehemu hizi: + - _Anwani lengwa_ inayopokea uhamisho + - _Kiasi_ kinachohamishwa + - _Nonce_ ili kuhakikisha kila muamala unaweza kuchakatwa mara moja tu. + Anwani ya chanzo haihitaji kuwa katika muamala, kwa sababu inaweza kupatikana kutoka kwa saini. +- _Sahihi_, sahihi iliyoidhinishwa kutekeleza muamala. Katika kesi yetu, anwani pekee iliyoidhinishwa kutekeleza muamala ni anwani ya chanzo. Kwa sababu mfumo wetu wa zero-knowledge hufanya kazi jinsi unavyofanya, tunahitaji pia ufunguo wa umma wa akaunti, pamoja na saini ya Ethereum. + +Hizi ni sehemu katika _Datapublic_: + +- _Hashi(Halin)_ hashi ya hali ya zamani +- _Hashi(Halin+1)_ hashi ya hali mpya +- _Hashi(Muamala)_ hashi ya muamala unaobadilisha hali kutoka _Halin_ hadi _Halin+1_. + +Uhusiano huangalia hali kadhaa: + +- Hashi za umma ni hashi sahihi za sehemu za faragha. +- Muamala, unapotumika kwa hali ya zamani, husababisha hali mpya. +- Sahihi hutoka kwa anwani chanzo ya muamala. + +Kwa sababu ya sifa za vipengele vya hashi ya kriptografia, kuthibitisha masharti haya kunatosha kuhakikisha uadilifu. + +### Miundo ya data {#data-structures} + +Muundo mkuu wa data ni hali inayoshikiliwa na seva. Kwa kila akaunti, seva hufuatilia salio la akaunti na [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce), inayotumika kuzuia [mashambulizi ya kurudia](https://en.wikipedia.org/wiki/Replay_attack). + +### Vipengele {#components} + +Mfumo huu unahitaji vipengele viwili: + +- _Seva_ inayopokea miamala, kuichakata, na kuchapisha hashi kwenye mnyororo pamoja na ithibati za zero-knowledge. +- _Mkataba-erevu_ unaohifadhi hashi na kuthibitisha ithibati za zero-knowledge ili kuhakikisha mabadiliko ya hali ni halali. + +### Mtiririko wa data na udhibiti {#flows} + +Hizi ni njia ambazo vipengele mbalimbali huwasiliana ili kuhamisha kutoka akaunti moja hadi nyingine. + +1. Kivinjari cha wavuti huwasilisha muamala uliosainiwa unaoomba uhamisho kutoka kwa akaunti ya mtia sahihi hadi akaunti tofauti. + +2. Seva inathibitisha kuwa muamala ni halali: + + - Mtia sahihi ana akaunti katika benki yenye salio la kutosha. + - Mpokeaji ana akaunti katika benki. + +3. Seva hukokotoa hali mpya kwa kutoa kiasi kilichohamishwa kutoka kwa salio la mtia sahihi na kukiongeza kwenye salio la mpokeaji. + +4. Seva hukokotoa uthibitisho wa zero-knowledge kwamba mabadiliko ya hali ni halali. + +5. Seva huwasilisha muamala kwa Ethereum unaojumuisha: + + - Hashi mpya ya hali + - Hashi ya muamala (ili mtumaji wa muamala aweze kujua kuwa imechakatwa) + - Uthibitisho wa zero-knowledge unaothibitisha mpito kwa hali mpya ni halali + +6. Mkataba-erevu huthibitisha uthibitisho wa zero-knowledge. + +7. Ikiwa uthibitisho wa zero-knowledge umekubaliwa, mkataba-erevu hufanya vitendo hivi: + - Sasisha hashi ya hali ya sasa hadi hashi mpya ya hali + - Toa ingizo la kumbukumbu na hashi mpya ya hali na hashi ya muamala + +### Zana {#tools} + +Kwa msimbo wa upande wa mteja, tutatumia [Vite](https://vite.dev/), [React](https://react.dev/), [Viem](https://viem.sh/), na [Wagmi](https://wagmi.sh/). Hizi ni zana za kawaida za tasnia; ikiwa huzifahamu, unaweza kutumia [mafunzo haya](/developers/tutorials/creating-a-wagmi-ui-for-your-contract/). + +Sehemu kubwa ya seva imeandikwa kwa JavaScript kwa kutumia [Nodi](https://nodejs.org/en). Sehemu ya zero-knowledge imeandikwa katika [Noir](https://noir-lang.org/). Tunahitaji toleo la `1.0.0-beta.10`, kwa hivyo baada ya [kusakinisha Noir kama ilivyoelekezwa](https://noir-lang.org/docs/getting_started/quick_start), endesha: + +``` +noirup -v 1.0.0-beta.10 +``` + +Mnyororo wa bloku tunaotumia ni `anvil`, mnyororo wa bloku wa majaribio wa ndani ambao ni sehemu ya [Foundry](https://getfoundry.sh/introduction/installation). + +## Utekelezaji {#implementation} + +Kwa sababu huu ni mfumo changamano, tutautekeleza kwa hatua. + +### Hatua ya 1 - Zero knowledge ya mikono {#stage-1} + +Kwa hatua ya kwanza, tutasaini muamala katika kivinjari na kisha kutoa habari kwa mikono kwa uthibitisho wa zero-knowledge. Msimbo wa zero-knowledge unatarajia kupata taarifa hiyo katika `server/noir/Prover.toml` (imeandikwa [hapa](https://noir-lang.org/docs/getting_started/project_breakdown#provertoml-1)). + +Ili kuiona ikifanya kazi: + +1. Hakikisha umesakinisha [Nodi](https://nodejs.org/en/download) na [Noir](https://noir-lang.org/install). Ikiwezekana, zisakishe kwenye mfumo wa UNIX kama vile macOS, Linux, au [WSL](https://learn.microsoft.com/en-us/windows/wsl/install). + +2. Pakua msimbo wa hatua ya 1 na uanze seva ya wavuti ili kuhudumia msimbo wa mteja. + + ```sh + git clone https://github.com/qbzzt/250911-zk-bank.git -b 01-manual-zk + cd 250911-zk-bank + cd client + npm install + npm run dev + ``` + + Sababu unahitaji seva ya wavuti hapa ni kwamba, ili kuzuia aina fulani za ulaghai, mikoba mingi (kama vile MetaMask) haikubali faili zinazotolewa moja kwa moja kutoka kwenye diski + +3. Fungua kivinjari na mkoba. + +4. Katika mkoba, weka nenosiri jipya. Kumbuka kuwa hii itafuta nenosiri lako lililopo, kwa hivyo _hakikisha una nakala rudufu_. + + Nenosiri ni `test test test test test test test test test test test junk`, nenosiri chaguo-msingi la majaribio la anvil. + +5. Vinjari [msimbo wa upande wa mteja](http://localhost:5173/). + +6. Unganisha kwenye mkoba na uchague akaunti yako lengwa na kiasi. + +7. Bofya **Saini** na utie sahihi kwenye muamala. + +8. Chini ya kichwa cha **Prover.toml**, utapata maandishi. Badilisha `server/noir/Prover.toml` na maandishi hayo. + +9. Tekeleza uthibitisho wa zero-knowledge. + + ```sh + cd ../server/noir + nargo execute + ``` + + Tokeo linapaswa kuwa sawa na + + ``` + ori@CryptoDocGuy:~/noir/250911-zk-bank/server/noir$ nargo execute + + [zkBank] Circuit witness successfully solved + [zkBank] Witness saved to target/zkBank.gz + [zkBank] Circuit output: (0x199aa62af8c1d562a6ec96e66347bf3240ab2afb5d022c895e6bf6a5e617167b, 0x0cfc0a67cb7308e4e9b254026b54204e34f6c8b041be207e64c5db77d95dd82d, 0x450cf9da6e180d6159290554ae3d8787, 0x6d8bc5a15b9037e52fb59b6b98722a85) + ``` + +10. Linganisha thamani mbili za mwisho na hashi unayoona kwenye kivinjari cha wavuti ili kuona ikiwa ujumbe umehashiwa ipasavyo. + +#### `server/noir/Prover.toml` {#server-noir-prover-toml} + +[Faili hii](https://github.com/qbzzt/250911-zk-bank/blob/01-manual-zk/server/noir/Prover.toml) inaonyesha umbizo la maelezo linalotarajiwa na Noir. + +```toml +message="send 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 500 finney (milliEth) 0 " +``` + +Ujumbe uko katika umbizo la maandishi, ambalo hurahisisha mtumiaji kuelewa (jambo ambalo ni muhimu wakati wa kusaini) na kwa msimbo wa Noir kuchanganua. Kiasi hicho kimetajwa katika finneys ili kuwezesha uhamisho wa sehemu kwa upande mmoja, na kusomeka kwa urahisi kwa upande mwingine. Nambari ya mwisho ni [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce). + +Kamba ina urefu wa herufi 100. Ithibati za zero-knowledge hazishughulikii vizuri data ya ukubwa unaobadilika, kwa hivyo mara nyingi ni muhimu kuongeza data. + +```toml +pubKeyX=["0x83",...,"0x75"] +pubKeyY=["0x35",...,"0xa5"] +signature=["0xb1",...,"0x0d"] +``` + +Vigezo hivi vitatu ni safu za baiti za ukubwa usiobadilika. + +```toml +[[accounts]] +address="0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" +balance=100_000 +nonce=0 + +[[accounts]] +address="0x70997970C51812dc3A010C7d01b50e0d17dc79C8" +balance=100_000 +nonce=0 +``` + +Hii ndiyo njia ya kubainisha safu ya miundo. Kwa kila ingizo, tunabainisha anwani, salio (katika milliETH a.k.a. [finney](https://cryptovalleyjournal.com/glossary/finney/)), na thamani inayofuata ya nonce. + +#### `client/src/Transfer.tsx` {#client-src-transfer-tsx} + +[Faili hii](https://github.com/qbzzt/250911-zk-bank/blob/01-manual-zk/client/src/Transfer.tsx) hutekeleza uchakataji wa upande wa mteja na kutoa faili ya `server/noir/Prover.toml` (ile inayojumuisha vigezo vya zero-knowledge). + +Hapa kuna maelezo ya sehemu za kuvutia zaidi. + +```tsx +export default attrs => { +``` + +Kazi hii huunda kijenzi cha React cha `Transfer`, ambacho faili zingine zinaweza kuagiza. + +```tsx + const accounts = [ + "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", + "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC", + "0x90F79bf6EB2c4f870365E785982E1f101E93b906", + "0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65", + ] +``` + +Hizi ni anwani za akaunti, anwani zilizoundwa na `test ... test junk` passphrase. Ikiwa unataka kutumia anwani zako mwenyewe, rekebisha tu ufafanuzi huu. + +```tsx + const account = useAccount() + const wallet = createWalletClient({ + transport: custom(window.ethereum!) + }) +``` + +[Kulabu hizi za Wagmi](https://wagmi.sh/react/api/hooks) hutuwezesha kufikia maktaba ya [viem](https://viem.sh/) na mkoba. + +```tsx + const message = `send ${toAccount} ${ethAmount*1000} finney (milliEth) ${nonce}`.padEnd(100, " ") +``` + +Huu ni ujumbe, uliowekwa nafasi. Kila wakati moja ya vigezo vya [`useState`](https://react.dev/reference/react/useState) inapobadilika, kijenzi huchorwa upya na `message` husasishwa. + +```tsx + const sign = async () => { +``` + +Kazi hii inaitwa mtumiaji anapobofya kitufe cha **Saini**. Ujumbe husasishwa kiotomatiki, lakini saini inahitaji idhini ya mtumiaji katika mkoba, na hatutaki kuiomba isipokuwa inahitajika. + +```tsx + const signature = await wallet.signMessage({ + account: fromAccount, + message, + }) +``` + +Uliza mkoba [kusaini ujumbe](https://viem.sh/docs/accounts/local/signMessage). + +```tsx + const hash = hashMessage(message) +``` + +Pata hashi ya ujumbe. Inasaidia kumpa mtumiaji kwa ajili ya utatuzi (wa msimbo wa Noir). + +```tsx + const pubKey = await recoverPublicKey({ + hash, + signature + }) +``` + +[Pata ufunguo wa umma](https://viem.sh/docs/utilities/recoverPublicKey). Hii inahitajika kwa kazi ya [Noir `ecrecover`](https://github.com/colinnielsen/ecrecover-noir). + +```tsx + setSignature(signature) + setHash(hash) + setPubKey(pubKey) +``` + +Weka vigezo vya hali. Kufanya hivi huchora upya kijenzi (baada ya kazi ya `sign` kuondoka) na huonyesha mtumiaji thamani zilizosasishwa. + +```tsx + let proverToml = ` +``` + +Maandishi ya `Prover.toml`. + +```tsx +message="${message}" + +pubKeyX=${hexToArray(pubKey.slice(4,4+2*32))} +pubKeyY=${hexToArray(pubKey.slice(4+2*32))} +``` + +Viem inatupatia ufunguo wa umma kama kamba ya heksadesimali ya baiti 65. Baiti ya kwanza ni `0x04`, alama ya toleo. Hii inafuatiwa na baiti 32 za `x` ya ufunguo wa umma na kisha baiti 32 za `y` ya ufunguo wa umma. + +Hata hivyo, Noir inatarajia kupata taarifa hii kama safu mbili za baiti, moja kwa `x` na moja kwa `y`. Ni rahisi zaidi kuichanganua hapa kwa mteja kuliko kama sehemu ya uthibitisho wa zero-knowledge. + +Kumbuka kuwa hii ni mazoezi mazuri katika zero-knowledge kwa ujumla. Msimbo ndani ya uthibitisho wa zero-knowledge ni ghali, kwa hivyo uchakataji wowote unaoweza kufanywa nje ya uthibitisho wa zero-knowledge _unapaswa_ kufanywa nje ya uthibitisho wa zero-knowledge. + +```tsx +signature=${hexToArray(signature.slice(2,-2))} +``` + +Sahihi pia hutolewa kama kamba ya heksadesimali ya baiti 65. Hata hivyo, baiti ya mwisho ni muhimu tu ili kupata ufunguo wa umma. Kwa kuwa ufunguo wa umma utakuwa tayari umetolewa kwa msimbo wa Noir, hatuitaji ili kuthibitisha saini, na msimbo wa Noir hauihitaji. + +```tsx +${accounts.map(accountInProverToml).reduce((a,b) => a+b, "")} +` +``` + +Toa akaunti. + +```tsx + setProverToml(proverToml) + } + + return ( + <> +

Uhamisho

+``` + +Hii ni umbizo la HTML (kwa usahihi zaidi, [JSX](https://react.dev/learn/writing-markup-with-jsx)) la kijenzi. + +#### `server/noir/src/main.nr` {#server-noir-src-main-nr} + +[Faili hii](https://github.com/qbzzt/250911-zk-bank/blob/01-manual-zk/server/noir/src/main.nr) ni msimbo halisi wa zero-knowledge. + +``` +use std::hash::pedersen_hash; +``` + +[Hashi ya Pedersen](https://rya-sge.github.io/access-denied/2024/05/07/pedersen-hash-function/) hutolewa na [maktaba ya kawaida ya Noir](https://noir-lang.org/docs/noir/standard_library/cryptographic_primitives/hashes#pedersen_hash). Ithibati za zero-knowledge mara nyingi hutumia kipengele hiki cha hashi. Ni rahisi zaidi kukokotoa ndani ya [mizunguko ya hesabu](https://rareskills.io/post/arithmetic-circuit) ikilinganishwa na vipengele vya kawaida vya hashi. + +``` +use keccak256::keccak256; +use dep::ecrecover; +``` + +Kazi hizi mbili ni maktaba za nje, zilizofafanuliwa katika [`Nargo.toml`](https://github.com/qbzzt/250911-zk-bank/blob/01-manual-zk/server/noir/Nargo.toml). Ni hasa kile wanachoitwa, kazi ambayo inakokotoa [hashi ya keccak256](https://emn178.github.io/online-tools/keccak_256.html) na kazi ambayo inathibitisha saini za Ethereum na kurejesha anwani ya Ethereum ya mtia saini. + +``` +global ACCOUNT_NUMBER : u32 = 5; +``` + +Noir imechochewa na [Rust](https://www.rust-lang.org/). Vigezo, kwa chaguo-msingi, ni vidumu. Hivi ndivyo tunavyofafanua vidumu vya usanidi wa kimataifa. Hasa, `ACCOUNT_NUMBER` ni idadi ya akaunti tunazohifadhi. + +Aina za data zilizoitwa `u` ni idadi hiyo ya biti, zisizo na saini. Aina pekee zinazotumika ni `u8`, `u16`, `u32`, `u64`, na `u128`. + +``` +global FLAT_ACCOUNT_FIELDS : u32 = 2; +``` + +Kigezo hiki kinatumika kwa hashi ya Pedersen ya akaunti, kama ilivyoelezwa hapo chini. + +``` +global MESSAGE_LENGTH : u32 = 100; +``` + +Kama ilivyoelezwa hapo juu, urefu wa ujumbe umewekwa. Imebainishwa hapa. + +``` +global ASCII_MESSAGE_LENGTH : [u8; 3] = [0x31, 0x30, 0x30]; +global HASH_BUFFER_SIZE : u32 = 26+3+MESSAGE_LENGTH; +``` + +[Sahihi za EIP-191](https://eips.ethereum.org/EIPS/eip-191) zinahitaji bafa yenye kiambishi awali cha baiti 26, ikifuatiwa na urefu wa ujumbe katika ASCII, na hatimaye ujumbe wenyewe. + +``` +struct Account { + balance: u128, + address: Field, + nonce: u32, +} +``` + +Taarifa tunayohifadhi kuhusu akaunti. [`Field`](https://noir-lang.org/docs/noir/concepts/data_types/fields) ni nambari, kwa kawaida hadi biti 253, ambayo inaweza kutumika moja kwa moja katika [mzunguko wa hesabu](https://rareskills.io/post/arithmetic-circuit) unaotekeleza uthibitisho wa zero-knowledge. Hapa tunatumia `Field` kuhifadhi anwani ya Ethereum ya biti 160. + +``` +struct TransferTxn { + from: Field, + to: Field, + amount: u128, + nonce: u32 +} +``` + +Taarifa tunayohifadhi kwa muamala wa uhamisho. + +``` +fn flatten_account(account: Account) -> [Field; FLAT_ACCOUNT_FIELDS] { +``` + +Ufafanuzi wa kazi. Kigezo ni habari ya `Account`. Matokeo ni safu ya vigezo vya `Field`, ambavyo urefu wake ni `FLAT_ACCOUNT_FIELDS` + +``` + let flat = [ + account.address, + ((account.balance << 32) + account.nonce.into()).into(), + ]; +``` + +Thamani ya kwanza katika safu ni anwani ya akaunti. Ya pili inajumuisha salio na nonce. Miito ya `.into()` hubadilisha nambari kuwa aina ya data inayohitajika. `account.nonce` ni thamani ya `u32`, lakini ili kuiongeza kwa `account.balance << 32`, thamani ya `u128`, inahitaji kuwa `u128`. Hiyo ndiyo `.into()` ya kwanza. Ya pili inabadilisha matokeo ya `u128` kuwa `Sehemu` ili itoshee kwenye safu. + +``` + flat +} +``` + +Katika Noir, kazi zinaweza kurudisha thamani mwishoni tu (hakuna kurudi mapema). Ili kubainisha thamani ya kurudi, unaitathmini kabla tu ya mabano ya kufunga ya kazi. + +``` +fn flatten_accounts(accounts: [Account; ACCOUNT_NUMBER]) -> [Field; FLAT_ACCOUNT_FIELDS*ACCOUNT_NUMBER] { +``` + +Kazi hii hugeuza safu ya akaunti kuwa safu ya `Sehemu`, ambayo inaweza kutumika kama ingizo kwa Hashi ya Petersen. + +``` + let mut flat: [Field; FLAT_ACCOUNT_FIELDS*ACCOUNT_NUMBER] = [0; FLAT_ACCOUNT_FIELDS*ACCOUNT_NUMBER]; +``` + +Hivi ndivyo unavyobainisha kigezo kinachoweza kubadilishwa, yaani, _sio_ kidumu. Vigezo katika Noir lazima viwe na thamani kila wakati, kwa hivyo tunaanzisha kigezo hiki kwa sifuri zote. + +``` + for i in 0..ACCOUNT_NUMBER { +``` + +Hii ni kitanzi cha `for`. Kumbuka kuwa mipaka ni vidumu. Vitanzi vya Noir lazima mipaka yao ijulikane wakati wa kukusanya. Sababu ni kwamba mizunguko ya hesabu haitumii udhibiti wa mtiririko. Wakati wa kuchakata kitanzi cha `for`, mkusanyaji huweka tu msimbo ndani yake mara nyingi, moja kwa kila mzunguko. + +``` + let fields = flatten_account(accounts[i]); + for j in 0..FLAT_ACCOUNT_FIELDS { + flat[i*FLAT_ACCOUNT_FIELDS + j] = fields[j]; + } + } + + flat +} + +fn hash_accounts(accounts: [Account; ACCOUNT_NUMBER]) -> Field { + pedersen_hash(flatten_accounts(accounts)) +} +``` + +Mwishowe, tumefika kwenye kazi ambayo inahashi safu ya akaunti. + +``` +fn find_account(accounts: [Account; ACCOUNT_NUMBER], address: Field) -> u32 { + let mut account : u32 = ACCOUNT_NUMBER; + + for i in 0..ACCOUNT_NUMBER { + if accounts[i].address == address { + account = i; + } + } +``` + +Kazi hii hupata akaunti yenye anwani maalum. Kazi hii haingekuwa na ufanisi katika msimbo wa kawaida kwa sababu inarudia akaunti zote, hata baada ya kupata anwani. + +Hata hivyo, katika ithibati za zero-knowledge, hakuna udhibiti wa mtiririko. Ikiwa tutahitaji kuangalia hali, lazima tuiangalie kila wakati. + +Jambo kama hilo hufanyika kwa taarifa za `if`. Taarifa ya `if` katika kitanzi hapo juu inatafsiriwa kuwa taarifa hizi za hisabati. + +_conditionresult = accounts[i].address == address_ // moja ikiwa ni sawa, sifuri vinginevyo + +_accountnew = conditionresult\*i + (1-conditionresult)\*accountold_ + +```rust + assert (account < ACCOUNT_NUMBER, f"{address} does not have an account"); + + account +} +``` + +Kazi ya [`assert`](https://noir-lang.org/docs/dev/noir/concepts/assert) husababisha uthibitisho wa zero-knowledge kuharibika ikiwa madai ni ya uongo. Katika kesi hii, ikiwa hatuwezi kupata akaunti yenye anwani husika. Ili kuripoti anwani, tunatumia [kamba ya umbizo](https://noir-lang.org/docs/noir/concepts/data_types/strings#format-strings). + +```rust +fn apply_transfer_txn(accounts: [Account; ACCOUNT_NUMBER], txn: TransferTxn) -> [Account; ACCOUNT_NUMBER] { +``` + +Kazi hii hutumia muamala wa uhamisho na kurudisha safu mpya ya akaunti. + +```rust + let from = find_account(accounts, txn.from); + let to = find_account(accounts, txn.to); + + let (txnFrom, txnAmount, txnNonce, accountNonce) = + (txn.from, txn.amount, txn.nonce, accounts[from].nonce); +``` + +Hatuwezi kufikia vipengele vya muundo ndani ya kamba ya umbizo katika Noir, kwa hivyo tunaunda nakala inayoweza kutumika. + +```rust + assert (accounts[from].balance >= txn.amount, + f"{txnFrom} does not have {txnAmount} finney"); + + assert (accounts[from].nonce == txn.nonce, + f"Transaction has nonce {txnNonce}, but the account is expected to use {accountNonce}"); +``` + +Hizi ni hali mbili ambazo zinaweza kufanya muamala kuwa batili. + +```rust + let mut newAccounts = accounts; + + newAccounts[from].balance -= txn.amount; + newAccounts[from].nonce += 1; + newAccounts[to].balance += txn.amount; + + newAccounts +} +``` + +Unda safu mpya ya akaunti na kisha uirudishe. + +```rust +fn readAddress(messageBytes: [u8; MESSAGE_LENGTH]) -> Field +``` + +Kazi hii inasoma anwani kutoka kwa ujumbe. + +```rust +{ + let mut result : Field = 0; + + for i in 7..47 { +``` + +Anwani daima ni baiti 20 (a.k.a. Tarakimu 40 za heksadesimali) kwa urefu, na huanza kwa herufi #7. + +```rust + result *= 0x10; + if messageBytes[i] >= 48 & messageBytes[i] <= 57 { // 0-9 + result += (messageBytes[i]-48).into(); + } + if messageBytes[i] >= 65 & messageBytes[i] <= 70 { // A-F + result += (messageBytes[i]-65+10).into() + } + if messageBytes[i] >= 97 & messageBytes[i] <= 102 { // a-f + result += (messageBytes[i]-97+10).into() + } + } + + result +} + +fn readAmountAndNonce(messageBytes: [u8; MESSAGE_LENGTH]) -> (u128, u32) +``` + +Soma kiasi na nonce kutoka kwa ujumbe. + +```rust +{ + let mut amount : u128 = 0; + let mut nonce: u32 = 0; + let mut stillReadingAmount: bool = true; + let mut lookingForNonce: bool = false; + let mut stillReadingNonce: bool = false; +``` + +Katika ujumbe, nambari ya kwanza baada ya anwani ni kiasi cha finney (a.k.a. elfu ya ETH) ya kuhamisha. Nambari ya pili ni nonce. Maandishi yoyote kati yao yanapuuzwa. + +```rust + for i in 48..MESSAGE_LENGTH { + if messageBytes[i] >= 48 & messageBytes[i] <= 57 { // 0-9 + let digit = (messageBytes[i]-48); + + if stillReadingAmount { + amount = amount*10 + digit.into(); + } + + if lookingForNonce { // We just found it + stillReadingNonce = true; + lookingForNonce = false; + } + + if stillReadingNonce { + nonce = nonce*10 + digit.into(); + } + } else { + if stillReadingAmount { + stillReadingAmount = false; + lookingForNonce = true; + } + if stillReadingNonce { + stillReadingNonce = false; + } + } + } + + (amount, nonce) +} +``` + +Kurudisha [tuple](https://noir-lang.org/docs/noir/concepts/data_types/tuples) ni njia ya Noir ya kurudisha thamani nyingi kutoka kwa kazi. + +```rust +fn readTransferTxn(message: str) -> TransferTxn +{ + let mut txn: TransferTxn = TransferTxn { from: 0, to: 0, amount:0, nonce:0 }; + let messageBytes = message.as_bytes(); + + txn.to = readAddress(messageBytes); + let (amount, nonce) = readAmountAndNonce(messageBytes); + txn.amount = amount; + txn.nonce = nonce; + + txn +} +``` + +Kazi hii hubadilisha ujumbe kuwa baiti, kisha hubadilisha kiasi kuwa `TransferTxn`. + +```rust +// The equivalent to Viem's hashMessage +// https://viem.sh/docs/utilities/hashMessage#hashmessage +fn hashMessage(message: str) -> [u8;32] { +``` + +Tuliweza kutumia Hashi ya Pedersen kwa akaunti kwa sababu zimehashiwa tu ndani ya uthibitisho wa zero-knowledge. Hata hivyo, katika msimbo huu tunahitaji kuangalia saini ya ujumbe, ambayo hutolewa na kivinjari. Kwa hilo, tunahitaji kufuata umbizo la kusaini la Ethereum katika [EIP 191](https://eips.ethereum.org/EIPS/eip-191). Hii ina maana tunahitaji kuunda bafa iliyounganishwa yenye kiambishi awali cha kawaida, urefu wa ujumbe katika ASCII, na ujumbe wenyewe, na kutumia keccak256 ya kawaida ya Ethereum kuihashi. + +```rust + // ASCII prefix + let prefix_bytes = [ + 0x19, // \x19 + 0x45, // 'E' + 0x74, // 't' + 0x68, // 'h' + 0x65, // 'e' + 0x72, // 'r' + 0x65, // 'e' + 0x75, // 'u' + 0x6D, // 'm' + 0x20, // ' ' + 0x53, // 'S' + 0x69, // 'i' + 0x67, // 'g' + 0x6E, // 'n' + 0x65, // 'e' + 0x64, // 'd' + 0x20, // ' ' + 0x4D, // 'M' + 0x65, // 'e' + 0x73, // 's' + 0x73, // 's' + 0x61, // 'a' + 0x67, // 'g' + 0x65, // 'e' + 0x3A, // ':' + 0x0A // '\n' + ]; +``` + +Ili kuepuka hali ambapo programu inamwomba mtumiaji kusaini ujumbe ambao unaweza kutumika kama muamala au kwa madhumuni mengine, EIP 191 inabainisha kuwa ujumbe wote uliosainiwa huanza na herufi 0x19 (sio herufi halali ya ASCII) ikifuatiwa na `Ethereum Signed Message:` na mstari mpya. + +```rust + let mut buffer: [u8; HASH_BUFFER_SIZE] = [0u8; HASH_BUFFER_SIZE]; + for i in 0..26 { + buffer[i] = prefix_bytes[i]; + } + + let messageBytes : [u8; MESSAGE_LENGTH] = message.as_bytes(); + + if MESSAGE_LENGTH <= 9 { + for i in 0..1 { + buffer[i+26] = ASCII_MESSAGE_LENGTH[i]; + } + + for i in 0..MESSAGE_LENGTH { + buffer[i+26+1] = messageBytes[i]; + } + } + + if MESSAGE_LENGTH >= 10 & MESSAGE_LENGTH <= 99 { + for i in 0..2 { + buffer[i+26] = ASCII_MESSAGE_LENGTH[i]; + } + + for i in 0..MESSAGE_LENGTH { + buffer[i+26+2] = messageBytes[i]; + } + } + + if MESSAGE_LENGTH >= 100 { + for i in 0..3 { + buffer[i+26] = ASCII_MESSAGE_LENGTH[i]; + } + + for i in 0..MESSAGE_LENGTH { + buffer[i+26+3] = messageBytes[i]; + } + } + + assert(MESSAGE_LENGTH < 1000, "Messages whose length is over three digits are not supported"); +``` + +Shughulikia urefu wa ujumbe hadi 999 na ushindwe ikiwa ni mkubwa zaidi. Niliongeza msimbo huu, ingawa urefu wa ujumbe ni wa kudumu, kwa sababu inafanya iwe rahisi kuubadilisha. Kwenye mfumo wa uzalishaji, labda ungechukulia tu `MESSAGE_LENGTH` haibadiliki kwa ajili ya utendaji bora. + +```rust + keccak256::keccak256(buffer, HASH_BUFFER_SIZE) +} +``` + +Tumia kazi ya kawaida ya Ethereum `keccak256`. + +```rust +fn signatureToAddressAndHash( + message: str, + pubKeyX: [u8; 32], + pubKeyY: [u8; 32], + signature: [u8; 64] + ) -> (Field, Field, Field) // address, first 16 bytes of hash, last 16 bytes of hash +{ +``` + +Kazi hii inathibitisha saini, ambayo inahitaji hashi ya ujumbe. Kisha inatupatia anwani iliyoisaini na hashi ya ujumbe. Hashi ya ujumbe hutolewa katika thamani mbili za `Sehemu` kwa sababu hizo ni rahisi kutumia katika programu iliyobaki kuliko safu ya baiti. + +Tunahitaji kutumia thamani mbili za `Sehemu` kwa sababu hesabu za sehemu hufanywa [modulo](https://en.wikipedia.org/wiki/Modulo) nambari kubwa, lakini nambari hiyo kwa kawaida ni chini ya biti 256 (vinginevyo ingekuwa vigumu kufanya hesabu hizo katika EVM). + +```rust + let hash = hashMessage(message); + + let mut (hash1, hash2) = (0,0); + + for i in 0..16 { + hash1 = hash1*256 + hash[31-i].into(); + hash2 = hash2*256 + hash[15-i].into(); + } +``` + +Bainisha `hash1` na `hash2` kama vigezo vinavyoweza kubadilishwa, na andika hashi ndani yao baiti kwa baiti. + +```rust + ( + ecrecover::ecrecover(pubKeyX, pubKeyY, signature, hash), +``` + +Hii ni sawa na [`ecrecover` ya Solidity](https://docs.soliditylang.org/en/v0.8.30/cheatsheet.html#mathematical-and-cryptographic-functions), na tofauti mbili muhimu: + +- Ikiwa saini si halali, simu inashindwa `kudai` na programu inasitishwa. +- Ingawa ufunguo wa umma unaweza kupatikana kutoka kwa saini na hashi, huu ni uchakataji unaoweza kufanywa nje na, kwa hivyo, haifai kufanya ndani ya uthibitisho wa zero-knowledge. Mtu akijaribu kutudanganya hapa, uthibitishaji wa saini utashindwa. + +```rust + hash1, + hash2 + ) +} + +fn main( + accounts: [Account; ACCOUNT_NUMBER], + message: str, + pubKeyX: [u8; 32], + pubKeyY: [u8; 32], + signature: [u8; 64], + ) -> pub ( + Field, // Hash of old accounts array + Field, // Hash of new accounts array + Field, // First 16 bytes of message hash + Field, // Last 16 bytes of message hash + ) +``` + +Mwishowe, tunafikia kazi ya `main`. Tunahitaji kuthibitisha kwamba tuna muamala unaobadilisha kihalali hashi ya akaunti kutoka thamani ya zamani hadi mpya. Tunahitaji pia kuthibitisha kwamba ina hashi hii maalum ya muamala ili mtu aliyeituma ajue muamala wake umeshachakatwa. + +```rust +{ + let mut txn = readTransferTxn(message); +``` + +Tunahitaji `txn` iweze kubadilika kwa sababu hatusomi anwani ya kutoka kwenye ujumbe, tunaisoma kutoka kwenye saini. + +```rust + let (fromAddress, txnHash1, txnHash2) = signatureToAddressAndHash( + message, + pubKeyX, + pubKeyY, + signature); + + txn.from = fromAddress; + + let newAccounts = apply_transfer_txn(accounts, txn); + + ( + hash_accounts(accounts), + hash_accounts(newAccounts), + txnHash1, + txnHash2 + ) +} +``` + +### Hatua ya 2 - Kuongeza seva {#stage-2} + +Katika hatua ya pili, tunaongeza seva inayopokea na kutekeleza miamala ya uhamisho kutoka kwa kivinjari. + +Ili kuiona ikifanya kazi: + +1. Simamisha Vite ikiwa inaendeshwa. + +2. Pakua tawi linalojumuisha seva na uhakikishe una moduli zote muhimu. + + ```sh + git checkout 02-add-server + cd client + npm install + cd ../server + npm install + ``` + + Hakuna haja ya kukusanya msimbo wa Noir, ni msimbo uleule uliotumia kwa hatua ya 1. + +3. Anzisha seva. + + ```sh + npm run start + ``` + +4. Katika dirisha tofauti la mstari wa amri, endesha Vite ili kuhudumia msimbo wa kivinjari. + + ```sh + cd client + npm run dev + ``` + +5. Vinjari msimbo wa mteja kwenye [http://localhost:5173](http://localhost:5173) + +6. Kabla ya kutoa muamala, unahitaji kujua nonce, pamoja na kiasi unachoweza kutuma. Ili kupata habari hii, bofya **Sasisha data ya akaunti** na utie sahihi kwenye ujumbe. + + Tuna mtanziko hapa. Kwa upande mmoja, hatutaki kusaini ujumbe unaoweza kutumiwa tena ([shambulio la kurudia](https://en.wikipedia.org/wiki/Replay_attack)), ndiyo sababu tunataka nonce kwanza. Hata hivyo, bado hatuna nonce. Suluhisho ni kuchagua nonce ambayo inaweza kutumika mara moja tu na ambayo tayari tunayo pande zote mbili, kama vile wakati wa sasa. + + Tatizo na suluhisho hili ni kwamba wakati huenda usisawazishwe kikamilifu. Kwa hivyo badala yake, tunasaini thamani inayobadilika kila dakika. Hii inamaanisha kuwa dirisha letu la hatari kwa mashambulizi ya kurudia ni dakika moja tu. Kwa kuzingatia kwamba katika uzalishaji ombi lililosainiwa litalindwa na TLS, na kwamba upande mwingine wa handaki---seva---inaweza tayari kufichua salio na nonce (inabidi iwajue ili kufanya kazi), hii ni hatari inayokubalika. + +7. Mara kivinjari kinapopata salio na nonce, kinaonyesha fomu ya uhamisho. Chagua anwani lengwa na kiasi na ubofye **Hamisha**. Saini ombi hili. + +8. Ili kuona uhamisho, ama **Sasisha data ya akaunti** au angalia kwenye dirisha ambapo unaendesha seva. Seva huweka kumbukumbu ya hali kila inapobadilika. + + ``` + ori@CryptoDocGuy:~/x/250911-zk-bank/server$ npm run start + + > server@1.0.0 start + > node --experimental-json-modules index.mjs + + Listening on port 3000 + Txn send 0x90F79bf6EB2c4f870365E785982E1f101E93b906 36000 finney (milliEth) 0 processed + New state: + 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 has 64000 (1) + 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 has 100000 (0) + 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC has 100000 (0) + 0x90F79bf6EB2c4f870365E785982E1f101E93b906 has 136000 (0) + 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 has 100000 (0) + Txn send 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 7200 finney (milliEth) 1 processed + New state: + 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 has 56800 (2) + 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 has 107200 (0) + 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC has 100000 (0) + 0x90F79bf6EB2c4f870365E785982E1f101E93b906 has 136000 (0) + 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 has 100000 (0) + Txn send 0x90F79bf6EB2c4f870365E785982E1f101E93b906 3000 finney (milliEth) 2 processed + New state: + 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 has 53800 (3) + 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 has 107200 (0) + 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC has 100000 (0) + 0x90F79bf6EB2c4f870365E785982E1f101E93b906 has 139000 (0) + 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 has 100000 (0) + ``` + +#### `server/index.mjs` {#server-index-mjs-1} + +[Faili hii](https://github.com/qbzzt/250911-zk-bank/blob/02-add-server/server/index.mjs) ina mchakato wa seva, na inaingiliana na msimbo wa Noir kwenye [`main.nr`](https://github.com/qbzzt/250911-zk-bank/blob/02-add-server/server/noir/src/main.nr). Hapa kuna maelezo ya sehemu za kuvutia. + +```js +import { Noir } from '@noir-lang/noir_js' +``` + +Maktaba ya [noir.js](https://www.npmjs.com/package/@noir-lang/noir_js) inaunganisha kati ya msimbo wa JavaScript na msimbo wa Noir. + +```js +const circuit = JSON.parse(await fs.readFile("./noir/target/zkBank.json")) +const noir = new Noir(circuit) +``` + +Pakia mzunguko wa hesabu---programu ya Noir iliyokusanywa tuliyoiumba katika hatua ya awali---na andaa kuitekeleza. + +```js +// We only provide account information in return to a signed request +const accountInformation = async signature => { + const fromAddress = await recoverAddress({ + hash: hashMessage("Get account data " + Math.floor((new Date().getTime())/60000)), + signature + }) +``` + +Ili kutoa maelezo ya akaunti, tunahitaji tu saini. Sababu ni kwamba tayari tunajua ujumbe utakuwa nini, na kwa hiyo hashi ya ujumbe. + +```js +const processMessage = async (message, signature) => { +``` + +Chakata ujumbe na utekeleze muamala unaouweka. + +```js + // Get the public key + const pubKey = await recoverPublicKey({ + hash, + signature + }) +``` + +Sasa kwa kuwa tunaendesha JavaScript kwenye seva, tunaweza kupata ufunguo wa umma hapo badala ya kwa mteja. + +```js + let noirResult + try { + noirResult = await noir.execute({ + message, + signature: signature.slice(2,-2).match(/.{2}/g).map(x => `0x${x}`), + pubKeyX, + pubKeyY, + accounts: Accounts + }) +``` + +`noir.execute` huendesha programu ya Noir. Vigezo ni sawa na vile vilivyotolewa katika [`Prover.toml`](https://github.com/qbzzt/250911-zk-bank/blob/01-manual-zk/server/noir/Prover.toml). Kumbuka kuwa thamani ndefu hutolewa kama safu ya kamba za heksadesimali (`["0x60", "0xA7"]`), sio kama thamani moja ya heksadesimali (`0x60A7`), jinsi Viem inavyofanya. + +```js + } catch (err) { + console.log(`Noir error: ${err}`) + throw Error("Invalid transaction, not processed") + } +``` + +Ikiwa kuna hitilafu, ikamate na kisha upeleke toleo lililorahisishwa kwa mteja. + +```js + Accounts[fromAccountNumber].nonce++ + Accounts[fromAccountNumber].balance -= amount + Accounts[toAccountNumber].balance += amount +``` + +Tekeleza muamala. Tayari tulifanya hivyo katika msimbo wa Noir, lakini ni rahisi kuifanya tena hapa badala ya kutoa matokeo kutoka hapo. + +```js +let Accounts = [ + { + address: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + balance: 5000, + nonce: 0, + }, +``` + +Muundo wa awali wa `Akaunti`. + +### Hatua ya 3 - Mikataba-erevu ya Ethereum {#stage-3} + +1. Simamisha michakato ya seva na mteja. + +2. Pakua tawi lenye mikataba-erevu na uhakikishe una moduli zote muhimu. + + ```sh + git checkout 03-smart-contracts + cd client + npm install + cd ../server + npm install + ``` + +3. Endesha `anvil` katika dirisha tofauti la mstari wa amri. + +4. Tengeneza ufunguo wa uthibitishaji na kithibitishaji cha solidity, kisha nakili msimbo wa kithibitishaji kwenye mradi wa Solidity. + + ```sh + cd noir + bb write_vk -b ./target/zkBank.json -o ./target --oracle_hash keccak + bb write_solidity_verifier -k ./target/vk -o ./target/Verifier.sol + cp target/Verifier.sol ../../smart-contracts/src + ``` + +5. Nenda kwenye mikataba-erevu na weka vigezo vya mazingira ili kutumia mnyororo wa bloku wa `anvil`. + + ```sh + cd ../../smart-contracts + export ETH_RPC_URL=http://localhost:8545 + ETH_PRIVATE_KEY=ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 + ``` + +6. Pakia `Verifier.sol` na uhifadhi anwani katika kigezo cha mazingira. + + ```sh + VERIFIER_ADDRESS=`forge create src/Verifier.sol:HonkVerifier --private-key $ETH_PRIVATE_KEY --optimize --broadcast | awk '/Deployed to:/ {print $3}'` + echo $VERIFIER_ADDRESS + ``` + +7. Pakia mkataba wa `ZkBank`. + + ```sh + ZKBANK_ADDRESS=`forge create ZkBank --private-key $ETH_PRIVATE_KEY --broadcast --constructor-args $VERIFIER_ADDRESS 0x199aa62af8c1d562a6ec96e66347bf3240ab2afb5d022c895e6bf6a5e617167b | awk '/Deployed to:/ {print $3}'` + echo $ZKBANK_ADDRESS + ``` + + Thamani ya `0x199..67b` ni hashi ya Pederson ya hali ya awali ya `Accounts`. Ukirekebisha hali hii ya awali katika `server/index.mjs`, unaweza kuendesha muamala ili kuona hashi ya awali iliyoripotiwa na uthibitisho wa zero-knowledge. + +8. Endesha seva. + + ```sh + cd ../server + npm run start + ``` + +9. Endesha mteja katika dirisha tofauti la mstari wa amri. + + ```sh + cd client + npm run dev + ``` + +10. Endesha miamala kadhaa. + +11. Ili kuthibitisha kuwa hali imebadilika kwenye mnyororo, anzisha upya mchakato wa seva. Angalia kuwa `ZkBank` haikubali tena miamala, kwa sababu thamani ya asili ya hashi katika miamala inatofautiana na thamani ya hashi iliyohifadhiwa kwenye mnyororo. + + Hili ni aina ya hitilafu inayotarajiwa. + + ``` + ori@CryptoDocGuy:~/x/250911-zk-bank/server$ npm run start + + > server@1.0.0 start + > node --experimental-json-modules index.mjs + + Listening on port 3000 + Verification error: ContractFunctionExecutionError: The contract function "processTransaction" reverted with the following reason: + Wrong old state hash + + Contract Call: + address: 0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512 + function: processTransaction(bytes _proof, bytes32[] _publicInputs) + args: (0x0000000000000000000000000000000000000000000000042ab5d6d1986846cf00000000000000000000000000000000000000000000000b75c020998797da7800000000000000000000000000000000000000000000000 + ``` + +#### `server/index.mjs` {#server-index-mjs-2} + +Mabadiliko katika faili hili yanahusiana zaidi na kuunda uthibitisho halisi na kuiwasilisha kwenye mnyororo. + +```js +import { exec } from 'child_process' +import util from 'util' + +const execPromise = util.promisify(exec) +``` + +Tunahitaji kutumia [kifurushi cha Barretenberg](https://github.com/AztecProtocol/aztec-packages/tree/next/barretenberg) ili kuunda uthibitisho halisi wa kutuma kwenye mnyororo. Tunaweza kutumia kifurushi hiki ama kwa kuendesha kiolesura cha mstari wa amri (`bb`) au kwa kutumia [maktaba ya JavaScript, `bb.js`](https://www.npmjs.com/package/@aztec/bb.js). Maktaba ya JavaScript ni polepole zaidi kuliko kuendesha msimbo asilia, kwa hivyo tunatumia [`exec`](https://nodejs.org/api/child_process.html#child_processexeccommand-options-callback) hapa kutumia mstari wa amri. + +Kumbuka kwamba ukiamua kutumia `bb.js`, unahitaji kutumia toleo linaloendana na toleo la Noir unalotumia. Wakati wa kuandika, toleo la sasa la Noir (1.0.0-beta.11) linatumia toleo la `bb.js` 0.87. + +```js +const zkBankAddress = process.env.ZKBANK_ADDRESS || "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512" +``` + +Anwani hapa ni ile unayopata unapoanza na `anvil` safi na kufuata maelekezo hapo juu. + +```js +const walletClient = createWalletClient({ + chain: anvil, + transport: http(), + account: privateKeyToAccount("0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6") +}) +``` + +Ufunguo huu wa faragha ni mojawapo ya akaunti chaguo-msingi zilizofadhiliwa awali katika `anvil`. + +```js +const generateProof = async (witness, fileID) => { +``` + +Tengeneza uthibitisho kwa kutumia `bb` inayoweza kutekelezwa. + +```js + const fname = `witness-${fileID}.gz` + await fs.writeFile(fname, witness) +``` + +Andika shahidi kwenye faili. + +```js + await execPromise(`bb prove -b ./noir/target/zkBank.json -w ${fname} -o ${fileID} --oracle_hash keccak --output_format fields`) +``` + +Unda uthibitisho halisi. Hatua hii pia huunda faili na vigezo vya umma, lakini hatuhitaji hiyo. Tayari tulipata vigezo hivyo kutoka kwa `noir.execute`. + +```js + const proof = "0x" + JSON.parse(await fs.readFile(`./${fileID}/proof_fields.json`)).reduce((a,b) => a+b, "").replace(/0x/g, "") +``` + +Uthibitisho ni safu ya JSON ya thamani za `Sehemu`, kila moja ikiwakilishwa na thamani ya heksadesimali. Hata hivyo, tunahitaji kuituma katika muamala kama thamani moja ya `baiti`, ambayo Viem inaiwakilisha kwa kamba kubwa ya heksadesimali. Hapa tunabadilisha umbizo kwa kuunganisha thamani zote, kuondoa `0x` zote, na kisha kuongeza moja mwishoni. + +```js + await execPromise(`rm -r ${fname} ${fileID}`) + + return proof +} +``` + +Safisha na urudishe uthibitisho. + +```js +const processMessage = async (message, signature) => { + . + . + . + + const publicFields = noirResult.returnValue.map(x=>'0x' + x.slice(2).padStart(64, "0")) +``` + +Sehemu za umma zinahitaji kuwa safu ya thamani za baiti 32. Hata hivyo, kwa kuwa tulihitaji kugawanya hashi ya muamala kati ya thamani mbili za `Sehemu`, inaonekana kama thamani ya baiti 16. Hapa tunaongeza sifuri ili Viem ielewe kuwa ni baiti 32 kweli. + +```js + const proof = await generateProof(noirResult.witness, `${fromAddress}-${nonce}`) +``` + +Kila anwani hutumia kila nonce mara moja tu ili tuweze kutumia mchanganyiko wa `fromAddress` na `nonce` kama kitambulisho cha kipekee kwa faili ya shahidi na saraka ya tokeo. + +```js + try { + await zkBank.write.processTransaction([ + proof, publicFields]) + } catch (err) { + console.log(`Verification error: ${err}`) + throw Error("Can't verify the transaction onchain") + } + . + . + . +} +``` + +Tuma muamala kwenye mnyororo. + +#### `smart-contracts/src/ZkBank.sol` {#smart-contracts-src-zkbank-sol} + +Huu ni msimbo wa kwenye mnyororo unaopokea muamala. + +```solidity +// SPDX-License-Identifier: MIT + +pragma solidity >=0.8.21; + +import {HonkVerifier} from "./Verifier.sol"; + +contract ZkBank { + HonkVerifier immutable myVerifier; + bytes32 currentStateHash; + + constructor(address _verifierAddress, bytes32 _initialStateHash) { + currentStateHash = _initialStateHash; + myVerifier = HonkVerifier(_verifierAddress); + } +``` + +Msimbo wa kwenye mnyororo unahitaji kufuatilia vigezo viwili: kithibitishaji (mkataba tofauti ulioundwa na `nargo`) na hashi ya hali ya sasa. + +```solidity + event TransactionProcessed( + bytes32 indexed transactionHash, + bytes32 oldStateHash, + bytes32 newStateHash + ); +``` + +Kila hali inapobadilika, tunatoa tukio la `TransactionProcessed`. + +```solidity + function processTransaction( + bytes calldata _proof, + bytes32[] calldata _publicFields + ) public { +``` + +Kazi hii inachakata miamala. Inapata uthibitisho (kama `baiti`) na pembejeo za umma (kama safu ya `bytes32`), katika umbizo ambalo kithibitishaji kinahitaji (ili kupunguza uchakataji wa kwenye mnyororo na hivyo gharama za gesi). + +```solidity + require(_publicInputs[0] == currentStateHash, + "Wrong old state hash"); +``` + +Uthibitisho wa zero-knowledge unahitaji kuwa muamala unabadilika kutoka kwa hashi yetu ya sasa hadi mpya. + +```solidity + myVerifier.verify(_proof, _publicFields); +``` + +Ita mkataba wa kithibitishaji ili kuthibitisha uthibitisho wa zero-knowledge. Hatua hii inarudisha nyuma muamala ikiwa uthibitisho wa zero-knowledge si sahihi. + +```solidity + currentStateHash = _publicFields[1]; + + emit TransactionProcessed( + _publicFields[2]<<128 | _publicFields[3], + _publicFields[0], + _publicFields[1] + ); + } +} +``` + +Ikiwa kila kitu kiko sawa, sasisha hashi ya hali kwa thamani mpya na utoe tukio la `TransactionProcessed`. + +## Matumizi mabaya na sehemu ya kati {#abuses} + +Usalama wa habari una sifa tatu: + +- _Usiri_, watumiaji hawawezi kusoma habari wasizoruhusiwa kusoma. +- _Uadilifu_, habari haiwezi kubadilishwa isipokuwa na watumiaji walioidhinishwa kwa njia iliyoidhinishwa. +- _Upatikanaji_, watumiaji walioidhinishwa wanaweza kutumia mfumo. + +Kwenye mfumo huu, uadilifu hutolewa kupitia ithibati za zero-knowledge. Upatikanaji ni vigumu zaidi kuhakikisha, na usiri hauwezekani, kwa sababu benki inapaswa kujua salio la kila akaunti na miamala yote. Hakuna njia ya kuzuia chombo ambacho kina habari kushiriki habari hiyo. + +Inaweza kuwezekana kuunda benki ya siri kweli kwa kutumia [anwani za siri](https://vitalik.eth.limo/general/2023/01/20/stealth.html), lakini hilo liko nje ya upeo wa makala haya. + +### Taarifa za uongo {#false-info} + +Njia moja ambayo seva inaweza kukiuka uadilifu ni kutoa habari za uongo wakati [data inapoombwa](https://github.com/qbzzt/250911-zk-bank/blob/03-smart-contracts/server/index.mjs#L278-L291). + +Ili kutatua hili, tunaweza kuandika programu ya pili ya Noir inayopokea akaunti kama pembejeo la faragha na anwani ambayo habari inaombwa kama pembejeo la umma. Tokeo ni salio na nonce ya anwani hiyo, na hashi ya akaunti. + +Bila shaka, uthibitisho huu hauwezi kuthibitishwa kwenye mnyororo, kwa sababu hatutaki kuchapisha nonces na salio kwenye mnyororo. Hata hivyo, inaweza kuthibitishwa na msimbo wa mteja unaoendeshwa kwenye kivinjari. + +### Miamala ya kulazimishwa {#forced-txns} + +Utaratibu wa kawaida wa kuhakikisha upatikanaji na kuzuia udhibiti kwenye L2 ni [miamala ya kulazimishwa](https://docs.optimism.io/stack/transactions/forced-transaction). Lakini miamala ya kulazimishwa haichanganyiki na ithibati za zero-knowledge. Seva ndicho chombo pekee kinachoweza kuthibitisha miamala. + +Tunaweza kurekebisha `smart-contracts/src/ZkBank.sol` ili kukubali miamala ya kulazimishwa na kuzuia seva kubadilisha hali hadi itakapochakatwa. Hata hivyo, hii inatuweka wazi kwa shambulio rahisi la kunyimwa huduma. Je, ikiwa muamala wa kulazimishwa si halali na kwa hivyo hauwezekani kuchakatwa? + +Suluhisho ni kuwa na uthibitisho wa zero-knowledge kwamba muamala wa kulazimishwa si halali. Hii inatoa seva chaguzi tatu: + +- Chakata muamala wa kulazimishwa, ukitoa uthibitisho wa zero-knowledge kwamba umeshachakatwa na hashi mpya ya hali. +- Kataa muamala wa kulazimishwa, na utoe uthibitisho wa zero-knowledge kwa mkataba kwamba muamala si halali (anwani isiyojulikana, nonce mbaya, au salio lisilotosha). +- Puuza muamala wa kulazimishwa. Hakuna njia ya kulazimisha seva kuchakata muamala, lakini inamaanisha mfumo mzima haupatikani. + +#### Dhamana za upatikanaji {#avail-bonds} + +Katika utekelezaji wa maisha halisi, labda kungekuwa na aina fulani ya motisha ya faida kwa kuweka seva ikiendeshwa. Tunaweza kuimarisha motisha huu kwa kuwa na seva inayoweka dhamana ya upatikanaji ambayo mtu yeyote anaweza kuichoma ikiwa muamala wa kulazimishwa hauchakatwi ndani ya kipindi fulani. + +### Msimbo mbaya wa Noir {#bad-noir-code} + +Kwa kawaida, ili kuwafanya watu waamini mkataba-erevu tunapakia msimbo chanzo kwenye [kichunguzi cha bloku](https://eth.blockscout.com/address/0x7D16d2c4e96BCFC8f815E15b771aC847EcbDB48b?tab=contract). Hata hivyo, katika kesi ya ithibati za zero-knowledge, hiyo haitoshi. + +`Verifier.sol` ina ufunguo wa uthibitishaji, ambao ni kazi ya programu ya Noir. Hata hivyo, ufunguo huo hautuambii programu ya Noir ilikuwa nini. Ili kuwa na suluhisho la kuaminika, unahitaji kupakia programu ya Noir (na toleo lililoiumba). Vinginevyo, ithibati za zero-knowledge zinaweza kuakisi programu tofauti, moja yenye mlango wa nyuma. + +Hadi wachunguzi wa bloku waanze kuturuhusu kupakia na kuthibitisha programu za Noir, unapaswa kufanya hivyo mwenyewe (ikiwezekana kwa [IPFS](/developers/tutorials/ipfs-decentralized-ui/)). Kisha watumiaji wa hali ya juu wataweza kupakua msimbo chanzo, kuukusanya wenyewe, kuunda `Verifier.sol`, na kuthibitisha kuwa inafanana na ile iliyo kwenye mnyororo. + +## Hitimisho {#conclusion} + +Programu za aina ya Njozi zinahitaji sehemu ya kati kama hifadhi ya habari. Hii inafungua udhaifu unaowezekana lakini, kwa kurudi, inaturuhusu kuhifadhi faragha kwa njia zisizopatikana kwenye mnyororo wa bloku wenyewe. Kwa ithibati za zero-knowledge tunaweza kuhakikisha uadilifu na ikiwezekana kuifanya iwe na faida kiuchumi kwa yeyote anayeendesha sehemu ya kati ili kudumisha upatikanaji. + +[Tazama hapa kwa kazi zangu zaidi](https://cryptodocguy.pro/). + +## Shukrani {#acknowledgements} + +- Josh Crites alisoma rasimu ya makala haya na kunisaidia na suala gumu la Noir. + +Makosa yoyote yaliyobaki ni jukumu langu. diff --git a/public/content/translations/sw/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/sw/developers/tutorials/calling-a-smart-contract-from-javascript/index.md new file mode 100644 index 00000000000..55f5744a5a5 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/calling-a-smart-contract-from-javascript/index.md @@ -0,0 +1,131 @@ +--- +title: Kuita mkataba-erevu kutoka kwa JavaScript +description: Jinsi ya kuita utendakazi wa mkataba-erevu kutoka kwa JavaScript kwa kutumia mfano wa tokeni ya Dai +author: jdourlens +tags: [ "miamala", "frontend", "JavaScript", "web3.js" ] +skill: beginner +lang: sw +published: 2020-04-19 +source: EthereumDev +sourceUrl: https://ethereumdev.io/calling-a-smart-contract-from-javascript/ +address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE" +--- + +Katika mafunzo haya tutaona jinsi ya kuita utendakazi wa [mkataba-erevu](/developers/docs/smart-contracts/) kutoka kwa JavaScript. Kwanza ni kusoma hali ya mkataba-erevu (k.m., salio la mwenye ERC20), kisha tutarekebisha hali ya mnyororo wa bloku kwa kufanya uhamisho wa tokeni. Unapaswa kuwa tayari unafahamu kuhusu [kuweka mazingira ya JS ili kuingiliana na mnyororo wa bloku](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/). + +Kwa mfano huu tutacheza na tokeni ya DAI, kwa madhumuni ya majaribio tutagawa mnyororo wa bloku kwa kutumia ganache-cli na kufungua anwani ambayo tayari ina DAI nyingi: + +```bash +ganache-cli -f https://mainnet.infura.io/v3/[UFUNGUO WAKO WA INFURA] -d -i 66 1 --unlock 0x4d10ae710Bd8D1C31bd7465c8CBC3add6F279E81 +``` + +Ili kuingiliana na mkataba-erevu tutahitaji anwani yake na ABI: + +```js +const ERC20TransferABI = [ + { + constant: false, + inputs: [ + { + name: "_to", + type: "address", + }, + { + name: "_value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [ + { + name: "_owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + name: "balance", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, +] + +const DAI_ADDRESS = "0x6b175474e89094c44da98b954eedeac495271d0f" +``` + +Kwa mradi huu, tuliondoa ABI kamili ya ERC20 ili kuweka tu utendakazi wa `balanceOf` na `transfer` lakini unaweza kupata [ABI kamili ya ERC20 hapa](https://ethereumdev.io/abi-for-erc20-contract-on-ethereum/). + +Kisha tunahitaji kuanzisha mkataba wetu-erevu: + +```js +const web3 = new Web3("http://localhost:8545") + +const daiToken = new web3.eth.Contract(ERC20TransferABI, DAI_ADDRESS) +``` + +Pia tutaweka anwani mbili: + +- anayepokea uhamisho na +- ambayo tayari tumeifungua ambayo itatuma: + +```js +const senderAddress = "0x4d10ae710Bd8D1C31bd7465c8CBC3add6F279E81" +const receiverAddress = "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE" +``` + +Katika sehemu inayofuata tutaita utendakazi wa `balanceOf` ili kupata kiasi cha sasa cha tokeni ambazo anwani zote mbili zinashikilia. + +## Wito: Kusoma thamani kutoka kwa mkataba-erevu {#call-reading-value-from-a-smart-contract} + +Mfano wa kwanza utaita mbinu ya "kudumu" na kutekeleza mbinu yake ya mkataba-erevu katika EVM bila kutuma muamala wowote. Kwa hili tutasoma salio la ERC20 la anwani. [Soma makala yetu kuhusu tokeni za ERC20](/developers/tutorials/understand-the-erc-20-token-smart-contract/). + +Unaweza kufikia mbinu za mkataba-erevu ulioanzishwa ambao umetoa ABI yake kama ifuatavyo: `yourContract.methods.methodname`. Kwa kutumia utendakazi wa `call` utapokea matokeo ya kutekeleza utendakazi. + +```js +daiToken.methods.balanceOf(senderAddress).call(function (err, res) { + if (err) { + console.log("Kosa limetokea", err) + return + } + console.log("Salio ni: ", res) +}) +``` + +Kumbuka kuwa DAI ERC20 ina desimali 18, kumaanisha unahitaji kuondoa sufuri 18 ili kupata kiasi sahihi. `uint256` hurejeshwa kama mifuatano kwa kuwa JavaScript haishughulikii thamani kubwa za nambari. Ikiwa huna uhakika [jinsi ya kushughulikia nambari kubwa katika JS angalia mafunzo yetu kuhusu bignumber.js](https://ethereumdev.io/how-to-deal-with-big-numbers-in-javascript/). + +## Tuma: Kutuma muamala kwa utendakazi wa mkataba-erevu {#send-sending-a-transaction-to-a-smart-contract-function} + +Kwa mfano wa pili tutaita utendakazi wa uhamisho wa mkataba-erevu wa DAI ili kutuma DAI 10 kwa anwani yetu ya pili. Utendakazi wa uhamisho unakubali vigezo viwili: anwani ya mpokeaji na kiasi cha tokeni za kuhamisha: + +```js +daiToken.methods + .transfer(receiverAddress, "100000000000000000000") + .send({ from: senderAddress }, function (err, res) { + if (err) { + console.log("Kosa limetokea", err) + return + } + console.log("Hashi ya muamala: " + res) + }) +``` + +Utendakazi wa `call` hurejesha hashi ya muamala ambayo itachimbwa kwenye mnyororo wa bloku. Kwenye Ethereum, hashi za miamala zinatabirika - hivyo ndivyo tunavyoweza kupata hashi ya muamala kabla haujatekelezwa ([jifunze jinsi hashi zinavyokokotolewa hapa](https://ethereum.stackexchange.com/questions/45648/how-to-calculate-the-assigned-txhash-of-a-transaction)). + +Kwa kuwa utendakazi huwasilisha tu muamala kwenye mnyororo wa bloku, hatuwezi kuona matokeo hadi tujue ni lini utachimbwa na kujumuishwa kwenye mnyororo wa bloku. Katika mafunzo yanayofuata tutajifunza [jinsi ya kusubiri muamala utekelezwe kwenye mnyororo wa bloku kwa kujua hashi yake](https://ethereumdev.io/waiting-for-a-transaction-to-be-mined-on-ethereum-with-js/). diff --git a/public/content/translations/sw/developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md b/public/content/translations/sw/developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md new file mode 100644 index 00000000000..7cd499db054 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md @@ -0,0 +1,585 @@ +--- +title: "Kutengeneza kiolesura cha mtumiaji kwa ajili ya mkataba wako" +description: Kwa kutumia vipengele vya kisasa kama vile TypeScript, React, Vite, na Wagmi, tutapitia kiolesura cha kisasa, lakini kidogo, cha mtumiaji na kujifunza jinsi ya kuunganisha mkoba kwenye kiolesura cha mtumiaji, kupiga simu mkataba-erevu ili kusoma habari, kutuma muamala kwenye mkataba-erevu, na kufuatilia matukio kutoka kwenye mkataba-erevu ili kubaini mabadiliko. +author: Ori Pomerantz +tags: [ "TypeScript", "React", "Vite", "Wagmi", "frontend" ] +skill: beginner +published: 2023-11-01 +lang: sw +sidebarDepth: 3 +--- + +Umepata kipengele tunachohitaji katika mfumo ikolojia wa Ethereum. Uliandika mikataba-erevu ili kuitekeleza, na labda hata msimbo fulani unaohusiana unaoendeshwa nje ya mnyororo. Hii ni nzuri! Kwa bahati mbaya, bila kiolesura cha mtumiaji hutapata watumiaji wowote, na mara ya mwisho ulipoandika tovuti watu walitumia modemu za kupiga simu na JavaScript ilikuwa mpya. + +Makala hii ni kwa ajili yako. Nadhani unajua programu, na labda kidogo ya JavaScript na HTML, lakini ujuzi wako wa kiolesura cha mtumiaji umeshuka na umepitwa na wakati. Kwa pamoja tutapitia programu rahisi ya kisasa ili uone jinsi inavyofanywa siku hizi. + +## Kwa nini hii ni muhimu {#why-important} + +Kinadharia, unaweza tu kuwa na watu wanaotumia [Etherscan](https://holesky.etherscan.io/address/0x432d810484add7454ddb3b5311f0ac2e95cecea8#writeContract) au [Blockscout](https://eth-holesky.blockscout.com/address/0x432d810484AdD7454ddb3b5311f0Ac2E95CeceA8?tab=write_contract) kuingiliana na mikataba yako. Hiyo itakuwa nzuri kwa WanaEthereum wenye uzoefu. Lakini tunajaribu kuwahudumia [watu wengine bilioni moja](https://blog.ethereum.org/2021/05/07/ethereum-for-the-next-billion). Hili halitatokea bila uzoefu mzuri wa mtumiaji, na kiolesura rafiki cha mtumiaji ni sehemu kubwa ya hiyo. + +## Programu ya Greeter {#greeter-app} + +Kuna nadharia nyingi nyuma ya jinsi UI ya kisasa inavyofanya kazi, na [tovuti nyingi nzuri](https://react.dev/learn/thinking-in-react) [zinazoelezea](https://wagmi.sh/core/getting-started). Badala ya kurudia kazi nzuri iliyofanywa na tovuti hizo, nitachukulia unapendelea kujifunza kwa kufanya na kuanza na programu unayoweza kucheza nayo. Bado unahitaji nadharia ili kufanikisha mambo, na tutaifikia - tutapitia faili chanzo kwa faili chanzo, na kujadili mambo tunapoyafikia. + +### Usakinishaji {#installation} + +1. Ikibidi, ongeza [blockchain ya Holesky](https://chainlist.org/?search=holesky&testnets=true) kwenye mkoba wako na [pata ETH ya majaribio](https://www.holeskyfaucet.io/). + +2. Fanya clone ya hazina ya github. + + ```sh + git clone https://github.com/qbzzt/20230801-modern-ui.git + ``` + +3. Sakinisha vifurushi vinavyohitajika. + + ```sh + cd 20230801-modern-ui + pnpm install + ``` + +4. Anzisha programu. + + ```sh + pnpm dev + ``` + +5. Vinjari hadi kwenye URL inayoonyeshwa na programu. Katika hali nyingi, hiyo ni [http://localhost:5173/](http://localhost:5173/). + +6. Unaweza kuona msimbo chanzo wa mkataba, toleo lililobadilishwa kidogo la Greeter ya Hardhat, [kwenye kichunguzi cha blockchain](https://eth-holesky.blockscout.com/address/0x432d810484AdD7454ddb3b5311f0Ac2E95CeceA8?tab=contract). + +### Mapitio ya faili {#file-walk-through} + +#### `index.html` {#index-html} + +Faili hii ni kiolezo cha kawaida cha HTML isipokuwa kwa mstari huu, unaoingiza faili ya hati. + +```html + +``` + +#### `src/main.tsx` {#main-tsx} + +Kiendelezi cha faili kinatuambia kuwa faili hii ni [kipengele cha React](https://www.w3schools.com/react/react_components.asp) kilichoandikwa kwa [TypeScript](https://www.typescriptlang.org/), kiendelezi cha JavaScript kinachosaidia [ukaguzi wa aina](https://en.wikipedia.org/wiki/Type_system#Type_checking). TypeScript inakusanywa kuwa JavaScript, kwa hivyo tunaweza kuitumia kwa utekelezaji upande wa mteja. + +```tsx +import '@rainbow-me/rainbowkit/styles.css' +import { RainbowKitProvider } from '@rainbow-me/rainbowkit' +import * as React from 'react' +import * as ReactDOM from 'react-dom/client' +import { WagmiConfig } from 'wagmi' +import { chains, config } from './wagmi' +``` + +Ingiza msimbo wa maktaba tunaouhitaji. + +```tsx +import { App } from './App' +``` + +Ingiza kipengele cha React kinachotekeleza programu (tazama hapa chini). + +```tsx +ReactDOM.createRoot(document.getElementById('root')!).render( +``` + +Tengeneza kipengele cha msingi cha React. Kigezo cha `render` ni [JSX](https://www.w3schools.com/react/react_jsx.asp), lugha ya kiendelezi inayotumia HTML na JavaScript/TypeScript. Alama ya mshangao hapa inakiambia kipengele cha TypeScript: "hujui kama `document.getElementById('root')` itakuwa kigezo halali kwa `ReactDOM.createRoot`, lakini usijali - mimi ni msanidi programu na ninakuambia itakuwa hivyo". + +```tsx + +``` + +Programu inaingia ndani ya [kipengele cha `React.StrictMode`](https://react.dev/reference/react/StrictMode). Kipengele hiki kinaambia maktaba ya React kuingiza ukaguzi wa ziada wa utatuzi, ambao ni muhimu wakati wa usanidi. + +```tsx + +``` + +Programu pia iko ndani ya [kipengele cha `WagmiConfig`](https://wagmi.sh/react/api/WagmiProvider). [Maktaba ya wagmi (we are going to make it)](https://wagmi.sh/) inaunganisha ufafanuzi wa UI wa React na [maktaba ya viem](https://viem.sh/) kwa ajili ya kuandika mfumo uliotawanywa wa Ethereum. + +```tsx + +``` + +Na mwishowe, [kipengele cha `RainbowKitProvider`](https://www.rainbowkit.com/). Kipengele hiki hushughulikia kuingia na mawasiliano kati ya mkoba na programu. + +```tsx + +``` + +Sasa tunaweza kuwa na kipengele cha programu, ambacho kinatengeneza UI. Ile `/>` mwishoni mwa kipengele inaiambia React kwamba kipengele hiki hakina ufafanuzi wowote ndani yake, kulingana na kiwango cha XML. + +```tsx + + + , +) +``` + +Bila shaka, tunapaswa kufunga vipengele vingine. + +#### `src/App.tsx` {#app-tsx} + +```tsx +import { ConnectButton } from '@rainbow-me/rainbowkit' +import { useAccount } from 'wagmi' +import { Greeter } from './components/Greeter' + +export function App() { +``` + +Hii ndiyo njia ya kawaida ya kuunda kipengele cha React - fafanua chaguo la kukokotoa ambalo huitwa kila wakati linapohitaji kutolewa. Chaguo hili la kukokotoa kwa kawaida huwa na msimbo fulani wa TypeScript au JavaScript juu, ikifuatiwa na taarifa ya `return` inayorejesha msimbo wa JSX. + +```tsx + const { isConnected } = useAccount() +``` + +Hapa tunatumia [`useAccount`](https://wagmi.sh/react/api/hooks/useAccount) kuangalia kama tumeunganishwa kwenye blockchain kupitia mkoba au la. + +Kwa kimkataba, katika chaguo za kukokotoa za React zinazoitwa `use...` ni [hooks](https://www.w3schools.com/react/react_hooks.asp) zinazorejesha aina fulani ya data. Unapotumia ndoano kama hizo, si tu kwamba kipengele chako kinapata data, lakini data hiyo inapobadilika kipengele hutolewa upya na maelezo yaliyosasishwa. + +```tsx + return ( + <> +``` + +JSX ya kipengele cha React _lazima_ irudishe kipengele kimoja. Tunapokuwa na vipengele vingi na hatuna chochote kinachomaliza "kawaida" tunatumia kipengele tupu (`<> ... `) ili kuzifanya kuwa sehemu moja. + +```tsx +

Greeter

+ +``` + +Tunapata [kipengele cha `ConnectButton`](https://www.rainbowkit.com/docs/connect-button) kutoka kwa RainbowKit. Wakati hatujaunganishwa, inatupa kitufe cha `Connect Wallet` ambacho hufungua modali inayoelezea pochi na kukuruhusu kuchagua ni ipi unayotumia. Tunapounganishwa, inaonyesha blockchain tunayotumia, anwani ya akaunti yetu, na salio letu la ETH. Tunaweza kutumia maonyesho haya kubadili mtandao au kukata muunganisho. + +```tsx + {isConnected && ( +``` + +Tunapohitaji kuingiza JavaScript halisi (au TypeScript ambayo itakusanywa kwa JavaScript) kwenye JSX, tunatumia mabano (`{}`). + +Sintaksia `a && b` ni fupi kwa [`a ? b : a`](https://www.w3schools.com/react/react_es6_ternary.asp). Yaani, ikiwa `a` ni kweli inatathmini kuwa `b` na vinginevyo inatathmini `a` (ambayo inaweza kuwa `false`, `0`, n.k). Hii ni njia rahisi ya kuiambia React kwamba kipengele kinapaswa kuonyeshwa tu ikiwa sharti fulani limetimizwa. + +Katika hali hii, tunataka tu kumwonyesha mtumiaji `Greeter` ikiwa mtumiaji ameunganishwa kwenye blockchain. + +```tsx + + )} + + ) +} +``` + +#### `src/components/Greeter.tsx` {#greeter-tsx} + +Faili hii ina utendakazi mwingi wa UI. Inajumuisha ufafanuzi ambao kwa kawaida ungekuwa katika faili nyingi, lakini kwa kuwa hii ni mafunzo, programu imeboreshwa ili iwe rahisi kuelewa kwa mara ya kwanza, badala ya utendakazi au urahisi wa matengenezo. + +```tsx +import { useState, ChangeEventHandler } from 'react' +import { useNetwork, + useReadContract, + usePrepareContractWrite, + useContractWrite, + useContractEvent + } from 'wagmi' +``` + +Tunatumia vitendaji hivi vya maktaba. Tena, zimeelezwa hapa chini zinapotumiwa. + +```tsx +import { AddressType } from 'abitype' +``` + +[Maktaba ya `abitype`](https://abitype.dev/) inatupa ufafanuzi wa TypeScript kwa aina mbalimbali za data za Ethereum, kama vile [`AddressType`](https://abitype.dev/config#addresstype). + +```tsx +let greeterABI = [ + . + . + . +] as const // greeterABI +``` + +ABI kwa mkataba wa `Greeter`. +Ikiwa unasanidi mikataba na UI kwa wakati mmoja, kwa kawaida unaweza kuziweka katika hazina moja na kutumia ABI iliyotolewa na mkusanyaji wa Solidity kama faili katika programu yako. Hata hivyo, hii si lazima hapa kwa sababu mkataba tayari umesanidiwa na hautabadilika. + +```tsx +type AddressPerBlockchainType = { + [key: number]: AddressType +} +``` + +TypeScript imeandikwa kwa nguvu. Tunatumia ufafanuzi huu kubainisha anwani ambamo mkataba wa `Greeter` umetumwa kwenye minyororo tofauti. Ufunguo ni nambari (chainId), na thamani ni `AddressType` (anwani). + +```tsx +const contractAddrs: AddressPerBlockchainType = { + // Holesky + 17000: '0x432d810484AdD7454ddb3b5311f0Ac2E95CeceA8', + + // Sepolia + 11155111: '0x7143d5c190F048C8d19fe325b748b081903E3BF0' +} +``` + +Anwani ya mkataba kwenye mitandao miwili inayotumika: [Holesky](https://eth-holesky.blockscout.com/address/0x432d810484AdD7454ddb3b5311f0Ac2E95CeceA8?tab=contact_code) na [Sepolia](https://eth-sepolia.blockscout.com/address/0x7143d5c190F048C8d19fe325b748b081903E3BF0?tab=contact_code). + +Kumbuka: Kwa kweli kuna ufafanuzi wa tatu, kwa Redstone Holesky, utaelezwa hapa chini. + +```tsx +type ShowObjectAttrsType = { + name: string, + object: any +} +``` + +Aina hii hutumiwa kama kigezo kwa sehemu ya `ShowObject` (iliyoelezwa baadaye). Inajumuisha jina la kitu na thamani yake, ambayo huonyeshwa kwa madhumuni ya utatuzi. + +```tsx +type ShowGreetingAttrsType = { + greeting: string | undefined +} +``` + +Wakati wowote tunaweza kujua salamu ni nini (kwa sababu tuliisoma kutoka kwa blockchain) au hatujui (kwa sababu bado hatujaipokea). Kwa hivyo ni muhimu kuwa na aina ambayo inaweza kuwa mfuatano au chochote. + +##### Kipengele cha `Greeter` {#greeter-component} + +```tsx +const Greeter = () => { +``` + +Hatimaye, tunapata kufafanua kipengele. + +```tsx + const { chain } = useNetwork() +``` + +Taarifa kuhusu msururu tunaotumia, kwa hisani ya [wagmi](https://wagmi.sh/react/hooks/useNetwork). +Kwa sababu hii ni ndoano (`use...`), kila wakati habari hii inapobadilika sehemu hiyo huchorwa upya. + +```tsx + const greeterAddr = chain && contractAddrs[chain.id] +``` + +Anwani ya mkataba wa Greeter, ambayo hutofautiana kulingana na mnyororo (na ambayo ni `undefined` ikiwa hatuna maelezo ya mnyororo au tuko kwenye mnyororo bila mkataba huo). + +```tsx + const readResults = useReadContract({ + address: greeterAddr, + abi: greeterABI, + functionName: "greet" , // No arguments + watch: true + }) +``` + +[Ndoano ya `useReadContract`](https://wagmi.sh/react/api/hooks/useReadContract) inasoma habari kutoka kwa mkataba. Unaweza kuona hasa ni taarifa gani inarejesha panua `readResults` katika UI. Katika kesi hii tunataka iendelee kutafuta ili tujulishwe salamu itakapobadilika. + +**Kumbuka:** Tunaweza kusikiliza [matukio ya `setGreeting`](https://eth-holesky.blockscout.com/address/0x432d810484AdD7454ddb3b5311f0Ac2E95CeceA8?tab=logs) ili kujua salamu inapobadilika na kusasisha kwa njia hiyo. Hata hivyo, ingawa inaweza kuwa na ufanisi zaidi, haitatumika katika hali zote. Mtumiaji anapobadilisha hadi msururu tofauti, salamu pia hubadilika, lakini mabadiliko hayo hayaambatani na tukio. Tunaweza kuwa na sehemu moja ya msimbo inayosikiliza matukio na nyingine ya kutambua mabadiliko ya msururu, lakini hilo lingekuwa gumu zaidi kuliko kuweka tu [kigezo cha `watch`](https://wagmi.sh/react/api/hooks/useReadContract#watch-optional). + +```tsx + const [ newGreeting, setNewGreeting ] = useState("") +``` + +[Ndoano ya `useState` ya React](https://www.w3schools.com/react/react_usestate.asp) inaturuhusu kubainisha tofauti ya hali, ambayo thamani yake hudumu kutoka uwasilishaji mmoja wa sehemu hadi nyingine. Thamani ya awali ni kigezo, katika kesi hii mfuatano tupu. + +Ndoano ya `useState` inarudisha orodha yenye thamani mbili: + +1. Thamani ya sasa ya tofauti ya hali. +2. Chaguo la kukokotoa la kurekebisha tofauti ya hali inapohitajika. Kwa kuwa hii ni ndoano, kila wakati inapoitwa sehemu hutolewa tena. + +Katika kesi hii, tunatumia tofauti ya hali kwa salamu mpya ambayo mtumiaji anataka kuweka. + +```tsx + const greetingChange : ChangeEventHandler = (evt) => + setNewGreeting(evt.target.value) +``` + +Hiki ndicho kishughulikia tukio wakati sehemu mpya ya kuingiza salamu inapobadilika. Aina, [`ChangeEventHandler`](https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/forms_and_events/), inabainisha kuwa huyu ni mshughulikiaji wa mabadiliko ya thamani ya kipengele cha ingizo cha HTML. Sehemu ya `` inatumika kwa sababu hii ni [aina ya jumla](https://www.w3schools.com/typescript/typescript_basic_generics.php). + +```tsx + const preparedTx = usePrepareContractWrite({ + address: greeterAddr, + abi: greeterABI, + functionName: 'setGreeting', + args: [ newGreeting ] + }) + const workingTx = useContractWrite(preparedTx.config) +``` + +Huu ndio mchakato wa kuwasilisha muamala wa blockchain kutoka kwa mtazamo wa mteja: + +1. Tuma muamala kwa nodi katika blockchain kwa kutumia [`eth_estimateGas`](https://docs.alchemy.com/reference/eth-estimategas). +2. Subiri jibu kutoka kwa nodi. +3. Jibu linapopokewa, mwombe mtumiaji asaini muamala kupitia mkoba. Hatua hii _lazima_ itokee baada ya jibu la nodi kupokelewa kwa sababu mtumiaji anaonyeshwa gharama ya gesi ya muamala kabla ya kuusaini. +4. Subiri mtumiaji akubali. +5. Tuma muamala tena, wakati huu ukitumia [`eth_sendRawTransaction`](https://docs.alchemy.com/reference/eth-sendrawtransaction). + +Hatua ya 2 inaweza kuchukua muda unaoonekana, ambapo watumiaji wangeshangaa kama amri yao ilipokelewa na kiolesura cha mtumiaji na kwa nini hawaombwi kutia saini muamala tayari. Hiyo inafanya uzoefu mbaya wa mtumiaji (UX). + +Suluhisho ni kutumia [ndoano za kuandaa](https://wagmi.sh/react/prepare-hooks). Kila wakati kigezo kinapobadilika, tuma ombi la `eth_estimateGas` kwa nodi mara moja. Kisha, mtumiaji anapotaka kutuma muamala (katika kesi hii kwa kubonyeza **Sasisha salamu**), gharama ya gesi inajulikana na mtumiaji anaweza kuona ukurasa wa mkoba mara moja. + +```tsx + return ( +``` + +Sasa hatimaye tunaweza kuunda HTML halisi ya kurudisha. + +```tsx + <> +

Greeter

+ { + !readResults.isError && !readResults.isLoading && + + } +
+``` + +Unda sehemu ya `ShowGreeting` (iliyoelezwa hapa chini), lakini tu ikiwa salamu ilisomwa kwa mafanikio kutoka kwa blockchain. + +```tsx + +``` + +Hiki ndicho sehemu ya maandishi ya kuingiza ambapo mtumiaji anaweza kuweka salamu mpya. Kila wakati mtumiaji anapobonyeza kitufe, tunaita `greetingChange` ambayo huita `setNewGreeting`. Kwa vile `setNewGreeting` inatoka kwa `useState` ndoano, inasababisha `Greeter` sehemu kutolewa tena. Hii inamaanisha kuwa: + +- Tunahitaji kubainisha `value` ili kuweka thamani ya salamu mpya, kwa sababu vinginevyo ingerejea kuwa chaguo-msingi, mfuatano tupu. +- `usePrepareContractWrite` inaitwa kila wakati `newGreeting` inapobadilika, ambayo ina maana kwamba daima itakuwa na `newGreeting` ya hivi karibuni zaidi katika muamala ulioandaliwa. + +```tsx + +``` + +Ikiwa hakuna `workingTx.write` basi bado tunasubiri maelezo muhimu kwa kutuma sasisho la salamu, kwa hivyo kitufe kimezimwa. Ikiwa kuna thamani ya `workingTx.write` basi hiyo ndiyo kazi ya kuita ili kutuma muamala. + +```tsx +
+ + + + + ) +} +``` + +Mwishowe, kukusaidia kuona tunachofanya, onyesha vitu vitatu tunavyotumia: + +- `readResults` +- `preparedTx` +- `workingTx` + +##### Kipengele cha `ShowGreeting` {#showgreeting-component} + +Sehemu hii inaonyesha + +```tsx +const ShowGreeting = (attrs : ShowGreetingAttrsType) => { +``` + +Chaguo la kukokotoa la sehemu hupokea kigezo chenye sifa zote za sehemu. + +```tsx + return {attrs.greeting} +} +``` + +##### Kipengele cha `ShowObject` {#showobject-component} + +Kwa madhumuni ya habari, tunatumia `ShowObject` sehemu kuonyesha vitu muhimu (`readResults` kwa kusoma salamu na `preparedTx` na `workingTx` kwa miamala tunayounda). + +```tsx +const ShowObject = (attrs: ShowObjectAttrsType ) => { + const keys = Object.keys(attrs.object) + const funs = keys.filter(k => typeof attrs.object[k] == "function") + return <> +
+``` + +Hatutaki kubandika UI na habari zote, kwa hivyo ili iwezekane kuzitazama au kuzifunga, tunatumia lebo ya [`details`](https://www.w3schools.com/tags/tag_details.asp). + +```tsx + {attrs.name} +
+        {JSON.stringify(attrs.object, null, 2)}
+```
+
+Sehemu nyingi huonyeshwa kwa kutumia [`JSON.stringify`](https://www.w3schools.com/js/js_json_stringify.asp).
+
+```tsx
+      
+ { funs.length > 0 && + <> + Functions: +
    +``` + +Isipokuwa ni vitendaji, ambavyo si sehemu ya [kiwango cha JSON](https://www.json.org/json-en.html), kwa hivyo lazima zionyeshwe kando. + +```tsx + {funs.map((f, i) => +``` + +Ndani ya JSX, msimbo ndani ya `{` mabano ya curly `}` hutafsiriwa kama JavaScript. Kisha, msimbo ndani ya `(` mabano ya kawaida `)`, hutafsiriwa tena kama JSX. + +```tsx + (
  • {f}
  • ) + )} +``` + +React inahitaji lebo katika [DOM Tree](https://www.w3schools.com/js/js_htmldom.asp) ili kuwa na vitambulisho tofauti. Hii inamaanisha kuwa watoto wa lebo moja (katika kesi hii, [orodha isiyopangwa](https://www.w3schools.com/tags/tag_ul.asp)), wanahitaji sifa tofauti za `key`. + +```tsx +
+ + } +
+ +} +``` + +Maliza lebo mbalimbali za HTML. + +##### Uuzaji wa mwisho {#the-final-export} + +```tsx +export { Greeter } +``` + +Kipengele cha `Greeter` ndicho tunachohitaji kuhamisha kwa ajili ya programu. + +#### `src/wagmi.ts` {#wagmi-ts} + +Hatimaye, ufafanuzi mbalimbali unaohusiana na WAGMI uko katika `src/wagmi.ts`. Sitaeleza kila kitu hapa, kwa sababu sehemu kubwa yake ni kiolezo ambacho huenda huhitaji kubadilisha. + +Msimbo hapa si sawa kabisa na [kwenye github](https://github.com/qbzzt/20230801-modern-ui/blob/main/src/wagmi.ts) kwa sababu baadaye katika makala tunaongeza mnyororo mwingine ([Redstone Holesky](https://redstone.xyz/docs/network-info)). + +```ts +import { getDefaultWallets } from '@rainbow-me/rainbowkit' +import { configureChains, createConfig } from 'wagmi' +import { holesky, sepolia } from 'wagmi/chains' +``` + +Ingiza blockchains ambazo programu inasaidia. Unaweza kuona orodha ya minyororo inayotumika [kwenye github ya viem](https://github.com/wagmi-dev/viem/tree/main/src/chains/definitions). + +```ts +import { publicProvider } from 'wagmi/providers/public' + +const walletConnectProjectId = 'c96e690bb92b6311e8e9b2a6a22df575' +``` + +Ili uweze kutumia [WalletConnect](https://walletconnect.com/) unahitaji kitambulisho cha mradi kwa ajili ya programu yako. Unaweza kuipata [kwenye cloud.walletconnect.com](https://cloud.walletconnect.com/sign-in). + +```ts +const { chains, publicClient, webSocketPublicClient } = configureChains( + [ holesky, sepolia ], + [ + publicProvider(), + ], +) + +const { connectors } = getDefaultWallets({ + appName: 'My wagmi + RainbowKit App', + chains, + projectId: walletConnectProjectId, +}) + +export const config = createConfig({ + autoConnect: true, + connectors, + publicClient, + webSocketPublicClient, +}) + +export { chains } +``` + +### Kuongeza blockchain nyingine {#add-blockchain} + +Siku hizi kuna suluhisho nyingi za [uongezaji wa L2](/layer-2/), na unaweza kutaka kusaidia baadhi ambazo viem bado haizisaidii. Ili kuifanya, unarekebisha `src/wagmi.ts`. Maagizo haya yanaelezea jinsi ya kuongeza [Redstone Holesky](https://redstone.xyz/docs/network-info). + +1. Ingiza aina ya `defineChain` kutoka kwa viem. + + ```ts + import { defineChain } from 'viem' + ``` + +2. Ongeza ufafanuzi wa mtandao. + + ```ts + const redstoneHolesky = defineChain({ + id: 17_001, + name: 'Redstone Holesky', + network: 'redstone-holesky', + nativeCurrency: { + decimals: 18, + name: 'Ether', + symbol: 'ETH', + }, + rpcUrls: { + default: { + http: ['https://rpc.holesky.redstone.xyz'], + webSocket: ['wss://rpc.holesky.redstone.xyz/ws'], + }, + public: { + http: ['https://rpc.holesky.redstone.xyz'], + webSocket: ['wss://rpc.holesky.redstone.xyz/ws'], + }, + }, + blockExplorers: { + default: { name: 'Explorer', url: 'https://explorer.holesky.redstone.xyz' }, + }, + }) + ``` + +3. Ongeza mnyororo mpya kwenye simu ya `configureChains`. + + ```ts + const { chains, publicClient, webSocketPublicClient } = configureChains( + [ holesky, sepolia, redstoneHolesky ], + [ publicProvider(), ], + ) + ``` + +4. Hakikisha kwamba programu inajua anwani ya mikataba yako kwenye mtandao mpya. Katika kesi hii, tunarekebisha `src/components/Greeter.tsx`: + + ```ts + const contractAddrs : AddressPerBlockchainType = { + // Holesky + 17000: '0x432d810484AdD7454ddb3b5311f0Ac2E95CeceA8', + + // Redstone Holesky + 17001: '0x4919517f82a1B89a32392E1BF72ec827ba9986D3', + + // Sepolia + 11155111: '0x7143d5c190F048C8d19fe325b748b081903E3BF0' + } + ``` + +## Hitimisho {#conclusion} + +Bila shaka, hujali sana kuhusu kutoa kiolesura cha mtumiaji kwa ajili ya `Greeter`. Unataka kuunda kiolesura cha mtumiaji kwa mikataba yako mwenyewe. Ili kuunda programu yako mwenyewe, fuata hatua hizi: + +1. Bainisha kuunda programu ya wagmi. + + ```sh copy + pnpm create wagmi + ``` + +2. Taja jina la programu. + +3. Chagua mfumo wa **React**. + +4. Chagua lahaja ya **Vite**. + +5. Unaweza [kuongeza kit cha Rainbow](https://www.rainbowkit.com/docs/installation#manual-setup). + +Sasa nenda ukafanye mikataba yako itumike kwa ulimwengu wote. + +[Tazama hapa kwa kazi zangu zaidi](https://cryptodocguy.pro/). + diff --git a/public/content/translations/sw/developers/tutorials/deploying-your-first-smart-contract/index.md b/public/content/translations/sw/developers/tutorials/deploying-your-first-smart-contract/index.md new file mode 100644 index 00000000000..b92b291e8fd --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/deploying-your-first-smart-contract/index.md @@ -0,0 +1,95 @@ +--- +title: Kupeleka mkataba-erevu wako wa kwanza +description: Utangulizi wa kupeleka mkataba-erevu wako wa kwanza kwenye mtandao wa majaribio wa Ethereum +author: "jdourlens" +tags: [ "mikataba erevu", "Remix", "Solidity", "upelekaji" ] +skill: beginner +lang: sw +published: 2020-04-03 +source: EthereumDev +sourceUrl: https://ethereumdev.io/deploying-your-first-smart-contract/ +address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE" +--- + +Nadhani una msisimko kama sisi [kupeleka](/developers/docs/smart-contracts/deploying/) na kuingiliana na [mkataba-erevu](/developers/docs/smart-contracts/) wako wa kwanza kwenye mnyororo wa bloku wa Ethereum. + +Usijali, kwa kuwa ni mkataba-erevu wetu wa kwanza, tutaupeleka kwenye [mtandao wa majaribio wa ndani](/developers/docs/networks/) kwa hivyo haitakugharimu chochote kupeleka na kucheza nao kadri upendavyo. + +## Kuandika mkataba wetu {#writing-our-contract} + +Hatua ya kwanza ni [kutembelea Remix](https://remix.ethereum.org/) na kuunda faili mpya. Kwenye sehemu ya juu kushoto ya kiolesura cha Remix ongeza faili mpya na uweke jina la faili unalotaka. + +![Kuongeza faili mpya katika kiolesura cha Remix](./remix.png) + +Katika faili mpya, tutabandika msimbo ufuatao. + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity >=0.5.17; + +contract Counter { + + // Kigezo cha umma cha aina ya nambari kamili isiyo na alama ili kuweka idadi ya hesabu + uint256 public count = 0; + + // Kitendakazi kinachoongeza kaunta yetu + function increment() public { + count += 1; + } + + // Kipataji kisicho lazima cha kupata thamani ya hesabu + function getCount() public view returns (uint256) { + return count; + } + +} +``` + +Ikiwa umezoea programu unaweza kukisia kwa urahisi kile programu hii inafanya. Hapa kuna maelezo mstari kwa mstari: + +- Mstari wa 4: Tunafafanua mkataba wenye jina la `Counter`. +- Mstari wa 7: Mkataba wetu unahifadhi nambari kamili moja isiyo na alama inayoitwa `count` inayoanzia 0. +- Mstari wa 10: Kitendakazi cha kwanza kitabadilisha hali ya mkataba na kuongeza kigezo chetu cha `count`. +- Mstari wa 15: Kitendakazi cha pili ni kipataji tu ili kuweza kusoma thamani ya kigezo cha `count` nje ya mkataba-erevu. Kumbuka kwamba, kwa vile tulifafanua kigezo chetu cha `count` kama cha umma hii si lazima lakini inaonyeshwa kama mfano. + +Hayo ndiyo yote kwa mkataba-erevu wetu wa kwanza rahisi. Kama unavyoweza kujua, inaonekana kama darasa kutoka kwa lugha za OOP (Upangaji Unaolenga Kitu) kama Java au C++. Sasa ni wakati wa kucheza na mkataba wetu. + +## Kupeleka mkataba wetu {#deploying-our-contract} + +Kwa vile tumeandika mkataba-erevu wetu wa kwanza kabisa, sasa tutaupeleka kwenye mnyororo wa bloku ili tuweze kucheza nao. + +[Kupeleka mkataba-erevu kwenye mnyororo wa bloku](/developers/docs/smart-contracts/deploying/) ni kutuma tu muamala wenye msimbo wa mkataba-erevu ulioandaliwa bila kubainisha wapokeaji wowote. + +Kwanza [tutaandaa mkataba](/developers/docs/smart-contracts/compiling/) kwa kubofya aikoni ya kuandaa iliyo upande wa kushoto: + +![Aikoni ya kuandaa katika upau wa vidhibiti wa Remix](./remix-compile-button.png) + +Kisha bofya kwenye kitufe cha kuandaa: + +![Kitufe cha kuandaa katika kiandaaji cha Remix solidity](./remix-compile.png) + +Unaweza kuchagua chaguo la “Kuandaa Kiotomatiki” ili mkataba uwe unaandaliwa kila wakati unapohifadhi maudhui kwenye kihariri cha maandishi. + +Kisha nenda kwenye skrini ya "peleka na endesha miamala": + +![Aikoni ya kupeleka katika upau wa vidhibiti wa Remix](./remix-deploy.png) + +Ukishakuwa kwenye skrini ya "peleka na endesha miamala", hakikisha mara mbili kwamba jina la mkataba wako linaonekana na ubofye Peleka. Kama unavyoona juu ya ukurasa, mazingira ya sasa ni “JavaScript VM” hii inamaanisha kuwa tutapeleka na kuingiliana na mkataba-erevu wetu kwenye mnyororo wa bloku wa majaribio wa ndani ili kuweza kupima haraka zaidi na bila ada zozote. + +![Kitufe cha kupeleka katika kiandaaji cha Remix solidity](./remix-deploy-button.png) + +Mara tu unapobofya kitufe cha “Peleka”, utaona mkataba wako ukionekana chini. Bofya mshale ulio upande wa kushoto ili kuipanua ili tuone maudhui ya mkataba wetu. Hiki ni kigezo chetu cha `counter`, kitendakazi chetu cha `increment()` na kipataji cha `getCounter()`. + +Ukibofya kitufe cha `count` au `getCount`, kwa kweli kitachukua maudhui ya kigezo cha `count` cha mkataba na kuyaonyesha. Kwa kuwa bado hatujaita kitendakazi cha `increment`, inapaswa kuonyesha 0. + +![Kitufe cha kitendakazi katika kiandaaji cha Remix solidity](./remix-function-button.png) + +Sasa hebu tuite kitendakazi cha `increment` kwa kubofya kitufe. Utaona kumbukumbu za miamala inayofanywa zikionekana chini ya dirisha. Utaona kuwa kumbukumbu ni tofauti unapobonyeza kitufe cha kuchukua data badala ya kitufe cha `increment`. Ni kwa sababu kusoma data kwenye mnyororo wa bloku hakuhitaji miamala yoyote (kuandika) au ada. Kwa sababu kurekebisha tu hali ya mnyororo wa bloku ndiko kunahitaji kufanya muamala: + +![Kumbukumbu ya miamala](./transaction-log.png) + +Baada ya kubonyeza kitufe cha increment ambacho kitazalisha muamala wa kuita kitendakazi chetu cha `increment()`, tukibofya tena vitufe vya count au getCount tutasoma hali mpya iliyosasishwa ya mkataba-erevu wetu huku kigezo cha count kikiwa kikubwa kuliko 0. + +![Hali mpya iliyosasishwa ya mkataba-erevu](./updated-state.png) + +Katika mafunzo yajayo, tutaangazia [jinsi unavyoweza kuongeza matukio kwenye mikataba-erevu yako](/developers/tutorials/logging-events-smart-contracts/). Kurekodi matukio ni njia rahisi ya kutatua mkataba-erevu wako na kuelewa kinachoendelea unapoita kitendakazi. diff --git a/public/content/translations/sw/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md b/public/content/translations/sw/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md new file mode 100644 index 00000000000..62f134fcc91 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md @@ -0,0 +1,372 @@ +--- +title: Jinsi ya kuendeleza na kujaribu dApp kwenye testnet ya ndani, yenye wateja wengi +description: Mwongozo huu kwanza utakuelekeza jinsi ya kuanzisha na kusanidi testnet ya ndani ya Ethereum yenye wateja wengi kabla ya kutumia testnet kupeleka na kujaribu dApp. +author: "Tedi Mitiku" +tags: + [ + "wateja", + "nodi", + "mikataba erevu", + "utunzi", + "safu ya makubaliano", + "safu ya utekelezaji", + "majaribio" + ] +skill: intermediate +lang: sw +published: 2023-04-11 +--- + +## Utangulizi {#introduction} + +Mwongozo huu unakuelekeza katika mchakato wa kuanzisha testnet ya Ethereum ya ndani inayoweza kusanidiwa, kupeleka mkataba-erevu kwayo, na kutumia testnet kufanya majaribio dhidi ya dApp yako. Mwongozo huu umeundwa kwa ajili ya wasanidi programu wa dApp wanaotaka kuendeleza na kujaribu dApps zao ndani dhidi ya usanidi tofauti wa mtandao kabla ya kupeleka kwenye testnet hai au Mtandao Mkuu. + +Katika mwongozo huu, utaweza: + +- Anzisha testnet ya Ethereum ya ndani na [`eth-network-package`](https://github.com/kurtosis-tech/eth-network-package) ukitumia [Kurtosis](https://www.kurtosis.com/), +- Unganisha mazingira yako ya uendelezaji wa dApp ya Hardhat kwenye testnet ya ndani ili kuandaa, kupeleka, na kujaribu dApp, na +- Sanidi testnet ya ndani, ikijumuisha vigezo kama idadi ya nodi na jozi maalum za mteja wa EL/CL, ili kuwezesha mtiririko wa kazi wa uendelezaji na upimaji dhidi ya usanidi mbalimbali wa mtandao. + +### Kurtosis ni nini? {#what-is-kurtosis} + +[Kurtosis](https://www.kurtosis.com/) ni mfumo wa ujenzi unaoweza kuunganishwa ulioundwa kwa ajili ya kusanidi mazingira ya majaribio ya makontena mengi. Inawawezesha wasanidi programu kuunda mazingira yanayoweza kurudiwa ambayo yanahitaji mantiki ya usanidi inayobadilika, kama vile testnets za mnyororo wa bloku. + +Katika mwongozo huu, kifurushi cha eth-network cha Kurtosis kinawasha testnet ya ndani ya Ethereum inayotumia mteja wa Safu ya Utekelezaji (EL) wa [`geth`](https://geth.ethereum.org/), pamoja na wateja wa Safu ya Makubaliano (CL) wa [`teku`](https://consensys.io/teku), [`lighthouse`](https://lighthouse.sigmaprime.io/), na [`lodestar`](https://lodestar.chainsafe.io/). Kifurushi hiki kinatumika kama mbadala unaoweza kusanidiwa na kuunganishwa kwa mitandao katika mifumo kama vile Mtandao wa Hardhat, Ganache, na Anvil. Kurtosis huwapa wasanidi programu udhibiti na wepesi zaidi juu ya testnets wanazotumia, ambayo ni sababu kubwa kwa nini [Msingi wa Ethereum ulitumia Kurtosis kupima Muungano](https://www.kurtosis.com/blog/testing-the-ethereum-merge) na unaendelea kuitumia kwa kupima masasisho ya mtandao. + +## Kusanidi Kurtosis {#setting-up-kurtosis} + +Kabla ya kuendelea, hakikisha una: + +- [Umesakinisha na kuanzisha injini ya Docker](https://docs.kurtosis.com/install/#i-install--start-docker) kwenye mashine yako ya ndani +- [Umesakinisha Kurtosis CLI](https://docs.kurtosis.com/install#ii-install-the-cli) (au umeisasisha hadi toleo jipya zaidi, ikiwa tayari una CLI iliyosakinishwa) +- Umesakinisha [Node.js](https://nodejs.org/en), [yarn](https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable), na [npx](https://www.npmjs.com/package/npx) (kwa mazingira yako ya dApp) + +## Kuanzisha testnet ya Ethereum ya ndani {#instantiate-testnet} + +Ili kuwasha testnet ya Ethereum ya ndani, endesha: + +```python +kurtosis --enclave local-eth-testnet run github.com/kurtosis-tech/eth-network-package +``` + +Kumbuka: Amri hii inaupa mtandao wako jina: \"local-eth-testnet\" kwa kutumia kiashiria cha `--enclave`. + +Kurtosis itachapisha hatua inazochukua chinichini inapofanya kazi ya kufasiri, kuhakiki, na kisha kutekeleza maagizo. Mwishowe, unapaswa kuona matokeo yanayofanana na yafuatayo: + +```python +INFO[2023-04-04T18:09:44-04:00] ====================================================== +INFO[2023-04-04T18:09:44-04:00] || Created enclave: local-eth-testnet || +INFO[2023-04-04T18:09:44-04:00] ====================================================== +Name: local-eth-testnet +UUID: 39372d756ae8 +Status: RUNNING +Creation Time: Tue, 04 Apr 2023 18:09:03 EDT + +========================================= Files Artifacts ========================================= +UUID Name +d4085a064230 cl-genesis-data +1c62cb792e4c el-genesis-data +bd60489b73a7 genesis-generation-config-cl +b2e593fe5228 genesis-generation-config-el +d552a54acf78 geth-prefunded-keys +5f7e661eb838 prysm-password +054e7338bb59 validator-keystore-0 + +========================================== User Services ========================================== +UUID Name Ports Status +e20f129ee0c5 cl-client-0-beacon http: 4000/tcp -> RUNNING + metrics: 5054/tcp -> + tcp-discovery: 9000/tcp -> 127.0.0.1:54263 + udp-discovery: 9000/udp -> 127.0.0.1:60470 +a8b6c926cdb4 cl-client-0-validator http: 5042/tcp -> 127.0.0.1:54267 RUNNING + metrics: 5064/tcp -> +d7b802f623e8 el-client-0 engine-rpc: 8551/tcp -> 127.0.0.1:54253 RUNNING + rpc: 8545/tcp -> 127.0.0.1:54251 + tcp-discovery: 30303/tcp -> 127.0.0.1:54254 + udp-discovery: 30303/udp -> 127.0.0.1:53834 + ws: 8546/tcp -> 127.0.0.1:54252 +514a829c0a84 prelaunch-data-generator-1680646157905431468 STOPPED +62bd62d0aa7a prelaunch-data-generator-1680646157915424301 STOPPED +05e9619e0e90 prelaunch-data-generator-1680646157922872635 STOPPED + +``` + +Hongera! Ulitumia Kurtosis kuanzisha testnet ya Ethereum ya ndani, na mteja wa CL (`lighthouse`) na EL (`geth`), juu ya Docker. + +### Mapitio {#review-instantiate-testnet} + +Katika sehemu hii, ulitekeleza amri iliyoelekeza Kurtosis kutumia [`eth-network-package` iliyohifadhiwa mbali kwenye GitHub](https://github.com/kurtosis-tech/eth-network-package) kuwasha testnet ya Ethereum ya ndani ndani ya [Enclave](https://docs.kurtosis.com/advanced-concepts/enclaves/) ya Kurtosis. Ndani ya enclave yako, utapata "file artifacts" na "user services". + +[Vifaa vya Faili](https://docs.kurtosis.com/advanced-concepts/files-artifacts/) katika enclave yako vinajumuisha data zote zilizozalishwa na kutumika kuanzisha wateja wa EL na CL. Data iliundwa kwa kutumia huduma ya `prelaunch-data-generator` iliyojengwa kutoka kwa [picha hii ya Docker](https://github.com/ethpandaops/ethereum-genesis-generator) + +Huduma za mtumiaji huonyesha huduma zote zilizowekwa kwenye kontena zinazofanya kazi katika enclave yako. Utaona kwamba nodi moja, yenye mteja wa EL na mteja wa CL, imeundwa. + +## Unganisha mazingira yako ya uendelezaji wa dApp kwenye testnet ya Ethereum ya ndani {#connect-your-dapp} + +### Sanidi mazingira ya uendelezaji wa dApp {#set-up-dapp-env} + +Sasa kwa kuwa una testnet ya ndani inayofanya kazi, unaweza kuunganisha mazingira yako ya uendelezaji wa dApp ili kutumia testnet yako ya ndani. Mfumo wa Hardhat utatumika katika mwongozo huu kupeleka dApp ya blackjack kwenye testnet yako ya ndani. + +Ili kusanidi mazingira yako ya uendelezaji wa dApp, nakili hazina iliyo na sampuli yetu ya dApp na usakinishe vitegemezi vyake, endesha: + +```python +git clone https://github.com/kurtosis-tech/awesome-kurtosis.git && cd awesome-kurtosis/smart-contract-example && yarn +``` + +Folda ya [smart-contract-example](https://github.com/kurtosis-tech/awesome-kurtosis/tree/main/smart-contract-example) inayotumiwa hapa ina usanidi wa kawaida kwa msanidi programu wa dApp anayetumia mfumo wa [Hardhat](https://hardhat.org/): + +- [`contracts/`](https://github.com/kurtosis-tech/awesome-kurtosis/tree/main/smart-contract-example/contracts) ina mikataba-erevu michache rahisi kwa ajili ya dApp ya Blackjack +- [`scripts/`](https://github.com/kurtosis-tech/awesome-kurtosis/tree/main/smart-contract-example/scripts) ina hati ya kupeleka mkataba wa tokeni kwenye mtandao wako wa ndani wa Ethereum +- [`test/`](https://github.com/kurtosis-tech/awesome-kurtosis/tree/main/smart-contract-example/test) ina jaribio rahisi la .js kwa mkataba wako wa tokeni ili kuthibitisha kila mchezaji katika dApp yetu ya Blackjack ametengenezewa 1000 +- [`hardhat.config.ts`](https://github.com/kurtosis-tech/awesome-kurtosis/blob/main/smart-contract-example/hardhat.config.ts) inasanidi usanidi wako wa Hardhat + +### Sanidi Hardhat ili itumie testnet ya ndani {#configure-hardhat} + +Pamoja na mazingira yako ya uendelezaji wa dApp yakiwa yamesanidiwa, sasa utaunganisha Hardhat ili itumie testnet ya Ethereum ya ndani iliyoundwa kwa kutumia Kurtosis. Ili kufanikisha hili, badilisha `<$YOUR_PORT>` katika muundo wa `localnet` katika faili yako ya usanidi ya `hardhat.config.ts` na bandari ya matokeo ya rpc uri kutoka huduma yoyote ya `el-client-`. Katika kisa hiki cha sampuli, bandari itakuwa `64248`. Bandari yako itakuwa tofauti. + +Mfano katika `hardhat.config.ts`: + +```js +localnet: { +url: 'http://127.0.0.1:<$YOUR_PORT>',// TODO: BADILISHA $YOUR_PORT NA BANDARI YA URI YA NODI ILIYOTOLEWA NA KIFURUSHI CHA MTANDAO WA ETH CHA KURTOSIS + +// Hizi ni funguo za faragha zinazohusiana na akaunti za majaribio zilizofadhiliwa awali zilizoundwa na kifurushi cha eth-network +// +accounts: [ + "ef5177cd0b6b21c87db5a0bf35d4084a8a57a9d6a064f86d51ac85f2b873a4e2", + "48fcc39ae27a0e8bf0274021ae6ebd8fe4a0e12623d61464c498900b28feb567", + "7988b3a148716ff800414935b305436493e1f25237a2a03e5eebc343735e2f31", + "b3c409b6b0b3aa5e65ab2dc1930534608239a478106acf6f3d9178e9f9b00b35", + "df9bb6de5d3dc59595bcaa676397d837ff49441d211878c024eabda2cd067c9f", + "7da08f856b5956d40a72968f93396f6acff17193f013e8053f6fbb6c08c194d6", + ], +}, +``` + +Mara tu unapohifadhi faili yako, mazingira yako ya uendelezaji wa dApp ya Hardhat sasa yameunganishwa na testnet yako ya Ethereum ya ndani! Unaweza kuthibitisha kwamba testnet yako inafanya kazi kwa kuendesha: + +```python +npx hardhat balances --network localnet +``` + +Matokeo yanapaswa kuonekana kama hivi: + +```python +0x878705ba3f8Bc32FCf7F4CAa1A35E72AF65CF766 has balance 10000000000000000000000000 +0x4E9A3d9D1cd2A2b2371b8b3F489aE72259886f1A has balance 10000000000000000000000000 +0xdF8466f277964Bb7a0FFD819403302C34DCD530A has balance 10000000000000000000000000 +0x5c613e39Fc0Ad91AfDA24587e6f52192d75FBA50 has balance 10000000000000000000000000 +0x375ae6107f8cC4cF34842B71C6F746a362Ad8EAc has balance 10000000000000000000000000 +0x1F6298457C5d76270325B724Da5d1953923a6B88 has balance 10000000000000000000000000 +``` + +Hii inathibitisha kuwa Hardhat inatumia testnet yako ya ndani na inagundua akaunti zilizofadhiliwa awali zilizoundwa na `eth-network-package`. + +### Peleka na ujaribu dApp yako ndani {#deploy-and-test-dapp} + +Wakati mazingira ya uendelezaji wa dApp yameunganishwa kikamilifu kwenye testnet ya Ethereum ya ndani, sasa unaweza kuendesha mtiririko wa kazi wa uendelezaji na upimaji dhidi ya dApp yako ukitumia testnet ya ndani. + +Ili kuandaa na kupeleka mkataba-erevu wa `ChipToken.sol` kwa ajili ya uundaji wa mfano wa ndani na uendelezaji, endesha: + +```python +npx hardhat compile +npx hardhat run scripts/deploy.ts --network localnet +``` + +Matokeo yanapaswa kuonekana kama: + +```python +ChipToken imepelekwa kwa: 0xAb2A01BC351770D09611Ac80f1DE076D56E0487d +``` + +Sasa jaribu kuendesha jaribio la `simple.js` dhidi ya dApp yako ya ndani ili kuthibitisha kila mchezaji katika dApp yetu ya Blackjack ametengenezewa 1000: + +Matokeo yanapaswa kuonekana kama hivi: + +```python +npx hardhat test --network localnet +``` + +Matokeo yanapaswa kuonekana kama hivi: + +```python +ChipToken + tengeneza + ✔ inapaswa kutengeneza chipu 1000 kwa MCHEZAJI MMOJA + + 1 imepita (654ms) +``` + +### Mapitio {#review-dapp-workflows} + +Kufikia hapa, sasa umesanidi mazingira ya uendelezaji wa dApp, umeiunganisha kwenye mtandao wa Ethereum wa ndani ulioundwa na Kurtosis, na umeandaa, umepeleka, na umeendesha jaribio rahisi dhidi ya dApp yako. + +Sasa hebu tuchunguze jinsi unavyoweza kusanidi mtandao wa msingi kwa ajili ya kupima dApps zetu chini ya usanidi mbalimbali wa mtandao. + +## Kusanidi testnet ya Ethereum ya ndani {#configure-testnet} + +### Kubadilisha usanidi wa mteja na idadi ya nodi {#configure-client-config-and-num-nodes} + +Testnet yako ya Ethereum ya ndani inaweza kusanidiwa kutumia jozi tofauti za wateja wa EL na CL, pamoja na idadi tofauti ya nodi, kulingana na hali na usanidi maalum wa mtandao unaotaka kuendeleza au kupima. Hii inamaanisha kuwa, mara tu itakaposanidiwa, unaweza kuwasha testnet ya ndani iliyobinafsishwa na kuitumia kuendesha mtiririko sawa wa kazi (upelekaji, majaribio, n.k.) chini ya usanidi mbalimbali wa mtandao ili kuhakikisha kila kitu kinafanya kazi kama inavyotarajiwa. Ili kujifunza zaidi kuhusu vigezo vingine unavyoweza kurekebisha, tembelea kiungo hiki. + +Jaribu! Unaweza kupitisha chaguo mbalimbali za usanidi kwa `eth-network-package` kupitia faili ya JSON. Faili hii ya JSON ya vigezo vya mtandao hutoa usanidi maalum ambao Kurtosis utatumia kusanidi mtandao wa ndani wa Ethereum. + +Chukua faili chaguo-msingi ya usanidi na uihariri ili kuwasha nodi mbili zenye jozi tofauti za EL/CL: + +- Nodi ya 1 na `geth`/`lighthouse` +- Nodi ya 2 na `geth`/`lodestar` +- Nodi ya 3 na `geth`/`teku` + +Usanidi huu unaunda mtandao wenye utekelezaji mchanganyiko wa nodi za Ethereum kwa ajili ya kupima dApp yako. Faili yako ya usanidi sasa inapaswa kuonekana hivi: + +```yaml +{ + "participants": + [ + { + "el_client_type": "geth", + "el_client_image": "", + "el_client_log_level": "", + "cl_client_type": "lighthouse", + "cl_client_image": "", + "cl_client_log_level": "", + "beacon_extra_params": [], + "el_extra_params": [], + "validator_extra_params": [], + "builder_network_params": null, + }, + { + "el_client_type": "geth", + "el_client_image": "", + "el_client_log_level": "", + "cl_client_type": "lodestar", + "cl_client_image": "", + "cl_client_log_level": "", + "beacon_extra_params": [], + "el_extra_params": [], + "validator_extra_params": [], + "builder_network_params": null, + }, + { + "el_client_type": "geth", + "el_client_image": "", + "el_client_log_level": "", + "cl_client_type": "teku", + "cl_client_image": "", + "cl_client_log_level": "", + "beacon_extra_params": [], + "el_extra_params": [], + "validator_extra_params": [], + "builder_network_params": null, + }, + ], + "network_params": + { + "preregistered_validator_keys_mnemonic": "giant issue aisle success illegal bike spike question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy very lucky have athlete", + "num_validator_keys_per_node": 64, + "network_id": "3151908", + "deposit_contract_address": "0x4242424242424242424242424242424242424242", + "seconds_per_slot": 12, + "genesis_delay": 120, + "capella_fork_epoch": 5, + }, +} +``` + +Kila muundo wa `participants` unahusiana na nodi moja katika mtandao, kwa hivyo miundo 3 ya `participants` itaiambia Kurtosis iwashe nodi 3 kwenye mtandao wako. Kila muundo wa `participants` utakuruhusu kubainisha jozi ya EL na CL inayotumika kwa nodi hiyo maalum. + +Muundo wa `network_params` unasanidi mipangilio ya mtandao inayotumika kuunda faili za genesis kwa kila nodi pamoja na mipangilio mingine kama sekunde kwa kila slot ya mtandao. + +Hifadhi faili yako ya vigezo iliyohaririwa katika saraka yoyote unayotaka (katika mfano hapa chini, imehifadhiwa kwenye eneo-kazi) na kisha itumie kuendesha kifurushi chako cha Kurtosis kwa kuendesha: + +```python +kurtosis clean -a && kurtosis run --enclave local-eth-testnet github.com/kurtosis-tech/eth-network-package \"$(cat ~/eth-network-params.json)\" +``` + +Kumbuka: amri ya `kurtosis clean -a` inatumika hapa kuielekeza Kurtosis kuharibu testnet ya zamani na yaliyomo kabla ya kuanzisha mpya. + +Tena, Kurtosis itafanya kazi kwa muda mfupi na kuchapisha hatua za kibinafsi zinazofanyika. Hatimaye, matokeo yanapaswa kuonekana kama: + +```python +Starlark code successfully run. No output was returned. +INFO[2023-04-07T11:43:16-04:00] ========================================================== +INFO[2023-04-07T11:43:16-04:00] || Created enclave: local-eth-testnet || +INFO[2023-04-07T11:43:16-04:00] ========================================================== +Name: local-eth-testnet +UUID: bef8c192008e +Status: RUNNING +Creation Time: Fri, 07 Apr 2023 11:41:58 EDT + +========================================= Files Artifacts ========================================= +UUID Name +cc495a8e364a cl-genesis-data +7033fcdb5471 el-genesis-data +a3aef43fc738 genesis-generation-config-cl +8e968005fc9d genesis-generation-config-el +3182cca9d3cd geth-prefunded-keys +8421166e234f prysm-password +d9e6e8d44d99 validator-keystore-0 +23f5ba517394 validator-keystore-1 +4d28dea40b5c validator-keystore-2 + +========================================== User Services ========================================== +UUID Name Ports Status +485e6fde55ae cl-client-0-beacon http: 4000/tcp -> http://127.0.0.1:65010 RUNNING + metrics: 5054/tcp -> http://127.0.0.1:65011 + tcp-discovery: 9000/tcp -> 127.0.0.1:65012 + udp-discovery: 9000/udp -> 127.0.0.1:54455 +73739bd158b2 cl-client-0-validator http: 5042/tcp -> 127.0.0.1:65016 RUNNING + metrics: 5064/tcp -> http://127.0.0.1:65017 +1b0a233cd011 cl-client-1-beacon http: 4000/tcp -> 127.0.0.1:65021 RUNNING + metrics: 8008/tcp -> 127.0.0.1:65023 + tcp-discovery: 9000/tcp -> 127.0.0.1:65024 + udp-discovery: 9000/udp -> 127.0.0.1:56031 + validator-metrics: 5064/tcp -> 127.0.0.1:65022 +949b8220cd53 cl-client-1-validator http: 4000/tcp -> 127.0.0.1:65028 RUNNING + metrics: 8008/tcp -> 127.0.0.1:65030 + tcp-discovery: 9000/tcp -> 127.0.0.1:65031 + udp-discovery: 9000/udp -> 127.0.0.1:60784 + validator-metrics: 5064/tcp -> 127.0.0.1:65029 +c34417bea5fa cl-client-2 http: 4000/tcp -> 127.0.0.1:65037 RUNNING + metrics: 8008/tcp -> 127.0.0.1:65035 + tcp-discovery: 9000/tcp -> 127.0.0.1:65036 + udp-discovery: 9000/udp -> 127.0.0.1:63581 +e19738e6329d el-client-0 engine-rpc: 8551/tcp -> 127.0.0.1:64986 RUNNING + rpc: 8545/tcp -> 127.0.0.1:64988 + tcp-discovery: 30303/tcp -> 127.0.0.1:64987 + udp-discovery: 30303/udp -> 127.0.0.1:55706 + ws: 8546/tcp -> 127.0.0.1:64989 +e904687449d9 el-client-1 engine-rpc: 8551/tcp -> 127.0.0.1:64993 RUNNING + rpc: 8545/tcp -> 127.0.0.1:64995 + tcp-discovery: 30303/tcp -> 127.0.0.1:64994 + udp-discovery: 30303/udp -> 127.0.0.1:58096 + ws: 8546/tcp -> 127.0.0.1:64996 +ad6f401126fa el-client-2 engine-rpc: 8551/tcp -> 127.0.0.1:65003 RUNNING + rpc: 8545/tcp -> 127.0.0.1:65001 + tcp-discovery: 30303/tcp -> 127.0.0.1:65000 + udp-discovery: 30303/udp -> 127.0.0.1:57269 + ws: 8546/tcp -> 127.0.0.1:65002 +12d04a9dbb69 prelaunch-data-generator-1680882122181135513 STOPPED +5b45f9c0504b prelaunch-data-generator-1680882122192182847 STOPPED +3d4aaa75e218 prelaunch-data-generator-1680882122201668972 STOPPED +``` + +Hongera! Umefanikiwa kusanidi testnet yako ya ndani iwe na nodi 3 badala ya 1. Ili kuendesha mtiririko sawa wa kazi uliofanya hapo awali dhidi ya dApp yako (kupeleka na kupima), fanya shughuli zilezile tulizofanya hapo awali kwa kubadilisha `<$YOUR_PORT>` katika muundo wa `localnet` katika faili yako ya usanidi ya `hardhat.config.ts` na bandari ya matokeo ya rpc uri kutoka huduma yoyote ya `el-client-` katika testnet yako mpya ya ndani yenye nodi 3. + +## Hitimisho {#conclusion} + +Na ndivyo hivyo! Ili kufupisha mwongozo huu mfupi, wewe: + +- Uliunda testnet ya Ethereum ya ndani juu ya Docker ukitumia Kurtosis +- Uliunganisha mazingira yako ya uendelezaji wa dApp ya ndani kwenye mtandao wa Ethereum wa ndani +- Ulipeleka dApp na kuendesha jaribio rahisi dhidi yake kwenye mtandao wa Ethereum wa ndani +- Ulisanidi mtandao wa msingi wa Ethereum uwe na nodi 3 + +Tungependa kusikia kutoka kwako juu ya kile kilichokwenda vizuri kwako, kile kinachoweza kuboreshwa, au kujibu maswali yako yoyote. Usisite kuwasiliana kupitia [GitHub](https://github.com/kurtosis-tech/kurtosis/issues/new/choose) au [tutumie barua pepe](mailto:feedback@kurtosistech.com)! + +### Mifano na miongozo mingine {#other-examples-guides} + +Tunakuhimiza uangalie [mwongozo wetu wa haraka](https://docs.kurtosis.com/quickstart) (ambapo utajenga hifadhidata ya Postgres na API juu yake) na mifano yetu mingine katika [hazina yetu ya awesome-kurtosis](https://github.com/kurtosis-tech/awesome-kurtosis) ambapo utapata mifano mizuri, ikijumuisha vifurushi vya: + +- [Kuwasha testnet ileile ya ndani ya Ethereum](https://github.com/kurtosis-tech/eth2-package), lakini na huduma za ziada zilizounganishwa kama vile mtumaji taka wa miamala (kuiga miamala), kifuatiliaji cha uma, na nakala iliyounganishwa ya Grafana na Prometheus +- Kufanya [jaribio la mtandao-ndogo](https://github.com/kurtosis-tech/awesome-kurtosis/tree/main/ethereum-network-partition-test) dhidi ya mtandao uleule wa ndani wa Ethereum diff --git a/public/content/translations/sw/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md b/public/content/translations/sw/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md new file mode 100644 index 00000000000..b492b1780cf --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md @@ -0,0 +1,144 @@ +--- +title: "Kupunguza ukubwa wa mikataba ili kupambana na kikomo cha ukubwa wa mkataba" +description: Unaweza kufanya nini kuzuia mikataba-erevu yako isiwe mikubwa sana? +author: Markus Waas +lang: sw +tags: [ "Solidity", "mikataba erevu", "ghala" ] +skill: intermediate +published: 2020-06-26 +source: soliditydeveloper.com +sourceUrl: https://soliditydeveloper.com/max-contract-size +--- + +## Kwa nini kuna kikomo? {#why-is-there-a-limit} + +Mnamo [Novemba 22, 2016](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) uma mgumu wa Spurious Dragon ulianzisha [EIP-170](https://eips.ethereum.org/EIPS/eip-170) ambao uliongeza kikomo cha ukubwa wa mkataba-erevu cha kb 24.576. Kwa wewe kama msanidi programu wa Solidity hii inamaanisha unapoongeza utendaji zaidi na zaidi kwenye mkataba wako, wakati fulani utafikia kikomo na wakati wa kupeleka utaona hitilafu: + +`Onyo: Ukubwa wa msimbo wa Mkataba umezidi baiti 24576 (kikomo kilichoanzishwa katika Spurious Dragon).` Mkataba huu huenda usiweze kupelekwa kwenye Mtandao Mkuu. `Fikiria kuwezesha kiboreshaji (na thamani ndogo ya "runs"!), kuzima jumbe za urejeshaji, au kutumia maktaba.` + +Kikomo hiki kilianzishwa ili kuzuia mashambulizi ya kunyimwa huduma (DOS). Wito wowote kwa mkataba una gharama nafuu kiasi kwa upande wa gesi. Hata hivyo, athari za wito wa mkataba kwa nodi za Ethereum huongezeka isivyo sawia kulingana na ukubwa wa msimbo wa mkataba unaoitwa (kusoma msimbo kutoka kwenye diski, kuchakata msimbo awali, kuongeza data kwenye uthibitisho wa Merkle). Wakati wowote unapokuwa na hali kama hiyo ambapo mshambuliaji anahitaji rasilimali chache kusababisha kazi nyingi kwa wengine, unapata uwezekano wa mashambulizi ya DOS. + +Hapo awali hili halikuwa tatizo kubwa kwa sababu kikomo kimoja cha asili cha ukubwa wa mkataba ni kikomo cha gesi cha bloku. Ni wazi, mkataba lazima upelekwe ndani ya muamala unaoshikilia msimbo baiti wote wa mkataba. Ikiwa utajumuisha muamala huo mmoja tu kwenye bloku, unaweza kutumia gesi yote hiyo, lakini si isiyo na kikomo. Tangu [Sasisho la London](/ethereum-forks/#london), kikomo cha gesi cha bloku kimeweza kubadilika kati ya vitengo milioni 15 na milioni 30 kulingana na mahitaji ya mtandao. + +Katika yafuatayo tutaangalia baadhi ya mbinu zilizopangwa kulingana na athari zake zinazowezekana. Fikiria kuhusu hilo kwa mtazamo wa kupunguza uzito. Mkakati bora kwa mtu kufikia uzito anaolenga (katika hali yetu 24kb) ni kuzingatia mbinu zenye athari kubwa kwanza. Katika visa vingi kurekebisha lishe yako tu kutakufikisha hapo, lakini wakati mwingine unahitaji zaidi kidogo. Kisha unaweza kuongeza mazoezi (athari ya kati) au hata virutubisho (athari ndogo). + +## Athari kubwa {#big-impact} + +### Tenganisha mikataba yako {#separate-your-contracts} + +Hii inapaswa kuwa mbinu yako ya kwanza kila wakati. Unawezaje kutenganisha mkataba katika mikataba midogo mingi? Kwa ujumla inakulazimisha kubuni usanifu mzuri kwa mikataba yako. Mikataba midogo inapendekezwa kila wakati kutoka kwa mtazamo wa usomaji wa msimbo. Kwa ajili ya kugawanya mikataba, jiulize: + +- Ni vitendaji vipi vinavyohusiana? Kila seti ya vitendaji inaweza kuwa bora katika mkataba wake. +- Ni vitendaji vipi ambavyo havihitaji kusoma hali ya mkataba au sehemu ndogo tu ya hali hiyo? +- Unaweza kutenganisha ghala na utendaji? + +### Maktaba {#libraries} + +Njia moja rahisi ya kuhamisha msimbo wa utendaji mbali na ghala ni kutumia [maktaba](https://solidity.readthedocs.io/en/v0.6.10/contracts.html#libraries). Usitangaze vitendaji vya maktaba kama vya ndani kwani vitaongezwa moja kwa moja [kwenye mkataba](https://ethereum.stackexchange.com/questions/12975/are-internal-functions-in-libraries-not-covered-by-linking) wakati wa ukusanyaji. Lakini ukitumia vitendaji vya umma, basi vitakuwa katika mkataba tofauti wa maktaba. Fikiria [kutumia kwa](https://solidity.readthedocs.io/en/v0.6.10/contracts.html#using-for) ili kufanya matumizi ya maktaba yawe rahisi zaidi. + +### Proksi {#proxies} + +Mkakati wa hali ya juu zaidi ungekuwa mfumo wa proksi. Maktaba hutumia `DELEGATECALL` kwa nyuma, ambayo hutekeleza kitendaji cha mkataba mwingine kwa kutumia hali ya mkataba unaoita. Angalia [chapisho hili la blogu](https://hackernoon.com/how-to-make-smart-contracts-upgradable-2612e771d5a2) ili kujifunza zaidi kuhusu mifumo ya proksi. Hukupa utendaji zaidi, k.m., huwezesha uwezo wa kusasishwa, lakini pia huongeza utata mwingi. Singeongeza hizo ili tu kupunguza ukubwa wa mkataba isipokuwa ndiyo chaguo lako pekee kwa sababu yoyote ile. + +## Athari ya kati {#medium-impact} + +### Ondoa vitendaji {#remove-functions} + +Hili linapaswa kuwa dhahiri. Vitendaji huongeza ukubwa wa mkataba kwa kiasi kikubwa. + +- **Nje**: Mara nyingi tunaongeza vitendaji vingi vya kuona kwa sababu za kurahisisha. Hiyo ni sawa kabisa mpaka ufikie kikomo cha ukubwa. Kisha unaweza kutaka kufikiria kweli kuondoa vyote isipokuwa vile vya muhimu kabisa. +- **Ndani**: Unaweza pia kuondoa vitendaji vya ndani/binafsi na kuingiza msimbo moja kwa moja mradi tu kitendaji kinaitwa mara moja tu. + +### Epuka vigezo vya ziada {#avoid-additional-variables} + +```solidity +function get(uint id) returns (address,address) { + MyStruct memory myStruct = myStructs[id]; + return (myStruct.addr1, myStruct.addr2); +} +``` + +```solidity +function get(uint id) returns (address,address) { + return (myStructs[id].addr1, myStructs[id].addr2); +} +``` + +Mabadiliko rahisi kama haya hufanya tofauti ya **0.28kb**. Kuna uwezekano unaweza kupata hali nyingi sawa katika mikataba yako na hizo zinaweza kujumlisha na kuwa kiasi kikubwa. + +### Fupisha ujumbe wa hitilafu {#shorten-error-message} + +Jumbe ndefu za urejeshaji na hasa jumbe nyingi tofauti za urejeshaji zinaweza kufanya mkataba uwe mkubwa. Badala yake tumia misimbo mifupi ya hitilafu na uisimbue katika mkataba wako. Ujumbe mrefu unaweza kuwa mfupi zaidi: + +```solidity +require(msg.sender == owner, "Ni mmiliki wa mkataba huu pekee anayeweza kuita kitendaji hiki"); +``` + +```solidity +require(msg.sender == owner, "OW1"); +``` + +### Tumia hitilafu maalum badala ya jumbe za hitilafu + +Hitilafu maalum zilianzishwa katika [Solidity 0.8.4](https://blog.soliditylang.org/2021/04/21/custom-errors/). Ni njia nzuri ya kupunguza ukubwa wa mikataba yako, kwa sababu zimesimbwa kwa ABI kama viteuzi (kama vile vitendaji vilivyo). + +```solidity +error Unauthorized(); + +if (msg.sender != owner) { + revert Unauthorized(); +} +``` + +### Fikiria thamani ya chini ya 'run' kwenye kiboreshaji {#consider-a-low-run-value-in-the-optimizer} + +Unaweza pia kubadilisha mipangilio ya kiboreshaji. Thamani chaguo-msingi ya 200 inamaanisha kwamba inajaribu kuboresha msimbo baiti kana kwamba kitendaji kinaitwa mara 200. Ukiibadilisha kuwa 1, kimsingi unakiambia kiboreshaji kiboreshe kwa ajili ya hali ya kuendesha kila kitendaji mara moja tu. Kitendaji kilichoboreshwa kwa ajili ya kuendeshwa mara moja tu kinamaanisha kimeboreshwa kwa ajili ya upelekaji wenyewe. Fahamu kwamba **hii huongeza [gharama za gesi](/developers/docs/gas/) za kuendesha vitendaji**, kwa hivyo unaweza usitake kufanya hivyo. + +## Athari ndogo {#small-impact} + +### Epuka kupitisha miundo kwa vitendaji {#avoid-passing-structs-to-functions} + +Ikiwa unatumia [ABIEncoderV2](https://solidity.readthedocs.io/en/v0.6.10/layout-of-source-files.html#abiencoderv2), inaweza kusaidia kutopitisha miundo kwa kitendaji. Badala ya kupitisha kigezo kama muundo, pitisha vigezo vinavyohitajika moja kwa moja. Katika mfano huu tumeokoa **0.1kb** nyingine. + +```solidity +function get(uint id) returns (address,address) { + return _get(myStruct); +} + +function _get(MyStruct memory myStruct) private view returns(address,address) { + return (myStruct.addr1, myStruct.addr2); +} +``` + +```solidity +function get(uint id) returns(address,address) { + return _get(myStructs[id].addr1, myStructs[id].addr2); +} + +function _get(address addr1, address addr2) private view returns(address,address) { + return (addr1, addr2); +} +``` + +### Tangaza mwonekano sahihi kwa vitendaji na vigezo {#declare-correct-visibility-for-functions-and-variables} + +- Vitendaji au vigezo vinavyoitwa kutoka nje tu? Vitangaze kama `external` badala ya `public`. +- Vitendaji au vigezo vinavyoitwa kutoka ndani ya mkataba tu? Vitangaze kama `private` au `internal` badala ya `public`. + +### Ondoa virekebishaji {#remove-modifiers} + +Virekebishaji, hasa vinapotumiwa sana, vinaweza kuwa na athari kubwa kwenye ukubwa wa mkataba. Fikiria kuviondoa na badala yake utumie vitendaji. + +```solidity +modifier checkStuff() {} + +function doSomething() checkStuff {} +``` + +```solidity +function checkStuff() private {} + +function doSomething() { checkStuff(); } +``` + +Dokezo hizo zinapaswa kukusaidia kupunguza kwa kiasi kikubwa ukubwa wa mkataba. Kwa mara nyingine tena, siwezi kusisitiza vya kutosha, daima zingatia kugawanya mikataba ikiwezekana kwa athari kubwa zaidi. diff --git a/public/content/translations/sw/developers/tutorials/eip-1271-smart-contract-signatures/index.md b/public/content/translations/sw/developers/tutorials/eip-1271-smart-contract-signatures/index.md new file mode 100644 index 00000000000..305fb3b04f2 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/eip-1271-smart-contract-signatures/index.md @@ -0,0 +1,129 @@ +--- +title: "EIP-1271: Kusaini na Kuthibitisha Sahihi za Mkataba-erevu" +description: Muhtasari wa uundaji na uthibitishaji wa sahihi za mkataba-erevu kwa kutumia EIP-1271. Pia tunapitia utekelezaji wa EIP-1271 unaotumika katika Safe (awali Gnosis Safe) ili kutoa mfano halisi kwa wasanidi programu wa mkataba-erevu kuutumia kama msingi. +author: Nathan H. Leung +lang: sw +tags: + [ + "eip-1271", + "mikataba erevu", + "kuthibitisha", + "kusaini" + ] +skill: intermediate +published: 2023-01-12 +--- + +Kiwango cha [EIP-1271](https://eips.ethereum.org/EIPS/eip-1271) huruhusu mikataba-erevu kuthibitisha sahihi. + +Katika mafunzo haya, tunatoa muhtasari wa sahihi za dijitali, historia ya EIP-1271, na utekelezaji mahususi wa EIP-1271 unaotumiwa na [Safe](https://safe.global/) (awali Gnosis Safe). Kwa pamoja, hii inaweza kutumika kama sehemu ya kuanzia kwa ajili ya kutekeleza EIP-1271 katika mikataba yako mwenyewe. + +## Sahihi ni nini? + +Katika muktadha huu, sahihi (kwa usahihi zaidi, "sahihi ya dijitali") ni ujumbe pamoja na aina fulani ya uthibitisho kwamba ujumbe umetoka kwa mtu/mtumaji/anwani maalum. + +Kwa mfano, sahihi ya dijitali inaweza kuonekana hivi: + +1. Ujumbe: “Nataka kuingia katika tovuti hii kwa kutumia mkoba wangu wa Ethereum.” +2. Msaini: Anwani yangu ni `0x000…` +3. Uthibitisho: Huu ni uthibitisho kwamba mimi, `0x000…`, ndiye niliyeunda ujumbe huu wote (kwa kawaida hii ni kitu cha kroptografia). + +Ni muhimu kuzingatia kwamba sahihi ya dijitali inajumuisha "ujumbe" na "sahihi". + +Kwa nini? Kwa mfano, kama ungenipa mkataba wa kusaini, kisha nikakata ukurasa wa sahihi na kukurejeshea sahihi zangu pekee bila sehemu nyingine ya mkataba, mkataba huo haungekuwa halali. + +Vivyo hivyo, sahihi ya dijitali haina maana yoyote bila ujumbe unaohusiana nayo! + +## Kwa nini EIP-1271 ipo? + +Ili kuunda sahihi ya dijitali kwa matumizi katika blockchain zinazotumia Ethereum, kwa ujumla unahitaji ufunguo binafsi wa siri ambao hakuna mtu mwingine anayejua. Hiki ndicho kinachofanya sahihi yako kuwa yako (hakuna mtu mwingine anayeweza kuunda sahihi sawa bila kujua ufunguo wa siri). + +Akaunti yako ya Ethereum (yaani, akaunti yako inayomilikiwa nje/EOA) ina ufunguo binafsi unaohusishwa nayo, na huu ndio ufunguo binafsi unaotumiwa kwa kawaida wakati tovuti au mfumo mtawanyo wa kimamlaka inakuomba sahihi (k.m., kwa ajili ya “Ingia na Ethereum”). + +Programu inaweza [kuthibitisha sahihi](https://www.alchemy.com/docs/how-to-verify-a-message-signature-on-ethereum) unayounda kwa kutumia maktaba ya wahusika wengine kama ethers.js [bila kujua ufunguo wako binafsi](https://en.wikipedia.org/wiki/Public-key_cryptography) na kuwa na uhakika kwamba _wewe_ ndiye uliyeunda sahihi hiyo. + +> Kwa hakika, kwa sababu sahihi za dijitali za EOA hutumia kroptografia ya ufunguo wa umma, zinaweza kuundwa na kuthibitishwa **nje ya mnyororo**! Hivi ndivyo upigaji kura wa DAO bila gesi unavyofanya kazi — badala ya kuwasilisha kura kwenye mnyororo, sahihi za dijitali zinaweza kuundwa na kuthibitishwa nje ya mnyororo kwa kutumia maktaba za kroptografia. + +Ingawa akaunti za EOA zina ufunguo binafsi, akaunti za mkataba-erevu hazina aina yoyote ya ufunguo binafsi au wa siri (hivyo "Ingia na Ethereum", n.k. haziwezi kufanya kazi moja kwa moja na akaunti za mkataba-erevu). + +Tatizo ambalo EIP-1271 inalenga kutatua: tunawezaje kujua kuwa sahihi ya mkataba-erevu ni halali ikiwa mkataba-erevu hauna “siri” inayoweza kujumuishwa katika sahihi? + +## EIP-1271 inafanyaje kazi? + +Mikataba-erevu haina funguo binafsi zinazoweza kutumika kusaini jumbe. Basi tunawezaje kujua ikiwa sahihi ni halisi? + +Naam, wazo moja ni kwamba tunaweza tu _kuuliza_ mkataba-erevu ikiwa sahihi ni halisi! + +Anachofanya EIP-1271 ni kusawazisha wazo hili la “kuuliza” mkataba-erevu ikiwa sahihi fulani ni halali. + +Mkataba unaotekeleza EIP-1271 lazima uwe na kitendakazi kiitwacho `isValidSignature` ambacho huchukua ujumbe na sahihi. Mkataba unaweza kisha kuendesha mantiki fulani ya uthibitishaji (vipimo havishurutishi kitu chochote maalum hapa) kisha kurudisha thamani inayoonyesha kama sahihi ni halali au la. + +Ikiwa `isValidSignature` inarudisha matokeo halali, hiyo ni sawa na mkataba kusema “ndiyo, naidhinisha sahihi + ujumbe huu!” + +### Kiolesura + +Huu hapa ni muundo kamili katika vipimo vya EIP-1271 (tutazungumzia kigezo cha `_hash` hapo chini, lakini kwa sasa, fikiria kama ni ujumbe unaothibitishwa): + +```jsx +pragma solidity ^0.5.0; + +contract ERC1271 { + + // bytes4(keccak256("isValidSignature(bytes32,bytes)") + bytes4 constant internal MAGICVALUE = 0x1626ba7e; + + /** + * @dev Inapaswa kurudisha iwapo sahihi iliyotolewa ni halali kwa hashi iliyotolewa + * @param _hash Hashi ya data itakayosainiwa + * @param _signature Safu ya baiti za Sahihi inayohusishwa na _hash + * + * LAZIMA irudishe thamani ya uchawi ya bytes4 0x1626ba7e wakati kitendakazi kinafaulu. + * LAZIMA ISIBADILISHE hali (kwa kutumia STATICCALL kwa solc < 0.5, kirekebishaji cha mwonekano kwa solc > 0.5) + * LAZIMA iruhusu wito wa nje + */ + function isValidSignature( + bytes32 _hash, + bytes memory _signature) + public + view + returns (bytes4 magicValue); +} +``` + +## Mfano wa Utekelezaji wa EIP-1271: Safe + +Mikataba inaweza kutekeleza `isValidSignature` kwa njia nyingi — vipimo havisemi mengi kuhusu utekelezaji kamili. + +Mkataba mmoja mashuhuri unaotekeleza EIP-1271 ni Safe (awali Gnosis Safe). + +Katika msimbo wa Safe, `isValidSignature` [imetekelezwa](https://github.com/safe-global/safe-contracts/blob/main/contracts/handler/CompatibilityFallbackHandler.sol) ili sahihi ziweze kuundwa na kuthibitishwa kwa [njia mbili](https://ethereum.stackexchange.com/questions/122635/signing-messages-as-a-gnosis-safe-eip1271-support): + +1. Ujumbe wa kwenye mnyororo + 1. Uundaji: mmiliki wa safe huunda muamala mpya wa safe ili “kusaini” ujumbe, akipitisha ujumbe kama data kwenye muamala. Mara tu wamiliki wa kutosha wanaposaini muamala kufikia kizingiti cha multisig, muamala hutangazwa na kuendeshwa. Katika muamala, kuna kitendakazi cha safe kiitwacho (`signMessage(bytes calldata _data)`) ambacho huongeza ujumbe kwenye orodha ya jumbe “zilizoidhinishwa”. + 2. Uthibitishaji: ita `isValidSignature` kwenye mkataba wa Safe, na kupitisha ujumbe wa kuthibitisha kama kigezo cha ujumbe na [thamani tupu kwa kigezo cha sahihi](https://github.com/safe-global/safe-contracts/blob/main/contracts/handler/CompatibilityFallbackHandler.sol#L32) (yaani, `0x`). Safe itaona kuwa kigezo cha sahihi ni tupu na badala ya kuthibitisha sahihi kwa njia ya kroptografia, itajua kuendelea na kuangalia ikiwa ujumbe upo kwenye orodha ya jumbe “zilizoidhinishwa”. +2. Jumbe za nje ya mnyororo: + 1. Uundaji: mmiliki wa safe huunda ujumbe nje ya mnyororo, kisha anawapata wamiliki wengine wa safe kusaini ujumbe huo kila mmoja kivyake hadi kuwe na sahihi za kutosha kuvuka kizingiti cha idhini ya multisig. + 2. Uthibitishaji: ita `isValidSignature`. Katika kigezo cha ujumbe, pitisha ujumbe wa kuthibitishwa. Katika kigezo cha sahihi, pitisha sahihi za kila mmiliki wa safe zikiwa zimeunganishwa pamoja, moja baada ya nyingine. Safe itaangalia kuwa kuna sahihi za kutosha kufikia kizingiti **na** kwamba kila sahihi ni halali. Ikiwa ndivyo, itarudisha thamani inayoonyesha uthibitishaji uliofaulu wa sahihi. + +## Kigezo cha `_hash` ni nini hasa? Kwa nini usipitishe ujumbe wote? + +Huenda umegundua kwamba kitendakazi cha `isValidSignature` katika [muundo wa EIP-1271](https://eips.ethereum.org/EIPS/eip-1271) hakichukui ujumbe wenyewe, bali kigezo cha `_hash`. Hii inamaanisha kuwa badala ya kupitisha ujumbe kamili wa urefu wowote kwa `isValidSignature`, badala yake tunapitisha hashi ya baiti 32 ya ujumbe (kwa ujumla keccak256). + +Kila baiti ya calldata — yaani, data ya kigezo cha kitendakazi inayopitishwa kwa kitendakazi cha mkataba-erevu — [hugharimu gesi 16 (gesi 4 ikiwa ni baiti ya sifuri)](https://eips.ethereum.org/EIPS/eip-2028), hivyo hii inaweza kuokoa gesi nyingi ikiwa ujumbe ni mrefu. + +### Vipimo vya Awali vya EIP-1271 + +Kuna vipimo vya EIP-1271 vinavyotumika ambavyo vina kitendakazi cha `isValidSignature` chenye kigezo cha kwanza cha aina ya `bytes` (urefu wowote, badala ya urefu usiobadilika wa `bytes32`) na jina la kigezo `message`. Hili ni [toleo la zamani](https://github.com/safe-global/safe-contracts/issues/391#issuecomment-1075427206) la kiwango cha EIP-1271. + +## EIP-1271 inapaswa kutekelezwa vipi katika mikataba yangu mwenyewe? + +Vipimo havina masharti mengi hapa. Utekelezaji wa Safe una mawazo mazuri: + +- Unaweza kuzingatia sahihi za EOA kutoka kwa "mmiliki" wa mkataba kuwa halali. +- Unaweza kuhifadhi orodha ya jumbe zilizoidhinishwa na kuzingatia hizo tu kuwa halali. + +Mwishowe, ni juu yako kama msanidi programu wa mkataba! + +## Hitimisho + +[EIP-1271](https://eips.ethereum.org/EIPS/eip-1271) ni kiwango chenye matumizi mengi kinachoruhusu mikataba-erevu kuthibitisha sahihi. Inafungua mlango kwa mikataba-erevu kufanya kazi zaidi kama EOA — kwa mfano kutoa njia ya "Ingia na Ethereum" kufanya kazi na mikataba-erevu — na inaweza kutekelezwa kwa njia nyingi (Safe ikiwa na utekelezaji usio rahisi na wa kuvutia kuzingatia). diff --git a/public/content/translations/sw/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/sw/developers/tutorials/erc-721-vyper-annotated-code/index.md new file mode 100644 index 00000000000..69322bd1e92 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -0,0 +1,716 @@ +--- +title: "Mwongozo wa Mkataba wa ERC-721 wa Vyper" +description: Mkataba wa ERC-721 wa Ryuya Nakamura na jinsi unavyofanya kazi +author: Ori Pomerantz +lang: sw +tags: [ "Vyper", "erc-721", "Python" ] +skill: beginner +published: 2021-04-01 +--- + +## Utangulizi {#introduction} + +Kiwango cha [ERC-721](/developers/docs/standards/tokens/erc-721/) kinatumika kushikilia umiliki wa Tokeni Zisizobadilishika (NFT). +Tokeni za [ERC-20](/developers/docs/standards/tokens/erc-20/) hufanya kazi kama bidhaa, kwa sababu hakuna tofauti kati ya tokeni binafsi. +Tofauti na hiyo, tokeni za ERC-721 zimeundwa kwa ajili ya mali zinazofanana lakini si sawa, kama vile katuni +za paka tofauti +au hati miliki za vipande tofauti vya mali isiyohamishika. + +Katika makala haya tutachambua [mkataba wa ERC-721 wa Ryuya Nakamura](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy). +Mkataba huu umeandikwa kwa [Vyper](https://vyper.readthedocs.io/en/latest/index.html), lugha ya mkataba inayofanana na Python iliyoundwa ili iwe +vigumu zaidi kuandika msimbo usio salama kuliko ilivyo katika Solidity. + +## Mkataba {#contract} + +```python +# @dev Utekelezaji wa kiwango cha tokeni isiyobadilishika ya ERC-721. +# @author Ryuya Nakamura (@nrryuya) +# Imebadilishwa kutoka: https://github.com/vyperlang/vyper/blob/de74722bf2d8718cca46902be165f9fe0e3641dd/examples/tokens/ERC721.vy +``` + +Maoni katika Vyper, kama ilivyo katika Python, huanza na alama ya reli (`#`) na kuendelea hadi mwisho wa mstari. Maoni yanayojumuisha +`@` hutumiwa na [NatSpec](https://vyper.readthedocs.io/en/latest/natspec.html) kuzalisha nyaraka +zinazoweza kusomwa na binadamu. + +```python +from vyper.interfaces import ERC721 + +implements: ERC721 +``` + +Kiolesura cha ERC-721 kimejengewa ndani ya lugha ya Vyper. +[Unaweza kuona ufafanuzi wa msimbo hapa](https://github.com/vyperlang/vyper/blob/master/vyper/builtin_interfaces/ERC721.py). +Ufafanuzi wa kiolesura umeandikwa kwa Python, badala ya Vyper, kwa sababu violesura hutumika si tu ndani ya +mnyororo wa bloku, bali pia wakati wa kutuma muamala kwenye mnyororo wa bloku kutoka kwa wateja wa nje, ambao unaweza kuandikwa kwa +Python. + +Mstari wa kwanza huingiza kiolesura, na wa pili unabainisha kuwa tunakitekeleza hapa. + +### Kiolesura cha ERC721Receiver {#receiver-interface} + +```python +# Kiolesura cha mkataba unaoitwa na safeTransferFrom() +interface ERC721Receiver: + def onERC721Received( +``` + +ERC-721 inasaidia aina mbili za uhamishaji: + +- `transferFrom`, ambayo inamruhusu mtumaji kubainisha anwani yoyote ya marudio na kuweka jukumu + la uhamishaji kwa mtumaji. Hii ina maana kwamba unaweza kuhamisha kwenda anwani batili, ambapo + NFT inapotea kabisa. +- `safeTransferFrom`, ambayo huangalia kama anwani ya marudio ni mkataba. Ikiwa ndivyo, mkataba wa ERC-721 + huuliza mkataba mpokeaji kama unataka kupokea NFT. + +Ili kujibu maombi ya `safeTransferFrom`, mkataba mpokeaji unapaswa kutekeleza `ERC721Receiver`. + +```python + _operator: address, + _from: address, +``` + +Anwani ya `_from` ni mmiliki wa sasa wa tokeni. Anwani ya `_operator` ndiyo +iliyoitisha uhamishaji (hizi mbili zinaweza zisiwe sawa, kwa sababu ya posho). + +```python + _tokenId: uint256, +``` + +Vitambulisho vya tokeni za ERC-721 vina biti 256. Kwa kawaida huundwa kwa kuhashi maelezo ya chochote +kinachowakilishwa na tokeni. + +```python + _data: Bytes[1024] +``` + +Ombi linaweza kuwa na baiti hadi 1024 za data ya mtumiaji. + +```python + ) -> bytes32: view +``` + +Ili kuzuia visa ambapo mkataba unakubali uhamishaji kimakosa, thamani ya kurejesha si ya Boolean, +bali ni biti 256 zenye thamani maalum. + +Kazi hii ni `view`, ambayo ina maana inaweza kusoma hali ya mnyororo wa bloku, lakini si kuibadilisha. + +### Matukio {#events} + +[Matukio](https://media.consensys.net/technical-introduction-to-events-and-logs-in-ethereum-a074d65dd61e) +hutolewa ili kuwajulisha watumiaji na seva zilizo nje ya mnyororo wa bloku kuhusu matukio. Kumbuka kwamba maudhui ya matukio +hayapatikani kwa mikataba kwenye mnyororo wa bloku. + +```python +# @dev Hutoa wakati umiliki wa NFT yoyote unapobadilika kwa utaratibu wowote. Tukio hili hutolewa wakati NFTs +# zinapoundwa (`from` == 0) na kuharibiwa (`to` == 0). Isipokuwa: wakati wa uundaji wa mkataba, idadi +# yoyote ya NFT inaweza kuundwa na kugawiwa bila kutoa Transfer. Wakati wa uhamishaji +# wowote, anwani iliyoidhinishwa kwa NFT hiyo (ikiwa ipo) huwekwa upya kuwa hakuna. +# @param _from Mtumaji wa NFT (kama anwani ni anwani sifuri inaashiria uundaji wa tokeni). +# @param _to Mpokeaji wa NFT (kama anwani ni anwani sifuri inaashiria uharibifu wa tokeni). +# @param _tokenId NFT iliyohamishwa. +event Transfer: + sender: indexed(address) + receiver: indexed(address) + tokenId: indexed(uint256) +``` + +Hili ni sawa na tukio la Uhamishaji wa ERC-20, isipokuwa kwamba tunaripoti `tokenId` badala ya kiasi. +Hakuna anayemiliki anwani sifuri, kwa hivyo kwa kawaida tunaitumia kuripoti uundaji na uharibifu wa tokeni. + +```python +# @dev Hii hutolewa wakati anwani iliyoidhinishwa kwa NFT inapobadilishwa au kuthibitishwa tena. Anwani sifuri +# inaonyesha hakuna anwani iliyoidhinishwa. Tukio la Uhamishaji linapotolewa, hii pia +# inaonyesha kwamba anwani iliyoidhinishwa kwa NFT hiyo (ikiwa ipo) huwekwa upya kuwa hakuna. +# @param _owner Mmiliki wa NFT. +# @param _approved Anwani tunayoidhinisha. +# @param _tokenId NFT tunayoidhinisha. +event Approval: + owner: indexed(address) + approved: indexed(address) + tokenId: indexed(uint256) +``` + +Idhini ya ERC-721 inafanana na posho ya ERC-20. Anwani maalum inaruhusiwa kuhamisha tokeni +maalum. Hii inatoa utaratibu kwa mikataba kujibu wanapokubali tokeni. Mikataba haiwezi +kusikiliza matukio, kwa hivyo ukihamisha tokeni kwao tu "hawajui" kuihusu. Kwa njia hii, +mmiliki kwanza huwasilisha idhini kisha hutuma ombi kwa mkataba: "Nimekuidhinisha uhamishe tokeni +X, tafadhali fanya ...". + +Hii ni chaguo la muundo ili kufanya kiwango cha ERC-721 kifanane na kiwango cha ERC-20. Kwa sababu +tokeni za ERC-721 hazibadiliki, mkataba unaweza pia kutambua kuwa umepata tokeni maalum kwa +kuangalia umiliki wa tokeni. + +```python +# @dev Hii hutolewa wakati mwendeshaji anapowezeshwa au kuzimwa kwa mmiliki. Mwendeshaji anaweza kusimamia +# NFT zote za mmiliki. +# @param _owner Mmiliki wa NFT. +# @param _operator Anwani ambayo tunaweka haki za mwendeshaji. +# @param _approved Hali ya haki za mwendeshaji (kweli ikiwa haki za mwendeshaji zimetolewa na uongo ikiwa +# zimefutwa). +event ApprovalForAll: + owner: indexed(address) + operator: indexed(address) + approved: bool +``` + +Wakati mwingine ni muhimu kuwa na _operator_ anayeweza kusimamia tokeni zote za akaunti za aina fulani (zile zinazosimamiwa na +mkataba maalum), sawa na mamlaka ya uwakili. Kwa mfano, ninaweza kutaka kutoa mamlaka kama hayo kwa mkataba unaoangalia ikiwa +sijauwasiliana nao kwa miezi sita, na ikiwa ni hivyo unagawanya mali zangu kwa warithi wangu (kama mmoja wao ataomba, mikataba +haiwezi kufanya chochote bila kuitwa na muamala). Katika ERC-20 tunaweza kutoa posho kubwa kwa mkataba wa urithi, +lakini hilo halifanyi kazi kwa ERC-721 kwa sababu tokeni hazibadiliki. Hii ni sawa na hiyo. + +Thamani ya `approved` inatuambia kama tukio ni la idhini, au uondoaji wa idhini. + +### Vigezo vya Hali {#state-vars} + +Vigezo hivi vina hali ya sasa ya tokeni: ni zipi zinapatikana na nani anazimiliki. Nyingi za hizi +ni vitu vya `HashMap`, [ramani za mwelekeo mmoja ambazo zipo kati ya aina mbili](https://vyper.readthedocs.io/en/latest/types.html#mappings). + +```python +# @dev Ramani kutoka kitambulisho cha NFT kwenda kwenye anwani inayomiliki. +idToOwner: HashMap[uint256, address] + +# @dev Ramani kutoka kitambulisho cha NFT kwenda kwenye anwani iliyoidhinishwa. +idToApprovals: HashMap[uint256, address] +``` + +Utambulisho wa watumiaji na mikataba katika Ethereum unawakilishwa na anwani za biti 160. Vigezo hivi viwili vinapanga ramani +kutoka vitambulisho vya tokeni kwenda kwa wamiliki wao na wale walioidhinishwa kuzihamisha (kwa kiwango cha juu cha mmoja kwa kila moja). Katika Ethereum, +data ambayo haijaanziwa huwa ni sifuri, kwa hivyo kama hakuna mmiliki au mhamishaji aliyeidhinishwa, thamani ya tokeni hiyo +ni sifuri. + +```python +# @dev Ramani kutoka anwani ya mmiliki kwenda kwenye hesabu ya tokeni zake. +ownerToNFTokenCount: HashMap[address, uint256] +``` + +Kigezo hiki kinashikilia hesabu ya tokeni kwa kila mmiliki. Hakuna ramani kutoka kwa wamiliki kwenda kwenye tokeni, kwa hivyo +njia pekee ya kutambua tokeni ambazo mmiliki maalum anamiliki ni kuangalia nyuma katika historia ya matukio ya mnyororo wa bloku +na kuona matukio sahihi ya `Transfer`. Tunaweza kutumia kigezo hiki kujua wakati tuna NFT zote na hatuhitaji +kuangalia mbele zaidi kwa wakati. + +Kumbuka kuwa kanuni hii inafanya kazi tu kwa violesura vya mtumiaji na seva za nje. Msimbo unaoendeshwa kwenye mnyororo wa bloku +wenyewe hauwezi kusoma matukio yaliyopita. + +```python +# @dev Ramani kutoka anwani ya mmiliki kwenda kwenye ramani ya anwani za waendeshaji. +ownerToOperators: HashMap[address, HashMap[address, bool]] +``` + +Akaunti inaweza kuwa na mwendeshaji zaidi ya mmoja. `HashMap` rahisi haitoshi +kufuatilia, kwa sababu kila ufunguo unaelekea kwenye thamani moja. Badala yake, unaweza kutumia +`HashMap[address, bool]` kama thamani. Kwa chaguo-msingi, thamani kwa kila anwani ni `Uongo`, ambayo ina maana +si mwendeshaji. Unaweza kuweka thamani kuwa `Kweli` inapohitajika. + +```python +# @dev Anwani ya mchapaji, anayeweza kuchapa tokeni +minter: address +``` + +Tokeni mpya zinapaswa kuundwa kwa namna fulani. Katika mkataba huu kuna huluki moja tu inayoruhusiwa kufanya hivyo, yaani +`minter`. Hii inawezekana kutosha kwa mchezo, kwa mfano. Kwa madhumuni mengine, inaweza kuwa muhimu +kuunda mantiki ya biashara ngumu zaidi. + +```python +# @dev Ramani ya kitambulisho cha kiolesura kwenda kwa bool kuhusu kama inasaidiwa au la +supportedInterfaces: HashMap[bytes32, bool] + +# @dev Kitambulisho cha kiolesura cha ERC165 cha ERC165 +ERC165_INTERFACE_ID: constant(bytes32) = 0x0000000000000000000000000000000000000000000000000000000001ffc9a7 + +# @dev Kitambulisho cha kiolesura cha ERC165 cha ERC721 +ERC721_INTERFACE_ID: constant(bytes32) = 0x0000000000000000000000000000000000000000000000000000000080ac58cd +``` + +[ERC-165](https://eips.ethereum.org/EIPS/eip-165) inabainisha utaratibu kwa mkataba kufichua jinsi programu +zinavyoweza kuwasiliana nayo, na ni ERC zipi inazoendana nazo. Katika kesi hii, mkataba unaendana na ERC-165 na ERC-721. + +### Kazi {#functions} + +Hizi ni kazi zinazotekeleza ERC-721. + +#### Kiunda {#constructor} + +```python +@external +def __init__(): +``` + +Katika Vyper, kama ilivyo katika Python, kazi ya kiunda inaitwa `__init__`. + +```python + """ + @dev Kiunda cha mkataba. + """ +``` + +Katika Python, na katika Vyper, unaweza pia kuunda maoni kwa kubainisha mfuatano wa mistari mingi (unaoanza na kumalizika +kwa `"""`), na usiutumie kwa njia yoyote. Maoni haya pia yanaweza kujumuisha +[NatSpec](https://vyper.readthedocs.io/en/latest/natspec.html). + +```python + self.supportedInterfaces[ERC165_INTERFACE_ID] = True + self.supportedInterfaces[ERC721_INTERFACE_ID] = True + self.minter = msg.sender +``` + +Ili kufikia vigezo vya hali unatumia `self.` (tena, sawa na katika Python). + +#### Kazi za Kuangalia {#views} + +Hizi ni kazi ambazo hazibadilishi hali ya mnyororo wa bloku, na kwa hivyo zinaweza kutekelezwa +bure zikiitwa kutoka nje. Ikiwa kazi za kuangalia zinaitwa na mkataba, bado zinapaswa kutekelezwa kwenye +kila nodi na kwa hivyo hugharimu gesi. + +```python +@view +@external +``` + +Maneno haya muhimu kabla ya ufafanuzi wa kazi ambayo huanza na ishara ya at (`@`) huitwa _mapambo_. Zinabainisha +hali ambazo kazi inaweza kuitwa. + +- `@view` inabainisha kuwa kazi hii ni ya kuangalia. +- `@external` inabainisha kuwa kazi hii maalum inaweza kuitwa na miamala na kwa mikataba mingine. + +```python +def supportsInterface(_interfaceID: bytes32) -> bool: +``` + +Tofauti na Python, Vyper ni [lugha ya aina tuli](https://wikipedia.org/wiki/Type_system#Static_type_checking). +Huwezi kutangaza kigezo, au kigezo cha kazi, bila kutambua [aina ya data](https://vyper.readthedocs.io/en/latest/types.html). Katika kesi hii, kigezo cha kuingiza ni `bytes32`, thamani ya biti 256 +(biti 256 ndio ukubwa wa neno la asili la [Mashine Halisi ya Ethereum](/developers/docs/evm/)). Toleo ni thamani ya +boolean. Kwa kawaida, majina ya vigezo vya kazi huanza na alama ya chini (`_`). + +```python + """ + @dev Utambulisho wa kiolesura umebainishwa katika ERC-165. + @param _interfaceID Kitambulisho cha kiolesura + """ + return self.supportedInterfaces[_interfaceID] +``` + +Rejesha thamani kutoka kwenye HashMap ya `self.supportedInterfaces`, ambayo imewekwa katika kiunda (`__init__`). + +```python +### KAZI ZA KUANGALIA ### + +``` + +Hizi ni kazi za kuangalia ambazo hufanya habari kuhusu tokeni zipatikane kwa watumiaji na mikataba mingine. + +```python +@view +@external +def balanceOf(_owner: address) -> uint256: + """ + @dev Inarejesha idadi ya NFT zinazomilikiwa na `_owner`. + Hutoa kosa ikiwa `_owner` ni anwani sifuri. NFT zilizogawiwa kwa anwani sifuri huchukuliwa kuwa batili. + @param _owner Anwani ambayo itauliziwa salio. + """ + assert _owner != ZERO_ADDRESS +``` + +Mstari huu [unathibitisha](https://vyper.readthedocs.io/en/latest/statements.html#assert) kuwa `_owner` si +sifuri. Ikiwa ni hivyo, kuna kosa na operesheni inarejeshwa nyuma. + +```python + return self.ownerToNFTokenCount[_owner] + +@view +@external +def ownerOf(_tokenId: uint256) -> address: + """ + @dev Inarejesha anwani ya mmiliki wa NFT. + Hutoa kosa ikiwa `_tokenId` si NFT halali. + @param _tokenId Kitambulisho cha NFT. + """ + owner: address = self.idToOwner[_tokenId] + # Hutoa kosa ikiwa `_tokenId` si NFT halali + assert owner != ZERO_ADDRESS + return owner +``` + +Katika Mashine Halisi ya Ethereum (evm) hifadhi yoyote ambayo haina thamani iliyohifadhiwa ndani yake ni sifuri. +Ikiwa hakuna tokeni kwenye `_tokenId` basi thamani ya `self.idToOwner[_tokenId]` ni sifuri. Katika kesi +hiyo, kazi inarejeshwa nyuma. + +```python +@view +@external +def getApproved(_tokenId: uint256) -> address: + """ + @dev Pata anwani iliyoidhinishwa kwa NFT moja. + Hutoa kosa ikiwa `_tokenId` si NFT halali. + @param _tokenId Kitambulisho cha NFT cha kuulizia idhini yake. + """ + # Hutoa kosa ikiwa `_tokenId` si NFT halali + assert self.idToOwner[_tokenId] != ZERO_ADDRESS + return self.idToApprovals[_tokenId] +``` + +Kumbuka kuwa `getApproved` _inaweza_ kurejesha sifuri. Ikiwa tokeni ni halali, inarejesha `self.idToApprovals[_tokenId]`. +Ikiwa hakuna muidhinishaji, thamani hiyo ni sifuri. + +```python +@view +@external +def isApprovedForAll(_owner: address, _operator: address) -> bool: + """ + @dev Inaangalia kama `_operator` ni mwendeshaji aliyeidhinishwa kwa `_owner`. + @param _owner Anwani inayomiliki NFT. + @param _operator Anwani inayofanya kazi kwa niaba ya mmiliki. + """ + return (self.ownerToOperators[_owner])[_operator] +``` + +Kazi hii inaangalia kama `_operator` anaruhusiwa kusimamia tokeni zote za `_owner` katika mkataba huu. +Kwa sababu kunaweza kuwa na waendeshaji wengi, hii ni HashMap ya viwango viwili. + +#### Kazi Saidizi za Uhamishaji {#transfer-helpers} + +Kazi hizi zinatekeleza operesheni ambazo ni sehemu ya kuhamisha au kusimamia tokeni. + +```python + +### KAZI SAIDIZI ZA KAZI ZA UHAMISHAJI ### + +@view +@internal +``` + +Mapambo haya, `@internal`, inamaanisha kuwa kazi inapatikana tu kutoka kwa kazi zingine ndani ya +mkataba uleule. Kwa kawaida, majina ya kazi hizi pia huanza na alama ya chini (`_`). + +```python +def _isApprovedOrOwner(_spender: address, _tokenId: uint256) -> bool: + """ + @dev Inarejesha kama mtumiaji aliyetajwa anaweza kuhamisha kitambulisho cha tokeni kilichotajwa + @param spender anwani ya mtumiaji wa kuulizia + @param tokenId kitambulisho cha uint256 cha tokeni ya kuhamishwa + @return bool kama msg.sender ameidhinishwa kwa kitambulisho cha tokeni kilichotajwa, + ni mwendeshaji wa mmiliki, au ni mmiliki wa tokeni + """ + owner: address = self.idToOwner[_tokenId] + spenderIsOwner: bool = owner == _spender + spenderIsApproved: bool = _spender == self.idToApprovals[_tokenId] + spenderIsApprovedForAll: bool = (self.ownerToOperators[owner])[_spender] + return (spenderIsOwner or spenderIsApproved) or spenderIsApprovedForAll +``` + +Kuna njia tatu ambazo anwani inaweza kuruhusiwa kuhamisha tokeni: + +1. Anwani ni mmiliki wa tokeni +2. Anwani imehidhinishwa kutumia tokeni hiyo +3. Anwani ni mwendeshaji wa mmiliki wa tokeni + +Kazi iliyo hapo juu inaweza kuwa ya kuangalia kwa sababu haibadilishi hali. Ili kupunguza gharama za uendeshaji, kazi +yoyote ambayo _inaweza_ kuwa ya kuangalia _inapaswa_ kuwa ya kuangalia. + +```python +@internal +def _addTokenTo(_to: address, _tokenId: uint256): + """ + @dev Ongeza NFT kwenye anwani iliyotajwa + Hutoa kosa ikiwa `_tokenId` inamilikiwa na mtu. + """ + # Hutoa kosa ikiwa `_tokenId` inamilikiwa na mtu + assert self.idToOwner[_tokenId] == ZERO_ADDRESS + # Badilisha mmiliki + self.idToOwner[_tokenId] = _to + # Badilisha ufuatiliaji wa hesabu + self.ownerToNFTokenCount[_to] += 1 + + +@internal +def _removeTokenFrom(_from: address, _tokenId: uint256): + """ + @dev Ondoa NFT kutoka kwa anwani iliyotajwa + Hutoa kosa ikiwa `_from` si mmiliki wa sasa. + """ + # Hutoa kosa ikiwa `_from` si mmiliki wa sasa + assert self.idToOwner[_tokenId] == _from + # Badilisha mmiliki + self.idToOwner[_tokenId] = ZERO_ADDRESS + # Badilisha ufuatiliaji wa hesabu + self.ownerToNFTokenCount[_from] -= 1 +``` + +Kunapokuwa na tatizo na uhamishaji, tunarejesha wito nyuma. + +```python +@internal +def _clearApproval(_owner: address, _tokenId: uint256): + """ + @dev Futa idhini ya anwani iliyotajwa + Hutoa kosa ikiwa `_owner` si mmiliki wa sasa. + """ + # Hutoa kosa ikiwa `_owner` si mmiliki wa sasa + assert self.idToOwner[_tokenId] == _owner + if self.idToApprovals[_tokenId] != ZERO_ADDRESS: + # Weka upya idhini + self.idToApprovals[_tokenId] = ZERO_ADDRESS +``` + +Badilisha tu thamani ikiwa ni lazima. Vigezo vya hali huishi kwenye hifadhi. Kuandika kwenye hifadhi ni +mojawapo ya operesheni ghali zaidi ambayo EVM (Mashine Halisi ya Ethereum) hufanya (kwa upande wa +[gesi](/developers/docs/gas/)). Kwa hivyo, ni wazo zuri kuipunguza, hata kuandika +thamani iliyopo kuna gharama kubwa. + +```python +@internal +def _transferFrom(_from: address, _to: address, _tokenId: uint256, _sender: address): + """ + @dev Tekeleza uhamishaji wa NFT. + Hutoa kosa isipokuwa `msg.sender` ni mmiliki wa sasa, mwendeshaji aliyeidhinishwa, au anwani + iliyoidhinishwa kwa NFT hii. (KUMBUKA: `msg.sender` hairuhusiwi katika kazi ya faragha kwa hivyo pitisha `_sender`.) + Hutoa kosa ikiwa `_to` ni anwani sifuri. + Hutoa kosa ikiwa `_from` si mmiliki wa sasa. + Hutoa kosa ikiwa `_tokenId` si NFT halali. + """ +``` + +Tuna kazi hii ya ndani kwa sababu kuna njia mbili za kuhamisha tokeni (kawaida na salama), lakini +tunataka eneo moja tu katika msimbo ambapo tunafanya hivyo ili kurahisisha ukaguzi. + +```python + # Angalia mahitaji + assert self._isApprovedOrOwner(_sender, _tokenId) + # Hutoa kosa ikiwa `_to` ni anwani sifuri + assert _to != ZERO_ADDRESS + # Futa idhini. Hutoa kosa ikiwa `_from` si mmiliki wa sasa + self._clearApproval(_from, _tokenId) + # Ondoa NFT. Hutoa kosa ikiwa `_tokenId` si NFT halali + self._removeTokenFrom(_from, _tokenId) + # Ongeza NFT + self._addTokenTo(_to, _tokenId) + # Ingiza uhamishaji kwenye kumbukumbu + log Transfer(_from, _to, _tokenId) +``` + +Ili kutoa tukio katika Vyper unatumia taarifa ya `log` ([ona hapa kwa maelezo zaidi](https://vyper.readthedocs.io/en/latest/event-logging.html#event-logging)). + +#### Kazi za Uhamishaji {#transfer-funs} + +```python + +### KAZI ZA UHAMISHAJI ### + +@external +def transferFrom(_from: address, _to: address, _tokenId: uint256): + """ + @dev Hutoa kosa isipokuwa `msg.sender` ni mmiliki wa sasa, mwendeshaji aliyeidhinishwa, au anwani + iliyoidhinishwa kwa NFT hii. + Hutoa kosa ikiwa `_from` si mmiliki wa sasa. + Hutoa kosa ikiwa `_to` ni anwani sifuri. + Hutoa kosa ikiwa `_tokenId` si NFT halali. + @notice Mwitaji anawajibika kuthibitisha kuwa `_to` ina uwezo wa kupokea NFT, vinginevyo + zinaweza kupotea kabisa. + @param _from Mmiliki wa sasa wa NFT. + @param _to Mmiliki mpya. + @param _tokenId NFT ya kuhamisha. + """ + self._transferFrom(_from, _to, _tokenId, msg.sender) +``` + +Kazi hii inakuwezesha kuhamisha kwenda kwenye anwani yoyote. Isipokuwa anwani ni ya mtumiaji, au mkataba ambao +unajua jinsi ya kuhamisha tokeni, tokeni yoyote utakayohamisha itakwama kwenye anwani hiyo na kuwa isiyofaa. + +```python +@external +def safeTransferFrom( + _from: address, + _to: address, + _tokenId: uint256, + _data: Bytes[1024]=b"" + ): + """ + @dev Huhamisha umiliki wa NFT kutoka anwani moja kwenda nyingine. + Hutoa kosa isipokuwa `msg.sender` ni mmiliki wa sasa, mwendeshaji aliyeidhinishwa, au anwani + iliyoidhinishwa kwa NFT hii. + Hutoa kosa ikiwa `_from` si mmiliki wa sasa. + Hutoa kosa ikiwa `_to` ni anwani sifuri. + Hutoa kosa ikiwa `_tokenId` si NFT halali. + Ikiwa `_to` ni mkataba-erevu, inaita `onERC721Received` kwenye `_to` na hutoa kosa ikiwa + thamani ya kurejesha si `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`. + KUMBUKA: bytes4 inawakilishwa na bytes32 na padding + @param _from Mmiliki wa sasa wa NFT. + @param _to Mmiliki mpya. + @param _tokenId NFT ya kuhamisha. + @param _data Data ya ziada bila umbizo maalum, iliyotumwa kwenye wito kwa `_to`. + """ + self._transferFrom(_from, _to, _tokenId, msg.sender) +``` + +Ni sawa kufanya uhamishaji kwanza kwa sababu ikiwa kuna tatizo tutarejesha nyuma hata hivyo, +kwa hivyo kila kitu kilichofanywa kwenye wito kitaghairishwa. + +```python + if _to.is_contract: # angalia kama `_to` ni anwani ya mkataba +``` + +Kwanza angalia kuona kama anwani ni mkataba (kama ina msimbo). Kama sivyo, chukulia ni anwani ya +mtumiaji na mtumiaji ataweza kutumia tokeni au kuihamisha. Lakini usiruhusu ikudanganye +katika hisia za uongo za usalama. Unaweza kupoteza tokeni, hata kwa `safeTransferFrom`, ukizihamisha +kwenda anwani ambayo hakuna anayejua ufunguo wake binafsi. + +```python + returnValue: bytes32 = ERC721Receiver(_to).onERC721Received(msg.sender, _from, _tokenId, _data) +``` + +Piga simu mkataba lengwa kuona kama unaweza kupokea tokeni za ERC-721. + +```python + # Hutoa kosa ikiwa marudio ya uhamishaji ni mkataba ambao hautekelezi 'onERC721Received' + assert returnValue == method_id("onERC721Received(address,address,uint256,bytes)", output_type=bytes32) +``` + +Ikiwa marudio ni mkataba, lakini ambao haukubali tokeni za ERC-721 (au ambao umeamua kutokubali uhamishaji huu +maalum), rejeshwa nyuma. + +```python +@external +def approve(_approved: address, _tokenId: uint256): + """ + @dev Weka au thibitisha tena anwani iliyoidhinishwa kwa NFT. Anwani sifuri inaonyesha hakuna anwani iliyoidhinishwa. + Hutoa kosa isipokuwa `msg.sender` ni mmiliki wa sasa wa NFT, au mwendeshaji aliyeidhinishwa wa mmiliki wa sasa. + Hutoa kosa ikiwa `_tokenId` si NFT halali. (KUMBUKA: Hii haijaandikwa kwenye EIP) + Hutoa kosa ikiwa `_approved` ni mmiliki wa sasa. (KUMBUKA: Hii haijaandikwa kwenye EIP) + @param _approved Anwani ya kuidhinishwa kwa kitambulisho cha NFT kilichotajwa. + @param _tokenId Kitambulisho cha tokeni ya kuidhinishwa. + """ + owner: address = self.idToOwner[_tokenId] + # Hutoa kosa ikiwa `_tokenId` si NFT halali + assert owner != ZERO_ADDRESS + # Hutoa kosa ikiwa `_approved` ni mmiliki wa sasa + assert _approved != owner +``` + +Kwa kawaida, ikiwa hutaki kuwa na muidhinishaji, unateua anwani sifuri, si wewe mwenyewe. + +```python + # Angalia mahitaji + senderIsOwner: bool = self.idToOwner[_tokenId] == msg.sender + senderIsApprovedForAll: bool = (self.ownerToOperators[owner])[msg.sender] + assert (senderIsOwner or senderIsApprovedForAll) +``` + +Ili kuweka idhini unaweza kuwa mmiliki, au mwendeshaji aliyeidhinishwa na mmiliki. + +```python + # Weka idhini + self.idToApprovals[_tokenId] = _approved + log Approval(owner, _approved, _tokenId) + + +@external +def setApprovalForAll(_operator: address, _approved: bool): + """ + @dev Inawezesha au inalemaza idhini kwa mhusika wa tatu ("mwendeshaji") kusimamia mali zote za + `msg.sender`. Pia hutoa tukio la ApprovalForAll. + Hutoa kosa ikiwa `_operator` ni `msg.sender`. (KUMBUKA: Hii haijaandikwa kwenye EIP) + @notice Hii inafanya kazi hata kama mtumaji hamiliki tokeni zozote kwa wakati huo. + @param _operator Anwani ya kuongeza kwenye seti ya waendeshaji walioidhinishwa. + @param _approved Kweli kama waendeshaji wameidhinishwa, uongo kufuta idhini. + """ + # Hutoa kosa ikiwa `_operator` ni `msg.sender` + assert _operator != msg.sender + self.ownerToOperators[msg.sender][_operator] = _approved + log ApprovalForAll(msg.sender, _operator, _approved) +``` + +#### Chapa Tokeni Mpya na Uharibu Zilizopo {#mint-burn} + +Akaunti iliyounda mkataba ndiye `minter`, mtumiaji mkuu aliyeidhinishwa kuchapa +NFT mpya. Hata hivyo, hairuhusiwi kuchoma tokeni zilizopo. Ni mmiliki tu, au huluki +iliyoihdinishwa na mmiliki, ndiyo inayoweza kufanya hivyo. + +```python +### KAZI ZA KUCHAPA NA KUCHOMA ### + +@external +def mint(_to: address, _tokenId: uint256) -> bool: +``` + +Kazi hii daima inarejesha `Kweli`, kwa sababu ikiwa operesheni itashindwa, inarejeshwa nyuma. + +```python + """ + @dev Kazi ya kuchapa tokeni + Hutoa kosa ikiwa `msg.sender` si mchapaji. + Hutoa kosa ikiwa `_to` ni anwani sifuri. + Hutoa kosa ikiwa `_tokenId` inamilikiwa na mtu. + @param _to Anwani itakayopokea tokeni zilizochapwa. + @param _tokenId Kitambulisho cha tokeni cha kuchapa. + @return Boolean inayoonyesha kama operesheni ilifanikiwa. + """ + # Hutoa kosa ikiwa `msg.sender` si mchapaji + assert msg.sender == self.minter +``` + +Ni mchapaji tu (akaunti iliyounda mkataba wa ERC-721) anayeweza kuchapa tokeni mpya. Hili linaweza kuwa +tatizo siku zijazo ikiwa tunataka kubadilisha utambulisho wa mchapaji. Katika +mkataba wa uzalishaji, labda utataka kazi inayoruhusu mchapaji kuhamisha +marupurupu ya mchapaji kwa mtu mwingine. + +```python + # Hutoa kosa ikiwa `_to` ni anwani sifuri + assert _to != ZERO_ADDRESS + # Ongeza NFT. Hutoa kosa ikiwa `_tokenId` inamilikiwa na mtu + self._addTokenTo(_to, _tokenId) + log Transfer(ZERO_ADDRESS, _to, _tokenId) + return True +``` + +Kwa kawaida, uchapaji wa tokeni mpya huhesabiwa kama uhamishaji kutoka kwa anwani sifuri. + +```python + +@external +def burn(_tokenId: uint256): + """ + @dev Inachoma tokeni maalum ya ERC721. + Hutoa kosa isipokuwa `msg.sender` ni mmiliki wa sasa, mwendeshaji aliyeidhinishwa, au anwani + iliyoidhinishwa kwa NFT hii. + Hutoa kosa ikiwa `_tokenId` si NFT halali. + @param _tokenId kitambulisho cha uint256 cha tokeni ya ERC721 itakayochomwa. + """ + # Angalia mahitaji + assert self._isApprovedOrOwner(msg.sender, _tokenId) + owner: address = self.idToOwner[_tokenId] + # Hutoa kosa ikiwa `_tokenId` si NFT halali + assert owner != ZERO_ADDRESS + self._clearApproval(owner, _tokenId) + self._removeTokenFrom(owner, _tokenId) + log Transfer(owner, ZERO_ADDRESS, _tokenId) +``` + +Mtu yeyote anayeruhusiwa kuhamisha tokeni anaruhusiwa kuichoma. Wakati uchomaji unaonekana sawa na +uhamishaji kwenda kwa anwani sifuri, anwani sifuri haipokei tokeni hiyo. Hii inaturuhusu +kuachilia hifadhi yote iliyotumika kwa tokeni, ambayo inaweza kupunguza gharama ya gesi ya muamala. + +## Kutumia Mkataba Huu {#using-contract} + +Tofauti na Solidity, Vyper haina urithi. Hili ni chaguo la muundo la makusudi ili kufanya +msimbo uwe wazi zaidi na kwa hivyo iwe rahisi kuulinda. Kwa hivyo, ili kuunda mkataba wako wa Vyper ERC-721, unachukua mkataba +huu na kuubadilisha +ili kutekeleza mantiki ya biashara unayotaka. + +## Hitimisho {#conclusion} + +Kwa mapitio, haya ni baadhi ya mawazo muhimu zaidi katika mkataba huu: + +- Ili kupokea tokeni za ERC-721 kwa uhamishaji salama, mikataba inapaswa kutekeleza kiolesura cha `ERC721Receiver`. +- Hata ukitumia uhamishaji salama, tokeni bado zinaweza kukwama ukizituma kwa anwani ambayo ufunguo wake binafsi + haujulikani. +- Kunapokuwa na tatizo na operesheni, ni wazo zuri `kurejesha nyuma` wito, badala ya kurejesha tu + thamani ya kushindwa. +- Tokeni za ERC-721 zipo zinapokuwa na mmiliki. +- Kuna njia tatu za kuidhinishwa kuhamisha NFT. Unaweza kuwa mmiliki, kuidhinishwa kwa tokeni maalum, + au kuwa mwendeshaji wa tokeni zote za mmiliki. +- Matukio yaliyopita yanaonekana tu nje ya mnyororo wa bloku. Msimbo unaoendeshwa ndani ya mnyororo wa bloku hauwezi kuyaona. + +Sasa nenda na utekeleze mikataba salama ya Vyper. + +[Tazama hapa kwa kazi zangu zaidi](https://cryptodocguy.pro/). + diff --git a/public/content/translations/sw/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/sw/developers/tutorials/erc20-annotated-code/index.md new file mode 100644 index 00000000000..cdfc6f022cd --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/erc20-annotated-code/index.md @@ -0,0 +1,930 @@ +--- +title: "Mkataba wa ERC-20: Maelezo ya Kina" +description: Kuna nini katika mkataba wa OpenZeppelin ERC-20 na kwa nini kipo hapo? +author: Ori Pomerantz +lang: sw +tags: [ "Solidity", "erc-20" ] +skill: beginner +published: 2021-03-09 +--- + +## Utangulizi {#introduction} + +Moja ya matumizi yanayojulikana sana ya Ethereum ni pale kikundi cha watu kinapotengeneza tokeni inayoweza kuuzwa, kwa maana nyingine, sarafu yao wenyewe. Tokeni hizi kwa kawaida hufuata kiwango, +[ERC-20](/developers/docs/standards/tokens/erc-20/). Kiwango hiki hufanya iwezekanavyo kuandika zana, kama vile vidimbwi vya ukwasi na mikoba, ambavyo hufanya kazi na tokeni zote za ERC-20. Katika makala haya tutachambua +utekelezaji wa [OpenZeppelin Solidity ERC20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol), pamoja na +[ufafanuzi wa kiolesura](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol). + +Hii ni msimbo chanzo uliotiwa maelezo. Ikiwa unataka kutekeleza ERC-20, +[soma mafunzo haya](https://docs.openzeppelin.com/contracts/2.x/erc20-supply). + +## Kiolesura {#the-interface} + +Madhumuni ya kiwango kama ERC-20 ni kuruhusu utekelezaji wa tokeni nyingi ambazo zinaweza kufanya kazi katika mifumo mbalimbali, kama vile mikoba na exchange zilizogatuliwa. Ili kufanikisha hilo, tunatengeneza +[kiolesura](https://www.geeksforgeeks.org/solidity/solidity-basics-of-interface/). Msimbo wowote unaohitaji kutumia mkataba wa tokeni +unaweza kutumia ufafanuzi uleule katika kiolesura na uendane na mikataba yote ya tokeni inayoutumia, iwe ni mkoba kama +MetaMask, mfumo uliotawanywa kama etherscan.io, au mkataba tofauti kama vile kidimbwi cha ukwasi. + +![Kielelezo cha kiolesura cha ERC-20](erc20_interface.png) + +Ikiwa wewe ni mtayarishaji programu mwenye uzoefu, huenda unakumbuka kuona miundo inayofanana katika [Java](https://www.w3schools.com/java/java_interface.asp) +au hata katika [faili za vichwa vya C](https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html). + +Huu ni ufafanuzi wa [Kiolesura cha ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol) +kutoka OpenZeppelin. Ni tafsiri ya [kiwango kinachosomeka na binadamu](https://eips.ethereum.org/EIPS/eip-20) kuwa msimbo wa Solidity. Bila shaka, +kiolesura chenyewe hakifafanui _jinsi_ ya kufanya chochote. Hilo limeelezwa katika msimbo chanzo wa mkataba hapo chini. + +  + +```solidity +// SPDX-License-Identifier: MIT +``` + +Faili za Solidity zinapaswa kujumuisha kitambulisho cha leseni. [Unaweza kuona orodha ya leseni hapa](https://spdx.org/licenses/). Ikiwa unahitaji leseni +tofauti, lieleze tu kwenye maoni. + +  + +```solidity +pragma solidity >=0.6.0 <0.8.0; +``` + +Lugha ya Solidity bado inabadilika haraka, na matoleo mapya huenda yasiendane na msimbo wa zamani +([tazama hapa](https://docs.soliditylang.org/en/v0.7.0/070-breaking-changes.html)). Kwa hivyo, ni wazo zuri kubainisha si tu toleo la chini +kabisa la lugha, bali pia toleo la juu zaidi, la hivi karibuni ambalo ulifanyia majaribio msimbo. + +  + +```solidity +/** + * @dev Kiolesura cha kiwango cha ERC20 kama kilivyofafanuliwa katika EIP. + */ +``` + +`@dev` katika maoni ni sehemu ya [umbizo la NatSpec](https://docs.soliditylang.org/en/develop/natspec-format.html), linalotumika kutoa +nyaraka kutoka kwa msimbo chanzo. + +  + +```solidity +interface IERC20 { +``` + +Kwa kimapokeo, majina ya kiolesura huanza na `I`. + +  + +```solidity + /** + * @dev Hurejesha kiasi cha tokeni zilizopo. + */ + function totalSupply() external view returns (uint256); +``` + +Kazi hii ni ya `nje`, ikimaanisha [inaweza tu kuitwa kutoka nje ya mkataba](https://docs.soliditylang.org/en/v0.7.0/cheatsheet.html#index-2). +Hurejesha jumla ya tokeni zilizo katika mkataba. Thamani hii inarejeshwa kwa kutumia aina ya kawaida zaidi katika Ethereum, biti 256 zisizo na ishara (biti 256 ni +ukubwa asilia wa neno wa EVM). Kazi hii pia ni ya `kuangalia`, ambayo ina maana kwamba haibadilishi hali, hivyo inaweza kutekelezwa kwenye nodi moja badala ya kila nodi +katika mnyororo wa bloku kuitekeleza. Aina hii ya kazi haitengenezi muamala na haigharimu [gesi](/developers/docs/gas/). + +**Kumbuka:** Kinadharia inaweza kuonekana kuwa muundaji wa mkataba anaweza kudanganya kwa kurudisha jumla ndogo kuliko thamani halisi, na kufanya kila tokeni ionekane +kuwa ya thamani zaidi kuliko ilivyo. Hata hivyo, hofu hiyo inapuuza asili halisi ya mnyororo wa bloku. Kila kitu kinachotokea kwenye mnyororo wa bloku kinaweza kuthibitishwa na +kila nodi. Ili kufanikisha hili, msimbo wa lugha ya mashine na hifadhi ya kila mkataba hupatikana kwenye kila nodi. Ingawa hauhitajiki kuchapisha msimbo wa Solidity +kwa mkataba wako, hakuna mtu atakayekuchukulia kwa uzito isipokuwa uchapishe msimbo chanzo na toleo la Solidity ambalo lilitumiwa kuukusanya, ili uweze +kuthibitishwa dhidi ya msimbo wa lugha ya mashine ulioutoa. +Kwa mfano, angalia [mkataba huu](https://eth.blockscout.com/address/0xa530F85085C6FE2f866E7FdB716849714a89f4CD?tab=contract). + +  + +```solidity + /** + * @dev Hurejesha kiasi cha tokeni zinazomilikiwa na `akaunti`. + */ + function balanceOf(address account) external view returns (uint256); +``` + +Kama jina linavyosema, `balanceOf` inarejesha salio la akaunti. Akaunti za Ethereum zinatambuliwa katika Solidity kwa kutumia aina ya `anwani`, ambayo inashikilia biti 160. +Pia ni ya `nje` na ya `kuangalia`. + +  + +```solidity + /** + * @dev Huhamisha `kiasi` cha tokeni kutoka kwa akaunti ya mpigaji simu hadi kwa `mpokeaji`. + * + * Hurudisha thamani ya boolean inayoonyesha kama operesheni imefanikiwa. + * + * Hutoa tukio la {Uhamisho}. + */ + function transfer(address recipient, uint256 amount) external returns (bool); +``` + +Kazi ya `kuhamisha` huhamisha tokeni kutoka kwa mpigaji simu hadi anwani tofauti. Hii inahusisha mabadiliko ya hali, kwa hivyo si ya `kuangalia`. +Mtumiaji anapoita kazi hii huunda muamala na kugharimu gesi. Pia hutoa tukio, `Uhamisho`, ili kuwajulisha wote kwenye +mnyororo wa bloku kuhusu tukio hilo. + +Kazi hii ina aina mbili za matokeo kwa aina mbili tofauti za wapigaji simu: + +- Watumiaji wanaoita kazi moja kwa moja kutoka kwa kiolesura cha mtumiaji. Kwa kawaida mtumiaji huwasilisha muamala + na hasubiri jibu, ambalo linaweza kuchukua muda usiojulikana. Mtumiaji anaweza kuona kilichotokea + kwa kutafuta risiti ya muamala (ambayo inatambuliwa na hashi ya muamala) au kwa kutafuta + tukio la `Uhamisho`. +- Mikataba mingine, ambayo huita kazi kama sehemu ya muamala mkuu. Mikataba hiyo hupata matokeo mara moja, + kwa sababu huendeshwa katika muamala mmoja, kwa hivyo wanaweza kutumia thamani ya urejeshaji wa kazi. + +Aina sawa ya matokeo huundwa na kazi zingine zinazobadilisha hali ya mkataba. + +  + +Posho huruhusu akaunti kutumia baadhi ya tokeni za mmiliki mwingine. +Hii ni muhimu, kwa mfano, kwa mikataba inayofanya kazi kama wauzaji. Mikataba haiwezi +kufuatilia matukio, kwa hivyo ikiwa mnunuzi angehamisha tokeni kwa mkataba wa muuzaji +moja kwa moja mkataba huo haungejua umelipwa. Badala yake, mnunuzi huruhusu +mkataba wa muuzaji kutumia kiasi fulani, na muuzaji huhamisha kiasi hicho. +Hii inafanywa kupitia kazi ambayo mkataba wa muuzaji huita, ili mkataba wa muuzaji +uweze kujua kama imefanikiwa. + +```solidity + /** + * @dev Hurejesha idadi iliyobaki ya tokeni ambazo `mtumiaji` atakuwa + * anaruhusiwa kutumia kwa niaba ya `mmiliki` kupitia {transferFrom}. Hii ni + * sifuri kwa chaguo-msingi. + * + * Thamani hii hubadilika wakati {approve} au {transferFrom} zinapoitwa. + */ + function allowance(address owner, address spender) external view returns (uint256); +``` + +Kazi ya `posho` inaruhusu mtu yeyote kuuliza ili kuona ni posho gani anwani +moja (`mmiliki`) inaruhusu anwani nyingine (`mtumiaji`) kutumia. + +  + +```solidity + /** + * @dev Huweka `kiasi` kama posho ya `mtumiaji` juu ya tokeni za mpigaji simu. + * + * Hurudisha thamani ya boolean inayoonyesha kama operesheni imefanikiwa. + * + * MUHIMU: Jihadharini kwamba kubadilisha posho kwa njia hii huleta hatari + * kwamba mtu anaweza kutumia posho ya zamani na mpya kwa bahati mbaya + * ya mpangilio wa muamala. Suluhisho moja linalowezekana la kupunguza hali hii ya mbio + * ni kwanza kupunguza posho ya mtumiaji hadi 0 na kuweka + * thamani inayotakiwa baadaye: + * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 + * + * Hutoa tukio la {Uidhinishaji}. + */ + function approve(address spender, uint256 amount) external returns (bool); +``` + +Kazi ya `kuidhinisha` huunda posho. Hakikisha unasoma ujumbe kuhusu +jinsi inaweza kutumiwa vibaya. Katika Ethereum unadhibiti mpangilio wa miamala yako mwenyewe, +lakini huwezi kudhibiti mpangilio ambao miamala ya watu wengine +itatekelezwa, isipokuwa usipowasilisha muamala wako mwenyewe hadi uone +muamala wa upande mwingine umetokea. + +  + +```solidity + /** + * @dev Huhamisha tokeni za `kiasi` kutoka kwa `mtumaji` hadi kwa `mpokeaji` kwa kutumia + * mfumo wa posho. `kiasi` kisha kinakatwa kutoka kwa posho ya mpigaji simu + * . + * + * Hurudisha thamani ya boolean inayoonyesha kama operesheni imefanikiwa. + * + * Hutoa tukio la {Uhamisho}. + */ + function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); +``` + +Mwishowe, `transferFrom` hutumiwa na mtumiaji kutumia posho halisi. + +  + +```solidity + + /** + * @dev Hutolewa wakati tokeni za `thamani` zinapohamishwa kutoka akaunti moja (`kutoka`) kwenda + * nyingine (`kwenda`). + * + * Kumbuka kuwa `thamani` inaweza kuwa sifuri. + */ + event Transfer(address indexed from, address indexed to, uint256 value); + + /** + * @dev Hutolewa wakati posho ya `mtumiaji` kwa `mmiliki` imewekwa na + * wito kwa {approve}. `thamani` ni posho mpya. + */ + event Approval(address indexed owner, address indexed spender, uint256 value); +} +``` + +Matukio haya hutolewa wakati hali ya mkataba wa ERC-20 inapobadilika. + +## Mkataba Halisi {#the-actual-contract} + +Huu ndio mkataba halisi unaotekeleza kiwango cha ERC-20, +[umechukuliwa kutoka hapa](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol). +Haikusudiwi kutumiwa kama ilivyo, lakini unaweza +[kurithi](https://www.tutorialspoint.com/solidity/solidity_inheritance.htm) kutoka kwayo ili kuipanua iwe kitu kinachoweza kutumika. + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity >=0.6.0 <0.8.0; +``` + +  + +### Taarifa za Kuingiza {#import-statements} + +Mbali na ufafanuzi wa kiolesura hapo juu, ufafanuzi wa mkataba unaingiza faili zingine mbili: + +```solidity + +import "../../GSN/Context.sol"; +import "./IERC20.sol"; +import "../../math/SafeMath.sol"; +``` + +- `GSN/Context.sol` ni ufafanuzi unaohitajika kutumia [OpenGSN](https://www.opengsn.org/), mfumo unaowaruhusu watumiaji wasio na ether + kutumia mnyororo wa bloku. Kumbuka kuwa hili ni toleo la zamani, ikiwa unataka kuunganisha na OpenGSN + [tumia mafunzo haya](https://docs.opengsn.org/javascript-client/tutorial.html). +- [Maktaba ya SafeMath](https://ethereumdev.io/using-safe-math-library-to-prevent-from-overflows/), ambayo inazuia + kufurika/kupungua kwa hesabu kwa matoleo ya Solidity **<0.8.0**. Katika Solidity ≥0.8.0, operesheni za hesabu hurejea kiotomatiki + kwenye kufurika/kupungua, na kufanya SafeMath isiwe ya lazima. Mkataba huu unatumia SafeMath kwa uoanifu wa nyuma na + matoleo ya zamani ya mkusanyaji. + +  + +Maoni haya yanaelezea madhumuni ya mkataba. + +```solidity +/** + * @dev Utekelezaji wa kiolesura cha {IERC20}. + * + * Utekelezaji huu haujali jinsi tokeni zinavyoundwa. Hii inamaanisha + * kwamba mfumo wa usambazaji unapaswa kuongezwa katika mkataba uliochukuliwa kwa kutumia {_mint}. + * Kwa mfumo wa jumla tazama {ERC20PresetMinterPauser}. + * + * DONDOO: Kwa maandishi ya kina tazama mwongozo wetu + * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[Jinsi + * ya kutekeleza mifumo ya usambazaji]. + * + * Tumefuata miongozo ya jumla ya OpenZeppelin: kazi hurudisha badala + * ya kurudisha `false` kwenye kutofaulu. Tabia hii hata hivyo ni ya kawaida + * na haipingani na matarajio ya mifumo ya ERC20. + * + * Zaidi ya hayo, tukio la {Uidhinishaji} hutolewa kwenye wito kwa {transferFrom}. + * Hii inaruhusu mifumo kujenga upya posho kwa akaunti zote tu + * kwa kusikiliza matukio yaliyosemwa. Utekelezaji mwingine wa EIP hauwezi kutoa + * matukio haya, kwani haihitajiki na vipimo. + * + * Mwishowe, kazi zisizo za kawaida za {decreaseAllowance} na {increaseAllowance} + * zimeongezwa ili kupunguza maswala yanayojulikana karibu na kuweka + * posho. Tazama {IERC20-approve}. + */ +``` + +### Ufafanuzi wa Mkataba {#contract-definition} + +```solidity +contract ERC20 is Context, IERC20 { +``` + +Mstari huu unabainisha urithi, katika kesi hii kutoka `IERC20` kutoka juu na `Context`, kwa OpenGSN. + +  + +```solidity + + using SafeMath for uint256; + +``` + +Mstari huu unaunganisha maktaba ya `SafeMath` na aina ya `uint256`. Unaweza kupata maktaba hii +[hapa](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/math/SafeMath.sol). + +### Ufafanuzi wa Vigezo {#variable-definitions} + +Ufafanuzi huu unabainisha vigezo vya hali ya mkataba. Vigezo hivi vimetangazwa kuwa `vya faragha`, lakini +hiyo inamaanisha tu kwamba mikataba mingine kwenye mnyororo wa bloku haiwezi kuvisoma. _Hakuna +siri kwenye mnyororo wa bloku_, programu kwenye kila nodi ina hali ya kila mkataba +katika kila bloku. Kwa kimapokeo, vigezo vya hali vinaitwa `_`. + +Vigezo viwili vya kwanza ni [ramani](https://www.tutorialspoint.com/solidity/solidity_mappings.htm), +maana yake vina tabia sawa na [safu unganishi](https://wikipedia.org/wiki/Associative_array), +isipokuwa kwamba funguo ni thamani za nambari. Hifadhi inatengwa tu kwa maingizo ambayo yana thamani tofauti +na chaguo-msingi (sifuri). + +```solidity + mapping (address => uint256) private _balances; +``` + +Ramani ya kwanza, `_balances`, ni anwani na salio zao za tokeni hii. Ili kupata +salio, tumia sintaksia hii: `_balances[
]`. + +  + +```solidity + mapping (address => mapping (address => uint256)) private _allowances; +``` + +Kigezo hiki, `_allowances`, huhifadhi posho zilizoelezwa mapema. Faharasa ya kwanza ni mmiliki +wa tokeni, na ya pili ni mkataba wenye posho. Ili kupata kiasi ambacho anwani A inaweza +kutumia kutoka kwa akaunti ya anwani B, tumia `_allowances[B][A]`. + +  + +```solidity + uint256 private _totalSupply; +``` + +Kama jina linavyopendekeza, kigezo hiki hufuatilia jumla ya tokeni zote. + +  + +```solidity + string private _name; + string private _symbol; + uint8 private _decimals; +``` + +Vigezo hivi vitatu vinatumika kuboresha usomaji. Viwili vya kwanza vinajieleza, lakini `_decimals` +haieleweki. + +Kwa upande mmoja, Ethereum haina vigezo vya nambari za desimali au sehemu. Kwa upande mwingine, +binadamu wanapenda kuweza kugawanya tokeni. Sababu moja watu walitumia dhahabu kama sarafu ilikuwa ni +kwamba ilikuwa ngumu kutoa chenji wakati mtu alitaka kununua bata lenye thamani ya sehemu ya ng'ombe. + +Suluhisho ni kufuatilia nambari kamili, lakini kuhesabu badala ya tokeni halisi tokeni ya sehemu ambayo haina +karibu thamani yoyote. Katika kesi ya ether, tokeni ya sehemu inaitwa wei, na 10^18 wei ni sawa na moja +ETH. Wakati wa kuandika, 10,000,000,000,000 wei ni takriban senti moja ya Dola ya Marekani au Euro. + +Mifumo inahitaji kujua jinsi ya kuonyesha salio la tokeni. Ikiwa mtumiaji ana 3,141,000,000,000,000,000 wei, je, hiyo ni +3.14 ETH? 31.41 ETH? 3,141 ETH? Katika kesi ya ether imefafanuliwa kuwa 10^18 wei ni sawa na ETH, lakini kwa +tokeni yako unaweza kuchagua thamani tofauti. Ikiwa kugawanya tokeni hakuna maana, unaweza kutumia +thamani ya `_decimals` ya sifuri. Ikiwa unataka kutumia kiwango sawa na ETH, tumia thamani **18**. + +### Mjenzi {#the-constructor} + +```solidity + /** + * @dev Huweka thamani za {name} na {symbol}, na huanzisha {decimals} na + * thamani ya msingi ya 18. + * + * Ili kuchagua thamani tofauti kwa {decimals}, tumia {_setupDecimals}. + * + * Thamani hizi zote tatu hazibadiliki: zinaweza kuwekwa mara moja tu wakati + * wa ujenzi. + */ + constructor (string memory name_, string memory symbol_) public { + // Katika Solidity ≥0.7.0, 'public' ni dhahiri na inaweza kuachwa. + + _name = name_; + _symbol = symbol_; + _decimals = 18; + } +``` + +Mjenzi huitwa wakati mkataba unapoundwa kwa mara ya kwanza. Kwa kimapokeo, vigezo vya kazi huitwa `_`. + +### Kazi za Kiolesura cha Mtumiaji {#user-interface-functions} + +```solidity + /** + * @dev Hurejesha jina la tokeni. + */ + function name() public view returns (string memory) { + return _name; + } + + /** + * @dev Hurejesha alama ya tokeni, kawaida toleo fupi la + * jina. + */ + function symbol() public view returns (string memory) { + return _symbol; + } + + /** + * @dev Hurejesha idadi ya desimali zinazotumika kupata uwakilishi wake kwa mtumiaji. + * Kwa mfano, ikiwa `decimals` ni sawa na `2`, salio la tokeni `505` linapaswa + * kuonyeshwa kwa mtumiaji kama `5,05` (`505 / 10 ** 2`). + * + * Tokeni kawaida huchagua thamani ya 18, zikiiga uhusiano kati + * ya ether na wei. Hii ndiyo thamani ambayo {ERC20} hutumia, isipokuwa {_setupDecimals} + * ikiitwa. + * + * KUMBUKA: Habari hii inatumika tu kwa madhumuni ya _kuonyesha_: haiathiri + * kwa njia yoyote hesabu zozote za mkataba, ikiwa ni pamoja na + * {IERC20-balanceOf} na {IERC20-transfer}. + */ + function decimals() public view returns (uint8) { + return _decimals; + } +``` + +Kazi hizi, `name`, `symbol`, na `decimals` husaidia violesura vya mtumiaji kujua kuhusu mkataba wako ili waweze kuuonyesha vizuri. + +Aina ya urejeshaji ni `string memory`, ikimaanisha kurudisha mfuatano ambao umehifadhiwa kwenye kumbukumbu. Vigezo, kama vile +mifufulizo, vinaweza kuhifadhiwa katika maeneo matatu: + +| | Muda wa Maisha | Ufikiaji wa Mkataba | Gharama ya Gesi | +| ---------- | ----------------- | ------------------- | ---------------------------------------------------------------------- | +| Kumbukumbu | Wito wa kazi | Soma/Andika | Makumi au mamia (juu zaidi kwa maeneo ya juu zaidi) | +| Calldata | Wito wa kazi | Soma Pekee | Haiwezi kutumika kama aina ya urejeshaji, tu aina ya kigezo cha kazi | +| Ghala | Hadi kubadilishwa | Soma/Andika | Juu (800 kwa kusoma, 20k kwa kuandika) | + +Katika kesi hii, `memory` ni chaguo bora zaidi. + +### Soma Taarifa za Tokeni {#read-token-information} + +Hizi ni kazi zinazotoa habari kuhusu tokeni, ama jumla ya usambazaji au salio la +akaunti. + +```solidity + /** + * @dev Tazama {IERC20-totalSupply}. + */ + function totalSupply() public view override returns (uint256) { + return _totalSupply; + } +``` + +Kazi ya `totalSupply` inarejesha jumla ya usambazaji wa tokeni. + +  + +```solidity + /** + * @dev Tazama {IERC20-balanceOf}. + */ + function balanceOf(address account) public view override returns (uint256) { + return _balances[account]; + } +``` + +Soma salio la akaunti. Kumbuka kuwa mtu yeyote anaruhusiwa kupata salio la akaunti +ya mtu mwingine. Hakuna maana ya kujaribu kuficha habari hii, kwa sababu inapatikana kwenye kila +nodi hata hivyo. _Hakuna siri kwenye mnyororo wa bloku._ + +### Hamisha Tokeni {#transfer-tokens} + +```solidity + /** + * @dev Tazama {IERC20-transfer}. + * + * Mahitaji: + * + * - `mpokeaji` hawezi kuwa anwani ya sifuri. + * - mpigaji simu lazima awe na salio la angalau `kiasi`. + */ + function transfer(address recipient, uint256 amount) public virtual override returns (bool) { +``` + +Kazi ya `kuhamisha` inaitwa ili kuhamisha tokeni kutoka kwa akaunti ya mtumaji hadi kwa nyingine tofauti. Kumbuka +kwamba ingawa inarudisha thamani ya boolean, thamani hiyo daima ni **kweli**. Ikiwa uhamisho +utashindwa mkataba unarudisha wito. + +  + +```solidity + _transfer(_msgSender(), recipient, amount); + return true; + } +``` + +Kazi ya `_transfer` inafanya kazi halisi. Ni kazi ya faragha ambayo inaweza tu kuitwa na +kazi zingine za mkataba. Kwa kimapokeo kazi za faragha zinaitwa `_`, sawa na vigezo vya +hali. + +Kawaida katika Solidity tunatumia `msg.sender` kwa mtumaji wa ujumbe. Hata hivyo, hiyo inavunja +[OpenGSN](http://opengsn.org/). Ikiwa tunataka kuruhusu miamala isiyo na ether na tokeni yetu, tunahitaji +kutumia `_msgSender()`. Inarudisha `msg.sender` kwa miamala ya kawaida, lakini kwa isiyo na ether +hurudisha mtia saini asilia na sio mkataba uliopitisha ujumbe. + +### Kazi za Posho {#allowance-functions} + +Hizi ni kazi zinazotekeleza utendaji wa posho: `allowance`, `approve`, `transferFrom`, +na `_approve`. Zaidi ya hayo, utekelezaji wa OpenZeppelin unapita kiwango cha msingi kujumuisha baadhi ya vipengele vinavyoboresha +usalama: `increaseAllowance`, na `decreaseAllowance`. + +#### Kazi ya posho {#allowance} + +```solidity + /** + * @dev Tazama {IERC20-allowance}. + */ + function allowance(address owner, address spender) public view virtual override returns (uint256) { + return _allowances[owner][spender]; + } +``` + +Kazi ya `posho` inaruhusu kila mtu kuangalia posho yoyote. + +#### Kazi ya kuidhinisha {#approve} + +```solidity + /** + * @dev Tazama {IERC20-approve}. + * + * Mahitaji: + * + * - `mtumiaji` hawezi kuwa anwani ya sifuri. + */ + function approve(address spender, uint256 amount) public virtual override returns (bool) { +``` + +Kazi hii inaitwa ili kuunda posho. Inafanana na kazi ya `kuhamisha` hapo juu: + +- Kazi hii huita tu kazi ya ndani (katika kesi hii, `_approve`) ambayo inafanya kazi halisi. +- Kazi hii hurudisha `kweli` (ikiwa imefanikiwa) au hurudisha nyuma (ikiwa sivyo). + +  + +```solidity + _approve(_msgSender(), spender, amount); + return true; + } +``` + +Tunatumia kazi za ndani ili kupunguza idadi ya maeneo ambapo mabadiliko ya hali hutokea. Kazi _yoyote_ inayobadilisha +hali ni hatari inayowezekana ya usalama ambayo inahitaji kukaguliwa kwa usalama. Kwa njia hii tuna nafasi chache za kukosea. + +#### Kazi ya transferFrom {#transferFrom} + +Hii ni kazi ambayo mtumiaji huita ili kutumia posho. Hii inahitaji operesheni mbili: kuhamisha kiasi +kinachotumiwa na kupunguza posho kwa kiasi hicho. + +```solidity + /** + * @dev Tazama {IERC20-transferFrom}. + * + * Hutoa tukio la {Uidhinishaji} linaloonyesha posho iliyosasishwa. Hii haihitajiki + * na EIP. Tazama dokezo mwanzoni mwa {ERC20}. + * + * Mahitaji: + * + * - `mtumaji` na `mpokeaji` hawawezi kuwa anwani ya sifuri. + * - `mtumaji` lazima awe na salio la angalau `kiasi`. + * - mpigaji simu lazima awe na posho kwa tokeni za ``mtumaji`` za angalau + * `kiasi`. + */ + function transferFrom(address sender, address recipient, uint256 amount) public virtual + override returns (bool) { + _transfer(sender, recipient, amount); +``` + +  + +Wito wa kazi wa `a.sub(b, "ujumbe")` hufanya mambo mawili. Kwanza, inakokotoa `a-b`, ambayo ni posho mpya. +Pili, inahakikisha kuwa matokeo haya si hasi. Ikiwa ni hasi wito unarudishwa na ujumbe uliotolewa. Kumbuka kwamba wito unapobadilishwa uchakataji wowote uliofanywa awali wakati wa wito huo hupuuzwa kwa hivyo hatuhitaji +kubatilisha `_transfer`. + +```solidity + _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, + "ERC20: kiasi cha uhamisho kinazidi posho")); + return true; + } +``` + +#### Nyongeza za usalama za OpenZeppelin {#openzeppelin-safety-additions} + +Ni hatari kuweka posho isiyo ya sifuri kwa thamani nyingine isiyo ya sifuri, +kwa sababu unadhibiti tu mpangilio wa miamala yako, si ya mtu mwingine yeyote. Fikiria una +watumiaji wawili, Alice ambaye ni mnyofu na Bill ambaye si mwaminifu. Alice anataka huduma fulani kutoka kwa +Bill, ambayo anadhani inagharimu tokeni tano - kwa hivyo anampa Bill posho ya tokeni tano. + +Kisha kitu kinabadilika na bei ya Bill inapanda hadi tokeni kumi. Alice, ambaye bado anataka huduma hiyo, +hutuma muamala unaoweka posho ya Bill kuwa kumi. Papo hapo Bill anapoona muamala huu mpya +katika dimbwi la miamala hutuma muamala unaotumia tokeni tano za Alice na una bei ya juu zaidi +ya gesi ili ichimbwe haraka zaidi. Kwa njia hiyo Bill anaweza kutumia kwanza tokeni tano na kisha, +mara posho mpya ya Alice itakapochimbwa, kutumia kumi zaidi kwa bei ya jumla ya tokeni kumi na tano, zaidi ya +ambavyo Alice alikusudia kuidhinisha. Mbinu hii inaitwa +[Uendeshaji - wa mbele](https://consensysdiligence.github.io/smart-contract-best-practices/attacks/#front-running) + +| Muamala wa Alice | Nonce ya Alice | Muamala wa Bill | Nonce ya Bill | Posho ya Bill | Jumla ya Mapato ya Bill kutoka kwa Alice | +| ------------------------------------ | -------------- | ------------------------------------------------ | ------------- | ------------- | ---------------------------------------- | +| approve(Bill, 5) | 10 | | | 5 | 0 | +| | | transferFrom(Alice, Bill, 5) | 10,123 | 0 | 5 | +| approve(Bill, 10) | 11 | | | 10 | 5 | +| | | transferFrom(Alice, Bill, 10) | 10,124 | 0 | 15 | + +Ili kuepuka tatizo hili, kazi hizi mbili (`increaseAllowance` na `decreaseAllowance`) zinakuruhusu +kurekebisha posho kwa kiasi maalum. Kwa hiyo kama Bill tayari alikuwa ametumia tokeni tano, ataweza tu +kutumia tano zaidi. Kulingana na muda, kuna njia mbili hii inaweza kufanya kazi, zote mbili +zikimalizika na Bill kupata tokeni kumi tu: + +A: + +| Muamala wa Alice | Nonce ya Alice | Muamala wa Bill | Nonce ya Bill | Posho ya Bill | Jumla ya Mapato ya Bill kutoka kwa Alice | +| --------------------------------------------- | -------------: | ----------------------------------------------- | ------------: | ------------: | ---------------------------------------- | +| approve(Bill, 5) | 10 | | | 5 | 0 | +| | | transferFrom(Alice, Bill, 5) | 10,123 | 0 | 5 | +| increaseAllowance(Bill, 5) | 11 | | | 0+5 = 5 | 5 | +| | | transferFrom(Alice, Bill, 5) | 10,124 | 0 | 10 | + +B: + +| Muamala wa Alice | Nonce ya Alice | Muamala wa Bill | Nonce ya Bill | Posho ya Bill | Jumla ya Mapato ya Bill kutoka kwa Alice | +| --------------------------------------------- | -------------: | ------------------------------------------------ | ------------: | ------------: | ---------------------------------------: | +| approve(Bill, 5) | 10 | | | 5 | 0 | +| increaseAllowance(Bill, 5) | 11 | | | 5+5 = 10 | 0 | +| | | transferFrom(Alice, Bill, 10) | 10,124 | 0 | 10 | + +```solidity + /** + * @dev Huongeza kiatomiki posho iliyotolewa kwa `mtumiaji` na mpigaji. + * + * Hii ni mbadala ya {approve} ambayo inaweza kutumika kama upunguzaji wa + * matatizo yaliyoelezwa katika {IERC20-approve}. + * + * Hutoa tukio la {Uidhinishaji} linaloonyesha posho iliyosasishwa. + * + * Mahitaji: + * + * - `mtumiaji` hawezi kuwa anwani ya sifuri. + */ + function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { + _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); + return true; + } +``` + +Kazi ya `a.add(b)` ni nyongeza salama. Katika kesi isiyowezekana kwamba `a`+`b`>=`2^256` haizunguki +kama nyongeza ya kawaida inavyofanya. + +```solidity + + /** + * @dev Hupunguza kiatomiki posho iliyotolewa kwa `mtumiaji` na mpigaji. + * + * Hii ni mbadala ya {approve} ambayo inaweza kutumika kama upunguzaji wa + * matatizo yaliyoelezwa katika {IERC20-approve}. + * + * Hutoa tukio la {Uidhinishaji} linaloonyesha posho iliyosasishwa. + * + * Mahitaji: + * + * - `mtumiaji` hawezi kuwa anwani ya sifuri. + * - `mtumiaji` lazima awe na posho kwa mpigaji wa angalau + * `subtractedValue`. + */ + function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { + _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, + "ERC20: posho iliyopunguzwa chini ya sifuri")); + return true; + } +``` + +### Kazi Zinazobadilisha Taarifa za Tokeni {#functions-that-modify-token-information} + +Hizi ni kazi nne zinazofanya kazi halisi: `_transfer`, `_mint`, `_burn`, na `_approve`. + +#### Kazi ya _transfer {#_transfer} + +```solidity + /** + * @dev Huhamisha tokeni `kiasi` kutoka `mtumaji` hadi `mpokeaji`. + * + * Hii ni kazi ya ndani inayofanana na {transfer}, na inaweza kutumika kwa + * k.m., kutekeleza ada za tokeni otomatiki, mifumo ya kupunguza, n.k. + * + * Hutoa tukio la {Uhamisho}. + * + * Mahitaji: + * + * - `mtumaji` hawezi kuwa anwani ya sifuri. + * - `mpokeaji` hawezi kuwa anwani ya sifuri. + * - `mtumaji` lazima awe na salio la angalau `kiasi`. + */ + function _transfer(address sender, address recipient, uint256 amount) internal virtual { +``` + +Kazi hii, `_transfer`, huhamisha tokeni kutoka akaunti moja hadi nyingine. Inaitwa na `transfer` (kwa uhamisho kutoka kwa akaunti ya mtumaji mwenyewe) na `transferFrom` (kwa kutumia posho +kwa uhamisho kutoka kwa akaunti ya mtu mwingine). + +  + +```solidity + require(sender != address(0), "ERC20: uhamisho kutoka kwa anwani ya sifuri"); + require(recipient != address(0), "ERC20: uhamisho kwenda kwa anwani ya sifuri"); +``` + +Hakuna mtu anayemiliki anwani sifuri katika Ethereum (yaani, hakuna mtu anayejua ufunguo binafsi ambao ufunguo wake wa umma unaofanana +unabadilishwa kuwa anwani ya sifuri). Watu wanapotumia anwani hiyo, kawaida huwa ni hitilafu ya programu - kwa hivyo tunashindwa +ikiwa anwani ya sifuri itatumika kama mtumaji au mpokeaji. + +  + +```solidity + _beforeTokenTransfer(sender, recipient, amount); + +``` + +Kuna njia mbili za kutumia mkataba huu: + +1. Itumie kama kiolezo cha msimbo wako mwenyewe +2. [Rithi kutoka kwayo](https://www.bitdegree.org/learn/solidity-inheritance), na ubadilishe tu kazi unazohitaji kurekebisha + +Njia ya pili ni bora zaidi kwa sababu msimbo wa OpenZeppelin ERC-20 tayari umekaguliwa na kuonyeshwa kuwa salama. Unapotumia urithi +ni wazi ni kazi gani unazorekebisha, na ili kuamini mkataba wako watu wanahitaji tu kukagua kazi hizo maalum. + +Mara nyingi ni muhimu kutekeleza kazi kila wakati tokeni zinapohamishwa. Hata hivyo, `_transfer` ni kazi muhimu sana na inawezekana +kuiandika bila usalama (tazama hapa chini), kwa hivyo ni bora si kuibadilisha. Suluhisho ni `_beforeTokenTransfer`, kazi ya +[ndoano](https://wikipedia.org/wiki/Hooking). Unaweza kubadilisha kazi hii, na itaitwa kwenye kila uhamisho. + +  + +```solidity + _balances[sender] = _balances[sender].sub(amount, "ERC20: kiasi cha uhamisho kinazidi salio"); + _balances[recipient] = _balances[recipient].add(amount); +``` + +Hizi ni mistari inayofanya uhamisho halisi. Kumbuka kuwa hakuna **kitu** kati yao, na kwamba tunapunguza +kiasi kilichohamishwa kutoka kwa mtumaji kabla ya kukiongeza kwa mpokeaji. Hii ni muhimu kwa sababu kama kungekuwa na +wito kwa mkataba tofauti katikati, ingeweza kutumiwa kudanganya mkataba huu. Kwa njia hii uhamisho +ni wa atomiki, hakuna kinachoweza kutokea katikati yake. + +  + +```solidity + emit Transfer(sender, recipient, amount); + } +``` + +Mwishowe, toa tukio la `Uhamisho`. Matukio hayapatikani kwa mikataba-erevu, lakini msimbo unaoendeshwa nje ya mnyororo wa bloku +unaweza kusikiliza matukio na kuyajibu. Kwa mfano, mkoba unaweza kufuatilia wakati mmiliki anapata tokeni zaidi. + +#### Kazi za _mint na _burn {#_mint-and-_burn} + +Kazi hizi mbili (`_mint` na `_burn`) hubadilisha jumla ya usambazaji wa tokeni. +Ziko ndani na hakuna kazi inayowaita katika mkataba huu, +kwa hivyo ni muhimu tu ikiwa utarithi kutoka kwa mkataba na kuongeza mantiki yako mwenyewe +kuamua chini ya hali gani kuzalisha tokeni mpya au kuchoma zilizopo. + +**KUMBUKA:** Kila tokeni ya ERC-20 ina mantiki yake ya biashara inayoelekeza usimamizi wa tokeni. +Kwa mfano, mkataba wa usambazaji uliowekwa unaweza kuita tu `_mint` +katika mjenzi na kamwe usiite `_burn`. Mkataba unaouza tokeni +utaite `_mint` unapolipwa, na pengine utaite `_burn` wakati fulani +ili kuepuka mfumuko wa bei usiodhibitiwa. + +```solidity + /** @dev Huunda tokeni za `kiasi` na kuzikabidhi kwa `akaunti`, akiongeza + * jumla ya usambazaji. + * + * Hutoa tukio la {Uhamisho} na `kutoka` ikiwa imewekwa kwenye anwani ya sifuri. + * + * Mahitaji: + * + * - `kwa` hawezi kuwa anwani ya sifuri. + */ + function _mint(address account, uint256 amount) internal virtual { + require(account != address(0), "ERC20: zalisha kwa anwani ya sifuri"); + _beforeTokenTransfer(address(0), account, amount); + _totalSupply = _totalSupply.add(amount); + _balances[account] = _balances[account].add(amount); + emit Transfer(address(0), account, amount); + } +``` + +Hakikisha unasasisha `_totalSupply` wakati jumla ya idadi ya tokeni inapobadilika. + +  + +```solidity + /** + * @dev Huharibu tokeni za `kiasi` kutoka kwa `akaunti`, ikipunguza + * jumla ya usambazaji. + * + * Hutoa tukio la {Uhamisho} na `kwa` ikiwa imewekwa kwenye anwani ya sifuri. + * + * Mahitaji: + * + * - `akaunti` haiwezi kuwa anwani ya sifuri. + * - `akaunti` lazima iwe na angalau tokeni za `kiasi`. + */ + function _burn(address account, uint256 amount) internal virtual { + require(account != address(0), "ERC20: choma kutoka kwa anwani ya sifuri"); + + _beforeTokenTransfer(account, address(0), amount); + + _balances[account] = _balances[account].sub(amount, "ERC20: kiasi cha kuchoma kinazidi salio"); + _totalSupply = _totalSupply.sub(amount); + emit Transfer(account, address(0), amount); + } +``` + +Kazi ya `_burn` inakaribia kufanana na `_mint`, isipokuwa inaenda kinyume chake. + +#### Kazi ya _approve {#_approve} + +Hii ni kazi inayobainisha posho. Kumbuka kuwa inaruhusu mmiliki kubainisha +posho ambayo ni ya juu kuliko salio la sasa la mmiliki. Hii ni sawa kwa sababu salio +huangaliwa wakati wa uhamisho, ambapo inaweza kuwa tofauti na salio wakati posho +inapoundwa. + +```solidity + /** + * @dev Huweka `kiasi` kama posho ya `mtumiaji` juu ya tokeni za `mmiliki`. + * + * Kazi hii ya ndani ni sawa na `approve`, na inaweza kutumika kwa + * k.m., kuweka posho za kiotomatiki kwa mifumo fulani, n.k. + * + * Hutoa tukio la {Uidhinishaji}. + * + * Mahitaji: + * + * - `mmiliki` hawezi kuwa anwani ya sifuri. + * - `mtumiaji` hawezi kuwa anwani ya sifuri. + */ + function _approve(address owner, address spender, uint256 amount) internal virtual { + require(owner != address(0), "ERC20: idhinisha kutoka kwa anwani ya sifuri"); + require(spender != address(0), "ERC20: idhinisha kwa anwani ya sifuri"); + + _allowances[owner][spender] = amount; +``` + +  + +Toa tukio la `Uidhinishaji`. Kulingana na jinsi mfumo unavyoandikwa, mkataba wa mtumiaji unaweza kuambiwa kuhusu +idhini ama na mmiliki au na seva inayosikiliza matukio haya. + +```solidity + emit Approval(owner, spender, amount); + } + +``` + +### Rekebisha Kigezo cha Desimali {#modify-the-decimals-variable} + +```solidity + + + /** + * @dev Huweka {decimals} kwa thamani tofauti na ile ya msingi ya 18. + * + * ONYO: Kazi hii inapaswa kuitwa tu kutoka kwa mjenzi. Mifumo mingi + * inayoingiliana na mikataba ya tokeni haitatarajia + * {decimals} kubadilika, na inaweza kufanya kazi kimakosa ikibadilika. + */ + function _setupDecimals(uint8 decimals_) internal { + _decimals = decimals_; + } +``` + +Kazi hii inarekebisha kigezo cha `_decimals` ambacho kinatumika kuwaambia violesura vya mtumiaji jinsi ya kutafsiri kiasi. +Unapaswa kuiita kutoka kwa mjenzi. Itakuwa si uaminifu kuiita wakati wowote unaofuata, na mifumo +haikuundwa kuishughulikia. + +### Vidokezo {#hooks} + +```solidity + + /** + * @dev Ndoano inayoitwa kabla ya uhamisho wowote wa tokeni. Hii inajumuisha + * kuzalisha na kuchoma. + * + * Masharti ya wito: + * + * - wakati `kutoka` na `kwa` zote si sifuri, `kiasi` cha tokeni za ``kutoka`` + * kitahamishiwa kwa `kwa`. + * - wakati `kutoka` ni sifuri, tokeni za `kiasi` zitazalishwa kwa `kwa`. + * - wakati `kwa` ni sifuri, `kiasi` cha tokeni za ``kutoka`` kitachomwa. + * - `kutoka` na `kwa` kamwe haviko zote sifuri. + * + * Ili kujifunza zaidi kuhusu ndoano, nenda kwa xref:ROOT:extending-contracts.adoc#using-hooks[Kutumia Ndoano]. + */ + function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } +} +``` + +Hii ni kazi ya ndoano ya kuitwa wakati wa uhamisho. Hapa ni tupu, lakini ukihitaji +iwe na kitu unaibadilisha tu. + +## Hitimisho {#conclusion} + +Kwa mapitio, hapa kuna baadhi ya mawazo muhimu zaidi katika mkataba huu (kwa maoni yangu, yako yanaweza kutofautiana): + +- _Hakuna siri kwenye mnyororo wa bloku_. Taarifa yoyote ambayo mkataba-erevu unaweza kuipata + inapatikana kwa ulimwengu wote. +- Unaweza kudhibiti mpangilio wa miamala yako mwenyewe, lakini si wakati miamala ya watu wengine + inatokea. Hii ndiyo sababu kubadilisha posho kunaweza kuwa hatari, kwa sababu kunamruhusu + mtumiaji kutumia jumla ya posho zote mbili. +- Thamani za aina ya `uint256` huzunguka. Kwa maneno mengine, _0-1=2^256-1_. Ikiwa hiyo si tabia inayotakiwa, + unapaswa kuiangalia (au kutumia maktaba ya SafeMath ambayo inakufanyia). Kumbuka kuwa hii ilibadilika katika + [Solidity 0.8.0](https://docs.soliditylang.org/en/breaking/080-breaking-changes.html). +- Fanya mabadiliko yote ya hali ya aina maalum katika sehemu maalum, kwa sababu inafanya ukaguzi kuwa rahisi. + Hii ndiyo sababu tuna, kwa mfano, `_approve`, ambayo inaitwa na `approve`, `transferFrom`, + `increaseAllowance`, na `decreaseAllowance` +- Mabadiliko ya hali yanapaswa kuwa ya atomiki, bila kitendo kingine chochote katikati yao (kama unavyoweza kuona + katika `_transfer`). Hii ni kwa sababu wakati wa mabadiliko ya hali una hali isiyolingana. Kwa mfano, + kati ya wakati unapopunguza kutoka kwa salio la mtumaji na wakati unapoongeza kwa salio la + mpokeaji kuna tokeni chache zilizopo kuliko inavyopaswa kuwa. Hii inaweza kutumiwa vibaya ikiwa kuna + operesheni kati yao, hasa wito kwa mkataba tofauti. + +Sasa kwa kuwa umeona jinsi mkataba wa OpenZeppelin ERC-20 unavyoandikwa, na hasa jinsi unavyofanywa +kuwa salama zaidi, nenda uandike mikataba na mifumo yako salama. + +[Tazama hapa kwa kazi zangu zaidi](https://cryptodocguy.pro/). diff --git a/public/content/translations/sw/developers/tutorials/erc20-with-safety-rails/index.md b/public/content/translations/sw/developers/tutorials/erc20-with-safety-rails/index.md new file mode 100644 index 00000000000..f4ea4aa30d1 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/erc20-with-safety-rails/index.md @@ -0,0 +1,217 @@ +--- +title: ERC-20 yenye Kinga za Usalama +description: Jinsi ya kuwasaidia watu kuepuka makosa ya kizembe +author: Ori Pomerantz +lang: sw +tags: [ "erc-20" ] +skill: beginner +published: 2022-08-15 +--- + +## Utangulizi {#introduction} + +Moja ya mambo makuu kuhusu Ethereum ni kwamba hakuna mamlaka kuu inayoweza kurekebisha au kutengua miamala yako. Moja ya matatizo makuu ya Ethereum ni kwamba hakuna mamlaka kuu yenye uwezo wa kutengua makosa ya mtumiaji au miamala haramu. Katika makala haya utajifunza kuhusu baadhi ya makosa ya kawaida ambayo watumiaji hufanya na tokeni za [ERC-20](/developers/docs/standards/tokens/erc-20/), pamoja na jinsi ya kuunda mikataba ya ERC-20 inayowasaidia watumiaji kuepuka makosa hayo, au inayopa mamlaka kuu nguvu fulani (kwa mfano kufungia akaunti). + +Kumbuka kwamba ingawa tutatumia mkataba wa tokeni wa [OpenZeppelin ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/token/ERC20), makala haya hayaielezei kwa undani sana. Unaweza kupata maelezo haya [hapa](/developers/tutorials/erc20-annotated-code). + +Ikiwa unataka kuona msimbo chanzo kamili: + +1. Fungua [Remix IDE](https://remix.ethereum.org/). +2. Bofya aikoni ya kuiga ya github (![aikoni ya kuiga ya github](icon-clone.png)). +3. Iga hifadhi ya github `https://github.com/qbzzt/20220815-erc20-safety-rails`. +4. Fungua **contracts > erc20-safety-rails.sol**. + +## Kuunda mkataba wa ERC-20 {#creating-an-erc-20-contract} + +Kabla hatujaongeza utendaji wa kinga za usalama, tunahitaji mkataba wa ERC-20. Katika makala haya tutatumia [Mchawi wa Mikataba ya OpenZeppelin](https://docs.openzeppelin.com/contracts/5.x/wizard). Ifungue katika kivinjari kingine na ufuate maagizo haya: + +1. Chagua **ERC20**. + +2. Weka mipangilio hii: + + | Kigezo | Thamani | + | -------------------- | ---------------- | + | Jina | SafetyRailsToken | + | Alama | SAFE | + | Premint | 1000 | + | Vipengele | Hakuna | + | Udhibiti wa Ufikiaji | Ownable | + | Uwezo wa Kuboresha | Hakuna | + +3. Sogeza juu na ubofye **Fungua kwenye Remix** (kwa Remix) au **Pakua** ili utumie mazingira tofauti. Nitachukulia kuwa unatumia Remix, ikiwa unatumia kitu kingine, fanya tu mabadiliko yanayofaa. + +4. Sasa tuna mkataba wa ERC-20 unaofanya kazi kikamilifu. Unaweza kupanua `.deps` > `npm` ili kuona msimbo ulioingizwa. + +5. Kusanya, sambaza, na cheza na mkataba ili kuona kuwa inafanya kazi kama mkataba wa ERC-20. Ikiwa unahitaji kujifunza jinsi ya kutumia Remix, [tumia mafunzo haya](https://remix.ethereum.org/?#activate=udapp,solidity,LearnEth). + +## Makosa ya kawaida {#common-mistakes} + +### Makosa {#the-mistakes} + +Wakati mwingine watumiaji hutuma tokeni kwenye anwani isiyo sahihi. Ingawa hatuwezi kusoma akili zao kujua walichokusudia kufanya, kuna aina mbili za makosa yanayotokea sana na ni rahisi kugundua: + +1. Kutuma tokeni kwenye anwani ya mkataba wenyewe. Kwa mfano, tokeni ya OP ya [Optimism](https://optimism.mirror.xyz/qvd0WfuLKnePm1Gxb9dpGchPf5uDz5NSMEFdgirDS4c) iliweza kukusanya [zaidi ya 120,000](https://optimism.blockscout.com/address/0x4200000000000000000000000000000000000042) tokeni za OP katika chini ya miezi miwili. Hii inawakilisha kiasi kikubwa cha mali ambayo inawezekana watu wameipoteza tu. + +2. Kutuma tokeni kwenye anwani tupu, ile ambayo haiendani na [akaunti inayomilikiwa nje](/developers/docs/accounts/#externally-owned-accounts-and-key-pairs) au [mkataba-erevu](/developers/docs/smart-contracts). Ingawa sina takwimu za mara ngapi hili hutokea, [tukio moja lingeweza kugharimu tokeni 20,000,000](https://gov.optimism.io/t/message-to-optimism-community-from-wintermute/2595). + +### Kuzuia uhamisho {#preventing-transfers} + +Mkataba wa OpenZeppelin ERC-20 unajumuisha [kiunganishi, `_beforeTokenTransfer`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol#L364-L368), ambacho huitwa kabla ya tokeni kuhamishwa. Kwa chaguo-msingi kiunganishi hiki hakifanyi chochote, lakini tunaweza kuweka utendaji wetu wenyewe juu yake, kama vile ukaguzi unaorejesha nyuma ikiwa kuna tatizo. + +Ili kutumia kiunganishi, ongeza chaguo hili la kukokotoa baada ya kiunda: + +```solidity + function _beforeTokenTransfer(address from, address to, uint256 amount) + internal virtual + override(ERC20) + { + super._beforeTokenTransfer(from, to, amount); + } +``` + +Baadhi ya sehemu za chaguo hili la kukokotoa zinaweza kuwa mpya ikiwa huna uzoefu sana na Solidity: + +```solidity + internal virtual +``` + +Neno kuu `virtual` linamaanisha kuwa kama vile tulivyorithi utendaji kutoka `ERC20` na kubatilisha chaguo hili la kukokotoa, mikataba mingine inaweza kurithi kutoka kwetu na kubatilisha chaguo hili la kukokotoa. + +```solidity + override(ERC20) +``` + +Lazima tubainishe waziwazi kwamba [tunabatilisha](https://docs.soliditylang.org/en/v0.8.15/contracts.html#function-overriding) ufafanuzi wa tokeni ya ERC20 wa `_beforeTokenTransfer`. Kwa ujumla, ufafanuzi wa wazi ni bora zaidi, kutoka kwa mtazamo wa usalama, kuliko zile zilizodokezwa - huwezi kusahau kwamba umefanya kitu ikiwa kiko mbele yako. Hiyo pia ndiyo sababu tunahitaji kubainisha `_beforeTokenTransfer` ya daraja gani kuu tunayobatilisha. + +```solidity + super._beforeTokenTransfer(from, to, amount); +``` + +Mstari huu unaita chaguo la kukokotoa la `_beforeTokenTransfer` la mkataba au mikataba tuliyorithi kutoka kwayo ambayo inayo. Katika kesi hii, hiyo ni `ERC20` tu, `Ownable` haina kiunganishi hiki. Ingawa kwa sasa `ERC20._beforeTokenTransfer` haifanyi chochote, tunaiita endapo utendaji utaongezwa katika siku zijazo (na kisha tunaamua kusambaza tena mkataba, kwa sababu mikataba haibadiliki baada ya usambazaji). + +### Kuweka msimbo wa mahitaji {#coding-the-requirements} + +Tunataka kuongeza mahitaji haya kwenye chaguo la kukokotoa: + +- Anwani ya `to` haiwezi kuwa sawa na `address(this)`, anwani ya mkataba wa ERC-20 wenyewe. +- Anwani ya `to` haiwezi kuwa tupu, lazima iwe ama: + - Akaunti inayomilikiwa nje (EOA). Hatuwezi kuangalia kama anwani ni EOA moja kwa moja, lakini tunaweza kuangalia salio la ETH la anwani. EOA karibu kila mara huwa na salio, hata kama hazitumiki tena - ni vigumu kuzisafisha hadi wei ya mwisho. + - Mkataba-erevu. Kupima kama anwani ni mkataba-erevu ni kugumu kidogo. Kuna opcode inayokagua urefu wa msimbo wa nje, inayoitwa [`EXTCODESIZE`](https://www.evm.codes/#3b), lakini haipatikani moja kwa moja katika Solidity. Lazima tutumie [Yul](https://docs.soliditylang.org/en/v0.8.15/yul.html), ambayo ni mkusanyiko wa EVM, kwa ajili yake. Kuna thamani zingine ambazo tunaweza kutumia kutoka Solidity ([`
.code` na `
.codehash`](https://docs.soliditylang.org/en/v0.8.15/units-and-global-variables.html#members-of-address-types)), lakini zinagharimu zaidi. + +Hebu tupitie msimbo mpya mstari kwa mstari: + +```solidity + require(to != address(this), "Haiwezi kutuma tokeni kwa anwani ya mkataba"); +``` + +Hili ndilo sharti la kwanza, angalia kuwa `to` na `this(address)` si kitu kimoja. + +```solidity + bool isToContract; + assembly { + isToContract := gt(extcodesize(to), 0) + } +``` + +Hivi ndivyo tunavyoangalia kama anwani ni mkataba. Hatuwezi kupokea matokeo moja kwa moja kutoka Yul, kwa hivyo badala yake tunafafanua kigezo cha kushikilia matokeo (`isToContract` katika kesi hii). Jinsi Yul inavyofanya kazi ni kwamba kila opcode inachukuliwa kama chaguo la kukokotoa. Kwa hivyo kwanza tunaita [`EXTCODESIZE`](https://www.evm.codes/#3b) ili kupata ukubwa wa mkataba, na kisha kutumia [`GT`](https://www.evm.codes/#11) kuangalia si sifuri (tunashughulika na nambari kamili zisizo na alama, kwa hivyo bila shaka haiwezi kuwa hasi). Kisha tunaandika matokeo kwa `isToContract`. + +```solidity + require(to.balance != 0 || isToContract, "Haiwezi kutuma tokeni kwa anwani tupu"); +``` + +Na hatimaye, tuna ukaguzi halisi wa anwani tupu. + +## Ufikiaji wa kiutawala {#admin-access} + +Wakati mwingine ni muhimu kuwa na msimamizi anaye weza kutengua makosa. Ili kupunguza uwezekano wa matumizi mabaya, msimamizi huyu anaweza kuwa [multisig](https://blog.logrocket.com/security-choices-multi-signature-wallets/) ili watu wengi wakubaliane juu ya hatua. Katika makala haya tutakuwa na vipengele viwili vya kiutawala: + +1. Kufungia na kufungua akaunti. Hii inaweza kuwa muhimu, kwa mfano, wakati akaunti inaweza kuathiriwa. +2. Usafishaji wa mali. + + Wakati mwingine walaghai hutuma tokeni za ulaghai kwa mkataba halisi wa tokeni ili kupata uhalali. Kwa mfano, [angalia hapa](https://optimism.blockscout.com/token/0x2348B1a1228DDCd2dB668c3d30207c3E1852fBbe?tab=holders). Mkataba halali wa ERC-20 ni [0x4200....0042](https://optimism.blockscout.com/token/0x4200000000000000000000000000000000000042). Ulaghai unaojifanya kuwa ni [0x234....bbe](https://optimism.blockscout.com/token/0x2348B1a1228DDCd2dB668c3d30207c3E1852fBbe). + + Inawezekana pia kwamba watu hutuma tokeni halali za ERC-20 kwenye mkataba wetu kwa makosa, ambayo ni sababu nyingine ya kutaka kuwa na njia ya kuzitoa. + +OpenZeppelin hutoa mifumo miwili ya kuwezesha ufikiaji wa kiutawala: + +- Mikataba ya [`Ownable`](https://docs.openzeppelin.com/contracts/5.x/access-control#ownership-and-ownable) ina mmiliki mmoja. Chaguo za kukokotoa zilizo na [kirekebishaji](https://www.tutorialspoint.com/solidity/solidity_function_modifiers.htm) cha `onlyOwner` zinaweza kuitwa tu na mmiliki huyo. Wamiliki wanaweza kuhamisha umiliki kwa mtu mwingine au kuukana kabisa. Haki za akaunti zingine zote kwa kawaida huwa sawa. +- Mikataba ya [`AccessControl`](https://docs.openzeppelin.com/contracts/5.x/access-control#role-based-access-control) ina [udhibiti wa ufikiaji unaotegemea jukumu (RBAC)](https://en.wikipedia.org/wiki/Role-based_access_control). + +Kwa urahisi, katika makala haya tunatumia `Ownable`. + +### Kufungia na kufungua mikataba {#freezing-and-thawing-contracts} + +Kufungia na kufungua mikataba kunahitaji mabadiliko kadhaa: + +- [Ramani](https://www.tutorialspoint.com/solidity/solidity_mappings.htm) kutoka kwa anwani hadi [boolean](https://en.wikipedia.org/wiki/Boolean_data_type) ili kufuatilia ni anwani gani zimefungiwa. Thamani zote awali ni sifuri, ambayo kwa thamani za boolean inatafsiriwa kama uongo. Hiki ndicho tunachotaka kwa sababu kwa chaguomsingi akaunti hazijafungiwa. + + ```solidity + mapping(address => bool) public frozenAccounts; + ``` + +- [Matukio](https://www.tutorialspoint.com/solidity/solidity_events.htm) ya kumjulisha yeyote anayevutiwa wakati akaunti imefungiwa au kufunguliwa. Kitaalamu, matukio hayahitajiki kwa vitendo hivi, lakini inasaidia msimbo wa offchain kuweza kusikiliza matukio haya na kujua kinachoendelea. Inachukuliwa kuwa ni adabu njema kwa mkataba-erevu kuzitoa wakati kitu kinachoweza kuwa muhimu kwa mtu mwingine kinapotokea. + + Matukio yameorodheshwa kwa hivyo itawezekana kutafuta kwa nyakati zote ambazo akaunti imefungiwa au kufunguliwa. + + ```solidity + // Wakati akaunti zimefungiwa au kufunguliwa + event AccountFrozen(address indexed _addr); + event AccountThawed(address indexed _addr); + ``` + +- Chaguo za kukokotoa za kufungia na kufungua akaunti. Chaguo hizi mbili za kukokotoa karibu zinafanana, kwa hivyo tutapitia tu chaguo la kukokotoa la kufungia. + + ```solidity + function freezeAccount(address addr) + public + onlyOwner + ``` + + Chaguo za kukokotoa zilizo na alama ya [`public`](https://www.tutorialspoint.com/solidity/solidity_contracts.htm) zinaweza kuitwa kutoka kwa mikataba-erevu mingine au moja kwa moja na muamala. + + ```solidity + { + require(!frozenAccounts[addr], "Akaunti tayari imefungiwa"); + frozenAccounts[addr] = true; + emit AccountFrozen(addr); + } // freezeAccount + ``` + + Ikiwa akaunti tayari imefungiwa, rejesha. Vinginevyo, ifungie na `toa` tukio. + +- Badilisha `_beforeTokenTransfer` ili kuzuia pesa zisihamishwe kutoka kwa akaunti iliyofungiwa. Kumbuka kuwa pesa bado zinaweza kuhamishiwa kwenye akaunti iliyofungiwa. + + ```solidity + require(!frozenAccounts[from], "Akaunti imefungiwa"); + ``` + +### Usafishaji wa mali {#asset-cleanup} + +Ili kutoa tokeni za ERC-20 zinazoshikiliwa na mkataba huu tunahitaji kuita chaguo la kukokotoa kwenye mkataba wa tokeni ambao zinahusika, ama [`transfer`](https://eips.ethereum.org/EIPS/eip-20#transfer) au [`approve`](https://eips.ethereum.org/EIPS/eip-20#approve). Hakuna maana ya kupoteza gesi katika kesi hii kwenye posho, tunaweza pia kuhamisha moja kwa moja. + +```solidity + function cleanupERC20( + address erc20, + address dest + ) + public + onlyOwner + { + IERC20 token = IERC20(erc20); +``` + +Hii ndiyo sintaksia ya kuunda kitu kwa ajili ya mkataba tunapopokea anwani. Tunaweza kufanya hivi kwa sababu tuna ufafanuzi wa tokeni za ERC20 kama sehemu ya msimbo chanzo (tazama mstari wa 4), na faili hiyo inajumuisha [ufafanuzi wa IERC20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol), kiolesura cha mkataba wa OpenZeppelin ERC-20. + +```solidity + uint balance = token.balanceOf(address(this)); + token.transfer(dest, balance); + } +``` + +Hili ni chaguo la kukokotoa la usafishaji, kwa hivyo inawezekana hatutaki kuacha tokeni zozote. Badala ya kupata salio kutoka kwa mtumiaji mwenyewe, tunaweza pia kufanya mchakato uwe wa kiotomatiki. + +## Hitimisho {#conclusion} + +Hili si suluhisho kamili - hakuna suluhisho kamili kwa tatizo la "mtumiaji amefanya kosa". Hata hivyo, kutumia aina hizi za ukaguzi kunaweza angalau kuzuia makosa kadhaa. Uwezo wa kufungia akaunti, ingawa ni hatari, unaweza kutumika kupunguza uharibifu wa udukuzi fulani kwa kumnyima mdukuzi fedha zilizoibwa. + +[Tazama hapa kwa kazi zangu zaidi](https://cryptodocguy.pro/). diff --git a/public/content/translations/sw/developers/tutorials/ethereum-for-web2-auth/index.md b/public/content/translations/sw/developers/tutorials/ethereum-for-web2-auth/index.md new file mode 100644 index 00000000000..d638ae97f0d --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/ethereum-for-web2-auth/index.md @@ -0,0 +1,886 @@ +--- +title: Kutumia Ethereum kwa uthibitishaji wa web2 +description: Baada ya kusoma mafunzo haya, msanidi programu ataweza kuunganisha kuingia kwa Ethereum (web3) na kuingia kwa SAML, kiwango kinachotumika katika web2 kutoa kuingia mara moja na huduma zingine zinazohusiana. Hii inaruhusu ufikiaji wa rasilimali za web2 kuthibitishwa kupitia saini za Ethereum, na sifa za mtumiaji zikitoka kwenye uthibitisho. +author: Ori Pomerantz +tags: [ "web2", "uthibitishaji", "eas" ] +skill: beginner +lang: sw +published: 2025-04-30 +--- + +## Utangulizi + +[SAML](https://www.onelogin.com/learn/saml) ni kiwango kinachotumika kwenye web2 kuruhusu [mtoa huduma wa kitambulisho (IdP)](https://en.wikipedia.org/wiki/Identity_provider#SAML_identity_provider) kutoa taarifa za mtumiaji kwa [watoa huduma (SP)](https://en.wikipedia.org/wiki/Service_provider_\(SAML\)). + +Katika mafunzo haya unajifunza jinsi ya kuunganisha saini za Ethereum na SAML ili kuwaruhusu watumiaji kutumia mikoba yao ya Ethereum kujithibitisha kwa huduma za web2 ambazo bado hazitumii Ethereum moja kwa moja. + +Kumbuka kwamba mafunzo haya yameandikwa kwa ajili ya hadhira mbili tofauti: + +- Watu wa Ethereum wanaoielewa Ethereum na wanahitaji kujifunza SAML +- Watu wa Web2 wanaoielewa SAML na uthibitishaji wa web2 na wanahitaji kujifunza Ethereum + +Kutokana na hilo, itaendana na kuwa na nyenzo nyingi za utangulizi ambazo tayari unazijua. Jisikie huru kuiruka. + +### SAML kwa watu wa Ethereum + +SAML ni itifaki ya kati. Mtoa huduma (SP) anakubali tu madai (kama vile "huyu ni mtumiaji wangu John, anapaswa kuwa na ruhusa za kufanya A, B, na C") kutoka kwa mtoa huduma wa kitambulisho (IdP) ikiwa ina uhusiano wa awali wa kuaminiana nayo, au na [mamlaka ya cheti](https://www.ssl.com/article/what-is-a-certificate-authority-ca/) iliyosaini cheti cha IdP hicho. + +Kwa mfano, SP inaweza kuwa wakala wa usafiri unaotoa huduma za usafiri kwa makampuni, na IdP inaweza kuwa tovuti ya ndani ya kampuni. Wakati wafanyakazi wanapohitaji kuweka nafasi ya safari za kibiashara, wakala wa usafiri huwatuma kwa ajili ya uthibitishaji na kampuni kabla ya kuwaruhusu kuweka nafasi ya safari. + +![Mchakato wa SAML hatua kwa hatua](./fig-01-saml.png) + +Hii ndiyo njia ambayo taasisi tatu, kivinjari, SP, na IdP, hujadiliana kwa ajili ya ufikiaji. SP haihitaji kujua chochote kuhusu mtumiaji anayetumia kivinjari mapema, ila tu kumwamini IdP. + +### Ethereum kwa watu wa SAML + +Ethereum ni mfumo uliotawanywa. + +![Kuingia kwa Ethereum](./fig-02-eth-logon.png) + +Watumiaji wana ufunguo binafsi (kwa kawaida huhifadhiwa kwenye kiendelezi cha kivinjari). Kutoka kwenye ufunguo binafsi unaweza kupata ufunguo wa umma, na kutoka hapo anwani ya baiti 20. Wakati watumiaji wanapohitaji kuingia kwenye mfumo, wanaombwa kusaini ujumbe wenye nonce (thamani ya matumizi moja). Seva inaweza kuthibitisha saini iliundwa na anwani hiyo. + +![Kupata data ya ziada kutoka kwa uthibitisho](./fig-03-eas-data.png) + +Saini inathibitisha tu anwani ya Ethereum. Ili kupata sifa zingine za mtumiaji, kwa kawaida unatumia [uthibitisho](https://attest.org/). Uthibitisho kwa kawaida huwa na nyanja hizi: + +- **Mthibitishaji**, anwani iliyofanya uthibitisho +- **Mpokeaji**, anwani ambayo uthibitisho unatumika kwake +- **Data**, data inayothibitishwa, kama vile jina, ruhusa, n.k. +- **Schema**, Kitambulisho cha schema inayotumika kutafsiri data. + +Kwa sababu ya asili ya mfumo uliotawanywa wa Ethereum, mtumiaji yeyote anaweza kufanya uthibitisho. Utambulisho wa mthibitishaji ni muhimu kutambua ni uthibitisho upi tunaouzingatia kuwa wa kuaminika. + +## Mpangilio + +Hatua ya kwanza ni kuwa na SAML SP na SAML IdP zinazowasiliana kati yao. + +1. Pakua programu. Programu ya mfano kwa makala hii iko [kwenye github](https://github.com/qbzzt/250420-saml-ethereum). Hatua tofauti huhifadhiwa katika matawi tofauti, kwa hatua hii unataka `saml-only` + + ```sh + git clone https://github.com/qbzzt/250420-saml-ethereum -b saml-only + cd 250420-saml-ethereum + pnpm install + ``` + +2. Unda funguo zenye vyeti vilivyosainiwa kibinafsi. Hii inamaanisha kuwa ufunguo ni mamlaka yake ya cheti, na inahitaji kuingizwa kwa mikono kwa mtoa huduma. Tazama [hati za OpenSSL](https://docs.openssl.org/master/man1/openssl-req/) kwa habari zaidi. + + ```sh + mkdir keys + cd keys + openssl req -new -x509 -days 365 -nodes -sha256 -out saml-sp.crt -keyout saml-sp.pem -subj /CN=sp/ + openssl req -new -x509 -days 365 -nodes -sha256 -out saml-idp.crt -keyout saml-idp.pem -subj /CN=idp/ + cd .. + ``` + +3. Anzisha seva (zote SP na IdP) + + ```sh + pnpm start + ``` + +4. Vinjari hadi kwa SP kwenye URL [http://localhost:3000/](http://localhost:3000/) na ubofye kitufe ili kuelekezwa kwa IdP (mlango 3001). + +5. Mpe IdP anwani yako ya barua pepe na ubofye **Ingia kwa mtoa huduma**. Tazama kuwa unaelekezwa tena kwa mtoa huduma (mlango 3000) na kwamba anakutambua kwa anwani yako ya barua pepe. + +### Maelezo ya kina + +Hivi ndivyo inavyotokea, hatua kwa hatua: + +![Kuingia kwa kawaida kwa SAML bila Ethereum](./fig-04-saml-no-eth.png) + +#### src/config.mts + +Faili hii ina usanidi kwa Mtoa Huduma wa Kitambulisho na Mtoa Huduma. Kwa kawaida hizi mbili zingekuwa taasisi tofauti, lakini hapa tunaweza kushiriki msimbo kwa urahisi. + +```typescript +const fs = await import("fs") + +const protocol="http" +``` + +Kwa sasa tunafanya majaribio tu, kwa hivyo ni sawa kutumia HTTP. + +```typescript +export const spCert = fs.readFileSync("keys/saml-sp.crt").toString() +export const idpCert = fs.readFileSync("keys/saml-idp.crt").toString() +``` + +Soma funguo za umma, ambazo kwa kawaida zinapatikana kwa vipengele vyote viwili (na aidha zinaaminika moja kwa moja, au zimesainiwa na mamlaka ya cheti inayoaminika). + +```typescript +export const spPort = 3000 +export const spHostname = "localhost" +export const spDir = "sp" + +export const idpPort = 3001 +export const idpHostname = "localhost" +export const idpDir = "idp" + +export const spUrl = `${protocol}://${spHostname}:${spPort}/${spDir}` +export const idpUrl = `${protocol}://${idpHostname}:${idpPort}/${idpDir}` +``` + +URL za vipengele vyote viwili. + +```typescript +export const spPublicData = { +``` + +Data ya umma kwa mtoa huduma. + +```typescript + entityID: `${spUrl}/metadata`, +``` + +Kwa kawaida, katika SAML `entityID` ni URL ambapo metadata ya taasisi inapatikana. Metadata hii inalingana na data ya umma hapa, isipokuwa iko katika fomu ya XML. + +```typescript + wantAssertionsSigned: true, + authnRequestsSigned: false, + signingCert: spCert, + allowCreate: true, + assertionConsumerService: [{ + Binding: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', + Location: `${spUrl}/assertion`, + }] + } +``` + +Ufafanuzi muhimu zaidi kwa madhumuni yetu ni `assertionConsumerServer`. Inamaanisha kuwa ili kudai kitu (kwa mfano, "mtumiaji anayekutumia habari hii ni somebody@example.com") kwa mtoa huduma tunahitaji kutumia [HTTP POST](https://www.w3schools.com/tags/ref_httpmethods.asp) kwa URL `http://localhost:3000/sp/assertion`. + +```typescript +export const idpPublicData = { + entityID: `${idpUrl}/metadata`, + signingCert: idpCert, + wantAuthnRequestsSigned: false, + singleSignOnService: [{ + Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST", + Location: `${idpUrl}/login` + }], + singleLogoutService: [{ + Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST", + Location: `${idpUrl}/logout` + }], + } +``` + +Data ya umma kwa mtoa huduma wa kitambulisho ni sawa. Inabainisha kuwa ili kumwingiza mtumiaji unatumia POST kwa `http://localhost:3001/idp/login` na kumtoa mtumiaji unatumia POST kwa `http://localhost:3001/idp/logout`. + +#### src/sp.mts + +Huu ndio msimbo unaotekeleza mtoa huduma. + +```typescript +import * as config from "./config.mts" +const fs = await import("fs") +const saml = await import("samlify") +``` + +Tunatumia maktaba ya [`samlify`](https://www.npmjs.com/package/samlify) kutekeleza SAML. + +```typescript +import * as validator from "@authenio/samlify-node-xmllint" +saml.setSchemaValidator(validator) +``` + +Maktaba ya `samlify` inatarajia kuwa na kifurushi kinachothibitisha kuwa XML ni sahihi, imesainiwa na ufunguo wa umma unaotarajiwa, n.k. Tunatumia [`@authenio/samlify-node-xmllint`](https://www.npmjs.com/package/@authenio/samlify-node-xmllint) kwa madhumuni haya. + +```typescript +const express = (await import("express")).default +const spRouter = express.Router() +const app = express() +``` + +[`Router`](https://expressjs.com/en/5x/api.html#router) ya [`express`](https://expressjs.com/) ni "tovuti ndogo" ambayo inaweza kuwekwa ndani ya tovuti. Katika kesi hii, tunaitumia kupanga ufafanuzi wote wa watoa huduma pamoja. + +```typescript +const spPrivateKey = fs.readFileSync("keys/saml-sp.pem").toString() + +const sp = saml.ServiceProvider({ + privateKey: spPrivateKey, + ...config.spPublicData +}) +``` + +Uwakilishi wa mtoa huduma wenyewe ni data yote ya umma, na ufunguo binafsi unaotumia kusaini habari. + +```typescript +const idp = saml.IdentityProvider(config.idpPublicData); +``` + +Data ya umma ina kila kitu ambacho mtoa huduma anahitaji kujua kuhusu mtoa huduma wa kitambulisho. + +```typescript +spRouter.get(`/metadata`, + (req, res) => res.header("Content-Type", "text/xml").send(sp.getMetadata()) +) +``` + +Ili kuwezesha ushirikiano na vipengele vingine vya SAML, watoa huduma na watoa huduma za utambulisho wanapaswa kuwa na data zao za umma (zinazoitwa metadata) zinazopatikana katika muundo wa XML katika `/metadata`. + +```typescript +spRouter.post(`/assertion`, +``` + +Hii ndiyo ukurasa unaofikiwa na kivinjari ili kujitambulisha. Madai hayo yanajumuisha kitambulisho cha mtumiaji (hapa tunatumia anwani ya barua pepe), na yanaweza kujumuisha sifa za ziada. Hiki ni kishikizi cha hatua ya 7 katika mchoro wa mfuatano hapo juu. + +```typescript + async (req, res) => { + // console.log(`SAML response:\n${Buffer.from(req.body.SAMLResponse, 'base64').toString('utf-8')}`) +``` + +Unaweza kutumia amri iliyotolewa maoni ili kuona data ya XML iliyotolewa katika madai. Ime[simbwa kwa base64](https://en.wikipedia.org/wiki/Base64). + +```typescript + try { + const loginResponse = await sp.parseLoginResponse(idp, 'post', req); +``` + +Changanua ombi la kuingia kutoka kwa seva ya utambulisho. + +```typescript + res.send(` + + +

Hello ${loginResponse.extract.nameID}

+ + + `) + res.send(); +``` + +Tuma jibu la HTML, ili tu kumwonyesha mtumiaji tulipata kuingia. + +```typescript + } catch (err) { + console.error('Error processing SAML response:', err); + res.status(400).send('SAML authentication failed'); + } + } +) +``` + +Mjulishe mtumiaji endapo kutakuwa na hitilafu. + +```typescript +spRouter.get('/login', +``` + +Unda ombi la kuingia wakati kivinjari kinapojaribu kupata ukurasa huu. Hiki ni kishikizi cha hatua ya 1 katika mchoro wa mfuatano hapo juu. + +```typescript + async (req, res) => { + const loginRequest = await sp.createLoginRequest(idp, "post") +``` + +Pata taarifa ya kutuma ombi la kuingia. + +```typescript + res.send(` + + + +``` + +Ukurasa huu unawasilisha fomu (tazama hapa chini) kiotomatiki. Kwa njia hii mtumiaji hahitaji kufanya chochote ili aelekezwe. Hii ni hatua ya 2 katika mchoro wa mfuatano hapo juu. + +```typescript +
+``` + +Tuma kwa `loginRequest.entityEndpoint` (URL ya mwisho wa mtoa huduma wa utambulisho). + +```typescript + +``` + +Jina la ingizo ni `loginRequest.type` (`SAMLRequest`). Maudhui ya uwanja huo ni `loginRequest.context`, ambayo tena ni XML iliyosimbwa kwa base64. + +```typescript +
+ + + `) + } +) + +app.use(express.urlencoded({extended: true})) +``` + +[Middleware hii](https://expressjs.com/en/5x/api.html#express.urlencoded) inasoma mwili wa [ombi la HTTP](https://www.tutorialspoint.com/http/http_requests.htm). Kwa chaguo-msingi, express inapuuzia, kwa sababu maombi mengi hayaihitaji. Tunaihitaji kwa sababu POST inatumia mwili. + +```typescript +app.use(`/${config.spDir}`, spRouter) +``` + +Pachika kipanga njia katika saraka ya mtoa huduma (`/sp`). + +```typescript +app.get("/", (req, res) => { + res.send(` + + + + + + `) +}) +``` + +Ikiwa kivinjari kitajaribu kupata saraka ya mizizi, kipe kiungo cha ukurasa wa kuingia. + +```typescript +app.listen(config.spPort, () => { + console.log(`service provider is running on http://${config.spHostname}:${config.spPort}`) +}) +``` + +Sikiliza `spPort` na programu hii ya express. + +#### src/idp.mts + +Huyu ndiye mtoa huduma wa kitambulisho. Ni sawa na mtoa huduma, maelezo yaliyo hapa chini ni ya sehemu ambazo ni tofauti. + +```typescript +const xmlParser = new (await import("fast-xml-parser")).XMLParser( + { + ignoreAttributes: false, // Preserve attributes + attributeNamePrefix: "@_", // Prefix for attributes + } +) +``` + +Tunahitaji kusoma na kuelewa ombi la XML tunalopokea kutoka kwa mtoa huduma. + +```typescript +const getLoginPage = requestId => ` +``` + +Kazi hii huunda ukurasa na fomu inayojituma yenyewe ambayo inarudishwa katika hatua ya 4 ya mchoro wa mfuatano hapo juu. + +```typescript + + + Login page + + +

Login page

+
+ + Email address: +
+ +``` + +Kuna nyanja mbili tunazotuma kwa mtoa huduma: + +1. `requestId` ambayo tunajibu. +2. Kitambulisho cha mtumiaji (tunatumia anwani ya barua pepe ambayo mtumiaji hutoa kwa sasa). + +```typescript +
+ + + +const idpRouter = express.Router() + +idpRouter.post("/loginSubmitted", async (req, res) => { + const loginResponse = await idp.createLoginResponse( +``` + +Hiki ni kishikizi cha hatua ya 5 katika mchoro wa mfuatano hapo juu. [`idp.createLoginResponse`](https://github.com/tngan/samlify/blob/master/src/entity-idp.ts#L73-L125) huunda jibu la kuingia. + +```typescript + sp, + { + authnContextClassRef: 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport', + audience: sp.entityID, +``` + +Watazamaji ni watoa huduma. + +```typescript + extract: { + request: { + id: req.body.requestId + } + }, +``` + +Taarifa iliyotolewa kutoka kwa ombi. Kigezo kimoja tunachojali katika ombi ni requestId, ambayo inaruhusu mtoa huduma kulinganisha maombi na majibu yao. + +```typescript + signingKey: { privateKey: idpPrivateKey, publicKey: config.idpCert } // Ensure signing +``` + +Tunahitaji `signingKey` ili kuwa na data ya kusaini jibu. Mtoa huduma haamini maombi ambayo hayajasainiwa. + +```typescript + }, + "post", + { + email: req.body.email +``` + +Hili ni eneo lenye maelezo ya mtumiaji tunayorudisha kwa mtoa huduma. + +```typescript + } + ); + + res.send(` + + + + +
+ +
+ + + `) +}) +``` + +Tena, tumia fomu inayojituma yenyewe. Hii ni hatua ya 6 ya mchoro wa mfuatano hapo juu. + +```typescript + +// IdP endpoint for login requests +idpRouter.post(`/login`, +``` + +Hii ni sehemu ya mwisho inayopokea ombi la kuingia kutoka kwa mtoa huduma. Hii ni handler hatua ya 3 ya mchoro wa mfuatano hapo juu. + +```typescript + async (req, res) => { + try { + // Workaround because I couldn't get parseLoginRequest to work. + // const loginRequest = await idp.parseLoginRequest(sp, 'post', req) + const samlRequest = xmlParser.parse(Buffer.from(req.body.SAMLRequest, 'base64').toString('utf-8')) + res.send(getLoginPage(samlRequest["samlp:AuthnRequest"]["@_ID"])) +``` + +Tunapaswa kuwa na uwezo wa kutumia [`idp.parseLoginRequest`](https://github.com/tngan/samlify/blob/master/src/entity-idp.ts#L127-L144) kusoma kitambulisho cha ombi la uthibitishaji. Hata hivyo, sikuweza kuifanyia kazi na haikustahili kutumia muda mwingi juu yake kwa hivyo ninatumia tu [kichanganuzi cha XML cha jumla](https://www.npmjs.com/package/fast-xml-parser). Taarifa tunayohitaji ni sifa ya `ID` ndani ya lebo ya ``, ambayo iko katika kiwango cha juu cha XML. + +## Kutumia saini za Ethereum + +Sasa kwa kuwa tunaweza kutuma utambulisho wa mtumiaji kwa mtoa huduma, hatua inayofuata ni kupata utambulisho wa mtumiaji kwa njia inayoaminika. Viem inaturuhusu kuuliza tu mkoba kwa anwani ya mtumiaji, lakini hii inamaanisha kuuliza kivinjari kwa habari. Hatuidhibiti kivinjari, kwa hivyo hatuwezi kuamini moja kwa moja jibu tunalopata kutoka kwake. + +Badala yake, IdP itatuma kivinjari mfuatano wa kusaini. Ikiwa mkoba katika kivinjari unasaini mfuatano huu, inamaanisha kuwa kweli ni anwani hiyo (yaani, inajua ufunguo binafsi unaolingana na anwani). + +Ili kuona hili likitendeka, simamisha IdP na SP zilizopo na endesha amri hizi: + +```sh +git checkout eth-signatures +pnpm install +pnpm start +``` + +Kisha vinjari [kwa SP](http://localhost:3000) na ufuate maelekezo. + +Kumbuka kuwa kwa wakati huu hatujui jinsi ya kupata anwani ya barua pepe kutoka kwa anwani ya Ethereum, kwa hivyo badala yake tunaripoti `@bad.email.address` kwa SP. + +### Maelezo ya kina + +Mabadiliko yapo katika hatua 4-5 katika mchoro uliopita. + +![SAML na saini ya Ethereum](./fig-05-saml-w-signature.png) + +Faili pekee tuliyobadilisha ni `idp.mts`. Hapa kuna sehemu zilizobadilishwa. + +```typescript +import { v4 as uuidv4 } from 'uuid' +import { verifyMessage } from 'viem' +``` + +Tunahitaji maktaba hizi mbili za ziada. Tunatumia [`uuid`](https://www.npmjs.com/package/uuid) kuunda thamani ya [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce). Thamani yenyewe haijalishi, ni ukweli tu kwamba inatumika mara moja tu. + +Maktaba ya [`viem`](https://viem.sh/) inaturuhusu kutumia ufafanuzi wa Ethereum. Hapa tunaihitaji ili kuthibitisha kuwa saini ni halali. + +```typescript +const loginPrompt = "To access the service provider, sign this nonce: " +``` + +Mkoba unamwomba mtumiaji ruhusa ya kusaini ujumbe. Ujumbe ambao ni nonce tu unaweza kuwachanganya watumiaji, kwa hivyo tunajumuisha kidokezo hiki. + +```typescript +// Keep requestIDs here +let nonces = {} +``` + +Tunahitaji taarifa ya ombi ili tuweze kulijibu. Tunaweza kuituma na ombi (hatua ya 4), na kuipokea tena (hatua ya 5). Hata hivyo, hatuwezi kuamini taarifa tunazopata kutoka kwenye kivinjari, ambacho kiko chini ya udhibiti wa mtumiaji anayeweza kuwa na nia mbaya. Kwa hivyo ni bora kuihifadhi hapa, na nonce kama ufunguo. + +Kumbuka kuwa tunafanya hivi hapa kama kigezo kwa ajili ya urahisi. Hata hivyo, hii ina hasara kadhaa: + +- Tuko katika hatari ya shambulio la kunyimwa huduma. Mtumiaji hasidi anaweza kujaribu kuingia mara nyingi, akijaza kumbukumbu zetu. +- Ikiwa mchakato wa IdP unahitaji kuanzishwa upya, tunapoteza maadili yaliyopo. +- Hatuwezi kusawazisha mzigo katika michakato mingi, kwa sababu kila moja ingekuwa na kigezo chake. + +Katika mfumo wa uzalishaji tungetumia hifadhidata na kutekeleza aina fulani ya utaratibu wa kumalizika muda. + +```typescript +const getSignaturePage = requestId => { + const nonce = uuidv4() + nonces[nonce] = requestId +``` + +Unda nonce, na uhifadhi `requestId` kwa matumizi ya baadaye. + +```typescript + return ` + + + + + +

Please sign

+ +
+ + + +` +} +``` + +Sehemu iliyobaki ni HTML ya kawaida tu. + +```typescript +idpRouter.get("/signature/:nonce/:account/:signature", async (req, res) => { +``` + +Hiki ni kishikizi cha hatua ya 5 katika mchoro wa mfuatano. + +```typescript + const requestId = nonces[req.params.nonce] + if (requestId === undefined) { + res.send("Bad nonce") + return ; + } + + nonces[req.params.nonce] = undefined +``` + +Pata kitambulisho cha ombi, na ufute nonce kutoka kwa `nonces` ili kuhakikisha haiwezi kutumika tena. + +```typescript + try { +``` + +Kwa sababu kuna njia nyingi ambazo saini inaweza kuwa batili, tunafunga hii katika `try ...` kuzuia `catch` ili kunasa makosa yoyote yaliyorushwa. + +```typescript + const validSignature = await verifyMessage({ + address: req.params.account, + message: `${loginPrompt}${req.params.nonce}`, + signature: req.params.signature + }) +``` + +Tumia [`verifyMessage`](https://viem.sh/docs/actions/public/verifyMessage#verifymessage) kutekeleza hatua ya 5.5 katika mchoro wa mfuatano. + +```typescript + if (!validSignature) + throw("Bad signature") + } catch (err) { + res.send("Error:" + err) + return ; + } +``` + +Sehemu iliyobaki ya mshikaji ni sawa na kile tumefanya katika mshikaji wa `/loginSubmitted` hapo awali, isipokuwa kwa mabadiliko madogo. + +```typescript + const loginResponse = await idp.createLoginResponse( + . + . + . + { + email: req.params.account + "@bad.email.address" + } + ); +``` + +Hatuna anwani halisi ya barua pepe (tutaipata katika sehemu inayofuata), kwa hivyo kwa sasa tunarudisha anwani ya Ethereum na kuiweka alama wazi kuwa si anwani ya barua pepe. + +```typescript +// IdP endpoint for login requests +idpRouter.post(`/login`, + async (req, res) => { + try { + // Workaround because I couldn't get parseLoginRequest to work. + // const loginRequest = await idp.parseLoginRequest(sp, 'post', req) + const samlRequest = xmlParser.parse(Buffer.from(req.body.SAMLRequest, 'base64').toString('utf-8')) + res.send(getSignaturePage(samlRequest["samlp:AuthnRequest"]["@_ID"])) + } catch (err) { + console.error('Error processing SAML response:', err); + res.status(400).send('SAML authentication failed'); + } + } +) +``` + +Badala ya `getLoginPage`, sasa tumia `getSignaturePage` katika kishikilizi cha hatua ya 3. + +## Kupata anwani ya barua pepe + +Hatua inayofuata ni kupata anwani ya barua pepe, kitambulisho kinachoombwa na mtoa huduma. Ili kufanya hivyo, tunatumia [Huduma ya Uthibitisho ya Ethereum (EAS)](https://attest.org/). + +Njia rahisi zaidi ya kupata uthibitisho ni kutumia [GraphQL API](https://docs.attest.org/docs/developer-tools/api). Tunatumia swali hili: + +``` +query GetAttestationsByRecipient { + attestations( + where: { + recipient: { equals: "${getAddress(ethAddr)}" } + schemaId: { equals: "0xfa2eff59a916e3cc3246f9aec5e0ca00874ae9d09e4678e5016006f07622f977" } + } + take: 1 + ) { + data + id + attester + } +} +``` + +[`schemaId`](https://optimism.easscan.org/schema/view/0xfa2eff59a916e3cc3246f9aec5e0ca00874ae9d09e4678e5016006f07622f977) hii inajumuisha anwani ya barua pepe tu. Swali hili linauliza uthibitisho wa skimu hii. Mada ya uthibitisho inaitwa `recipient`. Daima ni anwani ya Ethereum. + +Onyo: Njia tunayopata uthibitisho hapa ina masuala mawili ya usalama. + +- Tunaenda kwenye eneo la mwisho la API, `https://optimism.easscan.org/graphql`, ambalo ni sehemu ya kati. Tunaweza kupata sifa ya `id` na kisha kufanya utafutaji wa mnyororo ili kuthibitisha kwamba uthibitisho ni halisi, lakini eneo la mwisho la API bado linaweza kudhibiti uthibitisho kwa kutotuambia kuhusu wao. + + Tatizo hili si gumu kulitatua, tunaweza kuendesha sehemu yetu ya GraphQL na kupata uthibitisho kutoka kwa kumbukumbu za mnyororo, lakini hiyo ni ya kupita kiasi kwa madhumuni yetu. + +- Hatuangalii utambulisho wa mthibitishaji. Mtu yeyote anaweza kutupa habari za uongo. Katika utekelezaji wa ulimwengu halisi tungekuwa na seti ya wathibitishaji wanaoaminika na kuangalia tu uthibitisho wao. + +Ili kuona hili likitendeka, simamisha IdP na SP zilizopo na endesha amri hizi: + +```sh +git checkout email-address +pnpm install +pnpm start +``` + +Kisha toa anwani yako ya barua pepe. Una njia mbili za kufanya hivyo: + +- Ingiza mkoba ukitumia ufunguo binafsi, na utumie ufunguo binafsi wa majaribio `0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80`. + +- Ongeza uthibitisho kwa anwani yako ya barua pepe: + + 1. Vinjari [skimu katika kivinjari cha uthibitisho](https://optimism.easscan.org/schema/view/0xfa2eff59a916e3cc3246f9aec5e0ca00874ae9d09e4678e5016006f07622f977). + + 2. Bofya **Thibitisha na Schema**. + + 3. Ingiza anwani yako ya Ethereum kama mpokeaji, anwani yako ya barua pepe kama anwani ya barua pepe, na uchague **Onchain**. Kisha bofya **Fanya Uthibitisho**. + + 4. Idhinisha muamala kwenye mkoba wako. Utahitaji ETH kwenye [Mnyororo wa bloku wa Optimism](https://app.optimism.io/bridge/deposit) kulipia gesi. + +Vyovyote vile, baada ya kufanya hivi nenda kwenye [http://localhost:3000](http://localhost:3000) na ufuate maelekezo. Ikiwa umeingiza ufunguo binafsi wa majaribio, barua pepe unayopokea ni `test_addr_0@example.com`. Ikiwa umetumia anwani yako mwenyewe, inapaswa kuwa chochote ulichothibitisha. + +### Maelezo ya kina + +![Kupata kutoka anwani ya Ethereum hadi barua-pepe](./fig-06-saml-sig-n-email.png) + +Hatua mpya ni mawasiliano ya GraphQL, hatua 5.6 na 5.7. + +Tena, hapa kuna sehemu zilizobadilishwa za `idp.mts`. + +```typescript +import { GraphQLClient } from 'graphql-request' +import { SchemaEncoder } from '@ethereum-attestation-service/eas-sdk' +``` + +Ingiza maktaba tunazohitaji. + +```typescript +const graphqlEndpointUrl = "https://optimism.easscan.org/graphql" +``` + +Kuna [sehemu tofauti kwa kila mnyororo wa bloku](https://docs.attest.org/docs/developer-tools/api). + +```typescript +const graphqlClient = new GraphQLClient(graphqlEndpointUrl, { fetch }) +``` + +Unda mteja mpya wa `GraphQLClient` tunaoweza kutumia kuuliza maswali kwenye endpoint. + +```typescript +const graphqlSchema = 'string emailAddress' +const graphqlEncoder = new SchemaEncoder(graphqlSchema) +``` + +GraphQL inatupa tu kitu cha data kisichoeleweka na baiti. Ili kuielewa tunahitaji skimu. + +```typescript +const ethereumAddressToEmail = async ethAddr => { +``` + +Kazi ya kupata kutoka anwani ya Ethereum hadi anwani ya barua-pepe. + +```typescript + const query = ` + query GetAttestationsByRecipient { +``` + +Hili ni swali la GraphQL. + +```typescript + attestations( +``` + +Tunatafuta uthibitisho. + +```typescript + where: { + recipient: { equals: "${getAddress(ethAddr)}" } + schemaId: { equals: "0xfa2eff59a916e3cc3246f9aec5e0ca00874ae9d09e4678e5016006f07622f977" } + } +``` + +Uthibitisho tunaotaka ni ule ulio katika skimu yetu, ambapo mpokeaji ni `getAddress(ethAddr)`. Kazi ya [`getAddress`](https://viem.sh/docs/utilities/getAddress#getaddress) inahakikisha anwani yetu ina [checksum](https://github.com/ethereum/ercs/blob/master/ERCS/erc-55.md) sahihi. Hii ni muhimu kuhusu GraphQL ni muhimu kwa herufi kubwa na ndogo. "0xBAD060A7", "0xBad060A7", na "0xbad060a7" ni maadili tofauti. + +```typescript + take: 1 +``` + +Bila kujali ni ithibati ngapi tunapata, tunataka tu ya kwanza. + +```typescript + ) { + data + id + attester + } + }` +``` + +Sehemu tunazotaka kupokea. + +- `attester`: Anwani iliyowasilisha uthibitisho. Kawaida hii hutumika kuamua kama kuamini uthibitisho au la. +- `id`: Kitambulisho cha uthibitisho. Unaweza kutumia thamani hii [kusoma uthibitisho onchain](https://optimism.blockscout.com/address/0x4200000000000000000000000000000000000021?tab=read_proxy&source_address=0x4E0275Ea5a89e7a3c1B58411379D1a0eDdc5b088#0xa3112a64) ili kuthibitisha kuwa taarifa kutoka kwa swali la GraphQL ni sahihi. +- `data`: Data ya skimu (katika kesi hii, anwani ya barua pepe). + +```typescript + const queryResult = await graphqlClient.request(query) + + if (queryResult.attestations.length == 0) + return "no_address@available.is" +``` + +Ikiwa hakuna uthibitisho, rudisha thamani ambayo ni wazi si sahihi, lakini ambayo itaonekana kuwa halali kwa mtoa huduma. + +```typescript + const attestationDataFields = graphqlEncoder.decodeData(queryResult.attestations[0].data) + return attestationDataFields[0].value.value +} +``` + +Ikiwa kuna thamani, tumia `decodeData` kusimbua data. Hatuhitaji metadata inayotoa, ni thamani yenyewe tu. + +```typescript + const loginResponse = await idp.createLoginResponse( + sp, + { + . + . + . + }, + "post", + { + email: await ethereumAddressToEmail(req.params.account) + } + ); +``` + +Tumia kazi mpya kupata anwani ya barua pepe. + +## Vipi kuhusu utawanyaji wa mamlaka? + +Katika usanidi huu watumiaji hawawezi kujifanya kuwa mtu mwingine, mradi tu tunategemea wathibitishaji wanaoaminika kwa ramani ya anwani ya Ethereum hadi barua pepe. Hata hivyo, mtoa huduma wetu wa kitambulisho bado ni sehemu ya kati. Yeyote aliye na ufunguo binafsi wa mtoa huduma wa kitambulisho anaweza kutuma habari za uongo kwa mtoa huduma. + +Kunaweza kuwa na suluhisho kwa kutumia [hesabu ya pande nyingi (MPC)](https://en.wikipedia.org/wiki/Secure_multi-party_computation). Natumai kuandika kuihusu katika mafunzo yajayo. + +## Hitimisho + +Kukubalika kwa kiwango cha kuingia, kama vile saini za Ethereum, kunakabiliwa na tatizo la kuku na yai. Watoa huduma wanataka kuvutia soko pana iwezekanavyo. Watumiaji wanataka kuwa na uwezo wa kufikia huduma bila kuwa na wasiwasi kuhusu kuunga mkono kiwango chao cha kuingia. +Kuunda adapta, kama vile Ethereum IdP, kunaweza kutusaidia kushinda kikwazo hiki. + +[Tazama hapa kwa kazi zangu zaidi](https://cryptodocguy.pro/). diff --git a/public/content/translations/sw/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/translations/sw/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md new file mode 100644 index 00000000000..5ead6d0d1b5 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md @@ -0,0 +1,156 @@ +--- +title: Kuanza na Uundaji wa Ethereum +description: "Huu ni mwongozo wa wanaoanza jinsi ya kuanza na uundaji wa Ethereum. Tutakuelekeza kutoka kuanzisha sehemu ya mwisho ya API, hadi kufanya ombi la mstari wa amri, hadi kuandika hati yako ya kwanza ya web3! Hakuna uzoefu wa uundaji wa blockchain unaohitajika!" +author: "Elan Halpern" +tags: + [ + "JavaScript", + "ethers.js", + "nodi", + "kuuliza", + "Alchemy" + ] +skill: beginner +lang: sw +published: 2020-10-30 +source: Medium +sourceUrl: https://medium.com/alchemy-api/getting-started-with-ethereum-development-using-alchemy-c3d6a45c567f +--- + +![Nembo za Ethereum na Alchemy](./ethereum-alchemy.png) + +Huu ni mwongozo wa wanaoanza jinsi ya kuanza na uundaji wa Ethereum. Kwa mafunzo haya tutakuwa tunatumia [Alchemy](https://alchemyapi.io/), jukwaa linaloongoza la wasanidi wa blockchain linalowezesha mamilioni ya watumiaji kutoka 70% ya programu za juu za blockchain, ikiwa ni pamoja na Maker, 0x, MyEtherWallet, Dharma, na Kyber. Alchemy itatupa ufikiaji wa sehemu ya mwisho ya API kwenye mnyororo wa Ethereum ili tuweze kusoma na kuandika miamala. + +Tutakuelekeza kutoka kujisajili na Alchemy hadi kuandika hati yako ya kwanza ya web3! Hakuna uzoefu wa uundaji wa blockchain unaohitajika! + +## 1. Jisajili kwa Akaunti ya Bure ya Alchemy {#sign-up-for-a-free-alchemy-account} + +Kufungua akaunti na Alchemy ni rahisi, [jisajili bure hapa](https://auth.alchemy.com/). + +## 2. Tengeneza Programu ya Alchemy {#create-an-alchemy-app} + +Ili kuwasiliana na mnyororo wa Ethereum na kutumia bidhaa za Alchemy, unahitaji ufunguo wa API ili kuthibitisha maombi yako. + +Unaweza [kutengeneza funguo za API kutoka kwenye dashibodi](https://dashboard.alchemy.com/). Ili kutengeneza ufunguo mpya, nenda kwa “Tengeneza Programu” kama inavyoonyeshwa hapa chini: + +Shukrani za pekee kwa [_ShapeShift_](https://shapeshift.com/) _kwa kuturuhusu kuonyesha dashibodi yao!_ + +![Dashibodi ya Alchemy](./alchemy-dashboard.png) + +Jaza maelezo chini ya “Tengeneza Programu” ili kupata ufunguo wako mpya. Unaweza pia kuona programu ulizotengeneza awali na zile zilizotengenezwa na timu yako hapa. Pata funguo zilizopo kwa kubofya “Angalia Ufunguo” kwa programu yoyote. + +![Picha ya skrini ya kutengeneza programu na Alchemy](./create-app.png) + +Unaweza pia kupata funguo za API zilizopo kwa kuelea juu ya “Programu” na kuchagua moja. Unaweza “Angalia Ufunguo” hapa, pamoja na “Hariri Programu” ili kuidhinisha vikoa maalum, kuona zana kadhaa za wasanidi, na kutazama takwimu. + +![Gif inayoonyesha mtumiaji jinsi ya kupata funguo za API](./pull-api-keys.gif) + +## 3. Fanya Ombi kutoka kwa Mstari wa Amri {#make-a-request-from-the-command-line} + +Wasiliana na blockchain ya Ethereum kupitia Alchemy ukitumia JSON-RPC na curl. + +Kwa maombi ya moja kwa moja, tunapendekeza kuwasiliana na `JSON-RPC` kupitia maombi ya `POST`. Peleka tu kichwa cha `Content-Type: application/json` na swali lako kama kiwiliwili cha `POST` na sehemu zifuatazo: + +- `jsonrpc`: Toleo la JSON-RPC—kwa sasa, ni `2.0` pekee inayotumika. +- `method`: Mbinu ya API ya ETH. [Angalia marejeleo ya API.](https://docs.alchemyapi.io/documentation/alchemy-api-reference/json-rpc) +- `params`: Orodha ya vigezo vya kupitisha kwenye mbinu. +- `id`: Kitambulisho cha ombi lako. Itarejeshwa na jibu ili uweze kufuatilia ni ombi gani jibu linahusu. + +Huu ni mfano unaoweza kuendesha kutoka kwa mstari wa amri ili kupata bei ya sasa ya gesi: + +```bash +curl https://eth-mainnet.alchemyapi.io/v2/demo \ +-X POST \ +-H "Content-Type: application/json" \ +-d '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}' +``` + +_**KUMBUKA:** Badilisha [https://eth-mainnet.alchemyapi.io/v2/demo](https://eth-mainnet.alchemyapi.io/jsonrpc/demo) na ufunguo wako mwenyewe wa API `https://eth-mainnet.alchemyapi.io/v2/**your-api-key`._ + +**Matokeo:** + +```json +{ "id": 73,"jsonrpc": "2.0","result": "0x09184e72a000" // 10000000000000 } +``` + +## 4. Sanidi Mteja wako wa Web3 {#set-up-your-web3-client} + +**Ikiwa una mteja aliyepo,** badilisha URL ya mtoa huduma wako wa sasa wa nodi kuwa URL ya Alchemy na ufunguo wako wa API: `“https://eth-mainnet.alchemyapi.io/v2/your-api-key"` + +**_KUMBUKA:_** Hati zilizo hapa chini zinahitaji kuendeshwa katika **mazingira ya nodi** au **kuhifadhiwa kwenye faili**, sio kuendeshwa kutoka kwa mstari wa amri. Ikiwa bado hujasakinisha Node au npm, angalia [mwongozo huu wa haraka wa usanidi kwa macs](https://app.gitbook.com/@alchemyapi/s/alchemy/guides/alchemy-for-macs). + +Kuna maktaba nyingi za [Web3](https://docs.alchemyapi.io/guides/getting-started#other-web3-libraries) unazoweza kuunganisha na Alchemy, hata hivyo, tunapendekeza kutumia [Alchemy Web3](https://docs.alchemy.com/reference/api-overview), mbadala wa moja kwa moja wa web3.js, iliyoundwa na kusanidiwa kufanya kazi bila mshono na Alchemy. Hii inatoa faida nyingi kama vile majaribio ya kiotomatiki na usaidizi thabiti wa WebSocket. + +Ili kusakinisha AlchemyWeb3.js, **nenda kwenye saraka yako ya mradi** na endesha: + +**Kwa kutumia Yarn:** + +``` +yarn add @alch/alchemy-web3 +``` + +**Kwa kutumia NPM:** + +``` +npm install @alch/alchemy-web3 +``` + +Ili kuwasiliana na miundombinu ya nodi ya Alchemy, endesha katika NodeJS au ongeza hii kwenye faili ya JavaScript: + +```js +const { createAlchemyWeb3 } = require("@alch/alchemy-web3") +const web3 = createAlchemyWeb3( + "https://eth-mainnet.alchemyapi.io/v2/your-api-key" +) +``` + +## 5. Andika Hati yako ya kwanza ya Web3! {#write-your-first-web3-script} + +Sasa ili tuanze kufanya kazi na programu ndogo ya web3, tutaandika hati rahisi inayochapisha nambari ya bloku ya hivi karibuni kutoka kwa Mtandao Mkuu wa Ethereum. + +**1. Ikiwa bado hujafanya hivyo, kwenye terminal yako tengeneza saraka mpya ya mradi na ingia ndani yake (cd):** + +``` +mkdir web3-example +cd web3-example +``` + +**2. Sakinisha tegemeo la Alchemy web3 (au web3 yoyote) kwenye mradi wako ikiwa bado hujafanya hivyo:** + +``` +npm install @alch/alchemy-web3 +``` + +**3. Tengeneza faili inayoitwa `index.js` na ongeza yaliyomo yafuatayo:** + +> Mwishowe unapaswa kubadilisha `demo` na ufunguo wako wa Alchemy HTTP API. + +```js +async function main() { + const { createAlchemyWeb3 } = require("@alch/alchemy-web3") + const web3 = createAlchemyWeb3("https://eth-mainnet.alchemyapi.io/v2/demo") + const blockNumber = await web3.eth.getBlockNumber() + console.log("Nambari ya bloku ya hivi karibuni ni " + blockNumber) +} +main() +``` + +Hufahamu mambo ya async? Angalia [chapisho hili la Medium](https://medium.com/better-programming/understanding-async-await-in-javascript-1d81bb079b2c). + +**4. Endesha kwenye terminal yako ukitumia node** + +``` +node index.js +``` + +**5. Sasa unapaswa kuona tokeo la nambari ya bloku ya hivi karibuni kwenye konsoli yako!** + +``` +Nambari ya bloku ya hivi karibuni ni 11043912 +``` + +**Shwari! Hongera! Umeandika hati yako ya kwanza ya web3 ukitumia Alchemy 🎉** + +Huna uhakika nini cha kufanya baadaye? Jaribu kuweka mkataba-erevu wako wa kwanza na uanze kufanya kazi na programu za Solidity kwenye [Mwongozo wetu wa Mkataba-erevu wa Hello World](https://www.alchemy.com/docs/hello-world-smart-contract), au jaribu ujuzi wako wa dashibodi na [Programu ya Demo ya Dashibodi](https://docs.alchemyapi.io/tutorials/demo-app)! + +_[Jisajili na Alchemy bure](https://auth.alchemy.com/), angalia [nyaraka](https://www.alchemy.com/docs/) zetu, na kwa habari za hivi karibuni, tufuate kwenye [Twitter](https://twitter.com/AlchemyPlatform)_. diff --git a/public/content/translations/sw/developers/tutorials/guide-to-smart-contract-security-tools/index.md b/public/content/translations/sw/developers/tutorials/guide-to-smart-contract-security-tools/index.md new file mode 100644 index 00000000000..9ed4c86ad7f --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/guide-to-smart-contract-security-tools/index.md @@ -0,0 +1,102 @@ +--- +title: Mwongozo wa zana za usalama za mkataba-erevu +description: Muhtasari wa mbinu tatu tofauti za upimaji na uchanganuzi wa programu +author: "Trailofbits" +lang: sw +tags: [ "Solidity", "mikataba erevu", "usalama" ] +skill: intermediate +published: 2020-09-07 +source: Building secure contracts +sourceUrl: https://github.com/crytic/building-secure-contracts/tree/master/program-analysis +--- + +Tutatumia mbinu tatu tofauti za upimaji na uchanganuzi wa programu: + +- **Uchanganuzi tuli kwa kutumia [Slither](/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/).** Njia zote za programu hukadiriwa na kuchanganuliwa kwa wakati mmoja, kupitia uwasilishaji tofauti wa programu (k.m., control-flow-graph) +- **Fuzzing na [Echidna](/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/).** Msimbo unatekelezwa kwa uzalishaji nasibu bandia wa miamala. Fuzzer itajaribu kupata mfuatano wa miamala ili kukiuka sifa fulani. +- **Utekelezaji wa kiishara na [Manticore](/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/).** Mbinu rasmi ya uthibitishaji, ambayo hutafsiri kila njia ya utekelezaji kuwa fomula ya kihisabati, ambayo juu yake vikwazo vinaweza kukaguliwa. + +Kila mbinu ina faida na hasara, na itakuwa na manufaa katika [kesi maalum](#determining-security-properties): + +| Mbinu | Zana | Matumizi | Kasi | Hitilafu zilizokosekana | Kengele za Uongo | +| ----------------------- | --------- | ------------------------------------------- | ------- | ----------------------- | ---------------- | +| Uchanganuzi Tuli | Slither | CLI & hati | sekunde | wastani | chini | +| Fuzzing | Echidna | Sifa za Solidity | dakika | chini | hakuna | +| Utekelezaji wa Kiishara | Manticore | Sifa za Solidity & hati | saa | hakuna\* | hakuna | + +- ikiwa njia zote zimechunguzwa bila muda kuisha + +**Slither** huchanganua mikataba ndani ya sekunde, hata hivyo, uchanganuzi tuli unaweza kusababisha kengele za uongo na hautafaa sana kwa ukaguzi changamano (k.m., ukaguzi wa kihisabati). Tumia Slither kupitia API kwa ufikiaji wa kubofya kitufe kwa vigunduzi vilivyojengewa ndani au kupitia API kwa ukaguzi uliobainishwa na mtumiaji. + +**Echidna** inahitaji kufanya kazi kwa dakika kadhaa na itatoa matokeo chanya ya kweli pekee. Echidna hukagua sifa za usalama zinazotolewa na mtumiaji, zilizoandikwa katika Solidity. Inaweza kukosa hitilafu kwani inategemea uchunguzi nasibu. + +**Manticore** hufanya uchanganuzi wa "uzito mzito zaidi". Kama Echidna, Manticore inathibitisha sifa zinazotolewa na mtumiaji. Itahitaji muda zaidi kufanya kazi, lakini inaweza kuthibitisha uhalali wa sifa na haitatoa ripoti za kengele za uongo. + +## Mtiririko wa kazi unaopendekezwa {#suggested-workflow} + +Anza na vigunduzi vilivyojengewa ndani vya Slither ili kuhakikisha kuwa hakuna hitilafu rahisi zilizopo sasa au zitakazoletwa baadaye. Tumia Slither kukagua sifa zinazohusiana na urithi, utegemezi wa vigeu, na masuala ya kimuundo. Msimbo unavyokua, tumia Echidna kupima sifa changamano zaidi za mashine ya hali. Rejelea Slither ili kuunda ukaguzi maalum kwa ajili ya ulinzi usioupata kutoka kwa Solidity, kama vile kulinda dhidi ya kazi kubatilishwa. Mwishowe, tumia Manticore kufanya uthibitishaji unaolengwa wa sifa muhimu za usalama, k.m., shughuli za kihisabati. + +- Tumia CLI ya Slither kugundua masuala ya kawaida +- Tumia Echidna kupima sifa za usalama za kiwango cha juu za mkataba wako +- Tumia Slither kuandika ukaguzi maalum tuli +- Tumia Manticore mara tu unapotaka uhakikisho wa kina wa sifa muhimu za usalama + +**Dokezo kuhusu majaribio ya kitengo**. Majaribio ya kitengo ni muhimu ili kuunda programu ya ubora wa juu. Hata hivyo, mbinu hizi hazifai zaidi kupata dosari za usalama. Kwa kawaida hutumika kupima tabia chanya za msimbo (yaani, msimbo hufanya kazi kama inavyotarajiwa katika muktadha wa kawaida), huku dosari za usalama zikielekea kukaa katika hali za pembeni ambazo wasanidi programu hawakuzizingatia. Katika utafiti wetu wa hakiki nyingi za usalama za mkataba-erevu, [ufikiaji wa majaribio ya kitengo haukuwa na athari kwa idadi au ukali wa dosari za usalama](https://blog.trailofbits.com/2019/08/08/246-findings-from-our-smart-contract-audits-an-executive-summary/) tulizopata katika msimbo wa wateja wetu. + +## Kubainisha Sifa za Usalama {#determining-security-properties} + +Ili kupima na kuthibitisha msimbo wako kwa ufanisi, ni lazima utambue maeneo yanayohitaji uangalizi. Kwa kuwa rasilimali zako zinazotumika kwenye usalama ni chache, kupanga sehemu dhaifu au zenye thamani ya juu za msimbo wako ni muhimu ili kuboresha juhudi zako. Uundaji wa vitisho unaweza kusaidia. Fikiria kukagua: + +- [Tathmini za Haraka za Hatari](https://infosec.mozilla.org/guidelines/risk/rapid_risk_assessment.html) (mbinu tunayopendelea wakati ni mfupi) +- [Mwongozo wa Uundaji wa Vitisho vya Mfumo Unaozingatia Data](https://csrc.nist.gov/pubs/sp/800/154/ipd) (pia inajulikana kama NIST 800-154) +- [Uundaji wa vitisho wa Shostack](https://www.amazon.com/Threat-Modeling-Designing-Adam-Shostack/dp/1118809998) +- [STRIDE](https://wikipedia.org/wiki/STRIDE_\(security\)) / [DREAD](https://wikipedia.org/wiki/DREAD_\(risk_assessment_model\)) +- [PASTA](https://wikipedia.org/wiki/Threat_model#P.A.S.T.A.) +- [Matumizi ya Madai](https://blog.regehr.org/archives/1091) + +### Vipengele {#components} + +Kujua unachotaka kukagua pia kutakusaidia kuchagua zana sahihi. + +Maeneo mapana ambayo mara nyingi yanafaa kwa mikataba-erevu ni pamoja na: + +- **Mashine ya hali.** Mikataba mingi inaweza kuwakilishwa kama mashine ya hali. Fikiria kukagua kuwa (1) Hakuna hali batili inayoweza kufikiwa, (2) ikiwa hali ni halali inaweza kufikiwa, na (3) hakuna hali inayotega mkataba. + + - Echidna na Manticore ndizo zana za kupendelea kupima vipimo vya mashine ya hali. + +- **Vidhibiti vya ufikiaji.** Ikiwa mfumo wako una watumiaji waliopewa fursa (k.m., mmiliki, vidhibiti, ...) lazima uhakikishe kwamba (1) kila mtumiaji anaweza tu kutekeleza vitendo vilivyoidhinishwa na (2) hakuna mtumiaji anayeweza kuzuia vitendo kutoka kwa mtumiaji aliye na fursa zaidi. + + - Slither, Echidna na Manticore zinaweza kuangalia vidhibiti sahihi vya ufikiaji. Kwa mfano, Slither inaweza kuangalia kuwa kazi zilizoidhinishwa tu ndizo zinazokosa kirekebishaji cha onlyOwner. Echidna na Manticore ni muhimu kwa udhibiti changamano zaidi wa ufikiaji, kama vile ruhusa inayotolewa tu ikiwa mkataba utafikia hali fulani. + +- **Shughuli za kihisabati.** Kuangalia usahihi wa shughuli za kihisabati ni muhimu sana. Kutumia `SafeMath` kila mahali ni hatua nzuri ya kuzuia kufurika/kupungua (`overflow`/`underflow`), hata hivyo, bado lazima uzingatie dosari zingine za kihisabati, ikiwa ni pamoja na masuala ya kuzungusha na dosari zinazotega mkataba. + + - Manticore ndiyo chaguo bora zaidi hapa. Echidna inaweza kutumika ikiwa hesabu iko nje ya wigo wa SMT solver. + +- **Usahihi wa urithi.** Mikataba ya Solidity inategemea sana urithi mwingi. Makosa kama vile kazi ya kufunika inayokosa mwito wa `super` na mpangilio wa uunganishaji wa c3 uliotafsiriwa vibaya unaweza kuletwa kwa urahisi. + + - Slither ndiyo zana ya kuhakikisha ugunduzi wa masuala haya. + +- **Mwingiliano wa nje.** Mikataba huingiliana, na baadhi ya mikataba ya nje haipaswi kuaminiwa. Kwa mfano, ikiwa mkataba wako unategemea oracles za nje, je, utabaki salama ikiwa nusu ya oracles zinazopatikana zitahujumiwa? + + - Manticore na Echidna ndio chaguo bora zaidi kwa kupima mwingiliano wa nje na mikataba yako. Manticore ina utaratibu uliojengewa ndani wa kuweka vibadala vya mikataba ya nje. + +- **Upatanifu wa viwango.** Viwango vya Ethereum (k.m., ERC20) vina historia ya dosari katika muundo wao. Fahamu mapungufu ya kiwango unachojengea. + - Slither, Echidna, na Manticore zitakusaidia kugundua mkengeuko kutoka kwa kiwango fulani. + +### Karatasi ya kudokezea ya uteuzi wa zana {#tool-selection-cheatsheet} + +| Kipengele | Zana | Mifano | +| ---------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Mashine ya hali | Echidna, Manticore | | +| Udhibiti wa ufikiaji | Slither, Echidna, Manticore | [Zoezi la 2 la Slither](https://github.com/crytic/slither/blob/7f54c8b948c34fb35e1d61adaa1bd568ca733253/docs/src/tutorials/exercise2.md), [Zoezi la 2 la Echidna](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/exercises/Exercise-2.md) | +| Shughuli za kihisabati | Manticore, Echidna | [Zoezi la 1 la Echidna](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/exercises/Exercise-1.md), [Mazoezi 1 - 3 ya Manticore](https://github.com/crytic/building-secure-contracts/tree/master/program-analysis/manticore/exercises) | +| Usahihi wa urithi | Slither | [Zoezi la 1 la Slither](https://github.com/crytic/slither/blob/7f54c8b948c34fb35e1d61adaa1bd568ca733253/docs/src/tutorials/exercise1.md) | +| Mwingiliano wa nje | Manticore, Echidna | | +| Upatanifu wa viwango | Slither, Echidna, Manticore | [`slither-erc`](https://github.com/crytic/slither/wiki/ERC-Conformance) | + +Maeneo mengine yatahitaji kukaguliwa kulingana na malengo yako, lakini maeneo haya mapana ya kuzingatia ni mwanzo mzuri kwa mfumo wowote wa mkataba-erevu. + +Ukaguzi wetu wa umma una mifano ya sifa zilizothibitishwa au zilizopimwa. Fikiria kusoma sehemu za `Upimaji na Uthibitishaji wa Kiotomatiki` za ripoti zifuatazo ili kukagua sifa halisi za usalama: + +- [0x](https://github.com/trailofbits/publications/blob/master/reviews/0x-protocol.pdf) +- [Balancer](https://github.com/trailofbits/publications/blob/master/reviews/BalancerCore.pdf) diff --git a/public/content/translations/sw/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/translations/sw/developers/tutorials/hello-world-smart-contract-fullstack/index.md new file mode 100644 index 00000000000..15c7a3a7f14 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/hello-world-smart-contract-fullstack/index.md @@ -0,0 +1,1540 @@ +--- +title: Mkataba-erevu wa Hello World kwa Wanaoanza - Fullstack +description: Mafunzo ya utangulizi kuhusu kuandika na kusambaza mkataba-erevu rahisi kwenye Ethereum. +author: "nstrike2" +tags: + [ + "Solidity", + "Hardhat", + "Alchemy", + "mikataba erevu", + "upelekaji", + "kichunguzi cha bloku", + "frontend", + "miamala" + ] +skill: beginner +lang: sw +published: 2021-10-25 +--- + +Mwongozo huu ni kwa ajili yako kama wewe ni mgeni katika utengenezaji wa mnyororo wa bloku na hujui pa kuanzia au jinsi ya kupeleka na kuingiliana na mikataba-erevu. Tutapitia hatua za kuunda na kupeleka mkataba-erevu rahisi kwenye testnet ya Goerli kwa kutumia [MetaMask](https://metamask.io), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org), na [Alchemy](https://alchemy.com/eth). + +Utahitaji akaunti ya Alchemy ili kukamilisha mafunzo haya. [Jisajili kwa akaunti ya bure](https://www.alchemy.com/). + +Ikiwa una maswali wakati wowote, jisikie huru kuuliza katika [Alchemy Discord](https://discord.gg/gWuC7zB)! + +## Sehemu ya 1 - Unda na Upeleke Mkataba-erevu wako kwa kutumia Hardhat {#part-1} + +### Unganisha kwenye mtandao wa Ethereum {#connect-to-the-ethereum-network} + +Kuna njia nyingi za kufanya maombi kwa mnyororo wa Ethereum. Kwa urahisi, tutatumia akaunti ya bure kwenye Alchemy, jukwaa la wasanidi programu wa mnyororo wa bloku na API inayoturuhusu kuwasiliana na mnyororo wa Ethereum bila kuendesha nodi wenyewe. Alchemy pia ina zana za wasanidi programu kwa ufuatiliaji na uchambuzi; tutatumia fursa hii katika mafunzo haya kuelewa kinachoendelea nyuma ya pazia katika upelekaji wa mkataba-erevu wetu. + +### Unda programu yako na ufunguo wa API {#create-your-app-and-api-key} + +Baada ya kuunda akaunti ya Alchemy, unaweza kutengeneza ufunguo wa API kwa kuunda programu. Hii itakuruhusu kufanya maombi kwenye testnet ya Goerli. Ikiwa hufahamu testnets unaweza [kusoma mwongozo wa Alchemy wa kuchagua mtandao](https://www.alchemy.com/docs/choosing-a-web3-network). + +Kwenye dashibodi ya Alchemy, tafuta menyu kunjuzi ya **Programu** kwenye upau wa urambazaji na ubofye **Unda Programu**. + +![Programu ya uundaji wa Hello world](./hello-world-create-app.png) + +Ipe programu yako jina '_Hello World_' na uandike maelezo mafupi. Chagua **Staging** kama mazingira yako na **Goerli** kama mtandao wako. + +![mwonekano wa programu ya kuunda hello world](./create-app-view-hello-world.png) + +_Kumbuka: hakikisha unachagua **Goerli**, la sivyo mafunzo haya hayatafanya kazi._ + +Bofya **Unda programu**. Programu yako itaonekana kwenye jedwali hapa chini. + +### Unda akaunti ya Ethereum {#create-an-ethereum-account} + +Unahitaji akaunti ya Ethereum ili kutuma na kupokea miamala. Tutatumia MetaMask, mkoba halisi kwenye kivinjari unaowawezesha watumiaji kudhibiti anwani ya akaunti yao ya Ethereum. + +Unaweza kupakua na kuunda akaunti ya MetaMask bure [hapa](https://metamask.io/download). Unapounda akaunti, au ikiwa tayari una akaunti, hakikisha umebadili na kuweka "Mtandao wa Majaribio wa Goerli" juu kulia (ili tusitumie pesa halisi). + +### Hatua ya 4: Ongeza ether kutoka kwa Bomba {#step-4-add-ether-from-a-faucet} + +Ili kupeleka mkataba-erevu wako kwenye mtandao wa majaribio, utahitaji ETH bandia. Ili kupata ETH kwenye mtandao wa Goerli, nenda kwenye bomba la Goerli na uweke anwani ya akaunti yako ya Goerli. Kumbuka kwamba mabomba ya Goerli yamekuwa hayategemewi sana hivi karibuni - angalia [ukurasa wa mitandao ya majaribio](/developers/docs/networks/#goerli) kwa orodha ya machaguo ya kujaribu: + +_Kumbuka: kutokana na msongamano wa mtandao, hii inaweza kuchukua muda._ +`` + +### Hatua ya 5: Angalia Salio lako {#step-5-check-your-balance} + +Ili kuhakikisha mara mbili kuwa ETH iko kwenye mkoba wako, hebu tufanye ombi la [eth_getBalance](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_getbalance) kwa kutumia [zana ya mtunzi ya Alchemy](https://composer.alchemyapi.io/?composer_state=%7B%22network%22%3A0%2C%22methodName%22%3A%22eth_getBalance%22%2C%22paramValues%22%3A%5B%22%22%2C%22latest%22%5D%7D). Hii itarudisha kiasi cha ETH katika mkoba wetu. Ili kujifunza zaidi angalia [mafunzo mafupi ya Alchemy ya jinsi ya kutumia zana ya mtunzi](https://youtu.be/r6sjRxBZJuU). + +Weka anwani ya akaunti yako ya MetaMask na ubofye **Tuma Ombi**. Utaona jibu linalofanana na sehemu ya msimbo hapa chini. + +```json +{ "jsonrpc": "2.0", "id": 0, "result": "0x2B5E3AF16B1880000" } +``` + +> _Kumbuka: Matokeo haya yako katika wei, sio ETH. Wei hutumika kama thamani ndogo zaidi ya ether._ + +Phew! Pesa zetu bandia zote zipo. + +### Hatua ya 6: Anzisha mradi wetu {#step-6-initialize-our-project} + +Kwanza, tutahitaji kuunda folda kwa ajili ya mradi wetu. Nenda kwenye mstari wako wa amri na uweke yafuatayo. + +``` +mkdir hello-world +cd hello-world +``` + +Sasa kwa kuwa tuko ndani ya folda ya mradi wetu, tutatumia `npm init` kuanzisha mradi. + +> Ikiwa bado hujasakinisha npm, fuata [maelekezo haya ili kusakinisha Node.js na npm](https://docs.alchemyapi.io/alchemy/guides/alchemy-for-macs#1-install-nodejs-and-npm). + +Kwa madhumuni ya mafunzo haya, haijalishi jinsi unavyojibu maswali ya uanzishaji. Hivi ndivyo tulivyofanya kwa ajili ya marejeleo: + +``` +jina la kifurushi: (hello-world) +toleo: (1.0.0) +maelezo: mkataba-erevu wa hello world +mahali pa kuanzia: (index.js) +amri ya majaribio: +hazina ya git: +maneno muhimu: +mwandishi: +leseni: (ISC) + +Karibu kuandika kwa /Users/.../.../.../hello-world/package.json: + +{ + "name": "hello-world", + "version": "1.0.0", + "description": "mkataba-erevu wa hello world", + "main": "index.js", + "scripts": { + "test": "echo \"Kosa: hakuna jaribio lililobainishwa\" && exit 1" + }, + "author": "", + "license": "ISC" +} +``` + +Thibitisha package.json na tuko tayari kwenda! + +### Hatua ya 7: Pakua Hardhat {#step-7-download-hardhat} + +Hardhat ni mazingira ya usanidi wa kuandaa, kupeleka, kupima, na kutatua programu yako ya Ethereum. Inasaidia wasanidi programu wanapojenga mikataba-erevu na dApps ndani ya nchi kabla ya kupeleka kwenye mnyororo hai. + +Ndani ya mradi wetu wa `hello-world` endesha: + +``` +npm install --save-dev hardhat +``` + +Angalia ukurasa huu kwa maelezo zaidi kuhusu [maagizo ya usakinishaji](https://hardhat.org/getting-started/#overview). + +### Hatua ya 8: Unda mradi wa Hardhat {#step-8-create-hardhat-project} + +Ndani ya folda ya mradi wetu wa `hello-world`, endesha: + +``` +npx hardhat +``` + +Unapaswa kisha kuona ujumbe wa kukaribisha na chaguo la kuchagua unachotaka kufanya. Chagua “unda hardhat.config.js tupu”: + +``` +888 888 888 888 888 +888 888 888 888 888 +888 888 888 888 888 +8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888 +888 888 "88b 888P" d88" 888 888 "88b "88b 888 +888 888 .d888888 888 888 888 888 888 .d888888 888 +888 888 888 888 888 Y88b 888 888 888 888 888 Y88b. +888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888 + +👷 Karibu kwenye Hardhat v2.0.11 👷‍ + +Unataka kufanya nini? ... +Unda mradi wa mfano +❯ Unda hardhat.config.js tupu +Acha +``` + +Hii itatengeneza faili ya `hardhat.config.js` katika mradi. Tutaitumia baadaye katika mafunzo haya kubainisha usanidi wa mradi wetu. + +### Hatua ya 9: Ongeza folda za mradi {#step-9-add-project-folders} + +Ili kuuweka mradi katika mpangilio, hebu tuunde folda mbili mpya. Katika mstari wa amri, nenda kwenye saraka kuu ya mradi wako wa `hello-world` na uandike: + +``` +mkdir contracts +mkdir scripts +``` + +- `contracts/` ni mahali ambapo tutaweka faili la msimbo wa mkataba-erevu wetu wa hello world +- `scripts/` ni mahali ambapo tutaweka hati za kusambaza na kuingiliana na mkataba wetu + +### Hatua ya 10: Andika mkataba wetu {#step-10-write-our-contract} + +Huenda unajiuliza, ni lini tutaandika msimbo? Muda umefika! + +Fungua mradi wa hello-world katika kihariri chako unachopenda. Mikataba-erevu mara nyingi huandikwa kwa Solidity, ambayo tutaitumia kuandika mkataba-erevu wetu.‌ + +1. Nenda kwenye folda ya `contracts` na uunde faili mpya iitwayo `HelloWorld.sol` +2. Hapa chini kuna sampuli ya mkataba-erevu wa Hello World ambao tutautumia kwa mafunzo haya. Nakili yaliyomo hapa chini kwenye faili ya `HelloWorld.sol`. + +_Kumbuka: Hakikisha unasoma maoni ili kuelewa mkataba huu unafanya nini._ + +``` +// Inabainisha toleo la Solidity, kwa kutumia matoleo ya kimantiki. +// Jifunze zaidi: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity >=0.7.3; + +// Inafafanua mkataba unaoitwa `HelloWorld`. +// Mkataba ni mkusanyiko wa kazi na data (hali yake). Baada ya kupelekwa, mkataba hukaa kwenye anwani maalum kwenye mnyororo wa bloku wa Ethereum. Jifunze zaidi: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Hutolewa wakati kazi ya sasisho inapoitwa + // Matukio ya mkataba-erevu ni njia ya mkataba wako kuwasiliana kwamba kitu kilitokea kwenye mnyororo wa bloku kwa programu yako ya mbele, ambayo inaweza kuwa 'inasikiliza' matukio fulani na kuchukua hatua yanapotokea. + event UpdatedMessages(string oldStr, string newStr); + + // Inatangaza kigezo cha hali `message` cha aina ya `string`. + // Vigezo vya hali ni vigezo ambavyo thamani zake huhifadhiwa kabisa katika hifadhi ya mkataba. Neno muhimu `public` hufanya vigezo kupatikana kutoka nje ya mkataba na huunda kazi ambayo mikataba mingine au wateja wanaweza kuita ili kupata thamani. + string public message; + + // Sawa na lugha nyingi za upangaji zinazotegemea darasa, konstruka ni kazi maalum ambayo hutekelezwa tu wakati wa uundaji wa mkataba. + // Konstruka hutumiwa kuanzisha data ya mkataba. Jifunze zaidi:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) { + + // Inakubali hoja ya mfuatano `initMessage` na kuweka thamani katika kigezo cha hifadhi cha mkataba `message`). + message = initMessage; + } + + // Kazi ya umma inayokubali hoja ya mfuatano na kusasisha kigezo cha hifadhi `message`. + function update(string memory newMessage) public { + string memory oldMsg = message; + message = newMessage; + emit UpdatedMessages(oldMsg, newMessage); + } +} +``` + +Huu ni mkataba-erevu wa msingi unaohifadhi ujumbe wakati wa uundaji. Inaweza kusasishwa kwa kuita kazi ya `update`. + +### Hatua ya 11: Unganisha MetaMask & Alchemy kwenye mradi wako {#step-11-connect-metamask-alchemy-to-your-project} + +Tumeunda pochi ya MetaMask, akaunti ya Alchemy, na kuandika mkataba-erevu wetu, sasa ni wakati wa kuunganisha vitu hivi vitatu. + +Kila muamala unaotumwa kutoka kwa mkoba wako unahitaji saini kwa kutumia ufunguo wako wa kipekee binafsi. Ili kuipa programu yetu ruhusa hii, tunaweza kuhifadhi ufunguo wetu binafsi kwa usalama katika faili ya mazingira. Pia tutahifadhi ufunguo wa API kwa Alchemy hapa. + +> Ili kujifunza zaidi kuhusu kutuma miamala, angalia [mafunzo haya](https://www.alchemy.com/docs/hello-world-smart-contract#step-11-connect-metamask--alchemy-to-your-project) kuhusu kutuma miamala kwa kutumia web3. + +Kwanza, sakinisha kifurushi cha dotenv katika saraka ya mradi wako: + +``` +npm install dotenv --save +``` + +Kisha, unda faili ya `.env` katika saraka kuu ya mradi. Ongeza ufunguo wako binafsi wa MetaMask na URL ya API ya HTTP ya Alchemy humo. + +Faili yako ya mazingira lazima iitwe `.env` la sivyo haitatambuliwa kama faili ya mazingira. + +Usiite `process.env` au `.env-custom` au jina lingine lolote. + +- Fuata [maelekezo haya](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key) ili kuhamisha ufunguo wako binafsi +- Angalia hapa chini ili kupata URL ya API ya HTTP ya Alchemy + +![](./get-alchemy-api-key.gif) + +Faili lako la `.env` linapaswa kuonekana hivi: + +``` +API_URL = "https://eth-goerli.alchemyapi.io/v2/ufunguo-wako-wa-api" +PRIVATE_KEY = "ufunguo-wako-binafsi-wa-metamask" +``` + +Ili kuunganisha hivi kwenye msimbo wetu, tutarejelea vigezo hivi katika faili letu la `hardhat.config.js` kwenye hatua ya 13. + +### Hatua ya 12: Sakinisha Ethers.js {#step-12-install-ethersjs} + +Ethers.js ni maktaba inayorahisisha kuingiliana na kufanya maombi kwa Ethereum kwa kufunika [mbinu za kawaida za JSON-RPC](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc) na mbinu rahisi zaidi kwa mtumiaji. + +Hardhat inaturuhusu kuunganisha [plugins](https://hardhat.org/plugins/) kwa zana za ziada na utendaji uliopanuliwa. Tutatumia fursa ya [Ethers plugin](https://hardhat.org/docs/plugins/official-plugins#hardhat-ethers) kwa upelekaji wa mkataba. + +Katika saraka yako ya mradi, andika: + +```bash +npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" +``` + +### Hatua ya 13: Sasisha hardhat.config.js {#step-13-update-hardhat-configjs} + +Tumeongeza vitegemezi na programu-jalizi kadhaa hadi sasa, sasa tunahitaji kusasisha `hardhat.config.js` ili mradi wetu uvifahamu vyote. + +Sasisha `hardhat.config.js` yako ili ionekane hivi: + +```javascript +/** + * @type import('hardhat/config').HardhatUserConfig + */ + +require("dotenv").config() +require("@nomiclabs/hardhat-ethers") + +const { API_URL, PRIVATE_KEY } = process.env + +module.exports = { + solidity: "0.7.3", + defaultNetwork: "goerli", + networks: { + hardhat: {}, + goerli: { + url: API_URL, + accounts: [`0x${PRIVATE_KEY}`], + }, + }, +} +``` + +### Hatua ya 14: Kusanya mkataba wetu {#step-14-compile-our-contract} + +Ili kuhakikisha kila kitu kinafanya kazi hadi sasa, hebu tuandae mkataba wetu. Jukumu la `compile` ni mojawapo ya majukumu yaliyojengewa ndani ya hardhat. + +Kutoka kwenye mstari wa amri, endesha: + +```bash +npx hardhat compile +``` + +Unaweza kupata onyo kuhusu `Kitambulisho cha leseni cha SPDX hakijatolewa kwenye faili ya chanzo`, lakini hakuna haja ya kuwa na wasiwasi kuhusu hilo - tunatumai kila kitu kingine kinaonekana vizuri! Ikiwa sivyo, unaweza kutuma ujumbe kila wakati katika [discord ya Alchemy](https://discord.gg/u72VCg3). + +### Hatua ya 15: Andika hati yetu ya kupeleka {#step-15-write-our-deploy-script} + +Sasa kwa kuwa mkataba wetu umeandikwa na faili yetu ya usanidi iko tayari, ni wakati wa kuandika hati ya kupeleka mkataba wetu. + +Nenda kwenye folda ya `scripts/` na uunde faili jipya liitwalo `deploy.js`, na uongeze yaliyomo yafuatayo ndani yake: + +```javascript +async function main() { + const HelloWorld = await ethers.getContractFactory("HelloWorld") + + // Anza upelekaji, ukirudisha ahadi inayotatuliwa kuwa kitu cha mkataba + const hello_world = await HelloWorld.deploy("Hello World!") + console.log("Mkataba umepelekwa kwenye anwani:", hello_world.address) +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + }) +``` + +Hardhat hufanya kazi nzuri ya kuelezea kile kila mstari wa msimbo huu unafanya katika [mafunzo yao ya Mikataba](https://hardhat.org/tutorial/testing-contracts.html#writing-tests), tumechukua maelezo yao hapa. + +```javascript +const HelloWorld = await ethers.getContractFactory("HelloWorld") +``` + +`ContractFactory` katika ethers.js ni dhana inayotumika kupeleka mikataba-erevu mpya, kwa hivyo `HelloWorld` hapa ni [kiwanda](https://en.wikipedia.org/wiki/Factory_\(object-oriented_programming\)) cha vielelezo vya mkataba wetu wa hello world. Wakati unatumia programu-jalizi ya `hardhat-ethers` `ContractFactory` na `Contract`, vielelezo huunganishwa na mtia saini wa kwanza (mmiliki) kwa chaguo-msingi. + +```javascript +const hello_world = await HelloWorld.deploy() +``` + +Kuita `deploy()` kwenye `ContractFactory` kutaanza upelekaji, na kurudisha `Promise` inayotatuliwa kuwa kitu cha `Contract`. Hiki ndicho kitu ambacho kina mbinu kwa kila moja ya kazi zetu za mkataba-erevu. + +### Hatua ya 16: Sambaza mkataba wetu {#step-16-deploy-our-contract} + +Hatimaye tuko tayari kupeleka mkataba-erevu wetu! Nenda kwenye mstari wa amri na uendeshe: + +```bash +npx hardhat run scripts/deploy.js --network goerli +``` + +Unapaswa kisha kuona kitu kama: + +```bash +Mkataba umesambazwa kwa anwani: 0x6cd7d44516a20882cEa2DE9f205bF401c0d23570 +``` + +**Tafadhali hifadhi anwani hii**. Tutaitumia baadaye katika mafunzo. + +Tukienda kwenye [Goerli etherscan](https://goerli.etherscan.io) na kutafuta anwani yetu ya mkataba tunapaswa kuona kuwa imesambazwa kwa mafanikio. Muamala utaonekana kitu kama hiki: + +![](./etherscan-contract.png) + +Anwani ya `Kutoka` inapaswa kufanana na anwani ya akaunti yako ya MetaMask na anwani ya `Kwenda` itasema **Uundaji wa Mkataba**. Tukibofya kwenye muamala tutaona anwani yetu ya mkataba katika sehemu ya `Kwenda`. + +![](./etherscan-transaction.png) + +Hongera! Umepeleka mkataba-erevu kwenye testnet ya Ethereum. + +Ili kuelewa kinachoendelea nyuma ya pazia, hebu tuelekee kwenye kichupo cha Explorer katika [dashibodi yetu ya Alchemy](https://dashboard.alchemy.com/explorer). Ikiwa una programu nyingi za Alchemy hakikisha unachuja kwa programu na uchague **Hello World**. + +![](./hello-world-explorer.png) + +Hapa utaona mbinu chache za JSON-RPC ambazo Hardhat/Ethers zilitengeneza nyuma ya pazia tulipoiita kazi ya `.deploy()`. Mbinu mbili muhimu hapa ni [`eth_sendRawTransaction`](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_sendrawtransaction), ambalo ni ombi la kuandika mkataba wetu kwenye mnyororo wa Goerli, na [`eth_getTransactionByHash`](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_gettransactionbyhash), ambalo ni ombi la kusoma taarifa kuhusu muamala wetu kwa kutumia hashi. Ili kujifunza zaidi kuhusu kutuma miamala, angalia [mafunzo yetu ya kutuma miamala kwa kutumia Web3](/developers/tutorials/sending-transactions-using-web3-and-alchemy/). + +## Sehemu ya 2: Wasiliana na Mkataba wako Mahiri {#part-2-interact-with-your-smart-contract} + +Sasa kwa kuwa tumefanikiwa kupeleka mkataba-erevu kwenye mtandao wa Goerli, hebu tujifunze jinsi ya kuingiliana nao. + +### Unda faili ya interact.js {#create-a-interactjs-file} + +Hii ndiyo faili ambapo tutaandika hati yetu ya mwingiliano. Tutatumia maktaba ya Ethers.js uliyosakinisha hapo awali katika Sehemu ya 1. + +Ndani ya folda ya `scripts/`, unda faili mpya inayoitwa `interact.js` na uongeze msimbo ufuatao: + +```javascript +// interact.js + +const API_KEY = process.env.API_KEY +const PRIVATE_KEY = process.env.PRIVATE_KEY +const CONTRACT_ADDRESS = process.env.CONTRACT_ADDRESS +``` + +### Sasisha faili yako ya .env {#update-your-env-file} + +Tutakuwa tukitumia vigezo vipya vya mazingira, kwa hivyo tunahitaji kuvifafanua katika faili ya `.env` ambayo [tuliiunda mapema](#step-11-connect-metamask-&-alchemy-to-your-project). + +Tutahitaji kuongeza ufafanuzi wa `API_KEY` yetu ya Alchemy na `CONTRACT_ADDRESS` ambapo mkataba wako mahiri ulitumwa. + +Faili yako ya `.env` inapaswa kuonekana kama hii: + +```bash +# .env + +API_URL = "https://eth-goerli.alchemyapi.io/v2/" +API_KEY = "" +PRIVATE_KEY = "" +CONTRACT_ADDRESS = "0x" +``` + +### Chukua ABI ya mkataba wako {#grab-your-contract-ABI} + +[ABI (Kiolesura cha Maombi cha Mfumo-mbili)](/glossary/#abi) ya mkataba wetu ni kiolesura cha kuingiliana na mkataba-erevu wetu. Hardhat hutengeneza ABI kiotomatiki na kuihifadhi katika `HelloWorld.json`. Ili kutumia ABI, tutahitaji kuchanganua yaliyomo kwa kuongeza mistari ifuatayo ya msimbo kwenye faili yetu ya `interact.js`: + +```javascript +// interact.js +const contract = require("../artifacts/contracts/HelloWorld.sol/HelloWorld.json") +``` + +Ikiwa unataka kuona ABI unaweza kuichapisha kwenye koni yako: + +```javascript +console.log(JSON.stringify(contract.abi)) +``` + +Ili kuona ABI yako ikichapishwa kwenye koni, nenda kwenye terminal yako na uendeshe: + +```bash +npx hardhat run scripts/interact.js +``` + +### Unda mfano wa mkataba wako {#create-an-instance-of-your-contract} + +Ili kuingiliana na mkataba wetu, tunahitaji kuunda mfano wa mkataba katika msimbo wetu. Ili kufanya hivyo na Ethers.js, tutahitaji kufanya kazi na dhana tatu: + +1. Mtoa huduma - mtoa huduma wa nodi anayekupa ufikiaji wa kusoma na kuandika kwenye mnyororo wa bloku +2. Mwenye saini - inawakilisha akaunti ya Ethereum inayoweza kusaini miamala +3. Mkataba - kitu cha Ethers.js kinachowakilisha mkataba maalum uliotumwa kwenye mnyororo + +Tutatumia ABI ya mkataba kutoka hatua ya awali ili kuunda mfano wetu wa mkataba: + +```javascript +// interact.js + +// Mtoa huduma +const alchemyProvider = new ethers.providers.AlchemyProvider( + (network = "goerli"), + API_KEY +) + +// Mwenye saini +const signer = new ethers.Wallet(PRIVATE_KEY, alchemyProvider) + +// Mkataba +const helloWorldContract = new ethers.Contract( + CONTRACT_ADDRESS, + contract.abi, + signer +) +``` + +Jifunze zaidi kuhusu Watoa huduma, Wanaosaini, na Mikataba katika [nyaraka za ethers.js](https://docs.ethers.io/v5/). + +### Soma ujumbe wa kuanzisha {#read-the-init-message} + +Unakumbuka tuliposambaza mkataba wetu na `initMessage = "Hello world!"`? Sasa tutasoma ujumbe huo uliohifadhiwa katika mkataba-erevu wetu na kuuchapisha kwenye koni. + +Katika JavaScript, kazi za asinkroni hutumiwa wakati wa kuingiliana na mitandao. Ili kujifunza zaidi kuhusu kazi za asinkroni, [soma makala hii ya kati](https://blog.bitsrc.io/understanding-asynchronous-javascript-the-event-loop-74cd408419ff). + +Tumia msimbo ulio hapa chini kuita kazi ya `ujumbe` katika mkataba-erevu wetu na kusoma ujumbe wa kuanzisha: + +```javascript +// interact.js + +// ... + +async function main() { + const message = await helloWorldContract.message() + console.log("Ujumbe ni: " + message) +} +main() +``` + +Baada ya kuendesha faili kwa kutumia `npx hardhat run scripts/interact.js` kwenye terminal tunapaswa kuona jibu hili: + +``` +Ujumbe ni: Hello world! +``` + +Hongera! Umefanikiwa kusoma data ya mkataba-erevu kutoka kwa mnyororo wa bloku wa Ethereum, hongera sana! + +### Sasisha ujumbe {#update-the-message} + +Badala ya kusoma tu ujumbe, tunaweza pia kusasisha ujumbe uliohifadhiwa katika mkataba-erevu wetu kwa kutumia kazi ya `sasisho`! Inapendeza, sivyo? + +Ili kusasisha ujumbe, tunaweza kuita moja kwa moja kazi ya `sasisho` kwenye kitu chetu cha Mkataba kilichoundwa: + +```javascript +// interact.js + +// ... + +async function main() { + const message = await helloWorldContract.message() + console.log("Ujumbe ni: " + message) + + console.log("Inasasisha ujumbe...") + const tx = await helloWorldContract.update("Huu ndio ujumbe mpya.") + await tx.wait() +} +main() +``` + +Kumbuka kuwa kwenye mstari wa 11, tunafanya mwito kwa `.wait()` kwenye kitu cha muamala kilichorudishwa. Hii inahakikisha kwamba hati yetu inasubiri muamala uchimbwe kwenye mnyororo wa bloku kabla ya kutoka kwenye kazi. Ikiwa wito wa `.wait()` haujajumuishwa, hati inaweza isione thamani iliyosasishwa ya `ujumbe` katika mkataba. + +### Soma ujumbe mpya {#read-the-new-message} + +Unapaswa kuwa na uwezo wa kurudia [hatua ya awali](#read-the-init-message) ili kusoma thamani iliyosasishwa ya `ujumbe`. Chukua muda na uone ikiwa unaweza kufanya mabadiliko muhimu ili kuchapisha thamani hiyo mpya! + +Ikiwa unahitaji dokezo, hivi ndivyo faili yako ya `interact.js` inavyopaswa kuonekana kwa sasa: + +```javascript +// interact.js + +const API_KEY = process.env.API_KEY +const PRIVATE_KEY = process.env.PRIVATE_KEY +const CONTRACT_ADDRESS = process.env.CONTRACT_ADDRESS + +const contract = require("../artifacts/contracts/HelloWorld.sol/HelloWorld.json") + +// mtoa huduma - Alchemy +const alchemyProvider = new ethers.providers.AlchemyProvider( + (network = "goerli"), + API_KEY +) + +// mtiaji saini - wewe +const signer = new ethers.Wallet(PRIVATE_KEY, alchemyProvider) + +// mfano wa mkataba +const helloWorldContract = new ethers.Contract( + CONTRACT_ADDRESS, + contract.abi, + signer +) + +async function main() { + const message = await helloWorldContract.message() + console.log("Ujumbe ni: " + message) + + console.log("Inasasisha ujumbe...") + const tx = await helloWorldContract.update("huu ni ujumbe mpya") + await tx.wait() + + const newMessage = await helloWorldContract.message() + console.log("Ujumbe mpya ni: " + newMessage) +} + +main() +``` + +Sasa endesha tu hati na unapaswa kuona ujumbe wa zamani, hali ya kusasisha, na ujumbe mpya ukichapishwa kwenye terminal yako! + +`npx hardhat run scripts/interact.js --network goerli` + +``` +Ujumbe ni: Hello World! +Inasasisha ujumbe... +Ujumbe mpya ni: Huu ni ujumbe mpya. +``` + +Wakati unapoendesha hati hiyo, unaweza kugundua kuwa hatua ya `Inasasisha ujumbe...` inachukua muda kupakia kabla ya ujumbe mpya kupakiwa. Hiyo ni kutokana na mchakato wa uchimbaji; ikiwa una hamu ya kufuatilia miamala inapochimbwa, tembelea [Alchemy mempool](https://dashboard.alchemyapi.io/mempool) ili kuona hali ya muamala. Ikiwa muamala umeacha, inasaidia pia kuangalia [Goerli Etherscan](https://goerli.etherscan.io) na kutafuta hashi ya muamala wako. + +## Sehemu ya 3: Chapisha Mkataba-erevu wako kwenye Etherscan {#part-3-publish-your-smart-contract-to-etherscan} + +Umefanya kazi yote ngumu ya kuufanya mkataba-erevu wako kuwa hai; sasa ni wakati wa kuushiriki na ulimwengu! + +Kwa kuthibitisha mkataba-erevu wako kwenye Etherscan, mtu yeyote anaweza kuona msimbo wako chanzo na kuingiliana na mkataba-erevu wako. Tuanze! + +### Hatua ya 1: Tengeneza Ufunguo wa API kwenye akaunti yako ya Etherscan {#step-1-generate-an-api-key-on-your-etherscan-account} + +Ufunguo wa API wa Etherscan ni muhimu ili kuthibitisha kuwa wewe ndiye mmiliki wa mkataba-erevu unaojaribu kuchapisha. + +Ikiwa huna akaunti ya Etherscan tayari, [jisajili kwa akaunti](https://etherscan.io/register). + +Baada ya kuingia, tafuta jina lako la mtumiaji kwenye upau wa urambazaji, lielekeze juu yake na uchague kitufe cha **Wasifu wangu**. + +Kwenye ukurasa wako wa wasifu, unapaswa kuona upau wa urambazaji wa kando. Kutoka kwenye upau wa urambazaji wa kando, chagua **Vifunguo vya API**. Kisha, bonyeza kitufe cha "Ongeza" ili kuunda ufunguo mpya wa API, ipe jina programu yako **hello-world** na bonyeza kitufe cha **Unda Ufunguo Mpya wa API**. + +Ufunguo wako mpya wa API unapaswa kuonekana kwenye jedwali la ufunguo wa API. Nakili ufunguo wa API kwenye ubao wako wa kunakili. + +Kisha, tunahitaji kuongeza ufunguo wa API wa Etherscan kwenye faili yetu ya `.env`. + +Baada ya kuiongeza, faili yako ya `.env` inapaswa kuonekana hivi: + +```javascript +API_URL = "https://eth-goerli.alchemyapi.io/v2/ufunguo-wako-wa-api" +PUBLIC_KEY = "anwani-yako-ya-akaunti-ya-umma" +PRIVATE_KEY = "anwani-yako-ya-akaunti-binafsi" +CONTRACT_ADDRESS = "anwani-yako-ya-mkataba" +ETHERSCAN_API_KEY = "ufunguo-wako-wa-etherscan" +``` + +### Mikataba-erevu iliyotumwa na Hardhat {#hardhat-deployed-smart-contracts} + +#### Sakinisha hardhat-etherscan {#install-hardhat-etherscan} + +Kuchapisha mkataba wako kwa Etherscan kwa kutumia Hardhat ni rahisi. Kwanza utahitaji kusakinisha programu-jalizi ya `hardhat-etherscan` ili kuanza. `hardhat-etherscan` itathibitisha kiotomatiki msimbo chanzo wa mkataba-erevu na ABI kwenye Etherscan. Ili kuongeza hii, katika saraka ya `hello-world` endesha: + +```text +npm install --save-dev @nomiclabs/hardhat-etherscan +``` + +Baada ya kusakinishwa, jumuisha taarifa ifuatayo juu ya `hardhat.config.js` yako, na ongeza chaguzi za usanidi wa Etherscan: + +```javascript +// hardhat.config.js + +require("dotenv").config() +require("@nomiclabs/hardhat-ethers") +require("@nomiclabs/hardhat-etherscan") + +const { API_URL, PRIVATE_KEY, ETHERSCAN_API_KEY } = process.env + +module.exports = { + solidity: "0.7.3", + defaultNetwork: "goerli", + networks: { + hardhat: {}, + goerli: { + url: API_URL, + accounts: [`0x${PRIVATE_KEY}`], + }, + }, + etherscan: { + // Ufunguo wako wa API kwa Etherscan + // Pata moja kwenye https://etherscan.io/ + apiKey: ETHERSCAN_API_KEY, + }, +} +``` + +#### Thibitisha mkataba-erevu wako kwenye Etherscan {#verify-your-smart-contract-on-etherscan} + +Hakikisha faili zote zimehifadhiwa na vigezo vyote vya `.env` vimesanidiwa ipasavyo. + +Endesha kazi ya `kuthibitisha`, ukipitisha anwani ya mkataba, na mtandao ambapo umewekwa: + +```text +npx hardhat verify --network goerli ANWANI_YA_MKATABA_ULIOPELEKWA 'Hello World!' +``` + +Hakikisha kwamba `ANWANI_YA_MKATABA_ULIOPELEKWA` ni anwani ya mkataba-erevu wako uliotumwa kwenye mtandao wa majaribio wa Goerli. Pia, hoja ya mwisho (`'Hello World!'`) lazima iwe thamani sawa ya mfuatano iliyotumiwa [wakati wa hatua ya kupeleka katika sehemu ya 1](#write-our-deploy-script). + +Ikiwa yote yatakwenda sawa, utaona ujumbe ufuatao kwenye terminal yako: + +```text +Msimbo chanzo umewasilishwa kwa mafanikio kwa mkataba +contracts/HelloWorld.sol:HelloWorld kwenye 0xdeployed-contract-address +kwa uthibitisho kwenye Etherscan. Inasubiri matokeo ya uthibitisho... + + +Mkataba wa HelloWorld umethibitishwa kwa mafanikio kwenye Etherscan. +https://goerli.etherscan.io/address/#contracts +``` + +Hongera! Msimbo wako wa mkataba-erevu uko kwenye Etherscan! + +### Angalia mkataba-erevu wako kwenye Etherscan! {#check-out-your-smart-contract-on-etherscan} + +Unapoelekea kwenye kiungo kilichotolewa kwenye terminal yako, unapaswa kuwa na uwezo wa kuona msimbo wako wa mkataba-erevu na ABI zilizochapishwa kwenye Etherscan! + +**Wahooo - umefanikiwa bingwa! Sasa mtu yeyote anaweza kuita au kuandika kwa mkataba-erevu wako! Tunatarajia kuona utakachojenga baadaye!** + +## Sehemu ya 4 - Kuunganisha mkataba-erevu wako na sehemu ya mbele {#part-4-integrating-your-smart-contract-with-the-frontend} + +Mwishoni mwa mafunzo haya, utajua jinsi ya: + +- Unganisha mkoba wa MetaMask kwenye mfumo mtawanyo wa kimamlaka wako +- Soma data kutoka kwa mkataba-erevu wako kwa kutumia API ya [Alchemy Web3](https://docs.alchemy.com/alchemy/documentation/alchemy-web3) +- Saini miamala ya Ethereum kwa kutumia MetaMask + +Kwa mfumo mtawanyo wa kimamlaka huu, tutatumia [React](https://react.dev/) kama mfumo wetu wa mbele; hata hivyo, ni muhimu kutambua kwamba hatutatumia muda mwingi kuchanganua misingi yake, kwani tutazingatia zaidi kuleta utendaji wa Web3 kwenye mradi wetu. + +Kama sharti, unapaswa kuwa na uelewa wa kiwango cha mwanzo cha React. Ikiwa sivyo, tunapendekeza ukamilishe [mafunzo rasmi ya Utangulizi wa React](https://react.dev/learn). + +### Nakili faili za kuanzia {#clone-the-starter-files} + +Kwanza, nenda kwenye [hazina ya GitHub ya hello-world-part-four](https://github.com/alchemyplatform/hello-world-part-four-tutorial) ili kupata faili za kuanzia za mradi huu na unakili hazina hii kwenye mashine yako ya ndani. + +Fungua hazina iliyonakiliwa ndani ya nchi. Angalia kuwa ina folda mbili: `starter-files` na `completed`. + +- `starter-files`- **tutafanya kazi katika saraka hii**, tutaunganisha UI na mkoba wako wa Ethereum na mkataba-erevu tuliouchapisha kwenye Etherscan katika [Sehemu ya 3](#part-3). +- `completed` ina mafunzo yote yaliyokamilika na inapaswa kutumika tu kama rejea ukikwama. + +Kisha, fungua nakala yako ya `starter-files` kwenye kihariri chako cha msimbo unachokipenda, na kisha nenda kwenye folda ya `src`. + +Msimbo wote tutakaouandika utakuwa chini ya folda ya `src`. Tutakuwa tukihariri kijenzi cha `HelloWorld.js` na faili za JavaScript za `util/interact.js` ili kuupa mradi wetu utendaji wa Web3. + +### Angalia faili za kuanzia {#check-out-the-starter-files} + +Kabla ya kuanza kuandika msimbo, hebu tuchunguze tulichopewa katika faili za kuanzia. + +#### Fanya mradi wako wa react uendeshwe {#get-your-react-project-running} + +Tuanze kwa kuendesha mradi wa React katika kivinjari chetu. Uzuri wa React ni kwamba mara tu mradi wetu unapokuwa ukifanya kazi katika kivinjari chetu, mabadiliko yoyote tunayohifadhi yatasasishwa moja kwa moja kwenye kivinjari chetu. + +Ili kuendesha mradi, nenda kwenye saraka kuu ya folda ya `starter-files`, na kisha endesha `npm install` kwenye terminal yako ili kusakinisha vitegemezi vya mradi: + +```bash +cd starter-files +npm install +``` + +Mara tu hizo zikimaliza kusakinisha, endesha `npm start` kwenye terminal yako: + +```bash +npm start +``` + +Kufanya hivyo kunapaswa kufungua [http://localhost:3000/](http://localhost:3000/) kwenye kivinjari chako, ambapo utaona sehemu ya mbele ya mradi wetu. Inapaswa kuwa na sehemu moja (mahali pa kusasisha ujumbe uliohifadhiwa katika mkataba-erevu wako), kitufe cha "Unganisha Mkoba", na kitufe cha "Sasisha". + +Ukijaribu kubofya kitufe chochote, utagundua kuwa havifanyi kazi—hiyo ni kwa sababu bado tunahitaji kupanga utendaji wao. + +#### Kijenzi cha `HelloWorld.js` {#the-helloworld-js-component} + +Hebu turudi kwenye folda ya `src` kwenye kihariri chetu na tufungue faili ya `HelloWorld.js`. Ni muhimu sana tuelewe kila kitu katika faili hii, kwani ndicho kijenzi kikuu cha React tutakachokuwa tukifanyia kazi. + +Juu ya faili hii, utaona tuna taarifa kadhaa za uingizaji ambazo ni muhimu ili mradi wetu uendeshwe, ikiwa ni pamoja na maktaba ya React, hook za useEffect na useState, baadhi ya vitu kutoka `./util/interact.js` (tutaelezea kwa undani zaidi hivi karibuni!), na nembo ya Alchemy. + +```javascript +// HelloWorld.js + +import React from "react" +import { useEffect, useState } from "react" +import { + helloWorldContract, + connectWallet, + updateMessage, + loadCurrentMessage, + getCurrentWalletConnected, +} from "./util/interact.js" + +import alchemylogo from "./alchemylogo.svg" +``` + +Kisha, tuna vigezo vyetu vya hali ambavyo tutasasisha baada ya matukio maalum. + +```javascript +// HelloWorld.js + +//Vigezo vya hali +const [walletAddress, setWallet] = useState("") +const [status, setStatus] = useState("") +const [message, setMessage] = useState("Hakuna muunganisho na mtandao.") +const [newMessage, setNewMessage] = useState("") +``` + +Hivi ndivyo kila kigezo kinavyowakilisha: + +- `walletAddress` - mfuatano unaohifadhi anwani ya pochi ya mtumiaji +- `status`- mfuatano unaohifadhi ujumbe muhimu unaomwongoza mtumiaji jinsi ya kuingiliana na mfumo mtawanyo wa kimamlaka +- `message` - mfuatano unaohifadhi ujumbe wa sasa katika mkataba-erevu +- `newMessage` - mfuatano unaohifadhi ujumbe mpya utakaondikwa kwenye mkataba-erevu + +Baada ya vigezo vya hali, utaona kazi tano ambazo hazijatekelezwa: `useEffect` ,`addSmartContractListener`, `addWalletListener` , `connectWalletPressed`, na `onUpdatePressed`. Tutaeleza wanachofanya hapa chini: + +```javascript +// HelloWorld.js + +//inayoitwa mara moja tu +useEffect(async () => { + //TODO: tekeleza +}, []) + +function addSmartContractListener() { + //TODO: tekeleza +} + +function addWalletListener() { + //TODO: tekeleza +} + +const connectWalletPressed = async () => { + //TODO: tekeleza +} + +const onUpdatePressed = async () => { + //TODO: tekeleza +} +``` + +- [`useEffect`](https://legacy.reactjs.org/docs/hooks-effect.html)- hii ni hook ya React inayoitwa baada ya kijenzi chako kutolewa. Kwa sababu ina propu ya safu tupu `[]` iliyopitishwa ndani yake (tazama mstari wa 4), itaitwa tu kwenye utoaji wa _kwanza_ wa kijenzi. Hapa tutapakia ujumbe wa sasa uliohifadhiwa katika mkataba-erevu wetu, tuite wasikilizaji wetu wa mkataba-erevu na mkoba, na tusasishe UI yetu ili kuonyesha ikiwa mkoba tayari umeunganishwa. +- `addSmartContractListener`- kazi hii inaweka msikilizaji ambaye atatazama tukio la `UpdatedMessages` la mkataba wetu wa HelloWorld na kusasisha UI yetu ujumbe unapobadilishwa katika mkataba-erevu wetu. +- `addWalletListener`- kazi hii inaweka msikilizaji anayegundua mabadiliko katika hali ya mkoba wa MetaMask wa mtumiaji, kama vile mtumiaji anapotenganisha mkoba wake au kubadilisha anwani. +- `connectWalletPressed`- kazi hii itaitwa ili kuunganisha mkoba wa MetaMask wa mtumiaji kwenye mfumo mtawanyo wa kimamlaka wetu. +- `onUpdatePressed` - kazi hii itaitwa wakati mtumiaji anataka kusasisha ujumbe uliohifadhiwa katika mkataba-erevu. + +Karibu na mwisho wa faili hii, tuna UI ya kijenzi chetu. + +```javascript +// HelloWorld.js + +//UI ya kijenzi chetu +return ( +
+ + + +

Ujumbe wa Sasa:

+

{message}

+ +

Ujumbe Mpya:

+ +
+ setNewMessage(e.target.value)} + value={newMessage} + /> +

{status}

+ + +
+ +
+) +``` + +Ukichunguza msimbo huu kwa makini, utaona wapi tunatumia vigezo vyetu mbalimbali vya hali katika UI yetu: + +- Kwenye mistari 6-12, ikiwa mkoba wa mtumiaji umeunganishwa (yaani, `walletAddress.length > 0`), tunaonyesha toleo lililofupishwa la `anwani ya mkoba` wa mtumiaji katika kitufe chenye ID "walletButton;" vinginevyo inasema tu "Unganisha Mkoba". +- Kwenye mstari wa 17, tunaonyesha ujumbe wa sasa uliohifadhiwa katika mkataba-erevu, ambao unanaswa katika mfuatano wa `ujumbe`. +- Kwenye mistari 23-26, tunatumia [kijenzi kinachodhibitiwa](https://legacy.reactjs.org/docs/forms.html#controlled-components) kusasisha kigezo chetu cha hali cha `newMessage` wakati ingizo katika sehemu ya maandishi linapobadilika. + +Mbali na vigezo vyetu vya hali, utaona pia kwamba kazi za `connectWalletPressed` na `onUpdatePressed` huitwa wakati vitufe vyenye ID `publishButton` na `walletButton` vinapobofywa mtawalia. + +Mwisho, hebu tushughulikie wapi kijenzi hiki cha `HelloWorld.js` kinaongezwa. + +Ukienda kwenye faili ya `App.js`, ambayo ni kijenzi kikuu katika React kinachofanya kazi kama chombo cha vijenzi vingine vyote, utaona kwamba kijenzi chetu cha `HelloWorld.js` kinaingizwa kwenye mstari wa 7. + +Mwisho lakini sio uchache, hebu tuangalie faili moja zaidi uliyopewa, faili ya `interact.js`. + +#### Faili ya `interact.js` {#the-interact-js-file} + +Kwa sababu tunataka kufuata dhana ya [M-V-C](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller), tutataka faili tofauti ambayo ina kazi zetu zote za kudhibiti mantiki, data, na sheria za mfumo mtawanyo wa kimamlaka wetu, na kisha tuweze kuhamisha kazi hizo kwenye sehemu yetu ya mbele (kijenzi chetu cha `HelloWorld.js`). + +👆🏽Hii ndiyo hasa madhumuni ya faili yetu ya `interact.js`! + +Nenda kwenye folda ya `util` katika saraka yako ya `src`, na utaona tumejumuisha faili inayoitwa `interact.js` ambayo itakuwa na kazi zetu zote za mwingiliano wa mkataba-erevu na mkoba na vigezo. + +```javascript +// interact.js + +//export const helloWorldContract; + +export const loadCurrentMessage = async () => {} + +export const connectWallet = async () => {} + +const getCurrentWalletConnected = async () => {} + +export const updateMessage = async (message) => {} +``` + +Utaona juu ya faili kwamba tumeacha maoni kwenye kitu cha `helloWorldContract`. Baadaye katika mafunzo haya, tutaondoa maoni kwenye kitu hiki na kuanzisha mkataba-erevu wetu katika kigezo hiki, ambacho kisha tutakihamisha kwenye kijenzi chetu cha `HelloWorld.js`. + +Kazi nne ambazo hazijatekelezwa baada ya kitu chetu cha `helloWorldContract` hufanya yafuatayo: + +- `loadCurrentMessage` - kazi hii inashughulikia mantiki ya kupakia ujumbe wa sasa uliohifadhiwa katika mkataba-erevu. Itafanya wito wa _kusoma_ kwa mkataba-erevu wa Hello World kwa kutumia [API ya Alchemy Web3](https://github.com/alchemyplatform/alchemy-web3). +- `connectWallet` - kazi hii itaunganisha MetaMask ya mtumiaji kwenye mfumo mtawanyo wa kimamlaka wetu. +- `getCurrentWalletConnected` - kazi hii itaangalia ikiwa akaunti ya Ethereum tayari imeunganishwa na mfumo mtawanyo wa kimamlaka wetu wakati wa upakiaji wa ukurasa na kusasisha UI yetu ipasavyo. +- `updateMessage` - kazi hii itasasisha ujumbe uliohifadhiwa katika mkataba-erevu. Itafanya mwito wa _kuandika_ kwa mkataba-erevu wa Hello World, hivyo mkoba wa MetaMask wa mtumiaji utalazimika kusaini muamala wa Ethereum ili kusasisha ujumbe. + +Sasa kwa kuwa tunaelewa tunachofanya kazi nacho, hebu tujue jinsi ya kusoma kutoka kwa mkataba-erevu wetu! + +### Hatua ya 3: Soma kutoka kwa mkataba-erevu wako {#step-3-read-from-your-smart-contract} + +Ili kusoma kutoka kwa mkataba-erevu wako, utahitaji kusanidi kwa mafanikio: + +- Muunganisho wa API kwenye mnyororo wa Ethereum +- Mfano uliopakiwa wa mkataba-erevu wako +- Kazi ya kuita kazi ya mkataba-erevu wako +- Msikilizaji wa kutazama masasisho wakati data unayosoma kutoka kwa mkataba-erevu inapobadilika + +Hii inaweza kuonekana kama hatua nyingi, lakini usijali! Tutakuongoza jinsi ya kufanya kila moja hatua kwa hatua! :\) + +#### Anzisha muunganisho wa API kwenye mnyororo wa Ethereum {#establish-an-api-connection-to-the-ethereum-chain} + +Kwa hiyo unakumbuka jinsi katika Sehemu ya 2 ya mafunzo haya, tulitumia ufunguo wetu wa [Alchemy Web3 kusoma kutoka kwa mkataba-erevu wetu](https://docs.alchemy.com/alchemy/tutorials/hello-world-smart-contract/interacting-with-a-smart-contract#step-1-install-web3-library)? Utahitaji pia ufunguo wa Alchemy Web3 katika mfumo mtawanyo wa kimamlaka wako ili kusoma kutoka kwenye mnyororo. + +Ikiwa huna tayari, kwanza sakinisha [Alchemy Web3](https://github.com/alchemyplatform/alchemy-web3) kwa kwenda kwenye saraka kuu ya `starter-files` yako na kuendesha yafuatayo kwenye terminal yako: + +```text +npm install @alch/alchemy-web3 +``` + +[Alchemy Web3](https://github.com/alchemyplatform/alchemy-web3) ni kifuniko karibu na [Web3.js](https://docs.web3js.org/), inayotoa mbinu za API zilizoboreshwa na manufaa mengine muhimu ili kurahisisha maisha yako kama msanidi programu wa web3. Imeundwa kuhitaji usanidi mdogo ili uweze kuanza kuitumia katika programu yako mara moja! + +Kisha, sakinisha kifurushi cha [dotenv](https://www.npmjs.com/package/dotenv) katika saraka ya mradi wako, ili tuwe na mahali salama pa kuhifadhi ufunguo wetu wa API baada ya kuupata. + +```text +npm install dotenv --save +``` + +Kwa mfumo mtawanyo wa kimamlaka wetu, **tutatumia ufunguo wetu wa API wa Websockets** badala ya ufunguo wetu wa API wa HTTP, kwani utaturuhusu kuweka msikilizaji anayegundua wakati ujumbe uliohifadhiwa katika mkataba-erevu unapobadilika. + +Baada ya kupata ufunguo wako wa API, unda faili ya `.env` katika saraka yako kuu na uongeze url yako ya Websockets ya Alchemy. Baadaye, faili yako ya `.env` inapaswa kuonekana hivi: + +```javascript +REACT_APP_ALCHEMY_KEY = wss://eth-goerli.ws.alchemyapi.io/v2/ +``` + +Sasa, tuko tayari kusanidi kituo chetu cha Alchemy Web3 katika mfumo mtawanyo wa kimamlaka wetu! Hebu turudi kwenye `interact.js` yetu, ambayo iko ndani ya folda yetu ya `util` na tuongeze msimbo ufuatao juu ya faili: + +```javascript +// interact.js + +require("dotenv").config() +const alchemyKey = process.env.REACT_APP_ALCHEMY_KEY +const { createAlchemyWeb3 } = require("@alch/alchemy-web3") +const web3 = createAlchemyWeb3(alchemyKey) + +//export const helloWorldContract; +``` + +Hapo juu, kwanza tuliingiza ufunguo wa Alchemy kutoka kwa faili yetu ya `.env` na kisha tukapitisha `alchemyKey` yetu kwa `createAlchemyWeb3` ili kuanzisha kituo chetu cha Alchemy Web3. + +Na kituo hiki kikiwa tayari, ni wakati wa kupakia mkataba-erevu wetu! + +#### Inapakia mkataba-erevu wako wa Hello World {#loading-your-hello-world-smart-contract} + +Ili kupakia mkataba-erevu wako wa Hello World, utahitaji anwani yake ya mkataba na ABI, zote mbili zinaweza kupatikana kwenye Etherscan ikiwa ulikamilisha [Sehemu ya 3 ya mafunzo haya.](/developers/tutorials/hello-world-smart-contract-fullstack/#part-3-publish-your-smart-contract-to-etherscan-part-3-publish-your-smart-contract-to-etherscan) + +#### Jinsi ya kupata ABI ya mkataba wako kutoka Etherscan {#how-to-get-your-contract-abi-from-etherscan} + +Ikiwa uliruka Sehemu ya 3 ya mafunzo haya, unaweza kutumia mkataba wa HelloWorld na anwani [0x6f3f635A9762B47954229Ea479b4541eAF402A6A](https://goerli.etherscan.io/address/0x6f3f635a9762b47954229ea479b4541eaf402a6a#code). ABI yake inaweza kupatikana [hapa](https://goerli.etherscan.io/address/0x6f3f635a9762b47954229ea479b4541eaf402a6a#code). + +ABI ya mkataba ni muhimu kwa kubainisha ni kazi gani mkataba utaita na pia kuhakikisha kuwa kazi hiyo itarudisha data katika umbizo unalotarajia. Baada ya kunakili ABI yetu ya mkataba, hebu tuihifadhi kama faili ya JSON inayoitwa `contract-abi.json` katika saraka yako ya `src`. + +Faili yako ya contract-abi.json inapaswa kuhifadhiwa katika folda yako ya src. + +Tukiwa na anwani ya mkataba wetu, ABI, na kituo cha Alchemy Web3, tunaweza kutumia [mbinu ya mkataba](https://docs.web3js.org/api/web3-eth-contract/class/Contract) kupakia mfano wa mkataba-erevu wetu. Ingiza ABI ya mkataba wako kwenye faili ya `interact.js` na uongeze anwani ya mkataba wako. + +```javascript +// interact.js + +const contractABI = require("../contract-abi.json") +const contractAddress = "0x6f3f635A9762B47954229Ea479b4541eAF402A6A" +``` + +Sasa tunaweza hatimaye kuondoa maoni kwenye kigezo chetu cha `helloWorldContract`, na kupakia mkataba-erevu kwa kutumia kituo chetu cha AlchemyWeb3: + +```javascript +// interact.js +export const helloWorldContract = new web3.eth.Contract( + contractABI, + contractAddress +) +``` + +Kwa muhtasari, mistari 12 ya kwanza ya `interact.js` yako sasa inapaswa kuonekana hivi: + +```javascript +// interact.js + +require("dotenv").config() +const alchemyKey = process.env.REACT_APP_ALCHEMY_KEY +const { createAlchemyWeb3 } = require("@alch/alchemy-web3") +const web3 = createAlchemyWeb3(alchemyKey) + +const contractABI = require("../contract-abi.json") +const contractAddress = "0x6f3f635A9762B47954229Ea479b4541eAF402A6A" + +export const helloWorldContract = new web3.eth.Contract( + contractABI, + contractAddress +) +``` + +Sasa kwa kuwa mkataba wetu umepakiwa, tunaweza kutekeleza kazi yetu ya `loadCurrentMessage`! + +#### Kutekeleza `loadCurrentMessage` katika faili yako ya `interact.js` {#implementing-loadCurrentMessage-in-your-interact-js-file} + +Kazi hii ni rahisi sana. Tutafanya wito rahisi wa asinkroni wa web3 kusoma kutoka kwa mkataba wetu. Kazi yetu itarudisha ujumbe uliohifadhiwa katika mkataba-erevu: + +Sasisha `loadCurrentMessage` katika faili yako ya `interact.js` kuwa ifuatavyo: + +```javascript +// interact.js + +export const loadCurrentMessage = async () => { + const message = await helloWorldContract.methods.message().call() + return message +} +``` + +Kwa kuwa tunataka kuonyesha mkataba-erevu huu katika UI yetu, hebu tusasishe kazi ya `useEffect` katika kijenzi chetu cha `HelloWorld.js` kuwa ifuatavyo: + +```javascript +// HelloWorld.js + +//inayoitwa mara moja tu +useEffect(async () => { + const message = await loadCurrentMessage() + setMessage(message) +}, []) +``` + +Kumbuka, tunataka tu `loadCurrentMessage` iitwe mara moja wakati wa utoaji wa kwanza wa kijenzi. Hivi karibuni tutatekeleza `addSmartContractListener` ili kusasisha UI kiotomatiki baada ya ujumbe katika mkataba-erevu kubadilika. + +Kabla ya kuingia kwenye msikilizaji wetu, hebu tuangalie tulichonacho hadi sasa! Hifadhi faili zako za `HelloWorld.js` na `interact.js`, na kisha nenda kwenye [http://localhost:3000/](http://localhost:3000/) + +Utaona kwamba ujumbe wa sasa hausomi tena "Hakuna muunganisho na mtandao." Badala yake unaonyesha ujumbe uliohifadhiwa katika mkataba-erevu. Safi! + +#### UI yako sasa inapaswa kuonyesha ujumbe uliohifadhiwa katika mkataba-erevu {#your-UI-should-now-reflect-the-message-stored-in-the-smart-contract} + +Sasa tukizungumzia msikilizaji huyo... + +#### Tekeleza `addSmartContractListener` {#implement-addsmartcontractlistener} + +Ukikumbuka faili ya `HelloWorld.sol` tuliyoandika katika [Sehemu ya 1 ya mfululizo huu wa mafunzo](https://docs.alchemy.com/alchemy/tutorials/hello-world-smart-contract#step-10-write-our-contract), utakumbuka kuwa kuna tukio la mkataba-erevu linaloitwa `UpdatedMessages` ambalo hutolewa baada ya kazi ya `update` ya mkataba-erevu wetu kuitwa (tazama mistari 9 na 27): + +```javascript +// HelloWorld.sol + +// Inabainisha toleo la Solidity, kwa kutumia matoleo ya kimantiki. +// Jifunze zaidi: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.7.3; + +// Inafafanua mkataba unaoitwa `HelloWorld`. +// Mkataba ni mkusanyiko wa kazi na data (hali yake). Baada ya kupelekwa, mkataba hukaa kwenye anwani maalum kwenye mnyororo wa bloku wa Ethereum. Jifunze zaidi: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Hutolewa wakati kazi ya sasisho inapoitwa + // Matukio ya mkataba-erevu ni njia ya mkataba wako kuwasiliana kwamba kitu kilitokea kwenye mnyororo wa bloku kwa programu yako ya mbele, ambayo inaweza kuwa 'inasikiliza' matukio fulani na kuchukua hatua yanapotokea. + event UpdatedMessages(string oldStr, string newStr); + + // Inatangaza kigezo cha hali `message` cha aina ya `string`. + // Vigezo vya hali ni vigezo ambavyo thamani zake huhifadhiwa kabisa katika hifadhi ya mkataba. Neno muhimu `public` hufanya vigezo kupatikana kutoka nje ya mkataba na huunda kazi ambayo mikataba mingine au wateja wanaweza kuita ili kupata thamani. + string public message; + + // Sawa na lugha nyingi za upangaji zinazotegemea darasa, konstruka ni kazi maalum ambayo hutekelezwa tu wakati wa uundaji wa mkataba. + // Konstruka hutumiwa kuanzisha data ya mkataba. Jifunze zaidi:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) { + + // Inakubali hoja ya mfuatano `initMessage` na kuweka thamani katika kigezo cha hifadhi cha mkataba `message`). + message = initMessage; + } + + // Kazi ya umma inayokubali hoja ya mfuatano na kusasisha kigezo cha hifadhi `message`. + function update(string memory newMessage) public { + string memory oldMsg = message; + message = newMessage; + emit UpdatedMessages(oldMsg, newMessage); + } +} +``` + +Matukio ya mkataba-erevu ni njia ya mkataba wako kuwasiliana kwamba kitu kilitokea (yaani, kulikuwa na _tukio_) kwenye mnyororo wa bloku kwa programu yako ya mbele, ambayo inaweza kuwa 'inasikiliza' matukio maalum na kuchukua hatua yanapotokea. + +Kazi ya `addSmartContractListener` itasikiliza hasa tukio la `UpdatedMessages` la mkataba-erevu wetu wa Hello World, na kusasisha UI yetu ili kuonyesha ujumbe mpya. + +Badilisha `addSmartContractListener` kuwa ifuatavyo: + +```javascript +// HelloWorld.js + +function addSmartContractListener() { + helloWorldContract.events.UpdatedMessages({}, (error, data) => { + if (error) { + setStatus("😥 " + error.message) + } else { + setMessage(data.returnValues[1]) + setNewMessage("") + setStatus("🎉 Ujumbe wako umesasishwa!") + } + }) +} +``` + +Hebu tuchanganue kinachotokea wakati msikilizaji anapogundua tukio: + +- Ikiwa kosa litatokea wakati tukio linapotolewa, litaonyeshwa kwenye UI kupitia kigezo chetu cha hali cha `hali`. +- Vinginevyo, tutatumia kitu cha `data` kilichorudishwa. `data.returnValues` ni safu iliyopangwa kuanzia sifuri ambapo kipengele cha kwanza katika safu huhifadhi ujumbe wa awali na kipengele cha pili huhifadhi ule uliosasishwa. Kwa ujumla, kwenye tukio lililofanikiwa tutaweka mfuatano wetu wa `ujumbe` kuwa ujumbe uliosasishwa, tufute mfuatano wa `ujumbeMpya`, na tusasishe kigezo chetu cha hali cha `hali` ili kuonyesha kwamba ujumbe mpya umechapishwa kwenye mkataba-erevu wetu. + +Mwisho, hebu tuite msikilizaji wetu katika kazi yetu ya `useEffect` ili ianzishwe kwenye utoaji wa kwanza wa kijenzi cha `HelloWorld.js`. Kwa ujumla, kazi yako ya `useEffect` inapaswa kuonekana hivi: + +```javascript +// HelloWorld.js + +useEffect(async () => { + const message = await loadCurrentMessage() + setMessage(message) + addSmartContractListener() +}, []) +``` + +Sasa kwa kuwa tunaweza kusoma kutoka kwa mkataba-erevu wetu, ingekuwa vizuri kujua jinsi ya kuandika ndani yake pia! Hata hivyo, ili kuandika kwenye mfumo mtawanyo wa kimamlaka wetu, lazima kwanza tuwe na mkoba wa Ethereum uliounganishwa nao. + +Kwa hiyo, baadaye tutashughulikia kusanidi mkoba wetu wa Ethereum (MetaMask) na kisha kuunganisha na mfumo mtawanyo wa kimamlaka wetu! + +### Hatua ya 4: Sanidi mkoba wako wa Ethereum {#step-4-set-up-your-ethereum-wallet} + +Ili kuandika chochote kwenye mnyororo wa Ethereum, watumiaji lazima wasaini miamala kwa kutumia funguo zao za faragha za mkoba halisi. Kwa mafunzo haya, tutatumia [MetaMask](https://metamask.io/), mkoba halisi kwenye kivinjari unaotumiwa kudhibiti anwani ya akaunti yako ya Ethereum, kwani hurahisisha sana utiaji saini wa muamala huu kwa mtumiaji wa mwisho. + +Ikiwa unataka kuelewa zaidi jinsi miamala kwenye Ethereum inavyofanya kazi, angalia [ukurasa huu](/developers/docs/transactions/) kutoka kwa Msingi wa Ethereum. + +#### Pakua MetaMask {#download-metamask} + +Unaweza kupakua na kuunda akaunti ya MetaMask bure [hapa](https://metamask.io/download). Unapounda akaunti, au ikiwa tayari una akaunti, hakikisha umebadili na kuweka "Mtandao wa Majaribio wa Goerli" juu kulia (ili tusitumie pesa halisi). + +#### Ongeza ether kutoka kwa Bomba {#add-ether-from-a-faucet} + +Ili kusaini muamala kwenye mnyororo wa bloku wa Ethereum, tutahitaji Eth bandia. Ili kupata Eth unaweza kwenda kwenye [FaucETH](https://fauceth.komputing.org) na uweke anwani ya akaunti yako ya Goerli, bofya "Omba fedha", kisha uchague "Ethereum Testnet Goerli" katika menyu kunjuzi na hatimaye bofya kitufe cha "Omba fedha" tena. Unapaswa kuona Eth katika akaunti yako ya MetaMask muda mfupi baadaye! + +#### Angalia Salio lako {#check-your-balance} + +Ili kuhakikisha salio letu lipo, hebu tufanye ombi la [eth_getBalance](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_getbalance) kwa kutumia [zana ya mtunzi ya Alchemy](https://composer.alchemyapi.io/?composer_state=%7B%22network%22%3A0%2C%22methodName%22%3A%22eth_getBalance%22%2C%22paramValues%22%3A%5B%22%22%2C%22latest%22%5D%7D). Hii itarudisha kiasi cha Eth katika pochi yetu. Baada ya kuweka anwani ya akaunti yako ya MetaMask na kubofya “Tuma Ombi”, unapaswa kuona jibu kama hili: + +```text +{"jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000"} +``` + +**KUMBUKA:** Matokeo haya yako katika wei si eth. Wei hutumika kama denomina ndogo zaidi ya ether. Ubadilishaji kutoka wei hadi eth ni: 1 eth = 10¹⁸ wei. Kwa hivyo, tukibadilisha 0xde0b6b3a7640000 hadi desimali tunapata 1\*10¹⁸ ambayo ni sawa na eth 1. + +Phew! Pesa zetu bandia zote zipo! 🤑 + +### Hatua ya 5: Unganisha MetaMask na UI yako {#step-5-connect-metamask-to-your-UI} + +Sasa kwa kuwa pochi yetu ya MetaMask imesanidiwa, hebu tuunganishe mfumo wetu uliotawanywa nayo! + +#### Kazi ya `connectWallet` {#the-connectWallet-function} + +Katika faili yetu ya `interact.js`, hebu tutekeleze kazi ya `connectWallet`, ambayo tunaweza kuiita katika kijenzi chetu cha `HelloWorld.js`. + +Hebu tubadilishe `connectWallet` kuwa ifuatavyo: + +```javascript +// interact.js + +export const connectWallet = async () => { + if (window.ethereum) { + try { + const addressArray = await window.ethereum.request({ + method: "eth_requestAccounts", + }) + const obj = { + status: "👆🏽 Andika ujumbe kwenye sehemu ya maandishi hapo juu.", + address: addressArray[0], + } + return obj + } catch (err) { + return { + address: "", + status: "😥 " + err.message, + } + } + } else { + return { + address: "", + status: ( + +

+ {" "} + 🦊 + Lazima usakinishe MetaMask, mkoba halisi wa Ethereum, katika kivinjari chako. + +

+
+ ), + } + } +} +``` + +Kwa hiyo, je, kizuizi hiki kikubwa cha msimbo kinafanya nini hasa? + +Naam, kwanza, huangalia ikiwa `window.ethereum` imewezeshwa katika kivinjari chako. + +`window.ethereum` ni API ya kimataifa inayoingizwa na MetaMask na watoa huduma wengine wa pochi ambayo inaruhusu tovuti kuomba akaunti za Ethereum za watumiaji. Ikiwa imeidhinishwa, inaweza kusoma data kutoka kwa minyororo ya bloku ambayo mtumiaji ameunganishwa nayo, na kupendekeza mtumiaji asaini ujumbe na miamala. Angalia [hati za MetaMask](https://docs.metamask.io/guide/ethereum-provider.html#table-of-contents) kwa maelezo zaidi! + +Ikiwa `window.ethereum` _haipo_, basi hiyo inamaanisha kuwa MetaMask haijasakinishwa. Hii inasababisha kurudishwa kwa kitu cha JSON, ambapo `anwani` iliyorudishwa ni mfuatano tupu, na kitu cha `status` cha JSX kinaeleza kuwa mtumiaji lazima asakinishe MetaMask. + +Sasa ikiwa `window.ethereum` _ipo_, hapo ndipo mambo yanapopendeza. + +Kwa kutumia kitanzi cha kujaribu/kukamatwa, tutajaribu kuunganisha kwenye MetaMask kwa kuita [`window.ethereum.request({ method: "eth_requestAccounts" });`](https://docs.metamask.io/guide/rpc-api.html#eth-requestaccounts). Kuita kazi hii kutafungua MetaMask kwenye kivinjari, ambapo mtumiaji ataombwa kuunganisha pochi yake kwenye mfumo wako uliotawanywa. + +- Ikiwa mtumiaji atachagua kuunganisha, `method: "eth_requestAccounts"` itarudisha safu iliyo na anwani zote za akaunti za mtumiaji zilizounganishwa na mfumo mtawanyo wa kimamlaka. Kwa pamoja, kazi yetu ya `connectWallet` itarudisha kitu cha JSON kilicho na `anwani` ya _kwanza_ katika safu hii (tazama mstari wa 9) na ujumbe wa `status` unaomwomba mtumiaji aandike ujumbe kwenye mkataba erevu. +- Ikiwa mtumiaji atakataa muunganisho, basi kitu cha JSON kitakuwa na mfuatano tupu kwa `anwani` iliyorudishwa na ujumbe wa `status` unaoonyesha kuwa mtumiaji alikataa muunganisho. + +Sasa kwa kuwa tumeandika kazi hii ya `connectWallet`, hatua inayofuata ni kuiita kwenye kijenzi chetu cha `HelloWorld.js`. + +#### Ongeza kazi ya `connectWallet` kwenye Kijenzi chako cha UI cha `HelloWorld.js` {#add-the-connectWallet-function-to-your-HelloWorld-js-ui-component} + +Nenda kwenye kazi ya `connectWalletPressed` katika `HelloWorld.js`, na uisasishe kuwa ifuatavyo: + +```javascript +// HelloWorld.js + +const connectWalletPressed = async () => { + const walletResponse = await connectWallet() + setStatus(walletResponse.status) + setWallet(walletResponse.address) +} +``` + +Je, unaona jinsi utendaji wetu mwingi umefichwa kutoka kwa kijenzi chetu cha `HelloWorld.js` kutoka kwa faili ya `interact.js`? Hii ni ili tuendane na dhana ya M-V-C! + +Katika `connectWalletPressed`, tunafanya tu wito wa kusubiri kwa kazi yetu iliyoingizwa ya `connectWallet`, na kwa kutumia jibu lake, tunasasisha vigezo vyetu vya `status` na `walletAddress` kupitia ndoana zao za hali. + +Sasa, hebu tuhifadhi faili zote mbili (`HelloWorld.js` na `interact.js`) na tujaribu UI yetu hadi sasa. + +Fungua kivinjari chako kwenye ukurasa wa [http://localhost:3000/](http://localhost:3000/), na ubonyeze kitufe cha "Unganisha Mkoba" juu kulia mwa ukurasa. + +Ikiwa umesakinisha MetaMask, unapaswa kuombwa kuunganisha pochi yako kwenye mfumo wako uliotawanywa. Kubali mwaliko wa kuunganisha. + +Unapaswa kuona kwamba kitufe cha mkoba sasa kinaonyesha kwamba anwani yako imeunganishwa! Yasssss 🔥 + +Kisha, jaribu kuonyesha upya ukurasa... hii ni ajabu. Kitufe chetu cha pochi kinatuomba tuunganishe MetaMask, ingawa tayari imeunganishwa... + +Hata hivyo, usiogope! Tunaweza kushughulikia hilo kwa urahisi (umeipata?) kwa kutekeleza `getCurrentWalletConnected`, ambayo itaangalia ikiwa anwani tayari imeunganishwa na mfumo mtawanyo wa kimamlaka wetu na kusasisha UI yetu ipasavyo! + +#### Kazi ya `getCurrentWalletConnected` {#the-getcurrentwalletconnected-function} + +Sasisha kazi yako ya `getCurrentWalletConnected` katika faili ya `interact.js` kuwa ifuatavyo: + +```javascript +// interact.js + +export const getCurrentWalletConnected = async () => { + if (window.ethereum) { + try { + const addressArray = await window.ethereum.request({ + method: "eth_accounts", + }) + if (addressArray.length > 0) { + return { + address: addressArray[0], + status: "👆🏽 Andika ujumbe kwenye sehemu ya maandishi hapo juu.", + } + } else { + return { + address: "", + status: "🦊 Unganisha na MetaMask ukitumia kitufe cha juu kulia.", + } + } + } catch (err) { + return { + address: "", + status: "😥 " + err.message, + } + } + } else { + return { + address: "", + status: ( + +

+ {" "} + 🦊 + Lazima usakinishe MetaMask, mkoba halisi wa Ethereum, katika kivinjari chako. + +

+
+ ), + } + } +} +``` + +Msimbo huu _unafanana sana_ na kazi ya `connectWallet` tuliyoandika katika hatua iliyopita. + +Tofauti kuu ni kwamba badala ya kuita mbinu ya `eth_requestAccounts`, ambayo inafungua MetaMask kwa mtumiaji kuunganisha pochi yake, hapa tunaita mbinu ya `eth_accounts`, ambayo inarudisha tu safu iliyo na anwani za MetaMask zilizounganishwa kwa sasa kwenye mfumo wetu uliotawanywa. + +Ili kuona kazi hii ikifanya kazi, hebu tuiite katika kazi yetu ya `useEffect` ya kijenzi chetu cha `HelloWorld.js`: + +```javascript +// HelloWorld.js + +useEffect(async () => { + const message = await loadCurrentMessage() + setMessage(message) + addSmartContractListener() + + const { address, status } = await getCurrentWalletConnected() + setWallet(address) + setStatus(status) +}, []) +``` + +Kumbuka, tunatumia jibu la wito wetu kwa `getCurrentWalletConnected` kusasisha vigezo vyetu vya hali vya `walletAddress` na `status`. + +Sasa kwa kuwa umeongeza msimbo huu, hebu tujaribu kuonyesha upya dirisha la kivinjari chetu. + +Safi sana! Kitufe kinapaswa kusema kuwa umeunganishwa, na kuonyesha hakikisho la anwani ya pochi yako iliyounganishwa - hata baada ya kuonyesha upya! + +#### Tekeleza `addWalletListener` {#implement-addwalletlistener} + +Hatua ya mwisho katika usanidi wa pochi ya mfumo wetu uliotawanywa ni kutekeleza msikilizaji wa pochi ili UI yetu isasishwe wakati hali ya pochi yetu inabadilika, kama vile mtumiaji anapokatisha muunganisho au kubadilisha akaunti. + +Katika faili yako ya `HelloWorld.js`, badilisha kazi yako ya `addWalletListener` kama ifuatavyo: + +```javascript +// HelloWorld.js + +function addWalletListener() { + if (window.ethereum) { + window.ethereum.on("accountsChanged", (accounts) => { + if (accounts.length > 0) { + setWallet(accounts[0]) + setStatus("👆🏽 Andika ujumbe kwenye sehemu ya maandishi hapo juu.") + } else { + setWallet("") + setStatus("🦊 Unganisha na MetaMask ukitumia kitufe cha juu kulia.") + } + }) + } else { + setStatus( +

+ {" "} + 🦊 + Lazima usakinishe MetaMask, mkoba halisi wa Ethereum, katika kivinjari chako. + +

+ ) + } +} +``` + +Nina hakika hauhitaji hata msaada wetu kuelewa kinachoendelea hapa kwa sasa, lakini kwa madhumuni ya ukamilifu, hebu tuchanganue haraka: + +- Kwanza, kazi yetu inakagua ikiwa `window.ethereum` imewezeshwa (yaani, MetaMask imesakinishwa). + - Ikiwa sivyo, tunaweka tu kigezo chetu cha hali cha `status` kuwa mfuatano wa JSX unaomwomba mtumiaji asakinishe MetaMask. + - Ikiwa imewezeshwa, tunaweka msikilizaji `window.ethereum.on("accountsChanged")` kwenye mstari wa 3 anayesikiliza mabadiliko ya hali katika pochi ya MetaMask, ambayo ni pamoja na wakati mtumiaji anapounganisha akaunti ya ziada kwenye mfumo uliotawanywa, anapobadilisha akaunti, au anapokatisha muunganisho wa akaunti. Ikiwa kuna angalau akaunti moja iliyounganishwa, kigezo cha hali cha `walletAddress` kinasasishwa kama akaunti ya kwanza katika safu ya `accounts` iliyorudishwa na msikilizaji. Vinginevyo, `walletAddress` huwekwa kama mfuatano tupu. + +Mwisho lakini sio uchache, lazima tuiite katika kazi yetu ya `useEffect`: + +```javascript +// HelloWorld.js + +useEffect(async () => { + const message = await loadCurrentMessage() + setMessage(message) + addSmartContractListener() + + const { address, status } = await getCurrentWalletConnected() + setWallet(address) + setStatus(status) + + addWalletListener() +}, []) +``` + +Na ndivyo hivyo! Tumefanikiwa kukamilisha upangaji wote wa utendaji wetu wa mkoba! Sasa kwenye kazi yetu ya mwisho: kusasisha ujumbe uliohifadhiwa katika mkataba-erevu wetu! + +### Hatua ya 6: Tekeleza kazi ya `updateMessage` {#step-6-implement-the-updateMessage-function} + +Sawa jamani, tumefika mwisho! Katika `updateMessage` ya faili yako ya `interact.js`, tutafanya yafuatayo: + +1. Hakikisha ujumbe tunaotaka kuchapisha katika mkataba wetu mahiri ni halali +2. Saini muamala wetu kwa kutumia MetaMask +3. Ita kazi hii kutoka kwa kijenzi chetu cha mbele cha `HelloWorld.js` + +Hii haitachukua muda mrefu; hebu tumalize mfumo mtawanyo wa kimamlaka huu! + +#### Ushughulikiaji wa hitilafu ya ingizo {#input-error-handling} + +Kwa kawaida, inaleta maana kuwa na aina fulani ya utunzaji wa makosa ya ingizo mwanzoni mwa kazi. + +Tutataka kazi yetu irudi mapema ikiwa hakuna kiendelezi cha MetaMask kilichosakinishwa, hakuna mkoba uliounganishwa (yaani, `anwani` iliyopitishwa ni mfuatano tupu), au `ujumbe` ni mfuatano tupu. Hebu tuongeze utunzaji wa makosa ufuatao kwenye `updateMessage`: + +```javascript +// interact.js + +export const updateMessage = async (address, message) => { + if (!window.ethereum || address === null) { + return { + status: + "💡 Unganisha mkoba wako wa MetaMask ili kusasisha ujumbe kwenye mnyororo wa bloku.", + } + } + + if (message.trim() === "") { + return { + status: "❌ Ujumbe wako hauwezi kuwa mfuatano tupu.", + } + } +} +``` + +Sasa kwa kuwa ina utunzaji sahihi wa makosa ya ingizo, ni wakati wa kusaini muamala kupitia MetaMask! + +#### Kusaini muamala wetu {#signing-our-transaction} + +Ikiwa tayari una uzoefu na miamala ya jadi ya web3 Ethereum, msimbo tutakaouandika baadaye utakuwa unafahamika sana. Chini ya msimbo wako wa kushughulikia makosa ya ingizo, ongeza yafuatayo kwenye `updateMessage`: + +```javascript +// interact.js + +//weka vigezo vya muamala +const transactionParameters = { + to: contractAddress, // Inahitajika isipokuwa wakati wa uchapishaji wa mkataba. + from: address, // lazima ifanane na anwani inayotumika ya mtumiaji. + data: helloWorldContract.methods.update(message).encodeABI(), +} + +//saini muamala +try { + const txHash = await window.ethereum.request({ + method: "eth_sendTransaction", + params: [transactionParameters], + }) + return { + status: ( + + ✅{" "} + + Tazama hali ya muamala wako kwenye Etherscan! + +
+ ℹ️ Mara tu muamala utakapothibitishwa na mtandao, ujumbe utasasishwa kiotomatiki. +
+ ), + } +} catch (error) { + return { + status: "😥 " + error.message, + } +} +``` + +Hebu tuchanganue kinachoendelea. Kwanza, tunaweka vigezo vyetu vya miamala, ambapo: + +- `to` inabainisha anwani ya mpokeaji (mkataba wetu erevu) +- `kutoka` inabainisha mtia saini wa muamala, kigezo cha `anwani` tulichopitisha kwenye kazi yetu +- `data` ina wito kwa mbinu ya `update` ya mkataba-erevu wetu wa Hello World, ikipokea kigezo chetu cha mfuatano wa `ujumbe` kama ingizo + +Kisha, tunafanya mwito wa kusubiri, `window.ethereum.request`, ambapo tunaiomba MetaMask kusaini muamala. Angalia, kwenye mistari 11 na 12, tunabainisha mbinu yetu ya eth, `eth_sendTransaction` na kupitisha `transactionParameters` zetu. + +Katika hatua hii, MetaMask itafunguka kwenye kivinjari, na kumwomba mtumiaji asaini au kukataa muamala. + +- Ikiwa muamala utafanikiwa, kazi itarudisha kitu cha JSON ambapo mfuatano wa `hali` wa JSX unamshawishi mtumiaji kuangalia Etherscan kwa taarifa zaidi kuhusu muamala wake. +- Ikiwa muamala utashindwa, kazi itarudisha kitu cha JSON ambapo mfuatano wa `hali` unapeleka ujumbe wa kosa. + +Kwa ujumla, kazi yetu ya `updateMessage` inapaswa kuonekana hivi: + +```javascript +// interact.js + +export const updateMessage = async (address, message) => { + //ushughulikiaji wa makosa ya ingizo + if (!window.ethereum || address === null) { + return { + status: + "💡 Unganisha mkoba wako wa MetaMask ili kusasisha ujumbe kwenye mnyororo wa bloku.", + } + } + + if (message.trim() === "") { + return { + status: "❌ Ujumbe wako hauwezi kuwa mfuatano tupu.", + } + } + + //weka vigezo vya muamala + const transactionParameters = { + to: contractAddress, // Inahitajika isipokuwa wakati wa uchapishaji wa mkataba. + from: address, // lazima ifanane na anwani inayotumika ya mtumiaji. + data: helloWorldContract.methods.update(message).encodeABI(), + } + + //saini muamala + try { + const txHash = await window.ethereum.request({ + method: "eth_sendTransaction", + params: [transactionParameters], + }) + return { + status: ( + + ✅{" "} + + Tazama hali ya muamala wako kwenye Etherscan! + +
+ ℹ️ Mara tu muamala utakapothibitishwa na mtandao, ujumbe utasasishwa kiotomatiki. +
+ ), + } + } catch (error) { + return { + status: "😥 " + error.message, + } + } +} +``` + +Mwisho lakini sio uchache, tunahitaji kuunganisha kazi yetu ya `updateMessage` na kijenzi chetu cha `HelloWorld.js`. + +#### Unganisha `updateMessage` na sehemu ya mbele ya `HelloWorld.js` {#connect-updatemessage-to-the-helloworld-js-frontend} + +Kazi yetu ya `onUpdatePressed` inapaswa kufanya mwito wa kusubiri kwa kazi iliyoingizwa ya `updateMessage` na kubadilisha kigezo cha hali cha `hali` ili kuonyesha ikiwa muamala wetu ulifanikiwa au ulishindwa: + +```javascript +// HelloWorld.js + +const onUpdatePressed = async () => { + const { status } = await updateMessage(walletAddress, newMessage) + setStatus(status) +} +``` + +Ni safi sana na rahisi. Na nadhani nini... MFUMO MTAWANYO WA KIMAMLAKA WAKO UMEKAMILIKA!!! + +Endelea na ujaribu kitufe cha **Sasisha**! + +### Tengeneza mfumo mtawanyo wa kimamlaka wako mwenyewe {#make-your-own-custom-dapp} + +Wooooo, umefika mwisho wa mafunzo! Kwa muhtasari, umejifunza jinsi ya: + +- Unganisha mkoba wa MetaMask na mradi wako wa mfumo mtawanyo wa kimamlaka +- Soma data kutoka kwa mkataba-erevu wako kwa kutumia API ya [Alchemy Web3](https://docs.alchemy.com/alchemy/documentation/alchemy-web3) +- Saini miamala ya Ethereum kwa kutumia MetaMask + +Sasa una vifaa kamili vya kutumia ujuzi kutoka kwa mafunzo haya ili kujenga mradi wako mwenyewe wa mfumo mtawanyo wa kimamlaka! Kama kawaida, ikiwa una maswali yoyote, usisite kuwasiliana nasi kwa msaada katika [Alchemy Discord](https://discord.gg/gWuC7zB). 🧙‍♂️ + +Baada ya kukamilisha mafunzo haya, tujulishe jinsi uzoefu wako ulivyokuwa au ikiwa una maoni yoyote kwa kututagi kwenye Twitter [@alchemyplatform](https://twitter.com/AlchemyPlatform)! diff --git a/public/content/translations/sw/developers/tutorials/hello-world-smart-contract/index.md b/public/content/translations/sw/developers/tutorials/hello-world-smart-contract/index.md new file mode 100644 index 00000000000..a0ea8e45dc1 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/hello-world-smart-contract/index.md @@ -0,0 +1,367 @@ +--- +title: Mkataba-erevu wa Hello World kwa Wanaoanza +description: Mafunzo ya utangulizi kuhusu kuandika na kusambaza mkataba-erevu rahisi kwenye Ethereum. +author: "elanh" +tags: + [ + "Solidity", + "Hardhat", + "Alchemy", + "mikataba erevu", + "upelekaji" + ] +skill: beginner +lang: sw +published: 2021-03-31 +--- + +Ikiwa wewe ni mgeni katika usanidi wa mnyororo wa bloku na hujui pa kuanzia, au ikiwa unataka tu kuelewa jinsi ya kusambaza na kuingiliana na mikataba-erevu, mwongozo huu ni kwa ajili yako. Tutapitia hatua za kuunda na kusambaza mkataba-erevu rahisi kwenye testnet ya Sepolia kwa kutumia pochi pepe [MetaMask](https://metamask.io/), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org/), na [Alchemy](https://www.alchemy.com/eth) (usijali kama huelewi maana ya yoyote kati ya haya bado, tutaelezea). + +Katika [sehemu ya 2](https://docs.alchemy.com/docs/interacting-with-a-smart-contract) ya mafunzo haya tutapitia jinsi tunavyoweza kuingiliana na mkataba wetu-erevu mara tu utakapokuwa umesambazwa, na katika [sehemu ya 3](https://www.alchemy.com/docs/submitting-your-smart-contract-to-etherscan) tutaangazia jinsi ya kuuchapisha kwenye Etherscan. + +Ikiwa una maswali wakati wowote jisikie huru kuuliza kwenye [Alchemy Discord](https://discord.gg/gWuC7zB)! + +## Hatua ya 1: Unganisha na mtandao wa Ethereum {#step-1} + +Kuna njia nyingi za kufanya maombi kwa mnyororo wa Ethereum. Ili kurahisisha, tutatumia akaunti ya bure kwenye Alchemy, jukwaa la wasanidi programu wa mnyororo wa bloku na API ambayo inaturuhusu kuwasiliana na mnyororo wa Ethereum bila kulazimika kuendesha nodi zetu wenyewe. Jukwaa hilo pia lina zana za wasanidi programu kwa ajili ya ufuatiliaji na uchambuzi ambazo tutazitumia katika mafunzo haya ili kuelewa kinachoendelea nyuma ya pazia katika usambazaji wa mkataba-erevu wetu. Ikiwa bado huna akaunti ya Alchemy, [unaweza kujisajili bure hapa](https://dashboard.alchemy.com/signup). + +## Hatua ya 2: Unda programu yako (na ufunguo wa API) {#step-2} + +Mara tu unapounda akaunti ya Alchemy, unaweza kutengeneza ufunguo wa API kwa kuunda programu. Hii itaturuhusu kufanya maombi kwa mtandao wa majaribio wa Sepolia. Ikiwa hufahamu testnets, angalia [ukurasa huu](/developers/docs/networks/). + +1. Nenda kwenye ukurasa wa "Unda programu mpya" katika Dashibodi yako ya Alchemy kwa kuchagua "Chagua programu" kwenye upau wa uelekezaji na kubofya "Unda programu mpya" + +![Programu ya uundaji wa Hello world](./hello-world-create-app.png) + +2. Ipe programu yako jina “Hello World”, toa maelezo mafupi, na uchague kisa cha matumizi, k.m., "Miundombinu na Zana." Ifuatayo, tafuta "Ethereum" na uchague mtandao. + +![mwonekano wa programu ya kuunda hello world](./create-app-view-hello-world.png) + +3. Bofya "Inayofuata" ili kuendelea, kisha “Unda programu” na ndivyo hivyo! Programu yako inapaswa kuonekana kwenye menyu kunjuzi ya upau wa uelekezaji, na Ufunguo wa API ukiwa tayari kunakiliwa. + +## Hatua ya 3: Fungua akaunti ya Ethereum (anwani) {#step-3} + +Tunahitaji akaunti ya Ethereum ili kutuma na kupokea miamala. Kwa mafunzo haya, tutatumia MetaMask, mkoba wa mtandaoni katika kivinjari unaotumika kudhibiti anwani ya akaunti yako ya Ethereum. Zaidi kuhusu [miamala](/developers/docs/transactions/). + +Unaweza kupakua MetaMask na kufungua akaunti ya Ethereum bure [hapa](https://metamask.io/download). Unapofungua akaunti, au ikiwa tayari unayo akaunti, hakikisha umebadilisha kwenda kwenye testnet ya "Sepolia" kwa kutumia menyu kunjuzi ya mtandao (ili tusitumie pesa halisi). + +Ikiwa huoni Sepolia ikiwa imeorodheshwa, nenda kwenye menyu, kisha kwenye Kina na usogeze chini ili kuwasha "Onyesha testnets". Katika menyu ya uteuzi wa mtandao, chagua kichupo cha "Maalum" ili kupata orodha ya testnets na uchague "Sepolia." + +![mfano wa metamask sepolia](./metamask-sepolia-example.png) + +## Hatua ya 4: Ongeza ether kutoka kwenye bomba {#step-4} + +Ili kusambaza mkataba-erevu wetu kwenye testnet, tutahitaji ETH bandia. Ili kupata ETH ya Sepolia unaweza kwenda kwenye [maelezo ya mtandao wa Sepolia](/developers/docs/networks/#sepolia) ili kuona orodha ya mabomba mbalimbali. Ikiwa moja haifanyi kazi, jaribu nyingine kwani wakati mwingine zinaweza kuishiwa. Inaweza kuchukua muda kupokea ETH yako bandia kutokana na msongamano wa mtandao. Unapaswa kuona ETH katika akaunti yako ya MetaMask muda mfupi baadaye! + +## Hatua ya 5: Angalia Salio lako {#step-5} + +Ili kuhakikisha mara mbili kuwa salio letu lipo, hebu tufanye ombi la [eth_getBalance](/developers/docs/apis/json-rpc/#eth_getbalance) kwa kutumia [zana ya mtunzi ya Alchemy](https://sandbox.alchemy.com/?network=ETH_SEPOLIA&method=eth_getBalance&body.id=1&body.jsonrpc=2.0&body.method=eth_getBalance&body.params%5B0%5D=&body.params%5B1%5D=latest). Hii itarudisha kiasi cha ETH katika mkoba wetu. Baada ya kuweka anwani ya akaunti yako ya MetaMask na kubofya “Tuma Ombi”, unapaswa kuona jibu kama hili: + +```json +{ "jsonrpc": "2.0", "id": 0, "result": "0x2B5E3AF16B1880000" } +``` + +> **KUMBUKA:** Matokeo haya ni katika wei si ETH. Wei hutumika kama denomina ndogo zaidi ya ether. Ubadilishaji kutoka wei kwenda ETH ni: 1 eth = 1018 wei. Kwa hiyo tukibadilisha 0x2B5E3AF16B1880000 kwenda desimali tunapata 5\*10¹⁸ ambayo ni sawa na ETH 5. +> +> Phew! Pesa zetu bandia zote zipo . + +## Hatua ya 6: Anzisha mradi wetu {#step-6} + +Kwanza, tutahitaji kuunda folda kwa ajili ya mradi wetu. Nenda kwenye mstari wako wa amri na uandike: + +``` +mkdir hello-world +cd hello-world +``` + +Sasa kwa kuwa tuko ndani ya folda ya mradi wetu, tutatumia `npm init` kuanzisha mradi. Ikiwa bado hujasakinisha npm, fuata [maelekezo haya](https://docs.alchemyapi.io/alchemy/guides/alchemy-for-macs#1-install-nodejs-and-npm) (tutahitaji pia Node.js kwa hivyo pakua hiyo pia!). + +``` +npm init +``` + +Haijalishi sana jinsi unavyojibu maswali ya usakinishaji, hivi ndivyo tulivyofanya kwa marejeleo: + +``` +jina la kifurushi: (hello-world) +toleo: (1.0.0) +maelezo: mkataba-erevu wa hello world +sehemu ya kuingilia: (index.js) +amri ya jaribio: +hazina ya git: +maneno muhimu: +mwandishi: +leseni: (ISC) +Karibu kuandika kwenye /Users/.../.../.../hello-world/package.json: + +{ + "name": "hello-world", + "version": "1.0.0", + "description": "mkataba-erevu wa hello world", + "main": "index.js", + "scripts": { + "test": "echo \\"Error: no test specified\\" && exit 1" + }, + "author": "", + "license": "ISC" +} +``` + +Thibitisha package.json na tuko tayari kwenda! + +## Hatua ya 7: Pakua [Hardhat](https://hardhat.org/getting-started/#overview) {#step-7} + +Hardhat ni mazingira ya usanidi wa kuandaa, kupeleka, kupima, na kutatua programu yako ya Ethereum. Inasaidia wasanidi programu wanapojenga mikataba-erevu na dApps ndani ya nchi kabla ya kupeleka kwenye mnyororo hai. + +Ndani ya mradi wetu wa `hello-world` endesha: + +``` +npm install --save-dev hardhat +``` + +Angalia ukurasa huu kwa maelezo zaidi kuhusu [maagizo ya usakinishaji](https://hardhat.org/getting-started/#overview). + +## Hatua ya 8: Unda mradi wa Hardhat {#step-8} + +Ndani ya folda yetu ya mradi, endesha: + +``` +npx hardhat +``` + +Unapaswa kisha kuona ujumbe wa kukaribisha na chaguo la kuchagua unachotaka kufanya. Chagua “unda hardhat.config.js tupu”: + +``` +888 888 888 888 888 +888 888 888 888 888 +888 888 888 888 888 +8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888 +888 888 "88b 888P" d88" 888 888 "88b "88b 888 +888 888 .d888888 888 888 888 888 888 .d888888 888 +888 888 888 888 888 Y88b 888 888 888 888 888 Y88b. +888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888 + +👷 Karibu kwenye Hardhat v2.0.11 👷‍? + +Unataka kufanya nini? … +Unda mradi wa mfano +❯ Unda hardhat.config.js tupu +Acha +``` + +Hii itatutengenezea faili la `hardhat.config.js` ambapo tutaainisha usanidi wote wa mradi wetu (katika hatua ya 13). + +## Hatua ya 9: Ongeza folda za mradi {#step-9} + +Ili kuweka mradi wetu ukiwa umepangwa tutaunda folda mbili mpya. Nenda kwenye saraka ya mizizi ya mradi wako katika mstari wako wa amri na uandike: + +``` +mkdir contracts +mkdir scripts +``` + +- `contracts/` ni mahali ambapo tutaweka faili la msimbo wa mkataba-erevu wetu wa hello world +- `scripts/` ni mahali ambapo tutaweka hati za kusambaza na kuingiliana na mkataba wetu + +## Hatua ya 10: Andika mkataba wetu {#step-10} + +Huenda unajiuliza, ni lini hasa tutaandika msimbo?? Naam, tumefika, hatua ya 10. + +Fungua mradi wa hello-world katika kihariri chako unachopenda (tunapenda [VSCode](https://code.visualstudio.com/)). Mikataba-erevu huandikwa kwa lugha iitwayo Solidity ambayo ndiyo tutakayotumia kuandika mkataba-erevu wetu wa HelloWorld.sol.‌ + +1. Nenda kwenye folda ya “contracts” na uunde faili mpya liitwalo HelloWorld.sol +2. Hapo chini kuna sampuli ya mkataba-erevu wa Hello World kutoka Msingi wa Ethereum ambao tutautumia kwa ajili ya mafunzo haya. Nakili na ubandike yaliyomo hapa chini kwenye faili lako la HelloWorld.sol, na uhakikishe unasoma maoni ili kuelewa mkataba huu unafanya nini: + +```solidity +// Hubainisha toleo la Solidity, kwa kutumia matoleo ya kimantiki. +// Jifunze zaidi: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.7.0; + +// Hubainisha mkataba unaoitwa `HelloWorld`. +// Mkataba ni mkusanyiko wa vitendaji na data (hali yake). Mara tu unaposambazwa, mkataba hukaa kwenye anwani maalum kwenye mnyororo wa bloku wa Ethereum. Jifunze zaidi: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Hutangaza kigezo cha hali `message` cha aina ya `string`. + // Vigezo vya hali ni vigezo ambavyo thamani zake huhifadhiwa kabisa kwenye hifadhi ya mkataba. Neno kuu `public` hufanya vigezo viweze kufikiwa kutoka nje ya mkataba na huunda kitendaji ambacho mikataba mingine au wateja wanaweza kuita ili kufikia thamani. + string public message; + + // Sawa na lugha nyingi za upangaji programu zinazozingatia matabaka na vitu, kiunda ni kitendaji maalum ambacho hutekelezwa tu wakati wa uundaji wa mkataba. + // Viunda hutumika kuanzisha data ya mkataba. Jifunze zaidi:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) { + + // Hukubali hoja ya string `initMessage` na kuweka thamani kwenye kigezo cha hifadhi cha `message` cha mkataba). + message = initMessage; + } + + // Kitendaji cha umma kinachokubali hoja ya string na kusasisha kigezo cha hifadhi cha `message`. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +Huu ni mkataba-erevu rahisi sana ambao huhifadhi ujumbe wakati wa uundaji na unaweza kusasishwa kwa kuita kitendaji cha `update`. + +## Hatua ya 11: Unganisha MetaMask na Alchemy kwenye mradi wako {#step-11} + +Tumeunda pochi ya MetaMask, akaunti ya Alchemy, na kuandika mkataba-erevu wetu, sasa ni wakati wa kuunganisha vitu hivi vitatu. + +Kila muamala unaotumwa kutoka kwa mkoba wako wa mtandaoni unahitaji sahihi kwa kutumia ufunguo wako binafsi wa kipekee. Ili kuipa programu yetu ruhusa hii, tunaweza kuhifadhi kwa usalama ufunguo wetu binafsi (na ufunguo wa API wa Alchemy) katika faili ya mazingira. + +> Ili kujifunza zaidi kuhusu kutuma miamala, angalia [mafunzo haya](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) kuhusu kutuma miamala kwa kutumia web3. + +Kwanza, sakinisha kifurushi cha dotenv katika saraka ya mradi wako: + +``` +npm install dotenv --save +``` + +Kisha, unda faili ya `.env` katika saraka ya mizizi ya mradi wetu, na uongeze ufunguo wako binafsi wa MetaMask na URL ya HTTP ya API ya Alchemy. + +- Fuata [maelekezo haya](https://support.metamask.io/configure/accounts/how-to-export-an-accounts-private-key/) ili kuhamisha ufunguo wako binafsi +- Angalia hapa chini ili kupata URL ya API ya HTTP ya Alchemy + +![pata ufunguo wa api wa alchemy](./get-alchemy-api-key.png) + +Nakili URL ya API ya Alchemy + +Faili lako la `.env` linapaswa kuonekana hivi: + +``` +API_URL = "https://eth-sepolia.g.alchemy.com/v2/ufunguo-wako-wa-api" +PRIVATE_KEY = "ufunguo-wako-binafsi-wa-metamask" +``` + +Ili kuunganisha hivi kwenye msimbo wetu, tutarejelea vigezo hivi katika faili letu la `hardhat.config.js` kwenye hatua ya 13. + + + + +Usitume .env! Tafadhali hakikisha kamwe hushiriki au kufichua faili yako ya .env na mtu yeyote, kwani unahatarisha siri zako kwa kufanya hivyo. Ikiwa unatumia udhibiti wa toleo, ongeza .env yako kwenye faili ya gitignore. + + + + +## Hatua ya 12: Sakinisha Ethers.js {#step-12-install-ethersjs} + +Ethers.js ni maktaba inayorahisisha kuingiliana na kufanya maombi kwa Ethereum kwa kufunika [mbinu za kawaida za JSON-RPC](/developers/docs/apis/json-rpc/) kwa mbinu ambazo ni rahisi zaidi kwa mtumiaji. + +Hardhat hurahisisha sana kuunganisha [Plugins](https://hardhat.org/plugins/) kwa zana za ziada na utendakazi uliopanuliwa. Tutatumia fursa ya [programu-jalizi ya Ethers](https://hardhat.org/docs/plugins/official-plugins#hardhat-ethers) kwa usambazaji wa mkataba ([Ethers.js](https://github.com/ethers-io/ethers.js/) ina mbinu safi sana za usambazaji wa mkataba). + +Katika saraka yako ya mradi, andika: + +``` +npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" +``` + +Pia tutahitaji ethers katika `hardhat.config.js` yetu katika hatua inayofuata. + +## Hatua ya 13: Sasisha hardhat.config.js {#step-13-update-hardhatconfigjs} + +Tumeongeza vitegemezi na programu-jalizi kadhaa hadi sasa, sasa tunahitaji kusasisha `hardhat.config.js` ili mradi wetu uvifahamu vyote. + +Sasisha `hardhat.config.js` yako ili ionekane hivi: + +``` +require('dotenv').config(); + +require("@nomiclabs/hardhat-ethers"); +const { API_URL, PRIVATE_KEY } = process.env; + +/** +* @type import('hardhat/config').HardhatUserConfig +*/ +module.exports = { + solidity: "0.7.3", + defaultNetwork: "sepolia", + networks: { + hardhat: {}, + sepolia: { + url: API_URL, + accounts: [`0x${PRIVATE_KEY}`] + } + }, +} +``` + +## Hatua ya 14: Kusanya mkataba wetu {#step-14-compile-our-contracts} + +Ili kuhakikisha kila kitu kinafanya kazi hadi sasa, hebu tuandae mkataba wetu. Jukumu la `compile` ni mojawapo ya majukumu yaliyojengewa ndani ya hardhat. + +Kutoka kwenye mstari wa amri, endesha: + +``` +npx hardhat compile +``` + +Unaweza kupata onyo kuhusu `kitambulisho cha leseni ya SPDX hakijatolewa kwenye faili chanzo`, lakini hakuna haja ya kuwa na wasiwasi kuhusu hilo — tunatumai kila kitu kingine kinaonekana vizuri! Ikiwa sivyo, unaweza kutuma ujumbe kila wakati katika [discord ya Alchemy](https://discord.gg/u72VCg3). + +## Hatua ya 15: Andika hati yetu ya usambazaji {#step-15-write-our-deploy-scripts} + +Sasa kwa kuwa mkataba wetu umeandikwa na faili yetu ya usanidi iko tayari, ni wakati wa kuandika hati ya kupeleka mkataba wetu. + +Nenda kwenye folda ya `scripts/` na uunde faili jipya liitwalo `deploy.js`, na uongeze yaliyomo yafuatayo ndani yake: + +``` +async function main() { + const HelloWorld = await ethers.getContractFactory("HelloWorld"); + + // Anza usambazaji, ukirejesha ahadi inayotatuliwa kuwa kitu cha mkataba + const hello_world = await HelloWorld.deploy("Hello World!"); + console.log("Mkataba umesambazwa kwa anwani:", hello_world.address);} + +main() + .then(() => process.exit(0)) + .catch(error => { + console.error(error); + process.exit(1); + }); +``` + +Hardhat hufanya kazi nzuri ya kuelezea kile kila mstari wa msimbo huu unafanya katika [mafunzo yao ya Mikataba](https://hardhat.org/tutorial/testing-contracts.html#writing-tests), tumechukua maelezo yao hapa. + +``` +const HelloWorld = await ethers.getContractFactory("HelloWorld"); +``` + +`ContractFactory` katika ethers.js ni dhana inayotumika kusambaza mikataba-erevu mipya, kwa hivyo `HelloWorld` hapa ni kiwanda cha vielelezo vya mkataba wetu wa hello world. Unapotumia programu-jalizi ya `hardhat-ethers`, vielelezo vya `ContractFactory` na `Contract` huunganishwa kwa mtia saini wa kwanza kwa chaguo-msingi. + +``` +const hello_world = await HelloWorld.deploy(); +``` + +Kuita `deploy()` kwenye `ContractFactory` kutaanzisha usambazaji, na kurudisha `Promise` inayotatuliwa kuwa `Contract`. Hiki ndicho kitu ambacho kina mbinu kwa kila moja ya kazi zetu za mkataba-erevu. + +## Hatua ya 16: Sambaza mkataba wetu {#step-16-deploy-our-contract} + +Hatimaye tuko tayari kupeleka mkataba-erevu wetu! Nenda kwenye mstari wa amri na uendeshe: + +``` +npx hardhat run scripts/deploy.js --network sepolia +``` + +Unapaswa kisha kuona kitu kama: + +``` +Mkataba umesambazwa kwa anwani: 0x6cd7d44516a20882cEa2DE9f205bF401c0d23570 +``` + +Tukienda kwenye [Etherscan ya Sepolia](https://sepolia.etherscan.io/) na tutafute anwani ya mkataba wetu tunapaswa kuona kuwa umesambazwa kwa mafanikio. Muamala utaonekana kitu kama hiki: + +![mkataba wa etherscan](./etherscan-contract.png) + +Anwani ya `From` inapaswa kulingana na anwani ya akaunti yako ya MetaMask na anwani ya `To` itasema “Uundaji wa Mkataba” lakini tukibofya kwenye muamala tutaona anwani ya mkataba wetu katika sehemu ya `To`: + +![muamala wa etherscan](./etherscan-transaction.png) + +Hongera! Umesambaza mkataba-erevu kwenye mnyororo wa Ethereum 🎉 + +Ili kuelewa kinachoendelea chinichini, hebu tuende kwenye kichupo cha Mvumbuzi katika [dashibodi yetu ya Alchemy](https://dashboard.alchemyapi.io/explorer). Ikiwa una programu nyingi za Alchemy hakikisha unachuja kwa programu na uchague “Hello World”. +![kivinjari cha hello world](./hello-world-explorer.png) + +Hapa utaona miito michache ya JSON-RPC ambayo Hardhat/Ethers ilitufanyia nyuma ya pazia tulipoiita kitendaji cha `.deploy()`. Miito miwili muhimu ya kutaja hapa ni [`eth_sendRawTransaction`](https://www.alchemy.com/docs/node/abstract/abstract-api-endpoints/eth-send-raw-transaction), ambalo ni ombi la kuandika mkataba wetu kwenye mnyororo wa Sepolia, na [`eth_getTransactionByHash`](https://www.alchemy.com/docs/node/abstract/abstract-api-endpoints/eth-get-transaction-by-hash) ambalo ni ombi la kusoma taarifa kuhusu muamala wetu kutokana na hashi (muundo wa kawaida wakati wa +miamala). Ili kujifunza zaidi kuhusu kutuma miamala, angalia mafunzo haya kuhusu [kutuma miamala kwa kutumia Web3](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) + +Hayo ni yote kwa sehemu ya 1 ya mafunzo haya, katika sehemu ya 2 [tutaingiliana na mkataba-erevu wetu](https://www.alchemy.com/docs/interacting-with-a-smart-contract) kwa kusasisha ujumbe wetu wa awali, na katika sehemu ya 3 [tutachapisha mkataba-erevu wetu kwenye Etherscan](https://www.alchemy.com/docs/submitting-your-smart-contract-to-etherscan) ili kila mtu ajue jinsi ya kuingiliana nao. + +**Unataka kujifunza zaidi kuhusu Alchemy? Angalia [tovuti](https://www.alchemy.com/eth) yetu. Hutaki kamwe kukosa sasisho? Jisajili kwa jarida letu [hapa](https://www.alchemy.com/newsletter)! Hakikisha pia unajiunga na [Discord](https://discord.gg/u72VCg3) yetu.**. diff --git a/public/content/translations/sw/developers/tutorials/how-to-implement-an-erc721-market/index.md b/public/content/translations/sw/developers/tutorials/how-to-implement-an-erc721-market/index.md new file mode 100644 index 00000000000..46b13b7a9e2 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/how-to-implement-an-erc721-market/index.md @@ -0,0 +1,145 @@ +--- +title: Jinsi ya kutekeleza soko la ERC-721 +description: Jinsi ya kuweka vitu vilivyowekwa kwenye tokeni kwa ajili ya kuuza kwenye ubao wa matangazo uliogatuliwa +author: "Alberto Cuesta Cañada" +tags: [ "mikataba erevu", "erc-721", "Solidity", "tokeni" ] +skill: intermediate +lang: sw +published: 2020-03-19 +source: Hackernoon +sourceUrl: https://hackernoon.com/how-to-implement-an-erc721-market-1e1a32j9 +--- + +Katika makala hii, nitakuonyesha jinsi ya kutengeneza msimbo wa Craigslist kwa ajili ya mnyororo wa bloku wa Ethereum. + +Kabla ya Gumtree, Ebay na Craigslist, bao za matangazo zilitengenezwa zaidi kwa gome la mwaloni au karatasi. Kulikuwa na bao za matangazo kwenye korido za shule, magazeti, taa za barabarani, na sehemu za mbele za maduka. + +Yote hayo yalibadilika kwa ujio wa intaneti. Idadi ya watu walioweza kuona ubao maalum wa matangazo iliongezeka kwa viwango vingi sana. Kwa hayo, masoko wanayoyawakilisha yalikuwa na ufanisi zaidi na kupanuka hadi kufikia ukubwa wa kimataifa. Ebay ni biashara kubwa ambayo chimbuko lake ni kwenye hizi bao za matangazo halisi. + +Kupitia mnyororo wa bloku, masoko haya yako tayari kubadilika kwa mara nyingine, acha nikuonyeshe jinsi gani. + +## Uchumaji wa mapato {#monetization} + +Mfumo wa biashara wa ubao wa matangazo wa umma wa mnyororo wa bloku utahitaji kuwa tofauti na ule wa Ebay na kampuni nyinginezo. + +Kwanza, kuna [mtazamo wa ugatuzi](/developers/docs/web2-vs-web3/). Mifumo iliyopo inahitaji kudumisha seva zao wenyewe. Mfumo uliogatuliwa unadumishwa na watumiaji wake, hivyo gharama za kuendesha mfumo mkuu hushuka hadi sifuri kwa mmiliki wa mfumo. + +Halafu kuna sehemu ya mbele, tovuti au kiolesura kinachotoa ufikiaji kwenye mfumo. Hapa kuna chaguzi nyingi. Wamiliki wa mfumo wanaweza kuzuia ufikiaji na kulazimisha kila mtu atumie kiolesura chao, kwa kutoza ada. Wamiliki wa mfumo wanaweza pia kuamua kufungua ufikiaji (Nguvu kwa Watu!) na kumruhusu yeyote ajenge violesura vya kuingilia mfumo. Au wamiliki wanaweza kuamua njia yoyote iliyo katikati ya pande hizo mbili. + +_Viongozi wa biashara wenye maono zaidi kuliko mimi watajua jinsi ya kuchuma mapato kutokana na hili. Ninachokiona ni kwamba hii ni tofauti na hali ilivyo na pengine ina faida._ + +Zaidi ya hayo, kuna mtazamo wa otomatiki na malipo. Baadhi ya vitu vinaweza [kuwekwa kwenye tokeni kwa ufanisi mkubwa](https://hackernoon.com/tokenization-of-digital-assets-g0ffk3v8s?ref=hackernoon.com) na kuuzwa kwenye ubao wa matangazo. Mali zilizowekwa kwenye tokeni huhamishwa kwa urahisi katika mnyororo wa bloku. Njia tata sana za malipo zinaweza kutekelezwa kwa urahisi katika mnyororo wa bloku. + +Nahisi kuna fursa ya biashara hapa. Ubao wa matangazo usio na gharama za uendeshaji unaweza kutekelezwa kwa urahisi, ukiwa na njia tata za malipo zilizojumuishwa katika kila muamala. Nina hakika mtu atakuja na wazo la jinsi ya kutumia hii. + +Ninafurahi tu kuijenga. Hebu tuangalie msimbo. + +## Utekelezaji {#implementation} + +Muda fulani uliopita tulianzisha [hazina ya chanzo huria](https://github.com/HQ20/contracts?ref=hackernoon.com) yenye mifano ya utekelezaji wa kesi za biashara na vitu vingine vizuri, tafadhali angalia. + +Msimbo wa [Ubao huu wa Matangazo wa Ethereum](https://github.com/HQ20/contracts/tree/master/contracts/classifieds?ref=hackernoon.com) upo hapo, tafadhali utumie upendavyo. Fahamu tu kwamba msimbo haujakaguliwa na unahitaji kufanya uchunguzi wako mwenyewe kabla ya kuweka pesa ndani yake. + +Misingi ya ubao si tata. Matangazo yote kwenye ubao yatakuwa tu muundo wenye sehemu chache: + +```solidity +struct Trade { + address poster; + uint256 item; + uint256 price; + bytes32 status; // Imefunguliwa, Imetekelezwa, Imeghairiwa +} +``` + +Kwa hiyo kuna mtu anayetangaza tangazo. Kitu cha kuuza. Bei ya kitu. Hali ya biashara ambayo inaweza kuwa imefunguliwa, imetekelezwa au imeghairiwa. + +Biashara hizi zote zitawekwa kwenye 'mapping'. Kwa sababu kila kitu katika Solidity kinaonekana kuwa 'mapping'. Pia kwa sababu ni rahisi. + +```solidity +mapping(uint256 => Trade) public trades; +``` + +Kutumia 'mapping' kunamaanisha tu kwamba lazima tupate kitambulisho kwa kila tangazo kabla ya kulichapisha, na tutahitaji kujua kitambulisho cha tangazo kabla hatujaweza kulifanyia kazi. Kuna njia nyingi za kushughulikia hili ama kwenye mkataba-erevu au kwenye sehemu ya mbele. Tafadhali uliza ikiwa unahitaji vidokezo. + +Kisha inakuja swali la vitu gani tunavyoshughulika navyo, na ni sarafu gani inayotumika kulipia muamala. + +Kwa upande wa vitu, tutaomba tu vitekeleze kiolesura cha [ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/IERC721.sol?ref=hackernoon.com), ambayo kwa kweli ni njia tu ya kuwakilisha vitu vya ulimwengu halisi katika mnyororo wa bloku, ingawa [inafanya kazi vizuri zaidi na mali za kidijitali](https://hackernoon.com/tokenization-of-digital-assets-g0ffk3v8s?ref=hackernoon.com). Tutaainisha mkataba wetu wa ERC721 katika 'constructor', ikimaanisha kuwa mali zozote kwenye ubao wetu wa matangazo zinahitaji kuwa zimewekwa kwenye tokeni kabla. + +Kwa upande wa malipo, tutafanya kitu kinachofanana. Miradi mingi ya mnyororo wa bloku hufafanua sarafu yao ya kidigitali ya [ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol?ref=hackernoon.com). Wengine wanapendelea kutumia iliyo maarufu kama DAI. Katika ubao huu wa matangazo, unahitaji tu kuamua wakati wa kuunda sarafu yako itakuwa ipi. Rahisi. + +```solidity +constructor ( + address _currencyTokenAddress, address _itemTokenAddress +) public { + currencyToken = IERC20(_currencyTokenAddress); + itemToken = IERC721(_itemTokenAddress); + tradeCounter = 0; +} +``` + +Tunakaribia kufika. Tuna matangazo, vitu vya kubadilishana na sarafu ya malipo. Kutengeneza tangazo kunamaanisha kuweka kitu katika escrow ili kuonyesha kuwa unacho na kwamba haujakichapisha mara mbili, labda katika ubao tofauti. + +Msimbo ufuatao unafanya hivyo hasa. Unaweka kitu kwenye escrow, unatengeneza tangazo, unafanya usimamizi fulani. + +```solidity +function openTrade(uint256 _item, uint256 _price) + public +{ + itemToken.transferFrom(msg.sender, address(this), _item); + trades[tradeCounter] = Trade({ + poster: msg.sender, + item: _item, + price: _price, + status: "Open" + }); + tradeCounter += 1; + emit TradeStatusChange(tradeCounter - 1, "Open"); +} +``` + +Kukubali biashara kunamaanisha kuchagua tangazo (biashara), kulipa bei, na kupokea kitu. Msimbo ufuatao unapata biashara. Unakagua kama inapatikana. Unalipia kitu. Unapata kitu. Unasasisha tangazo. + +```solidity +function executeTrade(uint256 _trade) + public +{ + Trade memory trade = trades[_trade]; + require(trade.status == "Open", "Biashara haijafunguliwa."); + currencyToken.transferFrom(msg.sender, trade.poster, trade.price); + itemToken.transferFrom(address(this), msg.sender, trade.item); + trades[_trade].status = "Executed"; + emit TradeStatusChange(_trade, "Executed"); +} +``` + +Mwishowe, tuna chaguo kwa wauzaji kujiondoa kwenye biashara kabla mnunuzi hajakubali. Katika baadhi ya mifumo, matangazo badala yake yangekuwa hewani kwa kipindi fulani kabla ya muda wake kuisha. Ni chaguo lako, kulingana na muundo wa soko lako. + +Msimbo unafanana sana na ule unaotumika kutekeleza biashara, isipokuwa tu hakuna sarafu inayobadilisha mikono na kitu kinarudi kwa mchapishaji wa tangazo. + +```solidity +function cancelTrade(uint256 _trade) + public +{ + Trade memory trade = trades[_trade]; + require( + msg.sender == trade.poster, + "Biashara inaweza kughairiwa na mchapishaji pekee." + ); + require(trade.status == "Open", "Biashara haijafunguliwa."); + itemToken.transferFrom(address(this), trade.poster, trade.item); + trades[_trade].status = "Cancelled"; + emit TradeStatusChange(_trade, "Cancelled"); +} +``` + +Ni hayo tu. Umemaliza kufika mwisho wa utekelezaji. Inashangaza sana jinsi baadhi ya dhana za biashara zinavyokuwa fupi zinapoelezwa kwa msimbo, na hii ni moja ya kesi hizo. Angalia mkataba kamili [katika hazina yetu](https://github.com/HQ20/contracts/blob/master/contracts/classifieds/Classifieds.sol). + +## Hitimisho {#conclusion} + +Bao za matangazo ni muundo wa kawaida wa soko uliopanuka sana na intaneti, ukawa mfumo wa biashara maarufu sana ukiwa na washindi wachache wa ukiritimba. + +Bao za matangazo pia ni zana rahisi kuiga katika mazingira ya mnyororo wa bloku, zenye sifa maalum sana zitakazowezesha changamoto kwa makampuni makubwa yaliyopo. + +Katika makala hii, nimejaribu kuunganisha uhalisia wa biashara ya bodi ya matangazo na utekelezaji wa kiteknolojia. Ujuzi huu unapaswa kukusaidia kuunda maono na ramani ya utekelezaji ikiwa una ujuzi unaofaa. + +Kama kawaida, ikiwa unataka kujenga kitu chochote cha kufurahisha na ungependa ushauri, tafadhali [niandikie](https://albertocuesta.es/)! Daima ninafurahi kusaidia. diff --git a/public/content/translations/sw/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/sw/developers/tutorials/how-to-mint-an-nft/index.md new file mode 100644 index 00000000000..44d3eed8041 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/how-to-mint-an-nft/index.md @@ -0,0 +1,329 @@ +--- +title: Jinsi ya Kutengeneza NFT (Sehemu ya 2/3 ya Mfululizo wa Mafunzo ya NFT) +description: Mafunzo haya yanaelezea jinsi ya kutengeneza NFT kwenye mnyororo wa bloku wa Ethereum kwa kutumia mkataba-erevu wetu na Web3. +author: "Sumi Mudgil" +tags: [ "ERC-721", "Alchemy", "Solidity", "mikataba erevu" ] +skill: beginner +lang: sw +published: 2021-04-22 +--- + +[Beeple](https://www.nytimes.com/2021/03/11/arts/design/nft-auction-christies-beeple.html): Dola Milioni 69 +[3LAU](https://www.forbes.com/sites/abrambrown/2021/03/03/3lau-nft-nonfungible-tokens-justin-blau/?sh=5f72ef64643b): Dola Milioni 11 +[Grimes](https://www.theguardian.com/music/2021/mar/02/grimes-sells-digital-art-collection-non-fungible-tokens): Dola Milioni 6 + +Wote walitengeneza NFT zao kwa kutumia API yenye nguvu ya Alchemy. Katika mafunzo haya, tutakufundisha jinsi ya kufanya vivyo hivyo kwa chini ya dakika 10. + +“Kutengeneza NFT” ni kitendo cha kuchapisha tokeni ya kipekee ya ERC-721 kwenye mnyororo wa bloku. Kwa kutumia mkataba-erevu wetu kutoka [Sehemu ya 1 ya mfululizo huu wa mafunzo ya NFT](/developers/tutorials/how-to-write-and-deploy-an-nft/), hebu tuonyeshe ujuzi wetu wa Web3 na tutengeneze NFT. Mwishoni mwa mafunzo haya, utaweza kutengeneza NFT nyingi kadri moyo wako (na mkoba) unavyotamani! + +Tuanze! + +## Hatua ya 1: Sakinisha Web3 {#install-web3} + +Ikiwa ulifuata mafunzo ya kwanza kuhusu kuunda mkataba-erevu wako wa NFT, tayari una uzoefu wa kutumia Ethers.js. Web3 inafanana na Ethers, kwani ni maktaba inayotumika kurahisisha kuunda maombi kwenye mnyororo wa bloku wa Ethereum. Katika mafunzo haya tutakuwa tunatumia [Alchemy Web3](https://docs.alchemyapi.io/alchemy/documentation/alchemy-web3), ambayo ni maktaba ya Web3 iliyoboreshwa inayotoa majaribio ya kurudia kiotomatiki na usaidizi thabiti wa WebSocket. + +Katika saraka kuu ya mradi wako, endesha: + +``` +npm install @alch/alchemy-web3 +``` + +## Hatua ya 2: Tengeneza faili la `mint-nft.js` {#create-mintnftjs} + +Ndani ya saraka yako ya maandishi, tengeneza faili la `mint-nft.js` na uongeze mistari ifuatayo ya msimbo: + +```js +require("dotenv").config() +const API_URL = process.env.API_URL +const { createAlchemyWeb3 } = require("@alch/alchemy-web3") +const web3 = createAlchemyWeb3(API_URL) +``` + +## Hatua ya 3: Pata ABI ya mkataba wako {#contract-abi} + +ABI ya mkataba wetu (Kiolesura cha Mfumo wa Nambari) ni kiolesura cha kuingiliana na mkataba-erevu wetu. Unaweza kujifunza zaidi kuhusu ABI za Mkataba [hapa](https://docs.alchemyapi.io/alchemy/guides/eth_getlogs#what-are-ab-is). Hardhat hutengeneza ABI kiotomatiki na kuihifadhi katika faili la `MyNFT.json`. Ili kutumia hili, tutahitaji kuchanganua yaliyomo kwa kuongeza mistari ifuatayo ya msimbo kwenye faili letu la `mint-nft.js`: + +```js +const contract = require("../artifacts/contracts/MyNFT.sol/MyNFT.json") +``` + +Ikiwa unataka kuona ABI unaweza kuichapisha kwenye koni yako: + +```js +console.log(JSON.stringify(contract.abi)) +``` + +Ili kuendesha `mint-nft.js` na kuona ABI yako ikichapishwa kwenye koni, nenda kwenye terminal yako na uendeshe: + +```js +node scripts/mint-nft.js +``` + +## Hatua ya 4: Sanidi metadata ya NFT yako kwa kutumia IPFS {#config-meta} + +Ikiwa unakumbuka kutoka kwa mafunzo yetu katika Sehemu ya 1, chaguo la kukokotoa la mkataba-erevu wa `mintNFT` huchukua kigezo cha tokenURI ambacho kinapaswa kutatua kwa hati ya JSON inayoelezea metadata ya NFT— ambayo ndiyo huleta uhai kwa NFT, na kuiruhusu kuwa na sifa zinazoweza kusanidiwa, kama vile jina, maelezo, picha na sifa nyingine. + +> _Mfumo wa Faili baina ya Sayari (IPFS) ni itifaki iliyogatuliwa na mtandao wa rika-kwa-rika wa kuhifadhi na kushiriki data katika mfumo wa faili uliosambazwa._ + +Tutatumia Pinata, API na zana rahisi ya IPFS, kuhifadhi mali na metadata ya NFT yetu ili kuhakikisha kuwa NFT yetu imegatuliwa kikweli. Ikiwa huna akaunti ya Pinata, jisajili kwa akaunti ya bure [hapa](https://app.pinata.cloud) na ukamilishe hatua za kuthibitisha barua pepe yako. + +Mara tu unapomaliza kuunda akaunti: + +- Nenda kwenye ukurasa wa "Faili" na ubofye kitufe cha buluu cha "Pakia" kilicho juu kushoto mwa ukurasa. + +- Pakia picha kwenye Pinata - hii itakuwa mali ya picha kwa NFT yako. Jisikie huru kuiita mali jina lolote unalotaka + +- Baada ya kupakia, utaona maelezo ya faili katika jedwali kwenye ukurasa wa "Faili". Pia utaona safu ya CID. Unaweza kunakili CID kwa kubofya kitufe cha kunakili kilicho karibu nayo. Unaweza kutazama upakiaji wako kwenye: `https://gateway.pinata.cloud/ipfs/`. Unaweza kupata picha tuliyotumia kwenye IPFS [hapa](https://gateway.pinata.cloud/ipfs/QmZdd5KYdCFApWn7eTZJ1qgJu18urJrP9Yh1TZcZrZxxB5), kwa mfano. + +Kwa wanafunzi wanaoonekana zaidi, hatua zilizo hapo juu zimefupishwa hapa: + +![Jinsi ya kupakia picha yako kwenye Pinata](./instructionsPinata.gif) + +Sasa, tutataka kupakia hati moja zaidi kwenye Pinata. Lakini kabla ya kufanya hivyo, tunahitaji kuiunda! + +Katika saraka yako kuu, tengeneza faili jipya liitwalo `nft-metadata.json` na uongeze msimbo ufuatao wa json: + +```json +{ + "attributes": [ + { + "trait_type": "Aina", + "value": "Maltipoo" + }, + { + "trait_type": "Rangi ya macho", + "value": "Mocha" + } + ], + "description": "Mtoto wa mbwa anayevutia na nyeti zaidi ulimwenguni.", + "image": "ipfs://QmWmvTJmJU3pozR9ZHFmQC2DNDwi2XJtf3QGyYiiagFSWb", + "name": "Ramses" +} +``` + +Jisikie huru kubadilisha data kwenye json. Unaweza kuondoa au kuongeza kwenye sehemu ya sifa. Muhimu zaidi, hakikisha sehemu ya picha inaelekeza kwenye eneo la picha yako ya IPFS - vinginevyo, NFT yako itajumuisha picha ya (mrembo sana!) mbwa. + +Ukishamaliza kuhariri faili la JSON, lihifadhi na ulipakie kwenye Pinata, ukifuata hatua zilezile tulizofanya kupakia picha. + +![Jinsi ya kupakia nft-metadata.json yako kwenye Pinata](./uploadPinata.gif) + +## Hatua ya 5: Unda kielelezo cha mkataba wako {#instance-contract} + +Sasa, ili kuingiliana na mkataba wetu, tunahitaji kuunda mfano wake katika msimbo wetu. Ili kufanya hivyo tutahitaji anwani yetu ya mkataba ambayo tunaweza kuipata kutoka kwa usambazaji au [Blockscout](https://eth-sepolia.blockscout.com/) kwa kuangalia anwani uliyotumia kupeleka mkataba. + +![Tazama anwani yako ya mkataba kwenye Etherscan](./view-contract-etherscan.png) + +Katika mfano ulio hapo juu, anwani ya mkataba wetu ni 0x5a738a5c5fe46a1fd5ee7dd7e38f722e2aef7778. + +Ifuatayo tutatumia [mbinu ya mkataba](https://docs.web3js.org/api/web3-eth-contract/class/Contract) ya Web3 kuunda mkataba wetu kwa kutumia ABI na anwani. Katika faili lako la `mint-nft.js`, ongeza yafuatayo: + +```js +const contractAddress = "0x5a738a5c5fe46a1fd5ee7dd7e38f722e2aef7778" + +const nftContract = new web3.eth.Contract(contract.abi, contractAddress) +``` + +## Hatua ya 6: Sasisha faili la `.env` {#update-env} + +Sasa, ili kuunda na kutuma miamala kwenye mnyororo wa Ethereum, tutatumia anwani ya akaunti yako ya umma ya Ethereum kupata nonce ya akaunti (tutaelezea hapo chini). + +Ongeza ufunguo wako wa umma kwenye faili lako la `.env` - ikiwa ulikamilisha sehemu ya 1 ya mafunzo, faili letu la `.env` linapaswa kuonekana hivi sasa: + +```js +API_URL = "https://eth-sepolia.g.alchemy.com/v2/your-api-key" +PRIVATE_KEY = "your-private-account-address" +PUBLIC_KEY = "your-public-account-address" +``` + +## Hatua ya 7: Tengeneza muamala wako {#create-txn} + +Kwanza, hebu tufafanue chaguo la kukokotoa liitwalo `mintNFT(tokenData)` na tutengeneze muamala wetu kwa kufanya yafuatayo: + +1. Pata _PRIVATE_KEY_ na _PUBLIC_KEY_ yako kutoka kwenye faili la `.env`. + +2. Ifuatayo, tutahitaji kufahamu nonce ya akaunti. Vipimo vya Nonce hutumiwa kufuatilia idadi ya miamala iliyotumwa kutoka kwa anwani yako - ambayo tunahitaji kwa madhumuni ya usalama na kuzuia [mashambulizi ya kurudia](https://docs.alchemyapi.io/resources/blockchain-glossary#account-nonce). Ili kupata idadi ya miamala iliyotumwa kutoka kwa anwani yako, tunatumia [getTransactionCount](https://docs.alchemyapi.io/documentation/alchemy-api-reference/json-rpc#eth_gettransactioncount). + +3. Mwishowe tutaweka muamala wetu na maelezo yafuatayo: + +- `'from': PUBLIC_KEY` — Asili ya muamala wetu ni anwani yetu ya umma + +- `'to': contractAddress` — Mkataba tunaotaka kuingiliana nao na kutuma muamala + +- `'nonce': nonce` — Nonce ya akaunti na idadi ya miamala iliyotumwa kutoka kwa anwani yetu + +- `'gas': estimatedGas` — Gesi inayokadiriwa inayohitajika kukamilisha muamala + +- `'data': nftContract.methods.mintNFT(PUBLIC_KEY, md).encodeABI()` — Kukokotoa tunayotaka kufanya katika muamala huu - ambayo katika hali hii ni kutengeneza NFT + +Faili lako la `mint-nft.js` linapaswa kuonekana hivi sasa: + +```js + require('dotenv').config(); + const API_URL = process.env.API_URL; + const PUBLIC_KEY = process.env.PUBLIC_KEY; + const PRIVATE_KEY = process.env.PRIVATE_KEY; + + const { createAlchemyWeb3 } = require("@alch/alchemy-web3"); + const web3 = createAlchemyWeb3(API_URL); + + const contract = require("../artifacts/contracts/MyNFT.sol/MyNFT.json"); + const contractAddress = "0x5a738a5c5fe46a1fd5ee7dd7e38f722e2aef7778"; + const nftContract = new web3.eth.Contract(contract.abi, contractAddress); + + async function mintNFT(tokenURI) { + const nonce = await web3.eth.getTransactionCount(PUBLIC_KEY, 'latest'); //pata nonce ya hivi karibuni + + //muamala + const tx = { + 'from': PUBLIC_KEY, + 'to': contractAddress, + 'nonce': nonce, + 'gas': 500000, + 'data': nftContract.methods.mintNFT(PUBLIC_KEY, tokenURI).encodeABI() + }; + }​ +``` + +## Hatua ya 8: Saini muamala {#sign-txn} + +Sasa kwa kuwa tumeunda muamala wetu, tunahitaji kuusaini ili kuutuma. Hapa ndipo tutatumia ufunguo wetu binafsi. + +`web3.eth.sendSignedTransaction` itatupatia hashi ya muamala, ambayo tunaweza kutumia kuhakikisha muamala wetu umechimbwa na haukuachwa na mtandao. Utagundua katika sehemu ya kusaini muamala, tumeongeza ukaguzi wa hitilafu ili tujue ikiwa muamala wetu umefaulu. + +```js +require("dotenv").config() +const API_URL = process.env.API_URL +const PUBLIC_KEY = process.env.PUBLIC_KEY +const PRIVATE_KEY = process.env.PRIVATE_KEY + +const { createAlchemyWeb3 } = require("@alch/alchemy-web3") +const web3 = createAlchemyWeb3(API_URL) + +const contract = require("../artifacts/contracts/MyNFT.sol/MyNFT.json") +const contractAddress = "0x5a738a5c5fe46a1fd5ee7dd7e38f722e2aef7778" +const nftContract = new web3.eth.Contract(contract.abi, contractAddress) + +async function mintNFT(tokenURI) { + const nonce = await web3.eth.getTransactionCount(PUBLIC_KEY, "latest") //pata nonce ya hivi karibuni + + //muamala + const tx = { + from: PUBLIC_KEY, + to: contractAddress, + nonce: nonce, + gas: 500000, + data: nftContract.methods.mintNFT(PUBLIC_KEY, tokenURI).encodeABI(), + } + + const signPromise = web3.eth.accounts.signTransaction(tx, PRIVATE_KEY) + signPromise + .then((signedTx) => { + web3.eth.sendSignedTransaction( + signedTx.rawTransaction, + function (err, hash) { + if (!err) { + console.log( + "Hashi ya muamala wako ni: ", + hash, + "\nAngalia Mempool ya Alchemy kutazama hali ya muamala wako!" + ) + } else { + console.log( + "Kuna kitu kilienda vibaya wakati wa kuwasilisha muamala wako:", + err + ) + } + } + ) + }) + .catch((err) => { + console.log(" Ahadi imeshindwa:", err) + }) +} +``` + +## Hatua ya 9: Ita `mintNFT` na endesha node `mint-nft.js` {#call-mintnft-fn} + +Unakumbuka `metadata.json` uliyopakia kwenye Pinata? Pata msimbo wake wa hashi kutoka Pinata na upitishe yafuatayo kama kigezo kwa chaguo la kukokotoa `mintNFT` `https://gateway.pinata.cloud/ipfs/` + +Hivi ndivyo jinsi ya kupata msimbo wa hashi: + +![Jinsi ya kupata msimbo wa hashi wa metadata ya nft yako kwenye Pinata](./metadataPinata.gif)_Jinsi ya kupata msimbo wa hashi wa metadata ya nft yako kwenye Pinata_ + +> Hakikisha mara mbili kwamba msimbo wa hashi ulionakili unaunganisha kwenye **metadata.json** yako kwa kupakia `https://gateway.pinata.cloud/ipfs/` kwenye dirisha tofauti. Ukurasa unapaswa kuonekana sawa na picha ya skrini hapa chini: + +![Ukurasa wako unapaswa kuonyesha metadata ya json](./metadataJSON.png)_Ukurasa wako unapaswa kuonyesha metadata ya json_ + +Kwa pamoja, msimbo wako unapaswa kuonekana kama hivi: + +```js +require("dotenv").config() +const API_URL = process.env.API_URL +const PUBLIC_KEY = process.env.PUBLIC_KEY +const PRIVATE_KEY = process.env.PRIVATE_KEY + +const { createAlchemyWeb3 } = require("@alch/alchemy-web3") +const web3 = createAlchemyWeb3(API_URL) + +const contract = require("../artifacts/contracts/MyNFT.sol/MyNFT.json") +const contractAddress = "0x5a738a5c5fe46a1fd5ee7dd7e38f722e2aef7778" +const nftContract = new web3.eth.Contract(contract.abi, contractAddress) + +async function mintNFT(tokenURI) { + const nonce = await web3.eth.getTransactionCount(PUBLIC_KEY, "latest") //pata nonce ya hivi karibuni + + //muamala + const tx = { + from: PUBLIC_KEY, + to: contractAddress, + nonce: nonce, + gas: 500000, + data: nftContract.methods.mintNFT(PUBLIC_KEY, tokenURI).encodeABI(), + } + + const signPromise = web3.eth.accounts.signTransaction(tx, PRIVATE_KEY) + signPromise + .then((signedTx) => { + web3.eth.sendSignedTransaction( + signedTx.rawTransaction, + function (err, hash) { + if (!err) { + console.log( + "Hashi ya muamala wako ni: ", + hash, + "\nAngalia Mempool ya Alchemy kutazama hali ya muamala wako!" + ) + } else { + console.log( + "Kuna kitu kilienda vibaya wakati wa kuwasilisha muamala wako:", + err + ) + } + } + ) + }) + .catch((err) => { + console.log("Ahadi imeshindwa:", err) + }) +} + +mintNFT("ipfs://QmYueiuRNmL4MiA2GwtVMm6ZagknXnSpQnB3z2gWbz36hP") +``` + +Sasa, endesha `node scripts/mint-nft.js` ili kupeleka NFT yako. Baada ya sekunde chache, unapaswa kuona jibu kama hili kwenye terminal yako: + + ``` + Hashi ya muamala wako ni: 0x301791fdf492001fcd9d5e5b12f3aa1bbbea9a88ed24993a8ab2cdae2d06e1e8 + + Angalia Mempool ya Alchemy kutazama hali ya muamala wako! + ``` + +Ifuatayo, tembelea [Mempool yako ya Alchemy](https://dashboard.alchemyapi.io/mempool) ili kuona hali ya muamala wako (kama unasubiri, umechimbwa, au umeshuka na mtandao). Ikiwa muamala wako umeshuka, inasaidia pia kuangalia [Blockscout](https://eth-sepolia.blockscout.com/) na utafute hashi ya muamala wako. + +![Tazama hashi ya muamala wako wa NFT kwenye Etherscan](./view-nft-etherscan.png)_Tazama hashi ya muamala wako wa NFT kwenye Etherscan_ + +Na ndivyo hivyo! Sasa umeshapeleka NA kutengeneza NFT kwenye mnyororo wa bloku wa Ethereum + +Kwa kutumia `mint-nft.js` unaweza kutengeneza NFT nyingi kadri moyo wako (na mkoba) unavyotamani! Hakikisha tu unapitia tokenURI mpya inayoelezea metadata ya NFT (vinginevyo, utaishia kutengeneza rundo la zinazofanana na vitambulisho tofauti). + +Bila shaka, ungependa kuonyesha NFT yako kwenye mkoba wako - kwa hivyo hakikisha unaangalia [Sehemu ya 3: Jinsi ya Kuona NFT Yako Kwenye Mkoba wako](/developers/tutorials/how-to-view-nft-in-metamask/)! diff --git a/public/content/translations/sw/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md b/public/content/translations/sw/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md new file mode 100644 index 00000000000..6a665ca7b41 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md @@ -0,0 +1,102 @@ +--- +title: Jinsi ya kuiga mikataba-erevu ya Solidity kwa ajili ya majaribio +description: Kwa nini unapaswa kufanyia mzaha mikataba yako unapofanya majaribio +author: Markus Waas +lang: sw +tags: [ "Solidity", "mikataba erevu", "majaribio", "kuiga" ] +skill: intermediate +published: 2020-05-02 +source: soliditydeveloper.com +sourceUrl: https://soliditydeveloper.com/mocking-contracts +--- + +[Vitu vya kuiga](https://wikipedia.org/wiki/Mock_object) ni muundo wa kawaida wa usanifu katika upangaji programu unaolenga vitu. Likitokana na neno la zamani la Kifaransa 'mocquer' lenye maana ya 'kufanyia mzaha', lilibadilika na kuwa 'kuiga kitu halisi' ambacho ndicho hasa tunachofanya katika upangaji programu. Tafadhali fanyia mzaha tu mikataba yako erevu ikiwa unataka, lakini iige wakati wowote unapoweza. Inarahisisha maisha yako. + +## Majaribio ya kipengele cha mikataba kwa kutumia miigo {#unit-testing-contracts-with-mocks} + +Kuiga mkataba kimsingi kunamaanisha kutengeneza toleo la pili la mkataba huo ambalo linafanya kazi sawa na lile la awali, lakini kwa njia ambayo inaweza kudhibitiwa kwa urahisi na msanidi programu. Mara nyingi unajikuta na mikataba tata ambapo unataka tu [kufanya majaribio ya kipengele kwa sehemu ndogo za mkataba](/developers/docs/smart-contracts/testing/). Tatizo ni vipi ikiwa kujaribu sehemu hii ndogo kunahitaji hali maalum ya mkataba ambayo ni vigumu kuifikia? + +Unaweza kuandika mantiki tata ya usanidi wa majaribio kila wakati inayoweka mkataba katika hali inayohitajika au unaandika muigo. Kuiga mkataba ni rahisi kwa kutumia urithi. Tengeneza tu mkataba wa pili wa kuiga unaorithi kutoka kwa ule wa awali. Sasa unaweza kubatilisha utendakazi kwenye muigo wako. Hebu tuone kwa mfano. + +## Mfano: ERC20 ya Faragha {#example-private-erc20} + +Tunatumia mfano wa mkataba wa ERC-20 ambao una muda wa awali wa faragha. Mmiliki anaweza kudhibiti watumiaji wa faragha na ni wao tu ndio watakaoruhusiwa kupokea tokeni mwanzoni. Muda fulani ukishapita, kila mtu ataruhusiwa kutumia tokeni. Kama una hamu ya kujua, tunatumia hooki ya [`_beforeTokenTransfer`](https://docs.openzeppelin.com/contracts/5.x/extending-contracts#using-hooks) kutoka kwa mikataba mipya ya OpenZeppelin v3. + +```solidity +pragma solidity ^0.6.0; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import "@openzeppelin/contracts/access/Ownable.sol"; + +contract PrivateERC20 is ERC20, Ownable { + mapping (address => bool) public isPrivateUser; + uint256 private publicAfterTime; + + constructor(uint256 privateERC20timeInSec) ERC20("PrivateERC20", "PRIV") public { + publicAfterTime = now + privateERC20timeInSec; + } + + function addUser(address user) external onlyOwner { + isPrivateUser[user] = true; + } + + function isPublic() public view returns (bool) { + return now >= publicAfterTime; + } + + function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override { + super._beforeTokenTransfer(from, to, amount); + + require(_validRecipient(to), "PrivateERC20: mpokeaji si sahihi"); + } + + function _validRecipient(address to) private view returns (bool) { + if (isPublic()) { + return true; + } + + return isPrivateUser[to]; + } +} +``` + +Na sasa hebu tuuige. + +```solidity +pragma solidity ^0.6.0; +import "../PrivateERC20.sol"; + +contract PrivateERC20Mock is PrivateERC20 { + bool isPublicConfig; + + constructor() public PrivateERC20(0) {} + + function setIsPublic(bool isPublic) external { + isPublicConfig = isPublic; + } + + function isPublic() public view returns (bool) { + return isPublicConfig; + } +} +``` + +Utapata moja ya ujumbe ufuatao wa hitilafu: + +- `PrivateERC20Mock.sol: TypeError: Overriding function is missing "override" specifier.` +- `PrivateERC20.sol: TypeError: Trying to override non-virtual function. Did you forget to add "virtual"?.` + +Kwa kuwa tunatumia toleo jipya la 0.6 la Solidity, tunapaswa kuongeza neno msingi la `virtual` kwa ajili ya utendakazi ambao unaweza kubatilishwa na `override` kwa ajili ya utendakazi unaobatilisha. Kwa hivyo, hebu tuongeze hayo kwenye utendakazi wote wa `isPublic`. + +Sasa katika majaribio yako ya kipengele, unaweza kutumia `PrivateERC20Mock` badala yake. Unapotaka kujaribu tabia wakati wa matumizi ya faragha, tumia `setIsPublic(false)` na vile vile `setIsPublic(true)` kwa ajili ya kujaribu muda wa matumizi ya umma. Bila shaka katika mfano wetu, tunaweza pia kutumia [visaidizi vya muda](https://docs.openzeppelin.com/test-helpers/0.5/api#increase) kubadilisha nyakati ipasavyo. Lakini wazo la kuiga linapaswa kuwa wazi sasa na unaweza kufikiria hali ambapo si rahisi kama kusongesha mbele muda tu. + +## Kuiga mikataba mingi {#mocking-many-contracts} + +Inaweza kuwa fujo ikiwa itabidi utengeneze mkataba mwingine kwa kila muigo mmoja. Ikiwa hili linakusumbua, unaweza kuangalia maktaba ya [MockContract](https://github.com/gnosis/mock-contract). Inakuruhusu kubatilisha na kubadilisha tabia za mikataba papo kwa papo. Hata hivyo, inafanya kazi tu kwa ajili ya kuiga miito kwa mkataba mwingine, kwa hivyo haitafanya kazi kwa mfano wetu. + +## Kuiga kunaweza kuwa na nguvu zaidi {#mocking-can-be-even-more-powerful} + +Nguvu za kuiga haziishii hapo. + +- Kuongeza utendakazi: Si tu kubatilisha utendakazi maalum ni muhimu, bali pia kuongeza tu utendakazi wa ziada. Mfano mzuri kwa tokeni ni kuwa na utendakazi wa ziada wa `mint` ili kuruhusu mtumiaji yeyote kupata tokeni mpya bure. +- Matumizi katika testnet: Unapotuma na kujaribu mikataba yako kwenye testnet pamoja na mfumo wako mtawanyo wa kimamlaka, zingatia kutumia toleo la kuiga. Epuka kubatilisha utendakazi isipokuwa kama ni lazima sana. Unataka kujaribu mantiki halisi hata hivyo. Lakini kuongeza kwa mfano utendakazi wa kuweka upya kunaweza kuwa na manufaa ambao unaweka upya hali ya mkataba hadi mwanzo, bila kuhitaji utumaji mpya. Ni wazi hautaki kuwa na hiyo katika mkataba wa Mtandao Mkuu. diff --git a/public/content/translations/sw/guides/how-to-id-scam-tokens/index.md b/public/content/translations/sw/guides/how-to-id-scam-tokens/index.md new file mode 100644 index 00000000000..4aeb1b6d4ff --- /dev/null +++ b/public/content/translations/sw/guides/how-to-id-scam-tokens/index.md @@ -0,0 +1,94 @@ +--- +title: Jinsi ya kutambua tokeni za udanganyifu +description: Kuelewa tokeni za udanganyifu, mbinu zinazo zifanya zionekane kuwa halali, na jinsi ya kujiepusha nazo. +lang: sw +--- + +# Jinsi ya kutambua tokeni za ulaghai {#identify-scam-tokens} + +Moja ya matumizi yanayojulikana sana ya Ethereum ni pale kikundi cha watu kinapotengeneza tokeni inayoweza kuuzwa, kwa maana nyingine, sarafu yao wenyewe. Tokeni hizi kwa kawaida hufuata kiwango, [ERC-20](/developers/docs/standards/tokens/erc-20/). Hata hivyo, popote palipo na matumizi halali yanayoleta thamani, pia kuna wahalifu wanaojaribu kuiba thamani hiyo kwa faida yao binafsi. + +Kuna njia mbili ambazo zina uwezekano mkubwa kutumiwa na wahalifu hawa kukudanganya: + +- **Kukuuzia tokeni ya ulaghai**, ambayo inaweza kuonekana kama tokeni halali unayotaka kununua, lakini imetolewa na walaghai na haina thamani. +- **Kukuhadaa ili usaini miamala mibaya**, kwa kawaida kwa kukuelekeza kwenye kiolesura chao cha mtumiaji. Wanaweza kujaribu kukufanya utoe ruhusa kwa mikataba yao kutumia tokeni zako za ERC-20, jambo ambalo linaweza kufichua taarifa nyeti na kuwapa ufikiaji wa mali zako. Mara nyingi tovuti hizi hufanana kabisa na zile za halali, lakini zikiwa na ujanja uliojificha. + +Ili kuonyesha tokeni za ulaghai ni nini, na jinsi ya kuzitambua, tutaangalia mfano mmoja: [`wARB`](https://eth.blockscout.com/token/0xB047c8032b99841713b8E3872F06cF32beb27b82). Tokeni hii inajaribu kufanana na tokeni halali ya [`ARB`](https://eth.blockscout.com/address/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1). + + + +Arbitrum ni shirika linalotengeneza na kusimamia [optimistic rollups](/developers/docs/scaling/optimistic-rollups/). Hapo awali, ilikuwa ni kampuni ya kibiashara yenye lengo la kupata faida, lakini baadae kuchukua hatua ya kugatua madaraka. Kama sehemu ya mchakato huo, walitoa [tokeni ya utawala](/dao/#token-based-membership) inayoweza kuuzwa. + + + + +Katika Ethereum, iwapo mali si ya kiwango cha ERC-20, huundwa toleo jipya ambalo limefungamana na kiwango hicho linaloanzia na herufi "w" kwenye jina lake. Kwa mfano, kuna wBTC kwaajili ya bitcoin na wETH kwaajili ya ether. + +Haileti maana kuwa na toleo la tokeni lililofungamana na kiwango cha ERC-20 kama tokeni tayari ni ya Ethereum, lakini matapeli hutegemea mwonekano wa uhalali badala ya ukweli wa msingi. + + +## Tokeni za udanganyifu hufanyaje kazi? {#how-do-scam-tokens-work} + +Lengo kuu la Ethereum ni ugatuaji. Hii ina maana kwamba hakuna mamlaka ya kati inayoweza kukupokonya mali zako au kukuzuia kuunda mkataba wa kidijitali. Lakini pia ina maana kwamba matapeli wanaweza kuunda mikataba yoyote wanayotaka. + + + +[Mikataba-erevu](/developers/docs/smart-contracts/) ni programu zinazoendeshwa juu ya blockchain ya Ethereum. Kila tokeni ya ERC-20, kwa mfano, huundwa kama mkataba wa kidigitali. + + +Hasa, Arbitrum ilipeleka mkataba unaotumia alama ya `ARB`. Lakini hilo halizuii watu wengine kuunda mikataba inayotumia alama hiyo hiyo au inayofanana. Yeyote anayeandika mkataba ndiye anayechagua mkataba huo ufanye nini. + +## Kuonekana halali {#appearing-legitimate} + +Kuna mbinu nyingi ambazo watengenezaji wa tokeni za udanganyifu hutumia ili kuonekana kama halali. + +- **Jina na alama halali**. Kama tulivyosema awali, mikataba ya ERC-20 inaweza kutumia jina na alama sawa kabisa na mikataba mingine ya ERC-20. Hivyo basi, huwezi kutegemea majina au alama hizo kama kipimo cha usalama. + +- **Wamiliki halali**. Mara nyingi, tokeni za ulaghai husambaza kiasi kikubwa cha tokeni kwa anuani ambazo zinatarajiwa kuwa wamiliki halali wa tokeni halisi. + + Kwa mfano, hebu tuangalie `wARB` tena. [Takriban 16% ya tokeni](https://eth.blockscout.com/token/0xb047c8032b99841713b8e3872f06cf32beb27b82?tab=holders) zinashikiliwa na anwani ambayo lebo yake ya umma ni [Arbitrum Foundation: Deployer](https://eth.blockscout.com/address/0x1C8db745ABe3C8162119b9Ef2c13864Cd1FDD72F). Hii _sio_ anwani bandia, ni anwani halisi ambayo [ilipeleka mkataba halisi wa ARB kwenye Mtandao Mkuu wa Ethereum](https://eth.blockscout.com/tx/0x242b50ab4fe9896cb0439cfe6e2321d23feede7eeceb31aa2dbb46fc06ed2670). + + Kwa sababu salio la ERC-20 la anuani fulani ni sehemu ya hifadhi ya mkataba wa ERC-20, mkataba unaweza kuamuliwa kuwa chochote msanidi anachotaka. Pia inawezekana mkataba kuzuia uhamishaji, hivyo watumiaji halali hawawezi kuondoa zile tokeni za udanganyifu. + +- **Uhamishaji halali**. _Wamiliki halali hawangelipa kuhamisha tokeni ya ulaghai kwa wengine, kwa hivyo kama kuna hamisho, ni lazima iwe halali, sivyo?_ **Si kweli**. Matukio ya `Transfer` yanazalishwa na mkataba wa ERC-20. Tapeli anaweza kuandika mkataba kwa namna kwamba utazalisha vitendo hivyo kirahisi. + +## Tovuti za ulaghai {#websites} + +Matapeli wanaweza kutengeneza tovuti zinazoshawishi sana, mara nyengine hata nakala zinazofanana kabisa na tovuti za kweli na zenye muonekano sawa kabisa, lakini zote zikiwa ni njia za ujanja tu. Kwa mfano unaweza kuona kiungo cha nje kinachoonekana halali kabisa kumbe kinakupeleka kwenye tovuti ya kitapeli, au maelekezo yasiyo sahihi yanayokufanya utoe funguo zako au kutuma fedha kwenye anwani ya mshambuliaji. + +Njia bora ya kujilinda na hili ni kukagua kwa makini URL ya tovuti unazotembelea, na kuhifadhi anuani za tovuti halisi kwenye vialamisho vyako. Ukifanya hivyo, utaweza kufikia tovuti halisi moja kwa moja kupitia vialamisho vyako bila kufanya makosa ya tahajia au kutegemea viungo vya nje. + +## Unawezaje kujilinda? {#protect-yourself} + +1. **Angalia anuani ya mkataba**. Tokeni halali zinatoka kwenye mashirika halali, na unaweza kuona anuani za mikataba kwenye tovuti rasmi ya shirika husika. Kwa mfano, [kwa `ARB` unaweza kuona anwani halali hapa](https://docs.arbitrum.foundation/deployment-addresses#token). + +2. **Tokeni halisi zina ukwasi**. Chaguo jingine ni kuangalia ukubwa wa bwawa la ukwasi kwenye [Uniswap](https://uniswap.org/), mojawapo ya protokali za kawaida za kubadilisha tokeni. Itifaki hii inafanya kazi kwa kutumia mabwawa ya ukwasi, ambapo wawekezaji huweka tokeni zao wakitarajia kupata mapato kutokana na ada za biashara. + +Tokeni za udanganyifu kwa kawaida huwa na mabwawa madogo sana ya ukwasi, au hayana kabisa, kwa sababu matapeli hawataki kuhatarisha mali halisi. Kwa mfano, bwawa la `ARB`/`ETH` la Uniswap lina takriban dola milioni moja ([angalia hapa kwa thamani ya sasa](https://app.uniswap.org/explore#/pools/0x755e5a186f0469583bd2e80d1216e02ab88ec6ca)) na kununua au kuuza kiasi kidogo hakutabadilisha bei: + +![Kununua tokeni halali](./uniswap-real.png) + +Lakini unapojaribu kununua tokeni ya ulaghai ya `wARB`, hata ununuzi mdogo ungebadilisha bei kwa zaidi ya 90%: + +![Kununua tokeni ya ulaghai](./uniswap-scam.png) + +Huu ni ushahidi mwingine unaoonyesha kuwa `wARB` kuna uwezekano si tokeni halali. + +3. **Angalia kwenye Etherscan**. Tokeni nyingi za kitapeli tayari zimebainishwa na kuripotiwa na jamii. Tokeni kama hizi [zimetiwa alama katika Etherscan](https://info.etherscan.com/etherscan-token-reputation/). Ingawa Etherscan si chanzo rasmi cha ukweli (kwa sababu katika mitandao ambayo imegatuliwa hakuna chanzo kimoja cha ukweli), tokeni ambazo zimetambulika na Etherscan kama za kitapeli mara nyingi kweli huwa za kitapeli. + + ![Tokeni ya ulaghai katika Etherscan](./etherscan-scam.png) + +## Hitimisho {#conclusion} + +Almradi bado kuna thamani duniani, kutakuwepo na matapeli wanaotaka kuiba. Katika dunia ya kidijitali isiyo na udhibiti wa kati, hakuna wa kukulinda isipokuwa wewe mwenyewe. Ni matumaini yangu utayakumbuka mambo haya ili yakusaidie kutofautisha tokeni halali na za kitapeli: + +- Tokeni za kitapeli huiga tokeni halali, zinaweza kutumia jina na alama sawa n.k. +- Tokeni za ulaghai _haziwezi_ kutumia anwani sawa ya mkataba. +- Chanzo bora cha anuani ya tokeni halali ni shirika linalomiliki tokeni hiyo. +- Ikishindikana, unaweza kutumia programu maarufu na za kuaminika kama vile [Uniswap](https://app.uniswap.org/#/swap) na [Blockscout](https://eth.blockscout.com/). diff --git a/public/content/translations/sw/guides/how-to-revoke-token-access/index.md b/public/content/translations/sw/guides/how-to-revoke-token-access/index.md new file mode 100644 index 00000000000..d8415f02bff --- /dev/null +++ b/public/content/translations/sw/guides/how-to-revoke-token-access/index.md @@ -0,0 +1,75 @@ +--- +title: Jinsi ya Kubatilisha mkataba erevu usifikie fedha zako za kripto +description: Muongozo wa jinsi ya kuondoa mkataba mahiri unaofikiwa kidhalimu +lang: sw +--- + +# Jinsi ya Kubatilisha mkataba erevu usifikie fedha zako za kripto + +Mwongozo huu utakufundisha jinsi ya kutazama orodha ya [smart contracts](/glossary/#smart-contract) zote ambazo umeziruhusu kufikia fedha zako na jinsi ya kuzighairi. + +Wakati mwingine wasanidi programu wadanganyifu huweka milango ya siri kwenye mikataba mahiri ambayo inaruhusu kupata fedha za watumiaji wasiojua, ambao huingiliana na mkataba huo mahiri. Kinachotokea mara kwa mara ni kwamba mifumo kama hiyo humwomba mtumiaji ruhusa ya kutumia **idadi isiyo na kikomo ya tokeni** kwa jaribio la kuokoa kiasi kidogo cha [gesi](/glossary/#gas) siku zijazo, lakini hii huja na hatari iliyoongezeka. + +Mara tu jukwaa linapokuwa na haki za ufikiaji zisizo na kikomo kwa tokeni kwenye [mkoba](/glossary/#wallet) yako, wanaweza kutumia tokeni hizo zote hata kama umetoa fedha zako kutoka kwenye jukwaa lao na kuzirudisha kwenye mkoba wako. Wafanya maovu bado wanaweza kufikia fedha zako na kuzitoa kuzipeleka hadi kwenye mikoba yao bila wewe kuwa na njia yoyote ya kuzirejesha. + +Ulinzi pekee ni kujiepusha kutumia miradi mipya ambayo haijajaribiwa, idhinisha kile unachohitaji tu, au futa mara kwa mara ruhusa ulizozitoa awali. Sasa, jinsi gani unaweza fanya ivyo? + +## Hatua 1: Tumia kifaa cha kubatilisha zana ya ufikiaji + +Kuna tovuti kadhaa zinazokuwezesha kuona na kubatilisha mikataba mahiri iliyounganishwa na anwani yako. Tembelea tovuti na unganisha mkoba wako: + +- [Etherscan](https://etherscan.io/tokenapprovalchecker) (Ethereum) +- [Blockscout](https://eth.blockscout.com/apps/revokescout) (Ethereum) +- [Revoke](https://revoke.cash/) (mitandao mingi) +- [Unrekt](https://app.unrekt.net/) (mitandao mingi) +- [EverRevoke](https://everrise.com/everrevoke/) (mitandao mingi) + +## Hatua 2: Unganisha mkoba wako + +Ukiwa tayari kwenye tovuti, bonyeza kwenye "Unganisha mkoba". Tovuti itakuletea wewe uunganishe mkoba wako. + +Hakikisha kuwa unatumia mtandao mmoja kwenye mkoba wako na tovuti. Utaona tu mikataba mahiri inayohusiana na mtandao uliochagua. Kwa mfano, kama unaunganisha Ethereum Mainnet, utaona tu mikataba ya Ethereum, na sio mikataba kutoka kwenye minyororo mingine kama Polygon. + +## Hatua 3: Chagua mkataba mahiri unaotaka kuubatilisha + +Unatakiwa kuona mikataba yote ambayo imeruhusiwa kuunganishwa na tokeni zako na kiasi chake cha matumizi. Tafuta ule unaotaka kusitisha. + +Kama hujui mkataba upi wa kuchagua, unaweza batilisha mikataba yote. Haitakuletea matatizo yoyote, lakini utahitaji kutoa ruhusa mpya tena wakati mwingine utakaposhirikiana na yoyote kati ya mikataba hii. + +## Hatua 4: Batilisha ruhusa ya kuweza kufikia fedha zako + +Mara tu unapobonyeza kubatilisha, unapaswa kuona pendekezo jipya la muamala kwenye mkoba wako. Hii ni ya kutarajiwa. Itabidi ulipe ada ili kufuta huko kufanikiwe. Kutegemea na mtandao, hii inaweza kuchukua kuanzia dakika moja hadi kadhaa ili kuchakatwa. + +Tunakushauri uonyeshe upya chombo cha kubatilisha ruhusa baada ya dakika chache na kuunganisha tena mkoba wako ili kuangalia mara mbili kama mkataba uliotolewa umepotea kutoka kwenye orodha. + +Tunapendekeza kamwe usiruhusu miradi ufikiaji usio na kikomo kwa tokeni zako na ughairi ruhusa zote za ufikiaji wa tokeni mara kwa mara. Kughairi ufikiaji wa tokeni kamwe hakupaswi kusababisha upotevu wa fedha, hasa ukitumia zana zilizoorodheshwa hapo juu. + +
+ + + + +
Unataka kujifunza zaidi?
+ + Angalia miongozo yetu mingine + +
+
+ +## Maswali yanayoulizwa mara kwa mara + +### Je, kubatilisha ufikiaji wa tokeni pia kunakomesha kusindika, kuweka kwa pamoja kwenye bwawa, kukopesha n.k? + +Hapana, haitaathiri mikakati yoyote ya [DeFi](/glossary/#defi) uliyonayo. Bado utabaki katika nafasi zako na kuendelea kupata zawadi n.k. + +### Je, kukata muungano wa mkoba kutoka kwenye mradi ni sawa na kuondoa ruhusa ya kutumia pesa zangu? + +Hapana, ukiondoa mkoba wako kwenye mradi, lakini tayari umetoa ruhusa ya kutumia tokeni, bado wanaweza kutumia tokeni hizo. Inakupasa kubatilisha ruhusa hiyo. + +### Ruhusa ya mkataba itakwisha lini? + +Hakuna tarehe ya mwisho wa matumizi kwenye ruhusa za mkataba. Kama utatoa ruhusa ya mkataba, zinaweza kutumika, hata miaka mingi baada ya kutolewa. + +### Kwa nini miradi huweka ruhusa ya matumizi ya tokeni isiyo na kikomo? + +Miradi mara nyingi hufanya hivi ili kupunguza idadi ya maombi yanayohitajika, ikimaanisha mtumiaji anapaswa kuidhinisha mara moja tu na kulipa ada ya muamala mara moja tu. Ingawa hii ni rahisi, inaweza kuwa hatari kwa watumiaji kuidhinisha bila uangalifu, hasa kwenye tovuti ambazo hazijathibitishwa na wakati au kukaguliwa. Baadhi ya mikoba hukuruhusu kuzuia mwenyewe kiasi cha tokeni zinazoidhinishwa ili kupunguza hatari yako. Wasiliana na mtoa huduma wa mkoba wako kwa maelezo zaidi. diff --git a/public/content/translations/sw/guides/how-to-swap-tokens/index.md b/public/content/translations/sw/guides/how-to-swap-tokens/index.md new file mode 100644 index 00000000000..493f3f384fa --- /dev/null +++ b/public/content/translations/sw/guides/how-to-swap-tokens/index.md @@ -0,0 +1,70 @@ +--- +title: Jinsi ya kubadili tokeni +description: Muongozo wa jinsi ya kubadilisha tokeni kwenye Ethereum. +lang: sw +--- + +# Jinsi ya kubadili tokeni + +Umechoshwa na kutafuta soko ambalo linaorodhesha tokeni zako zote uzipendazo? Unaweza kubadilishana tokeni nyingi kwa kutumia [masoko ya kubadilishana yasiyogatuliwa](/glossary/#dex). + +Kubadilishana tokeni kunahusisha ubadilishanaji wa mali mbili tofauti zilizopo kwenye mtandao wa Ethereum, kwa mfano kubadilishana ETH kwa DAI (tokeni ya [ERC-20](/glossary/#erc-20)). Mchakato huu ni wa haraka na bei nafuu. Utahitaji kuwa na mkoba wa kripto kubadilisha tokeni. + +**Vigezo vya Awali:** + +- kuwa na [mkoba wa kripto](/glossary/#wallet); kama huna, unaweza kufuata mwongozo huu kuhusu [jinsi ya kufungua akaunti ya Ethereum](/guides/how-to-create-an-ethereum-account/) +- weka fedha kwenye mkoba wako + +## 1. Unganisha mkoba wako kwenye soko la kubadilishana tokeni lililoondolewa mfumo wa kati (DEX) unalolipenda + +Baadhi ya masoko maarufu ya kubadilishana ni: + +- [Uniswap](https://app.uniswap.org/#/swap) +- [Sushiswap](https://www.sushi.com/swap) +- [1Inch](https://app.1inch.io/#/1/unified/swap/ETH/DAI) +- [Curve](https://www.curve.finance/dex/ethereum/swap/) + +Inavutia? Jifunze zaidi kuhusu [fedha zilizogatuliwa (DeFi)](/defi/) ni nini na jinsi aina hizi mpya za masoko ya kubadilishana zinavyofanya kazi. + +## 2. Chagua jozi ya tokeni unazotaka kubadilisha + +Kwa mfano, ETH na DAI. Hakikisha una fedha kati ya mojawapo ya tokeni hizo mbili. +![Kiolesura cha kawaida cha kubadilishana](./swap1.png) + +## 3. Ingiza kiasi cha tokeni unachotaka kubadilisha na bonyeza badilisha + +Soko la kubadilishana litahesabu kiotomatiki idadi ya tokeni utakazopata. + +![Kiolesura cha kawaida cha kubadilishana](./swap2.png) + +## 4. Thibitisha muamala + +Hakiki maelezo ya muamala. Kagua kiwango cha ubadilishaji na ada zingine zozote ili kuzuia mshangao mbaya. + +![Kiolesura cha kawaida cha kukagua muamala](./swap3.png) + +## 5. Subiri muamala uchakatwe + +Unaweza kuona maendeleo ya muamala kwenye kipelelezi cha kiambajengo chochote. Mchakato huu hautakiwi kuchukua muda zaidi ya dakika 10. + +Utapokea kiotomatiki tokeni ulizobadilisha kwenye mkoba wako mara tu muamala utakapochakatwa.
+ + + + +
Unataka kujifunza zaidi?
+ + Angalia miongozo yetu mingine + +
+
+ +## Maswali yanayoulizwa mara kwa mara + +### Je, ninaweza kubadilisha ETH kwa BTC kutoka kwenye mkoba wangu? + +Hapana, unaweza tu kubadilisha tokeni ambazo ni za asili ya mtandao wa Ethereum, kama vile ETH, tokeni za ERC-20 au NFTs. Unaweza tu kubadilisha aina za Bitcoin zilizofungwa ambazo zinapatikana kwenye Ethereum. + +### Slippage ni nini? + +Ni tofauti kati ya kiwango chako cha ubadilishaji unachotarajia na kiwango halisi. diff --git a/public/content/translations/sw/guides/how-to-use-a-bridge/index.md b/public/content/translations/sw/guides/how-to-use-a-bridge/index.md new file mode 100644 index 00000000000..3a4988307d3 --- /dev/null +++ b/public/content/translations/sw/guides/how-to-use-a-bridge/index.md @@ -0,0 +1,72 @@ +--- +title: Jinsi ya kuvusha tokeni kwenda safu ya namba 2 +description: Mwongozo unaoelezea jinsi ya kuhamisha ishara kutoka Ethereum hadi safu ya 2 kwa kutumia daraja. +lang: sw +--- + +# Jinsi ya kuvusha tokeni kwenda safu ya namba 2 + +Ikiwa kuna trafiki nyingi kwenye Ethereum, inaweza kuwa ghali. Suluhisho moja kwa hili ni kuunda "safu" mpya: yaani, mitandao tofauti ambayo inafanya kazi kwa njia zinazofanana na Ethereum yenyewe. Hizi zinazoitwa Tabaka 2 husaidia kupunguza msongamano na gharama kwa Ethereum kwa kuchakata miamala mingi zaidi kwa ada za chini, na kuhifadhi tu matokeo ya haya kwenye Ethereum kila baada ya muda fulani. Kwa hivyo, tabaka hizi za 2 hutuwezesha kufanya shughuli kwa kasi iliyoongezeka na gharama iliyopungua. Miradi mingi maarufu ya crypto inahamia safu ya 2 kwa sababu ya faida hizi. Njia rahisi zaidi ya kuhamisha tokeni kutoka Ethereum hadi safu ya 2 ni kutumia daraja. + +**Vigezo vya Awali:** + +- kuwa na mkoba wa crypto—kama huna, fuata mwongozo huu ili [kufungua akaunti ya Ethereum](/guides/how-to-create-an-ethereum-account/) +- weka fedha kwenye mkoba wako + +## 1. Amua ni mtandao wa safu ya 2 ungependa kutumia + +Unaweza kujifunza zaidi kuhusu miradi tofauti na viungo muhimu kwenye [ukurasa wetu wa safu ya 2](/layer-2/) + +## 2. Nenda kwenye daraja liliyochaguliwa + +Baadhi ya safu 2s maarufu ni: + +- [daraja la Arbitrum](https://portal.arbitrum.io/bridge?l2ChainId=42161) +- [daraja la Optimism](https://app.optimism.io/bridge/deposit) +- [daraja la Boba Network](https://hub.boba.network/) + +## 3. Unganisha kwenye daraja na mkoba wako + +Hakikisha kuwa mkoba wako umeunganishwa kwenye mtandao wa Ethereum Mainnet. Ikiwa sivyo, tovuti itakuhimiza kiotomatiki kubadili mitandao. + +![Kiolesura cha kawaida cha kuunganisha tokeni](./bridge1.png) + +## 4. Taja kiasi na uhamishe fedha + +Kagua kiasi ambacho utapata kwa kurudi kwenye mtandao wa safu ya 2 na ada ili kuepuka mshangao usio na furaha. + +![Kiolesura cha kawaida cha kuunganisha tokeni](./bridge2.png) + +## 5. Thibitisha muamala kwenye mkoba wako + +Utalazimika kulipa ada (inayoitwa [gesi](/glossary/#gas)) katika mfumo wa ETH kwa ajili ya kuchakata muamala. + +![Kiolesura cha kawaida cha kuunganisha tokeni](./bridge3.png) + +## 6. Subiri pesa zako zihamishwe + +Utaratibu huu haupaswi kuchukua zaidi ya dakika 10. + +## 7. Ongeza mtandao wa safu ya 2 uliochaguliwa kwenye mkoba wako (hiari) + +Unaweza kutumia [chainlist.org](http://chainlist.org) kupata maelezo ya RPC ya mtandao. Mara tu mtandao unapoongezwa na muamala kukamilika, unapaswa kuona tokeni kwenye mkoba wako.
+ + + + +
Unataka kujifunza zaidi?
+ + Angalia miongozo yetu mingine + +
+
+ +## Maswali yanayoulizwa mara kwa mara + +### “Itakuwaje kama nina fedha kwenye ubadilishaji? + +“Huenda ukaweza kutoa fedha moja kwa moja kwenda kwenye baadhi ya safu 2s kutoka kwenye ubadilishaji.” Angalia sehemu ya "Hamia safu ya 2" ya [ukurasa wetu wa Safu ya 2](/layer-2/) kwa maelezo zaidi. + +### “Je, naweza kurudi kwenye Ethereum mainnet baada ya kuhamisha tokeni zangu kwenda L2?” + +“Ndiyo, unaweza kila wakati kuhamisha fedha zako kurudi kwenye mainnet ukitumia daraja lile lile.” diff --git a/public/content/translations/sw/guides/how-to-use-a-wallet/index.md b/public/content/translations/sw/guides/how-to-use-a-wallet/index.md new file mode 100644 index 00000000000..176192b776a --- /dev/null +++ b/public/content/translations/sw/guides/how-to-use-a-wallet/index.md @@ -0,0 +1,91 @@ +--- +title: Jinsi ya kutumia pochi +metaTitle: Jinsi ya kutumia Pochi za Ethereum | Hatua kwa Hatua +description: Mwongozo unaoelezea jinsi ya kutuma, kupokea tokeni na kuunganisha kwa miradi ya web3. +lang: sw +--- + +# Jinsi ya kutumia pochi + +Pata maelezo ya jinsi ya kutumia vipengele vyote vya msingi vya pochi. Ikiwa bado huna, angalia [Jinsi ya kuunda akaunti ya Ethereum](/guides/how-to-create-an-ethereum-account/). + +## Fungua pochi yako + +Unapaswa kuona dashibodi ambayo itaonyesha salio lako na iwe na vitufe vya kutuma na kupokea tokeni. + +## Pokea sarafu za kidikitali + +Je! ungependa kupokea sarafu ya kidigitali kwenye pochi yako? + +Kila akaunti ya Ethereum ina anwani yake ya kupokea ambayo ni mlolongo wa kipekee wa nambari na barua. Anwani hufanya kazi kama nambari ya akaunti ya benki. Anwani za Ethereum zitaanza na "0x" kila wakati. “Unaweza kushirikisha anwani hii na mtu yeyote: ni salama kufanya hivyo.” + +Anwani yako ni kama anwani yako ya nyumbani: unahitaji kuwaambia watu ni nini ili wakupate. “Ni salama kufanya hivi, kwa sababu bado unaweza kufunga mlango wako wa mbele kwa ufunguo mwingine unaoudhibiti wewe pekee ili asiweze kuingia mtu yeyote, hata kama anajua unapoishi.” + +Unahitaji kumpa yeyote anayetaka kukutumia pesa na anwani yako ya umma. Programu nyingi za pochi hukuruhusu kunakili anwani yako au kuonyesha msimbo wa QR ili kuchanganua kwa matumizi rahisi. “Epuka kuandika anwani yoyote ya Ethereum kwa mkono.” Hii inaweza kusababisha makosa ya ukarani kwa urahisi na kupoteza pesa. + +“Programu tofauti zinaweza kutofautiana au kutumia lugha tofauti, lakini zinapaswa kukuongoza kupitia mchakato unaofanana ikiwa unajaribu kuhamisha fedha.” + +1. Fungua programu yako ya pochi. +2. “Bofya kwenye ‘Pokea’ (au chaguo linalofanana nalo kwa maneno).” +3. Nakili anwani yako ya Ethereum kwenye ubao wa kunakili. +4. Mpe mtumaji anwani yako ya kupokea ya Ethereum. + +## Tuma sarafu ya kidigitali + +Je, ungependa kutuma ETH kwa pochi nyingine? + +1. Fungua programu yako ya pochi. +2. Pata anwani ya kupokea na uhakikishe kuwa umeunganishwa kwenye mtandao sawa na mpokeaji. +3. Weka anwani ya kupokea au changanua msimbo wa QR ukitumia kamera yako ili usilazimike kuandika anwani kwa mkono. +4. Bofya kwenye kitufe cha "Tuma" kwenye pochi yako (au njia mbadala iliyo na maneno sawa). + +![Uga wa kutuma kwa anwani ya sarafu ya kidigitali](./send.png)
+ +5. “Mali nyingi, kama DAI au USDC, zipo kwenye mitandao mbalimbali.” Wakati wa kuhamisha tokeni za sarafu za kidigitali, hakikisha kwamba mpokeaji anatumia mtandao sawa na wewe, kwa kuwa hizi hazibadilishwi. +6. Hakikisha kuwa pochi yako ina ETH ya kutosha kulipia ada ya muamala, ambayo inatofautiana kulingana na hali ya mtandao. Pochi nyingi zitaongeza kiotomatiki ada iliyopendekezwa kwenye shughuli ambayo unaweza kuthibitisha. +7. Muamala wako ukishachakatwa, kiasi kinacholingana cha sarafu ya kidigitali kitaonekana kwenye akaunti ya mpokeaji. Hii inaweza kuchukua popote kutoka sekunde chache hadi dakika chache kulingana na kiasi gani mtandao unatumika kwa sasa. + +## Kuunganisha kwa miradi + +Anwani yako itakuwa sawa katika miradi yote ya Ethereum. Huhitaji kujiandikisha kibinafsi kwenye mradi wowote. Mara tu ukiwa na pochi, unaweza kuunganisha kwenye mradi wowote wa Ethereum bila maelezo yoyote ya ziada. Hakuna barua pepe au taarifa nyingine yoyote ya kibinafsi inahitajika. + +1. Tembelea tovuti ya mradi wowote. +2. Ikiwa ukurasa wa mwanzo wa mradi ni maelezo tuli ya mradi, unapaswa kubofya kitufe cha "Fungua Programu" kwenye menyu ambayo itakuelekeza hadi kwenye programu halisi ya wavuti. +3. “Mara tu ukiwa kwenye programu, bofya kwenye ‘Unganisha’.” + +![Kitufe kinachomruhusu mtumiaji kuunganisha kwenye tovuti kwa kutumia mkoba](./connect1.png) + +4. “Chagua pochi yako kutoka kwenye orodha ya chaguo zilizotolewa.” Ikiwa huwezi kuona pochi yako, inaweza kufichwa chini ya chaguo la "muunganisho wa pochi". + +![Kuchagua kutoka kwenye orodha ya mikoba ya kuunganisha nayo](./connect2.png) + +5. Thibitisha ombi la saini kwenye pochi yako ili kubaini muunganisho. **Kusaini ujumbe huu hakupaswi kuhitaji kutumia ETH yoyote**. +6. Ni hayo tu! Anza kutumia programu. Unaweza kupata baadhi ya miradi ya kuvutia kwenye ukurasa wetu wa [mfumo mtawanyo wa kimamlaka](/apps/#explore).
+ + + + +
Unataka kujifunza zaidi?
+ + Angalia miongozo yetu mingine + +
+
+ +## Maswali yanayoulizwa mara kwa mara + +### Ikiwa ninamiliki anwani ya ETH, nawezaje miliki anwani sawa kwenye blockchain zingine? + +“Unaweza kutumia anwani ile ile kwenye kiambajengo zote zinazolingana na EVM (ikiwa una pochi ya aina iliyo na kifungu cha urejeshaji.” Hii [orodha](https://chainlist.org/) itakuonyesha minyororo ya bloku ambazo unaweza kutumia na anwani sawa. Baadhi mlolongo wa vitalu, kama Bitcoin, kutekeleza seti tofauti kabisa ya Mtandao Kanuni na unahitaji anwani tofauti na muundo tofauti. Ikiwa una mkoba mzuri wa mkataba unapaswa kuangalia tovuti ya bidhaa zake kwa maelezo zaidi kuhusu viambajengo vinazotumika. + +### Je, ninaweza kutumia anwani ileile kwenye vifaa vingi? + +“Ndiyo, unaweza kutumia anwani ile ile kwenye vifaa vingi. Pochi kitaalamu ni kiolesura cha kukuonyesha salio lako na kufanya miamala, akaunti yako haihifadhiwi ndani ya pochi, bali kwenye kiambajengo. + +### Sijapokea sarafu ya kidigitali, ni wapi ninaweza kuangalia hali ya muamala? + +Unaweza kutumia [wachunguzi wa bloku](/developers/docs/data-and-analytics/block-explorers/) kuona hali ya muamala wowote kwa wakati halisi. Unachohitaji kufanya ni kutafuta anwani ya pochi yako au kitambulisho cha muamala. + +### Je, ninaweza kufuta au kurejesha miamala? + +“Hapana, mara tu muamala unapo thibitishwa, huwezi kuufuta.” diff --git a/public/content/translations/sw/guides/index.md b/public/content/translations/sw/guides/index.md new file mode 100644 index 00000000000..a3c81310213 --- /dev/null +++ b/public/content/translations/sw/guides/index.md @@ -0,0 +1,27 @@ +--- +title: Miongozo ya Ethereum +description: Mkusayinko wa miongozo ya kutekeleza yananoeleza mambo ya kimsingi kwa wanaoanza kutumia Ethereum. +lang: sw +--- + +# Miongozo ya Ethereum + +Ungependa kuanza safari yako ya Ethereum? Miongonzo yetu ya mazoezi ya vitendo yanatakuongoza hatua baada ya hatua jinsi ya kuanza, na itakurahisishia kujielekeza katika teknologia hii mpya. + +## Anza + +1. [Jinsi ya "kuunda" akaunti ya Ethereum](/guides/how-to-create-an-ethereum-account/) - Mtu yeyote anaweza kuunda mkoba bure. Mwongozo huu utakuonyesha pahali utakapoanza. + +2. [Jinsi ya kutumia mkoba](/guides/how-to-use-a-wallet/) - Jifunze jinsi ya kutuma na kupokea tokeni kwenye mkoba wako na jinsi ya kuunganisha mkoba kwenye miradi. + +## Misingi ya Usalama + +1. [Jinsi ya kubatilisha ufikiaji wa mkataba-erevu kwa fedha zako za crypto](/guides/how-to-revoke-token-access/) - Ikiwa utaona muamala ghafla kwenye mkoba wako ambao hukuanzisha, mwongozo huu utakufundisha jinsi ya kuzuia hilo lisitokee tena. + +2. [Jinsi ya kutambua tokeni tapeli](/guides/how-to-id-scam-tokens/) - Tokeni tapeli ni nini? Yanajifanya asili namna gani, utayambua na kujikinga na kuepuka kutapeliwa kivipi? + +## Utumizi wa Ethereum + +1. [Jinsi ya kuunganisha tokeni kwenye safu ya 2](/guides/how-to-use-a-bridge/) - Je, miamala ya Ethereum ni ghali sana? Kusudia kuelekeza shughuli za upanuzi wa Ethereum zinazoitwa Kiwango 2s. + +2. [Jinsi ya kubadilisha tokeni](/guides/how-to-swap-tokens/) - Je, unataka kubadilisha tokeni zako na nyingine tofauti? Mwongozo huu rahisi utakuonyesha jinsi ya kufanya hivyo. diff --git a/public/content/translations/sw/nft/index.md b/public/content/translations/sw/nft/index.md index 3b79861acbe..9b59418d40d 100644 --- a/public/content/translations/sw/nft/index.md +++ b/public/content/translations/sw/nft/index.md @@ -1,5 +1,6 @@ --- title: Tokeni zisizoweza kubadilishwa(NFTs) +metaTitle: Nini ni NFTs? | Faida na matumizi description: Muhtasari wa NFT kwenye Ethereum lang: sw template: use-cases @@ -14,28 +15,28 @@ summaryPoint3: Inaendeshwa na mikataba erevu kwenye mnyororo wa bloku wa Ethereu ## Nini ni NFTs? {#what-are-nfts} -Tokeni zisizoweza kubadilishwa(NFTs) ni tokeni ambazo **kila moja ni ya kipekee**. Kila NFT ina sifa tofauti (haziwezi kubadilishwa) na ni chache. Hii ni tofauti kutokana na tokeni kama [ETH](/glossary/#ether) au Ethereum nyinginezo ukizingatia tokeni kama USDC ambapo kila tokeni ni sawa na ina vipengele sawa('ya kujirudia'). Hutojali ni noti gani ya dola (au ETH) unayo kwenye pochi lako, kwa sababu zote zinafanana na zina thamani sawa. Hata hivyo, _unajali_ NFT unayomiliki, kwa sababu zote huwa na sifa zao za binafsi na unaweza kuzitofautisha kutoka kwa nyingine ('haziwezi kuigwa'). +NFT ni tokeni ambazo ni **za kipekee kivyake**. Kila NFT ina sifa tofauti (haziwezi kubadilishwa) na ni chache. Hii ni tofauti na tokeni kama vile [ETH](/glossary/#ether) au tokeni zingine zinazotumia Ethereum kama vile USDC ambapo kila tokeni inafanana na ina sifa sawa ('fungible'). Hutojali ni noti gani ya dola (au ETH) unayo kwenye pochi lako, kwa sababu zote zinafanana na zina thamani sawa. Hata hivyo, wewe _unajali_ ni NFT gani maalum unayomiliki, kwa sababu zote zina sifa za kibinafsi zinazozitofautisha na zingine ('non-fungible'). -Upekee wa kila NFT ni kuwezesha ishara ya vitu kama sanaa, vitu vinavyokusanywa ama mali isiyohamishika, ambapo kila NFT huwakilisha ulimwengu halisi ama bidhaa ya kidijitali. Umiliki wa mali uko wazi kuhakikishwa na umma kwenye [kiambajengo](/glossary/#blockchain) cha Ethereum. +Upekee wa kila NFT ni kuwezesha ishara ya vitu kama sanaa, vitu vinavyokusanywa ama mali isiyohamishika, ambapo kila NFT huwakilisha ulimwengu halisi ama bidhaa ya kidijitali. Umiliki wa rasilimali unaweza kuthibitishwa hadharani kwenye [blockchain](/glossary/#blockchain) ya Ethereum. -## Mtandao wa mali {#internet-of-assets} +## Mtandao wa rasilimali {#internet-of-assets} -Tokeni zisizoweza kuigwa na Ethereum husuluhisha shida zinazokuwepo kwenye mtandao leo. Kwa kuwa kila kitu kinakuwa cha kidijitali, kuna haja ya kuiga sifa za vitu halisi kama uhaba, upekee na ushahidi wa umiliki kwa njia ambayo umiliki audhibitiwi na shirika la kati. Kwa mfano, ukiwa na NFTs unaweza kumiliki faili la muziki wa mp3 kupitia programu mahususi kwa ajili ya Ethereum na isiyo shikana na kampuni ya aina yoyote ya muziki kama Spotify au Apple music. Unaweza kumiliki kishiriki-jina cha mtandao wa kijamii ambacho unaweza kuuza au kubadilisha, lakini **aiwezi chukuliwa moja kwa moja kutoka kwako** na mtoa jukwa. +Tokeni zisizoweza kuigwa na Ethereum husuluhisha shida zinazokuwepo kwenye mtandao leo. Kwa kuwa kila kitu kinakuwa cha kidijitali, kuna haja ya kuiga sifa za vitu halisi kama uhaba, upekee na ushahidi wa umiliki kwa njia ambayo umiliki audhibitiwi na shirika la kati. Kwa mfano, ukiwa na NFTs unaweza kumiliki faili la muziki wa mp3 kupitia programu mahususi kwa ajili ya Ethereum na isiyo shikana na kampuni ya aina yoyote ya muziki kama Spotify au Apple music. Unaweza kumiliki jina la mtandao wa kijamii ambalo unaweza kuuza au kubadilisha, lakini **haliwezi kuchukuliwa kutoka kwako kiholela** na mtoa huduma wa jukwaa. Hivi ndivyo mtandao wa NFT unafanya kazi ukilinganisha na mtandao ambao wengi wengi tunatumia leo... -### Ulinganisho {#nft-comparison} +### Mlinganisho {#nft-comparison} -| Mtandao wa NFT | Intaneti ya leo | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Unamiliki mali zako!** Wewe pekee ndio unaweza kuuza au kuzibadilisha. | **Ukikodisha mali zako** kwa baadhi ya mashirika na inaweza ikachukuliwa mja kwa moja kutoka kwako. | -| NFT zina **sifa za kipekee za kidijitlai**, hakuna NFT mbili zitakazofanana. | **Mara nyingi nakala haiwezi kutofautishwa** na ya asili. | -| Umiliki wa NFT unawekwa kwenye blockchain ili kila mtu kuweza**thibitisha hadharani**. | Upatikanaji wa rekodi za umiliki wa vitu vya kidijitali **unadhibitiwa na taasisi** - unapaswa kuamini wnachosema.". | -| NFT ni [mikataba erevu kwenye](/glossary/#smart-contract) Ethereum. Hii inamaana kuwa **zinaweza kutumika kwenye mikataba erevu mingine** na programu kwenye Ethereum! | Kampuni zenye bidhaa za kidigitali kawaida **huhitaji kuwa na "ukingo imara wa ulinzi wa miundo mbinu**". | -| **Waunda maudhui wanaweza kuuza kazi zao sehemu yoyote** na kufikia soko la ulimwengu mzima. | Waundaji wanategemea miundombinu na usambazaji wa majukwaa wanayotumia. Mara nyingi hili hufuata sheria na masharti na **vizuizi vya kijiografia**. | -| Watengenezaji wa NFT **wanaweza kuhifadhi haki za kazi** na mirabaha ya programu zao moja kwa moja kwenye mkataba wa tokeni zisizojirudia. | Majukwaa kama ya huduma za **kusikiliza muziki, yanapata faida nyingi kutoka kwenye mauzo**. | +| Mtandao wa NFT | Intaneti ya leo | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Unamiliki rasilimali zako!** Ni wewe tu unaweza kuziuza au kuzibadilisha. | **Unakodisha rasilimali** kutoka kwa shirika fulani na inaweza kuchukuliwa kutoka kwako. | +| NFTs ni **za kipekee kidijitali**, hakuna NFT mbili zinazofanana. | **Mara nyingi nakala haiwezi kutofautishwa** na ile ya asili. | +| Umiliki wa NFT huhifadhiwa kwenye blockchain ili mtu yeyote aweze **kuthibitisha hadharani**. | Upatikanaji wa rekodi za umiliki wa vitu vya kidijitali **unadhibitiwa na taasisi** – ni lazima uwaamini wanachosema. | +| NFT ni [mikataba-erevu](/glossary/#smart-contract) kwenye Ethereum. Hii inamaanisha **zinaweza kutumika kwa urahisi katika mikataba-erevu mingine** na programu kwenye Ethereum! | Kampuni zilizo na bidhaa za kidijitali kwa kawaida **huhitaji miundombinu yao wenyewe ya "bustani iliyozungushiwa ukuta"**. | +| Waumbaji wa **maudhui wanaweza kuuza kazi zao popote** na wanaweza kufikia soko la kimataifa. | Waundaji wanategemea miundombinu na usambazaji wa majukwaa wanayotumia. Hizi mara nyingi hutegemea masharti ya matumizi na **vikwazo vya kijiografia**. | +| Waumbaji wa NFT **wanaweza kubaki na haki za umiliki** juu ya kazi zao wenyewe, na kuweka mirabaha ya programu moja kwa moja kwenye mkataba wa NFT. | Majukwaa, kama vile huduma za **kutiririsha muziki, hubaki na faida kubwa zaidi kutokana na mauzo**. | ## NFT zinatumika kufanya nini? {#nft-use-cases} @@ -50,41 +51,41 @@ NFT hutumika kwa mambo mengi, ikiwa ni pamoja na: - kuzuia ufikiaji wa maudhui - ukataji tiketi - majina ya kikoa kwenye intaneti iliyogatuliwa -- dhamana katika [uchumi gatuzi](/glossary/#defi) +- dhamana katika [fedha zilizogatuliwa (DeFi)](/glossary/#defi) -Labda wewe ni msanii amabaye angependa kushiriki kazi yake kupitia NFT bila wewe kupoteza udhibiti ama kuwapa waamuzi faida zako. Wewe unaweza kutengeneza mkataba mpya na kuweka bayana hesabu ya NFT, vipengele vyao na kiungo chao kwa kazi mahususi ya sanaa. Kama msanii, **unaweza kuprogramu ndani ya mkataba-erevu mrabaha** unaofaa kulipwa (kwa mfano hamisha 5% ya bei ya mauzo kwa mwenye mkataba kila wakati tokeni inapohamishwa). Vile vile unaweza kuthibitisha kwamba wewe ndiwe umetengeneza NFT kwa sababu wewe ndiwe mmiliki wa [mkoba](/glossary/#wallet) iliyotuma mkataba huo. Wanunuzi wako wanaweza kuthibitisha kwa urahisi kwamba wao ndio wamiliki wa **NFT halisi** kutoka kwenye mkusanyiko wako kwa sababu pochi yao ya[anwani](/glossary/#address) ya mkoba zao inashirikishwa na tokeni kutoka kwenye mkataba wako. Wanaweza kuitumia katika mfumo wa ikologia ya Ethereum, inayoaminika kwa uhalisi wake. +Labda wewe ni msanii amabaye angependa kushiriki kazi yake kupitia NFT bila wewe kupoteza udhibiti ama kuwapa waamuzi faida zako. Wewe unaweza kutengeneza mkataba mpya na kuweka bayana hesabu ya NFT, vipengele vyao na kiungo chao kwa kazi mahususi ya sanaa. Kama msanii, **unaweza kupanga mirabaha utakayolipwa kwenye mkataba-erevu** (k.m., hamisha 5% ya bei ya mauzo kwa mmiliki wa mkataba kila wakati NFT inapohamishwa). Unaweza pia kuthibitisha kila wakati kuwa umeunda NFT kwa sababu unamiliki [mkoba](/glossary/#wallet) uliotumia mkataba. Wanunuzi wako wanaweza kuthibitisha kwa urahisi kuwa wanamiliki **NFT halisi** kutoka kwa mkusanyiko wako kwa sababu [anwani](/glossary/#address) ya mkoba wao inahusishwa na tokeni katika mkataba-erevu wako. Wanaweza kuitumia katika mfumo wa ikologia ya Ethereum, inayoaminika kwa uhalisi wake.
Chunguza, nunu au tengeneza sanaa ya NFT...
- Chunguza sanaa ya NFT + Gundua sanaa ya NFT
-Ama zingatia tiketi ya tukio ya mechi ijayo. Kama **mratibu wa matukio anavyoweza kuamua idadi ya tiketi za kuuza**, muundaji wa NFT anaweza kuamua idadi ya kuwepo kwa nakala za kazi yake. Wakati mwingine huwa na nakala za ziada, kama vile Tiketi 5000 za Kiingilio cha Jumla. Wakati mwingine nyingine zinachapishwa zinazofanana, ila kila moja ina tofauti ndogo na yenzake, kama vile tiketi yeneye nambari ya kiti. Hizi zinaweza kununuliwa na kuuzwa kutoka kwa mshirika mmoja mpaka kwa mwingine kusipokuwepo na ulipaji wa washikaji tiketi na wanunuzi watakuwa na uhakika wa tiketi halisi kwa kuangalia anwani ya mkataba huo. +Ama zingatia tiketi ya tukio ya mechi ijayo. Kama vile **mratibu wa tukio anavyoweza kuchagua ni tiketi ngapi za kuuza**, muumbaji wa NFT anaweza kuamua ni nakala ngapi zitakuwepo. Wakati mwingine huwa na nakala za ziada, kama vile Tiketi 5000 za Kiingilio cha Jumla. Wakati mwingine nyingine zinachapishwa zinazofanana, ila kila moja ina tofauti ndogo na yenzake, kama vile tiketi yeneye nambari ya kiti. Hizi zinaweza kununuliwa na kuuzwa kutoka kwa mshirika mmoja mpaka kwa mwingine kusipokuwepo na ulipaji wa washikaji tiketi na wanunuzi watakuwa na uhakika wa tiketi halisi kwa kuangalia anwani ya mkataba huo. -Kwenye ethereum.org tokeni zisizojirudia zinatumika kuonyesha kuwa watu wana maana nzuri ya kuchangia kupitia ripositi ya Github (programu tovuti, maandiko au kurekebisha chapisho...), tafsiri maudhui yetu, au uzuria simu za jamii yetu, na pia hata tunayo jina la tovuti yetu la tokeni zisizojirudia. Ukichangia kwenye ethereum.org, unaweza kuchukua tokeni isiyojirudia ya [POAP](/glossary/#poap). Mikutano mingine ya sarafu za kidijitali imetumia POAPs kama tiketi. [Zaidi juu ya uchangiaji](/contributing/#poap). +Katika ethereum.org, **NFTs hutumika kuonyesha kwamba watu wamechangia kwa dhati** kwenye hazina yetu ya GitHub (wamepanga tovuti, wameandika au kurekebisha makala...), wametafsiri maudhui yetu, au wamehudhuria simu zetu za jumuiya, na hata tuna jina letu la kikoa la NFT. Ukichangia ethereum.org, unaweza kudai [POAP](/glossary/#poap) NFT. Mikutano mingine ya sarafu za kidijitali imetumia POAPs kama tiketi. [Zaidi kuhusu kuchangia](/contributing/#poap). ![POAP za ethereum.org](./poap.png) -Tovuti hii pia inatumia jina mbadala la kikoa linaloendeshwa na NFT, **ethereum.eth**. Anwani yetu ya `.org` inasimamiwa na mfumo wa majina wa kati/jadi(DNS), wakati ethereum`.eth` imesajiliwa kwenye huduma za majina ya Ethereum (ENS). Na hii linamilikiwa na kuendeshwa na sisi. [Angalia rekodi zetu za ENS](https://app.ens.domains/name/ethereum.eth) +Tovuti hii pia ina jina mbadala la kikoa linaloendeshwa na NFT, **ethereum.eth**. Anwani yetu ya `.org` inasimamiwa na mtoa huduma wa mfumo wa majina ya kikoa (DNS), ambapo ethereum`.eth` imesajiliwa kwenye Ethereum kupitia Huduma ya Majina ya Ethereum (ENS). Na hii linamilikiwa na kuendeshwa na sisi. [Angalia rekodi yetu ya ENS](https://app.ens.domains/name/ethereum.eth) -[Zaidi juu ya ENS](https://app.ens.domains) +[Zaidi kuhusu ENS](https://app.ens.domains) ## NFT zinafanyaje kazi? {#how-nfts-work} -NFT, kama vitu vyovyote vya kidijitali kwenye kiambajengo cha Ethereum, zinatengenezwa kupitia programu ya kompyuta maalumu ya Ethereum inayoitwa "mkataba erevu" Mikataba hii inafuata sheria fulani, kama viwango vya [ERC-721](/glossary/#erc-721) au [ERC-1155](/glossary/#erc-1155), ambayo inaamua mikataba hii nini inaweza kufanya. +NFT, kama bidhaa zozote za kidijitali kwenye mnyororo wa bloku wa Ethereum, zinaundwa kupitia programu maalum ya kompyuta inyotegemea Ethereum, inayoitwa "mkataba erevu". Mikataba hii hufuata sheria fulani, kama vile viwango vya [ERC-721](/glossary/#erc-721) au [ERC-1155](/glossary/#erc-1155), ambavyo huamua kile ambacho mkataba unaweza kufanya. Mikataba erevu ya NFT zinaweza kufanya vitu vichache: -- **Unda NFT**: Inaweza kuunda NFTs. -- **Weka umiliki:** Itaendelea kufuatilia mtu anayemiliki NFT kwa kuunganisha na anwani maalumu ya Ethereum. -- **Ipe kila NFT namba ya utambulisho:** NFT ina namba ambayo inaifanya kuwa ya kipeee. Cha ziada, kikawaida kuna kuwa na baadhi ya taarifa (metadata) zinazo ambatanishwa nayo, inaelezea kitu kinachoiwakilisha tokeni isiyojirudia. +- **Unda NFTs:** Inaweza kutengeneza NFTs mpya. +- **Gawa Umiliki:** Hufuatilia ni nani anamiliki NFT zipi kwa kuzihusisha na anwani maalum za Ethereum. +- **Ipe Kila NFT Kitambulisho:** Kila NFT ina namba inayoifanya kuwa ya kipekee. Cha ziada, kikawaida kuna kuwa na baadhi ya taarifa (metadata) zinazo ambatanishwa nayo, inaelezea kitu kinachoiwakilisha tokeni isiyojirudia. Wakati mtu "anatengeneza" au "kuunda" NFT, kimsingi wanaiambia mkataba erevu kuwapa wao umiliki wa NFT husika. Taarifa hii inalindwa kwa usalama na kuhifadiwa na umma kwenye blockchain. @@ -92,23 +93,24 @@ Zaidi, muundaji wa mkataba anaweza ongeza sheria nyingine za ziada. Wanaweza dhi ### Usalama wa NFT {#nft-security} -Usalama wa Ethereum unakuja kutokana na [uthibitisho-wa-dhamana](/glossary/#pos). Mfumo huu umebuniwa ili uweze kuondoa vitendo ya kihasidi kiuchumi na basi kuifanya Ethereum sugu kwa uharibifu. Hii ndiyo inayofanya NFT kuwezekana. Mara tu [bloku](/glossary/#block) yenye muamala wako wa NFT [napokamilika](/glossary/#finality), inaweza kugharimu mshambulizi mamilioni ya ETH kuibadilisha. Mtu yeyote anayetumia programu ya Ethereum anaweza kujua haraka mambo yasiyofaa ya kuhitilafiana na NFT, na mtu huyu mbaya atatozwa malipo na kuondolewa. +Usalama wa Ethereum unatokana na [uthibitisho wa hisa](/glossary/#pos). Mfumo huu umebuniwa ili uweze kuondoa vitendo ya kihasidi kiuchumi na basi kuifanya Ethereum sugu kwa uharibifu. Hii ndiyo inayofanya NFT kuwezekana. Pindi [kizuizi](/glossary/#block) chenye muamala wako wa NFT [kitakapokamilishwa](/glossary/#finality) itamgharimu mshambulizi mamilioni ya ETH kukibadilisha. Mtu yeyote anayetumia programu ya Ethereum anaweza kujua haraka mambo yasiyofaa ya kuhitilafiana na NFT, na mtu huyu mbaya atatozwa malipo na kuondolewa. Maswala ya usalama yanayohusiana na NFT sana sana yanahusiana na utapeli wa kutumia barua pepe, hatari za mkataba-erevu au makosa ya mtumiaji (kama vile kuweka wazi funguo za siri) na hivyo kufanya usalam bora wa pochi uwe muhimu sana kwa wamiliki NFT. - Maelezo zaidi kuhusu usalama + Zaidi kuhusu usalama -## Soma zaidi {#further-reading} +## Masomo zaidi {#further-reading} -- [Mwongozo wa wanaoanza na NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Januari 2020_ -- [Mfuatliliaji EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [Mwongozo wa wanaoanza kuhusu NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Januari 2020_ +- [Kifuatiliaji cha NFT cha Etherscan](https://etherscan.io/nft-top-contracts) +- [Kifuatiliaji cha NFT cha Blockscout](https://eth.blockscout.com/tokens?type=ERC-721,ERC-1155,ERC-404) - [Kiwango cha tokeni cha ERC-721](/developers/docs/standards/tokens/erc-721/) - [Kiwango cha tokeni cha ERC-1155](/developers/docs/standards/tokens/erc-1155/) -- [Vifaa na programu maarufu za NFT](https://www.ethereum-ecosystem.com/blockchains/ethereum/nfts) +- [Programu na Zana Maarufu za NFT](https://www.ethereum-ecosystem.com/blockchains/ethereum/nfts) -## Rasilimali nyingine {#other-resources} +## Rasilimali zingine {#other-resources} - [NFTScan](https://nftscan.com/) diff --git a/public/content/translations/sw/payments/index.md b/public/content/translations/sw/payments/index.md new file mode 100644 index 00000000000..7d1ccd17a0d --- /dev/null +++ b/public/content/translations/sw/payments/index.md @@ -0,0 +1,208 @@ +--- +title: Malipo ya Ethereum +metaTitle: Malipo ya Ethereum +description: Maelezo ya malipo juu ya Ethereum +lang: sw +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /images/impact_transparent.png +alt: Nembo ya Eth kuonyeshwa pamoja na kupeana mikono. +summaryPoint1: Ulimwengu ambamo pesa hutiririka kwa uhuru kama habari +summaryPoint2: Wazi na wa kimataifa, kuwezesha shughuli bila mipaka kwa kila mtu +summaryPoint3: Malipo kupokea ndani ya dakika +--- + +Kila siku, mamilioni ya watu huona tatizo hilohilo: Kuhamisha pesa kutoka nchi moja hadi nyingine huchukua muda mrefu, +ghali pesa nyingi, na mara nyingi huvunja moyo. Mfanyakazi wa kujitegemea huko Bali ngojea kwa siku nyingi ili wateja kutoka huko Mji Mpya mteja. Hii inawaathiri hasa watu katika maeneo yenye miundombinu duni ya benki, na kufanya iwe vigumu kushiriki katika uchumi wa dunia. + +Hii si ndoto ya mbali—inafanyika leo kwenye Ethereum. Wakati taasisi za jadi za kifedha zimejenga mifumo imara ya malipo kwa miongo kadhaa, mara nyingi hubaki zikifungwa na mipaka, saa za kazi, na miundombinu ya kizamani. Ethereum inatoa mtindo mpya: jukwaa la kifedha la kimataifa, la saa 24/7 linalowezesha miamala ya papo hapo na inayoweza kuratibiwa kwa mtu yeyote aliye na intaneti. + +
+ +![Nembo ya Ethereum kwenye skrini ya kompyuta](./computer.png) +
+ +## Uhamishaji pesa: uhamisho wa kimataifa wa bei nafuu {#remittances} + +Kwa mamilioni ya watu wanaofanya kazi nje ya nchi, kutuma pesa nyumbani ni hitaji la mara kwa mara. Huduma za kawaida za utumaji pesa mara nyingi huambatana na ada za juu na muda mrefu wa kushughulikiwa. Ethereum inatoa mbadala unaovutia. + + + + + + + +## Upatikanaji wa sarafu za kimataifa {#access-to-global-currencies} + +Katika nchi nyingi, mfumuko wa bei ni tatizo kubwa, mara nyingi likifuatana na upatikanaji mdogo wa sarafu za kigeni. Watu walio katika hali hii wanatatizika kuhifadhi mali zao kwani wanalazimishwa kushikilia akiba inayopoteza thamani haraka. + +Jumuiya ya Ethereum imeunda **mfumo mbadala imara wa kifedha** ambao hautegemei sera za fedha au udhibiti wa taifa lolote. + +Watumiaji wa Ethereum wanaweza kutumia **sarafu zilizowambwa na fedha halisi—tokeni ambazo kwa kawaida huunganishwa na sarafu imara kama Dola ya Marekani**. Kwa kupata na kuweka akiba katika sarafu za kidijitali za kripto, watu wanaweza kujikinga na mfumuko mkubwa wa bei katika nchi zao, hivyo kusaidia kuhifadhi au hata kukuza uwezo wao wa kununua. Hii pia huwezesha malipo rahisi kwa bidhaa na huduma, kote ndani na kimataifa. + + +Zaidi juu ya sarafu imara + + +## Kununua bidhaa na malipo ya huduma {#buying-goods-and-payment-for-services} + +Biashara nyingi zinaanza kukubali ether (ETH) na sarafu nyingine za kidijitali kama malipo. Kwa mfano: + +- **Newegg:** Muuzaji maarufu wa bidhaa za elektroniki anakubali Ethereum kwa manunuzi katika nchi zilizochaguliwa. +- **Travala.com:** Jukwaa hili la kuhifadhi nafasi za usafiri linaruhusu watumiaji kulipia hoteli na safari za ndege kwa kutumia Ethereum. +- **Shopify:** Jukwaa hili maarufu la biashara ya mtandaoni ambalo hutumika kama jukwaa la kuendesha biashara, pia hukubali malipo ya bidhaa na huduma kwa kutumia Ethereum. +- **Sotheby's:** Shirika hili hufanya biashara ya sanaa nzuri na za mapambo, vito, na vitu vya kukusanywa na huruhusu malipo kwa kutumia Ethereum na sarafu nyingine za kidigitali. + +Nchi kama El Salvador na Jamhuri ya Afrika ya Kati zimepitisha sarafu za kidijitali za kripto kama malipo halali, ivyo kufungua njia ya kukubalika kwa upana zaidi kwa malipo ya Ethereum katika miamala ya kila siku. + +Katika nchi ambazo njia zao za malipo hazipo ulimwenguni kote, suluhisho za malipo zilizounganishwa na sarafu za kidijitali zimekuwa afueni kubwa. Malipo ya usajili kwa majukwaa kama Netflix, Spotify, na kozi za elimu sasa yamerahisishwa kupitia majukwaa ya malipo ya kidijitali kama Gnosis Pay na Paypal. + + + + +
Fungua akaunti yako ya Ethereum na programu ya mkoba wa kidijitali leo.
+ +Anza sasa + +
+ +
+ +## Lipa kwa kutumia kadi za kripto za kujihifadhi {#pay-with-self-custodial-crypto-cards} + +Kadi za kripto za kujihifadhi hufanya kazi kama kutumia mkoba wako mwenyewe badala ya kufungia pesa zako kwenye kuba la mtu mwingine. Ukiwa na kadi ya kawaida, benki au mlinzi hushikilia fedha zako na kuziachilia unapotumia. Ukiwa na kadi za kujihifadhi, unabaki na udhibiti wa mali zako wakati wote—bila mtu wa kati—huku ukiwa bado unaweza kugusa au kutelezesha kidole ili kulipia kahawa, mboga, au hata safari ya ndege. + +Kadi hizi huunganishwa moja kwa moja kwenye mikoba isiyo ya kihifadhi au akaunti za mkataba-erevu, na hivyo kuruhusu watumiaji kutumia ETH na stablecoins katika mazingira ya kila siku bila kuacha umiliki. Tofauti na kadi za kihifadhi, ambazo zinahitaji watumiaji kuweka fedha kwa mtu wa tatu, kadi za kujihifadhi huwezesha malipo ya ulimwengu halisi kama vile Visa na Mastercard huku zikihifadhi udhibiti wa onchain. + +### Mfano {#crypto-cards-examples} + +- **Kadi ya MetaMask:** Ikiunganishwa na mkoba wa MetaMask, kadi hii ya malipo ya Mastercard inaruhusu watumiaji kutumia ETH, stablecoins na tokeni nyingine zinazotumika. Inatumika na Apple Pay na Google Pay, inajumuisha zawadi za kurejeshewa pesa kwa njia ya kripto, na inatoa chaguo za kupata faida. + +- **Kadi ya Tuyo:** Kadi ya Visa inayotegemea mkataba-erevu ambayo hubadilisha kripto kiotomatiki kuwa USDC kwa matumizi popote pale Visa inapokubalika. Watumiaji hudumisha umiliki wa mali zao, wakiwa na ufikiaji wa vipengele vya faida, biashara, na matumizi. + +- **Gnosis Pay:** Kadi ya kwanza ya Visa ya kujihifadhi iliyounganishwa na akaunti erevu ya Gnosis Safe. Watumiaji hutumia kripto moja kwa moja kutoka kwenye mkoba wao bila ada ya gesi, FX, au ada ya kutoa fedha. Ugeuzaji binafsi wa kadi kupitia Ethereum Name Service (ENS) pia unatumika. + +- **Kadi ya Ether.Fi Cash:** Ikiunganishwa na itifaki ya kusimamisha ya ether.fi, kadi hii inaruhusu watumiaji kutumia pesa huku ETH yao ikiwa imesimamishwa. Malipo hushughulikiwa kupitia mikataba-erevu, huku umiliki binafsi ukidumishwa hata wakati wa matumizi. + +### Ulinganisho wa kadi za kripto za kujihifadhi {#crypto-card-custody-comparison} + +| **Kadi ya Kripto** | **Ya kujihifadhi** | **Zisizokua chini ya ulinzi** | **Dondoo muhimu** | +| ----------------------------- | :----------------: | :---------------------------: | ----------------------------------------------------------------------------------------- | +| Kadi ya MetaMask | ✅ | ✅ | Mkoba unabaki kwenye MetaMask; kutoa fedha kiotomatiki wakati wa malipo | +| Kadi ya Tuyo | ✅ | ✅ | Mkoba erevu hubadilisha kuwa USDC; mtumiaji anabaki na udhibiti | +| Gnosis Pay | ✅ | ✅ | Imeunganishwa na Gnosis Safe ya mtumiaji; hakuna mabadiliko ya umiliki wakati wa matumizi | +| Ether.Fi Cash | ✅ | ✅ | ETH inabaki imesimamishwa; mkataba-erevu unadhibiti ufikiaji wa matumizi. | + +> **Kumbuka:** "Ya kujihifadhi" inarejelea mikoba inayodhibitiwa na mtumiaji ambapo mtumiaji ana ufikiaji kamili na udhibiti wa fedha zake. +> "Isiyo ya kihifadhi" inarejelea mikoba ambapo fedha hudhibitiwa bila umiliki wa mtu wa tatu, mara nyingi kupitia mikataba-erevu. +> Ingawa kadi zote za kujihifadhi ni zisizo za kihifadhi, si kadi zote zisizo za kihifadhi ambazo ni za kujihifadhi. + +## Malipo madogo kwa tovuti na maajenti (x402) {#x402} + +[x402](https://www.x402.org/) ni kiwango huria cha malipo kinacholeta malipo ya asili kwa kila matumizi kwenye wavuti. Kwa kutumia [stablecoins](/stablecoins/) kwenye [mitandao ya layer 2 ya Ethereum](/layer-2/) ya gharama nafuu, kiwango cha x402 hufanya iwe nafuu kwa wanadamu na mashine kulipa moja kwa moja kwa kitendo kimoja, kama vile kusoma makala ya habari au kuita API, badala ya kudhibiti funguo za API, usajili, au "kulipa" kwa kutoa umakini kwa matangazo. + +- **Kuondoa vizuizi vya malipo na kuingia:** Badala ya kufungua akaunti na kushiriki taarifa za kibinafsi ili kusoma makala moja ya habari, mkoba wako unaweza kulipa senti chache zinazohitajika ili kuifungua. +- **Malipo kwa maajenti wa AI:** x402 huwezesha programu zinazojiendesha ("Maajenti wa AI") kulipia data na miito ya API wanayohitaji ili kufanya kazi, bila kuingiliwa na binadamu. + +### Jinsi kiwango cha malipo cha x402 kinavyofanya kazi {#x402-how} + +Mteja anapoomba rasilimali, seva hutuma msimbo wa hitilafu wa `402 Payment Required` pamoja na maelekezo ya malipo (bei, akaunti, na ni tokeni na minyororo gani inayotumika). + +- [Mkoba](/wallets/) wako hugundua ombi na kushughulikia malipo (mara nyingi kwa kubofya mara moja ili kuidhinisha, au kiotomatiki kwa kutumia posho iliyoidhinishwa awali) +- [Maajenti wa AI](/ai-agents/) wenye ufikiaji wa salio la mkoba lililoidhinishwa awali wanaweza kugundua bei kiotomatiki na kulipa papo hapo ili kupata data au huduma +- Mteja anahitaji kuwa na mojawapo ya stablecoins zinazotumika kwenye mkoba wake, lakini hahitaji kuwa na ETH yoyote kwa [gharama za gesi](/gas/) + +Hii inafungua uchumi mpya wa "mashine kwa mashine" ambapo maajenti wa AI wanaweza kununua rasilimali wao wenyewe, na ambapo huduma za API zinaweza kupatikana kwa ufanisi zaidi. + +Ujumbe uliotiwa saini kisha huwasilishwa kwa seva. Seva kwa kawaida hutumia [msaidizi wa x402](https://x402.gitbook.io/x402/core-concepts/facilitator) kushughulikia ugumu wa mnyororo wa bloku (kutuma muamala, kupata malipo, kuwezesha ada za gesi, n.k.), ambayo inamaanisha kuwa wasanidi programu wanaweza kukubali kwa urahisi malipo madogo ya kripto bila kudhibiti miundombinu ya malipo. + +## Malipo ya mshahara {#salary-payments} + +Kampuni nyingi zinazofikiria mbele sasa zinawapa wafanyakazi fursa ya kupokea mishahara yao, au sehemu yake, katika sarafu za kidijitali kama ether (ETH): + +- **Gipsybee:** ni shirika linalohusika na vifaa vya elektroniki, roboti, uundaji wa michezo, na huduma nyinginezo. Huwapa wafanyakazi wao uchaguzi wa kuweza kulipwa kwa Ethereum. +- **SC5:** Kampuni hii ya Kifini ilikuwa moja ya kampuni za kwanza kutoa mishahara kwa Bitcoin, ikifungua njia kwa mipangilio kama kulipwa kwa Ethereum. +- **Kampuni changa za Blockchain:** Kampuni nyingi katika uwanja wa blockchain kwa kawaida hutoa fursa za mshahara kwa sarafu za kidijitali za kripto kwa wafanyakazi wao. +- **DAOs:** Kutokana na umbile la kipekee na utofauti wa wachangiaji wa DAO, michango na mishahara mingi hutolewa kama malipo kwa kutumia sarafu za kidijitali za kripto. + +Mwenendo huu unawavutia hasa wafanyakazi wa mbali na wahamaji wa kidijitali ambao wanaweza kufaidika na malipo yasiyo na mipaka na viwango vya kubadilisha fedha vinavyoweza kuwa na manufaa. + +## Juhudi za Misaada ya Kimataifa {#global-relief-efforts} + +Mnamo Februari 2023, wakati matetemeko ya ardhi yaliyokuwa maharibifu yalipotokea nchini Uturuki na Syria, jumuiya ya kidijitali ya kimataifa ilichukua hatua. Kampeni mbalimbali zilianzishwa kukusanya fedha kwa ajili ya juhudi za misaada, ikionyesha uwezo wa Ethereum wakati wa majanga. Hata ingawa sarafu za kidijitali [hazitambuliwi kama njia halali](https://www.reuters.com/technology/no-more-kebabs-bitcoins-turkeys-crypto-payment-ban-looms-2021-04-28/) ya malipo nchini Uturuki, mamlaka [zilitoa ruhusa](https://x.com/haluklevent/status/1622913175409623041) kwa mashirika machache kukusanya michango. Baadhi ya mifano ikiwa: + +- [Refik Anadol](https://x.com/refikanadol/status/1622623521104089090): ni msanii maarufu wa kidijitali ambaye alianzisha kampeni ya kukusanya fedha. +- Nguvu ya DAO: [Anka Relief DAO](https://ankarelief.org/) na [Bankless DAO](https://x.com/banklessDAO) ziliungana na [Giveth](https://x.com/Giveth/status/1623493672149843969) kukusanya fedha. +- [Pak](https://cause.quest/), msanii maarufu wa mali za Kidijitali za kripto zisizoweza kubadilishwa kama picha, pia alichangia katika mradi huu. +- Hata mwanzilishi mwenza wa Ethereum, [Vitalik Buterin](https://cointelegraph.com/news/vitalik-buterin-donates-227k-to-help-earthquake-victims-in-turkey-syria)alitoa michango binafsi kwa kampeni nyingi. + +Matokeo ya haya? Zaidi ya dola milioni 6 zilikusanywa ndani ya siku chache, kama ilivyofuatiliwa na dashibodi ya [Dune](https://dune.com/davy42/turkiye-earthquake-donations) Dashibodi ya uchanganuzi. + +Pia kulikuwa na muda sawa wa kujibu kwa majanga yaliyotokea nchini India na Ukraine. Mwitikio huu wa haraka unaangazia faida muhimu ya malipo ya Ethereum, ambayo ni uwezo wa kukusanya haraka msaada wa kimataifa bila vikwazo vya kubadilisha sarafu, uhamisho mrefu wa benki, au ada kubwa mno. + +
+ +![Picha ya roboti ya Ethereum](./eth_robot.png) +
+ +## Ethereum zidi ya fedha za kawaida {#ethereum-vs-fiat} + +Ili kuthamini kikamilifu athari za malipo ya Ethereum, inafaa kulinganisha na sarafu za fedha za kawaida: + +| | **Ethereum** | **Bank za jadi** | +| ------------------------------ | -------------------------- | ----------------------------------------------------------- | +| **Kasi** | Sekunde hadi dakika | Masaa hadi siku | +| **Kufikia Ulimwengu** | Isiyo na mipaka, 24/7 | Kukabiliwa na vikwazo vya benki za kimataifa na saa za kazi | +| **Uwazi** | Uwazi kamili | Hutofautiana kulinagana na taasisi | +| **Uratibu** | Inaruhusu mikataba mahiri | Huishia tu kwenye miamala ya kawaida | +| **Udhibiti wa Mfumuko wa Bei** | Utoaji unaotabirika | Kukabiliwa na sera za benki kuu | +| **Ufikiaji** | Mtu yeyote mwenye intaneti | Kukabiliwa na vikwazo vya kitaifa na kimataifa | + +Kwa msingi wake, Ethereum ni jukwaa lililo gatuliwa ambalo huruhusu miamala salama, ya haraka, na ya uwazi. Hata hivyo, kuna mambo mengi yanayoifanya itofautiane na njia za malipo ya jadi. Hebu tuzame kidogo katika faida zinazofanya malipo ya Ethereum kuwa mabadiliko makubwa: + +### Uratibu {#programmability} + +Moja ya sifa za kipekee za Ethereum ni uwezo wake wa kusaidia mikataba mahiri. Mikataba mahiri ni mikataba inayojitekeleza yenyewe ikiwa na masharti yaliyoandikwa moja kwa moja kwenye msimbo. Hii inafungua ulimwengu wa uwezekano wa malipo yanayotekelezwa kiotomatiki, kulingana na masharti ambayo yanaweza kuboresha sana miamala kama: + +- Huduma za amana +- Malipo ya mara kwa mara +- Malipo yanayotegemea utendaji + +### Kasi {#speed} + +Unakumbuka mara ya mwisho uliposubiri siku kadhaa kwa uhamisho wa benki ya kimataifa kuingia? Mstari mrefu? Na fomu nyingi ulizohitaji kujaza? Kwa Ethereum, siku hizo zimepita zamani. Miamala kwenye mtandao wa Ethereum hukamilika ndani ya dakika chache, bila kujali mahali ambapo mtumaji na mpokeaji wanapatikana. Kwa sababu Ethereum haihitaji idhini, hakuna urasimu wa kisheria wakati wa kutuma fedha. Kasi hii ni muhimu sana katika hali zinazohitaji haraka, kama vile juhudi za misaada ya dharura. + +### Ada ndogo {#lower-fees} + +Ada za uhamisho wa fedha za kimataifa wa jadi wakati mwingine hupunguza kiasi kikubwa cha pesa inayotumwa, hasa unaposhughulika na miamala ya mamia ya dola. Miamala ya Ethereum, japokuwa sio bure, lakini huja na ada kidogo. Hii inamaanisha kuwa fedha zako nyingi zinafika mahali unapotaka, badala ya kuingia mifukoni mwa walanguzi. + +### Uwazi {#transparency} + +Kila muamala kwenye kiambajengo cha Ethereum hurekodiwa kwenye daftari la umma. Hii inamaanisha kuwa mtu yeyote anaweza kuthibitisha mienendo ya fedha, na kuifanya zanaa nzuri kwa ajili ya: + +- Mashirika ya hisani kuonyesha jinsi michango inavyotumika +- Biashara kuthibitisha malipo kwa wauzaji au wafanyakazi +- Watu binafsi kufuatilia shughuli zao za kifedha + +Kwa Ethereum, kila mtu anaweza kuona jinsi pesa zinavyosonga na jinsi gharama zinavyotekelezwa, tofauti na mashirika ya kawaida ambapo mengi ya haya hubaki bila kujulikana. + +
+ +![picha ya mtu anayotembea](./walking.png) +
+ +Wakati sarafu za fedha za kawaida zina faida ya kukubalika kote na utulivu, Ethereum inatoa manufaa ya kipekee ambayo yanaifanya kuwa chaguo la kuvutia kwa aina fulani za miamala. + +Kuanzia kuwezesha misaada ya haraka ya majanga hadi kuwawezesha wafanyakazi wa kimataifa, malipo ya Ethereum yanaandika sura mpya katika historia ndefu ya fedha. Ingawa bado kuna changamoto, faida za kipekee zinazotolewa na teknolojia hii zinaifanya kuwa chaguo la kuvutia kwa matumizi mbalimbali. + + + + +
Ni wakati wa kufungua akaunti yako ya Ethereum.
+ + Anza sasa! + +
+ +
diff --git a/public/content/translations/sw/prediction-markets/index.md b/public/content/translations/sw/prediction-markets/index.md new file mode 100644 index 00000000000..0bb94496ebd --- /dev/null +++ b/public/content/translations/sw/prediction-markets/index.md @@ -0,0 +1,86 @@ +--- +title: Masoko ya utabiri +lang: sw +template: use-cases +image: /images/use-cases/prediction-markets.png +sidebarDepth: 2 +summaryPoint1: Pokea motisha za kifedha ili kutoa utabiri sahihi +summaryPoint2: Utabiri wa hali ya juu kuhusu yajayo +buttons: + - content: Jifunze zaidi + toId: how-prediction-markets-work + - content: Programu za kuchunguza + toId: find-a-prediction-market + isSecondary: false +--- + +Utabiri wa masoko hutumia ujuzi na faida za kifedha wa umati kwa matukio yajayo. Wao hutoa taarifa mbalimbali za hali ya juu na walipata umaarufu Marekani 2024. chaguzi. + +## Jinsi masoko ya utabiri yanavyofanya kazi {#how-prediction-markets-work} + +Tofauti na mbinu za kitamaduni za utabiri zinazotegemea maoni ya wataalamu, sampuli ndogo za utafiti au data ya kihistoria, soko la utabiri hutumia fursa za kifedha za wakati halisi na hekima ya umma kutoa utabiri kuhusu tukio fulani kama vile uchaguzi, bei za fedha za kidijitali, matokeo ya michezo miongoni mwa mambo mengine + +Hii inaruhusu yoyote kutoa ushirikiano kwa matokeo maalumu kwa kufanya ahadi ya kifedha. +Kwa kuwezesha kamari kuhusu matukio ya ulimwengu halisi na kurekebisha bei kadri taarifa mpya zinapotokea, maoni yenye msingi madhubuti yanathaminiwa zaidi, na usahihi unaweza kulipwa. + +Kiurahisi, sababu wanaokamari wanaweza kufaidi kwa kuwa sahihi, soko la utabiri linaweza kutabiri matokeo kwa usahihi mkubwa. Soko la utabiri lililojengwa juu ya Blockchain linaonyesha mwonekano zaidi mwenye kusisimua, kwa sababu karibu mtu yeyote anaweza kushiriki katika utabiri na kupokea malipo ya sarafu thabiti au fedha za kidijitali. + +## Kwanini hili ni la muhimu? {#why-does-this-matter} + +Tofauti na utabiri wa kienyeji masoko ya utabiri hutumia teknolojia ya mnyororo wa vizuizi ni: + + + + + + + +Hata kama ni mchunguzi soko, unaweza changanua taarifa ambazo vinginevyo ni ngumu kupata. Fikiria hivi: + +1. Ubashiri huhusishwa na tukio maalum (k.m., Je, Beam Chain itapelekwa ifikapo 2030?). +2. Washiriki wa soko wana nunua na kuuza hisa kulingana na kujiamini matokeo yoyote. +3. Bei hubadilika washiriki wengi zaidi huwa na imani zao, kwa maarifa ya papo hapo. +4. Yoyote atakae bashiri sahihi hupata mapato kulingana na kiasi alichowekeza +5. Waangalizi wa soko wanaweza tumia taarifa wazi kutoa msingi wa utafiti au majadiliano. + +## Tafuta utabiri wa soko {#find-a-prediction-market} + +Kuna masoko kadhaa ya utabiri yenye mfumo wa Ethereum yanayopatikana. Kuna baadhi ya utabiri wa masoko unaojulikana sana leo: + + + + + + + +

Kuwa makini na hatari

+

Bashiri kile kilicho ndani ya uwezo wako na uwe makini na uraibu mbaya.

+
+ +
+ +
+ +## Vikwazo na madhara {#challenges-and-risks} + +Masoko ya utabiri kwenye mnyororo wa vizuizi hupata vikwazo athiri haki, kisheria, na usahihi. + +⚠️ **Udanganyifu wa Soko** – Wachezaji matajiri wanaweza kubadilisha matokeo kwa kufanya biashara bandia. +💧**Matatizo ya kifedha** – watumiaji kidogo ([uwezo mdogo wa kugharamia](https://www.investopedia.com/terms/t/thinmarket.asp)) yanaweza kupunguza kuaminika kwa soko. +🏛**Kukosa uwazi wa Kisheria** –Mamlaka za Serikali kuweka vikwazo kwenye baadhi ya majukwaa. + +Ili kupunguza matatizo haya, watengenezaji wa Ethereum wanafanya majaribio kwa suluhisho kama (utawala kwa masharti ya masoko ya utabiri) na uthibitishaji wa utambulisho usio na makao makuu. + +## Kufanya majaribio na utabiri wa masoko {#experimenting-with-prediction-markets} + +Utabiri masoko umeleta mageuzi wa maamuzi kwenye wakati wa enzi ya kisasa. Kwa kutumia uwezo wa Ethereum, wao hutoa **njia za haki, wazi, na zenye malipo ya kutabiri mustakabali.** + +Kuna njia nyingi za kutumia zana za utabiri nje ya kupata faida ya kifedha. Kwa mfano, katika DevCon Improvement Proposal (DIP) ilipendekezwa kwamba waandaaji wa DevCon watumie masoko ya utabiri (prediction markets) ili kutarajia idadi ya mahudhurio ya matukio yao ya baadaye. + +Hii ingesaidia waandaaji kubaini ni eneo gani lingesababisha tukio lenye mahudhurio makubwa zaidi, ikilinganishwa na eneo gani lingekuwa na nafasi kubwa zaidi ya kufikiwa kimataifa. Aida za haya humaanisha kwamba waandaaji wa DevCon wanaweza kuharakisha muda unaohitajika kuchuja sera nyingi za visa, upatikanaji wa uwanja wa ndege, na gharama ya maisha katika eneo hilo, huku wakikusanya data kuhusu maeneo ambayo walio na uwezekano wa kuhudhuria wangependa kwenda. + +## Masomo zaidi {#further-reading} + +[Kutoka masoko ya ubashiri hadi info finance](https://vitalik.eth.limo/general/2024/11/09/infofinance.html) - Vitalik Buterin +[Ustawishaji wa Soko la Ubashiri Lililogatuliwa kwenye Ethereum](https://blockchain.oodles.io/dev-blog/decentralized-prediction-market-development-ethereum/) +[Karatasi Nyeupe ya Mradi wa Augur](https://github.com/AugurProject/whitepaper) \ No newline at end of file diff --git a/public/content/translations/sw/privacy/index.md b/public/content/translations/sw/privacy/index.md new file mode 100644 index 00000000000..be3642857a4 --- /dev/null +++ b/public/content/translations/sw/privacy/index.md @@ -0,0 +1,97 @@ +--- +title: Faragha kwenye Ethereum +description: Zana na mbinu za kulinda faragha yako kwenye Ethereum +lang: sw +--- + +# Faragha kwenye Ethereum {#introduction} + +Faragha si muhimu tu kwa usalama wa kibinafsi, ni msingi wa uhuru na [mdhamini muhimu wa ugatuaji](https://vitalik.eth.limo/general/2025/04/14/privacy.html). Faragha huwapa watu uwezo wa kujieleza, kufanya miamala na wengine, na kupanga jumuiya kwa uhuru. Lakini kama minyororo yote ya bloku, leja ya umma ya Ethereum hufanya faragha kuwa changamoto. + +Ethereum ni ya uwazi kwa muundo. Kila kitendo cha kwenye mnyororo kinaonekana kwa yeyote anayeangalia. Wakati Ethereum inatoa matumizi ya jina bandia kwa kuunganisha shughuli zako na [ufunguo wa umma](/decentralized-identity/#public-key-cryptography) badala ya utambulisho halisi, mienendo ya shughuli inaweza kuchambuliwa ili kufichua taarifa nyeti na kuwatambua watumiaji. + +Kujenga zana za kuhifadhi faragha katika Ethereum kunaweza kusaidia watu, mashirika, na taasisi kuingiliana kwa usalama huku ikipunguza ufichuzi usio wa lazima. Hii inafanya mfumo ikolojia kuwa salama na wa vitendo zaidi kwa anuwai ya matukio ya utumiaji. + +## Faragha ya maandishi {#privacy-of-writes} + +Kwa chaguo-msingi, kila muamala ulioandikwa kwenye Ethereum ni wa umma na wa kudumu. Hii inajumuisha sio tu kutuma ETH, lakini pia kusajili majina ya ENS, kukusanya POAP, au kufanya biashara ya NFT. Vitendo vya kila siku kama malipo, upigaji kura, au uthibitishaji wa utambulisho vinaweza kufichua taarifa zako kwa wahusika wasiotarajiwa. Kuna zana na mbinu kadhaa ambazo zinaweza kusaidia kufanya haya yawe ya faragha zaidi: + +### Itifaki za kuchanganya (au "vichanganyaji") {#mixing-protocols} + +Vichanganyaji huvunja uhusiano kati ya watumaji na wapokeaji kwa kuweka miamala ya watumiaji wengi kwenye "kidimbwi" cha pamoja na kisha kuwaruhusu watu kutoa baadaye kwenda anwani mpya. Kwa kuwa amana na uondoaji huchanganywa pamoja, ni vigumu zaidi kwa waangalizi kuviunganisha. + +_Mifano: [PrivacyPools](https://docs.privacypools.com/), [Tornado Cash](https://tornado.cash/)_ + +### Vidimbwi Vilivyolindwa {#shielded-pools} + +Vidimbwi vilivyolindwa ni sawa na vichanganyaji lakini huruhusu watumiaji kushikilia na kuhamisha fedha kwa faragha ndani ya kidimbwi chenyewe. Badala ya kuficha tu uhusiano kati ya amana na uondoaji, vidimbwi vilivyolindwa hudumisha hali ya faragha inayoendelea, mara nyingi hulindwa kwa uthibitisho wa zero-knowledge. Hii inafanya iwezekanavyo kujenga uhamisho wa faragha, salio za faragha, na zaidi. + +_Mifano: [Railgun](https://www.railgun.org/), [Aztec](https://aztec.network/), Nightfall_ + +### Anwani za siri {#stealth-addresses} + +[Anwani ya siri](https://vitalik.eth.limo/general/2023/01/20/stealth.html) ni kama kumpa kila mtumaji P.O. ya kipekee, ya mara moja. sanduku ambalo ni wewe tu unaweza kufungua. Kila wakati mtu anakutumia sarafu ya kidigitali, huenda kwenye anwani mpya, kwa hivyo hakuna mtu mwingine anayeweza kuona kuwa malipo hayo yote ni yako. Hii huweka historia yako ya malipo kuwa ya faragha na ngumu kufuatilia. + +_Mifano: [UmbraCash](https://app.umbra.cash/faq), [FluidKey](https://www.fluidkey.com/)_ + +### Matukio mengine ya utumiaji {#other-use-cases} + +Miradi mingine inayochunguza maandishi ya faragha ni pamoja na [PlasmaFold](https://pse.dev/projects/plasma-fold) (malipo ya faragha) na mifumo kama [MACI](https://pse.dev/projects/maci) na [Semaphore](https://pse.dev/projects/semaphore) (upigaji kura wa faragha). + +Zana hizi hupanua chaguzi za kuandika kwa faragha kwenye Ethereum, lakini kila moja huja na maafikiano. Baadhi ya mbinu bado ni za majaribio, zingine huongeza gharama au ugumu, na zana zingine kama vichanganyaji zinaweza kukabiliwa na uchunguzi wa kisheria au wa kidhibiti kulingana na jinsi zinavyotumiwa. + +## Faragha ya usomaji {#privacy-of-reads} + +Kusoma au kuangalia habari yoyote kwenye Ethereum (k.m., salio la pochi yako) kawaida hupitia huduma kama vile mtoa huduma wako wa pochi, mtoa huduma wa nodi, au wachunguzi wa bloku. Kwa sababu unawategemea wakusomee mnyororo wa bloku, wanaweza pia kuona maombi yako pamoja na metadata kama anwani yako ya IP au eneo. Ukiendelea kuangalia akaunti ileile, taarifa hii inaweza kuunganishwa pamoja ili kuunganisha utambulisho wako na shughuli zako. + +Kuendesha nodi yako mwenyewe ya Ethereum kungezuia hili, lakini kuhifadhi na kusawazisha mnyororo kamili wa bloku bado ni ghali na si vitendo kwa watumiaji wengi, haswa kwenye vifaa vya mkononi. + +Baadhi ya miradi inayochunguza usomaji wa faragha ni pamoja na [Private Information Retrieval](https://hackmd.io/@brech1/ethereum-privacy-pir?utm_source=preview-mode&utm_medium=rec) (PIR, pata data bila kufichua kile unachotafuta), [zkID](https://hackmd.io/@brech1/ethereum-privacy-pir?utm_source=preview-mode&utm_medium=rec) (ukaguzi wa utambulisho wa faragha na uthibitisho wa zero-knowledge), [vOPRF](https://pse.dev/projects/voprf) (tumia akaunti za Web2 kwa jina bandia katika Web3), [vFHE](https://pse.dev/blog/zero-to-start-applied-fully-homomorphic-encryption-fhe-part-1) (hesabu data iliyosimbwa kwa njia fiche), na [MachinaIO](https://pse.dev/projects/machina-io) (ficha maelezo ya programu huku ukiweka utendaji). + +## Faragha kwa ajili ya kuthibitisha {#privacy-of-proving} + +Uthibitisho wa kuhifadhi faragha ni zana unazoweza kutumia kwenye Ethereum kuonyesha kuwa kitu ni kweli bila kufichua maelezo yasiyo ya lazima. Kwa mfano, unaweza: + +- Thibitisha una zaidi ya miaka 18 bila kushiriki tarehe yako kamili ya kuzaliwa +- Thibitisha umiliki wa NFT au tokeni bila kufichua pochi yako yote +- Thibitisha ustahiki wa uanachama, zawadi, au kura bila kufichua data nyingine za kibinafsi + +Zana nyingi za hizi hutegemea mbinu za kriptografia kama vile uthibitisho wa zero-knowledge, lakini changamoto ni kuzifanya ziwe na ufanisi wa kutosha kufanya kazi kwenye vifaa vya kila siku, zinazoweza kubebeka kwenye jukwaa lolote, na salama. + +Baadhi ya miradi inayochunguza faragha kwa ajili ya kuthibitisha ni pamoja na [Client Side Proving](https://pse.dev/projects/client-side-proving) (Mifumo ya kuthibitisha ya ZK), [TLSNotary](https://tlsnotary.org/), (uthibitisho wa uhalisi kwa data yoyote kwenye wavuti), [Mopro](https://pse.dev/projects/mopro) (uthibitisho wa upande wa mteja kwa simu), [Private Proof Delegation](https://pse.dev/projects/private-proof-delegation) (mifumo ya ugawaji ambayo huepuka dhana za uaminifu), na [Noir](https://noir-lang.org/) (lugha ya kompyuta ya faragha na inayoweza kuthibitishwa). + +## Faharasa ya Faragha {#privacy-glossary} + +**Kutokujulikana**: Kuwasiliana huku vitambulishi vyote vimeondolewa kabisa kwenye data yako, na kufanya iwe vigumu kufuatilia taarifa hadi kwa mtu binafsi + +**Usimbaji fiche**: Mchakato unaochanganya data ili mtu aliye na ufunguo sahihi pekee ndiye anayeweza kuisoma + +**[Usimbaji Fiche wa Homomorphic Kamili](https://pse.dev/blog/zero-to-start-applied-fully-homomorphic-encryption-fhe-part-1) (FHE)**: Njia ya kufanya hesabu moja kwa moja kwenye data iliyosimbwa kwa njia fiche, bila kuiharibu kamwe + +**[Ufichaji Usiotofautishwa](https://pse.dev/projects/machina-io) (iO)**: Mbinu za faragha zinazofanya programu au data zisiweze kueleweka huku zikiwa bado zinatumika + +**[Hesabu ya Vyama Vingi](https://pse.dev/blog/secure-multi-party-computation) (MPC)**: Mbinu zinazoruhusu pande nyingi kuhesabu matokeo pamoja bila kufichua data zao za faragha + +**Kriptografia Inayoweza Kupangwa**: Kriptografia inayobadilika, inayoendeshwa na sheria ambayo inaweza kubinafsishwa katika programu ili kudhibiti jinsi na wakati data inashirikiwa, kuthibitishwa, au kufichuliwa + +**Jina Bandia**: Kutumia misimbo au nambari za kipekee (kama anwani ya Ethereum) badala ya vitambulishi vya kibinafsi + +**Ufichuaji Teule**: Uwezo wa kushiriki tu kile kinachohitajika (k.m. kuthibitisha unamiliki NFT bila kufichua historia yako yote ya pochi) + +**Kutokuunganishwa**: Kuhakikisha vitendo tofauti kwenye mnyororo wa bloku haviwezi kuunganishwa tena na anwani ileile + +**Uwezo wa Kuthibitishwa**: Kuhakikisha wengine wanaweza kuthibitisha dai ni kweli, kama vile kuthibitisha muamala au uthibitisho kwenye Ethereum + +**Uwakilishi Unaoweza Kuthibitishwa**: Kugawa kazi—kama vile kutengeneza uthibitisho—kwa upande mwingine (k.m. pochi ya rununu inayotumia seva kwa kriptografia nzito) huku ukiwa bado unaweza kuthibitisha kuwa ilifanywa ipasavyo + +**[Uthibitisho wa Zero-Knowledge](/zero-knowledge-proofs/#why-zero-knowledge-proofs-are-important) (ZKPs)**: Itifaki za kriptografia zinazomruhusu mtu kuthibitisha taarifa ni kweli bila kufichua data msingi + +**ZK Rollup**: Mfumo wa kuongeza viwango unaokusanya miamala nje ya mnyororo na kuwasilisha uthibitisho wa uhalali kwenye mnyororo—sio ya faragha kwa chaguo-msingi, lakini huwezesha mifumo bora ya faragha (kama vidimbwi vilivyolindwa) kwa kupunguza gharama + +## Rasilimali {#resources} + +- [Wasimamizi wa Faragha wa Ethereum](https://pse.dev/) (PSE), maabara ya utafiti na maendeleo ya Msingi wa Ethereum inayolenga faragha kwa mfumo ikolojia +- [Web3PrivacyNow](https://web3privacy.info/), mtandao wa watu, miradi, na mashirika yanayolingana ambayo hulinda na kuendeleza haki za binadamu mtandaoni +- [WalletBeat](https://beta.walletbeat.eth.limo/wallet/summary/), tovuti ya ukadiriaji wa pochi za Ethereum inayolenga kutoa orodha pana ya pochi, utendaji wao, mazoea, na usaidizi kwa viwango fulani. +- [Zk-kit](https://zkkit.pse.dev/): Seti ya maktaba (algoriti, kazi za matumizi, na miundo ya data) ambayo inaweza kutumika tena katika miradi tofauti na itifaki za zero-knowledge. +- [Programu za Faragha](/apps/categories/privacy/) - Gundua orodha ya programu za faragha zilizoratibiwa zinazoendeshwa kwenye Ethereum. diff --git a/public/content/translations/sw/real-world-assets/index.md b/public/content/translations/sw/real-world-assets/index.md new file mode 100644 index 00000000000..da3d8e85bad --- /dev/null +++ b/public/content/translations/sw/real-world-assets/index.md @@ -0,0 +1,93 @@ +--- +title: Mali halisi za dunia (RWAs) +metaTitle: RWAs ni nini? Faida na matumizi ya Thamani halisiza Ulimwengu +description: Muhtasari wa Mali Halisi kwenye Ethereum +lang: sw +template: use-cases +emoji: ":house_buildings:" +image: /images/man-and-dog-playing.png +alt: Mwanamume na mbwa wanaocheza. +sidebarDepth: 2 +summaryPoint1: Njia ya kubadilisha bidhaa zenye thamani kuwa tokeni za kidijitali. +summaryPoint2: Sasa unaweza kumiliki sehemu za vitu vya kweli au mali, badala ya kununua mali yote au kitu. +summaryPoint3: Inaunganisha fedha za jadi na mfumo wa ikolojia wa blockchain. +--- + +Mali ya ulimwengu wa kweli (RWAs) ni ishara zinazowakilisha aina za utajiri, kama mali isiyohamishika, dhahabu, hisa, sanaa, mashine au mkusanyiko. Kuinua vitu hivi hutafsiri kwa fomu ya dijiti, ikiruhusu kugawanywa kati ya wamiliki wengi na kuifanya iwe rahisi kuzifanya. + +## RWAs ni nini? {#what-are-rwas} + +Baadhi ya RWA zinaonekana - vitu unaweza kuona na kugusa, kama baa za dhahabu au majengo ya kibiashara. Wengine hawaonekani, kama deni la serikali, mali ya kiakili, au usawa katika kampuni. + +Wakati wa kupunguzwa, mali hizi zinageuzwa kuwa vitengo vya thamani. Dhahabu iliyotolewa ni mfano mzuri wa jinsi hii inavyofanya kazi. Kampuni [Paxos](https://www.paxos.com/) hutafsiri baa za dhahabu 400-ndani ya ishara 400 kwenye Ethereum blockchain, kila moja inayoungwa mkono na aunzi moja ya dhahabu. Wamiliki wa ishara wanaweza kukomboa ishara zao kwa dhahabu wakati wowote. Hiyo pia ndio kesi ya ishara zilizonunuliwa kutoka kwa kampuni nyingine ya RWA, [Tether Gold](https://gold.tether.to/). + +Kila ishara inaweza kugawanywa katika sehemu ndogo hata. Tokeni za dhahabu za tether, kwa mfano, zinaweza kugawanywa katika sehemu ndogo kama 0.000001. + +Ishara za RWA hazina thamani yoyote ya ndani. Badala yake, zinaonyesha thamani ya kitu ambacho wanawakilisha, na kwa hivyo thamani ya ishara inabadilika pamoja na thamani ya bidhaa. + +## Je! Ni faida gani za RWAS? {#rwas-benefits} + + + + + + + + + + +## RWAs inafanyaje kazi? {#how-rwas-work} + +Wacha tuangalie mifano michache kutoka kwa mfumo wa ikolojia wa RWA: mali isiyohamishika, bidhaa za jadi za kifedha, na sanaa nzuri. + +### Kuwekeza katika mali isiyohamishika {#investing-in-real-estate} + +Sema kuwa unapenda kuwekeza katika mali isiyohamishika, lakini ununuzi wa mali nzima hauwezi kufikiwa. Badala yake, unaweza kununua RWAs kupitia mradi kama vile [RealT](https://realt.co/). Ishara zake zinawakilisha hisa katika kampuni ndogo ya dhima (LLC) iliyoundwa kushikilia hati ya mali. Wamiliki wa ishara hupokea mapato ya kukodisha kwa njia ya Stablecoins kulingana na sehemu wanayoshikilia; RealT anasema hadi sasa imerudisha dola milioni 15 za dola katika mapato ya jumla ya kukodisha kwa wawekezaji. + +Mradi mwingine kando ya mistari hiyo hiyo, [Maabara ya Kikundi](https://x.com/labsgroupio), inaruhusu watu kununua katika mali isiyohamishika iliyo na kiasi kidogo kama $ 100 USD. + +### Kuwekeza katika bidhaa za kifedha {#investing-in-financial-products} + +Miradi kadhaa hufunga ulimwengu wa fedha za jadi na fedha za madaraka (DeFi) kwa kuleta dhamana, hisa, vifungo na vyombo vingine vya kifedha kwenye blockchain. + +Kwa mfano, kampuni ya msingi wa Ethereum [Securitize](https://securitize.io/) inataalam katika kuashiria bidhaa za jadi za kifedha. Mnamo 2024, ilishirikiana na BlackRock kuzindua mfuko wa RWA. BlackRock anasema ina mpango wa hatimaye kuangazia dola trilioni 10 za mali yake: Mkurugenzi Mtendaji wake, Larry Fink, aliita ishara "kizazi kijacho kwa masoko". + +### Kuwekeza katika Sanaa Nzuri {#investing-in-fine-art} + +Kuna mifumo tofauti tofauti za uwekezaji mzuri wa sanaa. [Masterworks](https://www.masterworks.com/) hununua mchoro, huhifadhi kila kipande, na huuza hisa katika mfumo wa ishara. Inapanga baadaye kuuza mchoro na kusambaza faida kwa wamiliki wa ishara. + +Wamiliki wa ishara hawadhibiti uhifadhi au uuzaji wa baadaye wa mchoro. Badala yake, wanasimamia ni muda gani wanashikilia ishara zao, ambazo hupanda na kushuka kulingana na thamani ya sanaa. + +Wakati huo huo, Msajili wa Sanaa ya Dijiti ya Digital-msingi [Sanaa](https://www.artory.com/) inathibitisha ukweli wa kazi za sanaa na kurekodi umiliki wa zamani. + +### Kuwekeza katika mkusanyiko {#investing-in-collectibles} + +Kufikia sasa, mifano hii mingi inaonyesha jinsi ishara inaruhusu umiliki wa aina ya utajiri. Faida nyingine ya ishara ni kwamba inawezesha biashara ya vitu muhimu, kama vile mkusanyiko, kwenye soko la kimataifa. + +Mfano mmoja wa hii ni [ua](https://courtyard.io/), ambayo inaonyesha kadi za biashara -fikiria kadi za baseball, kadi za mpira wa miguu au kadi za Pokemon. Wamiliki wa kadi husafirisha kadi zao kwenye kituo salama cha kuhifadhi huko USA. The cards are minted as digital tokens and added to the owners’ wallets for trading on Courtyard’s marketplace. Ua unakubali tu kadi za kiwango cha juu: ndipo mtu wa tatu amethibitisha uhalisi wa kadi na kuipatia alama kulingana na hali yake, iwe imepunguka au pristine. + +Ua pia hutoa aina ya mpango wa kifalme. Kila wakati kadi inauzwa, mtu ambaye aliiga hupokea asilimia moja ya mapato. Waanzilishi wa kadi pekee ndio wanalipwa kwa njia hii. Wakati wowote, mmiliki anaweza kubadilisha kadi zao za dijiti kwa kadi za mwili, haijalishi ziko ulimwenguni. + +## Je! Ni mapungufu gani ya RWAS? {#rwas-limitations} + +Changamoto moja ya RWAs, katika hatua hii ya mapema, inajumuisha kuhakikisha uhusiano kati ya vitu vya kweli na uwakilishi wao wa dijiti. + +Bendera ya kijani ni wakati miradi ya RWA inapeana wawekezaji na dhibitisho la akiba -dhamana kwamba wao ni wamiliki wa kisheria wa vitu vya mwili vinaunga mkono ishara za dijiti. Fikiria Paxos, Tether Gold, au ua, iliyotajwa hapo awali, ambayo yote yanashikilia mali zao katika uhifadhi salama na inawapa wamiliki chaguo la kubadilisha ishara kwa sawa na mwili wake wakati wowote. + +Kizuizi kingine ni ikiwa umiliki wa ishara unatambuliwa na mifumo ya kisheria kote ulimwenguni. Kwa maneno mengine, je! Mikataba smart inaweza kutekelezwa katika korti ya sheria, au mmiliki wa ishara ya RWA inaweza kudai umiliki wa kitu halisi cha maisha? + +Baadhi ya watangulizi katika suala la kuanzisha mifumo ya kisheria haswa kutambua ishara ni pamoja na Singapore, Falme za Kiarabu, Hong Kong, na Uswizi, ambayo ilianzisha sheria mnamo 2021 ilipewa jina la 'blockchain' kudhibiti teknolojia kama vile. Jumuiya ya Ulaya imeanza mchakato wa kudhibiti RWAs, wakati huko Merika, Tume ya Usalama na Uuzaji inatarajiwa kutoa mwongozo juu ya RWAs wakati fulani. + +## Jifunze zaidi {#learn-more} + +Kuingia kwenye [mikataba ya smart](/smart-contracts/) au ujue zaidi juu ya darasa tofauti la ishara, [tokeni zisizo na fungi (NFT)](/nft/). + +## Masomo zaidi {#further-reading} + +- [Je! Mali ya mali ni nini](https://www.britannica.com/money/real-world-asset-tokenization) ya Britannica +- [Jinsi uwekaji ishara unavyobadilisha fedha na uwekezaji wa kimataifa](https://www.weforum.org/stories/2024/12/tokenization-blockchain-assets-finance/) kwenye World Economic Forum +- [Mambo ambayo wawekezaji wa kripto wanahitaji kujua kuhusu kuweka ishara kwenye mali za ulimwengu halisi](https://www.forbes.com/sites/irinaheaver/2024/03/14/what-crypto-investors-need-to-know-about-tokenizing-real-world-assets/) kwenye Forbes +- [Jinsi mikataba-erevu inavyofanya kazi na mnyororo wa bloku](https://www.britannica.com/money/how-smart-contracts-work) kwenye Britannica +- [Jinsi mali zenye ishara za ulimwengu halisi zinavyobadilisha DeFi](https://medium.com/coinmonks/how-tokenized-real-world-assets-are-transforming-defi-4e040f28732a) kwenye Medium +- [RWA ni nini katika kripto? Wajibu wake katika mnyororo wa bloku umeelezewa](https://www.bitdegree.org/crypto/tutorials/what-is-rwa-in-crypto) kwenye BitDegree +- [Sarafu za juu za mali za ulimwengu halisi (RWAs) leo kulingana na kiwango cha soko](https://www.forbes.com/digital-assets/categories/real-world-assets-rwa/) kwenye Forbes diff --git a/public/content/translations/sw/refi/index.md b/public/content/translations/sw/refi/index.md new file mode 100644 index 00000000000..bb66f75119f --- /dev/null +++ b/public/content/translations/sw/refi/index.md @@ -0,0 +1,81 @@ +--- +title: Fedha za Kuzalisha Upya (ReFi) +description: Muhtasari wa ReFi na matumizi yake ya sasa. +lang: sw +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /images/future_transparent.png +alt: "" +summaryPoint1: Mfumo wa uchumi mbadala uliojengwa kwa kanuni endelevu +summaryPoint2: Jaribio la kutumia Ethereum kutatua migogoro ya uratibu wa kiwango cha kimataifa kama vile mabadiliko ya tabianchi. +summaryPoint3: Zana ya kuongeza kwa kiasi kikubwa rasilimali za manufaa ya kiikolojia kama vile salio za kaboni zilizothibitishwa. +--- + +## ReFi ni nini? {#what-is-refi} + +**Fedha za Kuzalisha Upya (ReFi)** ni seti ya zana na mawazo yaliyojengwa juu ya [minyororo ya bloku](/glossary/#blockchain), ambayo yanalenga kuunda chumi ambazo zinajizalisha upya, badala ya zile za uchimbaji au unyonyaji. Hatimaye, mifumo ya uchimbaji humaliza rasilimali zilizopo na kuporomoka; bila mifumo ya kuzalisha upya, hukosa ustahimilivu. ReFi inafanya kazi kwa dhana kwamba uundaji wa thamani ya kifedha lazima utenganishwe na uchimbaji usiokuwa endelevu wa rasilimali kutoka kwenye sayari yetu na jamii zetu. + +Badala yake, ReFi inalenga kutatua matatizo ya kimazingira, kijumuiya, au kijamii kwa kuunda mizunguko ya kuzalisha upya. Mifumo hii huunda thamani kwa washiriki huku ikinufaisha mifumo ikolojia na jamii kwa wakati mmoja. + +Moja ya misingi ya ReFi ni dhana ya uchumi wa kuzalisha upya iliyoanzishwa na John Fullerton wa Capital Institute. Alipendekeza [kanuni nane zinazohusiana](https://capitalinstitute.org/8-principles-regenerative-economy/) ambazo ni msingi wa afya ya kimfumo: + +![Kanuni nane zinazohusiana](refi-regenerative-economy-diagram.png) + +Miradi ya ReFi hutimiza kanuni hizi kwa kutumia [mikataba-erevu](/glossary/#smart-contract) na programu za [fedha zilizogatuliwa (DeFi)](/glossary/#defi) ili kuhimiza tabia za kuzalisha upya, k.m., kurejesha mifumo ikolojia iliyoharibika, na kuwezesha ushirikiano mkubwa katika masuala ya kimataifa kama vile mabadiliko ya tabianchi na upotevu wa bioanuwai. + +ReFi pia inaingiliana na harakati za [sayansi iliyogatuliwa (DeSci)](/desci/), ambayo hutumia Ethereum kama jukwaa la kufadhili, kuunda, kukagua, kutambua mchango, kuhifadhi na kusambaza maarifa ya kisayansi. Zana za DeSci zinaweza kuwa muhimu kwa kuendeleza viwango na mbinu zinazoweza kuthibitishwa za kutekeleza na kufuatilia shughuli za kuzalisha upya kama vile kupanda miti, kuondoa plastiki baharini, au kurejesha mfumo ikolojia ulioharibika. + + + +## Uwekaji tokeni wa salio za kaboni {#tokenization-of-carbon-credits} + +**[Soko la hiari la kaboni (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** ni utaratibu wa kufadhili miradi inayotoa athari chanya iliyothibitishwa kwenye utoaji wa kaboni, aidha kwa kupunguza utoaji unaoendelea, au kuondoa gesi joto ambazo tayari zimetolewa angani. Miradi hii hupokea rasilimali inayoitwa "salio za kaboni" baada ya kuthibitishwa, ambazo wanaweza kuziuza kwa watu binafsi na mashirika yanayotaka kusaidia hatua dhidi ya mabadiliko ya tabianchi. + +Mbali na VCM, pia kuna masoko kadhaa ya kaboni yaliyoagizwa na serikali ('masoko ya utiifu') ambayo yanalenga kuweka bei ya kaboni kupitia sheria au kanuni ndani ya mamlaka maalum (k.m., nchi au kanda), yakidhibiti ugavi wa vibali vitakavyogawiwa. Masoko ya utiifu huwahamasisha wachafuzi ndani ya mamlaka yao kupunguza utoaji, lakini hayawezi kuondoa gesi joto ambazo tayari zimetolewa. + +Licha ya maendeleo yake katika miongo ya hivi karibuni, VCM inaendelea kukumbwa na masuala mbalimbali: + +1. Ukwasi uliogawanyika sana +2. Taratibu za miamala zisizo wazi +3. Ada za juu +4. Kasi ndogo sana ya biashara +5. Ukosefu wa uwezo wa kuongezeka + +Kuhamisha VCM kwenda kwenye **soko jipya la kaboni la kidijitali (DCM)** lenye msingi wa mnyororo wa bloku kunaweza kuwa fursa ya kuboresha teknolojia iliyopo ya kuthibitisha, kufanya miamala na kutumia salio za kaboni. Minyororo ya bloku huruhusu data inayoweza kuthibitishwa hadharani, ufikiaji kwa watumiaji mbalimbali, na ukwasi zaidi. + +Miradi ya ReFi hutumia teknolojia ya mnyororo wa bloku kupunguza matatizo mengi ya soko la jadi: + +- **Ukwasi umejilimbikizia katika idadi ndogo ya mabwawa ya ukwasi** ambayo yanaweza kufanyiwa biashara na yeyote kwa uhuru. Mashirika makubwa pamoja na watumiaji binafsi wanaweza kutumia mabwawa haya bila kutafuta wauzaji/wanunuzi wenyewe, ada za ushiriki, au usajili wa awali. +- **Miamala yote hurekodiwa kwenye minyororo ya bloku ya umma**. Njia ambayo kila salio la kaboni hupitia kutokana na shughuli za kibiashara inaweza kufuatiliwa milele mara tu inapopatikana katika DCM. +- **Kasi ya muamala ni karibu ya papo hapo**. Kupata kiasi kikubwa cha salio za kaboni kupitia masoko ya zamani kunaweza kuchukua siku au wiki, lakini hili linaweza kufanikiwa kwa sekunde chache katika DCM. +- **Shughuli za kibiashara hufanyika bila wasuluhishi**, ambao hutoza ada za juu. Salio za kaboni za kidijitali zinawakilisha upungufu mkubwa wa gharama zikilinganishwa na salio za jadi. +- **DCM inaweza kuongezeka** na inaweza kukidhi mahitaji ya watu binafsi na mashirika ya kimataifa kwa pamoja. + +### Vipengele muhimu vya DCM {#key-components-dcm} + +Vipengele vinne vikuu vinaunda mandhari ya sasa ya DCM: + +1. Sajili kama vile [Verra](https://verra.org/project/vcs-program/registry-system/) na [Gold Standard](https://www.goldstandard.org/) huhakikisha kuwa miradi inayounda salio za kaboni ni ya kuaminika. Pia huendesha hifadhidata ambamo salio za kaboni za kidijitali hutoka na zinaweza kuhamishwa au kutumika (kustaafishwa). + +Kuna wimbi jipya la miradi ya kibunifu inayojengwa kwenye minyororo ya bloku ambayo inajaribu kutoa changamoto kwa makampuni yaliyokuwepo katika sekta hii. + +2. Madaraja ya kaboni, a.k.a. viweka tokeni, hutoa teknolojia ya kuwakilisha au kuhamisha salio za kaboni kutoka kwa sajili za jadi hadi kwenye DCM. Mifano mashuhuri ni pamoja na [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), na [Moss.Earth](https://moss.earth/). +3. Huduma zilizounganishwa hutoa salio za kuepuka na/au kuondoa kaboni kwa watumiaji wa mwisho ili waweze kudai manufaa ya kimazingira ya salio na kushiriki na ulimwengu msaada wao kwa hatua dhidi ya mabadiliko ya tabianchi. + +Baadhi kama [Klima Infinity](https://www.klimadao.finance/infinity) na [Senken](https://senken.io/) hutoa miradi mbalimbali iliyotengenezwa na wahusika wengine na kutolewa chini ya viwango vilivyoimarishwa kama Verra; wengine kama [Nori](https://nori.com/) hutoa tu miradi maalum iliyotengenezwa chini ya kiwango chao cha salio la kaboni, ambacho wanakitoa na ambacho wana soko lao maalum. + +4. Misingi na miundombinu ya msingi inayowezesha kuongezeka kwa athari na ufanisi wa mnyororo mzima wa ugavi wa soko la kaboni. [KlimaDAO](http://klimadao.finance/) hutoa ukwasi kama manufaa ya umma (kuruhusu yeyote kununua au kuuza salio za kaboni kwa bei ya wazi), huhimiza ongezeko la uwezo wa masoko ya kaboni na ustaafishaji kwa zawadi, na hutoa zana zinazofaa kwa mtumiaji na zinazoweza kushirikiana ili kupata data kuhusu, pamoja na kupata na kustaafisha, aina mbalimbali za salio za kaboni zilizowekewa tokeni. + +## ReFi zaidi ya masoko ya kaboni {#refi-beyond} + +Ingawa kwa sasa kuna msisitizo mkubwa katika masoko ya kaboni kwa ujumla na hasa katika kuhamisha VCM kwenda DCM ndani ya eneo hili, neno "ReFi" halihusu kaboni pekee. Rasilimali zingine za kimazingira zaidi ya salio za kaboni zinaweza kuendelezwa na kuwekewa tokeni, jambo ambalo litamaanisha athari zingine hasi za nje pia zinaweza kuwekewa bei ndani ya safu za msingi za mifumo ya kiuchumi ya siku zijazo. Zaidi ya hayo, kipengele cha kuzalisha upya cha mfumo huu wa kiuchumi kinaweza kutumika katika maeneo mengine, kama vile ufadhili wa bidhaa za umma kupitia majukwaa ya ufadhili wa kipeo cha pili kama [Gitcoin](https://gitcoin.co/). Mashirika yaliyojengwa juu ya wazo la ushiriki wazi na usambazaji sawa wa rasilimali humwezesha kila mtu kuelekeza pesa kwenye miradi ya programu huria, pamoja na miradi ya kielimu, kimazingira, na inayoendeshwa na jamii. + +Kwa kuhamisha mwelekeo wa mtaji kutoka kwenye vitendo vya uchimbaji kuelekea kwenye mtiririko wa kuzalisha upya, miradi na makampuni yanayotoa manufaa ya kijamii, kimazingira, au kijumuiya—na ambayo yanaweza kushindwa kupata ufadhili katika fedha za jadi—yanaweza kuanza na kuzalisha athari chanya za nje kwa jamii kwa haraka na urahisi zaidi. Kuhamia kwenye mtindo huu wa ufadhili pia hufungua mlango kwa mifumo ya kiuchumi iliyo jumuishi zaidi, ambapo watu wa demografia zote wanaweza kuwa washiriki hai badala ya kuwa watazamaji tu. ReFi inatoa maono ya Ethereum kama utaratibu wa kuratibu hatua juu ya changamoto za kuwepo zinazokabili spishi zetu na viumbe vyote kwenye sayari yetu—kama safu ya msingi ya dhana mpya ya kiuchumi, ikiwezesha mustakabali jumuishi na endelevu zaidi kwa karne zijazo. + +## Masomo ya ziada kuhusu ReFi + +- [Muhtasari wa juu wa sarafu za kaboni na nafasi yake katika uchumi](https://www.klimadao.finance/resources/the-vision-of-a-carbon-currency) +- [The Ministry for the Future, riwaya inayoonyesha jukumu la sarafu inayoungwa mkono na kaboni katika kupambana na mabadiliko ya tabianchi](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Ripoti ya kina ya Kikosi Kazi cha Kuongeza Masoko ya Hiari ya Kaboni](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Ingizo la Faharasa ya CoinMarketCap la Kevin Owocki na Evan Miyazono kuhusu ReFi](https://coinmarketcap.com/academy/glossary/regenerative-finance-refi) diff --git a/public/content/translations/sw/restaking/index.md b/public/content/translations/sw/restaking/index.md new file mode 100644 index 00000000000..27bf40a47ad --- /dev/null +++ b/public/content/translations/sw/restaking/index.md @@ -0,0 +1,188 @@ +--- +title: Kuweka Dhamana Tena +metaTitle: Kuweka dhamana tena ni nini? | Manufaa na matumizi ya kuweka dhamana tena +description: Tumia ETH iliyowekwa dhamana ili kulinda huduma zingine zilizogatuliwa na upate zawadi za ziada. +lang: sw +template: use-cases +emoji: ":recycle:" +image: /images/use-cases/restaking.png +alt: Uwawakilishi wa picha ya kuweka dhamana tena kwenye Ethereum. +sidebarDepth: 2 +summaryPoint1: Tumia ETH iliyowekwa dhamana ili kulinda huduma zingine zilizogatuliwa na upate zawadi za ziada. +buttons: + - content: Kuweka dhamana tena ni nini? + toId: what-is-restaking + - content: Inafanyaje kazi? + toId: how-does-restaking-work + isSecondary: false +--- + +Mtandao wa Ethereum hulinda thamani ya mabilioni ya dola 24/7, 365. Vipi? + +Watu kote ulimwenguni hufunga (au “huweka dhamana”) [ether (ETH)](/eth/) kwenye mikataba-erevu ili kuendesha programu inayochakata miamala ya Ethereum na kulinda mtandao wa Ethereum. Kwa malipo, wanapata zawadi ya ETH zaidi. + +Kuweka dhamana tena ni teknolojia iliyoundwa kwa ajili ya [waweka dhamana](/staking/) ili kueneza usalama huu kwa huduma zingine, programu, au mitandao. Kwa malipo, wanapata zawadi za ziada za kuweka dhamana tena. Hata hivyo, pia wanaweka ETH yao iliyowekwa dhamana katika hatari zaidi. + +**Kuweka dhamana tena kumelezeewa kwa dakika 18** + + + +## Kuweka dhamana tena ni nini? {#what-is-restaking} + +Kuweka dhamana tena ni wakati waweka dhamana wanatumia ETH yao ambayo tayari imewekwa dhamana ili kulinda huduma zingine zilizogatuliwa. Kwa malipo, waweka dhamana tena wanaweza kupata zawadi za ziada kutoka kwa huduma hizo zingine juu ya zawadi zao za kawaida za kuweka dhamana kwa ETH. + +Huduma zilizogatuliwa zilizolindwa na uwekaji dhamana tena zinajulikana kama "Huduma Zinazothibitishwa Kikamilifu" (AVSs). +Kwa njia sawa na vile waweka dhamana wengi wa ETH huendesha programu ya uthibitishaji ya Ethereum, waweka dhamana tena wengi huendesha programu maalum ya AVS. + +
+ + + + +

Ni vizuri kujua

+

Ingawa "Huduma Zinazothibitishwa Kikamilifu" (AVSs) ndiyo inayojulikana zaidi, mifumo tofauti ya kuweka dhamana tena inaweza kutumia majina mengine kwa huduma zilizogatuliwa wanazosaidia kulinda, kama vile "Huduma Zinazothibitishwa Kiotomatiki," "Huduma Salama Zilizosambazwa," au "Mitandao."

+
+
+
+ +## Kuweka dhamana dhidi ya kuweka dhamana tena {#staking-vs-restaking} + +| Kuweka dhamana | Kuweka Dhamana Tena | +| -------------------------------- | ------------------------------------------------------------------ | +| Pata zawadi za ETH | Pata Zawadi za ETH + zawadi za AVS | +| Hulinda mtandao wa Ethereum | Hulinda mtandao wa Ethereum + AVS | +| Hakuna kiwango cha chini cha ETH | Hakuna kiwango cha chini cha ETH | +| Kiwango cha chini cha hatari | Kiwango cha hatari kutoka chini hadi juu | +| Muda wa kutoa unategemea foleni | Muda wa kutoa unategemea foleni + kipindi cha kutenganisha dhamana | + +## Kwa nini tunahitaji kuweka dhamana tena? {#why-do-we-need-restaking} + +Fikiria dunia mbili; moja yenye uwekaji dhamana tena na moja isiyo nayo. + + + +Katika dunia hii yenye uwekaji dhamana tena, AVS na mweka dhamana wote hunufaika kwa kuweza kupatana na kubadilishana usalama kwa zawadi za ziada. + +
+ + + + + +

Faida iliyoongezwa ya kuweka dhamana tena

+

AVS zinaweza kumwaga rasilimali zao zote katika kujenga na kutangaza huduma zao, badala ya kukengeushwa na ugatuzi na usalama.

+
+
+
+ +## Kuweka dhamana tena hufanyaje kazi? {#how-does-restaking-work} + +Kuna taasisi kadhaa zinazohusika katika uwekaji dhamana tena — kila moja ina jukumu muhimu. + +| **Istilahi** | **Maelezo** | +| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Mifumo ya kuweka dhamana tena** | Mfumo wa kuweka dhamana tena ni huduma inayounganisha AVS, waweka dhamana wa ETH, na waendeshaji. Wanaunda mifumo iliyotawanywa kwa waweka dhamana ili waweke dhamana tena ETH yao, na masoko ambapo waweka dhamana, AVS, na waendeshaji wanaweza kupatana. | +| **Waweka dhamana tena wa asili** | Watu wanaoweka dhamana ETH yao kwa kuendesha wathibitishaji wao wa Ethereum wanaweza kuunganisha ETH yao iliyowekwa dhamana kwenye mfumo wa kuweka dhamana tena, ikijumuisha EigenLayer na wengine, ili kupata zawadi za kuweka dhamana tena juu ya zawadi za wathibitishaji wa ETH. | +| | | +| **Waweka dhamana tena wa ukwasi** | Watu wanaoweka dhamana ETH yao kupitia mtoa huduma wa kuweka dhamana kwa ukwasi wa tatu, kama Lido au Rocket Pool, hupata Tokeni za Kuweka Dhamana kwa Ukwasi (LSTs) zinazowakilisha ETH yao iliyowekwa dhamana. Wanaweza kuweka dhamana tena LST hizi ili kupata zawadi za kuweka dhamana tena huku wakiweka ETH yao ya asili ikiwa imewekwa dhamana. | +| | | +| **Waendeshaji** | Waendeshaji huendesha programu ya kuweka dhamana tena ya AVS, wakifanya kazi za uthibitishaji ambazo kila AVS inahitaji. Waendeshaji kwa kawaida ni watoa huduma wa kitaalamu wanaohakikisha mambo kama vile muda wa kufanya kazi na utendaji. Kama waweka dhamana tena wasio waendeshaji, waendeshaji hutumia ETH iliyowekwa dhamana ili kulinda AVS, lakini waendeshaji pia hupokea zawadi za ziada kama malipo ya kazi yao. | +| | | +| **AVS** | Hizi ni huduma zilizogatuliwa — kama vile viashiria bei, madaraja ya tokeni, na mifumo ya data — zinazopokea usalama kutoka kwa waweka dhamana tena na kutoa zawadi za tokeni kama malipo. | + +
+ + + + + +

Ni vizuri kujua

+

Waweka dhamana tena wa asili na wa ukwasi mara nyingi hukabidhi ETH yao iliyowekwa dhamana kwa mwendeshaji, badala ya kuendesha programu ya kulinda AVS wenyewe.

+

Kwa njia hii hawahitaji kuwa na wasiwasi juu ya mahitaji magumu ya kiufundi kutoka kwa AVS, ingawa wanapokea kiwango cha chini cha zawadi kuliko waendeshaji.

+
+
+
+ +## Ni mifano gani ya kuweka dhamana tena? {#what-are-some-examples-of-restaking} + +Ingawa ni wazo jipya, miradi michache imeibuka kuchunguza uwezekano wa kuweka dhamana tena. + + + +
+ + + + + +

Tahadhari ya jina lisilo sahihi

+

Baadhi ya watu huchanganya "kuweka dhamana tena" na kukopesha na kukopa LST katika DeFi. Zote mbili hutumia ETH iliyowekwa dhamana, lakini kuweka dhamana tena kunamaanisha kulinda AVS, sio tu kupata mavuno kwenye LST.

+
+
+
+ +## Ninaweza kutengeneza kiasi gani kutokana na kuweka dhamana tena? {#how-much-can-i-make-from-restaking} + +Ingawa AVS hutoa viwango tofauti, Tokeni za Kuweka Dhamana Tena kwa Ukwasi (LRTs) kama eETH hukupa wazo la kiasi unachoweza kutengeneza. Kwa njia sawa unavyopata LST kama stETH kwa kuweka dhamana ETH yako, unaweza kupata LRT kama eETH kwa kuweka dhamana tena stETH. Tokeni hizi hupata zawadi za kuweka dhamana kwa ETH na za kuweka dhamana tena. + +**Ni muhimu kutambua hatari za kuweka dhamana tena. Zawadi zinazowezekana zinaweza kuvutia, lakini hazina hatari.** + +## Ni hatari gani za kuweka dhamana tena? {#what-are-the-risks-of-restaking} + +| **Hatari** | **Maelezo** | +| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Adhabu (au “slashing”)** | Kama ilivyo kwa uwekaji dhamana wa ETH, ikiwa waweka dhamana tena/waendeshaji watakuwa nje ya mtandao, watadhibiti ujumbe au kujaribu kuharibu mtandao, hisa zao zinaweza kupunguzwa (slashed) (kuchomwa) kwa kiasi au kabisa. | +| **Uwekaji kati** | Ikiwa waendeshaji wachache watatawala sehemu kubwa ya uwekaji dhamana tena wanaweza kuwa na ushawishi mkubwa kwa waweka dhamana tena, AVS na hata mifumo ya kuweka dhamana tena. | +| **Mwitikio mfululizo** | Ikiwa mweka dhamana tena anapata adhabu ya 'slashing' wakati akilinda AVS nyingi, hii inaweza kupunguza usalama kwa AVS zingine, na kuziweka katika hatari. | +| **Upatikanaji wa haraka wa fedha** | Kuna muda wa kusubiri (au "kipindi cha kutenganisha dhamana") kwa ajili ya kutoa ETH iliyowekwa dhamana tena kwa hivyo huenda usiwe na ufikiaji wa haraka kila wakati. | + +
+ + + + + +

Mwanzilishi mwenza wa Ethereum anaandika…

+

+ Vitalik, mwanzilishi mwenza wa Ethereum, alionya kuhusu hatari zinazoweza kutokea za kuweka dhamana tena katika chapisho la blogu la 2021 liitwalo Usizidishe Makubaliano. +

+
+
+
+ +## Jinsi ya kuanza na kuweka dhamana tena? {#how-to-get-started-with-restaking} + +| 🫡 Wanaoanza | 🤓 Watumiaji wa Juu | +| ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| 1. Weka dhamana ETH kwenye mifumo kama Lido au Rocket Pool ili upate LST. | 1. Weka dhamana ETH yako kama mthibitishaji kwenye Ethereum. | +| 2. Tumia LST hizo kuanza kuweka dhamana tena kwenye huduma ya kuweka dhamana tena. | 2. Linganisha huduma za kuweka dhamana tena kama EigenLayer, Symbiotic na zingine. | +| | 3. Fuata maagizo ya kuunganisha mthibitishaji wako kwenye mkataba-erevu wa kuweka dhamana tena. | + +
+ + + + + +

Kuweka Dhamana kwa Ethereum : Inafanyaje kazi?

+ + Jifunze Zaidi + +
+
+
+ +## Ya hali ya juu {#advanced} + + + +## Masomo zaidi {#further-reading} + +1. [ethereum.org - Mwongozo wa kuweka dhamana kwa ETH](https://ethereum.org/en/staking/) +2. [Ledger Academy - Kuweka Dhamana Tena kwa Ethereum ni Nini?](https://www.ledger.com/academy/what-is-ethereum-restaking) +3. [Consensys - EigenLayer: Itifaki ya Kuweka Dhamana Tena Iliyogatuliwa ya Ethereum Imefafanuliwa](https://consensys.io/blog/eigenlayer-decentralized-ethereum-restaking-protocol-explained) +4. [Vitalik Buterin - Usizidishe makubaliano ya Ethereum](https://vitalik.eth.limo/general/2023/05/21/dont_overload.html) +5. [Cointelegraph - EigenLayer ni nini? Itifaki ya kuweka dhamana tena ya Ethereum imefafanuliwa](https://cointelegraph.com/explained/what-is-eigenlayer-ethereums-restaking-protocol-explained) +6. [utafiti wa crypto wa a16z - EigenLayer: Uongezaji wa Kipengele kisicho na Ruhusa kwa Ethereum na Sreeram Kannan](https://www.youtube.com/watch?v=-V-fG4J1N_M) +7. [Junion - EigenLayer Imefafanuliwa: Kuweka dhamana tena ni nini?](https://www.youtube.com/watch?v=5r0SooSQFJg) +8. [The Block - Dashibodi ya Data ya Kuweka dhamana tena](https://www.theblock.co/data/decentralized-finance/restaking) diff --git a/public/content/translations/sw/roadmap/account-abstraction/index.md b/public/content/translations/sw/roadmap/account-abstraction/index.md new file mode 100644 index 00000000000..9c8127c0389 --- /dev/null +++ b/public/content/translations/sw/roadmap/account-abstraction/index.md @@ -0,0 +1,71 @@ +--- +title: Ubora wa akaunti +description: Muhtasari wa mipango ya Ethereum ya kufanya akaunti za watumiaji kuwa rahisi na salama zaidi +lang: sw +summaryPoints: + - Uondoaji wa akaunti hurahisisha zaidi kuunda pochi za mikataba mahiri + - Pochi za mikataba mahiri hurahisisha zaidi kudhibiti ufikiaji wa akaunti za Ethereum + - Vifunguo vilivyopotea na vilivyofichuliwa vinaweza kurejeshwa kwa kutumia nakala za akiba nyingi +--- + +# Uondoaji wa akaunti {#account-abstraction} + +Watumiaji wengi waliopo huingiliana na Ethereum kwa kutumia **[akaunti zinazomilikiwa na nje (EOAs)](/glossary/#eoa)**. Hii inapunguza jinsi watumiaji wanaweza kuingiliana na Ethereum. Kwa mfano, inafanya kuwa vigumu kufanya miamala na inahitaji watumiaji kuweka salio la ETH kila wakati ili kulipa ada za miamala. + +Uondoaji wa akaunti ni njia ya kutatua matatizo haya kwa kuwaruhusu watumiaji kupanga kwa urahisi usalama zaidi na hali bora ya utumiaji kwenye akaunti zao. Hii inaweza kutokea kwa [kuboresha EOAs](https://eips.ethereum.org/EIPS/eip-7702) (EIP-7702) ili ziweze kudhibitiwa na mikataba-erevu. Pia kuna njia nyingine inayohusisha kuongeza [mfumo wa pili, tofauti wa muamala](https://eips.ethereum.org/EIPS/eip-4337) (EIP-4337) ili kufanya kazi sambamba na itifaki iliyopo. Bila kujali njia, matokeo ni ufikiaji wa Ethereum kupitia pochi za mikataba mahiri, ambazo zinatumika kama sehemu ya itifaki iliyopo au kupitia mtandao wa shughuli za ziada. + +Pochi za mikataba mahiri hufungua faida nyingi kwa mtumiaji, zikiwemo: + +- fafanua sheria zako za usalama zinazonyumbulika +- okoa akaunti yako ukipoteza funguo +- shiriki usalama wa akaunti yako kwenye vifaa au watu binafsi unaoaminika +- kulipa gesi ya mtu mwingine, au mtu mwingine alipe yako +- shughuli za kundi pamoja (k.m., kuidhinisha na kutekeleza ubadilishanaji mara moja) +- fursa zaidi kwa dapps na watengenezaji wa pochi kuvumbua matumizi ya watumiaji + +Manufaa haya hayaungwi mkono moja kwa moja leo kwa sababu ni akaunti zinazomilikiwa na nje ([EOAs](/glossary/#eoa)) pekee ndizo zinaweza kuanzisha miamala. EOAs ni jozi muhimu za umma na za kibinafsi. Wanafanya kazi kama hii: + +- ikiwa una ufunguo binafsi unaweza kufanya _chochote_ kulingana na sheria za mashine halisi ya ethereum (EVM) +- ikiwa huna ufunguo binafsi, huwezi kufanya _chochote_. + +Ukipoteza funguo zako haziwezi kurejeshwa, na funguo zilizoibiwa huwapa wezi ufikiaji wa papo hapo wa pesa zote kwenye akaunti. + +Mikoba ya mikataba mahiri ni suluhisho la matatizo haya, lakini leo ni vigumu kupanga kwa sababu mwishowe, mantiki yoyote wanayotekeleza inapaswa kutafsiriwa katika seti ya shughuli za EOA kabla ya kusindika na Ethereum. Uondoaji wa akaunti huwezesha mikataba mahiri kuanzisha shughuli yenyewe, ili mantiki yoyote ambayo mtumiaji angependa kutekeleza iweze kuwekwa kwenye mkoba mahiri wa mkataba yenyewe na kutekelezwa kwenye Ethereum. + +Hatimaye, uondoaji wa akaunti huboresha usaidizi wa pochi za mikataba mahiri, na kuzifanya ziwe rahisi kuunda na salama kutumia. Kwa uondoaji wa akaunti, watumiaji wanaweza kufurahia manufaa yote ya Ethereum bila kuhitaji kuelewa teknolojia ya msingi. + +## Zaidi ya maneno ya mbegu {#beyond-seed-phrases} + +Akaunti za leo zinalindwa kwa kutumia funguo za faragha zinazokokotolewa kutoka kwa vifungu vya maneno. Mtu yeyote aliye na idhini ya kufikia kifungu cha mbegu anaweza kugundua kwa urahisi ufunguo wa faragha unaolinda akaunti na kupata ufikiaji wa mali yote inayolinda. Ikiwa ufunguo wa faragha na maneno ya mbegu yamepotea, vipengee haviwezi kufikiwa kabisa. Kupata misemo hii ya mbegu ni jambo gumu, hata kwa watumiaji waliobobea, na hadaa ya maneno ya mbegu ni mojawapo ya ulaghai unaojulikana sana. + +Uondoaji wa akaunti hutatua hili kwa kutumia mkataba mahiri kushikilia mali na kuidhinisha miamala. Mikataba mahiri inaweza kujumuisha mantiki maalum iliyoundwa kwa usalama wa hali ya juu na utumiaji. Watumiaji bado wanatumia funguo za faragha kudhibiti ufikiaji, lakini kwa hatua za usalama zilizoimarishwa. + +Kwa mfano, funguo za nakala za akiba zinaweza kuongezwa kwenye pochi, na hivyo kuwezesha uingizwaji wa ufunguo ikiwa ufunguo msingi umeingiliwa. Kila ufunguo unaweza kulindwa kwa njia tofauti au kusambazwa kati ya watu wanaoaminika, na hivyo kuongeza usalama kwa kiasi kikubwa. Sheria za ziada za pochi zinaweza kupunguza uharibifu kutokana na kufichuliwa kwa ufunguo, kama vile kuhitaji saini nyingi kwa miamala ya thamani ya juu au kuzuia miamala kwa anwani zinazoaminika. + +## Uzoefu bora wa mtumiaji {#better-user-experience} + +Uondoaji wa akaunti huboresha sana matumizi na usalama kwa kutumia pochi za mikataba mahiri katika kiwango cha itifaki. Wasanifu programu wanaweza kuvumbua kwa uhuru, na kuboresha uunganishaji wa shughuli kwa kasi na ufanisi. Ubadilishanaji rahisi unaweza kuwa shughuli za mbofyo mmoja, na kuboresha kwa kiasi kikubwa urahisi wa utumiaji. + +Usimamizi wa gharama za muamala unaboresha sana. Programu zinaweza kulipa ada za gesi za watumiaji au kuruhusu malipo katika tokeni tofauti na ETH, hivyo basi kuondoa hitaji la kudumisha salio la ETH. + +## Je, uondoaji wa akaunti utatekelezwa vipi? {#how-will-aa-be-implemented} + +Kwa sasa, pochi za mikataba mahiri ni changamoto kutekeleza kwani zinategemea miamala changamano ya kufunga msimbo. Ethereum inaweza kubadilisha hili kwa kuruhusu mikataba mahiri ianzishe shughuli moja kwa moja, kupachika mantiki katika mikataba mahiri ya Ethereum badala ya kutegemea mawakala wa nje. + +### EIP-4337: Uondoaji wa akaunti bila mabadiliko ya itifaki + +EIP-4337 huwezesha usaidizi wa pochi ya mkataba mahiri bila kurekebisha itifaki ya msingi ya Ethereum. Inatambulisha vipengee vya `UserOperation` vinavyokusanywa katika mafungu ya miamala na wathibitishaji, na kurahisisha uundaji wa mkoba. Mkataba wa EIP-4337 EntryPoint ulitumwa kwa Ethereum Mainnet tarehe 1 Machi 2023 na umewezesha uundaji wa pochi mahiri zaidi ya milioni 26 na Uendeshaji wa Watumiaji milioni 170. + +## Maendeleo ya sasa {#current-progress} + +Kama sehemu ya uboreshaji wa Pectra ya Ethereum, EIP-7702 imepangwa Mei 7, 2025. EIP-4337 imekubaliwa kwa wingi, [kukiwa na zaidi ya akaunti-erevu milioni 26 zimetumwa na zaidi ya `UserOperation` milioni 170 zimechakatwa](https://www.bundlebear.com/erc4337-overview/all). + +## Masomo zaidi {#further-reading} + +- [erc4337.io](https://docs.erc4337.io/) +- [Nyaraka za EIP-4337](https://eips.ethereum.org/EIPS/eip-4337) +- [Nyaraka za EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) +- [Dashibodi ya ukubalifu wa ERC-4337](https://www.bundlebear.com/erc4337-overview/all) +- ["Safari ya Kuelekea Uondoaji wa Akaunti" ya Vitalik](https://notes.ethereum.org/@vbuterin/account_abstraction_roadmap#Transaction-inclusion-lists) +- [Blogu ya Vitalik kuhusu mikoba ya urejeshaji wa kijamii](https://vitalik.eth.limo/general/2021/01/11/recovery.html) +- [Uondoaji Bora wa Akaunti](https://github.com/4337Mafia/awesome-account-abstraction) diff --git a/public/content/translations/sw/roadmap/beacon-chain/index.md b/public/content/translations/sw/roadmap/beacon-chain/index.md index 2dcb95786af..e5cac56a046 100644 --- a/public/content/translations/sw/roadmap/beacon-chain/index.md +++ b/public/content/translations/sw/roadmap/beacon-chain/index.md @@ -1,69 +1,79 @@ --- -title: Mnyororo Kioleza +title: Beacon chain description: Jifunze juu ya Mnyororo Kioleza - Kisasisho kilichoanzishwa na Ethereum ya uthibitisho-wa-hisa. lang: sw template: upgrade image: /images/upgrades/core.png -alt: -summaryPoint1: Mnyororo Kioleza haitabadili kitu chochote katika Ethereum ya leo. -summaryPoint2: Itaratibu mtandao, na kutumikia kama safu ya makubaliano. -summaryPoint3: Inatoa muhtasari wa uthibitisho-wa-hisa kwenyeikolojia ya Ethereum. -summaryPoint4: Unaweza kua unaitambua hii kama "Awamu 0" kwenye mipango ya kitaalamu. +alt: +summaryPoint1: Mnyororo Kioleza ulianzisha uthibitisho-wa-hisa kwa mfumo wa ikolojia wa Ethereum. +summaryPoint2: Uliunganishwa na mnyororo asilia wa uthibitishaji-wa-kazi wa Ethereum mnamo Septemba 2022. +summaryPoint3: Mnyororo Kioleza ulianzisha mantiki ya makubaliano na itifaki ya uvumi wa bloku ambayo sasa inalinda Ethereum. --- - Mnyororo wa Kioleza ulisafirishwa Disemba 1 saa sita mchana wakati wa ulimwengu ulioratibiwa. Kujifunza zaidi, chunguza taarifa. Kama unataka kuhalalisha mnyororo, unaweza [kuweka ETH yako kama hisa](/staking/). + Mnyororo Kioleza ulizinduliwa mnamo Desemba 1, 2020, na kurasimisha uthibitisho-wa-hisa kama utaratibu wa makubaliano wa Ethereum kwa sasisho la Muungano mnamo Septemba 15, 2022. +## Mnyororo Kioleza ni nini? {#what-is-the-beacon-chain} + +Mnyororo Kioleza ni jina la mnyororo wa bloku asilia wa uthibitisho-wa-hisa uliyozinduliwa mnamo 2020. Uliundwa ili kuhakikisha mantiki ya makubaliano ya uthibitisho-wa-hisa ilikuwa thabiti na endelevu kabla ya kuiwezesha kwenye Mtandao Mkuu wa Ethereum. Kwa hivyo, uliendeshwa sambamba na Ethereum asilia ya uthibitishaji-wa-kazi. Mnyororo Kioleza ulikuwa mnyororo wa bloku 'tupu', lakini kuzima uthibitishaji-wa-kazi na kuwasha uthibitisho-wa-hisa kwenye Ethereum kulihitaji kuuelekeza Mnyororo Kioleza kukubali data za miamala kutoka kwa programu za utekelezaji, kuzikusanya katika bloku na kisha kuzipanga kuwa mnyororo wa bloku kwa kutumia utaratibu wa makubaliano unaotegemea uthibitisho-wa-hisa. Wakati huo huo, wateja asilia wa Ethereum walizima uchimbaji wao, uenezaji wa bloku na mantiki ya makubaliano, na kukabidhi yote hayo kwa Mnyororo Kioleza. Tukio hili lilijulikana kama [Muungano](/roadmap/merge/). Mara tu Muungano ulipotokea, hakukuwa tena na minyororo miwili ya bloku. Badala yake, kulikuwa na Ethereum moja tu ya uthibitisho-wa-hisa, ambayo sasa inahitaji wateja wawili tofauti kwa kila nodi. Mnyororo Kioleza sasa ni safu ya makubaliano, mtandao wa rika-kwa-rika wa wateja wa makubaliano ambao hushughulikia uvumi wa bloku na mantiki ya makubaliano, huku wateja asilia wakiunda safu ya utekelezaji, ambayo inawajibika kwa uvumi na utekelezaji wa miamala, na kudhibiti hali ya Ethereum. Safu hizi mbili zinaweza kuwasiliana kwa kutumia Engine API. + ## Myororo wa Kioleza ni nini? {#what-does-the-beacon-chain-do} -Mnyororo wa Beacon utaendeleza mwenendo wa kutanua mtandao wake wa [shards](/roadmap/danksharding/) na [wanahisa](/staking/). Lakini haitakua kama [mtandao mkuu wa Ethereum](/glossary/#mainnet) wa leo. Inaweza kuhimili akaunti au mikataba mahiri. +Mnyororo Kioleza ni jina lililopewa leja ya akaunti iliyoendesha na kuratibu mtandao wa [waweka hisa](/staking/) wa Ethereum kabla ya waweka hisa hao kuanza kuthibitisha bloku halisi za Ethereum. Hata hivyo, haichakati miamala wala kushughulikia mwingiliano wa mikataba-erevu kwa sababu hilo linafanywa katika safu ya utekelezaji. +Mnyororo Kioleza unawajibika kwa mambo kama vile kushughulikia bloku na uthibitishaji, kuendesha algoriti ya kuchagua uma, na kudhibiti zawadi na adhabu. +Soma zaidi kwenye [ukurasa wetu wa usanifu wa nodi](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). -Jukumu ya mnyororo wa Kioleza litabadilika baada ya mda ila sehemu ya msingi ya [usalama, kuendeleza na ubadilikaji wa Ethereum tunayoijenga](/roadmap/). +## Athari za Mnyororo Kioleza {#beacon-chain-features} -## Sura za mnyororo wa Kioleza {#beacon-chain-features} +### Utangulizi wa kusimamisha {#introducing-staking} -### Kuanzisha hisa {#introducing-staking} +Mnyororo Kioleza ulianzisha [uthibitisho-wa-hisa](/developers/docs/consensus-mechanisms/pos/) kwa Ethereum. Hii huiweka Ethereum salama na huwapatia wathibitishaji ETH zaidi katika mchakato huo. Kiutendaji, kusimamisha kunahusisha kusimamisha ETH ili kuwezesha programu ya mthibitishaji. Kama mweka hisa, unaendesha programu ambayo huunda na kuthibitisha bloku mpya katika mnyororo. -Mnyororo wa Kioleza utaingiza [uthibitisho-wa-hisa](/developers/docs/consensus-mechanisms/pos/) kwenye Ethereum. Hii ndio njia mpya ya wewe kusaidia Ethereum kua salama. Ifikirie kama faida kw jamii ambayo itafanya Ethereum kua na afya na kukutenegenezea hela zaidi wakati wa mchakato. Kiuhalisia, itahusisha wewe kuweka hisa za ETH ili kuamsha programu. Kama mthibitishaji utafanya mchakato wa shughuli za pesa na utaunda vitalu vipya kwenye mnyororo. +Kusimamisha hutumikia madhumuni sawa na yale ambayo [uchimbaji](/developers/docs/consensus-mechanisms/pow/mining/) ulivyokuwa ukitumika, lakini ni tofauti kwa njia nyingi. Uchimbaji ulihitaji matumizi makubwa ya awali katika mfumo wa maunzi yenye nguvu na matumizi ya nishati, na kusababisha uchumi wa kiwango, na kukuza umilikaji wa kati. Uchimbaji pia haukuja na hitaji lolote la kufungia mali kama dhamana, na kupunguza uwezo wa itifaki kuwaadhibu wahusika wabaya baada ya shambulio. -Kuweka hisa na kua mt hibitishaji ni rahisi kuliko [kuchimba](/developers/docs/consensus-mechanisms/pow/mining/)(jinsi ambavyo mtandao ni saklama kwa sasa). Mwishowe hii inamatumaini itasaidia Ethereum kua salama zaidi. Jinsi watu wengi wanavyoshiriki katika mtandao, ndivyo unavyozodi kujitegemea na salama kutoka kwa shambulio litakalokuja. +Mpito kuelekea uthibitisho-wa-hisa uliifanya Ethereum kuwa salama zaidi na yenye ugatuaji mkubwa ikilinganishwa na uthibitishaji-wa-kazi. Kadiri watu wengi wanavyoshiriki katika mtandao, ndivyo unavyozidi kuwa na ugatuaji na salama dhidi ya mashambulizi. -Kama ungependa kua mthibitishaji na kusaidia kulinda mnyororo wa Kioleza, [jifunze zaidi jinsi ya kuweka hisa](/staking/). + Ikiwa una nia ya kuwa mthibitishaji na kusaidia kulinda Ethereum, [jifunze zaidi kuhusu kusimamisha](/staking/). -Hili pia ni badiliko muhumu kwa ajili ya uboreshaji wa Eth2:[minyororo ya vigae](/roadmap/danksharding/). +### Kuweka mipangilio kwa ajili ya ugawanyaji {#setting-up-for-sharding} -### Maandalizi ya minyororo ya shards {#setting-up-for-shard-chains} +Tangu Mnyororo Kioleza ulipoungana na Mtandao Mkuu asilia wa Ethereum, jumuiya ya Ethereum ilianza kutafuta njia za kuongeza ukubwa wa mtandao. -Baada ya mtandao mkuu kuungana na mnyororo wa Kioleza, Uboreshaji utakaofuata utaanzisha minyororo ya shard kwenda kwenye mtandao wa uthibitisho-wa-hisa. Hizi "shards" zitaongeza nafasi kwenye mtandao na kuendeleza kasi za shughuli kwa kutanua mtandao kufikia minyororo ya vitalu 64. Mnyororo Kioleza ni hatua ya kwanza muhimu katika uanzilishi wa minyororo ya shard, hii ni kwasababu inahitaji hisa ili kufanya kazi kwa usalama. +Uthibitisho-wa-hisa una faida ya kuwa na sajili ya wazalishaji wote wa bloku walioidhinishwa wakati wowote, kila mmoja akiwa na ETH kama hisa. Sajili hii inaandaa jukwaa la uwezo wa kugawanya na kutawala lakini kwa uhakika inagawanya majukumu maalum ya mtandao. -Mwishowe mnyororo Kioleza utakua na wajibu wa kugawa ruhusa kwa wanahisa bila mpangilio ili kuthibitisha minyororo ya vigae. Hii ni funguo ya kuweka ugumu kwa wanahisa ili wasiungane na kuteka nyara shard. Vizuri basi, hii inamaanisha [wanachini ya 1 katika nafasi trilioni](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). +Wajibu huu ni kinyume na uthibitishaji-wa-kazi, ambapo wachimbaji hawana wajibu kwa mtandao na wanaweza kuacha uchimbaji na kuzima programu zao za nodi kabisa papo hapo bila matokeo yoyote. Pia hakuna sajili ya wapendekezaji wa bloku wanaojulikana na hakuna njia ya kuaminika ya kugawanya majukumu ya mtandao kwa usalama. -## Mahusiano kati ya visasisho {#relationship-between-upgrades} +[Zaidi kuhusu ugawanyaji](/roadmap/danksharding/) + +## Uhusiano kati ya masasisho {#relationship-between-upgrades} Visasisho vyote vya Eth2 vinahusiana kwa kiasi fulani. Basi hebu tukumbushe jinsi mnyororo wa Beacon(Kioleza) unavyoathiri visasisho vingine. -### Mtandao mkuu na mnyororo Kioleza {#mainnet-and-beacon-chain} +### Mnyororo Kioleza na Muungano {#merge-and-beacon-chain} -Mnyororo Kioleza, mwanzoni, itakuwa imetengana na Mtandao mkuu wa Ethereum tunaotumia leo hii. Lakini mwishowe vitaunganishwa. Mpango ni "kuunganisha" Mtandao Mkuu kwenye mfumo wa uthibitisho-wa-hisa amabao Mnyororo Kioleza unaudhibiti na kuuratibu. +Hapo awali, Mnyororo Kioleza ulikuwepo kando na Mtandao Mkuu wa Ethereum, lakini viliunganishwa mnamo 2022. - Unganisha + Muungano -### Vigae na Mnyororo Kioleza {#shards-and-beacon-chain} +### Vigawe na Mnyororo Kioleza {#shards-and-beacon-chain} -Minyororo ya Vigae itakua salama kuingia katika ikolojia ya Ethereum pale tu utaratibu wa makubaliano kwenye uthibitisho-wa-hisa utakapochukua nafasi. Mnyororo Kioleza utaanzisha hisa, ikitengeneza njia ili uboreshwaji wa mnyororo-kigae ufuate. +Ugawanyaji unaweza kuingia kwa usalama tu katika mfumo wa ikolojia wa Ethereum kukiwa na utaratibu wa makubaliano wa uthibitisho-wa-hisa. Mnyororo Kioleza ulianzisha kusimamisha, ambayo 'iliunganishwa' na Mtandao Mkuu, na kuandaa njia kwa ajili ya ugawanyaji kusaidia kuongeza zaidi ukubwa wa Ethereum. - Minyororo ya Kigae + Minyororo ya Vigawe - +## Masomo Zaidi + +- [Zaidi kuhusu usanifu wa nodi](/developers/docs/nodes-and-clients/node-architecture) +- [Zaidi kuhusu uthibitisho-wa-hisa](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/sw/roadmap/danksharding/index.md b/public/content/translations/sw/roadmap/danksharding/index.md new file mode 100644 index 00000000000..fcee17a4a86 --- /dev/null +++ b/public/content/translations/sw/roadmap/danksharding/index.md @@ -0,0 +1,89 @@ +--- +title: Ugawanyikaji wa Dank +description: Jifunze kuhusu Proto-Danksharding na Danksharding - visasisho viwili mfululizo vya kuongeza viwango vya Ethereum. +lang: sw +summaryPoints: + - Danksharding ni uboreshaji wa awamu nyingi ili kuboresha uimara na uwezo wa Ethereum. + - Hatua ya kwanza, Proto-Danksharding, inaongeza data kwenye vitalu + - Blobs za data zinatoa njia rahisi zaidi kwa rollups kutoa machapisho ya Ethereum na gharama hizo zinaweza kupitishwa kwa watumiaji kwa njia ya Gharama Nafuu Ya Miamala. + - Baadaye, Danksharding kamili itaeneza jukumu la kuthibitisha blobs za data kwenye sehemu ndogo za nodi, na kupanua zaidi Ethereum hadi zaidi ya miamala 100,000 kwa sekunde. +--- + +# Danksharding {#danksharding} + +**Danksharding** ni jinsi Ethereum inavyokuwa blockchain inayoweza kupanuka kikweli, lakini kuna uboreshaji kadhaa wa itifaki unaohitajika ili kufika hapo. **Proto-Danksharding** ni hatua ya kati katika mchakato huo. Zote mbili zinalenga kufanya miamala kwenye Layer 2 iwe nafuu iwezekanavyo kwa watumiaji na zinapaswa kuongeza Ethereum hadi >100,000 ya miamala kwa sekunde. + +## Proto-Danksharding ni nini? {#what-is-protodanksharding} + +Proto-Danksharding, inayojulikana pia kama [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844), ni njia kwa [rollups](/layer-2/#rollups) kuongeza data nafuu zaidi kwenye vizuizi. Jina linatokana na watafiti wawili waliopendekeza wazo hilo: Protolambda na Dankrad Feist. Kihistoria, rollups zilikuwa na kikomo katika jinsi zinavyoweza kufanya miamala ya watumiaji kuwa nafuu kwa sababu ya ukweli kwamba zinachapisha miamala yao katika `CALLDATA`. + +Hii ni ghali kwa sababu inachakatwa na nodi zote za Ethereum na inabaki kwenye mnyororo milele, ingawa rollups zinahitaji data hiyo kwa muda mfupi tu. Proto-Danksharding inaleta blobs za data ambazo zinaweza kutumwa na kuambatanishwa kwenye vitalu. Data katika blobs hizi haiwezi kufikiwa na EVM na huondolewa moja kwa moja baada ya kipindi maalumu cha muda (kimewekwa kuwa epochs 4096 kwa wakati wa kuandika, au takriban siku 18). Hii inamaanisha kuwa rollups zinaweza kutuma data zao kwa gharama nafuu zaidi na kupeleka akiba hiyo kwa watumiaji wa mwisho kwa njia ya miamala ya bei nafuu. + + + +Rollups ni njia ya kupanua Ethereum kwa kuunganisha miamala nje ya mnyororo kisha kuchapisha matokeo kwenye Ethereum. Rollup kwa msingi wake unaundwa na sehemu mbili: data na ukaguzi wa utekelezaji. Data ni mfuatano kamili wa miamala iliyochakatwa na rollup ili kutoa mabadiliko ya hali yanayochapishwa kwenye Ethereum. Ukaguzi wa utekelezaji ni utekelezaji upya wa miamala hiyo inayofanywa na mchezaji mwaminifu (anaejulikana kama "prover") ili kuhakikisha kuwa mabadiliko ya hali yaliyopendekezwa ni sahihi. Ili kufanya ukaguzi wa utekelezaji, data ya muamala lazima ipatikane kwa muda wa kutosha ili mtu yeyote apakue na kuangalia. Hii inamaanisha kuwa tabia yoyote isiyo ya kweli ya mpangaji wa rollup inaweza kubainishwa na kupingwa na prover. Hata hivyo, haihitaji kupatikana milele. + + + + +Rollups huchapisha ahadi za data zao za miamala kwenye mnyororo na pia hufanya data halisi ipatikane katika blobs za data. Hii inamaanisha kuwa provers wanaweza kukagua kama ahadi hizo ni halali au kupinga data wanayodhani ni yenye makosa. Kiwango cha nodi, blobs za data zinashikiliwa na mteja wa makubaliano. Wateja wa makubaliano wanathibitisha kuwa wameona data hiyo na kwamba imeenezwa katika mtandao mzima. Kama data ingehifadhiwa milele, wateja hawa wangekuwa na mzigo mkubwa na kusababisha mahitaji makubwa ya vifaa kwa kuendesha nodi. Badala yake, data huondolewa moja kwa moja kutoka kwenye nodi kila baada ya siku 18. Thibitisho za wateja wa makubaliano zinaonyesha kwamba kulikuwa na nafasi ya kutosha kwa provers kuthibitisha data. Data halisi inaweza kuhifadhiwa nje ya mnyororo na waendeshaji wa rollup, watumiaji, au wengine. + + +### Je, data ya blob inathibitishwaje? {#how-are-blobs-verified} + +Rollups huchapisha miamala wanayoitekeleza katika blobs za data. Pia huchapisha "ahadi" kwa data hiyo. Hufanya hivi kwa kufananisha kazi ya polynomial na data hiyo. Kazi hii inaweza kisha kutathminiwa kwenye pointi mbalimbali. Kwa mfano, tukifafanua kazi rahisi sana `f(x) = 2x-1` basi tunaweza kutathmini kazi hii kwa `x = 1`, `x = 2`, `x = 3` na kupata matokeo `1, 3, 5`. Prover anatumia kazi ile ile kwenye data na kutathmini kwenye pointi sawa. Iwapo data ya awali itabadilishwa, kazi hiyo haitakuwa ile ile, na kwa hivyo thamani zinazopatikana kwenye kila pointi pia hazitakuwa sawa. Kwenye ukweli, ahadi na uthibitisho ni mgumu zaidi kwa sababu zimefungwa ndani ya kazi za kriptografia. + +### KZG ni nini? {#what-is-kzg} + +KZG ni kifupi cha Kate-Zaverucha-Goldberg - majina ya [waandishi watatu wa asili](https://link.springer.com/chapter/10.1007/978-3-642-17373-8_11) wa mpango unaopunguza donge la data na kulifanya liwe ["ahadi" ya kriptografia](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html) ndogo. Blob ya data iliyowasilishwa na rollup lazima ithiibishwe ili kuhakikisha kuwa rollup haijatenda vibaya. Hii inahusisha prover kurudia kutekeleza miamala iliyoko kwenye blob ili kuangalia kuwa ahadi ilikuwa halali. Hii kwa dhana ni sawa na jinsi wateja wa utekelezaji wanavyokagua uhalali wa miamala ya Ethereum kwenye tabaka la 1 kwa kutumia uthibitisho wa Merkle. KZG ni uthibitisho mbadala unaofananisha mlinganyo wa polynomial na data. Ahadi inathibitisha polynomial kwa kutathmini kwenye pointi fulani za siri. Prover atafananisha polynomial ile ile juu ya data na kutathmini kwenye thamani sawa, akikagua kwamba matokeo ni yale yale. Hii ni njia ya kuthibitisha data ambayo inalingana na mbinu za zero-knowledge zinazotumika na baadhi ya rollups na hatimaye sehemu nyingine za itifaki ya Ethereum. + +### Sherehe ya KZG ilikuwa nini? {#what-is-a-kzg-ceremony} + +Sherehe ya KZG ilikuwa njia ya watu wengi kutoka jamii ya Ethereum kushirikiana kuunda mfuatano wa namba za siri za nasibu ambazo zinaweza kutumika kuthibitisha baadhi ya data. Ni muhimu sana kwamba mfuatano huu wa namba usijulikane na usiweze kuundwa upya na mtu yeyote. Ili kuhakikisha hili, kila mtu aliyeshiriki katika sherehe alipokea mfuatano kutoka kwa mshiriki aliyetangulia kabla yake. Kisha wakatengeneza thamani mpya za nasibu (k.m., kwa kuruhusu kivinjari chao kupima msogeo wa kipanya chao) na kuichanganya na thamani ya awali. Baada ya hapo walituma thamani hiyo kwa mshiriki aliyefuata na kuifuta kutoka kwenye kompyuta yao ya ndani. Iwapo mtu mmoja tu katika sherehe alifanya hivi kwa uaminifu, thamani ya mwisho haitajulikana kwa mshambuliaji. + +Sherehe ya KZG ya EIP-4844 ilikuwa wazi kwa umma na maelfu ya watu walishiriki kuongeza usahihi wao wa nasibu (randomness). Kwa jumla kulikuwa na michango zaidi ya 140,000, na kuifanya kuwa sherehe kubwa zaidi ya aina yake duniani. Ili sherehe hiyo kudhuriwa, washiriki 100% wa sherehe hiyo wangehitajika kuwa wa udanganyifu kikamilifu. Kutoka kwa mtazamo wa washiriki, ikiwa wanajua walikuwa waaminifu, hakuna haja ya kumuamini mtu mwingine kwa sababu wanajua kwamba walihakikisha sherehe hiyo salama (kila mmoja alitimiza sharti la mshiriki 1-kati -ya -N kuwa waaminifu). + + + +Wakati rollup inachapisha data katika blob, wanatoa "ahadi" ambayo wanachapisha kwenye mnyororo. Ahadi hii ni matokeo ya kutathmini polynomial iliyofanana na data kwenye pointi fulani. Pointi hizi zinafafanuliwa na namba za nasibu zilizotengenezwa katika sherehe ya KZG. Provers kisha wanaweza kutathmini polynomial kwenye pointi zile zile ili kuthibitisha data—ikiwa wanapata thamani sawa basi data ni sahihi. + + + + +Iwapo mtu anajua maeneo ya nasibu yaliyotumika kwa ahadi, ni rahisi kwao kuunda polynomial mpya inayofanana na pointi hizo maalum (yaani, "mgongano"). Hii inamaanisha wanaweza kuongeza au kuondoa data kutoka kwenye blob na bado ikatoa uthibitisho halali. Ili kuzuia hili, badala ya kutoa provers maeneo halisi ya siri, wanapokea maeneo hayo yaliyofungwa ndani ya "sanduku jeusi" la kriptografia kwa kutumia mizunguko ya elliptic. Hizi kwa ufanisi huchanganya thamani kwa namna ambayo thamani za awali haziwezi kutengenezwa tena, lakini kwa kutumia algebra mahiri provers na wakaguzi bado wanaweza kutathmini polynomials kwenye pointi wanazowakilisha. + + + + Hapana Danksharding wala Proto-Danksharding hawafuati mfano wa kawaida wa "sharding" unaolenga kugawanya kiambajengo katika sehemu nyingi. Mnyororo wa shard sasa si sehemu ya mpango wa utekelezaji. Badala yake, Danksharding inatumia sampuli za data zilizogawanywa kwenye blobs kupanua Ethereum. Hii ni rahisi zaidi kutekeleza. Mfumo huu mara nyingine unaitwa "data-sharding". + + +## Danksharding ni nini? {#what-is-danksharding} + +Danksharding ni utekelezaji kamili wa upanuzi wa rollup ulioanza na Proto-Danksharding. Danksharding italeta nafasi kubwa sana kwenye Ethereum ili rollups waweze kuingiza data zao za miamala zilizokomeshwa. Hii inamaanisha kuwa Ethereum itakuwa na uwezo wa kuunga mkono mamia ya rollups binafsi kwa urahisi na kufanya mamilioni ya miamala kwa sekunde kuwa halisi. + +Jinsi hii inavyofanya kazi ni kwa kupanua blobs zinazounganishwa na vitaku kuanzia sita (6) katika Proto-Danksharding, hadi 64 katika Danksharding kamili. Mabadiliko mengine yote yanayohitajika ni masasisho tu ya jinsi wateja wa makubaliano wanavyofanya kazi ili kuwawezesha kushughulikia blobs kubwa mpya. Mabadiliko kadhaa kati ya haya tayari yako kwenye mpango wa utekelezaji kwa madhumuni mengine ambayo hayahusiani na Danksharding. Kwa mfano, Dankharding inahitaji utengano wa wajenzi wa mapendekezo kutekelezwa. Hii ni sasisho linalotofautisha kazi za kujenga vitalu na kupendekeza vitalu kati ya validators tofauti. Vivyo hivyo, sampuli za upatikaji wa data zinahitajika kwa Danksharding, lakini pia zinahitajika kwa maendeleo ya wateja wepesi sana ambao hawahifadhi data nyingi za kihistoria ("stateless clients"). + + + +Utenganisho wa wajenzi wa pendekezo unahitajika ili kuzuia wathibitishaji binafsi kutoa ahadi za gharama kubwa na uthibitisho wa Mb 32 za data ya blob. Hii ingelazimisha stakers wa nyumbani kuathirika sana na kuhitaji kuwekeza kwenye vifaa vyenye nguvu zaidi, jambo ambalo linadhuru mfumo mtawanyiko. Badala yake, wajenzi maalum wa vitalu huchukua jukumu la kazi hii ya gharama kubwa ya hesabu. Kisha, wanafanya vitalu vyao vipatikane kwa wapendekeza vitalu ili zichapishwe kwenye mtandao. Mpendekeza kitalu huchagua kitalu ambacho ni faida zaidi. Kila mtu anaweza kuthibitisha blobs kwa gharama nafuu na kwa haraka, ikimaanisha mthibitishaji yeyote wa kawaida anaweza kuangalia kwamba wajenzi wa vitalu wanatenda kwa uaminifu. Hii inaruhusu blobs kubwa kushughulikiwa bila kuhatarisha mfumo mtawanyo. Wajenzi wa vitalu wasio waaminifu wanaweza tu kuondolewa kwenye mtandao na kupata adhabu ya kupunguzwa – wengine watachukua nafasi yao kwa sababu ujenzi wa vitalu ni shughuli yenye faida. + + + + +Sampuli za upatikaji wa data zinahitajika ili wathibitishaji waweze kuthibitisha data za blob haraka na kwa ufanisi. Kwa kutumia sampuli za upatikaji wa data, validators wanaweza kuwa na uhakika mkubwa kwamba data za blob zilikuwa zinapatikana na ziliwekwa kwa usahihi. Kila validator anaweza kuchagua kwa nasibu pointi chache tu za data na kuunda uthibitisho, ikimaanisha hakuna mthibitishaji anayehitajika kukagua blob nzima. Iwapo data yoyote itakosekana, itatambuliwa haraka na blob hiyo itakataliwa. + + +### Maendeleo ya sasa {#current-progress} + +Full Danksharding bado ipo mbali kwa miaka kadhaa. Wakati huo huo, sherehe ya KZG imekamilika na zaidi ya michango 140,000, na [EIP](https://eips.ethereum.org/EIPS/eip-4844) ya Proto-Danksharding imekomaa. Pendekezo hili limewekwa kikamilifu kwenye mitandao yote ya majaribio, na liliaanza kutumika kwenye Mainnet kupitia sasisho la mtandao la Cancun-Deneb ("Dencun") mnamo Machi 2024. + +### Masomo zaidi {#further-reading} + +- [Madokezo ya Proto-Danksharding](https://notes.ethereum.org/@vbuterin/proto_danksharding_faq) - _Vitalik Buterin_ +- [Madokezo ya Dankrad kuhusu Danksharding](https://notes.ethereum.org/@dankrad/new_sharding) +- [Dankrad, Proto na Vitalik wakijadili Danksharding](https://www.youtube.com/watch?v=N5p0TB77flM) +- [Sherehe ya KZG](https://ceremony.ethereum.org/) +- [Hotuba ya Devcon ya Carl Beekhuizen kuhusu mipangilio inayoaminika](https://archive.devcon.org/archive/watch/6/the-kzg-ceremony-or-how-i-learnt-to-stop-worrying-and-love-trusted-setups/?tab=YouTube) +- [Zaidi kuhusu sampuli za upatikanaji wa data kwa blobs](https://hackmd.io/@vbuterin/sharding_proposal#ELI5-data-availability-sampling) +- [Dankrad Feist kuhusu ahadi na ithibati za KZG](https://youtu.be/8L2C6RDMV9Q) +- [Ahadi za polinomial za KZG](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html) diff --git a/public/content/translations/sw/roadmap/dencun/index.md b/public/content/translations/sw/roadmap/dencun/index.md new file mode 100644 index 00000000000..8d918ead2bb --- /dev/null +++ b/public/content/translations/sw/roadmap/dencun/index.md @@ -0,0 +1,121 @@ +--- +title: Maswali Yanayoulizwa Mara kwa Mara ya Cancun-Deneb (Dencun) +description: Maswali yanayoulizwa mara kwa mara kuhusu uboreshaji wa mtandao wa Cancun-Deneb (Dencun) +lang: sw +--- + +# Cancun-Deneb (Dencun) {#dencun} + +Cancun-Deneb (Dencun) ni sasisha wa mtandao wa Ethereum, unaowasha Proto-Danksharding (EIP-4844). Uboreshaji huu unaleta data ya muda inayojulikana kama blobs kwa ajili ya hifadhi ya bei nafuu ya 'unda-mpya' (unda-mpya) za tabaka la 2 (L2). + +Aina mpya ya muamala inawawezesha watoa huduma wa unda-mpya kuhifadhi data kwa gharama nafuu zaidi katika kile kinachojulikana kama "blobs." 'Blobs' zinahakikishiwa kupatikana kwenye mtandao kwa takriban siku 18 (kwa usahihi zaidi, 'epochs' 4096). Baada ya kipindi hiki, 'blobs' huondolewa kwenye mtandao, lakini programu bado zinaweza kuthibitisha uhalali wa data zao kwa kutumia ithibati. + +Hii inapunguza kwa kiasi kikubwa gharama za unda-mpya, inapunguza ukuaji wa chaini, na inasaidia kuhudumia watumiaji wengi zaidi huku ikidumisha usalama na seti ya waendeshaji nodi iliyogatuliwa. + +## Ni lini tunatarajia unda-mpya zionyeshe ada za chini kutokana na Proto-Danksharding? {#when} + +- Sasisha huu uliwashwa kwenye 'epoch' ya 269568, tarehe 13-Machi-2024 saa 13:55 (UTC) +- Watoa huduma wote wakuu wa 'unda-mpya', kama vile Arbitrum au Optimism, wameashiria kwamba 'blobs' zitaungwa mkono mara tu baada ya uboreshaji. +- Muda wa usaidizi kwa kila 'unda-mpya' unaweza kutofautiana, kwani kila mtoa huduma lazima asasishwe mifumo yake ili kunufaika na nafasi mpya ya 'blob'. + +## Je, ETH inawezaje kubadilishwa baada ya 'hard fork'? {#scam-alert} + +- **Hakuna Hatua Inayohitajika kwa ETH Yako**: Kufuatia uboreshaji wa Dencun wa Ethereum, hakuna haja ya kubadilisha au kuboresha ETH yako. Salio la akaunti yako litabaki kama lilivyo, na ETH unayomiliki sasa itaendelea kupatikana katika hali yake ya sasa baada ya 'hard fork'. +- **Jihadhari na Ulaghai!** **mtu yeyote anayekuelekeza "kuboresha" ETH yako anajaribu kukuibia.** Hakuna unachohitaji kufanya kuhusiana na uboreshaji huu. + Rasilimali zako hazitaathirika kabisa. Kumbuka, kuwa na taarifa ndiyo njia bora ya kujilinda dhidi ya ulaghai. + +[Zaidi kuhusu kutambua na kuepuka ulaghai](/security/) + +## Uboreshaji wa mtandao wa Dencun unatatua tatizo gani? {#network-impact} + +Dencun kimsingi inashughulikia uwezo wa kupanuka (kuhudumia watumiaji wengi na miamala mingi zaidi) kwa ada nafuu, huku ikidumisha ugatuzi wa mtandao. + +Jamii ya Ethereum imekuwa ikichukua mbinu inayozingatia unda-mpya katika ukuaji wake, ambayo inaweka unda-mpya za tabaka la 2 kama njia kuu ya kuwahudumia watumiaji wengi zaidi kwa usalama. + +Mitandao ya unda-mpya hushughulikia uchakataji (au "utekelezaji") wa miamala kando na Mtandao Mkuu (Mainnet) na kisha huchapisha ithibati ya kriptografia na/au data ya muamala iliyobanwa na kuirudisha kwenye Mtandao Mkuu kwa ajili ya utunzaji wa kumbukumbu. Kuhifadhi ithibati hizi kuna gharama (kwa njia ya 'gesi'), ambayo, kabla ya Proto-Danksharding, ililazimika kuhifadhiwa milele na waendeshaji wote wa nodi za mtandao, na kuifanya kuwa kazi ya gharama kubwa. + +Kuanzishwa kwa Proto-Danksharding katika uboreshaji wa Dencun kunaongeza hifadhi ya data ya bei nafuu kwa ithibati hizi. Hii inahitaji waendeshaji wa nodi kuhifadhi data hii kwa takriban siku 18 tu, ambapo baada ya hapo data inaweza kuondolewa kwa usalama ili kuzuia upanuzi wa mahitaji ya maunzi. Kwa sababu unda-mpya kwa kawaida huwa na muda wa kutoa fedha wa siku 7, mfumo wao wa usalama haubadiliki mradi tu 'blobs' zinapatikana kwenye L1 kwa muda huu. Dirisha la uondoaji la siku 18 linatoa muda wa ziada wa kutosha kwa kipindi hiki. + +[Zaidi kuhusu kupanua uwezo wa Ethereum](/roadmap/scaling/) + +## Data ya zamani ya 'blob' inapatikanaje? {#historical-access} + +Wakati nodi za kawaida za Ethereum zitahifadhi daima hali ya sasa ya mtandao, data ya kihistoria ya 'blob' inaweza kuondolewa takriban siku 18 baada ya kuanzishwa kwake. Kabla ya kuondoa data hii, Ethereum inahakikisha kuwa imepatikana kwa washiriki wote wa mtandao, ikitoa muda kwa ajili ya: + +- Wahusika wenye nia kupakua na kuhifadhi data. +- Kukamilika kwa vipindi vyote vya changamoto vya unda-mpya. +- Kukamilishwa kwa miamala ya unda-mpya. + +Data ya kihistoria ya 'blob' inaweza kuhitajika kwa sababu mbalimbali na inaweza kuhifadhiwa na kupatikana kwa kutumia itifaki kadhaa zilizogatuliwa: + +- **Itifaki za upangaji za wahusika wengine**, kama vile The Graph, huhifadhi data hii kupitia mtandao uliogatuliwa wa waendeshaji nodi wanaohamasishwa na mifumo ya kiuchumi ya kripto. +- **BitTorrent** ni itifaki iliyogatuliwa ambapo watu wa kujitolea wanaweza kushikilia na kusambaza data hii kwa wengine. +- **[Mtandao wa lango la Ethereum](/developers/docs/networking-layer/portal-network/)** unalenga kutoa ufikiaji wa data yote ya Ethereum kupitia mtandao uliogatuliwa wa waendeshaji nodi kwa kusambaza data miongoni mwa washiriki sawa na BitTorrent. +- **Watumiaji binafsi** daima wako huru kuhifadhi nakala zao za data yoyote wanayotaka kwa ajili ya marejeleo ya kihistoria. +- **Watoa huduma wa unda-mpya** wanahamasishwa kuhifadhi data hii ili kuboresha uzoefu wa mtumiaji wa unda-mpya zao. +- **Vichunguzi vya bloku** kwa kawaida huendesha nodi za kumbukumbu zinazopanga na kuhifadhi taarifa hizi zote kwa marejeleo rahisi ya kihistoria, yanayopatikana kwa watumiaji kupitia kiolesura cha wavuti. + +Ni muhimu kutambua kwamba urejeshaji wa hali ya kihistoria unafanya kazi kwa mfumo wa uaminifu wa **1-kati-ya-N**. Hii inamaanisha unahitaji data kutoka kwa chanzo kimoja tu cha kuaminika ili kuthibitisha usahihi wake kwa kutumia hali ya sasa ya mtandao. + +## Sasisha hii inachangiaje katika mkakati mpana wa maendeleo ya Ethereum? {#roadmap-impact} + +[Proto-Danksharding inaandaa jukwaa la utekelezaji kamili wa [Danksharding].](/roadmap/danksharding/). Danksharding imebuniwa kusambaza ghala la data ya unda-mpya kwa waendeshaji wa nodi, ili kila mwendeshaji ahitaji kushughulikia sehemu ndogo tu ya data yote. Usambazaji huu utaongeza idadi ya 'blobs' za data kwa kila bloku, jambo ambalo ni muhimu kwa kupanua uwezo wa Ethereum ili kuhudumia watumiaji na miamala mingi zaidi. + +Uwezo huu wa kupanuka ni muhimu ili [kuhudumia mabilioni ya watumiaji kwenye Ethereum](/roadmap/scaling/) kwa ada nafuu na programu za hali ya juu zaidi, huku ukidumisha mtandao uliogatuliwa. Bila mabadiliko haya, mahitaji ya maunzi kwa waendeshaji nodi yangeongezeka, na kusababisha hitaji la vifaa vya gharama kubwa zaidi. Hii inaweza kuwaondoa waendeshaji wadogo sokoni, na kusababisha udhibiti wa mtandao kujilimbikizia kwa waendeshaji wachache wakubwa, jambo ambalo lingeenda kinyume na kanuni ya ugatuzi. + +## Je, uboreshaji huu unaathiri wateja wote wa makubaliano na wathibitishaji wa Ethereum? {#client-impact} + +Ndio, Proto-Danksharding (EIP-4844) inahitaji masasisho kwa wateja wa utekelezaji na wateja wa makubaliano. Wateja wote wakuu wa Ethereum wametoa matoleo yanayounga mkono uboreshaji huo. Ili kudumisha usawazishaji na mtandao wa Ethereum baada ya uboreshaji, waendeshaji nodi lazima wahakikishe kuwa wanatumia toleo la mteja linaloungwa mkono. Kumbuka kwamba taarifa kuhusu matoleo ya wateja hubadilika kulingana na wakati, na watumiaji wanapaswa kurejelea masasisho ya hivi punde kwa maelezo ya sasa zaidi. [Angalia maelezo kuhusu matoleo ya wateja yanayoungwa mkono.](https://blog.ethereum.org/2024/02/27/dencun-mainnet-announcement#client-releases). + +Wateja wa makubaliano hushughulikia programu ya Mthibitishaji, ambayo yote imesasishwa ili kuendana na uboreshaji huo. + +## Cancun-Deneb (Dencun) inaathirije mitandao ya majaribio ya Ethereum? {#testnet-impact} + +- Devnets, Sepolia na Holesky zote zimefanyiwa uboreshaji wa Dencun na zina Proto-Danksharding inayofanya kazi kikamilifu. +- Waendelezaji wa unda-mpya wanaweza kutumia mitandao hii kwa majaribio ya EIP-4844. +- Watumiaji wengi hawataathirika kabisa na mabadiliko haya kwa kila mtandao wa majaribio. + +## Je, miamala yote kwenye L2 sasa itatumia nafasi ya muda ya 'blob', au utaweza kuchagua? {#calldata-vs-blobs} + +Miamala ya unda-mpya kwenye Tabaka la 2 (L2) la Ethereum ina fursa ya kutumia aina mbili za hifadhi ya data: nafasi ya muda ya 'blob' au 'calldata' ya kudumu ya mkataba janja. Nafasi ya 'blob' ni chaguo la kiuchumi, inayotoa hifadhi ya muda kwa gharama ya chini. Inahakikisha upatikanaji wa data kwa vipindi vyote muhimu vya changamoto. Kwa upande mwingine, 'calldata' ya mkataba janja inatoa hifadhi ya kudumu lakini ni ya gharama kubwa zaidi. + +Uamuzi kati ya kutumia nafasi ya 'blob' au 'calldata' hufanywa hasa na watoa huduma wa 'unda-mpya'. Wanafanya uamuzi huu kulingana na mahitaji ya sasa ya nafasi ya 'blob'. Ikiwa nafasi ya 'blob' ina mahitaji makubwa, unda-mpya zinaweza kuchagua 'calldata' ili kuhakikisha data inachapishwa kwa wakati unaofaa. + +Ingawa kinadharia inawezekana kwa watumiaji kuchagua aina wanayopendelea ya hifadhi, watoa huduma wa unda-mpya ndio kwa kawaida husimamia chaguo hili. Kutoa fursa hii kwa watumiaji kungeongeza ugumu, hasa katika kuunganisha miamala kwa gharama nafuu. Kwa maelezo maalum kuhusu chaguo hili, watumiaji wanapaswa kurejelea nyaraka zinazotolewa na watoa huduma binafsi wa unda-mpya. + +## Je, 4844 itapunguza gesi ya L1? {#l1-fee-impact} + +Si kwa kiasi kikubwa. Soko jipya la gesi linaanzishwa kwa ajili ya nafasi ya 'blob' pekee, kwa matumizi ya watoa huduma wa 'unda-mpya'. Ingawa ada kwenye L1 zinaweza kupunguzwa kwa kuhamishia data ya unda-mpya kwenye 'blobs', sasisha hii inalenga hasa upunguzaji wa ada za L2. Upunguzaji wa ada kwenye L1 (Mainnet) unaweza kutokea kama athari ya pili kwa kiwango kidogo. + +- Upunguzaji wa gesi ya L1 utalingana na jinsi watoa huduma wa 'unda-mpya' watakavyotumia data ya 'blob'. +- 'Gas' ya L1 inawezekana itaendelea kuwa na ushindani kutokana na shughuli zisizohusiana na 'unda-mpya'. +- Unda-mpya zinazotumia nafasi ya 'blob' zitadai 'gas' kidogo ya L1, na kusaidia kushusha ada za 'gas' za L1 kwa muda mfupi. +- Nafasi ya 'blob' bado ni chache, kwa hivyo ikiwa 'blobs' ndani ya bloku zimejaa, basi 'unda-mpya' zinaweza kulazimika kuchapisha data zao kama data ya kudumu kwa muda, jambo ambalo lingeongeza bei za gesi za L1 na L2. + +## Je, hii itapunguza ada kwenye blockchain zingine za tabaka la 1 za EVM? {#alt-l1-fee-impact} + +Hapana. Manufaa ya Proto-Danksharding ni maalum kwa unda-mpya za tabaka la 2 za Ethereum zinazohifadhi ithibati zao kwenye tabaka la 1 (Mainnet). + +Kuwa na uwezo wa kufanya kazi na Mashine Pepe ya Ethereum (EVM) pekee haimaanishi kuwa mtandao utaona manufaa yoyote kutoka kwa uboreshaji huu. Mitandao inayofanya kazi kwa kujitegemea kutoka kwa Ethereum (iwe inaendana na EVM au la) haihifadhi data yake kwenye Ethereum na haitaona manufaa yoyote kutoka kwa uboreshaji huu. + +[Zaidi kuhusu unda-mpya za tabaka la 2](/layer-2/) + +## Wewe ni mwanafunzi wa kuona zaidi? {#visual-learner} + + + +_Kufungua Uongezwaji wa Ethereum, EIP-4844 — Finematics _ + + + +_Blobspace 101 na Domothy — Bankless_ + +## Masomo zaidi {#further-reading} + +- [EIP4844.com](https://www.eip4844.com/) +- [EIP-4844: Miamala ya shard blob (Proto-Danksharding)](https://eips.ethereum.org/EIPS/eip-4844) +- [Tangazo la Mtandao Mkuu wa Dencun](https://blog.ethereum.org/2024/02/27/dencun-mainnet-announcement) - _blogu ya Msingi wa Ethereum_ +- [Mwongozo wa Msafiri kwa Ethereum: Proto-Danksharding](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum/#proto-danksharding-eip-4844) - _Jon Charbonneau_ +- [Maswali Yanayoulizwa Mara kwa Mara ya Proto-Danksharding](https://notes.ethereum.org/@vbuterin/proto_danksharding_faq) - _Vitalik Buterin_ +- [Maelezo ya Kina ya EIP-4844: Kiini cha Usasishaji wa Cancun](https://medium.com/@ebunker.io/an-in-depth-explanation-of-eip-4844-the-core-of-the-cancun-upgrade-de7b13761d2c) - _Ebunker_ +- [Sasisho la AllCoreDevs 016](https://tim.mirror.xyz/HzH5MpK1dnw7qhBSmzCfdCIxpwpD6DpwlfxtaAwEFro) - _Tim Beiko_ diff --git a/public/content/translations/sw/roadmap/fusaka/index.md b/public/content/translations/sw/roadmap/fusaka/index.md new file mode 100644 index 00000000000..3b17c0127bd --- /dev/null +++ b/public/content/translations/sw/roadmap/fusaka/index.md @@ -0,0 +1,295 @@ +--- +title: Fulu-Osaka (Fusaka) +description: Jifunze kuhusu uboreshaji wa itifaki ya Fusaka +lang: sw +--- + +# Fusaka {#fusaka} + +**Sasisho la Fusaka la Ethereum linalosubiriwa kwa hamu lilianza kutumika tarehe 3 Desemba, 2025** + +Uboreshaji wa mtandao wa Fusaka hufuata [Pectra](/roadmap/pectra/) na huleta vipengele vipya zaidi na kuboresha matumizi kwa kila mtumiaji na mjenzi wa Ethereum. Jina linajumuisha toleo jipya la safu ya utekelezaji la Osaka na toleo la safu ya makubaliano lililopewa jina la nyota ya Fulu. Sehemu zote mbili za Ethereum hupokea uboreshaji unaosukuma kuongeza kiwango cha Ethereum, usalama na uzoefu wa mtumiaji hadi siku zijazo. + + + + +Sasisho la Fusaka ni hatua moja tu katika malengo ya maendeleo ya muda mrefu ya Ethereum. Pata maelezo zaidi kuhusu [mpango kazi wa itifaki](/roadmap/) na [masasisho yaliyopita](/ethereum-forks/). + + + + +## Maboresho katika Fusaka {#maboresho-katika-fusaka} + +### Ongeza ukubwa wa blobs {#scale-blobs} + +#### PeerDAS {#peerdas} + +Hiki ndicho _kichwa_ cha mgawanyiko wa Fusaka, kipengele kikuu kilichoongezwa katika sasisho hili. Layer 2s kwa sasa huchapisha data zao kwa Ethereum katika blobs, aina ya data ya muda mfupi iliyoundwa mahsusi kwa safu ya 2. Kabla ya Fusaka, kila nodi kamili lazima ihifadhi kila blob ili kuhakikisha kuwa data iko. Kadiri upitishaji wa blob unavyoongezeka, kulazimika kupakua data hii yote kunachukua rasilimali nyingi. + +Kwa [data availability sampling](https://notes.ethereum.org/@fradamt/das-fork-choice) , badala ya kulazimika kuhifadhi data yote ya blob, kila nodi itawajibika kwa seti ndogo ya data ya blob. Blobu husambazwa kwa nasibu katika vifundo vyote kwenye mtandao huku kila kifundo kikiwa na 1/8 pekee ya data, kwa hivyo kuwezesha ukubwa wa kinadharia hadi 8x. Ili kuhakikisha upatikanaji wa data, sehemu yoyote ya data inaweza kuundwa upya kutoka kwa 50% yoyote iliyopo ya yote kwa mbinu zinazopunguza uwezekano wa data isiyo sahihi au inayokosekana hadi kiwango kidogo sana cha kriptografia (\~moja kwa 1020 hadi moja kwa 1024). + +Hii hudumisha mahitaji ya maunzi na kipimo data cha nodi kushinikizwa huku kuwezesha uongezaji wa blob na kusababisha kiwango kikubwa na ada ndogo za safu ya 2. + +[Jifunze zaidi kuhusu PeerDAS](/roadmap/fusaka/peerdas/) + +**Rasilimali**: + +- [Uainishaji wa kiufundi wa EIP-7594](https://eips.ethereum.org/EIPS/eip-7594) +- [DappLion kuhusu PeerDAS: Uongezwaji wa Ethereum Leo | ETHSofia 2024](https://youtu.be/bONWd1x2TjQ?t=328) +- [Kitaaluma: Nyaraka za PeerDAS ya Ethereum (PDF)](https://eprint.iacr.org/2024/1362.pdf) + +#### Migawanyiko ya Vigezo vya Blob Pekee {#blob-parameter-only-forks} + +Layer 2s inapanua Ethereum - mitandao yao inapokua, wanahitaji kutuma data zaidi kwa Ethereum. Hii ina maana kwamba Ethereum itahitaji kuongeza idadi ya blobs zinazopatikana kwao kadiri muda unavyosonga. Ingawa PeerDAS huwezesha kuongeza data ya blob, inahitaji kufanywa hatua kwa hatua na kwa usalama. + +Kwa sababu Ethereum ni msimbo unaotumia maelfu ya nodi huru zinazohitaji makubaliano kuhusu sheria sawa, hatuwezi tu kuleta mabadiliko kama vile kuongeza idadi ya blob jinsi unavyosambaza sasisho la tovuti. Mabadiliko yoyote ya sheria lazima yawe uboreshaji ulioratibiwa ambapo kila nodi, mteja na programu ya kiidhinishaji husasishwa kabla ya kitalu kile kile kilichoamuliwa. + +Maboresho haya yaliyoratibiwa kwa ujumla yanajumuisha mabadiliko mengi, yanahitaji majaribio mengi, na hiyo inachukua muda. Ili kukabiliana haraka na mabadiliko ya mahitaji ya safu ya 2 ya blob, kigezo cha blob tu uma huanzisha utaratibu wa kuongeza matone bila kusubiri ratiba hiyo ya kuboresha. + +Vigezo vya Blob pekee vinaweza kuwekwa na wateja, sawa na usanidi mwingine kama kikomo cha gesi. Kati ya uboreshaji mkubwa wa Ethereum, wateja wanaweza kukubali kuongeza blobs za `lengo` na `max` kwa k.m. 9 na 12 na kisha waendeshaji wa nodi watasasisha ili kushiriki katika uma huo mdogo. Vigezo hivi vya blob pekee vinaweza kusanidiwa wakati wowote. + +Wakati blobs zilipoongezwa kwa mara ya kwanza kwenye mtandao katika sasisho la Dencun, lengo lilikuwa 3. Hiyo iliongezwa hadi 6 katika Pectra na, baada ya Fusaka, sasa inaweza kuongezwa kwa kiwango endelevu bila kutegemea sasisho hizi kuu za mtandao. + +![Chati inayoonyesha wastani wa idadi ya blob kwa kila bloku na malengo yanayoongezeka na sasisho](./average-blob-count-per-block.webp) + +Chanzo cha grafu: [Ethereum Blobs - @hildobby, Dune Analytics](https://dune.com/hildobby/blobs) + +**Rasilimali**: [Uainishaji wa kiufundi wa EIP-7892](https://eips.ethereum.org/EIPS/eip-7892) + +#### Ada ya msingi ya Blob inayoambatana na gharama za utekelezaji {#blob-base-fee-bounded-by-execution-costs} + +Layer 2s hulipa bili mbili wanapochapisha data: ada ya blob na gesi ya utekelezaji inayohitajika ili kuthibitisha blobs hizo. Iwapo gesi ya kutekeleza itatawala, mnada wa ada ya blob unaweza kuongezeka hadi wei 1 na kuacha kuwa ishara ya bei. + +EIP-7918 huweka bei ya akiba sawia chini ya kila blob. Wakati akiba ni kubwa kuliko ada ya msingi ya blob, kanuni ya kurekebisha ada huchukulia bloku kama iko juu ya lengo na huacha kusukuma ada chini na kuiruhusu kuongezeka kawaida. Kama matokeo: + +- soko la ada ya blob daima humenyuka kwa msongamano +- safu ya 2 hulipa angalau kipande cha maana cha hesabu wanayolazimisha kwenye nodi +- ada ya msingi kwenye EL haiwezi tena kuweka ada ya blob katika 1 wei + +**Rasilimali**: + +- [Uainishaji wa kiufundi wa EIP-7918](https://eips.ethereum.org/EIPS/eip-7918) +- [Mfafanuzi wa Storybook](https://notes.ethereum.org/@anderselowsson/AIG) + +### Ongeza ukubwa wa L1 {#scale-l1} + +#### Muda wa mwisho wa historia na risiti rahisi {#history-expiry} + +Mnamo Julai 2025, programu za utekelezaji za Ethereum [zilianza kusaidia muda wa mwisho wa historia kiasi](https://blog.ethereum.org/2025/07/08/partial-history-exp). Hii iliacha historia ya zamani kuliko [Muungano](https://ethereum.org/roadmap/merge/) ili kupunguza nafasi ya diski inayohitajika na waendeshaji wa nodi kadri Ethereum inavyoendelea kukua. + +EIP hii iko katika sehemu tofauti na "Core EIPs" kwa sababu mgawanyiko hautekelezi mabadiliko yoyote - ni taarifa kwamba timu za programu za wateja lazima zisaidie muda wa mwisho wa historia kabla ya sasisho la Fusaka. Kivitendo, programu za wateja zinaweza kutekeleza hili wakati wowote lakini kuliongeza kwenye sasisho kuliweka wazi kwenye orodha yao ya mambo ya kufanya na kuwaruhusu kujaribu mabadiliko ya Fusaka kwa kushirikiana na kipengele hiki. + +**Rasilimali**: [Uainishaji wa kiufundi wa EIP-7642](https://eips.ethereum.org/EIPS/eip-7642) + +#### Weka mipaka ya juu ya MODEXP {#set-upper-bounds-for-modexp} + +Hadi sasa, muundo wa MODEXP unajumuisha nambari zinazokubalika za ukubwa wowote. Hiyo ilifanya iwe vigumu kupima, rahisi kutumia vibaya, na kuwa hatari kwa uthabiti wa mteja. EIP-7823 inaweka kikomo wazi mahali: kila nambari ya ingizo inaweza kuwa na urefu wa biti 8192 (baiti 1024). Kitu chochote kikubwa kinakataliwa, gesi ya shughuli hiyo inachomwa, na hakuna mabadiliko ya hali yanayotokea. Inashughulikia kwa urahisi mahitaji ya ulimwengu halisi huku ikiondoa hali mbaya zaidi ambazo huchanganya upangaji wa kikomo cha gesi na ukaguzi wa usalama. Mabadiliko haya hutoa usalama zaidi na ulinzi wa DoS bila kuathiri matumizi ya mtumiaji au msanidi. + +**Rasilimali**: [Uainishaji wa kiufundi wa EIP-7823](https://eips.ethereum.org/EIPS/eip-7823) + +#### Kikomo cha Muamala wa Gesi {#transaction-gas-limit-cap} + +EIP-[7825](https://eips.ethereum.org/EIPS/eip-7825) adds a cap of 16,777,216 (2^24) gas per transaction. Ni ugumu wa DoS kwa kuweka gharama ya hali mbaya zaidi ya muamala wowote tunapoongeza kikomo cha gesi. Hurahisisha uthibitishaji na uenezi kuwa mfano ili kuturuhusu kukabiliana na uwekaji viwango kupitia kuongeza kikomo cha gesi. + +Kwa nini hasa 2^24 gesi? Ni ndogo kwa urahisi kuliko kikomo cha sasa cha gesi, ni kubwa vya kutosha kwa uwekaji wa mikataba halisi na ujumuishaji mzito, na nguvu ya 2 hurahisisha kutekeleza kwa wateja wote. Ukubwa huu mpya wa juu zaidi wa muamala ni sawa na ukubwa wa wastani wa bloku kabla ya Pectra, na kuifanya kuwa kikomo kinachofaa kwa operesheni yoyote kwenye Ethereum. + +**Rasilimali**: [Uainishaji wa kiufundi wa EIP-7825](https://eips.ethereum.org/EIPS/eip-7825) + +#### Ongezeko la gharama ya gesi ya `MODEXP` {#modexp-gas-cost-increase} + +MODEXP ni mkusanyiko wa chaguo za kukokotoa uliojumuishwa ndani ambao hukokotoa ubainishaji wa moduli, aina ya hesabu kubwa inayotumika katika uthibitishaji sahihi wa RSA na mifumo ya uthibitishaji. Inaruhusu kandarasi kuendesha hesabu hizi moja kwa moja bila kuzitekeleza zenyewe. + +Wasanidi programu na timu za wateja zilitambua MODEXP kama kikwazo kikuu cha kuongeza kikomo cha gesi ya kuzuia gesi kwa sababu bei ya sasa ya gesi mara nyingi hukadiria kiasi cha nguvu za kompyuta ambacho vifaa vingine huhitaji. Hii inamaanisha kuwa muamala mmoja unaotumia MODEXP unaweza kuchukua muda mwingi unaohitajika kuchakata kizuizi kizima, hivyo basi kupunguza kasi ya mtandao. + +EIP hii inabadilisha bei ili ilingane na gharama halisi za kikokotoo kwa: + +- kupandisha ada ya chini kutoka gesi 200 hadi 500 na kuondoa punguzo la theluthi moja kutoka EIP-2565 kwenye hesabu ya gharama ya jumla +- kuongeza gharama kwa kasi zaidi wakati pembejeo ya kipeo ni ndefu sana. ikiwa kielelezo (nambari ya "nguvu" unayopitisha kama hoja ya pili) ni ndefu kuliko baiti 32 / biti 256, chaji ya gesi hupanda kwa kasi zaidi kwa kila baiti ya ziada +- kuchaji msingi mkubwa au moduli ya ziada pia. Nambari zingine mbili (msingi na moduli) inachukuliwa kuwa angalau ka 32 - ikiwa moja ni kubwa, gharama huongezeka kulingana na saizi yake + +Kwa kulinganisha gharama bora na wakati halisi wa usindikaji, MODEXP haiwezi tena kusababisha kizuizi kuchukua muda mrefu kuthibitishwa. Mabadiliko haya ni mojawapo ya kadhaa yanayolenga kuifanya kuwa salama kuongeza kikomo cha gesi ya kuzuia Ethereum katika siku zijazo. + +**Rasilimali**: [Uainishaji wa kiufundi wa EIP-7883](https://eips.ethereum.org/EIPS/eip-7883) + +#### Kikomo cha Ukubwa wa Kizuizi cha Utekelezaji wa RLP {#rlp-execution-block-size-limit} + +Hii inaunda kikomo cha juu cha ukubwa wa bloku unaoruhusiwa - hiki ni kikomo kwa kile _kinachotumwa_ kupitia mtandao na kiko tofauti na kikomo cha gesi, ambacho kinaweka kikomo cha _kazi_ ndani ya bloku. Kikomo cha ukubwa wa bloku ni 10 MiB, na nafasi ndogo ya ziada (2 MiB) iliyotengwa kwa ajili ya data ya makubaliano ili kila kitu kitoshee na kusambazwa vizuri. Ikiwa bloku itaonekana kubwa kuliko hiyo, programu za wateja huikataa. +Hii inahitajika kwa sababu bloku kubwa sana huchukua muda mrefu kusambaa na kuthibitishwa kwenye mtandao na inaweza kusababisha masuala ya makubaliano au kutumiwa vibaya kama njia ya shambulio la DoS. Pia, 'gossip' ya safu ya makubaliano tayari haitumi mbele bloku zenye ukubwa zaidi ya ~10 MiB, kwa hivyo kuoanisha safu ya utekelezaji na kikomo hicho huepuka hali za ajabu za “kuonekana na wengine, kuachwa na wengine”. + +Maelezo ya kina: hiki ni kikomo kwenye ukubwa wa bloku ya utekelezaji iliyosimbwa kwa [RLP](/developers/docs/data-structures-and-encoding/rlp/). Jumla ya 10 MiB, na kinga ya usalama ya 2 MiB iliyotengwa kwa ajili ya uundaji wa bloku ya 'beacon'. Kivitendo, programu za wateja hufafanua + +`MAX_BLOCK_SIZE = 10,485,760` baiti na + +`SAFETY_MARGIN = 2,097,152` baiti, + +na hukataa bloku yoyote ya utekelezaji ambayo mzigo wake wa RLP unazidi + +`MAX_RLP_BLOCK_SIZE = MAX_BLOCK_SIZE − SAFETY_MARGIN` + +Lengo ni kuweka kikomo cha muda mbaya zaidi wa uenezaji/uthibitishaji na kuendana na tabia ya 'gossip' ya safu ya makubaliano, na kupunguza hatari ya reorg/DoS bila kubadilisha uhasibu wa gesi. + +**Rasilimali**: [Uainishaji wa kiufundi wa EIP-7934](https://eips.ethereum.org/EIPS/eip-7934) + +#### Weka kikomo cha gesi chaguo-msingi kuwa milioni 60 {#set-default-gas-limit-to-60-million} + +Kabla ya kuongeza kikomo cha gesi kutoka 30M hadi 36M mnamo Februari 2025 (na baadaye hadi 45M), thamani hii ilikuwa haijabadilika tangu Kuunganishwa (Septemba 2022). EIP hii inalenga kuweka kupanuka kwa uwiano thabiti. + +EIP-7935 huratibu timu za wateja wa EL ili kuongeza kikomo-msingi cha gesi zaidi ya 45M cha leo cha Fusaka. Ni EIP ya Taarifa, lakini inawauliza wateja kwa uwazi kupima vikomo vya juu zaidi kwenye devnets, kuungana kwa thamani salama, na kusafirisha nambari hiyo katika matoleo yao ya Fusaka. + +Malengo ya upangaji wa Devnet ~ 60M dhiki (vitalu kamili vilivyo na mzigo wa syntetisk) na matuta ya kurudia; utafiti unasema patholojia za ukubwa wa kitalu hazipaswi kushikamana chini ya ~ 150M. Rollout inapaswa kuoanishwa na kiwango cha juu cha kikomo cha shughuli za gesi (EIP-7825) ili hakuna muamala mmoja unaoweza kutawala vikomo vinavyoongezeka. + +**Rasilimali**: [Uainishaji wa kiufundi wa EIP-7935](https://eips.ethereum.org/EIPS/eip-7935) + +### Boresha UX {#improve-ux} + +#### Muonekano wa pendekezo la kuamua {#deterministic-proposer-lookahead} + +Ukiwa na EIP-7917, Beacon Chain itafahamu kuhusu watayarishaji wa vitalu vijavyo kwa enzi inayofuata. Kuwa na mwonekano wa kubaini ni wapi wathibitishaji watakuwa wakipendekeza vitalu vya siku zijazo kunaweza kuwezesha [uthibitisho wa awali](https://ethresear.ch/t/based-preconfirmations/17353) - ahadi na mpendekezaji ujao ambayo inahakikisha shughuli ya mtumiaji itajumuishwa kwenye kitalu chao bila kungoja kitalu halisi. + +Kipengele hiki hunufaisha utekelezaji wa mteja na usalama wa mtandao kwa vile huzuia matukio makali ambapo wathibitishaji wanaweza kuchezea ratiba ya wapendekezaji. Mtazamo pia unaruhusu ugumu mdogo wa utekelezaji. + +**Rasilimali**: [Uainishaji wa kiufundi wa EIP-7917](https://eips.ethereum.org/EIPS/eip-7917) + +#### Count leading zeros (CLZ) opcode {#count-leading-zeros-opcode} + +Huanzisha kikagua saini cha secp256r1 (P-256) kilichojengewa ndani, cha mtindo wa passkey katika anwani isiyobadilika `0x100` kwa kutumia umbizo la wito lilelile ambalo tayari limetumiwa na L2 nyingi na kurekebisha kesi za pembezoni, ili mikataba iliyoandikwa kwa ajili ya mazingira hayo ifanye kazi kwenye L1 bila mabadiliko. + +Uboreshaji wa UX! Kwa watumiaji, hii inafungua utiaji saini asili wa kifaa na passkeys. Pochi zinaweza kutumia moja kwa moja Apple Secure Enclave, Android Keystore, moduli za usalama za maunzi (HSM), na FIDO2/WebAuthn - hakuna maneno muhimu ya ufunguo, mchakato rahisi wa kujiunga, na mtiririko wa vipengele vingi unaohisi kama programu za kisasa. Hii inaleta UX bora zaidi, urejeshaji rahisi, na miundo ya ufichaji wa akaunti inayofanana na kile ambacho mabilioni ya vifaa tayari hufanya. + +Kwa wasanidi programu, huchukua ingizo la baiti 160 na kurudisha tokeo la baiti 32, na kuifanya iwe rahisi kuhamisha maktaba zilizopo na mikataba ya L2. Kwa ndani, inajumuisha ukaguzi wa pointi-kwenye-ukomo na ulinganisho wa moduli ili kuondoa kesi za pembezoni zenye changamoto bila kuvunja waitaji halali. + +**Rasilimali**: + +- [Uainishaji wa kiufundi wa EIP-7951](https://eips.ethereum.org/EIPS/eip-7951) +- [Zaidi kuhusu RIP-7212](https://www.alchemy.com/blog/what-is-rip-7212) _(Kumbuka kuwa EIP-7951 ilichukua nafasi ya RIP-7212)_ + +### Meta {#meta} + +#### Mbinu ya JSON-RPC ya `eth_config` {#eth-config} + +Huu ni wito wa JSON-RPC unaokuruhusu kuuliza nodi yako ni mipangilio gani ya mgawanyiko unayotumia. Inarudisha picha tatu za hali: `current`, `next`, na `last` ili wathibitishaji na zana za ufuatiliaji waweze kuthibitisha kuwa programu za wateja zimejipanga kwa ajili ya mgawanyiko ujao. + +Kivitendo, hii ni kushughulikia upungufu uliogunduliwa wakati mgawanyiko wa Pectra ulipoanza kutumika kwenye mtandao wa majaribio wa Holesky mapema 2025 na usanidi mbovu mdogo ambao ulisababisha hali isiyokamilika. Hii husaidia timu za majaribio na wasanidi programu kuhakikisha kuwa migawanyiko mikuu itafanya kazi kama inavyotarajiwa wakati wa kuhamia kutoka devnets kwenda mitandao ya majaribio, na kutoka mitandao ya majaribio kwenda Mtandao Mkuu. + +Picha za hali zinajumuisha: `chainId`, `forkId`, muda uliopangwa wa uanzishaji wa mgawanyiko, ni 'precompiles' zipi zinazotumika, anwani za 'precompile', utegemezi wa mikataba ya mfumo, na ratiba ya blob ya mgawanyiko. + +EIP hii iko katika sehemu tofauti na "Core EIPs" kwa sababu mgawanyiko hautekelezi mabadiliko yoyote - ni taarifa kwamba timu za programu za wateja lazima zitekeleze mbinu hii ya JSON-RPC kabla ya sasisho la Fusaka. + +**Rasilimali**: [Uainishaji wa kiufundi wa EIP-7910](https://eips.ethereum.org/EIPS/eip-7910) + +## Maswali Yanayoulizwa Mara kwa Mara {#faq} + +### Je, uboreshaji huu unaathiri nodi zote za Ethereum na wathibitishaji? {#does-this-upgrade-affect-all-ethereum-nodes-and-validators} + +Ndiyo, uboreshaji wa Fusaka unahitaji masasisho kwa [wateja wa kutekeleza na wateja wa makubaliano](/developers/docs/nodes-and-clients/). Wateja wote wakuu wa Ethereum watatoa matoleo yanayounga mkono mgawanyiko mkuu uliotiwa alama kuwa kipaumbele cha juu. Unaweza kufuatilia ni lini matoleo haya yatapatikana katika repos za mteja za GitHub,[Discord channels](https://ethstaker.org/support), the [EthStaker Discord](https://dsc.gg/ethstaker), au kwa kujiandikisha kwenye blogu ya Ethereum kwa masasisho ya itifaki. Ili kudumisha usawazishaji na mtandao wa Ethereum baada ya uboreshaji, waendeshaji nodi lazima wahakikishe kuwa wanatumia toleo la mteja linaloungwa mkono. Kumbuka kwamba taarifa kuhusu matoleo ya wateja hubadilika kulingana na wakati, na watumiaji wanapaswa kurejelea masasisho ya hivi punde kwa maelezo ya sasa zaidi. + +### Je, ETH inawezaje kubadilishwa baada ya 'hard fork'? {#how-can-eth-be-converted-after-the-hardfork} + +- **Hakuna Hatua Inayohitajika kwa ETH Yako**: Kufuatia uboreshaji wa Ethereum Fusaka, hakuna haja ya kubadilisha au kuboresha ETH yako. Salio la akaunti yako litabaki kama lilivyo, na ETH unayomiliki sasa itaendelea kupatikana katika hali yake ya sasa baada ya 'hard fork'. +- **Jihadhari na Ulaghai!** **mtu yeyote anayekuelekeza "kuboresha" ETH yako anajaribu kukuibia.** Hakuna unachohitaji kufanya kuhusiana na uboreshaji huu. + Rasilimali zako hazitaathirika kabisa. Kumbuka, kuwa na taarifa ndiyo njia bora ya kujilinda dhidi ya ulaghai. + +[Zaidi kuhusu kutambua na kuepuka ulaghai](/security/) + +### Kuna nini na punda milia? {#whats-with-the-zebras} + +Punda milia ni "nembo" iliyochaguliwa na wasanidi programu wa Fusaka kwa sababu milia yake inaakisi uchukuaji sampuli za upatikanaji wa data kwa msingi wa safu wa PeerDAS, ambapo nodi huhifadhi mitandao midogo fulani ya safu na huchukua sampuli za safu chache zingine kutoka kwa kila nafasi ya rika ili kuangalia kama data ya blob inapatikana. + +Muungano wa 2022 [ulitumia panda](https://x.com/hwwonx/status/1431970802040127498) kama nembo yake kuashiria kuunganishwa kwa safu za utekelezaji na makubaliano. Tangu wakati huo, nembo zimechaguliwa isivyo rasmi kwa kila mgawanyiko na huonekana kama sanaa ya ASCII katika kumbukumbu za programu ya mteja wakati wa sasisho. Ni njia ya kufurahisha tu ya kusherehekea. + +### Ni maboresho gani yanajumuishwa kwa ajili ya Uongezwaji wa L2? {#what-improvements-are-included-for-l2-scaling} + +[PeerDAS](/roadmap/fusaka/peerdas) ndicho kipengele kikuu cha mgawanyiko. Inatekeleza uchukuaji wa sampuli za upatikanaji wa data (DAS) ambayo inafungua uwezekano wa kuongezeka zaidi kwa unda-mpya, kinadharia ikiongeza nafasi ya blob hadi mara 8 ya ukubwa wa sasa. Soko la ada za blob pia litaboreshwa ili kukabiliana na msongamano na kuhakikisha L2 zinalipa ada inayofaa kwa hesabu na nafasi ambayo blobs huweka kwenye nodi. + +### Migawanyiko ya BPO ni tofauti vipi? {#how-are-bpo-forks-different} + +Migawanyiko ya Vigezo vya Blob Pekee hutoa utaratibu wa kuongeza idadi ya blob (lengo na kiwango cha juu) baada ya PeerDAS kuanzishwa, bila kulazimika kusubiri sasisho kamili lililoratibiwa. Kila ongezeko huwekwa tayari katika matoleo ya programu za wateja yanayounga mkono Fusaka. + +Kama mtumiaji au mthibitishaji, huhitaji kusasisha programu zako za wateja kwa kila BPO na hakikisha tu unafuata migawanyiko migumu mikuu kama Fusaka. Hii ni desturi ileile kama zamani, hakuna hatua maalum zinazohitajika. Bado inapendekezwa ufuatilie programu zako za wateja wakati wa masahisho na BPO na uzisasishe hata kati ya matoleo makuu kwani marekebisho au uboreshaji unaweza kufuata mgawanyiko mgumu. + +### Ratiba ya BPO ni ipi? {#what-is-the-bpo-schedule} + +Ratiba kamili ya sasisho za BPO itaamuliwa na matoleo ya Fusaka. Fuata [Matangazo ya Itifaki](https://blog.ethereum.org/category/protocol) na maelezo ya toleo ya programu zako za wateja. + +Mfano wa jinsi inaweza kuonekana: + +- Kabla ya Fusaka: lengo 6, kiwango cha juu 9 +- Wakati wa uanzishaji wa Fusaka: lengo 6, kiwango cha juu 9 +- BPO1, wiki chache baada ya uanzishaji wa Fusaka: lengo 10, kiwango cha juu 15, ikiongezeka kwa theluthi mbili +- BPO2, wiki chache baada ya BPO1: lengo 14, kiwango cha juu 21 + +### Je, hii itapunguza ada kwenye Ethereum (safu ya 1) {#will-this-lower-gas} + +Sasisho hili halipunguzi ada za gesi kwenye L1, angalau si moja kwa moja. Lengo kuu ni nafasi zaidi ya blob kwa data ya unda-mpya, na hivyo kupunguza ada kwenye safu ya 2. Hii inaweza kuwa na madhara fulani kwenye soko la ada za L1 lakini hakuna mabadiliko makubwa yanayotarajiwa. + +### Kama mweka dau, ninahitaji kufanya nini kwa ajili ya sasisho? {#as-a-staker-what-do-i-need-to-do-for-the-upgrade} + +Kama ilivyo kwa kila sasisho la mtandao, hakikisha unasasisha programu zako za wateja kwa matoleo ya hivi karibuni yaliyotiwa alama ya usaidizi wa Fusaka. Fuata sasisho katika orodha ya barua pepe na [Matangazo ya Itifaki kwenye Blogu ya EF](https://blog.ethereum.org/category/protocol) ili kupata taarifa kuhusu matoleo. +Ili kuthibitisha usanidi wako kabla ya Fusaka kuanzishwa kwenye Mtandao Mkuu, unaweza kuendesha mthibitishaji kwenye mitandao ya majaribio. Fusaka [inaanzishwa mapema kwenye mitandao ya majaribio](https://blog.ethereum.org/2025/09/26/fusaka-testnet-announcement) kukupa nafasi zaidi ya kuhakikisha kila kitu kinafanya kazi na kuripoti hitilafu. Migawanyiko ya mitandao ya majaribio pia hutangazwa kwenye orodha ya barua pepe na blogu. + +### Je, "Mtazamo wa Mapendekezo Uliodhamiriwa" (EIP-7917) huathiri wathibitishaji? {#does-7917-affect-validators} + +Mabadiliko haya hayabadilishi jinsi programu yako ya mteja ya mthibitishaji inavyofanya kazi, hata hivyo, yatatoa ufahamu zaidi kuhusu mustakabali wa majukumu yako ya uthibitishaji. Hakikisha unasasisha zana zako za ufuatiliaji ili uendane na vipengele vipya. + +### Je, Fusaka inaathiri vipi mahitaji ya kipimo data kwa nodi na wathibitishaji? {#how-does-fusaka-affect-bandwidth-requirements-for-nodes-and-validators} + +PeerDAS inafanya mabadiliko makubwa katika jinsi nodi zinavyosambaza data ya blob. Data zote zimegawanywa katika vipande vinavyoitwa safu katika mitandao midogo 128 na nodi hujisajili kwa baadhi tu. Idadi ya safu za mtandao mdogo ambazo nodi zinapaswa kuhifadhi inategemea usanidi wao na idadi ya wathibitishaji walioounganishwa. Mahitaji halisi ya kipimo data yatategemea kiasi cha blobs zinazoruhusiwa kwenye mtandao na aina ya nodi. Wakati wa uanzishaji wa Fusaka lengo la blob linabaki sawa na hapo awali, lakini kwa PeerDAS, waendeshaji wa nodi wanaweza kuona kupungua kwa matumizi yao ya diski ya blobs na trafiki ya mtandao. Kadri BPO zinavyosanidi idadi kubwa ya blobs kwenye mtandao, kipimo data kinachohitajika kitaongezeka kwa kila BPO. + +Mahitaji ya nodi bado yako ndani ya [viwango vinavyopendekezwa](https://eips.ethereum.org/EIPS/eip-7870) hata baada ya BPO za Fusaka. + +#### Nodi kamili {#full-nodes} + +Nodi za kawaida zisizo na wathibitishaji wowote zitajisajili kwa mitandao midogo 4 tu, zikihifadhi 1/8 ya data asili. Hii inamaanisha kwamba kwa kiasi kile kile cha data ya blob, kipimo data cha nodi cha kuzipakua kitakuwa kidogo kwa mara nane (8). Matumizi ya diski na kipimo data cha upakuaji wa blobs kwa nodi kamili ya kawaida yanaweza kupungua karibu 80%, hadi Mb chache tu. + +#### Weka dau binafsi {#solo-stakers} + +Ikiwa nodi inatumiwa kwa programu ya mteja ya mthibitishaji, inapaswa kuhifadhi safu zaidi na hivyo kuchakata data zaidi. Kwa mthibitishaji aliyeongezwa, nodi hujisajili kwa angalau mitandao midogo 8 ya safu na hivyo kuchakata data mara mbili zaidi ya nodi ya kawaida lakini bado kidogo kuliko kabla ya Fusaka. Ikiwa salio la mthibitishaji liko juu ya ETH 287, mitandao midogo zaidi na zaidi itasajiliwa. + +Kwa mweka dau pekee, hii inamaanisha matumizi yao ya diski na kipimo data cha upakuaji vitapungua karibu 50%. Hata hivyo, ili kujenga bloku kihalisi na kupakia blobs zote kwenye mtandao, kipimo data kikubwa zaidi cha upakiaji kinahitajika. Wajenzi wa kihalisi watahitaji kipimo data cha upakiaji cha juu mara 2-3 kuliko hapo awali wakati wa Fusaka na kwa lengo la BPO2 la blobs 15/21, kipimo data cha upakiaji cha mwisho kitahitajika kuwa karibu mara 5 zaidi, kwa 100Mpbs. + +#### Wathibitishaji wakubwa {#large-validators} + +Idadi ya mitandao midogo iliyosajiliwa huongezeka kulingana na salio na wathibitishaji walioongezwa kwenye nodi. Kwa mfano, karibu na salio la ETH 800, nodi huhifadhi safu 25 na itahitaji karibu 30% zaidi ya kipimo data cha upakuaji kuliko hapo awali. Upakiaji unaohitajika huongezeka sawa na nodi za kawaida na angalau 100Mbps inahitajika. + +Kwa ETH 4096, wathibitishaji 2 wa salio la juu, nodi inakuwa 'supernode' ambayo huhifadhi safu zote, na hivyo kupakua na kuhifadhi kila kitu. Nodi hizi huponya mtandao kikamilifu kwa kuchangia data inayokosekana lakini pia zinahitaji kipimo data na hifadhi zaidi. Lengo la mwisho la blob likiwa mara 6 zaidi ya hapo awali, nodi kuu zitalazimika kuhifadhi karibu GB 600 za data ya ziada ya blob na kuwa na kipimo data cha upakuaji cha kasi endelevu cha karibu 20Mbps. + +[Soma maelezo zaidi juu ya mahitaji yanayotarajiwa.](https://ethpandaops.io/posts/fusaka-bandwidth-estimation/#theoretical-requirements) + +### Ni mabadiliko gani ya EVM yanayotekelezwa? {#what-evm-changes-are-implemented} + +Fusaka inaimarisha EVM na mabadiliko madogo mapya na vipengele. + +- Kwa usalama wakati wa kuongeza ukubwa, ukubwa wa juu wa muamala mmoja [utawekewa kikomo cha vitengo milioni 16.7](https://eips.ethereum.org/EIPS/eip-7825) vya gesi. +- [Opcode mpya ya kuhesabu sifuri zinazoongoza (CLZ)](https://eips.ethereum.org/EIPS/eip-7939) imeongezwa kwenye EVM na itaruhusu lugha za mikataba-erevu kufanya shughuli fulani kwa ufanisi zaidi. +- [Gharama ya precompile ya `ModExp` itaongezwa](https://eips.ethereum.org/EIPS/eip-7883)—mikataba inayoitumia itatoza gesi zaidi kwa utekelezaji. + +### Je, kikomo kipya cha gesi cha milioni 16 kinaathirije wasanidi wa mikataba? {#how-does-new-16m-gas-limit-affects-contract-developers} + +Fusaka inaweka kikomo cha [ukubwa wa juu wa muamala mmoja kuwa vitengo milioni 16.7](https://eips.ethereum.org/EIPS/eip-7825) (2^24) vya gesi. Huu ni takriban ukubwa wa awali wa bloku ya wastani ambayo inaufanya kuwa mkubwa kutosha kushughulikia miamala tata ambayo ingetumia bloku nzima. Kikomo hiki kinatoa ulinzi kwa programu za wateja, kuzuia mashambulizi yanayoweza kutokea ya DoS katika siku zijazo na kikomo cha juu cha gesi cha bloku. Lengo la kuongeza ukubwa ni kuwezesha miamala zaidi kuingia kwenye mnyororo wa bloku bila hata mmoja kutumia bloku nzima. + +Miamala ya kawaida ya watumiaji iko mbali na kufikia kikomo hiki. Kesi fulani za pembezoni kama shughuli kubwa na tata za DeFi, uhamishaji mkubwa wa mikataba-erevu au miamala ya makundi inayolenga mikataba mingi inaweza kuathiriwa na mabadiliko haya. Miamala hii italazimika kugawanywa katika midogo zaidi au kuboreshwa kwa njia nyingine. Tumia uigaji kabla ya kuwasilisha miamala ambayo inaweza kufikia kikomo. + +Mbinu ya RPC `eth_call` haina kikomo na itaruhusu uigaji wa miamala mikubwa kuliko kikomo halisi cha mnyororo wa bloku. Kikomo halisi cha mbinu za RPC kinaweza kusanidiwa na mwendeshaji wa programu ya mteja ili kuzuia matumizi mabaya. + +### CLZ ina maana gani kwa wasanidi programu? {#what-clz-means-for-developers} + +Wakusanyaji wa EVM kama Solidity watatekeleza na kutumia kazi mpya ya kuhesabu sifuri chinichini. Mikataba mipya inaweza kufaidika na uokoaji wa gesi ikiwa inategemea aina hii ya operesheni. Fuata matoleo na tangazo la kipengele cha lugha ya mikataba-erevu kwa nyaraka juu ya uwezekano wa kuokoa. + +### Je, kuna mabadiliko yoyote kwa mikataba-erevu yangu iliyopo? {#what-clz-means-for-developers} + +Fusaka haina athari ya moja kwa moja ambayo ingevunja mikataba yoyote iliyopo au kubadilisha tabia zao. Mabadiliko yaliyoletwa kwenye safu ya utekelezaji yanafanywa kwa utangamano wa nyuma, hata hivyo, daima weka jicho kwenye kesi za pembezoni na athari zinazowezekana. + +[Kwa kuongezeka kwa gharama ya precompile ya `ModExp`](https://eips.ethereum.org/EIPS/eip-7883), mikataba inayotegemea itatumia gesi zaidi kwa utekelezaji. Ikiwa mkataba wako unategemea sana hii na unakuwa wa gharama kubwa kwa watumiaji, fikiria upya jinsi unavyotumika. + +Fikiria [kikomo kipya cha milioni 16.7](https://eips.ethereum.org/EIPS/eip-7825) ikiwa miamala inayotekeleza mikataba yako inaweza kufikia ukubwa sawa. + +## Usomaji zaidi {#further-reading} + +- [Mpango kazi wa Ethereum](/roadmap/) +- [Forkcast: Fusaka](https://forkcast.org/upgrade/fusaka) +- [Fusaka Meta EIP](https://eips.ethereum.org/EIPS/eip-7607) +- [Tangazo la blogu la mtandao wa majaribio wa Fusaka](https://blog.ethereum.org/2025/09/26/fusaka-testnet-announcement) +- [Bankless: What Fusaka & Pectra will bring Ethereum](https://www.bankless.com/read/what-fusaka-pectra-will-bring-ethereum) +- [Bankless: Ethereum's Next Upgrades: Fusaka, Glamsterdam & Beyond with Preston Van Loon](https://x.com/BanklessHQ/status/1956017743289020633?t=502) +- [Mafaili ya Fusaka](https://www.youtube.com/playlist?list=PL4cwHXAawZxpz-erUbKKUnnGoQNdF8s7Z) +- [PEEPanEIPs Imefafanuliwa](https://www.youtube.com/playlist?list=PL4cwHXAawZxoIenfk7OJry4rxcqX-eqBt) diff --git a/public/content/translations/sw/roadmap/fusaka/peerdas/index.md b/public/content/translations/sw/roadmap/fusaka/peerdas/index.md new file mode 100644 index 00000000000..74d5adcb12d --- /dev/null +++ b/public/content/translations/sw/roadmap/fusaka/peerdas/index.md @@ -0,0 +1,88 @@ +--- +title: PeerDAS +description: Jifunze kuhusu PeerDAS kama sehemu ya sasisho la itifaki ya Fusaka Ethereum +lang: sw +--- + +# PeerDAS {#peer-das} + +Itifaki ya Ethereum inapitia sasisho lake muhimu zaidi la uongezwaji tangu [kuanzishwa kwa miamala ya blob na EIP-4844](/roadmap/danksharding/). Kama sehemu ya [sasisho la Fusaka](/roadmap/fusaka/), PeerDAS inaanzisha njia mpya ya kushughulikia data ya blob, ikitoa takriban ongezeko la mara kumi katika uwezo wa **[upatikanaji wa data (DA)](/developers/docs/data-availability/)** kwa L2s. + +[Zaidi kuhusu ramani ya uongezwaji wa blob](https://blog.ethereum.org/2025/08/22/protocol-update-002) + +## Uwezo wa kuongezeka {#scalability} + +Dira ya Ethereum ni kuwa jukwaa lisiloegemea upande wowote, salama na lililogatuliwa linalopatikana kwa kila mtu ulimwenguni. Matumizi ya mtandao yanapoongezeka, hii inahitaji kusawazisha changamoto tatu za uongezwaji, usalama, na ugatuzi wa mtandao. Ikiwa Ethereum ingeongeza tu data inayoshughulikiwa na mtandao ndani ya muundo wake wa sasa, ingekuwa katika hatari ya kuzidisha uwezo wa [nodi ambazo Ethereum inategemea kwa ugatuzi wake](/developers/docs/nodes-and-clients/). Uwezo wa kuongezeka unahitaji muundo thabiti wa utaratibu unaopunguza maelewano. + +Mojawapo ya mikakati ya kufikia lengo hili ni kuruhusu mfumo-ikolojia tofauti wa suluhisho za uongezwaji za safu ya 2 badala ya kuchakata miamala yote kwenye [safu ya 1 (L1)](/glossary/#layer-1) Mtandao Mkuu. [Safu za 2 (L2s)](/glossary/#layer-2) au [unda-mpya](/glossary#rollups) huchakata miamala kwenye minyororo yao tofauti na hutumia Ethereum kwa uthibitishaji na usalama. Kuchapisha tu ahadi muhimu za usalama na kubana mizigo ya data huruhusu L2s kutumia uwezo wa DA wa Ethereum kwa ufanisi zaidi. Kwa upande mwingine, L1 hubeba data kidogo bila kuathiri dhamana za usalama, huku L2s zikipokea watumiaji wengi zaidi kwa gharama za chini za gesi. Hapo awali, L2s zilichapisha data kama `calldata` katika miamala ya kawaida, ambayo ilishindana na miamala ya L1 kwa ajili ya gesi na haikuwa na manufaa kwa upatikanaji wa data kwa wingi. + +## Proto-Danksharding {#proto-danksharding} + +Hatua ya kwanza kubwa kuelekea uongezwaji wa L2 ilikuwa ni sasisho la Dencun, lililoanzisha [Proto-Danksharding](/roadmap/danksharding/) (EIP-4844). Sasisho hili liliunda aina mpya, maalum ya data kwa unda-mpya zinazoitwa blobs. [Blobs](/developers/docs/data-availability/blockchain-data-storage-strategies/#eip-4844-blobs), au vitu vikubwa vya jozi, ni vipande vya muda vya data holela ambavyo havihitaji utekelezaji wa EVM na nodi huzihifadhi kwa muda mfupi tu. Uchakataji huu wenye ufanisi zaidi uliruhusu L2s kuchapisha data zaidi kwenye Ethereum na kuongeza kiwango hata zaidi. + +Licha ya kuwa na faida kubwa kwa uongezwaji, kutumia blobs ni sehemu tu ya lengo kuu. Katika itifaki ya sasa, kila nodi kwenye mtandao bado inahitaji kupakua kila blob. Kikwazo kinakuwa ni kipimo data kinachohitajika na nodi binafsi, huku kiasi cha data kinachohitaji kupakuliwa kikiongezeka moja kwa moja kadri idadi ya blob inavyoongezeka. + +Ethereum hailegalegi katika ugatuzi, na kipimo data ni mojawapo ya vigezo nyeti zaidi. Hata kukiwa na kompyuta zenye nguvu zinazopatikana kwa wingi kwa mtu yeyote anayeweza kuzimudu, [vikwazo vya kipimo data cha upakiaji](https://www.speedtest.net/global-index) hata katika miji mikubwa katika mataifa yaliyoendelea (kama vile [Ujerumani](https://www.speedtest.net/global-index/germany), [Ubelgiji](https://www.speedtest.net/global-index/belgium), [Australia](https://www.speedtest.net/global-index/australia) au [Marekani](https://www.speedtest.net/global-index/united-states)) vinaweza kuzuia nodi kuendeshwa tu kutoka kwenye vituo vya data ikiwa mahitaji ya kipimo data hayarekebishwi kwa makini. + +Waendeshaji wa nodi wana mahitaji yanayoongezeka ya kipimo data na nafasi ya diski kadri blob zinavyoongezeka. Ukubwa na idadi ya blobs vinazuiliwa na vikwazo hivi. Kila blob inaweza kubeba hadi 128kb ya data na wastani wa blob 6 kwa kila bloku. Hii ilikuwa tu hatua ya kwanza kuelekea muundo wa baadaye unaotumia blobs kwa njia yenye ufanisi zaidi. + +## Sampuli ya upatikanaji wa data {#das} + +[Upatikanaji wa data](/developers/docs/data-availability/) ni uhakikisho kwamba data yote inayohitajika ili kuthibitisha mnyororo kwa uhuru inapatikana kwa washiriki wote wa mtandao. Inahakikisha kwamba data imechapishwa kikamilifu na inaweza kutumika kuthibitisha bila kuaminiwa hali mpya ya mnyororo au miamala inayoingia. + +Blobs za Ethereum hutoa dhamana thabiti ya upatikanaji wa data inayohakikisha usalama wa L2s. Ili kufanya hivi, nodi za Ethereum zinahitaji kupakua na kuhifadhi blobs zote kamili. Lakini vipi ikiwa tunaweza kusambaza blobs kwenye mtandao kwa ufanisi zaidi na kuepuka kikwazo hiki? + +Njia tofauti ya kuhifadhi data na kuhakikisha upatikanaji wake ni **sampuli ya upatikanaji wa data (DAS)**. Badala ya kila kompyuta inayoendesha Ethereum kuhifadhi kikamilifu kila blob, DAS inaanzisha mgawanyo wa kazi uliogatuliwa. Inapunguza mzigo wa kuchakata data kwa kusambaza kazi ndogo, zinazoweza kudhibitiwa kwa mtandao mzima wa nodi. Blobs hugawanywa katika vipande na kila nodi hupakua vipande vichache tu kwa kutumia utaratibu wa usambazaji wa nasibu sare kwa nodi zote. + +Hii inaleta tatizo jipya—kuthibitisha upatikanaji na uadilifu wa data. Mtandao unawezaje kuhakikisha kwamba data inapatikana na yote ni sahihi wakati nodi binafsi zinashikilia vipande vidogo tu? Nodi hasidi inaweza kutoa data bandia na kuvunja kwa urahisi dhamana thabiti za upatikanaji wa data! Hapa ndipo kriptografia inapoingilia kusaidia. + +Ili kuhakikisha uadilifu wa data, EIP-4844 tayari ilitekelezwa na ahadi za KZG. Hizi ni ithibati za kriptografia zinazoundwa wakati blob mpya inapoongezwa kwenye mtandao. Uthibitisho mdogo hujumuishwa katika kila bloku, na nodi zinaweza kuthibitisha kwamba blobs zilizopokelewa zinaendana na ahadi ya KZG ya bloku. + +DAS ni utaratibu unaojengwa juu ya hili na unahakikisha data ni sahihi na inapatikana. Kuchukua sampuli ni mchakato ambapo nodi huuliza sehemu ndogo tu ya data na kuithibitisha dhidi ya ahadi. KZG ni mpango wa ahadi ya polinomiali ambayo inamaanisha kwamba nukta yoyote moja kwenye mkunjo wa polinomiali inaweza kuthibitishwa. Kwa kuangalia nukta chache tu kwenye polinomiali, mteja anayefanya sampuli anaweza kuwa na uhakika mkubwa wa uwezekano kwamba data inapatikana. + +## PeerDAS {#peer-das} + +[PeerDAS (EIP-7594)](https://eips.ethereum.org/EIPS/eip-7594) ni pendekezo maalum linalotekeleza utaratibu wa DAS katika Ethereum, likiwa labda sasisho kubwa zaidi tangu Muungano. PeerDAS imeundwa kupanua data ya blob, kuigawanya katika safu wima na kusambaza sehemu ndogo kwa nodi. + +Ethereum inakopa hisabati za busara kufanikisha hili: inatumia usimbaji wa kufuta wa mtindo wa Reed-Solomon kwa data ya blob. Data ya blob inawakilishwa kama polinomiali ambayo vizigeu vyake vinasimba data, kisha kutathmini polinomiali hiyo kwenye nukta za ziada ili kuunda blob iliyopanuliwa, na kuongeza maradufu idadi ya tathmini. Upungufu huu ulioongezwa unawezesha urejeshaji wa data iliyofutwa: hata kama baadhi ya tathmini zimepotea, blob ya asili inaweza kuundwa upya mradi angalau nusu ya data yote, pamoja na vipande vilivyoongezwa, inapatikana. + +![Polinomiali iliyopanuliwa](./polynomial.png) + +Katika hali halisi, polinomiali hii ina maelfu ya vizigeu. Ahadi za KZG ni thamani za baiti chache, kitu kama hashi, zinazojulikana na nodi zote. Kila nodi iliyo na nukta za data za kutosha inaweza [kuunda upya kwa ufanisi seti kamili ya data ya blob](https://arxiv.org/abs/2207.11079). + +> Ukweli wa kufurahisha: mbinu hiyo hiyo ya usimbaji ilitumiwa na DVD. Ikiwa ulikwaruza DVD, kicheza diski bado kiliweza kuisoma shukrani kwa usimbaji wa Reed-Solomon ambao huongeza vipande vilivyokosekana vya polinomiali. + +Kihistoria, data katika minyororo ya bloku, iwe bloku au blobs, ilitangazwa kwa nodi zote. Kwa mbinu ya PeerDAS ya kugawanya-na-kuchukua-sampuli, kutangaza kila kitu kwa kila mtu sio lazima tena. Baada ya Fusaka, mitandao ya safu ya makubaliano imepangwa katika mada/mitandao midogo ya uvumi: safu wima za blob hupewa mitandao midogo maalum, na kila nodi hujiandikisha kwa seti ndogo zilizopangwa tayari na huhifadhi tu vipande hivyo. + +Kwa PeerDAS, data ya blob iliyopanuliwa imegawanywa katika vipande 128 vinavyoitwa safu wima. Data inasambazwa kwa nodi hizi kupitia itifaki maalum ya uvumi kwenye mitandao midogo maalum ambayo wanajiandikisha. Kila nodi ya kawaida kwenye mtandao hushiriki katika angalau mitandao midogo 8 ya safu wima iliyochaguliwa kwa nasibu. Kupokea data kutoka kwa mitandao midogo 8 tu kati ya 128 kunamaanisha kuwa nodi hii chaguo-msingi hupokea 1/16 tu ya data yote, lakini kwa sababu data ilipanuliwa hii ni 1/8 ya data ya asili. + +Hii inaruhusu kikomo kipya cha kinadharia cha uongezwaji cha 8x cha mpango wa sasa wa “kila mtu anapakua kila kitu”. Huku nodi zikijiandikisha kwa mitandao midogo tofauti ya nasibu inayohudumia safu wima za blob, uwezekano ni mkubwa sana kwamba zimesambazwa kwa usawa na kwa hivyo kila kipande cha data kinapatikana mahali fulani kwenye mtandao. Nodi zinazoendesha wathibitishaji zinatakiwa kujiandikisha kwa mitandao midogo zaidi kwa kila mthibitishaji wanayemwendesha. + +> Kila nodi ina kitambulisho cha kipekee kilichozalishwa kwa nasibu, kwa kawaida hutumika kama utambulisho wake wa umma kwa miunganisho. Katika PeerDAS, nambari hii hutumiwa kuamua seti ya nasibu ya mitandao midogo ambayo inapaswa kujiandikisha, na kusababisha usambazaji wa nasibu sare wa data yote ya blob. + +Mara tu nodi inapounda upya data ya asili kwa mafanikio, kisha inasambaza tena safu wima zilizorejeshwa kwenye mtandao, ikiponya kikamilifu mapengo yoyote ya data na kuimarisha ustahimilivu wa jumla wa mfumo. Nodi zilizounganishwa na wathibitishaji walio na salio la pamoja ≥4096 ETH lazima ziwe nodi kuu na kwa hivyo lazima zijiandikishe kwa mitandao yote midogo ya safu wima ya data na kuhifadhi safu wima zote. Nodi kuu hizi zitaponya mapengo ya data mfululizo. Hali ya kujiponya kwa uwezekano ya itifaki inaruhusu dhamana thabiti za upatikanaji huku isiwazuie waendeshaji wa nyumbani wanaoshikilia sehemu tu za data. + +![Nodi zinazojiandikisha kwenye safu wima zilizosambazwa kupitia mitandao midogo](./subnets.png) + +Upatikanaji wa data unaweza kuthibitishwa na nodi yoyote inayoshikilia sehemu ndogo tu ya data ya blob shukrani kwa utaratibu wa sampuli ulioelezwa hapo juu. Upatikanaji huu unalazimishwa: wathibitishaji lazima wafuate sheria mpya za uchaguzi wa mgawanyiko, ikimaanisha watakubali na kupigia kura bloku tu baada ya kuthibitisha upatikanaji wa data. + +Athari ya moja kwa moja kwa watumiaji (hasa watumiaji wa L2) ni ada za chini. Kukiwa na nafasi ya 8x zaidi kwa data ya unda-mpya, shughuli za watumiaji kwenye mnyororo wao huwa nafuu zaidi kadri muda unavyokwenda. Lakini ada za chini baada ya Fusaka zitachukua muda na zitategemea BPO. + +## Vigezo vya Blob Pekee (BPO) {#bpo} + +Mtandao kinadharia utaweza kuchakata blobs 8x zaidi, lakini ongezeko la blob ni mabadiliko yanayohitaji kujaribiwa ipasavyo na kutekelezwa kwa usalama hatua kwa hatua. Mitandao ya majaribio hutoa imani ya kutosha kupeleka vipengele kwenye Mtandao Mkuu lakini tunahitaji kuhakikisha uthabiti wa mtandao wa p2p kabla ya kuwezesha idadi kubwa zaidi ya blobs. + +Ili kuongeza taratibu idadi lengwa ya blobs kwa kila bloku bila kuulemea mtandao, Fusaka inaanzisha migawanyiko ya **[Vigezo vya Blob-Pekee (BPO)](https://ethereum-magicians.org/t/blob-parameter-only-bpo-forks/22623)**. Tofauti na migawanyiko ya kawaida inayohitaji uratibu mpana wa mfumo-ikolojia, makubaliano, na masasisho ya programu, [BPO (EIP-7892)](https://eips.ethereum.org/EIPS/eip-7892) ni masasisho yaliyopangwa awali yanayoongeza idadi ya juu ya blobs kadri muda unavyopita bila kuingiliwa. + +Hii ina maana kwamba mara tu baada ya Fusaka kuamilishwa na PeerDAS kuanza kutumika, idadi ya blobs haitabadilika. Idadi ya blobs itaanza kuongezeka maradufu kila baada ya wiki chache hadi ifikie upeo wa 48, huku wasanidi programu wakifuatilia ili kuhakikisha utaratibu unafanya kazi kama inavyotarajiwa na hauna athari mbaya kwa nodi zinazoendesha mtandao. + +## Mielekeo ya baadaye {#future-directions} + +PeerDAS ni hatua tu [kuelekea dira kubwa zaidi ya uongezwaji ya FullDAS](https://ethresear.ch/t/fulldas-towards-massive-scalability-with-32mb-blocks-and-beyond/19529), au Danksharding. Wakati PeerDAS inatumia usimbaji wa kufuta wa 1D kwa kila blob kibinafsi, Danksharding kamili itatumia mpango kamili zaidi wa usimbaji wa kufuta wa 2D kwenye matrix nzima ya data ya blob. Kupanua data katika vipimo viwili huunda sifa zenye nguvu zaidi za upungufu na uundaji upya na uthibitishaji wenye ufanisi zaidi. Kufanikisha FullDAS kutahitaji uboreshaji mkubwa wa mtandao na itifaki, pamoja na utafiti wa ziada. + +## Masomo zaidi {#further-reading} + +- [PeerDAS: Sampuli ya Upatikanaji wa Data ya Rika na Francesco D'Amato](https://www.youtube.com/watch?v=WOdpO1tH_Us) +- [Nyaraka za PeerDAS ya Ethereum](https://eprint.iacr.org/2024/1362.pdf) +- [Kuthibitisha Usalama wa PeerDAS bila AGM](https://eprint.iacr.org/2025/1683) +- [Vitalik kuhusu PeerDAS, athari zake, na kujaribu Fusaka](https://x.com/VitalikButerin/status/1970983281090085200) \ No newline at end of file diff --git a/public/content/translations/sw/roadmap/future-proofing/index.md b/public/content/translations/sw/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..d6786f3963e --- /dev/null +++ b/public/content/translations/sw/roadmap/future-proofing/index.md @@ -0,0 +1,53 @@ +--- +title: Kujenga jamii ya Ethereum ambazo zinaweza kustahimili mabadiliko ya teknolojia na soko +description: "''Maboresho haya yanaimarisha Ethereum kama safu ya msingi yenye uthabiti na usambazaji wa madaraka na kuifanya iwe tayari kustahimili changamoto zozote zitakazojitokeza.\"" +lang: sw +image: /images/roadmap/roadmap-future.png +alt: "Ramani ya maendeleo ya Ethereum" +template: roadmap +--- + +Kuna baadhi ya mambo kwenye ramani ya maendeleo ambayo si ya haraka kwa ukuaji au usalama wa Ethereum sasa, lakini yanaandaa Ethereum kuwa thabiti na ya kuaminika hata miaka mingi zijazo + +## Ukinzani wa quantum {#quantum-resistance} + +Baadhi ya [kriptografia](/glossary/#cryptography) inayolinda Ethereum ya sasa itahujumiwa wakati kompyuta ya quantum itakapokuwa ukweli. Ingawa huenda kompyuta za quantum ziko miongo mingi kabla ya kuwa tishio la kweli kwa kriptografia ya kisasa, Ethereum inajengwa kuwa salama kwa karne nyingi zijazo. Hii inamaanisha kuifanya [Ethereum iwe na ukinzani wa quantum](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) haraka iwezekanavyo. + +Changamoto inayowakabili wasanidi programu wa Ethereum ni kwamba itifaki ya sasa ya [proof-of-stake](/glossary/#pos) inategemea mpango mzuri sana wa sahihi unaojulikana kama BLS ili kujumlisha kura kwenye [bloku](/glossary/#block) halali. Mpango huu wa sahihi unavunjwa na kompyuta za quantum, lakini njia mbadala zenye ukinzani wa quantum hazina ufanisi sawa. + +Mipango ya ahadi ya [“KZG”](/roadmap/danksharding/#what-is-kzg) inayotumiwa katika maeneo kadhaa kwenye Ethereum ili kutengeneza siri za kriptografia inajulikana kuwa inaweza kuathiriwa na quantum. Kwa sasa, hili linakwepwa kwa kutumia “mipangilio inayoaminika” (ambapo sherehe kuu ya usanidi ilikamilika kwa mafanikio mwaka wa 2023), ambapo watumiaji wengi walitengeneza nasibu isiyoweza kubadilishwa na kompyuta ya quantum. Hata hivyo, suluhisho bora la muda mrefu litakuwa ni kujumuisha kriptografia salama dhidi ya quantum badala yake. Kuna mbinu mbili kuu ambazo zinaweza kuwa mbadala bora kwa mpango wa BLS: usahihi wa [kulingana na STARK](https://hackmd.io/@vbuterin/stark_aggregation) na [kulingana na lattice](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175). **Hizi bado zinafanyiwa utafiti na kujaribiwa kikamilifu**. + +[Soma kuhusu KZG na mipangilio inayoaminika](/roadmap/danksharding#what-is-kzg) + +## Ethereum rahisi na yenye ufanisi zaidi {#simpler-more-efficient-ethereum} + +Utata huleta fursa za hitilafu au udhaifu ambao unaweza kutumiwa na washambuliaji. Kwa hivyo, sehemu ya ramani ni kurahisisha Ethereum na kuondoa au kurekebisha msimbo ambao umedumu kupitia masasisho mbalimbali lakini hauhitajiki tena au sasa unaweza kuboreshwa. Msingi wa msimbo mwepesi na rahisi ni rahisi kwa wasanidi programu kudumisha na kufikiria. + +Ili kufanya [Mashine Halisi ya Ethereum (EVM)](/developers/docs/evm) iwe rahisi na yenye ufanisi zaidi, maboresho yanaendelea kufanyiwa utafiti na kutekelezwa. Hii inahusisha kushughulikia vipengele vya zamani na kuanzisha uboreshaji. + +**Mabadiliko ya Hivi Karibuni Yaliyotekelezwa:** + +- **Marekebisho ya Ukokotoaji wa Gesi:** Njia ambayo [gesi](/glossary/#gas) inakokotolewa iliboreshwa kwa kiasi kikubwa na **EIP-1559 (iliyotekelezwa katika sasisho la London, 2021)**, na kuanzisha ada ya msingi na utaratibu wa kuchoma kwa bei ya muamala inayotabirika zaidi. +- **Vizuizi vya `SELFDESTRUCT`:** Opcode ya `SELFDESTRUCT`, ingawa haitumiki sana, ilileta hatari zinazowezekana. Utendakazi wake **ulizuiliwa sana katika sasisho la Dencun (Machi 2024) kupitia EIP-6780** ili kupunguza hatari, hasa kuhusu usimamizi wa hali. +- **Aina za Miamala za Kisasa:** Fomati mpya za miamala zimeanzishwa (k.m., kupitia **EIP-2718** na **EIP-4844** kwa blopu katika sasisho la Dencun) ili kusaidia vipengele vipya na kuboresha ufanisi juu ya aina za zamani. + +**Malengo yanayoendelea na ya baadaye:** + +- **Ushughulikiaji Zaidi wa `SELFDESTRUCT`:** Ingawa imezuiliwa, **uwezekano wa kuondolewa kabisa** kwa opcode ya `SELFDESTRUCT` bado unafikiriwa kwa masasisho yajayo ili kurahisisha zaidi hali ya EVM. ([Muktadha zaidi kuhusu masuala ya SELFDESTRUCT](https://hackmd.io/@vbuterin/selfdestruct)). +- **Kuondoa Miamala ya Kizamani Taratibu:** Ingawa [wateja wa Ethereum](/glossary/#consensus-client) bado wanaauni aina za zamani za miamala kwa ajili ya uoanifu wa nyuma, lengo ni kuhimiza uhamiaji kwenda aina mpya na **uwezekano wa kuacha kutumia au kuondoa kabisa usaidizi kwa fomati za zamani zaidi** katika siku zijazo. +- **Utafiti Unaoendelea wa Ufanisi wa Gesi:** Utafiti unaendelea kuhusu **marekebisho zaidi ya ukokotoaji wa gesi**, ikiwezekana ikijumuisha dhana kama gesi ya pande nyingi ili kuonyesha vizuri zaidi matumizi ya rasilimali. +- **Operesheni za Kriptografia Zilizoboreshwa:** Juhudi zinaendelea **kuleta mbinu bora zaidi za hesabu** zinazotegemeza operesheni za kriptografia zinazotumiwa ndani ya EVM. + +Vile vile, kuna masasisho yanayoweza kufanywa kwa sehemu nyingine za wateja wa sasa wa Ethereum. Mfano mmoja ni kwamba wateja wa sasa wa utekelezaji na makubaliano wanatumia aina tofauti ya ukandamizaji wa data. Itakuwa rahisi zaidi na dhahiri kushiriki data kati ya wateja wakati mpango wa ukandamizaji utakapounganishwa kwenye mtandao mzima. Hili linabaki kuwa eneo la utafiti. + +## Maendeleo ya sasa {#current-progress} + +Mengi ya masasisho ya muda mrefu ya kujiandaa kwa siku zijazo, hasa **ukinzani kamili wa quantum kwa itifaki za msingi, bado ziko katika hatua ya utafiti na zinaweza kuwa miaka kadhaa mbali** na kutekelezwa. + +Hata hivyo, **maendeleo makubwa tayari yamefanywa katika juhudi za kurahisisha.** Kwa mfano, mabadiliko muhimu kama vile **kizuizi cha `SELFDESTRUCT` (EIP-6780)** na kuanzishwa kwa **miamala inayobeba blopu (EIP-4844)** yalitekelezwa katika **sasisho la Dencun (Machi 2024)**. Kazi ya kuoanisha mipango ya ukandamizaji ya wateja na maboresho mengine ya ufanisi pia inaendelea. + +**Kusoma zaidi** + +- [Gesi](/developers/docs/gas) +- [EVM](/developers/docs/evm) +- [Miundo ya data](/developers/docs/data-structures-and-encoding) \ No newline at end of file diff --git a/public/content/translations/sw/roadmap/merge/index.md b/public/content/translations/sw/roadmap/merge/index.md index 194677877fe..58f6fdbcbdd 100644 --- a/public/content/translations/sw/roadmap/merge/index.md +++ b/public/content/translations/sw/roadmap/merge/index.md @@ -1,68 +1,227 @@ --- title: Muungano -description: Jifunze kuhusu muunganiko - ambapo mtandao mkuu wa Ethereum utakapoungana na Mnyororo Kioleza ulioratibu mfumo wa uthibitisho-wa-hisa. +description: Jifunze kuhusu kuunganisha - wakati Mainnet Ethereum ilipopitisha uthibitisho wa dhamana. lang: sw template: upgrade image: /images/upgrades/merge.png -alt: -summaryPoint1: Hatimaye Ethereum ya sasa itafanya "muungano" na mfumo wa uthibitisho-wa-hisa wa mnyororo kioleza. -summaryPoint2: Hii itaweka alama ya kuhitumu kwa Ethereum ya uthibitisho-wa-kazi, na mpito mzima kwenda kwenye uthibitisho-wa-hisa. -summaryPoint3: Hii imepangwa kutangulia utolewaji wa minyororo ya vigae. -summaryPoint4: Kabla tuliita hii hatua kama "utiaji nanga" +alt: +summaryPoint1: Ethereum Mainnet hutumia uthibitisho wa dhamana, lakini haikuwa hivyo kila wakati. +summaryPoint2: Uboreshaji kutoka kwa utaratibu wa asili wa uthibitisho wa kazi hadi uthibitisho wa dhamana uliitwa Kuunganisha. +summaryPoint3: Kuunganisha kunarejelea Ethereum Mainnet iliyounganishwa na mnyororo tofauti wa uthibitisho wa dhamana unaoitwa mnyororo Beacon, ambayo sasa inapatikana kama mnyororo mmoja. +summaryPoint4: The Merge ilipunguza matumizi ya nishati ya Ethereum kwa ~99.95%. --- - - Sasisho hili linawakilisha mabadiliko rasmi kuwa makubaliano ya uthibitisho-wa-hisa. Hii inaondoa mahitaji ya umeme wenye nguvu wakati wa uchimbaji, na badala yake italinda mtandao kwa kutumia ether iliopo. Hatua ya kusisimua kweli katika kutambua [maono ya Eth2](/roadmap/) - inayoweza kubadilika zaidi, yenye usalama na endelevu. + + Kuunganisha kulitekelezwa mnamo Septemba 15, 2022. Hii ilikamilisha mpito wa Ethereum hadi makubaliano ya uthibitisho wa hisa, ikipuuza rasmi uthibitisho wa kazi na kupunguza matumizi ya nishati kwa ~ 99.95%. -## Muunganisho ni nini? {#what-is-the-docking} +## Kuunganisha ni nini? {#what-is-the-merge} -Ni muhimu kukumbuka kwamba mwanzoni, [Mnyororo Kioleza](/roadmap/beacon-chain/)ulitenganishwa na [Mtandao Mkuu](/glossary/#mainnet) wakati wa usafirishaji - mtandao tunaoutumia leo hii. Mtandao mkuu wa Ethereum utaendelea kulindwa na [uthibitisho-wa-kazi](/developers/docs/consensus-mechanisms/pow/), hata pale Myororo Kioleza utakapofanya kazi sambamba uklitumia [uthibitisho-wa-hisa](/developers/docs/consensus-mechanisms/pos/). Muunganisho ni pale mifumo hii miwili itakapokuwa pamoja. +Muungano ulikuwa ni uunganishaji wa safu ya utekelezaji ya awali ya Ethereum (Mtandao Mkuu ambao umekuwepo tangu [genesis](/ethereum-forks/#frontier)) na safu yake mpya ya makubaliano ya uthibitishaji-wa-hisa, Mnyororo Kioleza. Iliondoa hitaji la uchimbaji madini unaotumia nishati nyingi na badala yake kuwezesha mtandao kulindwa kwa kutumia ETH iliyowekwa hatarini. Ilikuwa ni hatua ya kusisimua kweli katika kutimiza maono ya Ethereum—usalama zaidi, usalama, na uendelevu. -Fikiria kwamba Ethereum ni chombo cha anga kilichotayari kusafiri katikati ya nyota mablimbali. Pamoja na Mnyororo wa Kioleza jamii imeunda injini mpya na ganda ngumu. Wakati ukifika, meli ya sasa itapanda gati na mfumo huu mpya, ikiungana kuwa meli moja, tayari kuweka miaka mingine mizito na kuchukua ulimwengu. + -## Kuunganika na Mtandao Mkuu {#docking-mainnet} +Hapo awali, [Mnyororo Kioleza](/roadmap/beacon-chain/) ulitolewa kando na [Mtandao Mkuu](/glossary/#mainnet). Mtandao Mkuu wa Ethereum - pamoja na akaunti zake zote, salio, mikataba-erevu, na hali ya mnyororo wa bloku - uliendelea kulindwa na [uthibitishaji-wa-kazi](/developers/docs/consensus-mechanisms/pow/), hata wakati Mnyororo Kioleza ulikuwa ukifanya kazi sambamba kwa kutumia [uthibitishaji-wa-hisa](/developers/docs/consensus-mechanisms/pos/). Kuunganisha ndipo mifumo hii miwili ilipokuja pamoja, na uthibitisho wa kazi ulibadilishwa kabisa na uthibitisho wa dhamana. -Wkati iko tayari, Mtandao Mkuu wa Ethereum "itaungana" na Mnyororo Kioleza, kisha kitakuwa kipande chake kinachojitegemea kinachotumia uthibitisho-wa-hisa bala ya [uthibitisho-wa-kazi](/developers/docs/consensus-mechanisms/pow/). +Fikiria Ethereum ni meli ya anga ya juu iliyozinduliwa kabla ya kuwa tayari kabisa kwa safari ya nyota. Pamoja na Mnyororo wa Beacon, jumuiya ilijenga injini mpya na ukuta mgumu. Baada ya majaribio makubwa, ikawa wakati wa kubadilisha injini mpya kwa ile ya zamani ya safari ya katikati ya ndege. Hii iliunganisha injini mpya, yenye ufanisi zaidi katika meli iliyopo na kuiwezesha kuweka miaka kadhaa ya mwanga na kuchukua ulimwengu. -Mtandao Mkuu utaleta uwezo wa kuendesha mikataba mahiri kwenye mfumo wa uthibitisho-wa-hisa, pamoja na historia kamili na hali ya sasa ya Ethereum, kuhakikisha kuwa mabadiliko ni laini kwa wamiliki na watumiaji wote wa ETH. +## Kuunganisha na Mtandao Mkuu {#merging-with-mainnet} -## Baada ya muunganisho {#after-the-merge} +Uthibitisho wa kazi ulilinda Ethereum Mainnet kutoka mwanzo hadi The Merge. Hii iliruhusu kiambajengo cha Ethereum ambayo sisi sote tumezoea kuanza kutumika Julai 2015 pamoja na vipengele vyake vyote vinavyojulikana—alama, mikataba mahiri, akaunti, n. k. -Hii itaashiria kumalizika kwa uthibitisho-wa-kazi kwa Ethereum na kuanza enzi ya Ethereum endelevu zaidi, rafiki kwa ikolojia ya mazingira. Kwa wakati huu Ethereum itakuwa hatua moja karibu na kufikia kiwango kamili, usalama na uendelevu ulioainishwa katika [Maono ya Ethereum](/roadmap/). +Katika historia yote ya Ethereum, wajenzi walitayarisha mabadiliko ya baadaye kutoka kwa uthibitisho wa kazi hadi uthibitisho wa dhamana. Mnamo Desemba 1, 2020, Mnyororo wa Beacon uliundwa kama kiambajengo tofauti kwa Mainnet, inayoendesha sambamba. -Ni muhimu kutambua kuwa lengo la utekelezaji wa unganisho ni urahisishaji ili kuharakisha mabadiliko kutoka kwa uthibitisho-wa-kazi hadi uthibitisho-wa-hisa. Waendelezaji wanazingatia juhudi zao kwenye mpito huu, na kupunguza huduma zingine ambazo zinaweza kuchelewesha lengo hili. +Mnyororo wa Beacon haikuwa ikichakata shughuli za Mainnet. Badala yake, ilikuwa inafikia makubaliano juu ya hali yake yenyewe kwa kukubaliana juu ya wathibitishaji amilifu na salio la akaunti zao. Baada ya majaribio ya kina, ikawa wakati wa mnyororo wa Beacon kufikia makubaliano juu ya data ya ulimwengu halisi. Baada ya Kuunganisha, Beacon Chain ikawa injini ya makubaliano kwa data zote za mtandao, ikiwa ni pamoja na miamala ya safu ya utekelezaji na salio la akaunti. -** Hii inamaanisha huduma chache, kama vile uwezo wa kutoa ETH iliyodumu, italazimika kusubiri kwa muda mrefu baada ya muunganiko kukamilika. ** Mipango ni pamoja na "usafishaji" wa baada ya kuungana sasisha kushughulikia huduma hizi, ambazo zinatarajiwa kutokea mapema sana baada ya unganisho kukamilika. +Baada ya Kuunganisha, Beacon Chain ikawa injini ya makubaliano kwa data zote za mtandao, ikiwa ni pamoja na miamala ya safu ya utekelezaji na salio la akaunti. Uchimbaji siyo tena njia ya kuzalisha bloku halali. Badala yake, wathibitishaji wa uthibitishaji-wa-hisa wamechukua jukumu hili na sasa wanawajibika kwa kuchakata uhalali wa miamala yote na kupendekeza bloku. -## Mahusiano kati ya visasisho {#relationship-between-upgrades} +Hakuna historia iliyopotea katika Muungano. Wakati Mtandao Mkuu ulipoungana na Mnyororo Kioleza, pia uliunganisha historia yote ya miamala ya Ethereum. + + + + +Mpito huu kwenda kwenye uthibitishaji-wa-hisa ulibadilisha jinsi ether inavyotolewa. Jifunze zaidi kuhusu [utoaji wa ether kabla na baada ya Muungano](/roadmap/merge/issuance/). + + + + +### Watumiaji na wamiliki {#users-holders} + +**Muungano haukubadilisha chochote kwa wamiliki/watumiaji.** + +_Hii inapaswa kurudiwa_: Kama mtumiaji au mmiliki wa ETH au mali nyingine yoyote ya kidijitali kwenye Ethereum, pamoja na washikadau wasioendesha nodi, **huna haja ya kufanya chochote na fedha zako au mkoba wako kuhusiana na Muungano.** ETH ni ETH tu. Hakuna kitu kama "ETH ya zamani"/"ETH mpya" au "ETH1"/"ETH2" na pochi hufanya kazi sawasawa baada ya The Merge kama zilivyokuwa awali—watu wanaokuambia vinginevyo wanaweza kuwa walaghai. + +Licha ya kubadilisha uthibitishaji-wa-kazi, historia yote ya Ethereum tangu genesis ilibaki thabiti na haikubadilishwa na mabadiliko ya kwenda kwenye uthibitishaji-wa-hisa. Fedha zozote zilizokuwa kwenye mkoba wako kabla ya Muungano bado zinapatikana baada ya Muungano. **No action is required to upgrade on your part.** + +[Maelezo zaidi kuhusu usalama wa Ethereum](/security/#eth2-token-scam) + +### Waendeshaji wa nodi na wasanidi wa mfumo mtawanyo wa kimamlaka {#node-operators-dapp-developers} + + + +Vipengee muhimu vya kuchukua hatua ni pamoja na: + +1. Endesha _zote mbili_ mteja wa makubaliano na mteja wa utekelezaji; sehemu za mwisho za wahusika wengine za kupata data ya utekelezaji hazifanyi kazi tena tangu Muungano. +2. Thibitisha wateja wote wa utekelezaji na wa makubaliano kwa siri ya pamoja ya JWT ili waweze kuwasiliana kwa usalama. +3. Weka anwani ya `mpokeaji ada` ili kupokea vidokezo/MEV vya ada ya muamala uliyochuma. + +Kutokukamilisha vipengee viwili vya kwanza hapo juu kutasababisha nodi yako ionekane kama \"nje ya mtandao\" hadi safu zote mbili zisawazishwe na kuthibitishwa. + +Kutokuweka `mpokezi wa ada` bado kutamruhusu kiidhinishi chako kufanya kama kawaida, lakini hutakosa vidokezo vya ada ya kutolipa na MEV yoyote ambayo ungepokea katika vitalu inapendekeza mthibitishaji wako. + + + + +Hadi kabla ya Muungano, mteja wa utekelezaji (kama Geth, Erigon, Besu au Nethermind) alitosha kupokea, kuthibitisha ipasavyo, na kueneza bloku zinazoenezwa na mtandao. _Baada ya Muungano_, uhalali wa miamala iliyomo ndani ya shehena ya utekelezaji sasa pia unategemea uhalali wa \"bloku ya makubaliano\" iliyomo. + +Kwa sababu hiyo, nodi kamili ya Ethereum sasa inahitaji mteja wa utekelezaji na mteja wa makubaliano. Wateja hawa wawili hufanya kazi pamoja kwa kutumia API mpya ya Engine. API ya Engine inahitaji uthibitishaji kwa kutumia siri ya JWT, ambayo hutolewa kwa wateja wote wawili ikiruhusu mawasiliano salama. + +Vipengee muhimu vya kuchukua hatua ni pamoja na: + +- Sakinisha mteja wa makubaliano pamoja na mteja wa utekelezaji +- Thibitisha wateja wa utekelezaji na makubaliano kwa siri ya pamoja ya JWT ili waweze kuwasiliana kwa usalama. + +Kutokukamilisha vipengee vilivyo hapo juu kutasababisha nodi yako kuonekana kuwa \"nje ya mtandao\" hadi safu zote mbili zisawazishwe na kuthibitishwa. + + + + +Muungano ulikuja na mabadiliko kwenye makubaliano, ambayo pia yanajumuisha mabadiliko yanayohusiana na: + +
    +
  • muundo wa bloku
  • +
  • muda wa nafasi/bloku
  • +
  • mabadiliko ya opcode
  • +
  • vyanzo vya nasibu kwenye mnyororo
  • +
  • dhana ya kichwa salama na bloku zilizokamilishwa
  • +
+ +Kwa maelezo zaidi, angalia chapisho hili la blogu na Tim Beiko kuhusu Jinsi Muungano Unavyoathiri Safu ya Matumizi ya Ethereum. +
+ +## Muungano na matumizi ya nishati {#merge-and-energy} + +Muungano uliashiria mwisho wa uthibitishaji-wa-kazi kwa Ethereum na kuanzisha enzi ya Ethereum endelevu zaidi na rafiki kwa mazingira. Matumizi ya nishati ya Ethereum yalipungua kwa takriban 99.95%, na kuifanya Ethereum kuwa mnyororo wa bloku unaojali mazingira. Jifunze zaidi kuhusu [matumizi ya nishati ya Ethereum](/energy-consumption/). + +## Muungano na uongezaji {#merge-and-scaling} + +Muungano pia uliweka msingi kwa masasisho zaidi ya uongezaji yasiyowezekana chini ya uthibitishaji-wa-kazi, na kuipeleka Ethereum hatua moja karibu na kufikia kiwango kamili, usalama na uendelevu ambao [ramani yake ya barabara](/roadmap/) inaelekea. + +## Dhana potofu kuhusu Muungano {#misconceptions} + + + +Kuna aina mbili za nodi za Ethereum: nodi zinazoweza kupendekeza bloku na nodi ambazo haziwezi. + +Nodi zinazopendekeza bloku ni idadi ndogo tu ya jumla ya nodi kwenye Ethereum. Aina hii inajumuisha nodi za uchimbaji chini ya uthibitishaji-wa-kazi (PoW) na nodi za wathibitishaji chini ya uthibitishaji-wa-hisa (PoS). Aina hii inahitaji kuweka rasilimali za kiuchumi (kama vile nguvu ya hashi ya GPU katika uthibitishaji-wa-kazi au ETH iliyoshikizwa katika uthibitishaji-wa-hisa) kwa kubadilishana na uwezo wa kupendekeza bloku inayofuata mara kwa mara na kupata zawadi za itifaki. + +Nodi zingine kwenye mtandao (yaani, idadi kubwa) hazihitajiki kuweka rasilimali zozote za kiuchumi zaidi ya kompyuta ya kiwango cha mtumiaji na hifadhi ya 1-2 TB na muunganisho wa intaneti. Nodi hizi hazipendekezi bloku, lakini bado zina jukumu muhimu katika kulinda mtandao kwa kuwawajibisha wapendekezaji wote wa bloku kwa kusikiliza bloku mpya na kuthibitisha uhalali wao zinapofika kulingana na sheria za makubaliano ya mtandao. Ikiwa bloku ni halali, nodi inaendelea kuieneza kupitia mtandao. Ikiwa bloku si halali kwa sababu yoyote ile, programu ya nodi itaipuuza kuwa si halali na kusitisha uenezaji wake. + +Kuendesha nodi isiyozalisha bloku inawezekana kwa mtu yeyote chini ya utaratibu wowote wa makubaliano (uthibitishaji-wa-kazi au uthibitishaji-wa-hisa); inahimizwa sana kwa watumiaji wote ikiwa wana uwezo. Kuendesha nodi kuna thamani kubwa sana kwa Ethereum na kunatoa manufaa ya ziada kwa mtu yeyote anayeiendesha, kama vile usalama ulioboreshwa, faragha na uwezo wa kustahimili udhibiti. + +Uwezo wa mtu yeyote kuendesha nodi yake mwenyewe ni muhimu kabisa katika kudumisha ugatuaji wa mtandao wa Ethereum. + +[More on running your own node](/run-a-node/) + + + + +Ada za gesi ni zao la mahitaji ya mtandao kulingana na uwezo wa mtandao. Muungano ulipuuza matumizi ya uthibitisho wa kazi, ukibadilika hadi uthibitisho wa dhamana kwa makubaliano, lakini haukubadilisha sana vigezo vyovyote vinavyoathiri moja kwa moja uwezo wa mtandao au upitishaji. + +Kwa a rollup-centric roadmap, efforts are being focused on scaling user activity at [layer 2](/layer-2/), huku kuwezesha safu ya 1 ya Mainnet kama safu salama ya ugawaji wa data kwa ajili ya usaidizi wa ugavi wa data ulioidhinishwa. kwa bei nafuu. Mpito kwenda kwenye uthibitishaji-wa-hisa ni mtangulizi muhimu katika kutimiza hili. [More on gas and fees.](/developers/docs/gas/) + + + +\"Kasi\" ya muamala inaweza kupimwa kwa njia chache, ikiwa ni pamoja na muda wa kujumuishwa kwenye bloku na muda wa kukamilishwa. Mabadiliko haya yote ni madogo, lakini si kwa namna ambayo watumiaji watagundua. + +Kihistoria, kwenye uthibitishaji-wa-kazi, lengo lilikuwa kuwa na bloku mpya kila baada ya sekunde ~13.3. Chini ya uthibitishaji-wa-hisa, nafasi hutokea kila sekunde 12, na kila nafasi ni fursa kwa mthibitishaji kuchapisha bloku. Nafasi nyingi zina bloku, lakini si lazima zote (yaani, mthibitishaji yuko nje ya mtandao). Katika uthibitishaji-wa-hisa, bloku zinazalishwa ~10% mara nyingi zaidi kuliko kwenye uthibitishaji-wa-kazi. Hili lilikuwa badiliko dogo na halina uwezekano wa kugunduliwa na watumiaji. + +Uthibitishaji-wa-hisa ulianzisha dhana ya umaliziaji wa muamala ambayo haikuwepo hapo awali. Katika uthibitisho wa kazi, uwezo wa kubadilisha kizuizi unakuwa mgumu zaidi kwa kila kizuizi kinachopita kinachochimbwa juu ya shughuli, lakini haifiki kabisa sifuri. Chini ya uthibitisho wa dhamana, vizuizi vinaunganishwa katika nyakati (muda wa dakika 6.4 zenye nafasi 32 za vizuizi) ambazo waidhinishaji hupigia kura. Wakati epoki inapoisha, wathibitishaji hupiga kura iwapo watazingatia epoki hiyo kama 'imehalalishwa'. Ikiwa wathibitishaji watakubali kuhalalisha epoki, inakamilishwa katika epoki inayofuata. Kutengua miamala iliyokamilishwa hakuwezekani kiuchumi kwani kungehitaji kupata na kuchoma zaidi ya theluthi moja ya jumla ya ETH iliyoshikizwa. + + + + +Hapo awali baada ya Muungano, washikadau waliweza tu kufikia vidokezo vya ada na MEV vilivyopatikana kutokana na mapendekezo ya bloku. Zawadi hizi huwekwa kwenye akaunti isiyo ya hisa inayodhibitiwa na mthibitishaji (known as the fee recipient), na zinapatikana mara moja. Zawadi hizi ni tofauti na zawadi za itifaki kwa kutekeleza majukumu ya mthibitishaji. + +Tangu uboreshaji wa mtandao wa Shanghai/Capella, wadau sasa wanaweza kuteua withdrawal address ili kuanza kupokea malipo ya kiotomatiki ya salio lolote la ziada la hisa (ETH zaidi ya 32 kutoka kwa zawadi za itifaki). Sasisho hili pia liliwezesha uwezo wa mthibitishaji kufungua na kudai salio lake lote anapotoka kwenye mtandao. + +[Maelezo zaidi kuhusu uondoaji wa ushikizaji](/staking/withdrawals/) + + + +Tangu sasisho la Shanghai/Capella liwezeshe uondoaji, wathibitishaji wanahamasishwa kuondoa salio lao la kushikiza lililo juu ya ETH 32, kwa kuwa fedha hizi haziongezi mavuno na vinginevyo zimefungwa. Kutegemeana na APR (inayobainishwa na jumla ya ETH iliyoshikizwa), wanaweza kuhamasishwa kutoka kwenye wathibitishaji wao ili kudai salio lao lote au hata kushikiza zaidi kwa kutumia zawadi zao ili kupata mavuno zaidi. + +Onyo muhimu hapa ni kwamba, matokeo kamili ya wathibitishaji yana kikomo cha kiwango na itifaki, na ni wathibitishaji wachache tu wanaoweza kutoka kwa kila epoki (kila dakika 6.4). Kikomo hiki hubadilika kulingana na idadi ya wathibitishaji hai, lakini ni takriban 0.33% ya jumla ya ETH iliyoshikizwa inaweza kutolewa kutoka kwa mtandao kwa siku moja. + +Hii inazuia utokaji mkubwa wa fedha zilizoshikizwa. Zaidi ya hayo, huzuia mshambulizi anayeweza kufikia sehemu kubwa ya jumla ya ETH inayohusishwa na kutenda kosa linaloweza kupunguzwa na kuondoka/kutoa salio zote za waidhinishaji potofu katika kipindi sawa kabla ya itifaki kutekeleza adhabu ya kufyeka. + +APR pia inabadilika kimakusudi, ikiruhusu soko la washikadau kusawazisha kiasi wanachotaka kulipwa ili kusaidia kulinda mtandao. Ikiwa kiwango ni cha chini sana, basi wathibitishaji watatoka kwa kiwango kilichowekwa na itifaki. Hatua kwa hatua hii itapandisha APR kwa kila mtu anayebaki, na kuvutia washikadau wapya au wanaorejea tena. + + +## Nini kimeipata 'Eth2?' {#eth2} + +Istilahi ya 'Eth2' imeachwa kutumika. Baada ya kuunganisha 'Eth1' na 'Eth2' kuwa mnyororo mmoja, hakuna tena haja ya kutofautisha kati ya mitandao miwili ya Ethereum; kuna Ethereum tu. + +Ili kuondoa sintofahamu, jamii imesasisha haya maneno: + +- 'Eth1'ni 'safu ya utekelezaji', ambayo hushughulikia miamala na utekelezaji. +- 'Eth2' ni 'safu ya makubaliano', inayoshughulikia makubaliano ya uthibitisho-wa-hisa. + +Visasisho vya maneno haya ni kwa ajili ya majina peke yake; hii haibadili malengo ya Ethereum au njia yake. + +[Jifunze zaidi kuhusu kubadilishwa jina la 'Eth2'](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Uhusiano kati ya masasisho {#relationship-between-upgrades} Visasisho vyote vya Eth2 vinahusiana kwa kiasi fulani. Kwahio tukumbushie jinsi muungano huu unavyohusiana na visasisho vingine. -### Muungano na Mnyororo Kioleza {#docking-and-beacon-chain} +### Muungano na Mnyororo Kioleza {#merge-and-beacon-chain} + +Muungano unawakilisha ukubali rasmi wa Mnyororo Kioleza kama safu mpya ya makubaliano kwa safu ya awali ya utekelezaji ya Mtandao Mkuu. Tangu Muungano, wathibitishaji wamepewa jukumu la kulinda Mtandao Mkuu wa Ethereum, na uchimbaji kwenye [uthibitishaji-wa-kazi](/developers/docs/consensus-mechanisms/pow/) siyo tena njia halali ya uzalishaji wa bloku. -Pale tu muungano utakapotokea, wamililiki wa hisa watapewa mamlaka ya kuthibitisha Mtandao Mkuu wa Ethereum. [Uchimbaji](/developers/docs/consensus-mechanisms/pow/mining/)hautahitajika tena kwa hivyo wachimbaji watawekeza mapato yao kwa kusimama katika mfumo mpya wa uthibitisho-wa-hisa. +Badala yake, bloku zinapendekezwa na nodi za kuthibitisha ambazo zimeshikiza ETH kwa kubadilishana na haki ya kushiriki katika makubaliano. Masasisho haya yanaweka msingi kwa masasisho yajayo ya uongezaji, ikiwa ni pamoja na ugawanyaji. - Beacon chain + Mnyororo Kioleza -### Muungano na usafi wa baada ya kuungana {#merge-and-post-merge-cleanup} +### Muungano na sasisho la Shanghai {#merge-and-shanghai} -Mara tu baada ya muungano, baadhi ya huduma kama vile kutoa ETH iliyodumu, hazitakua zinafanya kazi. Hizi zimepangwa kwa sasisho tofauti kufuata muda mfupi baada ya kuungana. +Ili kurahisisha na kuongeza umakini katika mpito wenye mafanikio kwenda kwenye uthibitishaji-wa-hisa, sasisho la Muungano halikujumuisha baadhi ya vipengele vilivyotarajiwa kama vile uwezo wa kuondoa ETH iliyoshikizwa. Utendaji huu uliwezeshwa kando na sasisho la Shanghai/Capella. -Pata habari mpya katika [Kurasa za Utafiti na Maendeleo EF](https://blog.ethereum.org/category/research-and-development/). Kwa wale wanaotamani kujua, jifunze zaidi kuhusu [Nini Kitatokea Baada Ya Muungano](https://youtu.be/7ggwLccuN5s?t=101), iliyowasilishwa na Vitalik katika hafla ya Aprili 2021 ETH-Ulimwenguni. +Kwa wale wanaotaka kujua, jifunze zaidi kuhusu [Nini Hutokea Baada ya Muungano](https://youtu.be/7ggwLccuN5s?t=101), iliyowasilishwa na Vitalik katika tukio la ETHGlobal la Aprili 2021. -### Muungano na minyororo ya vigae {#docking-and-shard-chains} +### Muungano na ugawanyaji {#merge-and-data-sharding} -Hapo awali, mpango huo ulikuwa ukifanya kazi kwenye minyororo iliyokatwa kabla ya kuungana - kushughulikia hali ya ubadilikaji. Walakini, na kuongezeka kwa [suluhisho la kuongeza safu ya 2](/developers/docs/scaling/#layer-2-scaling), kipaumbele kimehamia kwenye kubadilisha uthibitisho-wa-kazi kuwa uthibitisho-wa-hisa kupitia muungano. +Hapo awali, mpango ulikuwa kufanyia kazi ugawanyaji kabla ya Muungano ili kushughulikia uongezaji. Hata hivyo, kutokana na kuongezeka kwa [suluhisho za uongezaji za safu ya 2](/layer-2/), kipaumbele kilihamia kwenye kubadilisha uthibitishaji-wa-kazi kwenda uthibitishaji-wa-hisa kwanza. -Hii itakuwa tathmini inayoendelea kutoka kwa jamii juu ya hitaji la raundi nyingi za vipande vya minyororo ili kuruhusu uendelevu usio na mwisho. +Mipango ya ugawanyaji inabadilika haraka, lakini kutokana na kuongezeka na kufanikiwa kwa teknolojia za safu ya 2 ili kuongeza utekelezaji wa miamala, mipango ya ugawanyaji imehamia kwenye kutafuta njia bora zaidi ya kusambaza mzigo wa kuhifadhi calldata iliyobanwa kutoka kwa mikataba ya unda-mpya, ikiruhusu ukuaji wa kielelezo katika uwezo wa mtandao. Hili lisingewezekana bila kwanza kubadilika kwenda kwenye uthibitishaji-wa-hisa. - Vipande vya minyororo + Ugawanyaji -## Soma zaidi {#read-more} +## Masomo zaidi {#further-reading} + + diff --git a/public/content/translations/sw/roadmap/merge/issuance/index.md b/public/content/translations/sw/roadmap/merge/issuance/index.md new file mode 100644 index 00000000000..088fa9ae0f2 --- /dev/null +++ b/public/content/translations/sw/roadmap/merge/issuance/index.md @@ -0,0 +1,157 @@ +--- +title: |- + ''Jinsi mchanganyiko ulivyobadilisha ugavi + wa ETH.'' +description: "''Ufafanuzi juu ya jinsi mchanganyiko ulivyoathiri usambazaji wa ETH.''" +lang: sw +--- + +# Jinsi Muungano ulivyoathiri usambazaji wa ETH {#how-the-merge-impacts-ETH-supply} + +''Mchanganyiko uliwakilisha mabadiliko ya wavu wa Ethereum kutoka proof-of-work hadi proof-of-stake, yaliyotokea mwezi septemba 2022.''. ''Njia ambayo ETH ilitolewa ilipitia mabadiliko wakati wa mabadiliko huo.''. Hapo awali, ETH mpya ilitolewa kutoka vyanzo viwili: safu ya utekelezaji (yaani, Mtandao Mkuu) na safu ya makubaliano (yaani, Mnyororo Kioleza). ''Tangu muungano, utoaji kwenye safu ya utekelezaji sasa umefika sifuri.''. 'Tufanye ufafanuzi kwa sehemu kwa urahisi.''. + +## Vipengele vya utoaji wa ETH {#components-of-eth-issuance} + +''Tunaweza kugawanya ugavi wa ETH katika nguvu kuu mbili: utoaji na kufutwa.''. + +**Utoaji** wa ETH ni mchakato wa kuunda ETH ambayo haikuwepo hapo awali. **Uchomaji** wa ETH ni wakati ETH iliyopo inaharibiwa, na kuiondoa kwenye mzunguko. ''Kiwango cha kutoa na kufuta uhesabiwa kwa vigezo kadhaa, na uwiano kati yake unaamua kiwango cha mfumuko/ufungaji wa bei ya Ether.''. + + + +- Kabla ya kubadilisha hadi uthibitisho-wa-hisa, wachimbaji walikuwa wakitolewa takriban ETH 13,000 kwa siku +- Waweka hisa wanatolewa takriban ETH 1,700 kwa siku, kulingana na jumla ya takriban milioni 14 za ETH zilizowekwa hisa +- Utoaji kamili kutokana na kuweka hisa hubadilika-badilika kulingana na jumla ya kiasi cha ETH kilichowekwa hisa +- **Tangu Muungano, ni ~ETH 1,700 kwa siku pekee ndizo zimesalia, na kupunguza jumla ya utoaji mpya wa ETH kwa ~88%** +- Uchomaji: Hii hubadilika-badilika kulingana na mahitaji ya mtandao. ''-Ikiwa-bei ya wastani ya gesi ya angalau gwei kumi na sita inatambulika kwa siku fulani, hii inalinganisha kabisa ~1,700 ETHzinazotolewa kwa wakaguzi na kufanya mfumuko halisi wa ETH kwa sifuri au chini ya sifuri kwa siku hiyo.''. + + +## Kabla ya Muungano (kihistoria) {#pre-merge} + +### Utoaji wa safu ya utekelezaji {#el-issuance-pre-merge} + +''Chini ya uthibitisho wa kazi, wachimbaji walishirikiana tu na safu ya utekelezaji na walipokea tuzo za vizuizi ikiwa walikuwa wachimbaji wa kwanza kutatua kizuizi inayofuata.''. Tangu uboreshaji wa [Constantinople](/ethereum-forks/#constantinople) mnamo 2019 zawadi hii ilikuwa ETH 2 kwa kila kizuizi. Wachimbaji pia walituzwa kwa kuchapisha vizuizi vya [ommer](/glossary/#ommer), ambavyo vilikuwa vizuizi halali ambavyo havikuingia kwenye mnyororo mrefu/halisi. Zawadi hizi zilifikia kiwango cha juu cha ETH 1.75 kwa kila ommer, na zilikuwa _zaidi ya_ zawadi iliyotolewa kutoka kwa kizuizi halisi. ''Mchakato wa uchimbaji ulikuwa shughuli inayohitaji rasilimali nyingi kiuchumi, ambayo kihistoria ilihitaji viwango vya juu vya utoaji wa ETH ili kudumisha mfumo.''. + +### Utoaji wa safu ya makubaliano {#cl-issuance-pre-merge} + +[Mnyororo Kioleza](/ethereum-forks/#beacon-chain-genesis) ulianza kufanya kazi mnamo 2020. ''Badala ya wachimbaji, mtandao inalindwa na wakaguzi kwa kutumia uthibitisho.''. ''Mnyororo ulianzishwa na wtumiaji wa Ethereum kwa kuweka ETH moja kwa moja kwenye maktaba mahiri (smart contract) kwenye mainnet (safu ya utekelezaji), ambao beacon chain unausikiliza, na kumpa mtumiaji kiasi sawa cha ETH kwenye mnyororo mpya.''. ''Hadi muungano haujatokea, wakaguzi wa Beacon chain hawakuwa wakishughulikia miamala, bali kwa kimsingi walikua wanakubaliana juu ya hali ya kikundi cha wakaguzi wenyewe.''. + +''Wakaguzi kwenye Beacon chain wanapokea tuzo za ETH kwa kuthibitisha hali ya mnyororo na kupendekeza kizuizi.''. ''Tuzo (au adhabu) huhesabiwa na kugawanywa kila kipindi epoch (cha dakika 6.4) kulingana na utendaji wa wakaguzi.''. Zawadi za wathibitishaji ni ndogo **kwa kiasi kikubwa** kuliko zawadi za uchimbaji zilizokuwa zikitolewa hapo awali chini ya uthibitisho-wa-kazi (ETH 2 kila sekunde ~13.5), kwa kuwa kuendesha nodi ya kuthibitisha hakuna gharama kubwa kiuchumi na hivyo hakuhitaji au kuhalalisha zawadi ya juu kiasi hicho. + +### Mchanganuo wa utoaji kabla ya Muungano {#pre-merge-issuance-breakdown} + +Jumla ya usambazaji wa ETH: **\~ETH 120,520,000** (wakati wa Muungano mnamo Septemba 2022) + +**Utoaji wa safu ya utekelezaji:** + +- Ilikadiriwa kuwa ETH 2.08 kwa kila sekunde 13.3\*: **\~4,930,000** za ETH zilizotolewa kwa mwaka +- Ilisababisha kiwango cha mfumuko wa bei cha **takriban 4.09%** (milioni 4.93 kwa mwaka / jumla ya milioni 120.5) +- ''\*Hii inajumuisha 2 ETH kwa kila kizuizi ya kawaida pamoja na wastani wa 0.08ETH kwa muda kutoka kizuizi halali zisizo kwenye mnyororo mkuu.''. Pia hutumia sekunde 13.3, lengo la msingi la muda wa kizuizi bila ushawishi wowote kutoka kwa [bomu la ugumu](/glossary/#difficulty-bomb). ([Angalia chanzo](https://bitinfocharts.com/ethereum/)) + +**Utoaji wa safu ya makubaliano:** + +- Kwa kutumia jumla ya ETH 14,000,000 zilizowekwa hisa, kiwango cha utoaji wa ETH ni takriban ETH 1700 kwa siku ([Angalia chanzo](https://ultrasound.money/)) +- Husababisha **\~620,500** za ETH kutolewa kwa mwaka +- Ilisababisha kiwango cha mfumuko wa bei cha **takriban 0.52%** (elfu 620.5 kwa mwaka / jumla ya milioni 119.3) + + + + +**Jumla ya kiwango cha utoaji cha mwaka (kabla ya Muungano): ~4.61%** (4.09% + 0.52%) + +**\~88.7%** ya utoaji ilikuwa ikienda kwa wachimbaji kwenye safu ya utekelezaji (4.09 / 4.61 \* 100) + +**\~11.3%** ilikuwa inatolewa kwa waweka hisa kwenye safu ya makubaliano (0.52 / 4.61 \* 100) + + + + + + +## Baada ya Muungano (siku ya sasa) {#post-merge} + +### Utoaji wa safu ya utekelezaji {#el-issuance-post-merge} + +Utoaji wa safu ya utekelezaji tangu Muungano ni sifuri. Uthibitisho-wa-kazi si njia halali tena ya uzalishaji wa vizuizi chini ya sheria zilizoboreshwa za makubaliano. Shughuli zote za safu ya utekelezaji hupakiwa kwenye "vizuizi vya kioleza", ambavyo huchapishwa na kuthibitishwa na wathibitishaji wa uthibitisho-wa-hisa. Zawadi za kuthibitisha na kuchapisha vizuizi vya kioleza huhesabiwa kando kwenye safu ya makubaliano. + +### Utoaji wa safu ya makubaliano {#cl-issuance-post-merge} + +Utoaji wa safu ya makubaliano unaendelea leo kama kabla ya Muungano, kukiwa na zawadi ndogo kwa wathibitishaji wanaothibitisha na kupendekeza vizuizi. Zawadi za wathibitishaji zinaendelea kukusanywa kwenye _salio za wathibitishaji_ zinazosimamiwa ndani ya safu ya makubaliano. Tofauti na akaunti za sasa (akaunti za "utekelezaji"), zinazoweza kufanya miamala kwenye Mtandao Mkuu, hizi ni akaunti tofauti za Ethereum ambazo haziwezi kufanya miamala kwa uhuru na akaunti zingine za Ethereum. Pesa katika akaunti hizi zinaweza tu kutolewa kwenda anwani moja maalum ya utekelezaji. + +Tangu uboreshaji wa Shanghai/Capella uliofanyika Aprili 2023, uondoaji huu umewezeshwa kwa waweka hisa. Waweka hisa wanahamasishwa kuondoa _mapato/zawadi zao (salio zaidi ya ETH 32)_ kwa kuwa pesa hizi vinginevyo hazichangii kwenye uzito wa hisa zao (ambao unafikia kiwango cha juu cha 32). + +Waweka hisa wanaweza pia kuchagua kutoka na kutoa salio lao lote la mthibitishaji. Ili kuhakikisha Ethereum iko thabiti, idadi ya wathibitishaji wanaoondoka kwa wakati mmoja imezuiliwa. + +Takriban 0.33% ya jumla ya idadi ya wathibitishaji wanaweza kutoka kwa siku. Kwa chaguo-msingi, wathibitishaji wanne (4) wanaweza kutoka kwa kila epoch (kila dakika 6.4, au 900 kwa siku). Mthibitishaji mmoja (1) wa ziada anaruhusiwa kutoka kwa kila wathibitishaji wa ziada 65,536 (216) zaidi ya 262,144 (218). Kwa mfano, kukiwa na wathibitishaji zaidi ya 327,680, watano (5) wanaweza kuondoka kwa kila epoch (1,125 kwa siku). Sita (6) wataruhusiwa kukiwa na jumla ya idadi ya wathibitishaji hai zaidi ya 393,216, na kadhalika. + +Wathibitishaji wengi zaidi wanapotoa hisa, idadi ya juu ya wathibitishaji wanaoondoka itapunguzwa polepole hadi kiwango cha chini cha wanne ili kuzuia kimakusudi kiasi kikubwa cha kudhoofisha cha ETH iliyowekwa hisa kisitolewe kwa wakati mmoja. + +### Mchanganuo wa mfumuko wa bei baada ya Muungano {#post-merge-inflation-breakdown} + +- Jumla ya usambazaji wa ETH: **\~ETH 120,520,000** (wakati wa Muungano mnamo Septemba 2022) +- Utoaji wa safu ya utekelezaji: **0** +- Utoaji wa safu ya makubaliano: Sawa na hapo juu, kiwango cha utoaji cha mwaka cha **\~0.52%** (kukiwa na jumla ya ETH milioni 14 zilizowekwa hisa) + + + + +Jumla ya kiwango cha utoaji cha mwaka: **\~0.52%** + +Upungufu halisi katika utoaji wa ETH wa mwaka: **\~88.7%** ((4.61% - 0.52%) / 4.61% \* 100) + + + + + + +## Uchomaji {#the-burn} + +Nguvu kinyume na utoaji wa ETH ni kiwango ambacho ETH inachomwa. Ili muamala ufanyike kwenye Ethereum, ada ya chini (inayojulikana kama "ada ya msingi") lazima ilipwe, ambayo hubadilika-badilika kila mara (kutoka kizuizi hadi kizuizi) kulingana na shughuli za mtandao. Ada hulipwa kwa ETH na _inahitajika_ ili muamala uonekane kuwa halali. Ada hii _huchomwa_ wakati wa mchakato wa muamala, na kuiondoa kwenye mzunguko. + + + + + +Uchomaji wa ada ulianza kutumika na [uboreshaji wa London](/ethereum-forks/#london) mnamo Agosti 2021, na haujabadilika tangu Muungano. + + + + + + +Zaidi ya uchomaji wa ada uliotekelezwa na uboreshaji wa London, wathibitishaji wanaweza pia kupata adhabu kwa kutokuwa mtandaoni, au mbaya zaidi, wanaweza kupunguzwa hisa zao kwa kukiuka sheria maalum zinazotishia usalama wa mtandao. Adhabu hizi husababisha kupungua kwa ETH kutoka kwa salio la mthibitishaji huyo, ambayo haituzwi moja kwa moja kwa akaunti nyingine yoyote, na kwa ufanisi kuichoma/kuiondoa kwenye mzunguko. + +### Kukokotoa wastani wa bei ya gesi kwa ajili ya upungufu wa bei {#calculating-average-gas-price-for-deflation} + +Kama ilivyojadiliwa hapo juu, kiasi cha ETH kinachotolewa kwa siku kinategemea jumla ya ETH iliyowekwa hisa. Wakati wa kuandika, hii ni takriban ETH 1700 kwa siku. + +Ili kubaini wastani wa bei ya gesi inayohitajika ili kufidia kabisa utoaji huu katika kipindi cha saa 24, tutaanza kwa kukokotoa jumla ya idadi ya vizuizi kwa siku, kwa kuzingatia muda wa kizuizi wa sekunde 12: + +- `(kizuizi 1 / sekunde 12) * (sekunde 60/dakika) = vizuizi 5/dakika` +- `(vizuizi 5/dakika) * (dakika 60/saa) = vizuizi 300/saa` +- `(vizuizi 300/saa) * (saa 24/siku) = vizuizi 7200/siku` + +Kila kizuizi kinalenga `gesi 15x10^6/kizuizi` ([zaidi kuhusu gesi](/developers/docs/gas/)). Kwa kutumia hii, tunaweza kutatua kwa ajili ya wastani wa bei ya gesi (katika vitengo vya gwei/gesi) inayohitajika kufidia utoaji, kwa kuzingatia jumla ya utoaji wa ETH wa kila siku wa ETH 1700: + +- `vizuizi 7200/siku * gesi 15x10^6/kizuizi * `**`Y gwei/gesi`**` * ETH 1/ gwei 10^9 = ETH 1700/siku` + +Kutatua kwa `Y`: + +- `Y = (1700(10^9))/(7200 * 15(10^6)) = (17x10^3)/(72 * 15) = 16 gwei` (kuzungusha hadi tarakimu mbili muhimu) + +Njia nyingine ya kupanga upya hatua hii ya mwisho itakuwa ni kubadilisha `1700` na kigezo `X` kinachowakilisha utoaji wa ETH wa kila siku, na kurahisisha iliyobaki hadi: + +- `Y = (X(10^3)/(7200 * 15)) = X/108` + +Tunaweza kurahisisha na kuandika hii kama chaguo la kukokotoa la `X`: + +- `f(X) = X/108` ambapo `X` ni utoaji wa ETH wa kila siku, na `f(X)` inawakilisha bei ya gwei/gesi inayohitajika kufidia ETH zote mpya zilizotolewa. + +Kwa hivyo, kwa mfano, ikiwa `X` (utoaji wa ETH wa kila siku) itapanda hadi 1800 kulingana na jumla ya ETH iliyowekwa hisa, `f(X)` (gwei inayohitajika kufidia utoaji wote) basi itakuwa `gwei 17` (kwa kutumia tarakimu 2 muhimu) + +## Masomo zaidi {#further-reading} + +- [Muungano](/roadmap/merge/) +- [Ultrasound.money](https://ultrasound.money/) - _Dashibodi zinazopatikana ili kuonyesha utoaji na uchomaji wa ETH kwa wakati halisi_ +- [Uchoraji Chati ya Utoaji wa Ethereum](https://www.attestant.io/posts/charting-ethereum-issuance/) - _Jim McDonald 2020_ diff --git a/public/content/translations/sw/roadmap/pbs/index.md b/public/content/translations/sw/roadmap/pbs/index.md new file mode 100644 index 00000000000..03a2986703f --- /dev/null +++ b/public/content/translations/sw/roadmap/pbs/index.md @@ -0,0 +1,50 @@ +--- +title: Utengano wa mpendekezaji-mjenzi +description: Jifunze jinsi na kwa nini wathibitishaji wa Ethereum watagawanya majukumu yao ya ujenzi wa bloku na utangazaji wa bloku. +lang: sw +--- + +# Mgawanyo wa mpendekezaji-mjengaji {#proposer-builder-separation} + +Wathibitishaji wa Ethereum wa sasa huunda _na_ kutangaza bloku. Wanakusanya miamala pamoja ambayo wameisikia kupitia mtandao wa gossip na kuifunga kwenye bloku ambayo inatumwa kwa wenzao kwenye mtandao wa Ethereum. **Mgawanyo wa mpendekezaji-mjengaji (PBS)** hugawanya kazi hizi kwa wathibitishaji wengi. Wajengaji wa bloku wanawajibika kwa kuunda bloku na kuzitoa kwa mpendekezaji wa bloku katika kila nafasi. Mpendekezaji wa bloku hawezi kuona yaliyomo kwenye bloku, anachagua tu ile yenye faida zaidi, akilipa ada kwa mjengaji wa bloku kabla ya kutuma bloku kwa wenzake. + +Huu ni uboreshaji muhimu kwa sababu kadhaa. Kwanza, inaunda fursa za kuzuia udhibiti wa miamala katika kiwango cha itifaki. Pili, inawazuia wathibitishaji wa hiari kushindwa na wachezaji wa kitaasisi ambao wanaweza kuboresha zaidi faida ya ujenzi wao wa bloku. Tatu, inasaidia katika upanuzi wa Ethereum kwa kuwezesha maboresho ya Danksharding. + +## PBS na ukinzani dhidi ya udhibiti {#pbs-and-censorship-resistance} + +Kuwatenganisha wajengaji wa bloku na wapendekezaji wa bloku hufanya iwe ngumu zaidi kwa wajengaji wa bloku kudhibiti miamala. Hii ni kwa sababu vigezo vya ujumuishaji vilivyo changamani kiasi vinaweza kuongezwa ambavyo vinahakikisha hakuna udhibiti umefanyika kabla ya bloku kupendekezwa. Kwa kuwa mpendekezaji wa bloku ni chombo tofauti na mjengaji wa bloku, anaweza kuchukua jukumu la mlinzi dhidi ya wajengaji wa bloku wanaodhibiti. + +Kwa mfano, orodha za ujumuishaji zinaweza kuanzishwa ili wathibitishaji wanapojua kuhusu miamala lakini hawaioni ikiwa imejumuishwa kwenye bloku, wanaweza kuzilazimisha kama lazima zijumuishwe katika bloku inayofuata. Orodha ya ujumuishaji inatengenezwa kutoka kwa mempool ya ndani ya mpendekezaji wa bloku (orodha ya miamala anayoifahamu) na kutumwa kwa wenzao muda mfupi kabla ya bloku kupendekezwa. Ikiwa miamala yoyote kutoka kwa orodha ya ujumuishaji inakosekana, mpendekezaji anaweza aidha kukataa bloku, kuongeza miamala inayokosekana kabla ya kuipendekeza, au kuipendekeza na kuiacha ikataliwe na wathibitishaji wengine wanapoipokea. Pia kuna toleo lenye ufanisi zaidi la wazo hili ambalo linadai kuwa wajengaji lazima watumie kikamilifu nafasi ya bloku inayopatikana na ikiwa hawafanyi hivyo, miamala huongezwa kutoka kwa orodha ya ujumuishaji ya mpendekezaji. Hili bado ni eneo la utafiti unaoendelea na usanidi bora zaidi kwa orodha za ujumuishaji bado haujaamuliwa. + +[Mempool zilizosimbwa kwa njia fiche](https://www.youtube.com/watch?v=fHDjgFcha0M&list=PLpktWkixc1gUqkyc1-iE6TT0RWQTBJELe&index=3) zinaweza pia kufanya isiwezekane kwa wajengaji na wapendekezaji kujua ni miamala ipi wanayojumuisha kwenye bloku hadi baada ya bloku kutangazwa. + + + +Mashirika yenye nguvu yanaweza kuwashinikiza wathibitishaji kudhibiti miamala inayoenda au kutoka kwa anwani fulani. Wathibitishaji hutii shinikizo hili kwa kugundua anwani zilizopigwa marufuku katika pool yao ya miamala na kuziondoa kwenye bloku wanazopendekeza. Baada ya PBS hili halitawezekana tena kwa sababu wapendekezaji wa bloku hawatajua ni miamala gani wanayotangaza katika bloku zao. Inaweza kuwa muhimu kwa watu binafsi au programu fulani kutii sheria za udhibiti, kwa mfano inapotungwa kuwa sheria katika eneo lao. Katika hali hizi, utiifu hufanyika katika kiwango cha programu, huku itifaki ikibaki bila ruhusa na bila udhibiti. + + +## PBS na MEV {#pbs-and-mev} + +**Thamani ya juu ambayo inaweza kutolewa (MEV)** inarejelea wathibitishaji kuongeza faida yao kwa kupanga miamala kwa njia ya upendeleo. Mifano ya kawaida ni pamoja na usuluhishi wa ubadilishanaji (swaps) kwenye masoko ya kubadilishana yaliyogatuliwa (k.m., kutangulia mauzo au ununuzi mkubwa) au kutambua fursa za kufilisi nafasi za DeFi. Kuongeza MEV kunahitaji ujuzi wa hali ya juu wa kiufundi na programu maalum iliyoongezwa kwa wathibitishaji wa kawaida, na kufanya iwezekane zaidi kwamba waendeshaji wa kitaasisi wawashinde watu binafsi na wathibitishaji wa hiari katika utoaji wa MEV. Hii inamaanisha mapato ya kuweka dau yana uwezekano wa kuwa ya juu zaidi na waendeshaji wa kati, na kuunda nguvu ya uwekaji kati ambayo inakatisha tamaa uwekaji dau wa nyumbani. + +PBS inatatua tatizo hili kwa kusanidi upya uchumi wa MEV. Badala ya mpendekezaji wa bloku kufanya utafutaji wake mwenyewe wa MEV, anachagua tu bloku kutoka kwa nyingi anazopewa na wajengaji wa bloku. Wajengaji wa bloku wanaweza kuwa wamefanya utoaji wa MEV wa hali ya juu, lakini zawadi yake inakwenda kwa mpendekezaji wa bloku. Hii inamaanisha kwamba hata kama pool ndogo ya wajengaji wa bloku waliobobea itatawala utoaji wa MEV, zawadi yake inaweza kwenda kwa mthibitishaji yeyote kwenye mtandao, ikiwa ni pamoja na waweka dau binafsi wa nyumbani. + + + +Watu binafsi wanaweza kuhamasishwa kuweka dau na pool badala ya wao wenyewe kutokana na zawadi zilizoimarishwa zinazotolewa na mikakati ya hali ya juu ya MEV. Kutenganisha ujenzi wa bloku na upendekezaji wa bloku kunamaanisha kuwa MEV itakayotolewa itasambazwa kwa wathibitishaji wengi zaidi badala ya kuwekwa kati na mtafutaji wa MEV mwenye ufanisi zaidi. Wakati huo huo, kuruhusu kuwepo kwa wajengaji wa bloku waliobobea kunaondoa mzigo wa ujenzi wa bloku kutoka kwa watu binafsi, na pia kunawazuia watu binafsi kujiibia MEV, huku ikiongeza idadi ya wathibitishaji binafsi, wanaojitegemea ambao wanaweza kuangalia kama bloku ni za kweli. Dhana muhimu ni "kutolingana kwa mthibitishaji-mhakiki" ambayo inarejelea wazo kwamba uzalishaji wa bloku wa kati ni sawa mradi tu kuna mtandao imara na uliogatuliwa kwa kiwango cha juu cha wathibitishaji wenye uwezo wa kuthibitisha kuwa bloku ni za kweli. Ugatuaji ni njia, si lengo la mwisho - tunachotaka ni bloku za kweli. + + +## PBS na Danksharding {#pbs-and-danksharding} + +Danksharding ndiyo njia ambayo Ethereum itapanuka hadi miamala >100,000 kwa sekunde na kupunguza ada kwa watumiaji wa rollup. Inategemea PBS kwa sababu inaongeza mzigo wa kazi kwa wajengaji wa bloku, ambao watalazimika kukokotoa uthibitisho kwa hadi MB 64 za data ya rollup katika chini ya sekunde 1. Hii labda itahitaji wajengaji waliobobea ambao wanaweza kutenga maunzi makubwa kwa ajili ya kazi hiyo. Hata hivyo, katika hali ya sasa ujenzi wa bloku unaweza kuwa wa kati zaidi karibu na waendeshaji wa hali ya juu na wenye nguvu zaidi kwa vyovyote vile kutokana na utoaji wa MEV. Mgawanyo wa mpendekezaji-mjengaji ni njia ya kukubali ukweli huu na kuizuia isiweke nguvu ya uwekaji kati kwenye uthibitishaji wa bloku (sehemu muhimu) au usambazaji wa zawadi za kuweka dau. Faida kubwa ya ziada ni kwamba wajengaji wa bloku waliobobea pia wako tayari na wanaweza kukokotoa uthibitisho muhimu wa data kwa ajili ya Danksharding. + +## Maendeleo ya sasa {#current-progress} + +PBS iko katika hatua ya juu ya utafiti, lakini bado kuna maswali muhimu ya usanifu ambayo yanahitaji kutatuliwa kabla ya kuweza kufanyiwa mfano katika wateja wa Ethereum. Bado hakuna vipimo vya mwisho. Hii inamaanisha PBS inawezekana iko umbali wa mwaka mmoja au zaidi. Angalia [hali ya hivi karibuni ya utafiti](https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance). + +## Masomo zaidi {#further-reading} + +- [Hali ya utafiti: ukinzani dhidi ya udhibiti chini ya PBS](https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance) +- [Miundo ya soko la ada inayofaa PBS](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) +- [PBS na ukinzani dhidi ya udhibiti](https://notes.ethereum.org/@fradamt/H1TsYRfJc#Secondary-auctions) +- [Orodha za ujumuishaji](https://notes.ethereum.org/@fradamt/H1ZqdtrBF) diff --git a/public/content/translations/sw/roadmap/pectra/7702/index.md b/public/content/translations/sw/roadmap/pectra/7702/index.md new file mode 100644 index 00000000000..e5d36c216b1 --- /dev/null +++ b/public/content/translations/sw/roadmap/pectra/7702/index.md @@ -0,0 +1,149 @@ +--- +title: Miongozo ya Pectra 7702 +description: Jifunze zaidi kuhusu 7702 katika toleo la Pectra +lang: sw +--- + +# Pectra 7702 + +## Muhtasari {#abstract} + +EIP 7702 inafafanua utaratibu wa kuongeza msimbo kwenye EOA. Pendekezo hili linaruhusu EOA, akaunti za zamani za Ethereum, kupokea maboresho ya utendaji wa muda mfupi, na kuongeza utumiaji wa programu. Hili linafanywa kwa kuweka kielekezi kwa msimbo ambao tayari umetumwa kwa kutumia aina mpya ya muamala: 4. + +Anwani ya mkataba Kila tuple ya idhini kwenye orodha inafafanuliwa kama + +``` +[ chain_id, address, nonce, y_parity, r, s ] +``` + +**anwani** ni uwakilishi (bytecode iliyotumwa tayari ambayo itatumiwa na EOA) +**chain_id** hufunga idhini kwa chain maalum (au 0 kwa chain zote) +**nonce** hufunga idhini kwa akaunti maalum ya nonce +(**y_parity, r, s**) ni saini ya tuple ya idhini, inayofafanuliwa kama keccak(0x05 || rlp ([chain_id ,address, nonce])) na ufunguo binafsi wa EOA ambayo idhini inatumika (pia huitwa mamlaka) + +Uwakilishi unaweza kuwekwa upya kwa kuwakilisha kwenye anwani batili. + +Ufunguo binafsi wa EOA hubaki na udhibiti kamili juu ya akaunti baada ya uwakilishi. Kwa mfano, kuwakilisha kwa Safe hakufanyi akaunti kuwa multisig kwa sababu bado kuna ufunguo mmoja unaoweza kupita sera yoyote ya kutia saini. Kuanzia sasa, wasanidi programu wanapaswa kubuni kwa dhana kwamba mshiriki yeyote katika mfumo anaweza kuwa mkataba-erevu. Kwa wasanidi programu wa mikataba-erevu, sio salama tena kudhania kwamba `tx.origin` inarejelea EOA. + +## Mbinu bora {#best-practices} + +**Uondoaji wa Akaunti**: Mkataba wa uwakilishi unapaswa kuendana na viwango vipana vya uondoaji wa akaunti (AA) vya Ethereum ili kuongeza upatanifu. Hasa, inapaswa kuwa inayokubaliana na ERC-4337 au inayooana. + +**Muundo Usio na Ruhusa na Unaostahimili Udhibiti**: Ethereum inathamini ushiriki usio na ruhusa. Mkataba wa uwakilishi HAUPASWI kuweka msimbo mgumu au kutegemea relayer au huduma moja “inayoaminika”. Hii ingeharibu akaunti kama relayer akitoka mtandaoni. Vipengele kama vile kuweka kwa makundi (batching) (k.m., approve+transferFrom) vinaweza kutumiwa na EOA yenyewe bila relayer. Kwa wasanidi programu wa programu wanaotaka kutumia vipengele vya hali ya juu vinavyowezeshwa na 7702 (Gas Abstraction, Utoaji unaohifadhi faragha) utahitaji relayer. Ingawa kuna usanifu tofauti wa relayer, pendekezo letu ni kutumia [bundlers 4337](https://www.erc4337.io/bundlers) zinazoelekeza angalau [entry point 0.8](https://github.com/eth-infinitism/account-abstraction/releases/tag/v0.8.0) kwa sababu: + +- Zinatoa violesura sanifu vya kupeleka (relaying) +- Zinajumuisha mifumo ya paymaster iliyojengewa ndani +- Hakikisha upatanifu wa mbele +- Zinaweza kusaidia ustahimilivu wa udhibiti kupitia [mempool ya umma](https://notes.ethereum.org/@yoav/unified-erc-4337-mempool) +- Zinaweza kuhitaji kazi ya init iitwe tu kutoka [EntryPoint](https://github.com/eth-infinitism/account-abstraction/releases/tag/v0.8.0) + +Kwa maneno mengine, mtu yeyote anapaswa kuwa na uwezo wa kufanya kazi kama mdhamini/relayer wa muamala mradi tu wanatoa saini halali inayohitajika au UserOperation kutoka kwa akaunti. Hii inahakikisha ustahimilivu wa udhibiti: kama hakuna miundombinu maalum inayohitajika, miamala ya mtumiaji haiwezi kuzuiwa kiholela na relay ya ulinzi. Kwa mfano, [Delegation Toolkit ya MetaMask](https://github.com/MetaMask/delegation-framework/releases/tag/v1.3.0) inafanya kazi waziwazi na bundler au paymaster yeyote wa ERC-4337 kwenye chain yoyote, badala ya kuhitaji seva maalum ya MetaMask. + +**Ujumuishaji wa Mfumo Mtawanyo wa Kimamlaka kupitia Violela vya Mkoba**: + +Kwa kuwa mikoba itaorodhesha mikataba maalum ya uwakilishi kwa EIP-7702, mifumo mtawanyo ya kimamlaka haipaswi kutarajia kuomba idhini za 7702 moja kwa moja. Badala yake, ujumuishaji unapaswa kufanyika kupitia violesura sanifu vya mkoba: + +- **ERC-5792 (`wallet_sendCalls`)**: Huwezesha mifumo mtawanyo ya kimamlaka kuomba mikoba kutekeleza simu za makundi, kuwezesha utendaji kama vile uwekaji wa miamala kwa makundi na uondoaji wa gesi. + +- **ERC-6900**: Huruhusu mifumo mtawanyo ya kimamlaka kutumia uwezo wa akaunti-erevu za moduli, kama vile funguo za kipindi na urejeshaji wa akaunti, kupitia moduli zinazodhibitiwa na mkoba. + +Kwa kutumia violesura hivi, mifumo mtawanyo ya kimamlaka inaweza kupata utendaji wa akaunti-erevu zinazotolewa na EIP-7702 bila kusimamia uwakilishi moja kwa moja, kuhakikisha upatanifu na usalama katika utekelezaji tofauti wa mikoba. + +> Kumbuka: Hakuna njia sanifu kwa mifumo mtawanyo ya kimamlaka kuomba saini za idhini za 7702 moja kwa moja. Mifumo mtawanyo ya kimamlaka lazima itegemee violesura maalum vya mkoba kama ERC-6900 ili kutumia vipengele vya EIP-7702. + +Kwa taarifa zaidi: + +- [Vipimo vya ERC-5792](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5792.md) +- [Vipimo vya ERC-6900](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6900.md) + +**Kuepuka Kufungiwa na Mchuuzi**: Kwa kuzingatia yaliyo hapo juu, utekelezaji mzuri haufungamani na mchuuzi na unaweza kufanya kazi na mifumo mingine. Hii mara nyingi inamaanisha kuzingatia viwango vinavyoibuka kwa akaunti-erevu. Kwa mfano, [Akaunti ya Moduli ya Alchemy](https://github.com/alchemyplatform/modular-account) inatumia kiwango cha ERC-6900 kwa akaunti-erevu za moduli na imebuniwa kwa kuzingatia “matumizi yasiyo na ruhusa na yanayofanya kazi na mifumo mingine”. + +**Uhifadhi wa Faragha**: Ingawa faragha ya onchain ni ndogo, mkataba wa uwakilishi unapaswa kujitahidi kupunguza ufichuaji wa data na uwezo wa kuunganishwa. Hili linaweza kufikiwa kwa kusaidia vipengele kama malipo ya gesi kwa tokeni za ERC-20 (hivyo watumiaji hawahitaji kudumisha salio la umma la ETH, ambayo inaboresha faragha na UX) na funguo za kipindi cha mara moja (ambazo hupunguza utegemezi kwa ufunguo mmoja wa muda mrefu). Kwa mfano, EIP-7702 inawezesha kulipa gesi kwa tokeni kupitia miamala inayodhaminiwa, na utekelezaji mzuri utafanya iwe rahisi kujumuisha paymaster kama hao bila kuvujisha taarifa zaidi ya inavyohitajika. Zaidi ya hayo, uwakilishi wa off-chain wa idhini fulani (kwa kutumia saini zinazothibitishwa onchain) inamaanisha miamala michache ya onchain na ufunguo mkuu wa mtumiaji, kusaidia faragha. Akaunti zinazohitaji kutumia relayer huwalazimisha watumiaji kufichua anwani zao za IP. PublicMempools inaboresha hili, wakati muamala/UserOp unaposambaa kupitia mempool huwezi kujua kama ilitoka kwenye IP iliyoituma au ilipitishwa tu kupitia itifaki ya p2p. + +**Upanuzi na Usalama wa Moduli**: Utekelezaji wa akaunti unapaswa kuwa na uwezo wa kupanuliwa ili ziweze kubadilika na vipengele vipya na maboresho ya usalama. Uboreshaji unawezekana kiasili na EIP-7702 (kwa kuwa EOA inaweza daima kuwakilisha kwa mkataba mpya siku zijazo ili kuboresha mantiki yake). Zaidi ya uboreshaji, muundo mzuri unaruhusu moduli – k.m., moduli za programu-jalizi za mifumo tofauti ya saini au sera za matumizi – bila kuhitaji kutuma upya kabisa. Account Kit ya Alchemy ni mfano mkuu, inayoruhusu wasanidi programu kusakinisha moduli za uthibitishaji (kwa aina tofauti za saini kama ECDSA, BLS, n.k.) na moduli za utekelezaji kwa mantiki maalum. Ili kufikia unyumbufu na usalama mkubwa zaidi katika akaunti zinazowezeshwa na EIP-7702, wasanidi programu wanahimizwa kuwakilisha kwa mkataba wa proksi badala ya moja kwa moja kwa utekelezaji maalum. Njia hii inaruhusu maboresho yasiyo na mshono na moduli bila kuhitaji idhini za ziada za EIP-7702 kwa kila mabadiliko. + +Faida za Muundo wa Proksi: + +- **Uboreshaji**: Sasisha mantiki ya mkataba kwa kuelekeza proksi kwa mkataba mpya wa utekelezaji. + +- **Mantiki Maalum ya Kuanzisha**: Jumuisha kazi za kuanzisha ndani ya proksi ili kuweka vigezo vya hali muhimu kwa usalama. + +Kwa mfano, [SafeEIP7702Proxy](https://docs.safe.global/advanced/eip-7702/7702-safe) inaonyesha jinsi proksi inavyoweza kutumika kuanzisha na kusimamia uwakilishi kwa usalama katika akaunti zinazooana na EIP-7702. + +Hasara za Muundo wa Proksi: + +- **Utegemezi kwa watendaji wa nje**: Inabidi utegemee timu ya nje isiyoboresha hadi kwenye mkataba usio salama. + +## Mazingatio ya Usalama {#security-considerations} + +**Mlinzi wa kuingia tena**: Kwa kuanzishwa kwa uwakilishi wa EIP-7702, akaunti ya mtumiaji inaweza kubadilika kati ya Akaunti Inayomilikiwa Nje (EOA) na Mkataba-Erevu (SC). Unyumbufu huu huwezesha akaunti kuanzisha miamala na kuwa lengo la simu. Matokeo yake, matukio ambapo akaunti inajiita yenyewe na kupiga simu za nje yatakuwa na `msg.sender` sawa na `tx.origin`, ambayo inadhoofisha dhana fulani za usalama ambazo hapo awali zilitegemea `tx.origin` kuwa EOA kila wakati. + +Kwa wasanidi programu wa mikataba-erevu, sio salama tena kudhania kwamba `tx.origin` inarejelea EOA. Vivyo hivyo, kutumia `msg.sender == tx.origin` kama kinga dhidi ya mashambulizi ya kuingia tena sio mkakati wa kuaminika tena. + +Kuanzia sasa, wasanidi programu wanapaswa kubuni kwa dhana kwamba mshiriki yeyote katika mfumo anaweza kuwa mkataba-erevu. Vinginevyo, wanaweza kutekeleza ulinzi dhahiri wa kuingia tena kwa kutumia walinzi wa kuingia tena na mifumo ya kurekebisha ya `nonReentrant`. Tunapendekeza kufuata kirekebishaji kilichokaguliwa k.m. [Mlinzi wa Kuingia Tena wa Open Zeppelin](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/ReentrancyGuard.sol). Wangeweza pia kutumia [kigezo cha hifadhi ya muda](https://docs.soliditylang.org/en/latest/internals/layout_in_storage.html). + +**Mazingatio ya Usalama wa Kuanzisha** + +Utekelezaji wa mikataba ya uwakilishi ya EIP-7702 huleta changamoto maalum za usalama, hasa kuhusu mchakato wa kuanzisha. Udhaifu mkubwa hutokea wakati kazi ya kuanzisha (`init`) inaunganishwa kiatomiki na mchakato wa uwakilishi. Katika hali kama hizo, mshambuliaji anaweza kukatiza saini ya uwakilishi na kutekeleza kazi ya `init` na vigezo vilivyobadilishwa, na hivyo kuchukua udhibiti wa akaunti. + +Hatari hii ni muhimu hasa wakati wa kujaribu kutumia utekelezaji uliopo wa Akaunti ya Mkataba-Erevu (SCA) na EIP-7702 bila kurekebisha mifumo yao ya kuanzisha. + +**Suluhu za Kupunguza Udhaifu wa Kuanzisha** + +- Tekeleza `initWithSig` + Badilisha kazi ya kawaida ya `init` na kazi ya `initWithSig` ambayo inahitaji mtumiaji kusaini vigezo vya kuanzisha. Njia hii inahakikisha kuwa uanzishaji unaweza kuendelea tu kwa idhini ya wazi ya mtumiaji, na hivyo kupunguza hatari za uanzishaji usioidhinishwa. + +- Tumia EntryPoint ya ERC-4337 + Hitaji kwamba kazi ya uanzishaji iitwe tu kutoka kwa mkataba wa EntryPoint wa ERC-4337. Njia hii hutumia mfumo sanifu wa uthibitishaji na utekelezaji unaotolewa na ERC-4337, na kuongeza safu ya ziada ya usalama kwenye mchakato wa kuanzisha. + _(Angalia: [Hati za Safe](https://docs.safe.global/advanced/eip-7702/7702-safe))_ + +Kwa kutumia suluhu hizi, wasanidi programu wanaweza kuimarisha usalama wa mikataba ya uwakilishi ya EIP-7702, na kujilinda dhidi ya mashambulizi yanayoweza kutokea wakati wa awamu ya kuanzisha. + +**Migongano ya Hifadhi** Msimbo wa kuwakilisha haufuti hifadhi iliyopo. Wakati wa kuhamia kutoka mkataba mmoja wa uwakilishi hadi mwingine, data iliyobaki kutoka kwa mkataba uliopita inabaki. Ikiwa mkataba mpya unatumia nafasi zile zile za hifadhi lakini unazitafsiri tofauti, inaweza kusababisha tabia isiyotarajiwa. Kwa mfano, ikiwa uwakilishi wa awali ulikuwa kwa mkataba ambapo nafasi ya hifadhi inawakilisha `bool`, na uwakilishi unaofuata ni kwa mkataba ambapo nafasi ile ile inawakilisha `uint`, kutofautiana huko kunaweza kusababisha matokeo yasiyotabirika. + +**Hatari za kuhadaa ili kupata taarifa** Pamoja na utekelezaji wa uwakilishi wa EIP-7702, mali katika akaunti ya mtumiaji inaweza kudhibitiwa kabisa na mikataba-erevu. Ikiwa mtumiaji bila kujua anawakilisha akaunti yake kwa mkataba hasidi, mshambuliaji anaweza kupata udhibiti na kuiba fedha kwa urahisi. Wakati wa kutumia `chain_id=0` uwakilishi unatumika kwa vitambulisho vyote vya mnyororo. Wakilisha tu kwa mkataba usioweza kubadilika (usimwakilishe kamwe proksi), na kwa mikataba tu ambayo ilitumwa kwa kutumia CREATE2 (na msimbo wa awali wa kawaida - hakuna mikataba ya metamorphic) ili mtumaji asiweze kutuma kitu tofauti kwenye anwani ile ile mahali pengine. Vinginevyo, uwakilishi wako unaweka akaunti yako katika hatari kwenye chain zingine zote za EVM. + +Wakati watumiaji wanapofanya saini zilizowakilishwa, mkataba lengwa unaopokea uwakilishi unapaswa kuonyeshwa wazi na kwa uwazi ili kusaidia kupunguza hatari za kuhadaa. + +**Eneo Dogo Linaloaminika & Usalama**: Wakati unatoa unyumbufu, mkataba wa uwakilishi unapaswa kuweka mantiki yake ya msingi kuwa ndogo na inayoweza kukaguliwa. Mkataba huo ni kiendelezi cha EOA ya mtumiaji, kwa hivyo kasoro yoyote inaweza kuwa mbaya. Utekelezaji unapaswa kufuata mbinu bora kutoka kwa jamii ya usalama wa mikataba-erevu. Kwa mfano, kazi za ujenzi au za kuanzisha lazima zilindwe kwa uangalifu - kama ilivyoainishwa na Alchemy, ikiwa unatumia muundo wa proksi chini ya 7702, kianzilishi kisicho na ulinzi kinaweza kumruhusu mshambuliaji kuchukua akaunti. Timu zinapaswa kulenga kuweka msimbo wa onchain kuwa rahisi: Mkataba wa 7702 wa Ambire una mistari ~200 tu ya Solidity, ukipunguza kwa makusudi utata ili kupunguza hitilafu. Usawa lazima uwekwe kati ya mantiki yenye vipengele vingi na urahisi unaorahisisha ukaguzi. + +### Utekelezaji unaojulikana {#known-implementations} + +Kwa sababu ya asili ya EIP 7702, inashauriwa mikoba iwe mwangalifu wakati inawasaidia watumiaji kuwakilisha kwa mkataba wa mtu wa tatu. Yaliyoorodheshwa hapa chini ni mkusanyiko wa utekelezaji unaojulikana ambao umekaguliwa: + +| Anwani ya mkataba | Chanzo | Ukaguzi | +| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00 | [Uniswap/calibur](https://github.com/Uniswap/calibur) | [ukaguzi](https://github.com/Uniswap/calibur/tree/main/audits) | +| 0x69007702764179f14F51cdce752f4f775d74E139 | [alchemyplatform/modular-account](https://github.com/alchemyplatform/modular-account) | [ukaguzi](https://github.com/alchemyplatform/modular-account/tree/develop/audits) | +| 0x5A7FC11397E9a8AD41BF10bf13F22B0a63f96f6d | [AmbireTech/ambire-common](https://github.com/AmbireTech/ambire-common/blob/feature/eip-7702/contracts/AmbireAccount7702.sol) | [ukaguzi](https://github.com/AmbireTech/ambire-common/tree/feature/eip-7702/audits) | +| 0x63c0c19a282a1b52b07dd5a65b58948a07dae32b | [MetaMask/delegation-framework](https://github.com/MetaMask/delegation-framework) | [ukaguzi](https://github.com/MetaMask/delegation-framework/tree/main/audits) | +| 0x4Cd241E8d1510e30b2076397afc7508Ae59C66c9 | [Timu ya AA ya Msingi wa Ethereum](https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/accounts/Simple7702Account.sol) | [ukaguzi](https://github.com/eth-infinitism/account-abstraction/blob/develop/audits/SpearBit%20Account%20Abstraction%20Security%20Review%20-%20Mar%202025.pdf) | +| 0x17c11FDdADac2b341F2455aFe988fec4c3ba26e3 | [Luganodes/Pectra-Batch-Contract](https://github.com/Luganodes/Pectra-Batch-Contract) | [ukaguzi](https://certificate.quantstamp.com/full/luganodes-pectra-batch-contract/23f0765f-969a-4798-9edd-188d276c4a2b/index.html) | + +## Miongozo ya mkoba wa maunzi {#hardware-wallet-guidelines} + +Mikoba ya maunzi haipaswi kufichua uwakilishi wa kiholela. Makubaliano katika eneo la mikoba ya maunzi ni kutumia orodha ya mikataba ya kuwakilisha inayoaminika. Tunashauri kuruhusu utekelezaji unaojulikana ulioorodheshwa hapo juu na kuzingatia mingine kwa msingi wa kesi kwa kesi. Kwa kuwa kuwakilisha EOA yako kwa mkataba kunatoa udhibiti juu ya mali zote, mikoba ya maunzi inapaswa kuwa makini na jinsi wanavyotekeleza 7702. + +### Matukio ya ujumuishaji kwa programu saidizi {#integration-scenarios-for-companion-apps} + +#### Uvivu {#lazy} + +Kwa kuwa EOA bado inafanya kazi kama kawaida, hakuna la kufanya. + +Kumbuka : baadhi ya mali zinaweza kukataliwa kiotomatiki na msimbo wa uwakilishi, kama vile NFT za ERC 1155, na usaidizi unapaswa kufahamu hilo. + +#### Ufahamu {#aware} + +Mjulishe mtumiaji kwamba uwakilishi upo kwa EOA kwa kuangalia msimbo wake, na kwa hiari toa kuondoa uwakilishi. + +#### Uwakilishi wa kawaida {#common-delegation} + +Mtoa huduma wa maunzi huorodhesha mikataba inayojulikana ya uwakilishi na kutekeleza usaidizi wao katika programu saidizi. Inapendekezwa kuchagua mkataba wenye usaidizi kamili wa ERC 4337. + +EOA zilizowakilishwa kwa tofauti zitashughulikiwa kama EOA za kawaida. + +#### Uwakilishi maalum {#custom-delegation} + +Mtoa huduma wa maunzi hutekeleza mkataba wake wa uwakilishi na kuuongeza kwenye orodha hutekeleza usaidizi wake katika programu saidizi. Inapendekezwa kujenga mkataba wenye usaidizi kamili wa ERC 4337. + +EOA zilizowakilishwa kwa tofauti zitashughulikiwa kama EOA za kawaida. diff --git a/public/content/translations/sw/roadmap/pectra/index.md b/public/content/translations/sw/roadmap/pectra/index.md new file mode 100644 index 00000000000..0d107cd6715 --- /dev/null +++ b/public/content/translations/sw/roadmap/pectra/index.md @@ -0,0 +1,128 @@ +--- +title: Prague-Electra (Pectra) +description: Jifunze kuhusu uboreshaji wa itifaki ya Pectra +lang: sw +--- + +# Pectra {#pectra} + +Uboreshaji wa mtandao wa Pectra ulifuata [Dencun](/roadmap/dencun/) na kuleta mabadiliko kwenye safu ya utekelezaji na safu ya makubaliano ya Ethereum. Jina lililofupishwa la Pectra ni mchanganyiko wa Prague na Electra, ambayo ni majina husika ya mabadiliko ya vipimo vya safu ya utekelezaji na safu ya makubaliano. Kwa pamoja, mabadiliko haya yanaleta maboresho kadhaa kwa watumiaji, wasanidi programu na wathibitishaji wa Ethereum. + +Uboreshaji huu uliwashwa kwa mafanikio kwenye Mtandao Mkuu wa Ethereum katika epoch `364032`, mnamo **07-Mei-2025 saa 10:05 (UTC)**. + + + + +Uboreshaji wa Pectra ni hatua moja tu katika malengo ya maendeleo ya muda mrefu ya Ethereum. Jifunze zaidi kuhusu [ramani ya barabara ya itifaki](/roadmap/) na [maboresho ya awali](/ethereum-forks/). + + + + +## Maboresho katika Pectra {#new-improvements} + +Pectra inaleta idadi kubwa zaidi ya [EIPs](https://eips.ethereum.org/) kuliko maboresho yoyote ya awali! Kuna mabadiliko mengi madogo lakini pia baadhi ya vipengele vipya muhimu. Orodha kamili ya mabadiliko na maelezo ya kiufundi yanaweza kupatikana katika EIPs binafsi zilizojumuishwa. + +### Msimbo wa akaunti ya EOA {#7702} + +[EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) inawakilisha hatua kubwa kuelekea [uondoaji wa akaunti](/roadmap/account-abstraction/) ulioenea. Kwa kipengele hiki, watumiaji wanaweza kuweka anwani zao ([EOA](/glossary/#eoa)) ili kupanuliwa na mkataba-erevu. EIP inatambulisha aina mpya ya muamala wenye kazi maalum - kuruhusu wamiliki wa anwani kusaini idhini ambayo inaweka anwani zao kuiga mkataba-erevu uliochaguliwa. + +Kwa EIP hii, watumiaji wanaweza kuchagua pochi zinazoweza kupangwa ambazo huruhusu vipengele vipya kama vile kuunganisha miamala, kufanya miamala bila gesi na ufikiaji maalum wa mali kwa mipango mbadala ya urejeshaji. Mfumo huu mseto unachanganya wepesi wa EOA na uwezo wa kupangwa wa akaunti zinazotegemea mikataba. + +Soma uchambuzi wa kina kuhusu 7702 [hapa](/roadmap/pectra/7702/) + +### Ongeza salio la juu la ufanisi {#7251} + +Salio la sasa la ufanisi la mthibitishaji ni ETH 32 haswa. Ni kiasi cha chini kinachohitajika kushiriki katika makubaliano lakini wakati huo huo ni kiwango cha juu ambacho mthibitishaji mmoja anaweza kuweka. + +[EIP-7251](https://eips.ethereum.org/EIPS/eip-7251) huongeza salio la juu la ufanisi linalowezekana hadi ETH 2048, ikimaanisha kuwa mthibitishaji mmoja sasa anaweza kuweka kati ya ETH 32 na 2048. Badala ya vizidisho vya 32, wawekezaji sasa wanaweza kuchagua kiasi chochote cha ETH cha kuweka na kupokea zawadi kwa kila ETH 1 juu ya kiwango cha chini. Kwa mfano, ikiwa salio la mthibitishaji linakua na zawadi zake hadi ETH 33, ETH 1 ya ziada pia inachukuliwa kuwa sehemu ya salio la ufanisi na inapokea zawadi. + +Lakini manufaa ya mfumo bora wa zawadi kwa wathibitishaji ni sehemu tu ya uboreshaji huu. [Wawekezaji](/staking/) wanaoendesha wathibitishaji wengi sasa wanaweza kuwaunganisha kuwa mmoja, jambo ambalo linarahisisha uendeshaji na kupunguza mzigo wa mtandao. Kwa sababu kila mthibitishaji katika Beacon Chain huwasilisha saini katika kila epoch, mahitaji ya kipimo data huongezeka na wathibitishaji wengi na idadi kubwa ya saini za kusambaza. Kuunganisha wathibitishaji kutapunguza mzigo kwenye mtandao na kufungua chaguo mpya za kuongeza ukubwa huku ukiweka usalama sawa wa kiuchumi. + +Soma uchambuzi wa kina kuhusu maxEB [hapa](/roadmap/pectra/maxeb/) + +### Ongezeko la uwezo wa kusindika Blob {#7691} + +Blob hutoa [upatikanaji wa data](/developers/docs/data-availability/#data-availability-and-layer-2-rollups) kwa L2s. Zilianzishwa katika [uboreshaji wa mtandao uliopita](/roadmap/dencun/). + +Hivi sasa, mtandao unalenga wastani wa blobs 3 kwa kila kizuizi na upeo wa blobs 6. Kwa [EIP-7691](https://eips.ethereum.org/EIPS/eip-7691), wastani wa idadi ya blob utaongezwa hadi 6, na upeo wa 9 kwa kila kizuizi, na kusababisha kuongezeka kwa uwezo wa rollup za Ethereum. EIP hii inasaidia kuziba pengo hadi [PeerDAS](https://eips.ethereum.org/EIPS/eip-7594) itakapowezesha idadi kubwa zaidi ya blob. + +### Ongeza gharama ya calldata {#7623} + +Kabla ya kuanzishwa kwa [blobs katika uboreshaji wa Dencun](/roadmap/danksharding), L2s zilikuwa zikitumia [calldata](/developers/docs/data-availability/blockchain-data-storage-strategies/#calldata) kuhifadhi data zao katika Ethereum. Blobs na calldata zote huathiri matumizi ya kipimo data cha Ethereum. Ingawa vizuizi vingi hutumia kiasi kidogo tu cha calldata, vizuizi vyenye data nyingi ambavyo pia vina blobs nyingi vinaweza kuwa na madhara kwa mtandao wa p2p wa Ethereum. + +Ili kushughulikia hili, [EIP-7623](https://eips.ethereum.org/EIPS/eip-7623) huongeza bei ya calldata, lakini tu kwa miamala yenye data nyingi. Hii inadhibiti ukubwa mbaya zaidi wa kizuizi, inatoa motisha kwa L2s kutumia blobs pekee na inaacha zaidi ya 99% ya miamala bila kuathiriwa. + +### Toka zinazoweza kuanzishwa na safu ya utekelezaji {#7002} + +Hivi sasa, kutoka kwa mthibitishaji na [kutoa ETH iliyowekwa](/staking/withdrawals/) ni operesheni ya safu ya makubaliano ambayo inahitaji ufunguo amilifu wa mthibitishaji, ufunguo uleule wa BLS unaotumiwa na mthibitishaji kufanya majukumu amilifu kama vile uthibitisho. Vitambulisho vya uondoaji ni ufunguo baridi tofauti ambao hupokea hisa iliyotolewa lakini hauwezi kuanzisha utokaji. Njia pekee kwa wawekezaji kutoka ni kutuma ujumbe maalum kwa mtandao wa Beacon Chain uliosainiwa kwa kutumia ufunguo amilifu wa mthibitishaji. Hii inaweka kikomo katika hali ambapo vitambulisho vya uondoaji na ufunguo wa mthibitishaji vinashikiliwa na taasisi tofauti au wakati ufunguo wa mthibitishaji unapotea. + +[EIP-7002](https://eips.ethereum.org/EIPS/eip-7002) inatambulisha mkataba mpya unaoweza kutumika kuanzisha utokaji kwa kutumia vitambulisho vya uondoaji vya safu ya utekelezaji. Wawekezaji wataweza kutoka kwa mthibitishaji wao kwa kupiga simu kazi katika mkataba huu maalum bila hitaji la ufunguo wao wa kusaini wa mthibitishaji au ufikiaji wa Beacon Chain kabisa. Muhimu zaidi, kuwezesha uondoaji wa wathibitishaji kwenye mnyororo huruhusu itifaki za uwekezaji na dhana za uaminifu zilizopunguzwa kwa waendeshaji wa nodi. + +### Amana za Mthibitishaji kwenye mnyororo {#6110} + +Amana za Mthibitishaji kwa sasa zinashughulikiwa na [eth1data poll](https://eth2book.info/capella/part2/deposits-withdrawals/deposit-processing/) ambayo ni kazi kwenye Beacon Chain ambayo huchota data kutoka kwa safu ya utekelezaji. Ni aina ya deni la kiufundi kutoka nyakati za kabla ya The Merge wakati Beacon Chain ilikuwa mtandao tofauti na ilibidi kujihusisha na upangaji upya wa uthibitisho-wa-kazi. + +[EIP-6110](https://eips.ethereum.org/EIPS/eip-6110) ni njia mpya ya kuwasilisha amana kutoka kwa utekelezaji hadi safu ya makubaliano, ambayo inaruhusu usindikaji wa papo hapo na utata mdogo wa utekelezaji. Ni njia salama zaidi ya kushughulikia amana asili za Ethereum iliyounganishwa. Pia husaidia kuandaa itifaki kwa siku zijazo kwa sababu haihitaji amana za kihistoria ili kuanzisha nodi, jambo ambalo ni muhimu kwa kumalizika kwa historia. + +### Precompile ya BLS12-381 {#2537} + +Precompiles ni seti maalum ya mikataba-erevu iliyojengwa moja kwa moja kwenye Mashine Halisi ya Ethereum ([EVM](/developers/docs/evm/)). Tofauti na mikataba ya kawaida, precompiles hazitumwi na watumiaji lakini ni sehemu ya utekelezaji wa mteja wenyewe, zilizoandikwa kwa lugha yake ya asili (k.m., Go, Java, n.k., sio Solidity). Precompiles hutumika kwa kazi zinazotumika sana na sanifu kama vile operesheni za kriptografia. Wasanidi programu wa mikataba-erevu wanaweza kupiga simu precompiles kama mkataba wa kawaida lakini kwa usalama na ufanisi zaidi. + +[EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) huongeza precompiles mpya za operesheni za curve juu ya [BLS12-381](https://hackmd.io/@benjaminion/bls12-381). Curve hii ya eliptiki ilitumika sana katika mifumo ya ikolojia ya sarafu ya kidijitali kutokana na sifa zake za vitendo. Hasa zaidi, imepitishwa na safu ya makubaliano ya Ethereum, ambapo inatumiwa na wathibitishaji. + +Precompile mpya huongeza uwezo kwa kila msanidi programu kufanya operesheni za kriptografia kwa urahisi, kwa ufanisi, na kwa usalama kwa kutumia curve hii, kwa mfano, kuthibitisha saini. Programu za kwenye mnyororo zinazotegemea curve hii zinaweza kuwa na ufanisi zaidi wa gesi na salama kwa kutegemea precompile badala ya mkataba fulani maalum. Hii inatumika hasa kwa programu ambazo zinataka kufikiria kuhusu wathibitishaji ndani ya EVM, k.m., mabwawa ya uwekezaji, [uwekezaji upya](/restaking/), wateja wepesi, madaraja lakini pia zero-knowledge. + +### Tumikia hashi za kizuizi za kihistoria kutoka kwa hali {#2935} + +EVM kwa sasa inatoa `BLOCKHASH` opcode ambayo huwawezesha wasanidi programu wa mikataba kupata hashi ya kizuizi moja kwa moja kwenye safu ya utekelezaji. Hata hivyo, hii ni kwa vizuizi 256 vya mwisho pekee na inaweza kuwa tatizo kwa wateja wasio na hali katika siku zijazo. + +[EIP-2935](https://eips.ethereum.org/EIPS/eip-2935) huunda mkataba mpya wa mfumo ambao unaweza kutumikia hashi 8192 za mwisho za vizuizi kama nafasi za kuhifadhi. Hii inasaidia kuandaa itifaki kwa siku zijazo kwa utekelezaji usio na hali na inakuwa na ufanisi zaidi wakati verkle tries zinapopitishwa. Hata hivyo, mbali na hili, rollup zinaweza kufaidika na hili mara moja, kwani zinaweza kuuliza mkataba moja kwa moja na dirisha refu la kihistoria. + +### Sogeza faharasa ya kamati nje ya Uthibitisho {#7549} + +Makubaliano ya Beacon Chain yanategemea wathibitishaji kupiga kura zao kwa kizuizi cha hivi karibuni na epoch iliyokamilishwa. Uthibitisho unajumuisha vipengele 3, ambapo 2 ni kura na cha tatu ni thamani ya faharasa ya kamati. + +[EIP-7549](https://eips.ethereum.org/EIPS/eip-7549) husogeza faharasa hii nje ya ujumbe wa uthibitisho uliosainiwa, jambo ambalo hurahisisha kuthibitisha na kujumlisha kura za makubaliano. Hii itawezesha ufanisi zaidi katika kila mteja wa makubaliano na inaweza kuleta maboresho makubwa ya utendaji kwa sakiti za zero-knowledge za kuthibitisha makubaliano ya Ethereum. + +### Ongeza ratiba ya blob kwenye faili za usanidi za EL {#7840} + +[EIP-7840](https://eips.ethereum.org/EIPS/eip-7840) ni mabadiliko rahisi ambayo huongeza uga mpya kwenye usanidi wa mteja wa safu ya utekelezaji. Husanidi idadi ya vizuizi, kuwezesha mpangilio unaobadilika wa lengo na idadi ya juu ya blob kwa kila kizuizi pamoja na marekebisho ya ada ya blob. Kwa usanidi ulioainishwa moja kwa moja, wateja wanaweza kuepuka utata wa kubadilishana habari hii kupitia Engine API. + + + + +Ili kujifunza zaidi kuhusu jinsi Pectra inavyokuathiri hasa kama mtumiaji, msanidi programu au mthibitishaji wa Ethereum, angalia Maswali Yanayoulizwa Mara kwa Mara ya Pectra. + + + + +## Je, uboreshaji huu unaathiri nodi zote za Ethereum na wathibitishaji? {#client-impact} + +Ndiyo, uboreshaji wa Pectra unahitaji masasisho kwa [wateja wa utekelezaji na wateja wa makubaliano](/developers/docs/nodes-and-clients/). Wateja wote wakuu wa Ethereum watatoa matoleo yanayounga mkono hard fork iliyowekwa alama kama kipaumbele cha juu. Ili kudumisha usawazishaji na mtandao wa Ethereum baada ya uboreshaji, waendeshaji nodi lazima wahakikishe kuwa wanatumia toleo la mteja linaloungwa mkono. Kumbuka kwamba taarifa kuhusu matoleo ya wateja hubadilika kulingana na wakati, na watumiaji wanapaswa kurejelea masasisho ya hivi punde kwa maelezo ya sasa zaidi. + +## Je, ETH inawezaje kubadilishwa baada ya 'hard fork'? {#scam-alert} + +- **Hakuna Hatua Inayohitajika kwa ETH Yako**: Kufuatia uboreshaji wa Pectra wa Ethereum, hakuna haja ya kubadilisha au kuboresha ETH yako. Salio la akaunti yako litabaki kama lilivyo, na ETH unayomiliki sasa itaendelea kupatikana katika hali yake ya sasa baada ya 'hard fork'. +- **Jihadhari na Ulaghai!** **mtu yeyote anayekuelekeza "kuboresha" ETH yako anajaribu kukuibia.** Hakuna unachohitaji kufanya kuhusiana na uboreshaji huu. + Rasilimali zako hazitaathirika kabisa. Kumbuka, kuwa na taarifa ndiyo njia bora ya kujilinda dhidi ya ulaghai. + +[Zaidi kuhusu kutambua na kuepuka ulaghai](/security/) + +## Wewe ni mwanafunzi wa kuona zaidi? {#visual-learner} + + + +_Nini Kinaingia Katika Uboreshaji wa Pectra?_ - Christine Kim_ + + + +_Uboreshaji wa Pectra wa Ethereum: Wawekezaji Wanachohitaji Kujua — Blockdaemon_ + +## Masomo zaidi {#further-reading} + +- [Ramani ya barabara ya Ethereum](/roadmap/) +- [Maswali Yanayoulizwa Mara kwa Mara ya Pectra](https://epf.wiki/#/wiki/pectra-faq) +- [Ukurasa wa habari wa Pectra.wtf](https://pectra.wtf) +- [Jinsi Pectra inavyoboresha uzoefu wa mwekezaji](https://www.kiln.fi/post/next-ethereum-upgrade-how-pectra-will-enhance-the-staking-experience) +- [Ukurasa wa habari wa EIP7702](https://eip7702.io/) +- [Devnets za Pectra](https://github.com/ethereum/pm/blob/master/Pectra/pectra-pm.md) diff --git a/public/content/translations/sw/roadmap/pectra/maxeb/index.md b/public/content/translations/sw/roadmap/pectra/maxeb/index.md new file mode 100644 index 00000000000..8ca9d2f539b --- /dev/null +++ b/public/content/translations/sw/roadmap/pectra/maxeb/index.md @@ -0,0 +1,204 @@ +--- +title: Pectra MaxEB +description: Jifunze zaidi kuhusu MaxEB katika toleo la Pectra +lang: sw +--- + +# MaxEB {#maxeb} + +_tl;dr:_ Mgawanyiko mkali wa Pectra unaruhusu wathibitishaji wa Ethereum kuchagua salio la juu la ufanisi na kujumuisha kwa kubadilisha kutoka stakabadhi za uondoaji za **Aina ya 1** hadi **Aina ya 2**. Zana rasmi ya kufanya hivi ni Launchpad. Operesheni hii haiwezi kubadilishwa. + +## Muhtasari {#overview} + +### Nani anayeathirika? {#who-is-affected} + +Mtu yeyote anayeendesha mthibitishaji - huyu anawezekana kuwa mtu anayejua faharasa (k.m., [Mthibitishaji #12345](https://beaconcha.in/validator/12345)) ya mthibitishaji anayemdhibiti. Ikiwa unatumia itifaki kuendesha mthibitishaji (k.m., Lido CSM au Rocket Pool), utalazimika kuwasiliana nao ili kuona ikiwa na lini wanasaidia maxEB. + +Ikiwa unasimamisha kwa kutumia tokeni ya kusimamisha kioevu (k.m., rETH au stETH), hakuna hatua inayohitajika au inayopendekezwa. + +### Nini maana ya "maxEB"? {#what-is-maxeb} + +maxEB = Salio la Juu la Ufanisi la mthibitishaji. Hadi mgawanyiko mkali wa Pectra, kila mthibitishaji anapata faida kwenye kiwango cha juu cha ETH 32. Baada ya Pectra, wathibitishaji wana fursa ya kupata faida kwenye salio lolote kati ya ETH 32 na 2048, kwa nyongeza za ETH 1 kwa kukubali mabadiliko. + +### Mthibitishaji anachaguaje kuingia? {#how-does-a-validator-opt-in} + +Mthibitishaji anachagua kuingia kwenye mabadiliko ya maxEB kwa kubadilisha kutoka stakabadhi za uondoaji za **Aina ya 1** hadi **Aina ya 2**. Hili linaweza kufanywa kwenye [Launchpad (Vitendo vya Mthibitishaji)](https://launchpad.ethereum.org/validator-actions) baada ya mgawanyiko mkali wa Pectra kuanza kutumika. Kama ilivyo kwa **Aina ya 0** → **Aina ya 1**, kubadilisha kutoka **Aina ya 1** → **Aina ya 2** ni mchakato usioweza kubadilishwa. + +### Stakabadhi ya uondoaji ni nini? {#whats-a-withdrawal-credential} + +Unapoendesha mthibitishaji, unakuwa na seti ya stakabadhi za uondoaji. Hizi zinaweza kupatikana kwenye data yako ya json ya amana au unaweza kuzitazama kwenye [kichupo cha amana](https://beaconcha.in/validator/12345#deposits) cha beaconcha.in cha mthibitishaji wako. + +1. Stakabadhi za uondoaji za **Aina ya 0**: Ikiwa stakabadhi za uondoaji za mthibitishaji wako zinaanza na `0x00...`, uliweka amana kabla ya mgawanyiko mkali wa Shapella na bado hujaweka anwani ya uondoaji. + +![Stakabadhi ya uondoaji ya Aina ya 0](./0x00-wd.png) + +2. Stakabadhi za uondoaji za **Aina ya 1**: Ikiwa stakabadhi za uondoaji za mthibitishaji wako zinaanza na `0x01...`, uliweka amana baada ya mgawanyiko mkali wa Shapella au tayari umebadilisha stakabadhi zako za **Aina ya 0** kuwa stakabadhi za **Aina ya 1**. + +![Stakabadhi ya uondoaji ya Aina ya 1](./0x01-wd.png) + +3. Stakabadhi za uondoaji za **Aina ya 2**: Aina hii mpya ya stakabadhi ya uondoaji itaanza na `0x02...` na itawashwa baada ya Pectra. Wathibitishaji walio na stakabadhi za uondoaji za **Aina ya 2** wakati mwingine huitwa "**wathibitishaji wanaojumuisha**" + +| **Inaruhusiwa** | **Hairuhusiwi** | +| ----------------------- | ----------------------- | +| ✅ Aina ya 0 → Aina ya 1 | ❌ Aina ya 0 → Aina ya 2 | +| ✅ Aina ya 1 → Aina ya 2 | ❌ Aina ya 1 → Aina ya 0 | +| | ❌ Aina ya 2 → Aina ya 1 | +| | ❌ Aina ya 2 → Aina ya 0 | + +### Hatari {#risks} + +MaxEB inamwezesha mthibitishaji kutuma salio lake lote kwa mthibitishaji mwingine. Watumiaji wanaowasilisha ombi la ujumuishaji wanapaswa kuthibitisha chanzo na yaliyomo kwenye muamala wanaosaini. Zana rasmi ya kutumia vipengele vya maxEB ni Launchpad. Ukiamua kutumia zana ya mtu mwingine, unapaswa kuthibitisha kuwa: + +- Ufunguo wa umma na anwani ya uondoaji ya mthibitishaji chanzo zinafanana na mthibitishaji anayemdhibiti +- Ufunguo wa umma wa mthibitishaji lengwa ni sahihi na ni mali yake +- Ombi ni la ubadilishaji, si ujumuishaji, ikiwa hawakusudii kutuma fedha kwa mthibitishaji mwingine +- Muamala unasainiwa na anwani sahihi ya uondoaji + +**Tunapendekeza sana** kujadili zana yoyote ya mtu mwingine unayopanga kutumia na [jamii ya EthStaker](https://ethstaker.org/about). Ni mahali pazuri pa kuthibitisha usahihi wa mbinu yako na kuepuka makosa. Ukitumia zana mbovu au iliyosanidiwa vibaya, **salio lote la mthibitishaji wako linaweza kutumwa kwa mthibitishaji usiyemdhibiti** — bila njia ya kulirudisha. + +## Maelezo ya kiufundi {#technical-details} + +### Mtiririko {#the-flow} + +Kutakuwa na matumizi mawili ya operesheni ya `ConsolidationRequest`: + +1. Kubadilisha mthibitishaji aliyepo kutoka mthibitishaji wa **Aina ya 1** hadi **Aina ya 2** +2. Kujumuisha wathibitishaji wengine katika mthibitishaji aliyepo wa **Aina ya 2** + +Katika ubadilishaji wa mthibitishaji wa **Aina ya 1** hadi **Aina ya 2**, _chanzo_ na _lengo_ vitakuwa mthibitishaji unayembadilisha. Operesheni itagharimu gesi na itawekwa kwenye foleni nyuma ya maombi mengine ya ujumuishaji. Foleni hii ni **tofauti** na foleni ya amana na haiathiriwi na amana mpya za wathibitishaji na inaweza kutazamwa kwenye [pectrified.com](https://pectrified.com/). + +Ili kujumuisha wathibitishaji, lazima uwe na _mthibitishaji lengwa_ aliye na stakabadhi ya uondoaji ya **Aina ya 2**. Hii ndiyo sehemu ya salio la mthibitishaji yeyote anayejumuishwa, na faharasa inayohifadhiwa. + +### Mahitaji ya kubadilisha hadi Aina ya 2 {#requirements-for-converting-to-type-2} + +Hili litahitajika kwa mthibitishaji wa kwanza unayembadilisha kuwa **Aina ya 2**. Faharasa ya mthibitishaji huyu inahifadhiwa na iko hai. Kwa ubadilishaji, _mthibitishaji chanzo_ == _mthibitishaji lengwa._ + +Mthibitishaji lazima... + +- awe hai +- awe na stakabadhi za uondoaji za **Aina ya 1** +- asiwe katika hali ya kutoka (au kupunguzwa) +- asiwe na uondoaji unaosubiri ulioanzishwa mwenyewe (haitumiki kwa kufagia) + +![mfano wa ubadilishaji](./conversion.png) + +### Mahitaji ya ujumuishaji {#requirements-for-consolidating} + +Hii ni _operesheni sawa_ na kubadilisha lakini ni wakati _mthibitishaji chanzo_ ni tofauti na _mthibitishaji lengwa_. Faharasa ya mthibitishaji lengwa inahifadhiwa na inapokea salio kutoka kwa mthibitishaji chanzo. Faharasa ya mthibitishaji chanzo inawekwa katika hali ya `EXITED`. + +Katika kesi hii, mthibitishaji chanzo ana mahitaji yote sawa na hapo juu pamoja na: + +- amekuwa hai kwa angalau saa ~27.3 (moja `SHARD_COMMITTEE_PERIOD`) + +Mthibitishaji lengwa lazima + +- awe na stakabadhi za uondoaji za **Aina ya 2** +- asiwe katika hali ya kutoka. + +![mfano wa ujumuishaji](./consolidation.png) + +### Ombi la ujumuishaji {#the-consolidation-request} + +Ombi la ujumuishaji litasainiwa na anwani ya uondoaji inayohusiana na mthibitishaji chanzo na litakuwa na: + +1. Anwani ya mthibitishaji chanzo (k.m., `0x15F4B914A0cCd14333D850ff311d6DafbFbAa32b`) +2. Ufunguo wa umma wa mthibitishaji chanzo (k.m., `0xa1d1ad0714035353258038e964ae9675dc0252ee22cea896825c01458e1807bfad2f9969338798548d9858a571f7425c`) +3. Ufunguo wa umma wa mthibitishaji lengwa huyo + +Katika ubadilishaji, 2 & 3 zitakuwa sawa. Operesheni hii inaweza kufanywa kwenye [Launchpad](https://launchpad.ethereum.org/). + +### Mahitaji ya kusaini {#signing-requirements} + +Ili kuwasilisha `ConsolidationRequest`, **anwani ya uondoaji ya mthibitishaji chanzo** lazima isaini ombi. Hii inathibitisha udhibiti juu ya fedha za mthibitishaji. + +### Nini kinasainiwa? {#what-is-signed} + +Mzizi wa kusaini uliotenganishwa na kikoa wa kitu cha `ConsolidationRequest` hutumiwa. + +- **Kikoa:** `DOMAIN_CONSOLIDATION_REQUEST` +- **Sehemu za mzizi wa kusaini:** + - `source_pubkey`: `BLSPubkey` + - `target_pubkey`: `BLSPubkey` + - `source_address`: `ExecutionAddress` + +Sahihi ya **BLS** inayotokana inawasilishwa pamoja na ombi. + +Kumbuka: Usainiaji unafanywa na anwani ya uondoaji, sio ufunguo wa mthibitishaji. + +### Uondoaji wa sehemu {#partial-withdrawals} + +Wathibitishaji walio na stakabadhi za **Aina ya 1** hupata ufagiaji wa kiotomatiki, usio na gesi wa salio lao la ziada (chochote zaidi ya ETH 32) hadi kwenye anwani yao ya uondoaji. Kwa sababu **Aina ya 2** inaruhusu mthibitishaji kujumuisha salio kwa nyongeza za ETH 1, haitafagia salio kiotomatiki hadi ifike ETH 2048. Uondoaji wa sehemu kwa wathibitishaji wa **Aina ya 2** lazima uanzishwe mwenyewe na utagharimu gesi. + +## Zana za ujumuishaji {#consolidation-tooling} + +Kuna zana kadhaa zinazopatikana za kudhibiti ujumuishaji. Zana rasmi, iliyoundwa na Ethereum Foundation, ni [Launchpad](https://launchpad.ethereum.org/en/validator-actions). Pia kuna zana za watu wengine zilizoundwa na mashirika kutoka kwa jamii ya kusimamisha ambazo zinaweza kutoa vipengele visivyotolewa na Launchpad. Ingawa zana zilizopo hapa hazijakaguliwa au kuidhinishwa na Ethereum Foundation, zifuatazo ni zana za chanzo-wazi kutoka kwa wanajamii wanaojulikana. + +| Zana | Tovuti | Chanzo cha wazi | Muundaji | Iliyokaguliwa | Kiolesura | Vipengele muhimu | +| ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | +| Meneja wa Kusimamisha wa Pectra | pectrastaking.com | Ndio, Apache 2.0 | [Pier Two](https://piertwo.com/) | Hapana | UI ya Wavuti | Wallet Connect, inafanya kazi na SAFE | +| Zana ya CLI ya Uendeshaji wa Mthibitishaji wa Pectra | [GitHub](https://github.com/Luganodes/Pectra-Batch-Contract) | Ndio, MIT | [Luganodes](https://www.luganodes.com/) | Ndio, Quantstamp [Mei 2025](https://certificate.quantstamp.com/full/luganodes-pectra-batch-contract/23f0765f-969a-4798-9edd-188d276c4a2b/index.html) | Mstari wa amri | Kukusanya, kwa wathibitishaji wengi kwa wakati mmoja | +| Ethereal | [GitHub](https://github.com/wealdtech/ethereal) | Ndio, Apache 2.0 | [Jim McDonald](https://www.attestant.io/team/) | Hapana | Mstari wa amri | Seti kamili ya vipengele kwa ajili ya usimamizi wa wathibitishaji na nodi | +| Siren | [GitHub](https://github.com/sigp/siren) | Ndio, Apache 2.0 | [Sigma Prime](https://sigmaprime.io/) | Hapana | Mstari fulani wa amri, lakini hasa UI ya wavuti | Inafanya kazi tu ikiwa unatumia mteja wa makubaliano wa Lighthouse | +| Consolideth.app | https://consolideth.app/ [GitHub](https://github.com/Stakely/consolideth) | Ndio, leseni za MIT | [Stakely](https://stakely.io/) | Hapana | UI ya wavuti, inayopangishwa na Stakely na iko tayari kupangishwa mwenyewe bila malipo | Inasaidia viunganisho vikuu vya mkoba ikiwa ni pamoja na Safe na WalletConnect | + +## Maswali Yanayoulizwa Mara kwa Mara {#faq} + +### Je, kuchagua kuingia kunabadilisha bahati yangu ya pendekezo au zawadi? {#change-luck-or-rewards} + +Hapana. Kuchagua kuingia hakupunguzi mabadiliko yako ya pendekezo - majukumu yako na uteuzi wa pendekezo vinabaki vile vile. Kwa mfano, ikiwa una wathibitishaji wawili wa ETH 32 dhidi ya mthibitishaji mmoja wa ETH 64, utakuwa na nafasi sawa za jumla za kuchaguliwa kupendekeza bloku na kupata zawadi. + +### Je, kuchagua kuingia kunabadilisha hatari yangu ya kupunguzwa? {#change-slashing-risk} + +Kwa waendeshaji wadogo au wasio wa kitaalamu, jibu fupi ni hapana. Jibu refu ni kwamba, kwa waendeshaji wa kitaalamu wanaoendesha wathibitishaji wengi kwa kila nodi na arifa za haraka, kujumuisha katika wathibitishaji wachache kunaweza kupunguza uwezo wao wa kukabiliana na upunguzaji na kuzuia matukio ya mfululizo. Adhabu ya awali ya _upunguzaji_ kwa wathibitishaji wote imepunguzwa sana kutoka ETH 1 (kwa ETH 32) hadi ETH 0.0078125 (kwa ETH 32) ili kukabiliana na hatari hii. + +### Je, ni lazima niondoke kwenye mthibitishaji wangu ili kubadilisha? {#exit-validator} + +Hapana. Unaweza kubadilisha papo hapo bila kutoka. + +### Itachukua muda gani kubadilisha / kujumuisha? {#how-long} + +Kiwango cha chini cha saa 27.3 lakini ujumuishaji pia unategemea foleni. Foleni hii ni huru kutoka kwa foleni za amana na uondoaji na haiathiriwi nazo. + +### Je, naweza kuweka faharasa yangu ya mthibitishaji? {#keep-validator-index} + +Ndiyo. Ubadilishaji wa papo hapo huhifadhi faharasa sawa ya mthibitishaji. Ukijumuisha wathibitishaji wengi, utaweza tu kuweka faharasa ya _mthibitishaji lengwa_. + +### Je, nitakosa uthibitisho? {#miss-attestations} + +Wakati wa ujumuishaji katika mthibitishaji mwingine, mthibitishaji chanzo hutoka na kuna kipindi cha kusubiri cha takriban saa 27 kabla salio kuwa hai kwenye mthibitishaji lengwa. Kipindi hiki **hakiathiri vipimo vya utendaji**. + +### Je, nitapata adhabu? {#incur-penalties} + +Hapana. Muda wote mthibitishaji wako yuko mtandaoni, hutapata adhabu. + +### Je, anwani za uondoaji za wathibitishaji wanaojumuishwa zinapaswa kufanana? {#withdrawal-addresses-match} + +Hapana. Lakini _chanzo_ lazima kiidhinishe ombi kutoka kwa anwani yake yenyewe. + +### Je, zawadi zangu zitajumuika baada ya kubadilisha? {#rewards-compound} + +Ndiyo. Kwa stakabadhi za **Aina ya 2**, zawadi zilizo juu ya ETH 32 huwekwa tena kiotomatiki — lakini si papo hapo. Kwa sababu ya bafa ndogo (inayoitwa [_hysteresis_](https://eth2book.info/capella/part2/incentives/balances/#hysteresis)), salio lako linahitaji kufikia **takriban ETH 1.25 zaidi** kabla ya ziada kuwekwa tena. Kwa hivyo badala ya kujumuisha kwa ETH 33.0, inatokea kwa 33.25 (salio la ufanisi = ETH 33), kisha 34.25 (salio la ufanisi = ETH 34), na kadhalika. + +### Je, bado naweza kupata ufagiaji wa kiotomatiki baada ya kubadilisha? {#automatic-sweep} + +Ufagiaji wa kiotomatiki utatokea tu kwa salio la ziada zaidi ya 2048. Kwa uondoaji mwingine wote wa sehemu, utahitaji kuuanzisha mwenyewe. + +### Je, naweza kubadilisha mawazo yangu na kurudi kutoka Aina ya 2 hadi Aina ya 1? {#go-back-to-type1} + +Hapana. Kubadilisha kuwa **Aina ya 2** hakuwezi kubadilishwa. + +### Ikiwa ninataka kujumuisha wathibitishaji wengi, je, ni lazima nibadilishe kila mmoja kuwa Aina ya 2 kwanza? {#consolidate-multiple-validators} + +Hapana! Badilisha mthibitishaji mmoja kuwa Aina ya 2 kisha tumia huyo kama lengo. Wathibitishaji wengine wote waliojumuishwa katika lengo hilo la Aina ya 2 wanaweza kuwa Aina ya 1 au Aina ya 2 + +### Mthibitishaji wangu yuko nje ya mtandao au chini ya ETH 32 - je, bado naweza kuubadilisha? {#offline-or-below-32eth} + +Ndiyo. Muda wote ukiwa hai (haujatoka) na unaweza kusaini na anwani yake ya uondoaji, unaweza kuubadilisha. + +## Rasilimali {#resources} + +- [Vipimo vya makubaliano ya Electra](https://github.com/ethereum/consensus-specs/blob/dev/specs/electra/beacon-chain.md): Hili ndilo toleo 'halisi' zaidi unalopaswa kutegemea. Ukiwa na shaka, soma vipimo +- Sio kila mtu anayestarehe kupitia msimbo, kwa hivyo [hii maxEB-GPT](https://chatgpt.com/g/g-67f1650fb48081918f555e0c8d1c2ae9-maxeb-gpt) inaweza kusaidia kutafsiri vipimo. _Kanusho: Vipimo, sio AI, vinapaswa kutegemewa kama ukweli, kwani AI inaweza kutafsiri taarifa vibaya au kutoa majibu ya kubuni_ +- [pectrified.com](https://pectrified.com/): Tazama hali ya ujumuishaji, amana, na muda wa kusubiri kwenye foleni +- [Ethereal](https://github.com/wealdtech/ethereal): Zana ya CLI iliyoundwa na jamii kwa ajili ya kudhibiti kazi za kawaida za wathibitishaji +- [batch-validator-depositor](https://github.com/attestantio/batch-validator-depositor): Mkataba ulioundwa na jamii unaoruhusu wathibitishaji wengi wa Ethereum kuwekwa amana katika muamala mmoja diff --git a/public/content/translations/sw/roadmap/scaling/index.md b/public/content/translations/sw/roadmap/scaling/index.md new file mode 100644 index 00000000000..1933a9b0ca3 --- /dev/null +++ b/public/content/translations/sw/roadmap/scaling/index.md @@ -0,0 +1,58 @@ +--- +title: Kuongeza Ethereum +description: Muunganiko wa miamala pamoja nje ya mtandao, kupunguza gharama kwa mtumiaji. Hata hivyo, namna muunganiko wa miamala inavyotumia data kwa sasa ni ghali sana, na kunazuia miamala kuwa ya bei nafuu zaidi. Proto-Danksharding inarekebisha hili. +lang: sw +image: /images/roadmap/roadmap-transactions.png +alt: "Ramani ya maendeleo ya Ethereum" +template: roadmap +--- + +Ethereum hupandishwa kiwango kwa kutumia [safu 2](/layer-2/#rollups) (pia zinajulikana kama rollups), ambazo huunganisha miamala pamoja na kutuma matokeo kwa Ethereum. Hata ingawa muunganiko wa miamala ni mara hadi nane nafuu zaidi kuliko Ethereum Mainnet, bado inawezekana kuboresha zaidi muunganiko wa miamala ili kupunguza gharama kwa watumiaji wa mwisho. Muunganiko wa miamala pia hutegemea baadhi ya vipengele vilivyowekwa chini ya uthibiti wa kituo kimoja, ambavyo watengenezaji wanaweza kuondoa kadri muunganiko wa miamala unavyokomaa. + + + + + Gharama za muamala + +
    +
  • Muunganiko wa miamala ya leo ni takriban mara 5–20 nafuu kuliko safu 1 ya Ethereum
  • +
  • Ukusanyaji wa ZK hivi karibuni utapunguza ada kwa \~40-100x
  • +
  • Mabadiliko yajayo kwa Ethereum yatatoa \~100-1000x nyingine ya kuongeza
  • +
  • Watumiaji wanapaswa kufaidika na miamala ya gharama ya chini ya $0.001
  • +
+
+
+ +## Kufanya data iwe nafuu {#making-data-cheaper} + +Ukusanyaji hukusanya idadi kubwa ya shughuli, kuzitekeleza na kuwasilisha matokeo kwa Ethereum. Hii hutoa data nyingi ambayo inahitaji kupatikana kwa uwazi ili mtu yeyote aweze kutekeleza shughuli zake mwenyewe na kuthibitisha kwamba mtoa huduma wa uwasilishaji alikuwa mwaminifu. Ikiwa mtu anapata tofauti, anaweza kuibua changamoto. + +### Proto-Danksharding {#proto-danksharding} + +Data iliyojumuishwa katika historia imehifadhiwa kwenye Ethereum kabisa, ambayo ni ghali. Zaidi ya 90% ya gharama ya ununuzi ambayo watumiaji hulipa kwenye makusanyo inatokana na hifadhi hii ya data. Ili kupunguza gharama za muamala, tunaweza kuhamisha data hadi kwenye hifadhi mpya ya muda ya 'kundi la data'. Makundi ya data ni nafuu kwa sababu si ya kudumu; hufutwa kutoka Ethereum mara tu zisipohitajika tena. Uhifadhi wa data ya muda mrefu inakuwa jukumu la watu wanaoihitaji, kama vile waendeshaji wa kusambaza, kubadilishana, huduma za kuorodhesha n. k. Kuongeza miamala ya kundi la data kwa Ethereum ni sehemu ya toleo jipya linalojulikana kama "Proto-Dankharding". + +Kwa Proto-Dankharding, inawezekana kuongeza makundi ya data mengi kwenye vitalu vya Ethereum. Hii huwezesha ongezeko lingine kubwa (>100x) la upitishaji wa Ethereum na kupunguza gharama za muamala. + +### Danksharding {#danksharding} + +Hatua ya pili ya kupanua data ya blob ni ngumu kwa sababu inahitaji mbinu mpya za kukagua data ya rollup inapatikana kwenye mtandao na inategemea [wathibitishaji](/glossary/#validator) kutenganisha majukumu yao ya uundaji wa [bloku](/glossary/#block) na mapendekezo ya bloku. Inahitaji pia njia ya kuthibitisha kwa njia fiche kwamba wathibitishaji wamethibitisha vikundi vidogo vya data. + +Hatua hii ya pili inajulikana kama [\"Danksharding\"](/roadmap/danksharding/). Kazi ya utekelezaji inaendelea, huku maendeleo yakifanywa kwenye masharti ya awali kama [kutenganisha uundaji wa bloku na pendekezo la bloku](/roadmap/pbs) na miundo mipya ya mtandao ambayo huwezesha mtandao kuthibitisha kwa ufanisi kuwa data inapatikana kwa kuchukua sampuli nasibu za kilobaiti chache kwa wakati mmoja, inayojulikana kama [uchukuaji sampuli wa upatikanaji wa data (DAS)](/developers/docs/data-availability). + +Zaidi kuhusu Danksharding + +## Kugatua rollups {#decentralizing-rollups} + +[Rollups](/layer-2) tayari zinapanua kiwango cha Ethereum. [Mfumo ikolojia tele wa miradi ya rollup](https://l2beat.com/scaling/tvs) unawawezesha watumiaji kufanya miamala haraka na kwa bei nafuu, kukiwa na dhamana mbalimbali za usalama. Hata hivyo, rollups zimewekwa kujitegemea kuanzishwa kwa kutumia wapangaji wa muamala kati (kompyuta hufanya shughuli zote usindikaji na uchanganuzi kabla ya kuwasilisha yao kwa Ethereum). Hii inaweza kuathiriwa na udhibiti, kwa sababu waendeshaji wa mpangilio wanaweza kuidhinishwa, kuhongwa au kuathiriwa vinginevyo. Wakati huo huo, [rollups hutofautiana](https://l2beat.com/scaling/summary) kwa jinsi zinavyothibitisha data inayoingia. Njia bora zaidi ni kwa \"provers\" kuwasilisha [ushahidi wa ulaghai](/glossary/#fraud-proof) au ushahidi wa uhalali, lakini sio rollups zote zimefika hapo bado. Hata zile orodha zinazotumia uthibitisho wa uhalali/udanganyifu hutumia kundi dogo la methali zinazojulikana. Kwa hiyo, hatua inayofuata muhimu katika kuongeza kiwango cha Ethereum ni kusambaza jukumu la kuendesha vifuatavyo na methali kwa watu wengi zaidi. + +Zaidi kuhusu rollups + +## Maendeleo ya sasa {#current-progress} + +Proto-Dankharding ilitekelezwa kwa mafanikio kama sehemu ya uboreshaji wa mtandao wa Cancun-Deneb ("Dencun") mnamo Machi 2024. Tangu kutekelezwa kwake, uwasilishaji umeanza kutumia hifadhi ya kundi la data, na kusababisha kupunguza gharama za ununuzi kwa watumiaji na mamilioni ya miamala iliyochakatwa katika vipande vya data. + +Kazi ya Dankharding kamili inaendelea, huku maendeleo yakifanywa kuhusu mahitaji yake ya awali kama vile PBS (Mgawanyo wa Wajenzi wa Mpendekezaji) na DAS (Sampuli ya Upatikanaji wa Data). Miundombinu ya mfumo mtawanyo wa madaraka ni mchakato wa taratibu - kuna matoleo mengi tofauti ambayo yanaunda mifumo tofauti kidogo na itatawanya kikamilifu kwa viwango tofauti. + +[Zaidi kuhusu uboreshaji wa mtandao wa Dencun na athari zake](/roadmap/dencun/) + + diff --git a/public/content/translations/sw/roadmap/secret-leader-election/index.md b/public/content/translations/sw/roadmap/secret-leader-election/index.md new file mode 100644 index 00000000000..545f6c44ddf --- /dev/null +++ b/public/content/translations/sw/roadmap/secret-leader-election/index.md @@ -0,0 +1,44 @@ +--- +title: Uchaguzi wa siri wa viongozi +description: Maelezo ya jinsi uchaguzi wa kiongozi wa siri unavyoweza kusaidia kuwalinda Wathibitishaji kutokana na mashambulizi +lang: sw +summaryPoints: + - Anwani ya IP ya wapendekezaji wa bloku inaweza kujulikana mapema, na kuwafanya wawe katika hatari ya mashambulizi + - Uchaguzi wa kiongozi wa siri huficha utambulisho wa Wathibitishaji ili wasiweze kujulikana mapema + - Nyongeza ya wazo hili ni kufanya uteuzi wa Mthibitishaji uwe wa nasibu katika kila yanayopangwa. +--- + +# Uchaguzi wa kiongozi wa siri {#single-secret-leader-election} + +Katika utaratibu wa makubaliano unaotegemea [uthibitisho-wa-hisa](/developers/docs/consensus-mechanisms/pos) wa leo, orodha ya wapendekezaji wa bloku wanaofuata iko wazi na inawezekana kupanga anwani zao za IP. Hii inamaanisha kuwa washambulizi wanaweza kutambua ni Wathibitishaji gani wanaotarajiwa kupendekeza bloku na kuwalenga kwa shambulio la kukatiza huduma (DOS) linalowaacha wasiweze kupendekeza bloku yao kwa wakati. + +Hii inaweza kuunda fursa kwa mshambulizi kupata faida. Kwa mfano, mpendekezaji wa bloku aliyechaguliwa kwa ajili ya yanayopangwa `n+1` anaweza kumshambulia kwa DOS mpendekezaji katika yanayopangwa `n` ili akose fursa yake ya kupendekeza bloku. Hii ingemruhusu mpendekezaji wa bloku mshambulizi kutoa MEV ya yanayopangwa yote mawili, au kunyakua miamala yote ambayo ingepaswa kugawanywa katika bloku mbili na badala yake kuijumuisha yote katika moja, na kupata ada zote zinazohusiana. Hii ina uwezekano wa kuathiri Wathibitishaji wa nyumbani zaidi ya Wathibitishaji wa taasisi za kisasa wanaoweza kutumia mbinu za hali ya juu zaidi kujilinda dhidi ya mashambulizi ya DOS, na kwa hivyo inaweza kuwa nguvu ya kuweka mamlaka kati. + +Kuna suluhu kadhaa za tatizo hili. Moja wapo ni [Teknolojia ya Mthibitishaji Iliyosambazwa](https://github.com/ethereum/distributed-validator-specs) ambayo inalenga kueneza kazi mbalimbali zinazohusiana na kuendesha Mthibitishaji kwenye mashine nyingi, na upungufu, ili iwe vigumu zaidi kwa mshambulizi kuzuia bloku kupendekezwa katika yanayopangwa maalum. Hata hivyo, suluhu thabiti zaidi ni **Uchaguzi Mmoja wa Kiongozi wa Siri (SSLE)**. + +## Uchaguzi mmoja wa kiongozi wa siri {#secret-leader-election} + +Katika SSLE, kriptografia ya kijanja hutumiwa kuhakikisha kuwa ni Mthibitishaji aliyechaguliwa pekee ndiye anayejua kuwa amechaguliwa. Hii hufanya kazi kwa kuwa na kila Mthibitishaji anayewasilisha ahadi kwa siri wanayoshiriki wote. Ahadi hizo huchanganywa na kusanidiwa upya ili mtu yeyote asiweze kuhusisha ahadi na Wathibitishaji lakini kila Mthibitishaji anajua ni ahadi ipi ni yake. Kisha, ahadi moja huchaguliwa kwa nasibu. Ikiwa Mthibitishaji atagundua kwamba ahadi yake imechaguliwa, anajua kuwa ni zamu yake kupendekeza bloku. + +Utekelezaji mkuu wa wazo hili unaitwa [Whisk](https://ethresear.ch/t/whisk-a-practical-shuffle-based-ssle-protocol-for-ethereum/11763). Ambayo hufanya kazi kama ifuatavyo: + +1. Wathibitishaji hujitolea kwa siri ya pamoja. Mpango wa ahadi umeundwa hivi kwamba unaweza kufungamanishwa na utambulisho wa Mthibitishaji lakini pia kufanywa kuwa wa nasibu ili mtu wa tatu asiweze kubadili mchakato wa uhusiano huo na kuhusisha ahadi maalum na Mthibitishaji maalum. +2. Mwanzoni mwa epoki, seti ya nasibu ya Wathibitishaji huchaguliwa kuchukua sampuli za ahadi kutoka kwa Wathibitishaji 16,384, kwa kutumia RANDAO. +3. Kwa yanayopangwa 8182 yajayo (siku 1), wapendekezaji wa bloku huchanganya na kufanya nasibu sehemu ndogo ya ahadi kwa kutumia entropi yao ya kibinafsi. +4. Baada ya uchanganyaji kukamilika, RANDAO hutumika kuunda orodha iliyopangwa ya ahadi. Orodha hii inahusishwa na yanayopangwa ya Ethereum. +5. Wathibitishaji wanaona kuwa ahadi yao imeambatanishwa na yanayopangwa maalum, na yanayopangwa hilo linapofika wanapendekeza bloku. +6. Rudia hatua hizi ili ugawaji wa ahadi kwa yanayopangwa daima uwe mbele sana ya yanayopangwa la sasa. + +Hii huwazuia washambulizi kujua mapema ni Mthibitishaji gani maalum atapendekeza bloku inayofuata, na kuzuia uwezekano wa mashambulizi ya DOS. + +## Uchaguzi wa kiongozi usio mmoja wa siri (SnSLE) {#secret-non-single-leader-election} + +Pia kuna pendekezo tofauti linalolenga kuunda hali ambapo kila Mthibitishaji ana nafasi ya nasibu ya kupendekeza bloku katika kila yanayopangwa, sawa na jinsi pendekezo la bloku lilivyoamuliwa chini ya uthibitisho-wa-kazi, inayojulikana kama **uchaguzi wa kiongozi usio mmoja wa siri (SnSLE)**. Njia moja rahisi ya kufanya hivi ni kutumia chaguo la kukokotoa la RANDAO linalotumiwa kuchagua Wathibitishaji kwa nasibu katika itifaki ya leo. Wazo la RANDAO ni kwamba nambari ya nasibu ya kutosha inatolewa kwa kuchanganya hashi zilizowasilishwa na Wathibitishaji wengi huru. Katika SnSLE, hashi hizi zinaweza kutumika kumchagua mpendekezaji wa bloku anayefuata, kwa mfano kwa kuchagua hashi yenye thamani ya chini zaidi. Masafa ya hashi halali yanaweza kubanwa ili kurekebisha uwezekano wa Wathibitishaji binafsi kuchaguliwa katika kila yanayopangwa. Kwa kudai kuwa hashi lazima iwe chini ya `2^256 * 5 / N` ambapo `N` = idadi ya Wathibitishaji wanaofanya kazi, nafasi ya Mthibitishaji yeyote binafsi kuchaguliwa katika kila yanayopangwa itakuwa `5/N`. Katika mfano huu, kutakuwa na uwezekano wa 99.3% wa angalau mpendekezaji mmoja kutoa hashi halali katika kila yanayopangwa. + +## Maendeleo ya sasa {#current-progress} + +SSLE na SnSLE zote ziko katika awamu ya utafiti. Bado hakuna vipimo vilivyokamilishwa kwa wazo lolote kati ya hayo. SSLE na SnSLE ni mapendekezo yanayoshindana ambayo yote hayawezi kutekelezwa. Kabla ya kuzinduliwa, yanahitaji utafiti na maendeleo zaidi, uundaji wa mfano, na utekelezaji kwenye testnet za umma. + +## Masomo zaidi {#further-reading} + +- [SnSLE](https://ethresear.ch/t/secret-non-single-leader-election/11789) diff --git a/public/content/translations/sw/roadmap/security/index.md b/public/content/translations/sw/roadmap/security/index.md new file mode 100644 index 00000000000..baabdad07e7 --- /dev/null +++ b/public/content/translations/sw/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: Ethereum salama zaidi +description: Ethereum ndilo jukwaa salama zaidi na lililogatuliwa la kandarasi mahiri kuwapo. Hata hivyo, bado kuna maboresho ambayo yanaweza kufanywa ili Ethereum iendelee kustahimili kiwango chochote cha mashambulizi katika siku zijazo. +lang: sw +image: /images/roadmap/roadmap-security.png +alt: "Ramani ya maendeleo ya Ethereum" +template: roadmap +--- + +**Ethereum tayari ni jukwaa salama sana**, lililogatuliwa la [mkataba wa busara](/glossary/#smart-contract). Hata hivyo, bado kuna maboresho ambayo yanaweza kufanywa ili Ethereum iendelee kustahimili kila aina ya mashambulizi katika siku zijazo. Hii ni pamoja na mabadiliko madogo kwa jinsi [wateja wa Ethereum](/glossary/#consensus-client) wanavyoshughulikia [vizuizi](/glossary/#block) vinavyoshindana, na pia kuongeza kasi ambayo mtandao unazingatia vizuizi kuwa ["vimekamilishwa"](/developers/docs/consensus-mechanisms/pos/#finality) (ikimaanisha kuwa haviwezi kubadilishwa bila hasara kubwa za kiuchumi kwa mshambuliaji). + +Pia kuna maboresho ambayo hufanya udhibiti wa miamala kuwa mgumu zaidi kwa kuwafanya wapendekeza kuzuia kutoona maudhui halisi ya vizuizi vyao, na njia mpya za kutambua wakati mteja anakagua. Kwa pamoja maboresho haya yataboresha itifaki ya [uthibitisho-wa-hisa](/glossary/#pos) ili watumiaji - kuanzia watu binafsi hadi mashirika - wawe na imani ya papo hapo katika programu, data na rasilimali zao kwenye Ethereum. + +## Uondoaji wa Staking {#staking-withdrawals} + +Uboreshaji kutoka [uthibitisho-wa-kazi](/glossary/#pow) hadi uthibitisho-wa-hisa ulianza na waanzilishi wa Ethereum "wakiweka hisa" ETH zao katika mkataba wa amana. Hiyo ETH inatumika kulinda mtandao. Kulikuwa na sasisho la pili mnamo Aprili 12, 2023 ili kuruhusu wathibitishaji kutoa ETH iliyowekwa hisa. Tangu wakati huo waidhinishaji wanaweza kuweka hisa au kuondoa ETH bila malipo. + +Soma kuhusu uondoaji + +## Kujilinda dhidi ya mashambulizi {#defending-against-attacks} + +Kuna maboresho ambayo yanaweza kufanywa kwa itifaki ya uthibitisho wa hisa ya Ethereum. Mojawapo inajulikana kama [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - algoriti salama zaidi ya kuchagua-[uma](/glossary/#fork) ambayo inafanya aina fulani za mashambulizi ya hali ya juu kuwa magumu zaidi. + +Kupunguza muda ambao Ethereum huchukua [kukamilisha](/glossary/#finality) vizuizi kungeboresha uzoefu wa mtumiaji na kuzuia mashambulizi ya hali ya juu ya "reorg" ambapo washambuliaji hujaribu kupanga upya vizuizi vya hivi karibuni ili kupata faida au kudhibiti miamala fulani. [**Ukamilishaji wa nafasi moja (SSF)**](/roadmap/single-slot-finality/) ni **njia ya kupunguza ucheleweshaji wa ukamilishaji**. Hivi sasa kuna vizuizi vya thamani ya dakika 15 ambavyo mshambuliaji anaweza kinadharia kuwashawishi waidhinishaji wengine kusanidi upya. Na SSF, kuna 0. Watumiaji, kuanzia watu binafsi hadi programu na ubadilishanaji, hunufaika kutokana na uhakikisho wa haraka kwamba miamala yao haitarejeshwa, na mtandao unafaidika kwa kuzima aina nzima ya mashambulizi. + +Soma kuhusu ukamilishaji wa nafasi moja + +## Kujilinda dhidi ya udhibiti {#defending-against-censorship} + +Ugatuaji huzuia watu binafsi au vikundi vidogo vya [wathibitishaji](/glossary/#validator) kuwa na ushawishi mkubwa mno. Teknolojia mpya za uwekaji hisa zinaweza kusaidia kuhakikisha waidhinishaji wa Ethereum wanasalia kama waliogatuliwa iwezekanavyo huku wakiwatetea dhidi ya hitilafu za maunzi, programu na mtandao. Hii ni pamoja na programu inayoshiriki majukumu ya wathibitishaji katika [nodi](/glossary/#node) nyingi. Hii inajulikana kama **teknolojia ya wathibitishaji iliyosambazwa (DVT)**. [Madimbwi ya kuweka hisa](/glossary/#staking-pool) yanahimizwa kutumia DVT kwa sababu inaruhusu kompyuta nyingi kushiriki kwa pamoja katika uthibitishaji, na kuongeza urudufu na ustahimilivu wa makosa. Pia hugawanya funguo za wathibitishaji katika mifumo kadhaa, badala ya kuwa na waendeshaji mmoja anayeendesha wathibitishaji wengi. Hii inafanya iwe vigumu zaidi kwa waendeshaji wasio waaminifu kuratibu mashambulizi kwenye Ethereum. Kwa ujumla, wazo ni kupata manufaa ya usalama kwa kuendesha wathibitishaji kama _jamii_ badala ya kama watu binafsi. + +Soma kuhusu teknolojia ya wathibitishaji iliyosambazwa + +Kutekeleza **utenganishaji wa mpendekezaji-mjengaji (PBS)** kutaboresha kwa kiasi kikubwa ulinzi wa ndani wa Ethereum dhidi ya udhibiti. PBS inaruhusu mthibitishaji mmoja kuunda kizuizi na mwingine kukitangaza kwenye mtandao wote wa Ethereum. Hii inahakikisha kuwa faida kutoka kwa algoriti za kitaalamu za ujenzi wa vizuizi zinazolenga kuongeza faida zinashirikiwa kwa usawa zaidi kwenye mtandao, **ikizuia hisa isijilimbikize** kwa waweka-hisa wa kitaasisi wenye utendaji bora kadri muda unavyopita. Mpendekezaji wa kizuizi anapata fursa ya kuchagua kizuizi chenye faida zaidi kinachotolewa kwake na soko la wajenzi wa vizuizi. Ili kufanya udhibiti, mpendekezaji wa kizuizi mara nyingi atalazimika kuchagua kizuizi chenye faida ndogo, jambo ambalo litakuwa **lisilo na mantiki kiuchumi na pia dhahiri kwa wathibitishaji wengine** kwenye mtandao. + +Kuna viongezeo vinavyowezekana kwa PBS, kama vile miamala iliyosimbwa kwa njia fiche na orodha za ujumuishaji, ambavyo vinaweza kuboresha zaidi uwezo wa Ethereum wa kupinga udhibiti. Hivi humfanya mjengaji wa kizuizi na mpendekezaji wasione miamala halisi iliyojumuishwa katika vizuizi vyao. + +Soma kuhusu utenganishaji wa mpendekezaji-mjengaji + +## Kulinda wathibitishaji {#protecting-validators} + +Inawezekana kuwa mshambuliaji wa hali ya juu anaweza kuwatambua wathibitishaji wanaofuata na kuwatumia barua taka ili kuwazuia kupendekeza vizuizi; hili linajulikana kama shambulio la **kukataa huduma (DoS)**. Kutekeleza [**uchaguzi wa kiongozi wa siri (SLE)**](/roadmap/secret-leader-election) kutalinda dhidi ya aina hii ya shambulio kwa kuzuia wapendekezaji wa vizuizi wasijulikane mapema. Hii hufanya kazi kwa kuchanganya kila mara seti ya ahadi za kriptografia zinazowakilisha wapendekezaji wa vizuizi watarajiwa na kutumia mpangilio wao kuamua ni mthibitishaji yupi anachaguliwa kwa namna ambayo ni wathibitishaji wenyewe pekee wanaojua mpangilio wao mapema. + +Soma kuhusu uchaguzi wa kiongozi wa siri + +## Maendeleo ya sasa {#current-progress} + +**Maboresho ya usalama kwenye mpango kazi yako katika hatua za juu za utafiti**, lakini hayatarajiwi kutekelezwa kwa muda fulani. Hatua zinazofuata za view-merge, PBS, SSF na SLE ni kukamilisha vipimo na kuanza kuunda mifano ya awali. diff --git a/public/content/translations/sw/roadmap/single-slot-finality/index.md b/public/content/translations/sw/roadmap/single-slot-finality/index.md new file mode 100644 index 00000000000..dd955893192 --- /dev/null +++ b/public/content/translations/sw/roadmap/single-slot-finality/index.md @@ -0,0 +1,66 @@ +--- +title: Ukamalishaji wa nafasi moja +description: Maelezo ya ukamilishaji wa nafasi moja +lang: sw +--- + +# Ukamalishaji wa nafasi moja {#single-slot-finality} + +Inachukua takriban dakika 15 kwa bloku ya Ethereum kukamilika. Hata hivyo, tunaweza kufanya utaratibu wa makubaliano wa Ethereum uthibitishe bloku kwa ufanisi zaidi na kupunguza muda wa ukamilishaji kwa kiasi kikubwa. Badala ya kusubiri dakika kumi na tano, bloku zinaweza kupendekezwa na kukamilishwa katika nafasi ileile. Dhana hii inajulikana kama **ukamalishaji wa nafasi moja (SSF)**. + +## Mwisho ni nini? {#what-is-finality} + +Katika utaratibu wa makubaliano wa Ethereum unaotegemea uthibitisho wa hisa, ukamalishaji unarejelea hakikisho kwamba bloku haiwezi kubadilishwa au kuondolewa kwenye mnyororo wa bloku bila kuteketeza angalau 33% ya jumla ya ETH iliyowekwa. Huu ni usalama wa 'kripto-kiuchumi' kwa sababu uhakika unatokana na gharama kubwa mno inayohusiana na kubadilisha mpangilio au maudhui ya mnyororo ambayo ingemzuia mhusika yeyote wa kiuchumi mwenye busara kujaribu. + +## Kwa nini kulenga ukamilishaji wa haraka zaidi? {#why-aim-for-quicker-finality} + +Muda wa sasa wa ukamilishaji umekuwa mrefu sana. Watumiaji wengi hawataki kusubiri dakika 15 kwa ajili ya ukamalishaji, na ni usumbufu kwa programu na mabadilishano ambayo yanaweza kutaka upitishaji wa juu wa miamala kusubiri kwa muda mrefu hivyo ili kuwa na uhakika miamala yao ni ya kudumu. Kuwa na ucheleweshaji kati ya pendekezo la bloku na ukamilishaji pia kunaunda fursa ya reorgs fupi ambazo mshambuliaji anaweza kutumia kudhibiti bloku fulani au kutoa MEV. Mfumo unaohusika na kuboresha bloku kwa hatua pia ni changamano kabisa na umerekebishwa mara kadhaa ili kuziba udhaifu wa kiusalama, na kuufanya kuwa moja ya sehemu za msimbo wa Ethereum ambapo hitilafu ndogondogo zina uwezekano mkubwa wa kutokea. Masuala haya yote yanaweza kuondolewa kwa kupunguza muda wa ukamilishaji hadi nafasi moja. + +## Mbadilishano wa ugatuzi / muda / gharama za ziada {#the-decentralization-time-overhead-tradeoff} + +Dhamana ya ukamilishaji sio sifa ya papo hapo ya bloku mpya; inachukua muda kwa bloku mpya kukamilika. Sababu ya hili ni kwamba wathibitishaji wanaowakilisha angalau 2/3 ya jumla ya ETH iliyowekwa kwenye mtandao wanapaswa kupigia kura bloku ("kuthibitisha") ili ichukuliwe kuwa imekamilika. Kila nodi ya uthibitishaji kwenye mtandao inabidi ichakate uthibitisho kutoka kwa nodi zingine ili kujua kama bloku imefikia, au haijafikia, kiwango hicho cha 2/3. + +Kadiri muda unaoruhusiwa kufikia ukamilishaji unavyokuwa mfupi, ndivyo nguvu zaidi ya kompyuta inavyohitajika katika kila nodi kwa sababu uchakataji wa uthibitisho lazima ufanyike haraka zaidi. Pia, kadiri nodi nyingi za uthibitishaji zinavyokuwepo kwenye mtandao, ndivyo uthibitisho mwingi unavyopaswa kuchakatwa kwa kila bloku, na kuongeza pia kwenye nguvu ya uchakataji inayohitajika. Kadiri nguvu nyingi za uchakataji zinavyohitajika, ndivyo watu wachache wanaweza kushiriki kwa sababu vifaa vya bei ghali zaidi vinahitajika kuendesha kila nodi ya uthibitishaji. Kuongeza muda kati ya bloku kunapunguza nguvu ya kompyuta inayohitajika katika kila nodi lakini pia huongeza muda wa ukamilishaji, kwa sababu uthibitisho unachakatwa polepole zaidi. + +Kwa hivyo, kuna mbadilishano kati ya gharama za ziada (nguvu ya kompyuta), ugatuzi (idadi ya nodi zinazoweza kushiriki katika kuthibitisha mnyororo) na muda wa ukamilishaji. Mfumo bora unasawazisha nguvu ya chini ya kompyuta, ugatuzi wa juu zaidi na muda wa chini zaidi wa ukamilishaji. + +Utaratibu wa sasa wa makubaliano wa Ethereum ulisawazisha vigezo hivi vitatu kwa: + +- **Kuweka hisa ya chini kuwa 32 ETH**. Hii inaweka kikomo cha juu kwenye idadi ya uthibitisho wa wathibitishaji ambayo inapaswa kuchakatwa na nodi binafsi, na kwa hivyo kikomo cha juu cha mahitaji ya kikokotoo kwa kila nodi. +- **Kuweka muda wa ukamilishaji kuwa ~dakika 15**. Hii inatoa muda wa kutosha kwa wathibitishaji wanaoendeshwa kwenye kompyuta za kawaida za nyumbani kuchakata kwa usalama uthibitisho wa kila bloku. + +Kwa muundo wa sasa wa mfumo, ili kupunguza muda wa ukamilishaji, ni muhimu kupunguza idadi ya wathibitishaji kwenye mtandao au kuongeza mahitaji ya vifaa kwa kila nodi. Hata hivyo, kuna maboresho yanaweza kufanywa kwenye jinsi uthibitisho unavyochakatwa ambayo yanaweza kuruhusu uthibitisho zaidi kuhesabiwa bila kuongeza gharama za ziada katika kila nodi. Uchakataji wenye ufanisi zaidi utaruhusu ukamilishaji kubainishwa ndani ya nafasi moja, badala ya katika enzi mbili. + +## Njia za kuelekea SSF {#routes-to-ssf} + + + +Utaratibu wa sasa wa makubaliano unachanganya uthibitisho kutoka kwa wathibitishaji wengi, wanaojulikana kama kamati, ili kupunguza idadi ya jumbe ambazo kila mthibitishaji anapaswa kuchakata ili kuthibitisha bloku. Kila mthibitishaji ana fursa ya kuthibitisha katika kila enzi (nafasi 32) lakini katika kila nafasi, ni kikundi kidogo tu cha wathibitishaji, kinachojulikana kama 'kamati', ndicho kinachothibitisha. Wanafanya hivyo kwa kugawanyika katika mitandao midogo ambapo wathibitishaji wachache huchaguliwa kuwa 'wakusanyaji'. Wakusanyaji hao kila mmoja anachanganya saini zote anazoziona kutoka kwa wathibitishaji wengine katika mtandao wao mdogo kuwa saini moja ya jumla. Mkusanyaji anayejumuisha idadi kubwa zaidi ya michango binafsi anapitisha saini yake ya jumla kwa mpendekezaji wa bloku, ambaye anaijumuisha katika bloku pamoja na saini ya jumla kutoka kwa kamati zingine. + +Mchakato huu unatoa uwezo wa kutosha kwa kila mthibitishaji kupiga kura katika kila enzi, kwa sababu `nafasi 32 * kamati 64 * wathibitishaji 256 kwa kila kamati = wathibitishaji 524,288 kwa kila enzi`. Wakati wa kuandika (Februari 2023) kuna takriban wathibitishaji 513,000 wanaofanya kazi. + +Katika mpango huu, inawezekana tu kwa kila mthibitishaji kupiga kura kwenye bloku kwa kusambaza uthibitisho wao katika enzi nzima. Hata hivyo, kuna njia zinazowezekana za kuboresha mfumo ili _kila mthibitishaji apate fursa ya kuthibitisha katika kila nafasi_. + + +Tangu utaratibu wa makubaliano wa Ethereum ulipoundwa, mpango wa ujumlishaji wa saini (BLS) umegundulika kuwa na uwezo mkubwa wa kupanuka kuliko ilivyofikiriwa awali, huku uwezo wa wateja kuchakata na kuthibitisha saini nao umeboreshwa. Imebainika kuwa kuchakata uthibitisho kutoka kwa idadi kubwa ya wathibitishaji kwa kweli kunawezekana ndani ya nafasi moja. Kwa mfano, na wathibitishaji milioni moja kila mmoja akipiga kura mara mbili katika kila nafasi, na nyakati za nafasi zikirekebishwa kuwa sekunde 16, nodi zingehitajika kuthibitisha saini kwa kiwango cha chini cha ujumlishaji 125,000 kwa sekunde ili kuchakata uthibitisho wote milioni 1 ndani ya nafasi. Kwa uhalisia, inachukua kompyuta ya kawaida takriban nanosekunde 500 kufanya uthibitisho mmoja wa saini, ikimaanisha 125,000 zinaweza kufanywa katika ~62.5 ms - chini sana ya kizingiti cha sekunde moja. + +Faida zaidi za ufanisi zinaweza kupatikana kwa kuunda kamati kuu za k.m., wathibitishaji 125,000 waliochaguliwa bila mpangilio kwa kila nafasi. Ni wathibitishaji hawa tu wanaopata kupiga kura kwenye bloku na kwa hivyo ni kikundi hiki kidogo tu cha wathibitishaji ndicho kinachoamua kama bloku imekamilika. Kama hili ni wazo zuri au la inategemea jinsi jumuiya ingependelea gharama iwe kubwa kwa shambulio lenye mafanikio kwenye Ethereum. Hii ni kwa sababu badala ya kuhitaji 2/3 ya jumla ya ether iliyowekwa, mshambuliaji anaweza kukamilisha bloku isiyo ya uaminifu na 2/3 ya ether iliyowekwa _katika kamati kuu hiyo_. Hili bado ni eneo la utafiti amilifu, lakini inaonekana inawezekana kwamba kwa seti ya wathibitishaji kubwa ya kutosha kuhitaji kamati kuu kwanza, gharama ya kushambulia moja ya kamati hizo ndogo itakuwa kubwa mno (k.m., gharama ya shambulio iliyoainishwa kwa ETH itakuwa `2/3 * 125,000 * 32 = ~milioni 2.6 ETH`). Gharama ya shambulio inaweza kurekebishwa kwa kuongeza ukubwa wa seti ya wathibitishaji (k.m., rekebisha ukubwa wa mthibitishaji ili gharama ya shambulio iwe sawa na ether milioni 1, ether milioni 4, ether milioni 10, nk). [Kura za maoni za awali](https://youtu.be/ojBgyFl6-v4?t=755) za jumuiya zinaonekana kupendekeza kwamba ether milioni 1-2 ni gharama inayokubalika ya shambulio, ambayo inaashiria ~wathibitishaji 65,536 - 97,152 kwa kila kamati kuu. + +Hata hivyo, uthibitisho sio kikwazo halisi - ni ujumlishaji wa saini ndio unaotoa changamoto kweli kwa nodi za wathibitishaji. Ili kupanua ujumlishaji wa saini pengine kutahitaji kuongeza idadi ya wathibitishaji katika kila mtandao mdogo, kuongeza idadi ya mitandao midogo, au kuongeza safu za ziada za ujumlishaji (yaani, kutekeleza kamati za kamati). Sehemu ya suluhisho inaweza kuwa kuruhusu wakusanyaji maalumu - sawa na jinsi ujenzi wa bloku na utoaji wa ahadi za data za rollup utakavyotolewa kwa wajenzi maalumu wa bloku chini ya utengano wa mpendekezaji-mjenzi (PBS) na Danksharding. + +## Jukumu la kanuni ya uchaguzi wa uma ni nini katika SSF? {#role-of-the-fork-choice-rule} + +Utaratibu wa makubaliano wa leo unategemea uhusiano wa karibu kati ya kifaa cha ukamilishaji (algoriti inayobainisha ikiwa 2/3 ya wathibitishaji wamethibitisha mnyororo fulani) na kanuni ya uchaguzi wa uma (algoriti inayoamua ni mnyororo gani sahihi kunapokuwa na chaguo nyingi). Algoriti ya uchaguzi wa uma inazingatia tu bloku _tangu_ bloku ya mwisho iliyokamilika. Chini ya SSF hakungekuwa na bloku zozote za kanuni ya uchaguzi wa uma kuzingatia, kwa sababu ukamilishaji hutokea katika nafasi ileile ambayo bloku inapendekezwa. Hii inamaanisha kwamba chini ya SSF _ama_ algoriti ya uchaguzi wa uma _au_ kifaa cha ukamilishaji vitakuwa vinafanya kazi wakati wowote. Kifaa cha ukamilishaji kingekamilisha bloku ambapo 2/3 ya wathibitishaji walikuwa mtandaoni na wakithibitisha kwa uaminifu. Ikiwa bloku haiwezi kuzidi kizingiti cha 2/3, kanuni ya uchaguzi wa uma ingeanza kutumika kubainisha ni mnyororo gani wa kufuata. Hii pia inaunda fursa ya kudumisha mfumo wa uvujaji wa kutofanya kazi unaorejesha mnyororo ambapo >1/3 ya wathibitishaji wanakuwa nje ya mtandao, ingawa kuna baadhi ya mambo fiche ya ziada. + +## Masuala yaliyosalia {#outstanding-issues} + +Tatizo la kupanua ujumlishaji kwa kuongeza idadi ya wathibitishaji kwa kila mtandao mdogo ni kwamba inasababisha mzigo mkubwa zaidi kwenye mtandao wa rika-kwa-rika. Tatizo la kuongeza safu za ujumlishaji ni kwamba ni ngumu sana kuhandisi na huongeza muda wa kusubiri (yaani, inaweza kuchukua muda mrefu zaidi kwa mpendekezaji wa bloku kupata taarifa kutoka kwa wakusanyaji wote wa mitandao midogo). Pia haijulikani wazi jinsi ya kushughulikia hali ambapo kuna wathibitishaji wanaofanya kazi wengi zaidi kwenye mtandao kuliko wanaoweza kuchakatwa kwa urahisi katika kila nafasi, hata kwa ujumlishaji wa saini za BLS. Suluhisho moja linalowezekana ni kwamba, kwa sababu wathibitishaji wote wanathibitisha katika kila nafasi na hakuna kamati chini ya SSF, kikomo cha 32 ETH kwenye salio la ufanisi kinaweza kuondolewa kabisa, ikimaanisha waendeshaji wanaosimamia wathibitishaji wengi wanaweza kuunganisha hisa zao na kuendesha wachache, na hivyo kupunguza idadi ya jumbe ambazo nodi za uthibitishaji zinapaswa kuchakata ili kuhesabu seti nzima ya wathibitishaji. Hii inategemea wenye hisa kubwa kukubali kuunganisha wathibitishaji wao. Inawezekana pia kuweka kikomo kisichobadilika kwenye idadi ya wathibitishaji au kiasi cha ETH iliyowekwa wakati wowote. Hata hivyo, hii inahitaji mfumo fulani wa kuamua ni wathibitishaji gani wanaruhusiwa kushiriki na ni wapi hawaruhusiwi, ambao unaweza kusababisha athari zisizohitajika za pili. + +## Maendeleo ya sasa {#current-progress} + +SSF iko katika awamu ya utafiti. Haitarajiwi kutolewa kwa miaka kadhaa, pengine baada ya maboresho mengine makubwa kama vile [miti ya Verkle](/roadmap/verkle-trees/) na [Danksharding](/roadmap/danksharding/). + +## Masomo zaidi {#further-reading} + +- [Vitalik kuhusu SSF kwenye EDCON 2022](https://www.youtube.com/watch?v=nPgUKNPWXNI) +- [Maelezo ya Vitalik: Njia za kufikia ukamalishaji wa nafasi moja](https://notes.ethereum.org/@vbuterin/single_slot_finality) diff --git a/public/content/translations/sw/roadmap/statelessness/index.md b/public/content/translations/sw/roadmap/statelessness/index.md new file mode 100644 index 00000000000..821da210187 --- /dev/null +++ b/public/content/translations/sw/roadmap/statelessness/index.md @@ -0,0 +1,105 @@ +--- +title: Kutokuwa na Hali, Kuisha kwa Hali na Kuisha kwa Historia +description: Maelezo ya kuisha kwa historia na Ethereum isiyo na hali +lang: sw +--- + +# Kutokuwa na Hali, Kuisha kwa Hali na Kuisha kwa Historia {#statelessness} + +Uwezo wa kuendesha nodi za Ethereum kwenye maunzi ya kawaida ni muhimu kwa ugatuaji wa kweli. Hii ni kwa sababu kuendesha nodi huwapa watumiaji uwezo wa kuthibitisha maelezo kwa kufanya ukaguzi wa kriptografia kwa kujitegemea badala ya kuamini mtu mwingine kuwapa data. Kuendesha nodi huruhusu watumiaji kuwasilisha miamala moja kwa moja kwa mtandao wa wenzao wa Ethereum badala ya kulazimika kumwamini mpatanishi. Ugatuaji hauwezekani ikiwa manufaa haya yanapatikana kwa watumiaji walio na vifaa vyenye gharama kubwa. Badala yake, nodi zinapaswa kuwa na uwezo wa kuendesha kwa mahitaji madogo sana ya usindikaji na kumbukumbu ili ziweze kuendeshwa kwenye simu za mkononi, kompyuta ndogo, au bila kuonekana kwenye kompyuta ya nyumbani. + +Leo, mahitaji ya nafasi ya juu ya disk ni kizuizi kikuu cha kuzuia upatikanaji wa nodes zima. Hii inatokana hasa na hitaji la kuhifadhi sehemu kubwa za data ya hali ya Ethereum. Data hii ya serikali ina taarifa muhimu inayohitajika ili kuchakata kwa usahihi vitalu vipya na miamala. Wakati wa kuandika haya, SSD ya haraka ya TB 2 inapendekezwa kwa ajili ya kuendesha nodi kamili ya Ethereum. Kwa nodi ambayo haisafi data za zamani, mahitaji ya uhifadhi yanakua kwa takriban 14GB kwa wiki, na nodi za kumbukumbu ambazo zinahifadhi data zote tangu mwanzo zinafikia takriban 12 TB (wakati wa kuandika, Februari 2023). + +Hifadhi ngumu za bei nafuu zinaweza kutumika kuhifadhi data za zamani lakini hizo ni polepole sana kuendelea na vitalu vinavyoingia. Kushikilia mifumo ya sasa ya uhifadhi kwa wateja huku kufanya data iwe rahisi na nafuu kuhifadhi ni suluhisho la muda tu na sehemu tu ya tatizo kwa sababu ukuaji wa hali ya Ethereum ni “bila kikomo,” ikimaanisha kwamba mahitaji ya uhifadhi yanaweza kuendelea kuongezeka daima, na maboresho ya kiteknolojia yatahitaji daima kufuata kasi ya ukuaji huu endelevu wa hali. Badala yake, wateja lazima watafute njia mpya za kuthibitisha vitalu na miamala ambayo haitegemei kutafuta data kutoka kwa hifadhidata za ndani. + +## Kupunguza hifadhi kwa nodi {#reducing-storage-for-nodes} + +Kuna njia kadhaa za kupunguza kiasi cha data kila nodi inapaswa kuhifadhi, kila moja ikihitaji itifaki ya msingi ya Ethereum kusasishwa kwa kiwango tofauti: + +- **Kuisha kwa historia**: huwezesha nodi kutupa data ya hali ambayo ni ya zamani kuliko bloku X, lakini haibadilishi jinsi wateja wa Ethereum wanavyoshughulikia data ya hali. +- **Kuisha kwa hali**: huruhusu data ya hali ambayo haitumiki mara kwa mara kutotumika. Data isiyotumika inaweza kupuuzwa na wateja hadi itakaporejeshwa. +- **Kutokuwa na hali dhaifu**: wazalishaji wa bloku pekee ndio wanahitaji ufikiaji wa data kamili ya hali, nodi zingine zinaweza kuthibitisha bloku bila hifadhidata ya hali ya ndani. +- **Kutokuwa na hali thabiti**: hakuna nodi inayohitaji ufikiaji wa data kamili ya hali. + +## Kuisha kwa data {#data-expiry} + +### Kuisha kwa historia {#history-expiry} + +Muda wa kuisha kwa historia hurejelea wateja wanaopogoa data ya zamani ambayo hawatakiwi kuhitaji, ili tu kuhifadhi kiasi kidogo cha data ya kihistoria, na kuacha data ya zamani data mpya inapofika. Kuna sababu mbili wateja wanahitaji data ya kihistoria: kusawazisha na kutoa maombi ya data. Hapo awali, wateja walilazimika kusawazisha kutoka kwa kitalu cha mwanzo, kuthibitisha kuwa kila kitalu kinachofuata ni sahihi hadi kwenye kichwa cha mnyororo. Leo, wateja hutumia "vituo vya ukaguzi hafifu vya udhabiti" kuweka njia yao hadi kwenye kichwa cha mnyororo. Vituo hivi vya ukaguzi ni sehemu zinazoaminika, kama vile kuwa na kizuizi karibu na sasa badala ya mwanzo wa Ethereum. Hii inamaanisha kuwa wateja wanaweza kuacha maelezo yote kabla ya ukaguzi dhaifu wa hivi majuzi wa udhabiti bila kupoteza uwezo wa kusawazisha kwa mkuu wa msururu. Wateja kwa sasa hutuma maombi (yanayowasili kupitia JSON-RPC) ya data ya kihistoria kwa kuinyakua kutoka kwa hifadhidata zao za karibu. Over, kwa kuisha kwa historia hii haitawezekana ikiwa data iliyoombwa imekatwa. Kutoa data hii ya kihistoria ndipo baadhi ya suluhu za kibunifu zinahitajika. + +Chaguo moja ni kwamba wateja waombe data ya kihistoria kutoka kwa wenzao kwa kutumia suluhisho kama vile Mtandao wa Tovuti. Mtandao wa Tovuti ni mtandao unaoendelezwa wa programu kati ya rika-kwa-rika kwa ajili ya kuhudumia data ya kihistoria ambapo kila nodi huhifadhi kipande kidogo cha historia ya Ethereum hivi kwamba historia nzima inapatikana kusambazwa kwenye mtandao. Maombi hutolewa kwa kutafuta wenzao wanaohifadhi data husika na kuiomba kutoka kwao. Vinginevyo, kwa kuwa kwa ujumla ni programu zinazohitaji ufikiaji wa data ya kihistoria, inaweza kuwa jukumu lao kuihifadhi. Kunaweza pia kuwa na watendaji wa kutosha katika nafasi ya Ethereum ambao watakuwa tayari kudumisha kumbukumbu za kihistoria. Inaweza kuwa DAO inayozunguka ili kudhibiti hifadhi ya data ya kihistoria, au kwa hakika itakuwa mchanganyiko wa chaguo hizi zote. Watoa huduma hawa wanaweza kutoa data kwa njia nyingi, kama vile kwenye torrent, FTP, Filecoin au IPFS. + +Kuisha kwa historia kuna utata kwa kiasi fulani kwa sababu hadi sasa Ethereum daima imehakikisha kwa uwazi upatikanaji wa data yoyote ya kihistoria. Usawazishaji kamili kutoka kwa genesis umewezekana kila wakati kama kawaida, hata kama inategemea kuunda upya data ya zamani kutoka kwa vijipicha. Kuisha kwa muda wa historia huhamisha jukumu la kutoa dhamana hii nje ya itifaki ya msingi ya Ethereum. Hii inaweza kuanzisha hatari mpya za udhibiti ikiwa ni mashirika ya serikali kuu ambayo mwishowe huingia ili kutoa data ya kihistoria. + +EIP-4444 bado haiko tayari kusafirishwa, lakini iko chini ya majadiliano ya kina. Cha kufurahisha, changamoto za EIP-4444 sio za kiufundi sana, lakini zaidi ni usimamizi wa jamii. Ili hii kusafirishwa, kunahitaji kuwa na ununuzi wa jumuiya ambao haujumuishi tu makubaliano bali pia ahadi za kuhifadhi na kutoa data ya kihistoria kutoka kwa huluki zinazoaminika. + +Uboreshaji huu haubadilishi jinsi nodi za Ethereum zinavyoshughulikia data ya serikali, inabadilisha tu jinsi data ya kihistoria inavyopatikana. + +### Kuisha kwa hali {#state-expiry} + +Kuisha kwa serikali kunarejelea kuondoa hali kutoka kwa nodi za kibinafsi ikiwa haijafikiwa hivi karibuni. Kuna njia kadhaa hii inaweza kutekelezwa, ikiwa ni pamoja na: + +- **Kuisha kwa kodi**: kutoza "kodi" kwa akaunti na kuzifanya ziishe wakati kodi yao inapofikia sifuri +- **Kuisha kwa wakati**: kufanya akaunti zisitumiwe ikiwa hakuna kusoma/kuandika kwa akaunti hiyo kwa kiasi fulani cha muda + +Muda wa kuisha kwa kukodisha unaweza kuwa ukodishaji wa moja kwa moja unaotozwa kwa akaunti ili kuziweka katika hifadhidata ya hali inayotumika. Kuisha kwa wakati kunaweza kuwa kwa kuhesabu kutoka kwa mwingiliano wa mwisho wa akaunti, au inaweza kuwa kuisha kwa akaunti zote mara kwa mara. Kunaweza pia kuwa na mbinu zinazochanganya vipengele vya miundo msingi ya muda na ukodishaji, kwa mfano akaunti za kibinafsi zitaendelea kutumika ikiwa zinalipa ada kidogo kabla ya kuisha kwa muda kulingana na muda. Kwa kuisha kwa hali ni muhimu kuzingatia kwamba hali isiyotumika **haifutwi**, huhifadhiwa tu kando na hali inayotumika. Hali isiyotumika inaweza kurejeshwa kuwa hali inayotumika. + +Njia ambayo hii ingefanya kazi labda ni kuwa na mti wa serikali kwa vipindi maalum vya wakati (labda ~ mwaka 1). Wakati wowote kipindi kipya kinapoanza, ndivyo huanza mti mpya kabisa wa hali. Mti wa sasa wa hali pekee ndio unaweza kurekebishwa, mingine yote haibadiliki. Node za Ethereum zinatarajiwa tu kushikilia mti wa hali ya sasa na ijayo ya hivi karibuni zaidi. Hii inahitaji njia ya kuweka stempu ya wakati kwenye anwani na kipindi ambacho ipo. Kuna [njia kadhaa zinazowezekana](https://ethereum-magicians.org/t/types-of-resurrection-metadata-in-state-expiry/6607) za kufanya hivi, lakini chaguo kuu linahitaji [anwani kurefushwa](https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485) ili kukidhi maelezo ya ziada na faida ya ziada kwamba anwani ndefu ni salama zaidi. Kipengee cha ramani ya barabara kinachofanya hivi kinaitwa [upanuzi wa nafasi ya anwani](https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485). + +Sawa na kuisha kwa historia, chini ya jukumu la kuisha kwa serikali kwa kuhifadhi data ya serikali ya zamani huondolewa kutoka kwa watumiaji binafsi na kusukumwa kwenye vyombo vingine kama vile watoa huduma wa serikali kuu, wanajamii wenye kujitolea au masuluhisho zaidi yaliyogatuliwa ya siku zijazo kama vile Mtandao wa Tovuti. + +Kuisha kwa hali bado kiko katika awamu ya utafiti na bado hakiko tayari kusafirishwa. Kuisha kwa serikali kunaweza kutokea baadaye kuliko wateja wasio na uraia na kuisha kwa historia kwa sababu masasisho hayo hufanya saizi kubwa za serikali kudhibitiwa kwa urahisi kwa wathibitishaji wengi. + +## Kutokuwa na hali {#statelessness} + +Kutokuwa na utaifa ni kosa kidogo kwa sababu haimaanishi kuwa dhana ya "hali" imeondolewa, lakini inahusisha mabadiliko ya jinsi nodi za Ethereum zinashughulikia data ya serikali. Kutokuwa na hali kwenyewe kuna aina mbili: kutokuwa na hali dhaifu na kutokuwa na hali thabiti. Kutokuwa na utaifa hafifu huwezesha nodi nyingi kwenda bila utaifa kwa kuweka jukumu la hifadhi ya serikali kwa chache. Kutokuwa na hali thabiti huondoa kabisa hitaji la nodi yoyote kuhifadhi data kamili ya hali. Kutokuwa na hali dhaifu na thabiti hutoa faida zifuatazo kwa wathibitishaji wa kawaida: + +- usawazishaji wa karibu papo hapo +- uwezo wa kuthibitisha bloku bila mpangilio +- nodi zinaweza kufanya kazi na mahitaji ya chini sana ya maunzi (k.m., kwenye simu) +- nodi zinaweza kufanya kazi juu ya diski kuu za bei nafuu kwa sababu hakuna usomaji/uandishi wa diski unaohitajika +- inaoana na masasisho yajayo ya usimbaji fiche wa Ethereum + +### Kutokuwa na Hali Dhaifu {#weak-statelessness} + +Ukosefu wa utaifa dhaifu unahusisha mabadiliko kwa njia ya nodi za Ethereum kuthibitisha mabadiliko ya hali, lakini haiondoi kabisa hitaji la kuhifadhi hali katika nodi zote kwenye mtandao. Badala yake, kutokuwa na utaifa dhaifu kunaweka jukumu la uhifadhi wa serikali kwa watayarishaji wa vizuizi, wakati nodi zingine zote kwenye mtandao huthibitisha vizuizi bila kuhifadhi data kamili ya serikali. + +**Katika hali dhaifu ya kutokuwa na utaifa, kupendekeza vitalu kunahitaji ufikiaji wa data kamili ya serikali lakini uthibitishaji wa vizuizi hauhitaji data ya serikali** + +Ili hili litokee, [miti ya Verkle](/roadmap/verkle-trees/) lazima iwe tayari imetekelezwa katika wateja wa Ethereum. Verkle trees ni muundo wa data badala ya kuhifadhi data ya hali ya Ethereum ambayo inaruhusu "mashahidi" wadogo, wa ukubwa usiobadilika kwa data kupitishwa kati ya programu zingine na kutumika kuthibitisha vitalu badala ya kuthibitisha vitalu dhidi ya hifadhidata za ndani. [Utengano wa mpendekezaji-mjengaji](/roadmap/pbs/) pia unahitajika kwa sababu hii inaruhusu wajenzi wa bloku kuwa nodi maalum zenye maunzi yenye nguvu zaidi, na hizo ndizo zinazohitaji ufikiaji wa data kamili ya hali. + + + +Kutokuwa na utaifa kunategemea wajenzi wa vitalu kudumisha nakala ya data kamili ya serikali ili waweze kutoa mashahidi ambao wanaweza kutumika kuthibitisha kizuizi. Nodes nyingine hazihitaji upatikanaji wa data ya serikali, taarifa zote zinazohitajika ili kuthibitisha kuzuia zinapatikana kwa shahidi. Hii inajenga hali ambapo kupendekeza kuzuia ni ghali, lakini kuthibitisha kuzuia ni nafuu, ambayo ina maana waendeshaji wachache wataendesha nodi ya kupendekeza kuzuia. Hata hivyo, ugatuaji wa wapendekeza vitalu sio muhimu mradi washiriki wengi iwezekanavyo wanaweza kuthibitisha kwa uhuru kwamba vitalu wanavyopendekeza ni halali. + +Soma zaidi kwenye dondoo za Dankrad + + +Wapendekeza wa kuzuia hutumia data ya serikali kuunda "mashahidi" - seti ndogo ya data ambayo inathibitisha maadili ya serikali ambayo yanabadilishwa na shughuli katika block. Wahalalishaji wengine hawashikilii serikali, wanahifadhi tu mzizi wa serikali (hashi ya jimbo lote). Wanapokea bloku na shahidi na kuzitumia kusasisha mzizi wao wa hali. Hii inafanya nodi ya kuthibitisha kuwa nyepesi sana. + +Ukosefu wa utaifa dhaifu uko katika hali ya juu ya utafiti, lakini inategemea utengano wa wajenzi wa mapendekezo na Miti ya Verkle kutekelezwa ili mashahidi wadogo waweze kupitishwa kati ya wenzao. Hii ina maana kutokuwa na hali dhaifu labda ni miaka michache mbali na Mtandao Mkuu wa Ethereum. + +### Kutokuwa na hali thabiti {#strong-statelessness} + +Kutokuwa na hali thabiti huondoa hitaji la nodi yoyote kuhifadhi data ya hali. Badala yake, miamala hutumwa na mashahidi ambayo yanaweza kujumlishwa na wazalishaji wa bloku. Wazalishaji wa vitalu basi wana jukumu la kuhifadhi tu hali ambayo inahitajika kwa ajili ya kuzalisha mashahidi kwa akaunti husika. Jukumu la serikali linakaribia kuhamishwa kwa watumiaji, wanapotuma mashahidi na 'orodha za ufikiaji' ili kutangaza ni akaunti zipi na funguo za hifadhi wanazotumia. Hii inaweza kuwezesha nodi nyepesi sana, lakini kuna mabadiliko ikiwa ni pamoja na kuifanya iwe ngumu zaidi kushughulikia na mikataba mahiri. + +Kutokuwa na utaifa kwa nguvu kumechunguzwa na watafiti lakini kwa sasa haitarajiwi kuwa sehemu ya ramani ya Ethereum - kuna uwezekano mkubwa kwamba kutokuwa na utaifa dhaifu kunatosha kwa mahitaji ya kuongeza ya Ethereum. + +## Maendeleo ya sasa {#current-progress} + +Kutokuwa na utaifa dhaifu, kuisha kwa historia na kumalizika kwa serikali zote ziko katika awamu ya utafiti na zinatarajiwa kusafirishwa miaka kadhaa kutoka sasa. Hakuna hakikisho kwamba mapendekezo haya yote yatatekelezwa, kwa mfano, ikiwa mwisho wa serikali utatekelezwa kwanza kunaweza kuwa hakuna haja ya kutekeleza kumalizika kwa historia. Pia kuna vipengee vingine vya ramani ya barabara, kama vile [Miti ya Verkle](/roadmap/verkle-trees) na [Utengano wa mpendekezaji-mjengaji](/roadmap/pbs) vinavyohitaji kukamilishwa kwanza. + +## Masomo zaidi {#further-reading} + +- [Ethereum Isiyo na Hali ni Nini?](https://stateless.fyi/) +- [AMA ya Vitalik kuhusu kutokuwa na hali](https://www.reddit.com/r/ethereum/comments/o9s15i/impromptu_technical_ama_on_statelessness_and/) +- [Nadharia ya usimamizi wa ukubwa wa hali](https://hackmd.io/@vbuterin/state_size_management) +- [Uwekaji mipaka wa hali unaopunguza migogoro ya ufufuo](https://ethresear.ch/t/resurrection-conflict-minimized-state-bounding-take-2/8739) +- [Njia za kufikia kutokuwa na hali na kuisha kwa hali](https://hackmd.io/@vbuterin/state_expiry_paths) +- [Maelezo ya EIP-4444](https://eips.ethereum.org/EIPS/eip-4444) +- [Alex Stokes kuhusu EIP-4444](https://youtu.be/SfDC_qUZaos) +- [Kwa nini ni muhimu sana kutokuwa na hali](https://dankradfeist.de/ethereum/2021/02/14/why-stateless.html) +- [Dondoo za dhana asili ya mteja asiye na hali](https://ethresear.ch/t/the-stateless-client-concept/172) +- [Zaidi kuhusu kuisha kwa hali](https://hackmd.io/@vbuterin/state_size_management#A-more-moderate-solution-state-expiry) +- [Hata zaidi kuhusu kuisha kwa hali](https://hackmd.io/@vbuterin/state_expiry_paths#Option-2-per-epoch-state-expiry) +- [Ukurasa wa Taarifa wa Ethereum Isiyo na Hali](https://stateless.fyi) diff --git a/public/content/translations/sw/roadmap/user-experience/index.md b/public/content/translations/sw/roadmap/user-experience/index.md new file mode 100644 index 00000000000..a6411c3f6b9 --- /dev/null +++ b/public/content/translations/sw/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: Kuboresha uzoefu wa mtumiaji +description: Bado ni vigumu sana kwa watu wengi kutumia Ethereum. Ili kuhamasisha kukubalika na umma, Ethereum inapaswa kupunguza sana vikwazo vya kujiunga. Watumiaji wanapaswa kupata manufaa ya kutumia Ethereum kwa njia iliyogatuliwa, isiyo na ruhusa, na isiyoweza kudhibitiwa, lakini iwe rahisi kama kutumia programu ya kawaida ya web2. +lang: sw +image: /images/roadmap/roadmap-ux.png +alt: "Ramani ya maendeleo ya Ethereum" +template: roadmap +--- + +**Kutumia Ethereum kunahitaji kurahisishwa**; kuanzia kusimamia [funguo](/glossary/#key) na [mikoba](/glossary/#wallet) hadi kuanzisha miamala. Ili kuwezesha matumizi na watu wengi, Ethereum ni lazima iongeze urahisi wa matumizi kwa kiasi kikubwa, ikiwaruhusu watumiaji kupata ufikiaji usio na ruhusa na sugu dhidi ya udhibiti kwa Ethereum kwa urahisi kama wa kutumia programu za [Web2](/glossary/#web2). + +## Zaidi ya vifungu vya mbegu {#no-more-seed-phrases} + +Akaunti za Ethereum zinalindwa na jozi ya funguo zinazotumika kutambua akaunti (ufunguo wa umma) na kutia saini kwenye jumbe (ufunguo wa siri). Ufunguo wa siri ni kama nenosiri kuu. Unaruhusu ufikiaji kamili wa akaunti ya Ethereum. Hii ni njia tofauti ya utendaji kazi kwa watu waliozoea benki na programu za Web2 ambazo husimamia akaunti kwa niaba ya mtumiaji. Ili Ethereum ikubalike na umma bila kutegemea wahusika wengine wa kati, lazima kuwe na njia rahisi na isiyo na usumbufu. Njia hii inapaswa kumwezesha mtumiaji kumiliki rasilimali zake na kudhibiti data yake bila kulazimika kuelewa kriptografia ya funguo za umma na siri au usimamizi wa funguo. + +Suluhisho la hili ni kutumia mikoba ya [mkataba-erevu](/glossary/#smart-contract) ili kuingiliana na Ethereum. Pochi za mkataba janja huunda njia za kulinda akaunti ikiwa funguo zimepotea au kuibiwa, hutoa fursa za kugundua na kuzuia ulaghai vizuri zaidi, na huruhusu pochi kupata utendaji mpya. Ingawa pochi za mkataba janja zipo leo, ni ngumu kuzijenga kwa sababu itifaki ya Ethereum inahitaji kuziunga mkono vizuri zaidi. Usaidizi huu wa ziada unajulikana kama 'account abstraction'. + +Maelezo zaidi kuhusu account abstraction + +## Nodi kwa kila mtu + +Watumiaji wanaoendesha [nodi](/glossary/#node) hawahitaji kuamini wahusika wengine kuwapa data, na wanaweza kuingiliana haraka, kwa faragha, na bila ruhusa na [mnyororo wa bloku](/glossary/#blockchain) wa Ethereum. Hata hivyo, kuendesha nodi kwa sasa kunahitaji maarifa ya kiufundi na nafasi kubwa kwenye diski. Hii inamaanisha watu wengi lazima waamini wapatanishi badala yake. + +Kuna maboresho kadhaa yatakayofanya uendeshaji wa nodi uwe rahisi zaidi na utumie rasilimali chache sana. Njia ya kuhifadhi data itabadilishwa ili kutumia muundo unaotumia nafasi vizuri zaidi unaojulikana kama **Verkle Tree**. Pia, kukiwa na [hali ya kutohifadhi data](/roadmap/statelessness) au [kuisha kwa muda wa data](/roadmap/statelessness/#data-expiry), nodi za Ethereum hazitahitaji kuhifadhi nakala ya data yote ya hali ya Ethereum, na hivyo kupunguza sana mahitaji ya nafasi kwenye diski kuu. [Nodi nyepesi](/developers/docs/nodes-and-clients/light-clients/) zitatoa manufaa mengi ya kuendesha nodi kamili lakini zinaweza kuendeshwa kwa urahisi kwenye simu za mkononi au ndani ya programu rahisi za kivinjari. + +Soma kuhusu Verkle trees + +Kwa maboresho haya, vikwazo vya kuendesha nodi vinapunguzwa na kuwa karibu na sifuri. Watumiaji watafaidika na ufikiaji salama na usio na ruhusa wa Ethereum. Hawatalazimika kutumia nafasi kubwa ya diski au CPU kwenye kompyuta au simu zao, na hawatalazimika kutegemea wahusika wengine kupata data au ufikiaji wa mtandao wanapotumia programu. + +## Maendeleo ya sasa {#current-progress} + +Pochi za mkataba janja tayari zinapatikana, lakini maboresho zaidi yanahitajika ili kuzifanya zigatuliwe na zisiwe na ruhusa iwezekanavyo. EIP-4337 ni pendekezo lililokomaa ambalo halihitaji mabadiliko yoyote kwenye itifaki ya Ethereum. Mkataba-erevu mkuu unaohitajika kwa EIP-4337 **ulizinduliwa Machi 2023**. + +**Hali kamili ya kutohifadhi data bado iko katika hatua ya utafiti** na huenda ikachukua miaka kadhaa kabla ya kutekelezwa. Kuna hatua kadhaa muhimu kuelekea hali kamili ya kutohifadhi data, ikiwemo uondoaji wa data, ambazo zinaweza kutekelezwa mapema zaidi. Vipengele vingine vya mkakati wa maendeleo, kama vile [Verkle Trees](/roadmap/verkle-trees/) na [Mgawanyo wa Mpendekezaji-mjenzi](/roadmap/pbs/) vinahitaji kukamilishwa kwanza. + +Mitandao ya majaribio ya Verkle tree tayari inafanya kazi. Hatua inayofuata ni kuendesha 'client' zinazotumia Verkle-tree kwenye mitandao ya majaribio ya faragha, na kisha ya umma. Unaweza kusaidia kuharakisha maendeleo kwa kupeleka mikataba kwenye mitandao ya majaribio au kuendesha wateja wa mitandao ya majaribio. diff --git a/public/content/translations/sw/roadmap/verkle-trees/index.md b/public/content/translations/sw/roadmap/verkle-trees/index.md new file mode 100644 index 00000000000..b05fc14ef10 --- /dev/null +++ b/public/content/translations/sw/roadmap/verkle-trees/index.md @@ -0,0 +1,64 @@ +--- +title: Miti ya Verkle +description: Maelezo ya kiwango cha juu ya miti ya Verkle na jinsi itakavyotumika kusasisha Ethereum +lang: sw +summaryPoints: + - Gundua miti ya Verkle ni nini + - Soma kwa nini Miti ya Verkle ni sasisho muhimu kwa Ethereum +--- + +# Miti ya Verkle {#verkle-trees} + +Miti ya Verkle (muunganiko wa \"Vector commitment\" na \"Miti ya Merkle\") ni muundo wa data unaoweza kutumika kusasisha nodi za Ethereum ili ziweze kuacha kuhifadhi kiasi kikubwa cha data ya hali bila kupoteza uwezo wa kuthibitisha bloku. + +## Kutokuwa na hali {#statelessness} + +Miti ya Verkle ni hatua muhimu katika njia ya kuelekea wateja wa Ethereum wasio na hali. Wateja wasio na hali ni wale ambao hawahitaji kuhifadhi hifadhidata nzima ya hali ili kuthibitisha bloku zinazoingia. Badala ya kutumia nakala yao ya ndani ya hali ya Ethereum ili kuthibitisha bloku, wateja wasio na hali hutumia \"ushahidi\" kwa data ya hali inayofika na bloku. Ushahidi ni mkusanyiko wa vipande vya mtu binafsi vya data ya hali vinavyohitajika ili kutekeleza seti fulani ya miamala, na uthibitisho wa kriptografia kwamba ushahidi huo ni sehemu halisi ya data kamili. Ushahidi hutumiwa _badala_ ya hifadhidata ya hali. Ili hili lifanye kazi, shahidi wanahitaji kuwa wadogo sana, ili waweze kutangazwa kwa usalama kwenye mtandao kwa wakati ili wathibitishaji wawachakate ndani ya muda uliopangwa wa sekunde 12. Muundo wa sasa wa data ya hali haufai kwa sababu shahidi ni wakubwa mno. Miti ya Verkle hutatua tatizo hili kwa kuwezesha shahidi wadogo, na hivyo kuondoa moja ya vizuizi vikuu kwa wateja wasio na hali. + + + +Kwa sasa wateja wa Ethereum wanatumia muundo wa data unaojulikana kama Patricia Merkle Trie kuhifadhi data yake ya hali. Taarifa kuhusu akaunti za mtu binafsi huhifadhiwa kama majani kwenye trie na jozi za majani hupigwa hashi mara kwa mara hadi hashi moja tu ibaki. Hashi hii ya mwisho inajulikana kama \"mzizi\". Ili kuthibitisha bloku, wateja wa Ethereum hutekeleza miamala yote katika bloku na kusasisha trie yao ya hali ya ndani. Bloku inachukuliwa kuwa halali ikiwa mzizi wa mti wa ndani unafanana na ule uliotolewa na mpendekezaji wa bloku, kwa sababu tofauti zozote katika hesabu iliyofanywa na mpendekezaji wa bloku na nodi inayothibitisha zingesababisha hashi ya mzizi kuwa tofauti kabisa. Tatizo la hili ni kwamba kuthibitisha mnyororo wa bloku kunahitaji kila mteja kuhifadhi trie nzima ya hali kwa bloku ya kichwa na bloku kadhaa za kihistoria (chaguo-msingi katika Geth ni kuweka data ya hali kwa bloku 128 nyuma ya kichwa). Hii inahitaji wateja kuwa na ufikiaji wa nafasi kubwa ya diski, ambayo ni kizuizi cha kuendesha nodi kamili kwenye maunzi ya bei nafuu, ya nguvu ndogo. Suluhisho la hili ni kusasisha trie ya hali iwe muundo wenye ufanisi zaidi (mti wa Verkle) unaoweza kufupishwa kwa kutumia \"ushahidi\" mdogo kwa data unaoweza kushirikiwa badala ya data kamili ya hali. Kupanga upya data ya hali kuwa mti wa Verkle ni hatua ya mwanzo ya kuelekea kwa wateja wasio na hali. + + +## Ushahidi ni nini na kwa nini tunauhitaji? {#what-is-a-witness} + +Kuthibitisha bloku kunamaanisha kutekeleza upya miamala iliyo kwenye bloku, kutumia mabadiliko kwenye trie ya hali ya Ethereum, na kukokotoa hashi mpya ya mzizi. Bloku iliyothibitishwa ni ile ambayo hashi yake ya mzizi wa hali iliyokokotolewa ni sawa na ile iliyotolewa na bloku (kwa sababu hii inamaanisha mpendekezaji wa bloku alifanya kweli hesabu aliyosema alifanya). Katika wateja wa leo wa Ethereum, kusasisha hali kunahitaji ufikiaji wa trie nzima ya hali, ambayo ni muundo mkubwa wa data ambao lazima uhifadhiwe ndani ya nchi. Ushahidi una vipande tu vya data ya hali vinavyohitajika ili kutekeleza miamala kwenye bloku. Kisha mthibitishaji anaweza kutumia vipande hivyo tu kuthibitisha kwamba mpendekezaji wa bloku ametekeleza miamala ya bloku na kusasisha hali kwa usahihi. Hata hivyo, hii inamaanisha kwamba ushahidi unahitaji kuhamishwa kati ya rika kwenye mtandao wa Ethereum haraka vya kutosha kupokewa na kuchakatwa na kila nodi kwa usalama ndani ya muda uliopangwa wa sekunde 12. Ikiwa ushahidi ni mkubwa mno, inaweza kuchukua baadhi ya nodi muda mrefu sana kuupakua na kuendelea na mnyororo. Hii ni nguvu ya uwekaji kati kwa sababu inamaanisha ni nodi tu zenye miunganisho ya haraka ya intaneti zinaweza kushiriki katika kuthibitisha bloku. Kwa miti ya Verkle hakuna haja ya kuwa na hali iliyohifadhiwa kwenye diski kuu yako; _kila kitu_ unachohitaji ili kuthibitisha bloku kimo ndani ya bloku yenyewe. Kwa bahati mbaya, shahidi wanaoweza kuzalishwa kutoka kwa trie za Merkle ni wakubwa mno kusaidia wateja wasio na hali. + +## Kwa nini miti ya Verkle inawezesha shahidi wadogo? {#why-do-verkle-trees-enable-smaller-witnesses} + +Muundo wa Merkle Trie hufanya ukubwa wa shahidi kuwa mkubwa sana - mkubwa mno kutangazwa kwa usalama kati ya rika ndani ya muda uliopangwa wa sekunde 12. Hii ni kwa sababu ushahidi ni njia inayounganisha data, ambayo inashikiliwa kwenye majani, na hashi ya mzizi. Ili kuthibitisha data ni muhimu kuwa na sio tu hashi zote za kati zinazounganisha kila jani na mzizi, bali pia nodi zote \"ndugu\". Kila nodi katika uthibitisho ina ndugu ambayo hupigwa hashi nayo ili kuunda hashi inayofuata juu ya trie. Hii ni data nyingi. Miti ya Verkle inapunguza ukubwa wa ushahidi kwa kufupisha umbali kati ya majani ya mti na mzizi wake na pia kuondoa hitaji la kutoa nodi ndugu kwa ajili ya kuthibitisha hashi ya mzizi. Ufanisi zaidi wa nafasi utapatikana kwa kutumia mpango wenye nguvu wa ahadi ya polinomiali badala ya ahadi ya vekta ya mtindo wa hashi. Ahadi ya polinomiali inaruhusu ushahidi kuwa na ukubwa maalum bila kujali idadi ya majani inayothibitisha. + +Chini ya mpango wa ahadi ya polinomiali, shahidi wana ukubwa unaoweza kudhibitiwa ambao unaweza kuhamishwa kwa urahisi kwenye mtandao wa rika-kwa-rika. Hii inaruhusu wateja kuthibitisha mabadiliko ya hali katika kila bloku kwa kiwango kidogo cha data. + + + +Ukubwa wa ushahidi hutofautiana kulingana na idadi ya majani inayojumuisha. Tukichukulia kuwa ushahidi unashughulikia majani 1000, ushahidi kwa trie ya Merkle utakuwa takriban MB 3.5 (tukichukulia viwango 7 vya trie). Ushahidi kwa data sawa katika mti wa Verkle (tukichukulia viwango 4 vya mti) utakuwa takriban kB 150 - **takriban 23x ndogo zaidi**. Upungufu huu wa ukubwa wa ushahidi utaruhusu shahidi wa wateja wasio na hali kuwa wadogo kwa kukubalika. Shahidi wa polinomiali ni kB 0.128 - 1 kulingana na ahadi maalum ya polinomiali inayotumiwa. + + +## Muundo wa mti wa Verkle ni upi? {#what-is-the-structure-of-a-verkle-tree} + +Miti ya Verkle ni jozi za `(ufunguo, thamani)` ambapo funguo ni elementi za baiti-32 zinazoundwa na _shina_ la baiti-31 na _kiambishi tamati_ cha baiti moja. Funguo hizi zimepangwa katika nodi za _kiendelezi_ na nodi za _ndani_. Nodi za kiendelezi zinawakilisha shina moja kwa watoto 256 wenye viambishi tamati tofauti. Nodi za ndani pia zina watoto 256, lakini zinaweza kuwa nodi zingine za kiendelezi. Tofauti kuu kati ya muundo wa mti wa Verkle na mti wa Merkle ni kwamba mti wa Verkle ni bapa zaidi, ikimaanisha kuna nodi chache za kati zinazounganisha jani na mzizi, na hivyo data kidogo inahitajika kuzalisha uthibitisho. + +![](./verkle.png) + +[Soma zaidi kuhusu muundo wa miti ya Verkle](https://blog.ethereum.org/2021/12/02/verkle-tree-structure) + +## Maendeleo ya sasa {#current-progress} + +Testnet za miti ya Verkle tayari ziko hewani na zinafanya kazi, lakini bado kuna masasisho makubwa ambayo hayajafanywa kwa wateja ambayo yanahitajika ili kusaidia miti ya Verkle. Unaweza kusaidia kuharakisha maendeleo kwa kupeleka mikataba kwenye mitandao ya majaribio au kuendesha wateja wa mitandao ya majaribio. + +[Tazama Guillaume Ballet akielezea testnet ya Condrieu Verkle](https://www.youtube.com/watch?v=cPLHFBeC0Vg) (kumbuka kuwa testnet ya Condrieu ilikuwa ya uthibitishaji-wa-kazi na sasa imebadilishwa na testnet ya Verkle Gen Devnet 6). + +## Masomo zaidi {#further-reading} + +- [Miti ya Verkle kwa ajili ya Kutokuwa na Hali](https://verkle.info/) +- [Dankrad Feist akielezea miti ya Verkle kwenye PEEPanEIP](https://www.youtube.com/watch?v=RGJOQHzg3UQ) +- [Miti ya Verkle kwa Sisi Wengine](https://web.archive.org/web/20250124132255/https://research.2077.xyz/verkle-trees) +- [Anatomia ya Uthibitisho wa Verkle](https://ihagopian.com/posts/anatomy-of-a-verkle-proof) +- [Guillaume Ballet akielezea miti ya Verkle kwenye ETHGlobal](https://www.youtube.com/watch?v=f7bEtX3Z57o) +- [\"Jinsi miti ya Verkle inavyoifanya Ethereum iwe nyepesi na bora\" na Guillaume Ballet kwenye Devcon 6](https://www.youtube.com/watch?v=Q7rStTKwuYs) +- [Piper Merriam kuhusu wateja wasio na hali kutoka ETHDenver 2020](https://www.youtube.com/watch?v=0yiZJNciIJ4) +- [Dankrad Fiest akielezea miti ya Verkle na kutokuwa na hali kwenye podikasti ya Zero Knowledge](https://zeroknowledge.fm/podcast/202/) +- [Vitalik Buterin kuhusu miti ya Verkle](https://vitalik.eth.limo/general/2021/06/18/verkle.html) +- [Dankrad Feist kuhusu miti ya Verkle](https://dankradfeist.de/ethereum/2021/06/18/verkle-trie-for-eth1.html) +- [Nyaraka za EIP za mti wa Verkle](https://notes.ethereum.org/@vbuterin/verkle_tree_eip#Illustration) diff --git a/public/content/translations/sw/security/index.md b/public/content/translations/sw/security/index.md new file mode 100644 index 00000000000..d7eefec7597 --- /dev/null +++ b/public/content/translations/sw/security/index.md @@ -0,0 +1,305 @@ +--- +title: Usalama wa Ethereum na udhibiti wa matapeli +description: Kukaa salama kwenye Ethereum +lang: sw +--- + +# Usalama wa Ethereum na kuzuia ulaghai {#introduction} + +Kukuwa kwa hamasa katika fedha za kidijitali (cryptocurrency) kunaleta pia kuongezeka kwa hatari kutoka kwa matapeli na wavamizi mtandaoni Makala hii inaeleza mbinu bora za kupunguza hatari hizi. + +**Kumbuka: Hakuna mtu yeyote kutoka ethereum.org kuwasiliana nawe. Barua pepe zinazosema zimetoka kwa msaada rasmi wa Ethereum.** + + + +## Usalama wa Kripto 101 {#crypto-security} + +### Ongeza maarifa yako {#level-up-your-knowledge} + +Kutoelewa jinsi sarafu ya kidijitali inavyofanya kazi kunaweza kusababisha makosa yanayogharimu pesa nyingi. Kwa mfano, ikiwa mtu akiigiza kama wakala wa huduma kwa wateja ambaye anaweza kurudisha ETH iliyopotea kwa kubadilishana na funguo zako binafsi, anawaibia watu ambao hawaelewi kwamba Ethereum ni mtandao usio na kituo kimoja na hauwezi kufanya huduma kama hiyo. Kujipa elimu juu ya Ethereum ni jambo zuri. + + + Ethereum ni nini? + + + + Ether ni nini? + + + +## Usalama wa mkoba {#wallet-security} + +### Usitoe funguo zako binafsi {#protect-private-keys} + +**Kamwe, kwa sababu yoyote ile, usishiriki funguo zako binafsi!** + +Funguo binafsi wa mkoba wako ni kama usalama wa mkoba wako wa Ethereum. Ndiyo pekee inayozuia mtu anayeijua anwani ya mkoba wako kuondoa mali zote zilizoko ndani yake! + + + Mkoba wa Ethereum ni nini? + + +#### Usipige picha za skrini za misemo yako ya mbegu/funguo zako binafsi {#screenshot-private-keys} + +Kuchukua picha za maneno yako ya siri au funguo zako binafsi husawazisha taarifa hizo na mtoa huduma wa hifadhi mtandaoni , jambo ambalo linaweza kufanya zifikike kwa wavamizi. Kupata funguo binafsi kutoka kwenye hifadhi ya mtandao ni njia ya kawaida wanayovamia kutumia kuingilia akaunti. + +### Tumia mkoba wa maunzi {#use-hardware-wallet} + +Mkoba wa maunzi hutoa hifadhi ya nje ya mtandao kwa funguo binafsi. Yanachukuliwa kuwa chaguo salama zaidi la mkoba kwa kuhifadhi funguo zako binafsi: funguo zako binafsi hazigusi mtandao kamwe na zinabaki kwenye kifaa chako kikamilifu. + +Kuweka funguo binafsi nje ya mtandao (offline) kunapunguza sana hatari ya kuibiwa, hata kama mvamizi atapata udhibiti wa kompyuta yako. + +#### Jaribu mkoba wa maunzi: {#try-hardware-wallet} + +- [Ledger](https://www.ledger.com/) +- [Trezor](https://trezor.io/) + +### Hakiki miamala mara mbili kabla ya kutuma {#double-check-transactions} + +Kutuma sarafu ya kidijitali kwa anwani ya mkoba isiyo sahihi kwa bahati mbaya ni kosa la kawaida. **Muamala uliotumwa kwenye Ethereum hauwezi kubadilishwa.** Isipokuwa unajua mmiliki wa anwani hiyo na unaweza kumshawishi arudishe fedha zako, hutaweza kurejesha fedha zako. + +Daima hakikisha kuwa anwani yako muamala inalingana kabisa na anwani ya mpokeaji unaokusudia kabla ya kutuma muamala. +Ni desturi nzuri wakati unapoingiliana na mkataba mahiri. + +### Weka mipaka ya matumizi ya mkataba mahiri {#spend-limits} + +Unahusiana na mikataba mahiri, usiruhusu mipaka isiyo na kikomo ya matumizi. Kikomo kisicho na mwisho cha matumizi kinaweza kumruhusu mkataba mahiri kuondoa mali zote kwenye mkoba wako. Badala yake, weka mipaka ya matumizi kwa kiasi tu kwa muamala huo. + +Mikoba mingi ya Ethereum inatoa ulinzi wa mipaka ili kulinda akaunti dhidi ya udukuzi wa mali zake. + +[Jinsi ya kubatilisha ufikiaji wa mkataba mahiri kwa fedha zako za kripto](/guides/how-to-revoke-token-access/) + + + +## Ulaghai wa kawaida {#common-scams} + +Haiwezekani kuzuia matapeli kabisa, lakini tunaweza kupunguza ufanisi wao kwa kuwa makini na mbinu zao za mara kwa mara. Kuna aina nyingi za ulaghai huu, lakini kwa ujumla hufuata mifumo sawa kwa kiwango kikubwa. Kama hakuna kingine, kumbuka: + +- daima kuwa na mashaka +- hakuna mtu atakupa ETH bure au kwa bei ndogo +- hakuna anayehitaji kupata funguo zako binafsi au taarifa zako za kibinafsi + +### Ulaghai wa kuhadaa kupitia matangazo ya Twitter {#ad-phishing} + +![Ulaghai wa kuhadaa kwa viungo vya Twitter](./twitterPhishingScam.png) + +Kuna njia ya kudanganya kipengele cha onyesho la kiungo cha Twitter (kinachojulikana pia kama X) ili kumudu kudanganya watumiaji kufikiri kwamba wanatembelea tovuti halali. Mbinu hii hutumia mfumo wa Twitter wa kuunda onyesho la URL zinazoshirikiwa kwenye tweets, na kuonyesha _kutoka ethereum.org_ kwa mfano (kama inavyoonyeshwa hapo juu), wakati kwa kweli wanaelekezwa kwenye tovuti hasidi. + +Daima hakikisha uko kwenye kikoa sahihi, hasa baada ya kubonyeza kiungo. + +[Maelezo zaidi hapa](https://harrydenley.com/faking-twitter-unfurling). + +### Ulaghai wa zawadi {#giveaway} + +Moja ya ulaghai unaotokea mara kwa mara katika sarafu ya kidijitali ni udanganyifu wa zawadi. Ulaghai wa zawadi unaweza kujitokeza kwa njia nyingi, lakini wazo kuu ni kwamba ukituma ETH kwenye anuani ya pochi iliyotolewa, utarudishiwa ETH yako ikiwa imeongezwa maradufu._Kwa sababu hii, pia inajulikana kama ulaghai wa 2-kwa-1._ + +Ulaghai huu kwa kawaida huweka muda mfupi wa kudai zawadi ili kuunda hali ya dharura ya uongo. + +### Udukuzi wa mitandao ya kijamii {#social-media-hacks} + +Toleo kubwa la hali hii lilitokea Julai 2020, wakati akaunti za Twitter za watu maarufu na taasisi zilidukuliwa. Mdukuzi alichapisha kwa wakati mmoja tangazo la zawadi ya Bitcoin kwenye akaunti zilizodukuliwa. Ingawa machapisho ya ulaghai yaligunduliwa na kufutwa haraka, wadukuzi bado waliweza kuiba Bitcoin 11 (sawa na dola 500,000 kufikia Septemba 2021). + +![Ulaghai kwenye Twitter](./appleTwitterScam.png) + +### Zawadi za watu mashuhuri {#celebrity-giveaway} + +Zawadi bandia za watu maarufu ni aina nyingine ya kawaida ambayo ulaghai wa zawadi huchukua. Walaghai hutumia video zilizorekodiwa za mahojiano au hotuba za mkutano za mtu maarufu na kuzirusha mubashara kwenye YouTube — wakifanya ionekane kana kwamba mtu huyo maarufu anatoa mahojiano ya moja kwa moja akitangaza zawadi ya sarafu ya kidijitali. + +Vitalik Buterin hutumiwa mara nyingi zaidi katika ulaghai huu, lakini watu wengine maarufu katika tasnia ya sarafu ya kidijitali pia hutumiwa (k.m., Elon Musk au Charles Hoskinson). Kumjumuisha mtu maarufu kunafanya ulaghai wa matangazo ya moja kwa moja uonekane halali (inaweza kuonekana ya kutiliwa shaka, lakini kwa kuwa Vitalik anahusishwa, basi lazima iwe sawa!). + +**Zawadi za mtandaoni zinazohusisha kutuma fedha daima ni ulaghai. Ukizituma fedha zako kwenye akaunti hizi, utazipoteza milele.** + +![Ulaghai kwenye YouTube](./youtubeScam.png) + +### Ulaghai wa usaidizi {#support-scams} + +Sarafu ya kidijitali ni teknolojia mpya na isiyoeleweka vizuri. Ulaghai wa kawaida unaotumia hali hii ni ulaghai wa msaada, ambapo walaghai huiga wahudumu wa msaada wa pochi maarufu, soko la sarafu, au mnyororo wa kumbukumbu. + +Sehemu kubwa ya majadiliano kuhusu Ethereum hufanyika kwenye Discord. Walaghai wa msaada kwa kawaida hupata lengo lao kwa kutafuta maswali ya msaada kwenye chaneli za umma za Discord kisha kumtumia mtu aliyeuliza ujumbe wa faragha ukimpa msaada. Walaghai wa msaada kwa kawaida hupata lengo lao kwa kutafuta maswali ya msaada kwenye chaneli za umma za Discord kisha kumtumia mtu aliyeuliza ujumbe wa faragha ukimpa msaada. + +![Ulaghai wa usaidizi kwenye Discord](./discordScam.png) + +Kama kanuni ya jumla, wafanyakazi hawatawasiliana nawe kupitia njia za faragha zisizo rasmi. Baadhi ya mambo rahisi ya kuzingatia unaposimamia msaada: + +- Usiweze kushiriki funguo zako za faragha, misemo ya mbegu, au nywila zako +- Usiruhusu mtu yeyote kupata ufikiaji wa mbali kwenye kompyuta yako. +- Usiweze kuwasiliana nje ya njia zilizotengwa na taasisi. + + + + + + Tahadhari: ingawa ulaghai wa aina ya usaidizi mara nyingi hutokea kwenye Discord, unaweza pia kutokea kwa wingi kwenye programu zozote za mazungumzo ambapo majadiliano ya sarafu ya kidijitali hufanyika, ikiwa ni pamoja na barua pepe. + + + + +### Ulaghai wa tokeni ya 'Eth2' {#eth2-token-scam} + +Katika kuelekea [Muungano](/roadmap/merge/), walaghai walitumia fursa ya mkanganyiko kuhusu neno 'Eth2' kujaribu kuwafanya watumiaji wabadilishe ETH zao kwa tokeni ya 'ETH2'. Hakuna tokeni ya 'ETH2', na hakuna tokeni nyingine halali iliyotambulishwa wakati wa The Merge. ETH uliyokuwa nayo kabla ya The Merge ni ile ile ETH sasa. **Hakuna haja ya kuchukua hatua yoyote inayohusiana na ETH yako ili kuendana na mabadiliko kutoka uthibitishaji-wa-kazi kwenda uthibitishaji-wa-hisa**. + +Walaghai wanaweza kujifanya kama "watoa msaada", wakikuambia kwamba ukiweka ETH yako, utapokea 'ETH2'. Hakuna [msaada rasmi wa Ethereum](/community/support/), na hakuna tokeni mpya. Usishiriki misemo ya mbegu ya pochi yako na mtu yeyote. + +_Kumbuka: Kuna tokeni/tiketi ambazo zinatokana na tokeni nyingine ambazo zinaweza kuwakilisha ETH iliyowekwa hisa (k.m., rETH kutoka Rocket Pool, stETH kutoka Lido, ETH2 kutoka Coinbase), lakini hizi si kitu ambacho unahitaji \"kuhamia.\"_ + +### Ulaghai wa kuhadaa {#phishing-scams} + +Ulaghai wa utapeli (phishing) ni njia nyingine inayoongezeka ya kawaida ambayo walaghai hutumia kujaribu kuiba fedha zilizo kwenye pochi yako. + +SBaadhi ya barua pepe za utapeli hutuuliza watumiaji kubofya viungo vinavyoelekeza kwenye tovuti za bandia, zikioomba wape misemo yao ya mbegu, kuweka upya nywila zao au kutuma ETH. Wengine wanaweza kuomba usiweze kufunga programu hatarishi bila kujua ili kuathiri kompyuta yako na kuwapa walaghai ufikiaji wa faili za kompyuta yako. + +Ikiwa utapokea barua pepe kutoka kwa mtumaji usiyemjua, kumbuka: + +- Usifungue kamwe kiungo au kiambatisho kutoka kwa anwani za barua pepe usizozitambua +- Kamwe usimpe mtu yeyote taarifa zako za kibinafsi au neno siri +- Futa barua pepe kutoka kwa wasajili usiowajua + +[Zaidi kuhusu kuepuka ulaghai wa kuhadaa](https://support.mycrypto.com/staying-safe/mycrypto-protips-how-not-to-get-scammed-during-ico) + +### Ulaghai wa madalali wa biashara ya kripto {#broker-scams} + +Madlali wa ulaghai wa biashara ya sarafu hujijulisha kama madalali maalum wa sarafu ambao wataahidi kuchukua fedha zako na kuwekeza kwa niaba yako. Baada ya mtapeli kupokea fedha zako, anaweza kuendelea kukudanganya, akiomba utume fedha zaidi ili usikose faida za ziada za uwekezaji, au anaweza kupotea kabisa. + +Wadanganyifu hawa mara nyingi hupata walengwa kwa kutumia akaunti bandia kwenye YouTube kuanzisha mazungumzo yanayoonekana ya kawaida kuhusu ‘mdalali’ huyo. Mara nyingi mazungumzo haya hupigiwa kura nyingi ili yaonekane ni halali, lakini kura zote zinatoka kwenye akaunti za boti. + +**Usiweke imani kwa watu mtandaoni kuwekeza kwa niaba yako. Utapoteza sarafu yako ya kidijitali.** + +![Ulaghai wa dalali wa biashara kwenye YouTube](./brokerScam.png) + +### Ulaghai wa madimbwi ya uchimbaji kripto {#mining-pool-scams} + +Kuanzia Septemba 2022, uchimbaji kwenye Ethereum hauwezekani tena. Hata hivyo, udanganyifu wa makundi ya uchimbaji bado upo. Ulaghai wa madimbwi ya uchimbaji huhusisha watu wanaowasiliana nawe bila kualikwa na kudai kuwa unaweza kupata faida kubwa kwa kujiunga na dimbwi la uchimbaji la Ethereum. Wezi watafanya madai na kukaa katika mawasiliano nawe kwa muda wote. Kimsingi, mtapeli atajaribu kukushawishi unapojiunga na kundi la uchimbaji wa Ethereum, sarafu yako ya kidijitali itatumika kuunda ETH na utapokea gawio la ETH. Baada yake utaona kuwa sarafu yako inazalisha faida ndogo ndogo. Hii ni kwa ajili ya kukushawishi uwekeze zaidi. Mwishowe, fedha zako zote zitatumwa kwenye anwani isiyojulikana, na wezi atapotea au katika baadhi ya kesi ataendelea kukaa katika mawasiliano, kama ilivyotokea katika kesi ya hivi karibuni. + +Hitimisho: kuwa makini na watu mitandaoni ya kijamii wakikuomba ujiunge na kundi la uchimbaji. Ukipoteza sarafu yako, basi imepotea. + +Baadhi ya mambo ya kukumbuka: + +- Kuwa makini na mtu yeyote utakaye Ongea naye juu ya mbinu za kuingiza fedha kupitia sarafu yako +- Fanya utafiti wako kuhusu uwekaji hisa, madimbwi ya ukwasi, au njia zingine za kuwekeza kripto yako +- Ni nadra sana, ikiwa zikistahili kabisa, kwamba mipango kama hiyo ni halali. Kama zingekuwa halali, labda zingekuwa maarufu na ungeshasikia kuhusu hizo. + +[Mtu apoteza $200k katika ulaghai wa dimbwi la uchimbaji](https://www.reddit.com/r/CoinBase/comments/r0qe0e/scam_or_possible_incredible_payout/) + +### Ulaghai wa Airdrop {#airdrop-scams} + +Udanganyifu wa Airdrop unahusisha mradi wa udanganyifu kutuma mali (NFT, token) kwenye mkoba wako na kukuongoza kwenye tovuti ya ulaghai ili kudai mali iliyotumwa. Utaulizwa uingie kwenye mkoba wako wa Ethereum na ‘kuidhinisha’ muamala unapo jaribu kudai mali hiyo. Muamala huu unahatarisha akaunti yako kwa kutuma funguo zako za umma na binafsi kwa mlaghai. Aina nyingine ya ulaghai huu inaweza kukufanya uthibitishe muamala unaotuma fedha kwenye akaunti ya wezi. + +[Zaidi kuhusu ulaghai wa airdrop](https://www.youtube.com/watch?v=LLL_nQp1lGk) + + + +## Usalama wa wavuti 101 {#web-security} + +### Tumia nywila dhabiti {#use-strong-passwords} + +[Zaidi ya 80% ya udukuzi wa akaunti husababishwa na nywila dhaifu au zilizoibwa](https://cloudnine.com/ediscoverydaily/electronic-discovery/80-percent-hacking-related-breaches-related-password-issues-cybersecurity-trends/). Mchanganyiko mrefu wa herufi, nambari na alama utasaidia kulinda data zako. + +Kosa la kawaida ni kutumia mchanganyiko wa maneno machache ya kawaida na yanayohusiana. Neno siri kama hizi hazina usalama kwa sababu zinakabiliwa na mbinu ya udukuzi inayoitwa dictionary attack. + +```md +Mfano wa nenosiri dhaifu: CuteFluffyKittens! + +Mfano wa nenosiri dhabiti: ymv\*azu.EAC8eyp8umf +``` + +Kosa lingine la kawaida ni kutumia nywila ambazo zinaweza kukisiwa kwa urahisi au kugunduliwa kupitia [mbinu za kijamii (social engineering)](https://wikipedia.org/wiki/Social_engineering_\(security\)). Kujumuisha jina la ukoo la mama yako kabla ya ndoa, majina ya watoto wako au wanyama wa kipenzi, au tarehe za kuzaliwa kwenye nywila yako huongeza hatari ya kudukuliwa. + +#### Mbinu bora za nywila: {#good-password-practices} + +- Tengeneza nywila ziwe ndefu kadri inavyoruhusiwa na programu yako ya kutengeneza nywila au fomu unayoijaza. +- Tumia mchanganyiko wa herufi kubwa, herufi ndogo, namba na alama. +- Usitumie taarifa binafsi, kama vile majina ya familia, katika nenosiri lako. +- Epuka maneno ya kawaida. + +[Zaidi kuhusu kuunda nywila dhabiti](https://terranovasecurity.com/how-to-create-a-strong-password-in-7-easy-steps/) + +### Tumia nywila za kipekee kwa kila kitu {#use-unique-passwords} + +Nenosiri dhabiti ambalo limefichuliwa katika uvunjaji wa data sio nenosiri dhabiti tena. Tovuti ya [Have I Been Pwned](https://haveibeenpwned.com) inakuruhusu kuangalia kama akaunti zako zilihusika katika uvunjaji wowote wa data za umma. Ikiwa zimehusika, **badilisha nywila hizo mara moja**. Kutumia nywila za kipekee kwa kila akaunti hupunguza hatari ya wadukuzi kupata ufikiaji wa akaunti zako zote ikiwa moja ya nywila zako itaathirika. + +### Tumia kidhibiti nenosiri {#use-password-manager} + + + + + + Kutumia kidhibiti nenosiri hukusaidia kuunda nywila dhabiti, za kipekee na kuzikumbuka! Tunapendekeza sana utumie kimoja, na vingi ni vya bure! + + + + +Kukumbuka nywila dhabiti, za kipekee kwa kila akaunti uliyonayo si jambo rahisi. Kidhibiti nenosiri hutoa hifadhi salama, iliyosimbwa kwa njia fiche kwa nywila zako zote ambazo unaweza kuzifikia kupitia nenosiri kuu moja dhabiti. Pia hupendekeza nywila dhabiti unapojisajili kwa huduma mpya, kwa hivyo huhitaji kuunda zako mwenyewe. Vidhibiti vingi vya nywila pia vitakuambia ikiwa umehusika katika uvunjaji wa data, na kukuruhusu kubadilisha nywila kabla ya mashambulio yoyote hasidi. + +![Mfano wa kutumia kidhibiti nenosiri](./passwordManager.png) + +#### Jaribu kidhibiti nenosiri: {#try-password-manager} + +- [Bitwarden](https://bitwarden.com/) +- [KeePass](https://keepass.info/) +- [1Password](https://1password.com/) +- Au angalia [vidhibiti nenosiri vingine vinavyopendekezwa](https://www.privacytools.io/secure-password-manager) + +### Tumia Uthibitishaji wa Vipengele Viwili {#two-factor-authentication} + +Wakati mwingine unaweza kuulizwa kuthibitisha utambulisho wako kupitia ithibati za kipekee. Hivi vinajulikana kama **vipengele**. Vipengele vikuu vitatu ni: + +- Kitu unachojua (kama vile nenosiri au swali la usalama) +- Kitu wewe ulivyo (kama vile alama ya kidole au skana ya mboni ya jicho/uso) +- Kitu unachomiliki (ufunguo wa usalama au programu ya uthibitishaji kwenye simu yako) + +Kutumia **Uthibitishaji wa Vipengele Viwili (2FA)** hutoa _kipengele cha ziada cha usalama_ kwa akaunti zako za mtandaoni. 2FA huhakikisha kwamba kuwa na nenosiri lako tu haitoshi kufikia akaunti. Kwa kawaida, kipengele cha pili ni msimbo wa tarakimu 6 unaobadilika, unaojulikana kama **nenosiri la mara moja la kutegemea muda (TOTP)**, ambalo unaweza kulipata kupitia programu ya uthibitishaji kama vile Google Authenticator au Authy. Hizi hufanya kazi kama kipengele cha \"kitu unachomiliki\" kwa sababu mbegu inayozalisha msimbo wa muda huhifadhiwa kwenye kifaa chako. + + + + + + Kumbuka: Kutumia 2FA inayotegemea SMS iko katika hatari ya udukuzi wa SIM (SIM jacking) na si salama. Kwa usalama bora zaidi, tumia huduma kama Google Authenticator au Authy. + + + + +#### Funguo za usalama {#security-keys} + +Ufunguo wa usalama ni aina ya juu zaidi na salama zaidi ya 2FA. Funguo za usalama ni vifaa halisi vya uthibitishaji vya maunzi ambavyo hufanya kazi kama programu za uthibitishaji. Kutumia ufunguo wa usalama ndiyo njia salama zaidi ya kutumia 2FA. Nyingi za funguo hizi hutumia kiwango cha FIDO Universal 2nd Factor (U2F). [Jifunze zaidi kuhusu FIDO U2F](https://www.yubico.com/resources/glossary/fido-u2f/). + +Tazama zaidi kuhusu 2FA: + + + +### Ondoa viendelezi vya kivinjari {#uninstall-browser-extensions} + +Nyongeza za kivinjari, kama vile nyongeza za Chrome au Add-ons za Firefox, zinaweza kuboresha utendaji wa kivinjari lakini pia zina hatari. Kiasili, nyongeza nyingi za kivinjari hutuuliza ruhusa ya "kusoma na kubadilisha data za tovuti", ikiruhusu kufanya karibu kila kitu na taarifa zako. Nyongeza za Chrome huboreshwa kila wakati kiotomatiki, hivyo nyongeza iliyokuwa salama hapo awali inaweza kuongezwa baadaye na msimbo hatari. Zaidi ya nyongeza nyingi za tovuti hazijaribui kuiba taarifa zako, lakini unapaswa kuwa makini kwamba zinaweza kufanya hivyo. + +#### Kuwa salama kwa: {#browser-extension-safety} + +- Sakinisha tu viendelezi vya kivinjari kutoka vyanzo vinavyoaminika +- Kuondoa nyongeza za kivinjari ambazo hazitumiki. +- Sakinisha viendelezi vya Chrome ndani ya kifaa ili kusitisha masasisho ya kiotomatiki (Ya Juu) + +[Zaidi kuhusu hatari za viendelezi vya kivinjari](https://www.kaspersky.co.uk/blog/browser-extensions-security/12750/) + + + +## Masomo zaidi {#further-reading} + +### Usalama wa wavuti {#reading-web-security} + +- [Hadi vifaa milioni 3 vimeambukizwa na programu hasidi kupitia programu-jalizi za Chrome na Edge](https://arstechnica.com/information-technology/2020/12/up-to-3-million-devices-infected-by-malware-laced-chrome-and-edge-add-ons/) - _Dan Goodin_ +- [Jinsi ya Kuunda Nenosiri Dhabiti — Ambalo Hutalisahau](https://www.avg.com/en/signal/how-to-create-a-strong-password-that-you-wont-forget) - _AVG_ +- [Ufunguo wa usalama ni nini?](https://help.coinbase.com/en/coinbase/getting-started/verify-my-account/security-keys-faq) - _Coinbase_ + +### Usalama wa kripto {#reading-crypto-security} + +- [Kujilinda Mwenyewe na Fedha Zako](https://support.mycrypto.com/staying-safe/protecting-yourself-and-your-funds) - _MyCrypto_ +- [Masuala ya usalama katika programu za kawaida za mawasiliano ya kripto](https://docs.salusec.io/untitled/web3-penetration-test/risks-in-social-media) - _Salus_ +- [Mwongozo wa Usalama kwa Wajinga na Watu Wenye Akili Pia](https://medium.com/mycrypto/mycryptos-security-guide-for-dummies-and-smart-people-too-ab178299c82e) - _MyCrypto_ +- [Usalama wa Kripto: Nywila na Uthibitishaji](https://www.youtube.com/watch?v=m8jlnZuV1i4) - _Andreas M. Antonopoulos_ + +### Elimu kuhusu ulaghai {#reading-scam-education} + +- [Mwongozo: Jinsi ya kutambua tokeni za ulaghai](/guides/how-to-id-scam-tokens/) +- [Kuwa Salama: Ulaghai wa Kawaida](https://support.mycrypto.com/staying-safe/common-scams) - _MyCrypto_ +- [Kuepuka Ulaghai](https://bitcoin.org/en/scams) - _Bitcoin.org_ +- [Uzi wa Twitter kuhusu barua pepe na jumbe za kawaida za ulaghai wa kuhadaa katika ulimwengu wa kripto](https://twitter.com/tayvano_/status/1516225457640787969) - _Taylor Monahan_ + + diff --git a/public/content/translations/sw/smart-contracts/index.md b/public/content/translations/sw/smart-contracts/index.md new file mode 100644 index 00000000000..4151f1050a2 --- /dev/null +++ b/public/content/translations/sw/smart-contracts/index.md @@ -0,0 +1,90 @@ +--- +title: Mikataba erevu +metaTitle: "Mikataba-erevu: Ni nini na faida zake" +description: Utangulizi usio wa kiufundi wa mkataba erevu +lang: sw +--- + +# Utangulizi wa mikataba-erevu {#introduction-to-smart-contracts} + +
+ +
+ +Mikataba ya busara ndio msingi wa safu ya maombi ya Ethereum. Hizi ni programu za kompyuta zilizohifadhiwa kwenye [mnyororo wa bloku](/glossary/#blockchain) zinazofuata mantiki ya "ikiwa hii basi ile", na zimehakikishwa kutekelezwa kulingana na sheria zilizobainishwa na msimbo wake, ambao hauwezi kubadilishwa pindi unapoundwa. + +Nick Szabo aliunda neno "mkataba mahiri". Mnamo 1994, aliandika [utangulizi wa dhana hiyo](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), na mnamo 1996 aliandika [uchunguzi wa kile ambacho mikataba-erevu ingeweza kufanya](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo alitazamia soko la kidijitali ambapo michakato ya kiotomatiki, [iliyolindwa kwa njia ya kriptografia](/glossary/#cryptography) huwezesha miamala na shughuli za kibiashara kufanyika bila wasuluhishi wanaoaminika. Mikataba erevu katika sarafu ya kidigitali imeweka maono haya katika vitendo. + +Tazama Finematics ikielezea mikataba mahiri: + + + +## Uaminifu katika mikataba ya kawaida {#trust-and-contracts} + +Moja ya tatizo kubwa katika mikataba ya jadi ni hitaji la watu wanaoaminika kufuata matokeo ya mkataba. + +Huu ni mfano moja wapo: + +Alice na Bob wana mashindano ya baiskeli. Tuseme Alice aliweka dau la $10 kuwa Bob ataibuka mshindi katika mashindano hayo. Bob anajiamini atakuwa mshindi na anakubaliana na dau lililowekwa. Mwishoni, Alice anamaliza mashindano mbele ya Bob na kuibuka mshindi. Lakini Bob anakataa kulipa dau na kulaumu kuwa Alice anaweza kuwa kadanganya. + +Mfano huu unaonesha shida iliyopo katika makubaliano yasiyo ya busara au erevu. Hata kama masharti ya makubaliano yatatimizwa (yaani, wewe ndiye mshindi wa mbio), bado lazima umwamini mtu mwingine kutimiza makubaliano (yaani, malipo ya dau). + +## Mashine ya kuuza ya kidijitali {#vending-machine} + +Msemo rahisi wa mkataba mahiri ni mashine ya kuuza, ambayo hufanya kazi kwa kiasi fulani sawa na mkataba mahiri ingizao mahususi uhakikisa matokeo yaliyoamiliwa mapema. + +- Umechagua bidhaa +- Mashine ya kuuza inaonesha bei +- Unalipia bei +- Mashine ya kuuza inadhibitisha umelipa kiasi sahihi +- Mashine ya kuuza inakupa bidhaa yako + +Mashine ya kuuza itatoa tu bidhaa unayoitaka baada ya mahitaji yote kutekelezwa. Kama usipochagua bidhaa au kuweka pesa za kutosha, mashine ya kuuzia haitokupa bidhaa yako. + +## Utekelezaji wa kiotomatiki {#automation} + +Faida kuu ya mkataba mahiri ni kuwa hutekeleza msimbo usio na utata endapo masharti fulani yakitimizwa. Hakuna haja ya kusubiri binadamu kutafsiri au kuridhia matokeo. Hii inaondoa uhitaji wa wapatanishi wanao aminika. + +Kwamfano unaweza kuandika mkataba mahiri unaohifadhi pesa za escrow kwa watoto, kuwaruhusu kutoa pesa baada ya kipindi fulani. Kama wakijaribu kiutoa kabla ya tarehe husika, mkataba mahiri hautoruhusu pesa kutolewa. Au unaweza kuandika mkataba ambao unaweza kukupa toleo la kidigitali la jina la gari unapomlipa muuzaji. + +## Matokeo yanayotabirika {#predictability} + +Mikataba ya jadi ina utata kwasababu hutegemea binadamu kutafsiri na kuitekeleza. Kwamfano, majaji wawili wanaweza kutafsiri mkataba tofauti, ambapo huweza kusababisha maamuzi yasiyokuwa na usahihi na matokeo yasiyo na usawa. Mkataba-erevu huondoa uwezekano huu. Badala yake, Mkataba-erevu hutekeleza kwa usahihi kulingana na masharti yaliyoandikwa ndani ya kanuni za mkataba. Usahihi huu unamaana kuwa kwa kuzingatia hali sawa, Mkataba-erevu unaweza kutoa majibu sawa. + +## Rekodi ya umma {#public-record} + +Mkataba-erevu hutumika katika ukaguzi na ufuatiliaji. Kwakuwa mikataba erevu ya Ethereum ipo katika mnyororo wa bloku katika umma, mtu yeyote anaweza kufuatilia uhamishaji wa mali papo hapo na taarifa nyingine zinazo husiana. Kwa mfano, unaweza kuangalia na kuona mtu akituma pesa katika anwani yako. + +## Ulinzi wa faragha {#privacy-protection} + +Mkataba-erevu pia hulinda faragha. Kwakuwa Ethereum ni mtandao usiojulikana (miamala yako inahusiswa hadharani na anwani ya pekee ya siri na si utambulisho wako) unaweza kulinda faragha zako kwa watazamaji. + +## Masharti yanayoonekana {#visible-terms} + +Hatimaye, kama mikataba ya jadi unaweza kuona mkataba-erevu ni nini nkabla ya kujisajili (au kujihusisha nayo). Uwazi wa Mkataba-erevu unaruhusu mtu yeyote kuichunguza. + +## Matumizi ya mkataba-erevu {#use-cases} + +Mkataba-erevu inaweza kufanya chochote ambacho program za kompyuta zinaweza kufanya. + +Zinaweza kufanya hesabu, kuunda sarafu, kuhifadhi data, kuunda [NFTs](/glossary/#nft), kutuma mawasiliano na hata kutengeneza michoro. Hii ni mifano ya ulimwengu halisi: + +- [Stablecoins](/stablecoins/) +- [Kuunda na kusambaza mali za kipekee za kidijitali](/nft/) +- [Ubadilishanaji wa sarafu wa kiotomatiki na wazi](/get-eth/#dex) +- [Michezo ya kidijitali iliyotawanywa](/apps/categories/gaming) +- [Sera ya bima inayolipa kiotomatiki](https://etherisc.com/) +- [Kiwango kinachoruhusu watu kuunda sarafu maalum, zinazoweza kuendana](/developers/docs/standards/tokens/) + +## Masomo zaidi {#further-reading} + +- [Jinsi Mikataba-erevu Itabadilisha Ulimwengu](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Mikataba-erevu kwa wasanidi programu](/developers/docs/smart-contracts/) +- [Jifunze kuandika mikataba-erevu](/developers/learning-tools/) +- [Kujifunza Ethereum - Mkataba-erevu ni Nini?](https://github.com/ethereumbook/ethereumbook/blob/openedition/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) + + + + diff --git a/public/content/translations/sw/social-networks/index.md b/public/content/translations/sw/social-networks/index.md new file mode 100644 index 00000000000..b61b2d0ae60 --- /dev/null +++ b/public/content/translations/sw/social-networks/index.md @@ -0,0 +1,140 @@ +--- +title: Mitandao ya kijamiii iliogatuliwa +description: Muhtasari wa mitandao ya kijamii iliyogatuliwa kwenye Ethereum +lang: sw +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /images/ethereum-learn.png +summaryPoint1: Mifumo inayotegemea mnyororo wa bloku kwa ajili ya mwingiliano wa kijamii na uundaji na usambazaji wa maudhui. +summaryPoint2: Mitandao ya kijamii iliyogatuliwa hulinda faragha ya mtumiaji na kuimarisha usalama wa data. +summaryPoint3: Tokeni na NFT huunda njia mpya za kuchuma mapato kutokana na maudhui. +--- + +Mitandao ya kijamii ina jukumu kubwa katika mawasiliano na mwingiliano wetu wa kila siku. Hata hivyo, udhibiti wa kati wa mifumo hii umeleta matatizo mengi: ukiukaji wa data, kukatika kwa seva, kuondolewa kwenye mifumo, udhibiti, na ukiukaji wa faragha ni baadhi ya hasara ambazo mitandao ya kijamii mara nyingi hukabiliana nazo. Ili kukabiliana na masuala haya, wasanidi programu wanaunda mitandao ya kijamii kwenye Ethereum. Mitandao ya kijamii iliyogatuliwa inaweza kurekebisha matatizo mengi ya mifumo ya mitandao ya kijamii ya jadi na kuboresha uzoefu wa jumla wa watumiaji. + +## Mitandao ya kijamii iliyogatuliwa ni nini? {#what-are-decentralized-social-networks} + +Mitandao ya kijamii iliyogatuliwa ni mifumo [inayotegemea mnyororo wa bloku](/glossary/#blockchain) ambayo inaruhusu watumiaji kubadilishana habari pamoja na kuchapisha na kusambaza maudhui kwa hadhira. Kwa sababu programu hizi huendeshwa kwenye mnyororo wa bloku, zina uwezo wa kugatuliwa na kuwa sugu kwa udhibiti na usimamizi usiofaa. + +Mitandao mingi ya kijamii iliyogatuliwa ipo kama mbadala wa huduma za mitandao ya kijamii zilizoimarika, kama vile Facebook, LinkedIn, Twitter, na Medium. Lakini mitandao ya kijamii inayoendeshwa na mnyororo wa bloku ina idadi ya vipengele vinavyoiweka mbele ya mifumo ya kijamii ya jadi. + + + +### Mitandao ya kijamii iliyogatuliwa hufanyaje kazi? {#decentralized-social-networks-overview} + +Mitandao ya kijamii iliyogatuliwa ni darasa la [mfumo uliotawanywa (mfumo mtawanyo wa kimamlaka)](/apps/)—programu zinazoendeshwa na [mikataba-erevu](/glossary/#smart-contract) iliyotumwa kwenye mnyororo wa bloku. Msimbo wa mkataba hutumika kama sehemu ya nyuma ya programu hizi na hufafanua mantiki ya biashara zao. + +Mifumo ya jadi ya mitandao ya kijamii hutegemea hifadhidata kuhifadhi taarifa za mtumiaji, msimbo wa programu, na aina nyingine za data. Lakini hii huunda sehemu moja ya kutofaulu na huleta hatari kubwa. Kwa mfano, seva za Facebook kwa sifa mbaya [zilizimwa kwa masaa](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) mnamo Oktoba 2021, na kuwakatiza watumiaji kutoka kwenye mfumo. + +Mitandao ya kijamii iliyogatuliwa ipo kwenye [mtandao wa rika-kwa-rika](/glossary/#peer-to-peer-network) unaojumuisha maelfu ya nodi kote ulimwenguni. Hata kama baadhi ya nodi zitashindwa, mtandao utaendeshwa bila kukatizwa, na kufanya programu kuwa sugu kwa hitilafu na kukatika. + +Kwa kutumia mifumo ya hifadhi iliyogatuliwa kama vile [Mfumo wa Faili wa InterPlanetary (IPFS)](https://ipfs.io/), mitandao ya kijamii iliyojengwa kwenye Ethereum inaweza kulinda taarifa za mtumiaji dhidi ya unyonyaji na matumizi mabaya. Hakuna mtu atakayeuza taarifa zako za kibinafsi kwa watangazaji, wala wadukuzi hawataweza kuiba maelezo yako ya siri. + +Mifumo mingi ya kijamii inayotegemea mnyororo wa bloku ina tokeni asili zinazowezesha uchumaji wa mapato bila mapato ya matangazo. Watumiaji wanaweza kununua tokeni hizi ili kupata vipengele fulani, kukamilisha ununuzi wa ndani ya programu, au kuwapa vidokezo waundaji wa maudhui wanaowapenda. + +## Faida za mitandao ya kijamii iliyogatuliwa {#benefits} + +1. Mitandao ya kijamii iliyogatuliwa ni sugu kwa udhibiti na iko wazi kwa kila mtu. Hii ina maana kwamba **watumiaji hawawezi kupigwa marufuku**, kuondolewa kwenye jukwaa, au kuwekewa vikwazo kiholela. + +2. Mitandao ya kijamii iliyogatuliwa **imejengwa juu ya maadili ya chanzo wazi** na hufanya msimbo chanzo wa programu kupatikana kwa ukaguzi wa umma. Kwa kuondoa utekelezaji wa algoriti zisizo wazi zinazojulikana katika mitandao ya kijamii ya jadi, mitandao ya kijamii inayotegemea mnyororo wa bloku inaweza kuoanisha maslahi ya watumiaji na waundaji wa mfumo. + +3. Mitandao ya kijamii iliyogatuliwa huondoa "mtu wa kati". Waundaji wa maudhui **wana umiliki wa moja kwa moja juu ya maudhui yao**, na wanashirikiana moja kwa moja na wafuasi, mashabiki, wanunuzi, na wahusika wengine, bila chochote isipokuwa mkataba-erevu katikati. + +4. Kama mfumo mtawanyo wa kimamlaka unaoendeshwa kwenye mtandao wa Ethereum, ambao unadumishwa na mtandao wa kimataifa wa rika-kwa-rika wa nodi, mitandao ya kijamii iliyogatuliwa **haiko katika hatari kubwa ya kukatika kwa seva** na kukatika kwa huduma. + +5. Mifumo ya kijamii iliyogatuliwa hutoa mfumo **uliyoboreshwa wa uchumaji mapato** kwa waundaji wa maudhui kupitia [tokeni zisizoweza kubadilishwa (NFTs)](/glossary/#nft), malipo ya sarafu ya kidigitali ndani ya programu, na zaidi. + +6. Mitandao ya kijamii iliyogatuliwa huwapa watumiaji **kiwango cha juu cha faragha na kutokujulikana**. Kwa mfano, mtu binafsi anaweza kuingia kwenye mtandao wa kijamii unaotegemea Ethereum kwa kutumia wasifu wa [ENS](/glossary/#ens) au [mkoba](/glossary/#wallet)—bila kulazimika kushiriki taarifa zinazoweza kumtambulisha (PII), kama vile majina, anwani za barua pepe, n.k. + +7. Mitandao ya kijamii iliyogatuliwa hutegemea hifadhi iliyogatuliwa, sio hifadhidata za kati, ambazo ni bora zaidi kwa kulinda data ya mtumiaji. + +## Mitandao ya kijamii iliyogatuliwa kwenye Ethereum {#ethereum-social-networks} + +Mtandao wa Ethereum umekuwa zana inayopendelewa na wasanidi programu wanaounda mitandao ya kijamii iliyogatuliwa kutokana na umaarufu wa tokeni zake na msingi wake mkubwa wa watumiaji. Hapa kuna baadhi ya mifano ya mitandao ya kijamii inayotegemea Ethereum: + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) ni mfumo wa uandishi unaowezeshwa na web3 ambao unalenga kugatuliwa na kumilikiwa na mtumiaji. Watumiaji wanaweza kusoma na kuandika bila malipo kwenye Mirror kwa kuunganisha tu mikoba yao. Watumiaji wanaweza pia kukusanya maandishi na kujiandikisha kwa waandishi wanaowapenda. + +Machapisho yaliyochapishwa kwenye Mirror huhifadhiwa kabisa kwenye Arweave, jukwaa la hifadhi lililogatuliwa, na yanaweza kutengenezwa kama [tokeni zisizoweza kubadilishwa (NFTs)](/nft/) zinazoweza kukusanywa zinazojulikana kama Writing NFTs. Writing NFTs ni bure kabisa kwa waandishi kuunda, na ukusanyaji hufanyika kwenye [L2](/glossary/#layer-2) ya Ethereum — na kufanya miamala kuwa ya bei nafuu, ya haraka, na rafiki kwa mazingira. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) ni mojawapo ya mitandao ya kijamii iliyogatuliwa inayotumika zaidi. Inafanya kazi kama Facebook na tayari imekusanya mamilioni ya watumiaji. + +Watumiaji hutumia tokeni asili ya mfumo ya [ERC-20](/glossary/#erc-20) $MIND kulipia bidhaa. Watumiaji wanaweza pia kupata tokeni za $MIND kwa kuchapisha maudhui maarufu, kuchangia katika mfumo ikolojia, na kuelekeza wengine kwenye mfumo. + +### Farcaster {#farcaster} + +[Farcaster](https://farcaster.xyz/) ni mtandao wa kijamii "uliogatuliwa vya kutosha" unaofanana na X na Reddit ambao unaruhusu watumiaji kushiriki na kugundua "casts". Imejengwa kwenye mtandao wa Optimism L2 ili kuweka miamala kuwa nafuu kiasi. + +## Tumia mitandao ya kijamii iliyogatuliwa {#use-decentralized-social-networks} + +- **[Status.app](https://status.app/)** - _Status ni programu salama ya kutuma ujumbe inayotumia itifaki ya chanzo wazi, rika-kwa-rika, na usimbaji fiche wa mwisho-hadi-mwisho ili kulinda ujumbe wako kutoka kwa watu wengine._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror ni mfumo wa uchapishaji uliogatuliwa, unaomilikiwa na mtumiaji uliojengwa kwenye Ethereum kwa ajili ya watumiaji kufadhili mawazo, kuchuma mapato kutokana na maudhui, na kujenga jamii zenye thamani ya juu._ +- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol ni grafu ya kijamii inayoweza kutungika na kugatuliwa inayosaidia waundaji kuchukua umiliki wa maudhui yao popote wanapoenda katika bustani ya kidijitali ya mtandao uliogatuliwa._ +- **[Farcaster](https://farcaster.xyz/)** - _Farcaster ni mtandao wa kijamii uliogatuliwa vya kutosha. Ni itifaki wazi inayoweza kusaidia wateja wengi, kama vile barua pepe._ +- **[Ethereum Follow Protocol](https://efp.app/)** - _Itifaki ya Ufuatiliaji ya Ethereum ni grafu ya kijamii iliyogatuliwa kikamilifu kwenye mnyororo kwa akaunti za Ethereum, inayoendeleza maono ya safu ya utambulisho wa Ethereum ya moduli, inayosaidiana na ENS na SIWE._ +- **[Itifaki ya Maoni ya Ethereum](https://www.ethcomments.xyz/)** - _Njia mpya, inayoweza kupangwa ya maudhui ya kijamii kwenye Ethereum ili kuweka mawazo yako kwenye mnyororo._ + +## Mitandao ya kijamii ya Web2 kwenye Ethereum {#web2-social-networks-and-ethereum} + +Mifumo ya kijamii asili ya [Web3](/glossary/#web3) sio pekee inayojaribu kuingiza teknolojia ya mnyororo wa bloku kwenye mitandao ya kijamii. Mifumo mingi ya kati pia inachunguza au imefanya majaribio ya kuunganisha Ethereum katika miundombinu yao: + +### Brave Browser {#brave} + +- Brave imeunganisha **[Basic Attention Token (BAT)](https://basicattentiontoken.org/)**, tokeni ya ERC-20 iliyojengwa kwenye Ethereum, katika mfumo wake wa ikolojia wa kivinjari ili kubadilisha matangazo ya kidijitali na usaidizi wa waundaji wa maudhui. + +- Mpango wa **[Brave Rewards](https://brave.com/brave-rewards/)** unaruhusu watumiaji kupata BAT kwa kutazama matangazo yanayoheshimu faragha na kisha kuchangia kiotomatiki kwa tovuti na waundaji wa maudhui kwenye mifumo mbalimbali kama YouTube, Twitter, na GitHub kulingana na muda wa umakini. + +- Waundaji wa maudhui wanaweza kujisajili kama **[waundaji walioidhinishwa wa Brave](https://creators.brave.com/)** ili kupokea michango hii moja kwa moja kwenye mikoba yao ya Ethereum, na kuunda daraja kati ya mifumo ya wavuti ya jadi na uchumaji mapato unaotegemea mnyororo wa bloku. + +- Tokeni za BAT zipo kwa kujitegemea kwenye mnyororo wa bloku wa Ethereum, zikiwaruhusu watumiaji kuzihamisha kwenye mikoba ya kibinafsi au exchange mara tu zinapopatikana. + +### Jukwaa la Muziki la Audius {#audius} + +- **[Audius](https://audius.co/)** ni jukwaa la kutiririsha muziki linalotumia teknolojia ya mnyororo wa bloku ya Ethereum kuunganisha wasanii moja kwa moja na mashabiki. + +- Jukwaa lina usanifu mseto uliogatuliwa ambapo maudhui huhifadhiwa kwenye IPFS huku likitumia mnyororo wa bloku kwa haki za umiliki na **[tokeni ya AUDIO](https://eth.blockscout.com/token/0x18aaa7115705e8be94bffebde57af9bfc265b998)**. + +- Audius imeanzisha **[ushirikiano na TikTok](https://audius.co/tiktok)**, ikileta utendaji wa Web3 kwa hadhira ya kawaida na kuruhusu wasanii kuchuma mapato kutokana na maudhui yao kupitia teknolojia ya mnyororo wa bloku. + +- Maelezo ya kiufundi ya jukwaa yanapatikana katika **[karatasi yao nyeupe](https://whitepaper.audius.co/)**, yakionyesha jinsi walivyojenga juu ya miundombinu ya Ethereum. + +### Michezo ya Ndoto ya Sorare {#sorare} + +- **[Sorare](https://sorare.com/)** ni **[jukwaa la michezo ya njozi lililojengwa kwenye Ethereum](https://sorare.com/help/a/4402888626577/what-is-a-sorare-wallet)** ambalo huruhusu watumiaji kukusanya, kufanya biashara, na kucheza na kadi rasmi za wachezaji za NFT. + +- Kadi za wachezaji ni NFT zinazoweza kuthibitishwa kwenye mnyororo wa bloku wa Ethereum, na mikataba-erevu ya jukwaa inaweza kutazamwa kwenye **[Etherscan](https://eth.blockscout.com/address/0x629a673a8242c2ac4b7b8c5d8735fbeac21a6205?tab=contract)**. + +- Sorare inachanganya uchezaji wa jadi wa michezo ya njozi na umiliki wa mnyororo wa bloku wa mali za kidijitali, ikileta utendakazi wa **[Ethereum kufadhili](https://sorare.com/help/a/10969733392797/what-network-should-i-use-to-fund-my-eth-wallet)** kwa mashabiki wa kawaida wa michezo. + +### Twitter/X (Crypto Tipping) {#twitter} + +**[Twitter](https://x.com)** (sasa X) imejumuisha teknolojia ya mnyororo wa bloku kwa njia nyingi ili kuboresha uchumaji mapato wa waundaji na uthibitishaji wa utambulisho wa kidijitali: + +- **Crypto Tipping**: Jukwaa limeunganisha **[utoaji wa vidokezo vya Ethereum](https://help.x.com/en/using-x/tips)**, na kuwawezesha watumiaji kutuma malipo kupitia mikoba inayotegemea Ethereum kama vile Strike. + +Kwa kuunganisha vipengele vya mnyororo wa bloku, X inaziba pengo kati ya uzoefu wa kijamii wa Web2 na umiliki wa kidijitali uliogatuliwa. + +## Masomo zaidi {#further-reading} + +### Makala {#articles} + +- [Kugatua mitandao ya kijamii: mwongozo wa rundo la kijamii la web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Mitandao ya Kijamii Ndiyo Fursa Kubwa Inayofuata ya Ugatuzi](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Web3 inashikilia ahadi ya mitandao ya kijamii iliyogatuliwa, inayoendeshwa na jamii](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [Muhtasari wa Mazingira ya Mitandao ya Kijamii ya Mnyororo wa Bloku](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Jinsi Mnyororo wa Bloku Unavyoweza Kutatua Faragha ya Mitandao ya Kijamii](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Ugatuzi wa Kutosha kwa Mitandao ya Kijamii](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Video {#videos} + +- [Mitandao ya Kijamii Iliyogatuliwa Imefafanuliwa](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [Mnyororo wa Bloku wa DeSo Unataka Kugatua Mitandao ya Kijamii](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [Mustakabali wa Mitandao ya Kijamii Iliyogatuliwa w/ Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Jumuiya {#communities} + +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/public/content/translations/sw/staking/dvt/index.md b/public/content/translations/sw/staking/dvt/index.md new file mode 100644 index 00000000000..ee73fcdc780 --- /dev/null +++ b/public/content/translations/sw/staking/dvt/index.md @@ -0,0 +1,91 @@ +--- +title: Teknolojia ya mthibitishaji iliyosambazwa +description: Teknolojia ya mthibitishaji iliyosambazwa inawezesha utendakazi uliosambazwa wa mthibitishaji wa Ethereum na wahusika wengi. +lang: sw +--- + +# Teknolojia ya mthibitishaji iliyosambazwa {#distributed-validator-technology} + +Teknolojia ya kiidhinishaji inayosambazwa (DVT) ni mbinu ya usalama wa kiidhinishaji ambayo inaeneza usimamizi muhimu na majukumu ya kutia saini katika pande nyingi, ili kupunguza pointi moja ya kushindwa, na kuongeza uthabiti wa kithibitishaji. + +Inafanya hivi kwa **kugawanya ufunguo binafsi** unaotumika kulinda mthibitishaji **katika kompyuta nyingi** zilizopangwa katika "nguzo". Faida ya hii ni kwamba inafanya kuwa vigumu sana kwa washambuliaji kupata ufikiaji wa neno la siri, kwa sababu haijahifadhiwa kikamilifu kwenye mashine yoyote. Pia inaruhusu nodi zingine kwenda nje ya mtandao, kwani utiaji saini unaohitajika unaweza kufanywa na kikundi kidogo cha mashine katika kila nguzo. Hii inapunguza sehemu moja ya kushindwa kutoka kwa mtandao na kufanya seti nzima ya mthibitishaji kuwa imara zaidi. + +![Mchoro unaoonyesha jinsi ufunguo mmoja wa mthibitishaji unavyogawanywa katika hisa za ufunguo na kusambazwa kwa nodi nyingi zenye vipengele tofauti.](./dvt-cluster.png) + +## Kwa nini tunahitaji DVT? {#why-do-we-need-dvt} + +### Usalama {#security} + +Wathibitishaji huzalisha jozi mbili za funguo za umma-binafsi: funguo za mthibitishaji za kushiriki katika makubaliano na funguo za uondoaji kwa ajili ya kufikia fedha. Wakati wathibitishaji wanaweza kulinda funguo za uondoaji katika ghala baridi, funguo binafsi za mthibitishaji lazima ziwe mtandaoni 24/7. Ikiwa ufunguo binafsi wa mthibitishaji utaingiliwa, mshambulizi anaweza kudhibiti mthibitishaji, jambo ambalo linaweza kusababisha kupunguzwa au kupoteza ETH ya mweka dau. DVT inaweza kusaidia kupunguza hatari hii. Hivi ndivyo: + +Kwa kutumia DVT, waweka dau wanaweza kushiriki katika kusimamisha huku wakiweka ufunguo binafsi wa mthibitishaji katika ghala baridi. Hili linafikiwa kwa kusimba kwa njia fiche ufunguo halisi na kamili wa mthibitishaji na kisha kuugawanya katika hisa za ufunguo. Hisa za ufunguo huwa mtandaoni na husambazwa kwa nodi nyingi ambazo huwezesha utendakazi uliosambazwa wa mthibitishaji. Hili linawezekana kwa sababu wathibitishaji wa Ethereum hutumia sahihi za BLS ambazo ni nyongeza, kumaanisha ufunguo kamili unaweza kujengwa upya kwa muhtasari wa sehemu zao za vijenzi. Hii inamruhusu mweka dau kuweka ufunguo kamili, halisi wa 'mkuu' wa mthibitishaji nje ya mtandao kwa usalama. + +### Hakuna sehemu moja ya kushindwa {#no-single-point-of-failure} + +Kithibitishaji kinapogawanywa kati ya waendeshaji wengi na mashine nyingi, kinaweza kuhimili hitilafu za maunzi na programu bila kwenda nje ya mtandao. Hatari ya kushindwa inaweza pia kupunguzwa kwa kutumia usanidi mbalimbali wa maunzi na programu katika nodi zote kwenye nguzo. Ustahimilivu huu haupatikani kwa usanidi wa mthibitishaji wa nodi moja - unatokana na safu ya DVT. + +Ikiwa moja ya vipengee vya mashine kwenye nguzo itashuka (kwa mfano, ikiwa kuna waendeshaji wanne kwenye nguzo ya kihalalishaji na mmoja anatumia mteja mahususi ambaye ana hitilafu), wengine huhakikisha kwamba kihalalishaji kinaendelea kufanya kazi. + +### Ugatuaji {#decentralization} + +Hali bora kwa Ethereum ni kuwa na wathibitishaji wengi wanaojiendesha kwa uhuru iwezekanavyo. Hata hivyo, watoa huduma wachache wa kusimamisha wamekuwa maarufu sana na wanachangia sehemu kubwa ya jumla ya ETH iliyosimamishwa kwenye mtandao. DVT inaweza kuruhusu waendeshaji hawa kuwepo huku ikihifadhi ugatuaji wa hisa. Hii ni kwa sababu funguo za kila kithibitishaji husambazwa kwenye mashine nyingi na ingetakiwa kuwe na ushirikiano mkubwa zaidi kwa kithibitishaji kuwa atumie mbinu za uharibifu. + +Bila DVT, ni rahisi kwa watoa huduma kuhatarisha mipangilio ya usanifu wa mteja mmoja au wawili tu kwa vithibitishaji vyao vyote, na kuongeza athari ya hitilafu ya mteja. DVT inaweza kutumika kueneza hatari katika usanidi mbalimbali wa wateja na maunzi tofauti, na kujenga ustahimilivu kupitia utofauti. + +**DVT inatoa manufaa yafuatayo kwa Ethereum:** + +1. **Ugatuaji** wa makubaliano ya uthibitisho-wa-hisa ya Ethereum +2. Inahakikisha **uhai** wa mtandao +3. Inaunda **uvumilivu wa makosa** ya mthibitishaji +4. Utendakazi wa mthibitishaji wenye **uaminifu uliopunguzwa** +5. **Hatari zilizopunguzwa za upunguzaji** na za kutokuwepo mtandaoni +6. **Inaboresha utofauti** (mteja, kituo cha data, eneo, kanuni, nk.) +7. **Usalama ulioimarishwa** wa usimamizi wa ufunguo wa mthibitishaji + +## Je, DVT inafanyaje kazi? {#how-does-dvt-work} + +Suluhisho la DVT lina vipengele vifuatavyo: + +- **[Ugawanaji wa siri wa Shamir](https://medium.com/@keylesstech/a-beginners-guide-to-shamir-s-secret-sharing-e864efbf3648)** - Wathibitishaji hutumia [funguo za BLS](https://en.wikipedia.org/wiki/BLS_digital_signature). "Hisa za ufunguo" za BLS za kibinafsi ("hisa za ufunguo") zinaweza kuunganishwa kuwa ufunguo mmoja uliokusanywa (saini). Katika DVT, ufunguo binafsi wa mthibitishaji ni saini ya pamoja ya BLS ya kila mwendeshaji katika nguzo. +- **[Mpango wa saini ya kizingiti](https://medium.com/nethermind-eth/threshold-signature-schemes-36f40bc42aca)** - Huamua idadi ya hisa za ufunguo za kibinafsi zinazohitajika kwa ajili ya majukumu ya kutia saini, k.m., 3 kati ya 4. +- **[Uzalisahji wa ufunguo uliosambazwa (DKG)](https://medium.com/toruslabs/what-distributed-key-generation-is-866adc79620)** - Mchakato wa kriptografia ambao huzalisha hisa za ufunguo na hutumika kusambaza hisa za ufunguo wa mthibitishaji uliopo au mpya kwa nodi zilizo kwenye nguzo. +- **[Ukokotoaji wa wahusika wengi (MPC)](https://messari.io/report/applying-multiparty-computation-to-the-world-of-blockchains)** - Ufunguo kamili wa mthibitishaji huzalishwa kwa siri kwa kutumia ukokotoaji wa wahusika wengi. Ufunguo kamili haujulikani kamwe na mwendeshaji yeyote binafsi—wanajua tu sehemu yao wenyewe (yaani "hisa" yao). +- **Itifaki ya makubaliano** - Itifaki ya makubaliano huchagua nodi moja kuwa mpendekezaji wa bloku. Wanashiriki bloku na nodi zingine kwenye nguzo, ambazo huongeza hisa zao za ufunguo kwenye saini iliyokusanywa. Wakati hisa za kutosha za ufunguo zimekusanywa, bloku inapendekezwa kwenye Ethereum. + +Wathibitishaji waliosambazwa wana uvumilivu wa makosa uliojengewa ndani na wanaweza kuendelea kufanya kazi hata kama baadhi ya nodi za kibinafsi zitatoka mtandaoni. Hii inamaanisha kuwa nguzo ni stahimilivu hata kama baadhi ya nodi zilizo ndani yake zitakuwa na nia mbaya au wavivu. + +## Matumizi ya DVT {#dvt-use-cases} + +DVT ina athari kubwa kwa sekta pana ya kusimamisha: + +### Waweka dau wa pekee {#solo-stakers} + +DVT pia inawezesha usimamishaji usio wa ulinzi kwa kukuruhusu kusambaza ufunguo wako wa mthibitishaji kwenye nodi za mbali huku ukiweka ufunguo kamili nje ya mtandao kabisa. Hii inamaanisha waweka dau wa nyumbani si lazima watumie pesa kwa ajili ya maunzi, huku kusambaza hisa za ufunguo kunaweza kusaidia kuwaimarisha dhidi ya udukuzi unaowezekana. + +### Kusimamisha kama huduma (SaaS) {#saas} + +Waendeshaji (kama vile mabwawa ya kusimamisha na waweka dau wa kitaasisi) wanaosimamia wathibitishaji wengi wanaweza kutumia DVT kupunguza hatari yao. Kwa kusambaza miundombinu yao, wanaweza kuongeza upungufu kwenye shughuli zao na kubadilisha aina za maunzi wanayotumia. + +DVT inashiriki jukumu la usimamizi wa ufunguo kwenye nodi nyingi, ikimaanisha kuwa baadhi ya gharama za uendeshaji pia zinaweza kushirikiwa. DVT pia inaweza kupunguza hatari ya uendeshaji na gharama za bima kwa watoa huduma za kusimamisha. + +### Mabwawa ya kusimamisha {#staking-pools} + +Kwa sababu ya usanifu wa kawaida wa kihalalishaji, mabwawa ya kuweka dhamana na watoa huduma za kuweka alama za kioevu wanalazimika kuwa na viwango tofauti vya uaminifu wa mtoa huduma mmoja kwa kuwa faida na hasara huunganishwa katika bwawa lote. Pia wanategemea waendeshaji kulinda funguo za kusaini kwa sababu, hadi sasa, hakujawa na chaguo jingine kwao. + +Ingawa jitihada za jadi zinafanywa kueneza hatari kwa kusambaza hisa kwa waendeshaji wengi, kila mwendeshaji bado anasimamia hisa kubwa kwa kujitegemea. Kutegemea mwendeshaji mmoja kunaleta hatari kubwa ikiwa hawafanyi kazi vizuri, wanakumbana na muda wa kutokuwa mtandaoni, wanaingiliwa, au wanafanya vitendo vya nia mbaya. + +Kwa kutumia DVT, uaminifu unaohitajika kutoka kwa waendeshaji unapunguzwa kwa kiasi kikubwa. **Mabwawa yanaweza kuwawezesha waendeshaji kushikilia hisa bila kuhitaji ulinzi wa funguo za mthibitishaji** (kwani hisa za ufunguo pekee ndizo zinazotumika). Pia huruhusu hisa zinazodhibitiwa kusambazwa kati ya waendeshaji zaidi (k.m., badala ya kuwa na mtoa huduma mmoja anayesimamia vithibitishaji 1000, DVT huwezesha vithibitishaji hivyo kuendeshwa kwa pamoja na waendeshaji wengi). Usanidi mbalimbali wa waendeshaji utahakikisha kwamba ikiwa mwendeshaji mmoja ataacha kufanya kazi, wengine bado wataweza kuthibitisha. Hii husababisha upungufu na utofauti ambayo hupelekea utendaji bora na ustahimilivu, huku ikiongeza zawadi. + +Faida nyingine ya kupunguza uaminifu kwa mwendeshaji mmoja ni kwamba mabwawa ya kusimamisha yanaweza kuruhusu ushiriki wa waendeshaji ulio wazi zaidi na usio na ruhusa. Kwa kufanya hivi, huduma zinaweza kupunguza hatari zao na kusaidia ugatuaji wa Ethereum kwa kutumia seti zilizoratibiwa na zisizo na ruhusa za waendeshaji, kwa mfano, kwa kuoanisha nyumba au vidau zaidi vidogo na vikubwa zaidi. + +## Hasara zinazowezekana za kutumia DVT {#potential-drawbacks-of-using-dvt} + +- **Kipengele cha ziada** - kuanzisha nodi ya DVT huongeza sehemu nyingine ambayo inaweza kuwa na kasoro au kuwa hatarini. Njia ya kupunguza hii ni kujitahidi kwa utekelezaji mwingi wa nodi ya DVT, ikimaanisha wateja wengi wa DVT (sawa na vile kuna wateja wengi kwa makubaliano na safu za utekelezaji). +- **Gharama za uendeshaji** - kwa kuwa DVT inasambaza mthibitishaji kati ya wahusika wengi, kuna nodi nyingi zaidi zinazohitajika kwa ajili ya uendeshaji badala ya nodi moja tu, jambo ambalo huleta ongezeko la gharama za uendeshaji. +- **Uwezekano wa kuongezeka kwa muda wa kusubiri** - kwa kuwa DVT inatumia itifaki ya makubaliano kufikia makubaliano kati ya nodi nyingi zinazoendesha mthibitishaji, inaweza kusababisha kuongezeka kwa muda wa kusubiri. + +## Masomo zaidi {#further-reading} + +- [Vigezo vya mthibitishaji aliyesambazwa wa Ethereum (kiwango cha juu)](https://github.com/ethereum/distributed-validator-specs) +- [Vigezo vya kiufundi vya mthibitishaji aliyesambazwa wa Ethereum](https://github.com/ethereum/distributed-validator-specs/tree/dev/src/dvspec) +- [Programu ya onyesho la ugawanaji wa siri wa Shamir](https://iancoleman.io/shamir/) diff --git a/public/content/translations/sw/staking/pools/index.md b/public/content/translations/sw/staking/pools/index.md new file mode 100644 index 00000000000..5fb2b4b70c7 --- /dev/null +++ b/public/content/translations/sw/staking/pools/index.md @@ -0,0 +1,86 @@ +--- +title: Usimamishaji wa hisa wa kundi +description: Jifunze kuhusu mabwawa ya kusimamisha hisa +lang: sw +template: staking +emoji: ":money_with_wings:" +image: /images/staking/leslie-pool.png +alt: Leslie kifaru anayogelea kwenye bwawa. +sidebarDepth: 2 +summaryPoints: + - Shiriki na upate zawadi kwa kiasi chochote cha ETH kwa kuunganisha nguvu na wengine + - Ruka sehemu ngumu na kabidhi uendeshaji wa kithibitishaji kwa upande wa tatu + - Shikilia tokeni za staking kwenye pochi yako mwenyewe +--- + +## Bwawa la staking ni nini? {#what-are-staking-pools} + +Mabwawa ya staking ni mbinu ya ushirikiano inayowezesha watu wengi wenye kiasi kidogo cha ETH kupata jumla ya ETH 32 zinazohitajika ili kuamsha seti ya funguo za kithibitishaji. Uwezo wa kuunganisha hauungwi mkono moja kwa moja ndani ya itifaki, hivyo suluhisho ziliundwa kando ili kushughulikia hitaji hili. + +Baadhi ya mabwawa yanaendeshwa kwa kutumia mikataba mahiri, ambapo fedha zinaweza kuwekwa kwenye mkataba unaosimamia na kufuatilia uwekezaji wako bila kuhitaji kuaminiana, na kukupa tokeni inayowakilisha thamani hii. Mabwawa mengine yanaweza yasihusishe mikataba mahiri na badala yake yanadhibitiwa nje ya mnyororo. + +## Kwa nini uweke stake kwenye bwawa? Kwa nini usimamishe hisa kwenye bwawa? {#why-stake-with-a-pool} + +Mbali na faida tulizozieleza katika [utangulizi wa kusimamisha hisa](/staking/), kusimamisha hisa kwenye bwawa huja na faida kadhaa za kipekee. + + + + + + + + + +## Mambo ya kuzingatia {#what-to-consider} + +Kuweka stake kwa pamoja au kwa kuwakilishwa hakuungwi mkono moja kwa moja na itifaki ya Ethereum, lakini kutokana na mahitaji ya watumiaji kuweka chini ya ETH 32, idadi kubwa ya suluhisho imeundwa ili kushughulikia mahitaji haya. + +Kila bwawa na zana au mikataba mahiri wanayotumia imeundwa na timu tofauti, na kila moja ina faida na hatari zake. Bwawa huwawezesha watumiaji kubadilisha ETH zao kwa tokeni inayowakilisha ETH iliyowekwa kwenye hisa. Tokeni ni muhimu kwa sababu inawawezesha watumiaji kubadilisha kiasi chochote cha ETH kwa kiasi kinacholingana cha tokeni inayotoa faida, ambayo inazalisha mapato kutokana na zawadi za staking zinazotumika kwenye ETH iliyowekwa kama stake (na kinyume chake) kwenye soko zisizo za kati, ingawa ETH halisi inaendelea kuwa stake kwenye safu ya makubaliano. Hii inamaanisha kubadilishana huku na kule kutoka kwa bidhaa ya staked ETH na "ETH mbichi" ni ya haraka, rahisi na haipatikani tu katika zidisho la 32 ETH. + +Hata hivyo, ishara hizi za ETH zilizowekwa hatarini huwa na tabia zinazofanana na karata ambapo kiasi kikubwa cha ETH kilichowekwa hatarini huishia chini ya udhibiti wa mashirika machache ya serikali kuu badala ya kuenea kwa watu wengi huru. Hii inaunda masharti ya udhibiti au uchimbaji wa thamani. Kiwango cha dhahabu cha staking ni watu binafsi kuendesha wadhibiti kwenye vifaa vyao wenyewe kadri iwezekanavyo. + +[Maelezo zaidi kuhusu hatari za kusimamisha tokeni](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Viashiria vya sifa vinatumiwa hapa chini kuashiria nguvu au udhaifu unaoweza kuwa nao bwawa lililoorodheshwa la staking. Tumia sehemu hii kama rejeleo la jinsi tunavyofafanua sifa hizi wakati unachagua bwawa la kujiunga nalo. + + + +## Gundua mabwawa ya kusimamisha hisa {#explore-staking-pools} + +Kuna chaguzi mbalimbali zinazopatikana kusaidia na usanidi wako. Tumia viashiria vilivyo hapo juu kukusaidia kuongoza kupitia zana zilizo hapa chini. + + + + + +Tafadhali zingatia umuhimu wa kuchagua huduma ambayo inazingatia kwa makini [anuwai za wateja](/developers/docs/nodes-and-clients/client-diversity/), kwani inaboresha usalama wa mtandao, na kupunguza hatari yako. Huduma ambazo zina ushahidi wa kuzuia matumizi ya wateja walio wengi huonyeshwa kwa "anuwai za mteja wa utekelezaji" na "anuwai za mteja wa makubaliano." + +Je, una pendekezo la zana ya staking tuliyokosa? Angalia [sera yetu ya uorodheshaji wa bidhaa](/contributing/adding-staking-products/) ili kuona kama itafaa, na kuiwasilisha kwa ukaguzi. + +## Maswali yanayoulizwa mara kwa mara {#faq} + + +Kwa kawaida, tokeni za staking za ERC-20 hutolewa kwa washikadau na kuwakilisha staked ETH zao pamoja na zawadi. Kumbuka kwamba vikundi mbalimbali vitasambaza zawadi ya staking kwa watumiaji wao kupitia mbinu tofauti kidogo, lakini haya ndiyo mada ya kawaida. + + + +Sasa! Uboreshaji wa mtandao wa Shanghai/Capella ulifanyika Aprili 2023, na ulianzisha uondoaji wa staking. Akaunti za wakaguzi kwamba vikundi vya washiriki sasa vina uwezo wa kuondoka na kutoa ETH kwenye anwani yao iliyochaguliwa ya uondoaji. Hii huwezesha uwezo wa kukomboa sehemu yako ya stake kwa ETH msingi. Wasiliana na mtoa huduma wako ili kuona jinsi wanavyotumia utendakazi huu. + +Vinginevyo, mabwawa yanayotumia tokeni ya staking ya ERC-20 huruhusu watumiaji kufanya biashara ya tokeni hii katika soko huria, kukuruhusu kuuza nafasi yako ya staking, kuondoa kwa ufanisi bila kuondoa ETH kutoka kwa mkataba wa staking. + +Maelezo zaidi kuhusu utoaji wa hisa zilizosimamishwa + + + +Kuna mfanano mwingi kati ya chaguo hizi za mabwawa ya kusimamisha hisa na exchange zisizogatuliwa, kama vile uwezo wa kusimamisha kiasi kidogo cha ETH na kuzikusanya pamoja ili kuwezesha wathibitishaji. + +Tofauti na exchange mkusanyo, chaguo zingine nyingi za pooled staking zilizojumuishwa hutumia kandarasi mahiri na/au tokeni za staking, ambazo kwa kawaida ni tokeni za ERC-20 ambazo zinaweza kuwekwa kwenye pochi yako, na kununuliwa au kuuzwa kama tokeni nyingine yoyote. Hii inatoa safu ya mamlaka na usalama kwa kukupa udhibiti wa tokeni zako, lakini bado haikupi udhibiti wa moja kwa moja wa mteja ya kudhibitisha kwa nyuma. + +Baadhi ya chaguzi za kuunganisha zimegatuliwa zaidi kuliko zingine linapokuja suala la nodi zinazoziunga mkono. Ili kukuza afya na ugatuaji wa mtandao, wadau wanahimizwa kila mara kuchagua huduma ya kuunganisha ambayo inawezesha seti ya ugatuzi isiyo na ruhusa ya waendeshaji wa nodi. + + +## Masomo zaidi {#further-reading} + +- [Saraka ya Kusimamisha Hisa ya Ethereum](https://www.staking.directory/) - _Eridian and Spacesider_ +- [Kusimamisha Hisa na Rocket Pool - Muhtasari wa Kusimamisha Hisa](https://docs.rocketpool.net/guides/staking/overview.html) - _Nyaraka za RocketPool_ +- [Kusimamisha Hisa za Ethereum na Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Nyaraka za usaidizi za Lido_ diff --git a/public/content/translations/sw/staking/saas/index.md b/public/content/translations/sw/staking/saas/index.md new file mode 100644 index 00000000000..4fc8c5497d3 --- /dev/null +++ b/public/content/translations/sw/staking/saas/index.md @@ -0,0 +1,95 @@ +--- +title: Usimamishaji wa hisa kama huduma +description: Jifunze zaidi kuhusu kuwekeza kama huduma +lang: sw +template: staking +emoji: ":money_with_wings:" +image: /images/staking/leslie-saas.png +alt: Leslie kifaru anayepepea mawinguni. +sidebarDepth: 2 +summaryPoints: + - Waendeshaji wa nodi za wahusika wengine hushughulikia utendakazi wa mteja wako wa kiidhinisha + - Uchaguzi sahihi kwa mtu yeyote aliye na 32 ETH ambaye hajisikii vizuri kushughulika na ugumu wa kiufundi wa kuendesha nodi + - Punguza uaminifu, na udumishe ulinzi wa funguo zako za kutoa pesa +--- + +## Kuwekeza kwa kushikilia kama huduma ni nini? {#what-is-staking-as-a-service} + +Kuwekeza kwa kushikilia kama huduma (“SaaS”) inawakilisha aina ya huduma za hisa ambapo unaweka 32 ETH yako mwenyewe kwa kiidhinishi, lakini ukakabidhi shughuli za nodi kwa opareta wa wahusika wengine. Mchakato huu kawaida unahusisha kuelekezwa kupitia mpangilio wa awali, ikiwa ni pamoja na utengenezaji wa funguo na amana, kisha kupakia funguo zako za kusaini kwa mtoaji huduma. Hii inaruhusu huduma kuendesha kithibitishaji chako kwa niaba yako, kwa kawaida kwa ada ya kila mwezi. + +## Kwa nini kuwekeza kupitia huduma? {#why-stake-with-a-service} + +Itifaki ya Ethereum haiungi mkono uwakilishi wa hisa, kwa hivyo huduma hizi zimeundwa ili kujaza mahitaji haya. Iwapo una ETH 32 za kushikilia, lakini hujisikii vizuri kushughulika na maunzi, huduma za SaaS hukuruhusu kukabidhi mamlaka sehemu ngumu huku ukipata zawadi za kuzuia asili. + + + + + + + + + +## Mambo ya kuzingatia {#what-to-consider} + +Kuna idadi inayoongezeka ya watoa huduma wa SaaS kukusaidia kuweka hisa yako ya ETH, lakini wote wana manufaa na hatari zao. Chaguo zote za SaaS zinahitaji mawazo ya ziada ya uaminifu ikilinganishwa na usimamiaji wako mwenyewe. Chaguo za Saas zinaweza kuwa na msimbo wa ziada wa kufunga wateja wa Ethereum ambao haujafunguliwa au kukaguliwa. SaaS pia ina athari mbaya kwenye mfumo mtawanyo wa mtandao. Kulingana na usanidi, huwezi kudhibiti kithibitishaji chako - mtoa huduma anaweza kutenda kwa njia isiyo ya uaminifu kwa kutumia ETH yako. + +Viashirio vya sifa vinatumika hapa chini kuashiria uwezo au udhaifu mashuhuri ambao mtoa huduma wa SaaS aliyeorodheshwa anaweza kuwa nao. Tumia sehemu hii kama rejeleo la jinsi tunavyofafanua sifa hizi wakati unapo-chagua huduma ya kusaidia katika safari yako ya kushikilia. + + + +## Chunguza watoa huduma za kuwekeza {#saas-providers} + +Chini ni baadhi ya watoa huduma wa SaaS wanaopatikana. Tumia viashiria vilivyo hapo juu kukusaidia kupitia huduma hizi + + + +### Watoa huduma za SaaS + + + +Tafadhali kumbuka umuhimu wa kusaidia [anuwai za mteja](/developers/docs/nodes-and-clients/client-diversity/) kwani inaboresha usalama wa mtandao, na kupunguza hatari yako. Huduma ambazo zina ushahidi wa kuzuia matumizi ya wateja walio wengi huonyeshwa kwa "anuwai za mteja wa utekelezaji" na "anuwai za mteja wa makubaliano." + +### "Vianzishi vya Funguo" + + + +Je, una pendekezo kwa mtoa huduma anayeshika kasi-kama-huduma ambaye tuliekosa? Angalia [sera yetu ya uorodheshaji wa bidhaa](/contributing/adding-staking-products/) ili kuona kama itafaa, na kuiwasilisha kwa ukaguzi. + +## Maswali yanayoulizwa mara kwa mara {#faq} + + +Mipangilio itatofautiana na mtoa huduma kwa mtoaji, lakini kwa kawaida utaongozwa kupitia kuweka funguo zozote za kutia sahihi unazohitaji (moja kwa kila 32 ETH), na kuzipakia kwa mtoa huduma wako ili kuziruhusu kuthibitishwa kwa niaba yako. Funguo za kusaini pekee hazitoi uwezo wowote wa kutoa, kuhamisha, au kutumia fedha zako. Hata hivyo, hutoa uwezo wa kupiga kura kuelekea makubaliano, ambayo yasipofanywa vizuri yanaweza kusababisha adhabu za nje ya mtandao au kufyeka. + + + +Ndiyo. Kila akaunti inaongozwa na funguo za BLS za kusaini pamoja na funguo za BLS za kutoa. Ili mthibitishaji athibitishe hali ya msururu, kushiriki katika kamati za kusawazisha na kupendekeza vizuizi, funguo za kusaini lazima zipatikane kwa urahisi na mteja wa kiidhinisha. Hizi lazima ziunganishwe kwenye mtandao kwa namna fulani, na hivyo zinachukuliwa kuwa funguo "moto". Hili ni sharti kwa mthibitishaji wako aweze kuthibitisha, na kwa hivyo funguo zinazotumiwa kuhamisha au kutoa pesa hutenganishwa kwa sababu za usalama. + +Funguo za BLS za kutoa zinatumiwa kusaini ujumbe wa mara moja unaoeleza ni akaunti gani z asafu za utekelezaji na pesa zilizotolewa zinapaswa kwenda. Mara tu ujumbe huu unapotangazwa, funguo za BLS kuondoa hazihitajiki tena. Badala yake, udhibiti wa pesa zilizotolewa hukabidhiwa kwa anwani uliyotoa. Hii hukuruhusu kuweka anwani ya kutoa pesa inayolindwa kupitia hifadhi yako baridi, na kupunguza hatari kwa fedha za kiidhinishaji chako, hata kama mtu mwingine atadhibiti funguo zako za kutia sahihi za kithibitishaji. + +Kusasisha kitambulisho cha uondoaji ni hatua inayohitajika ili kuwezesha uondoaji\*. Utaratibu huu unahusisha kutengeneza funguo za uondoaji kwa kutumia neno la siri la mnemonic lako. + +Hakikisha unahifadhi nakala ya kifungu hiki cha mbegu (seed phrase) kwa usalama, la sivyo hutaweza kutengeneza funguo zako za kutoa wakati utakapofika. + +\*Wawekezaji waliotoa anwani ya kutoa pamoja na amana ya awali hawahitaji kuiweka hii. Wasiliana na mtoa huduma wako wa SaaS kwa usaidizi kuhusu jinsi ya kuandaa kithibitishaji chako. + + + +Wawekezaji wanahitaji kutoa anwani ya kutoa (ikiwa haikutolewa kwenye amana ya awali), na malipo ya zawadi yataanza kusambazwa kiotomatiki mara kwa mara kila baada ya siku chache. + +Vithibitishaji vinaweza pia kuondoka kikamilifu kama kithibitishaji, ambacho kitafungua salio lao la ETH lililosalia kwa uondoaji. Akaunti ambazo zimetoa anwani ya uondoaji wa utekelezaji na kukamilisha mchakato wa kuondoka zitapokea salio lao lote kwenye anwani ya uondoaji iliyotolewa wakati wa kufagia kwa kiidhinishi kinachofuata. + +Maelezo zaidi kuhusu utoaji wa hisa zilizosimamishwa + + + +Kwa kutumia mtoaji wa SaaS, unakabidhi utendakazi wa nodi yako kwa mtu mwingine. Hii inakuja na hatari ya utendaji duni wa nodi, ambayo haiko katika udhibiti wako. Iwapo kiidhinishi chako kitapunguzwa, salio lako la kiidhinishi litaadhibiwa na kuondolewa kwa lazima kutoka kwa kundi la waidhinishaji. + +Baada ya kukamilisha mchakato wa kufyeka/kutoka, fedha hizi zitahamishiwa kwenye anwani ya uondoaji iliyotolewa kwa kiidhinisha. Hii inahitaji kutoa anwani ya uondoaji ili kuwezesha. Hii inaweza kuwa imetolewa kwenye amana ya awali. Ikiwa sivyo, funguo za uondoaji za kiidhishi zitahitajika kutumiwa kutia saini ujumbe unaotangaza anwani ya uondoaji. ChatGPT said:Iwapo hakuna anwani ya kutoa iliyotolewa, fedha zitasalia zimefungwa hadi itakapowekwa. + +Wasiliana na mtoa huduma mahususi wa SaaS kwa maelezo zaidi kuhusu dhamana au chaguo zozote za bima, na kwa maagizo ya jinsi ya kutoa anwani ya uondoaji. Iwapo ungependa kuwa na udhibiti kamili wa mpangilio wako wa mthibitishaji, [jifunze zaidi kuhusu jinsi ya kuwekeza ETH yako peke yako](/staking/solo/). + + +## Masomo zaidi {#further-reading} + +- [Saraka ya Kusimamisha Hisa ya Ethereum](https://www.staking.directory/) - _Eridian and Spacesider_ +- [Evaluating Staking Services](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/sw/staking/solo/index.md b/public/content/translations/sw/staking/solo/index.md new file mode 100644 index 00000000000..5254e66be8a --- /dev/null +++ b/public/content/translations/sw/staking/solo/index.md @@ -0,0 +1,209 @@ +--- +title: "''Weka ETH yako kwenye staking nyumbani.''" +description: "''Muhtasari wa jinsi ya kuanza kufanya staking ya ETH yako nyumbani.''" +lang: sw +template: staking +emoji: ":money_with_wings:" +image: /images/staking/leslie-solo.png +alt: "''Leslie kifaru akiwa kwenye chipu yake ya kompyuta.''." +sidebarDepth: 2 +summaryPoints: + - "''Pokea zawadi za juu moja kwa moja kutoka kwa protokali kwa kuhakikisha kuwa valiadata wako anafanya kazi ipasavyo na upo mtandaoni.''" + - Endesha vifaa vya nyumbani na uongeze kibinafsi usalama na ugatuaji wa mtandao wa Ethereum + - "''Ondoa uhitaji wa kumwamini mtu, na kamwe usitoe udhibiti wa funguo za fedha zako.''" +--- + +## Kuweka hisa nyumbani ni nini? {#what-is-solo-staking} + +Kuweka hisa nyumbani ni kitendo cha [kuendesha nodi ya Ethereum](/run-a-node/) iliyounganishwa kwenye mtandao na kuweka amana ya 32 ETH ili kuwezesha [mthibitishaji](#faq), jambo ambalo linakupa uwezo wa kushiriki moja kwa moja kwenye makubaliano ya mtandao. + +**Kuweka hisa nyumbani huongeza ugatuaji wa mtandao wa Ethereum**, na kuifanya Ethereum kuwa sugu zaidi dhidi ya udhibiti na imara dhidi ya mashambulizi. Njia nyingine za kuweka hisa huenda zisisaidie mtandao kwa njia sawa. Kuweka hisa nyumbani ni chaguo bora zaidi la kuweka hisa kwa ajili ya kulinda usalama wa Ethereum. + +Nodi ya Ethereum ina mteja wa safu ya utekelezaji (EL), na pia mteja wa safu ya makubaliano (CL). Wateja hawa ni programu zinazofanya kazi pamoja, pamoja na seti halali ya funguo za kutia saini, ili kuhakiki miamala na bloku, kuthibitisha kichwa sahihi cha mnyororo, kujumlisha ithibati, na kupendekeza bloku. + +Waweka hisa wa nyumbani wanawajibika kwa uendeshaji wa vifaa vinavyohitajika ili kuendesha wateja hawa. Inapendekezwa sana kutumia mashine maalum kwa hili unayoendesha ukiwa nyumbani–hii ni ya manufaa makubwa kwa afya ya mtandao. + +''Mweka dhamana nyumbani hupokea zawadi moja kwa moja kutoka kwa itifaki kwa kuhakikisha kihakiki wake anafanya kazi ipasavyo na uko mtandaoni.''. + +## Kwa nini uweke hisa ukiwa nyumbani? {#why-stake-solo} + +''Kuweka dhamana nyumbani huja na wajibu mkubwa zaidi, lakini inakupa udhibiti wa juu kabisa juu ya fedha zako na mpangilio wa dhamana wako.''. + + + + + + + +## Mambo ya kuzingatia kabla ya kuweka hisa nyumbani {#considerations-before-staking-solo} + +Ingawa tunatamani kuweka hisa nyumbani kungekuwa rahisi kufikiwa na bila hatari kwa kila mtu, hii sio hali halisi. Kuna baadhi ya mambo ya vitendo na mazito ya kuzingatia kabla ya kuchagua kuweka hisa ya ETH yako nyumbani. + + + +Unapoendesha nodi yako mwenyewe unapaswa kutumia muda kujifunza jinsi ya kutumia programu uliyochagua. Hii inahusisha kusoma nyaraka husika na kuwa makini na njia za mawasiliano za timu hizo za wasanidi programu. + +Kadri unavyoelewa zaidi kuhusu programu unayoendesha na jinsi uthibitisho wa hisa unavyofanya kazi, ndivyo hatari inavyopungua kwako kama mweka hisa, na itakuwa rahisi zaidi kurekebisha matatizo yoyote yanayoweza kutokea ukiwa mwendeshaji wa nodi. + + + +Usanidi wa nodi unahitaji kiwango cha kuridhisha cha umahiri unapofanya kazi na kompyuta, ingawa zana mpya zinafanya hili kuwa rahisi zaidi kadri muda unavyopita. Uelewa wa kiolesura cha mstari wa amri ni msaada, lakini sasa si sharti kabisa. + +Pia inahitaji usanidi wa msingi sana wa maunzi, na uelewa fulani wa vipimo vya chini vinavyopendekezwa. + + + +Kama vile funguo za faragha zinavyolinda anwani yako ya Ethereum, utahitaji kutengeneza funguo mahususi kwa ajili ya mthibitishaji chako. Lazima uelewe jinsi ya kuweka vifungu vyovyote vya maneno ya mbegu au funguo za faragha salama na vilivyolindwa. + +[Usalama wa Ethereum na kuzuia utapeli](/security/) + + + +Wakati mwingine maunzi hushindwa kufanya kazi, miunganisho ya mtandao hukatika, na programu ya mteja wakati mwingine inahitaji kusasishwa. Matengenezo ya nodi hayaepukiki na mara kwa mara yatahitaji umakini wako. Utataka kuhakikisha kuwa unafahamu masasisho yoyote ya mtandao yanayotarajiwa, au masasisho mengine muhimu ya mteja. + + + +Zawadi zako zinalingana na muda ambao mthibitishaji wako yuko mtandaoni na anathibitisha ipasavyo. Muda wa kukatika husababisha adhabu sawia na idadi ya wathibitishaji wengine walio nje ya mtandao kwa wakati mmoja, lakini hausababishi slashing. Bandwidth pia ni muhimu, kwani zawadi hupunguzwa kwa ithibati ambazo hazipokelewi kwa wakati. Mahitaji yatatofautiana, lakini kiwango cha chini cha 10 Mb/s juu na chini kinapendekezwa. + + + +Tofauti na adhabu za kutokuwa amilifu kwa kuwa nje ya mtandao, slashing ni adhabu kali zaidi iliyohifadhiwa kwa makosa ya nia mbaya. Kwa kuendesha mteja wa wachache na funguo zako zikiwa zimepakiwa kwenye mashine moja tu kwa wakati mmoja, hatari yako ya kupata adhabu ya slashing inapunguzwa. Hata hivyo, waweka hisa wote lazima wafahamu hatari za slashing. + + Zaidi kuhusu slashing na mzunguko wa maisha wa mthibitishaji + + + + + + +## Inavyofanya kazi {#how-it-works} + + + +Ukiwa hai utapata zawadi za ETH, ambazo zitawekwa mara kwa mara kwenye anwani yako ya uondoaji. + +Ikiwa utataka, unaweza kujiondoa kama mthibitishaji jambo ambalo linaondoa hitaji la kuwa mtandaoni, na kusitisha zawadi zozote zaidi. Salio lako lililosalia litatolewa kwa anwani ya uondoaji ambayo utateua wakati wa usanidi. + +[Maelezo zaidi kuhusu uondoaji wa ushikizaji](/staking/withdrawals/) + +## Anza kwenye Staking Launchpad {#get-started-on-the-staking-launchpad} + +Staking Launchpad ni programu huria ambayo itakusaidia kuwa mweka hisa. Itakuongoza katika kuchagua wateja wako, kuzalisha funguo zako na kuweka ETH yako kwenye mkataba wa amana ya kuweka hisa. Orodha hakiki imetolewa ili kuhakikisha kuwa umeshughulikia kila kitu ili kusanidi mthibitishaji wako kwa usalama. + + + +## Nini cha kuzingatia na zana za usanidi wa nodi na mteja {#node-tool-considerations} + +Kuna idadi inayoongezeka ya zana na huduma za kukusaidia kuweka staking yako ya ETH, lakini kila moja inakuja na hatari na manufaa tofauti. + +Viashiria vya sifa vinatumika hapa chini kuashiria nguvu au udhaifu mashuhuri ambao zana ya kuweka hisa iliyoorodheshwa inaweza kuwa nayo. Tumia sehemu hii kama marejeleo ya jinsi tunavyofafanua sifa hizi unapochagua zana za kukusaidia katika safari yako ya kuweka hisa. + + + +## Gundua zana za usanidi wa nodi na mteja {#node-and-client-tools} + +Kuna chaguzi mbalimbali zinazopatikana kusaidia na usanidi wako. Tumia viashiria vilivyo hapo juu kukusaidia kuongoza kupitia zana zilizo hapa chini. + + + +### Vifaa vya node + + + +Tafadhali zingatia umuhimu wa kuchagua [mteja wa wachache](/developers/docs/nodes-and-clients/client-diversity/) kwani inaboresha usalama wa mtandao, na inapunguza hatari yako. Zana zinazokuruhusu kusanidi mteja wa wachache huonyeshwa kama "multi-client." + +### "Vianzishi vya Funguo" + +Zana hizi zinaweza kutumika kama mbadala wa [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) ili kusaidia katika uzalishaji wa ufunguo. + + + +Je, una pendekezo la zana ya staking tuliyokosa? Angalia [sera yetu ya uorodheshaji wa bidhaa](/contributing/adding-staking-products/) ili kuona kama itafaa, na kuiwasilisha kwa ukaguzi. + +## Gundua miongozo ya kuweka hisa nyumbani {#staking-guides} + + + +## Maswali yanayoulizwa mara kwa mara {#faq} + +Haya ni baadhi ya maswali ya kawaida kuhusu kuweka staking ambayo yanafaa kujua. + + + +Mthibitishaji ni huluki pepe inayoishi kwenye Ethereum na inashiriki katika makubaliano ya itifaki ya Ethereum. Wathibitishaji wanawakilishwa na salio, ufunguo wa umma, na sifa nyinginezo. Mteja wa mthibitishaji ni programu inayofanya kazi kwa niaba ya mthibitishaji kwa kushikilia na kutumia ufunguo wake wa faragha. Mteja mmoja wa mthibitishaji anaweza kushikilia jozi nyingi za funguo, akidhibiti wathibitishaji wengi. + + + +Ndiyo, akaunti za kisasa za wathibitishaji zina uwezo wa kushikilia hadi ETH 2048. ETH ya ziada zaidi ya 32 itaongezeka kwa njia ya hatua, ikiongezeka kwa nyongeza za nambari kamili kadri salio lako halisi linavyoongezeka. Hii inajulikana kama salio lako la ufanisi. + +Ili kuongeza salio la ufanisi la akaunti, na hivyo kuongeza zawadi, bafa ya ETH 0.25 juu ya kizingiti chochote cha ETH kamili lazima ivukwe. Kwa mfano, akaunti yenye salio halisi la 32.9 na salio la ufanisi la 32 itahitaji kupata ETH 0.35 nyingine ili kuleta salio lake halisi juu ya 33.25 kabla ya kusababisha ongezeko la salio la ufanisi. + +Bafa hii huzuia pia salio linalofaa kushuka hadi lipite 0.25 ETH chini ya salio madhubuti ya sasa. + +Kila jozi ya funguo inayohusishwa na mthibitishaji inahitaji angalau 32 ETH ili kuamilishwa. Salio lolote lililo juu ya hili linaweza kutolewa kwa anwani husika ya uondoaji wakati wowote kupitia muamala uliotiwa saini na anwani hii. Fedha zozote zilizo juu ya salio la juu la ufanisi zitatolewa kiotomatiki mara kwa mara. + +Ikiwa uwekaji hisa nyumbani unaonekana kuwa mgumu sana kwako, zingatia kutumia mtoa huduma wa [kuweka-hisa-kama-huduma](/staking/saas/), au ikiwa unafanya kazi na chini ya 32 ETH, angalia [mabwawa ya kuweka hisa](/staking/pools/). + + + +Kuwa nje ya mtandao wakati mtandao unakamilisha ipasavyo HAKUTAsababisha slashing. Adhabu ndogo za kutokuwa amilifu hutokea ikiwa mthibitishaji wako hapatikani ili kuthibitisha kwa kipindi fulani (kila dakika 6.4), lakini hii ni tofauti sana na slashing. Adhabu hizi ni pungufu kidogo kuliko zawadi ambayo ungepata ikiwa mthibitishaji angepatikana ili kuthibitisha, na hasara inaweza kurudishwa kwa takriban muda sawa wa kuwa mtandaoni tena. + +Kumbuka kuwa adhabu za kutokuwa amilifu zinalingana na idadi ya wathibitishaji walio nje ya mtandao kwa wakati mmoja. Katika hali ambapo sehemu kubwa ya mtandao iko nje ya mtandao mara moja, adhabu kwa kila mmoja wa wathibitishaji hawa itakuwa kubwa kuliko wakati mthibitishaji mmoja hayupo. + +Katika hali mbaya zaidi ikiwa mtandao utaacha kukamilisha kwa sababu zaidi ya theluthi moja ya wathibitishaji kuwa nje ya mtandao, watumiaji hawa watapata kile kinachojulikana kama uvujaji wa kutokuwa amilifu wa kwadrotiki, ambao ni upungufu mkubwa wa ETH kutoka kwa akaunti za wathibitishaji walio nje ya mtandao. Hii inawezesha mtandao hatimaye kujiponya kwa kuchoma ETH ya wathibitishaji wasio amilifu hadi salio lao lifikie 16 ETH, ambapo watatolewa kiotomatiki kutoka kwenye bwawa la wathibitishaji. Wathibitishaji waliosalia mtandaoni hatimaye watajumuisha zaidi ya 2/3 ya mtandao tena, wakitimiza wingi mkubwa unaohitajika ili kukamilisha mnyororo tena. + + + +Kwa ufupi, hili haliwezi kuhakikishwa kikamilifu, lakini ukitenda kwa nia njema, ukaendesha mteja wa wachache na kuweka tu funguo zako za kutia saini kwenye mashine moja kwa wakati, hatari ya kupata adhabu ya slashing ni karibu sifuri. + +Kuna njia chache tu maalum ambazo zinaweza kusababisha mthibitishaji kupata adhabu ya slashing na kutolewa kwenye mtandao. Wakati wa kuandika, adhabu za slashing zilizotokea zimekuwa pekee matokeo ya usanidi wa maunzi ya ziada ambapo funguo za kutia saini huhifadhiwa kwenye mashine mbili tofauti mara moja. Hii inaweza kusababisha bila kukusudia kura maradufu kutoka kwa funguo zako, ambalo ni kosa linaloweza kusababisha slashing. + +Kuendesha mteja wa walio wengi zaidi (mteja yeyote anayetumiwa na zaidi ya 2/3 ya mtandao) pia kuna hatari ya kupata adhabu ya slashing endapo mteja huyu atakuwa na hitilafu inayosababisha uma wa mnyororo. Hii inaweza kusababisha uma wenye hitilafu ambao unakamilishwa. Ili kusahihisha na kurudi kwenye mnyororo uliokusudiwa kutahitaji kuwasilisha kura ya kuzunguka kwa kujaribu kutengua bloku iliyokamilishwa. Hili pia ni kosa linaloweza kusababisha slashing na linaweza kuepukwa kwa kuendesha mteja wa wachache badala yake. + +Hitilafu sawa katika minority client hazitawahi kuhitimishwa na kwa hivyo hazingesababisha kura ya mzingira, na zingesababisha tu adhabu za kutofanya kazi, si slashing. + + + + + +Wateja binafsi wanaweza kutofautiana kidogo katika suala la utendakazi na kiolesura cha mtumiaji, kwani kila moja hutengenezwa na timu tofauti zinazotumia lugha mbalimbali za programu. Hata hivyo, hakuna hata mmoja wao aliye "bora". Wateja wote wa uzalishaji ni programu bora, ambazo zote hufanya kazi sawa za msingi ili kusawazisha na kuingiliana na blockchain. + +Kwa kuwa wateja wote wa uzalishaji hutoa utendakazi sawa wa kimsingi, kwa kweli ni muhimu sana uchague mteja wa wachache, kumaanisha mteja yeyote ambaye HATUMIWI kwa sasa na wathibitishaji wengi kwenye mtandao. Hili linaweza kuonekana kuwa lisiloeleweka, lakini kuendesha mteja wa walio wengi au walio wengi zaidi kunakuweka kwenye hatari kubwa ya kupata adhabu ya slashing iwapo kuna hitilafu kwa mteja huyo. Kuendesha mteja wa wachache kunapunguza hatari hizi kwa kiasi kikubwa. + +Jifunze zaidi kwa nini utofauti wa wateja ni muhimu sana + + + +Ingawa seva pepe ya kibinafsi (VPS) inaweza kutumika kama mbadala wa maunzi ya nyumbani, ufikiaji halisi na eneo la mteja wako mthibiti ni muhimu. Suluhisho za wingu za kati kama vile Amazon Web Services au Digital Ocean huruhusu urahisi wa kutolazimika kupata na kuendesha maunzi, kwa gharama ya kuweka mtandao katikati. + +Kadiri wateja wathibitishaji wengi wanavyoendeshwa kwenye suluhisho moja la hifadhi ya wingu la kati, ndivyo inavyokuwa hatari zaidi kwa watumiaji hawa. Tukio lolote linalowatoa watoa huduma hawa nje ya mtandao, iwe kwa shambulio, madai ya udhibiti, au kukatika kwa umeme/mtandao, litasababisha kila mteja mthibitishaji anayetegemea seva hii kwenda nje ya mtandao kwa wakati mmoja. + +Adhabu za nje ya mtandao ni sawia na watu wengine wangapi wako nje ya mtandao kwa wakati mmoja. Kutumia VPS huongeza sana hatari kwamba adhabu za nje ya mtandao zitakuwa kali zaidi, na huongeza hatari yako ya kuvuja kwa kwadrotiki au slashing endapo kukatika ni kubwa vya kutosha. Ili kupunguza hatari yako mwenyewe, na hatari kwa mtandao, watumiaji wanahimizwa sana kupata na kuendesha maunzi yao wenyewe. + + + + +Uondoaji wa aina yoyote kutoka kwa mnyororo wa Beacon unahitaji stakabadhi za kujiondoa ili kuwekwa. + +Waweka hisa wapya huweka hii wakati wa uzalishaji wa ufunguo na amana. Waweka hisa waliopo ambao hawakuweka hii tayari wanaweza kuboresha funguo zao ili kusaidia utendakazi huu. + +Baada ya vitambulisho vya kujiondoa vimewekwa, malipo ya zawadi (ETH yaliyokusanywa zaidi ya 32 ya awali) yatasambazwa mara kwa mara kwenye anwani ya uondoaji kiotomatiki. + +Ili kufungua na kupokea salio lako lote lazima pia ukamilishe mchakato wa kuondoka kwenye kiidhinishi chako. + +Maelezo zaidi kuhusu utoaji wa hisa zilizosimamishwa + + +## Masomo zaidi {#further-reading} + +- [Saraka ya Kusimamisha Hisa ya Ethereum](https://www.staking.directory/) - _Eridian and Spacesider_ +- [Tatizo la Utofauti wa Wateja wa Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [Kusaidia Utofauti wa Wateja](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [Utofauti wa wateja kwenye safu ya makubaliano ya Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [Jinsi ya: Kununua Vifaa vya Mthibitishaji wa Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [Vidokezo vya Kuzuia Slashing kwenye Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ + + diff --git a/public/content/translations/sw/staking/withdrawals/index.md b/public/content/translations/sw/staking/withdrawals/index.md new file mode 100644 index 00000000000..b2767701410 --- /dev/null +++ b/public/content/translations/sw/staking/withdrawals/index.md @@ -0,0 +1,220 @@ +--- +title: Uondoji wa hisa +description: Ukurasa unaofupisha nini ni "staking push withdrawals", jinsi zinavyofanya kazi, na nini stakers wanahitaji kufanya ili kupata zawadi zao +lang: sw +template: staking +image: /images/staking/leslie-withdrawal.png +alt: Leslie kifaru akiwa na zawadi zake za staking +sidebarDepth: 2 +summaryPoints: + - Sasisho la Shanghai/Capella liliwezesha uondoaji wa staking kwenye Ethereum + - Waendeshaji wa validator lazima watoe anwani ya uondoaji ili kuwezesha + - Zawadi zinasambazwa kiotomatiki kila baada ya siku chache + - Validator wanaoacha kabisa staking watapokea salio lao lililobaki +--- + +**Uondoaji wa staking** unarejelea uhamisho wa ETH kutoka kwa akaunti ya mthibitishaji kwenye safu ya makubaliano ya Ethereum (Mnyororo Kioleza), hadi kwenye safu ya utekelezaji ambapo inaweza kufanyiwa miamala. + +**Malipo ya zawadi ya salio la ziada** zaidi ya 32 ETH yatatumwa kiotomatiki na mara kwa mara kwa anwani ya uondoaji iliyounganishwa kwa kila mthibitishaji, pindi itakapowekwa na mtumiaji. Watumiaji wanaweza pia **kuacha staking kabisa**, na kufungua salio lao lote la mthibitishaji. + +## Zawadi za Kusimamisha {#staking-rewards} + +Malipo ya zawadi yanashughulikiwa kiotomatiki kwa akaunti za validator zinazofanya kazi na salio la juu la 32 ETH. + +Salio lolote zaidi ya 32 ETH lililopatikana kupitia zawadi halichangii kwenye mtaji mkuu, au kuongeza uzito wa validator huyu kwenye mtandao, na hivyo hutolewa kiotomatiki kama malipo ya zawadi kila baada ya siku chache. Kando na kutoa anwani ya uondoaji mara moja, zawadi hizi hazihitaji hatua yoyote kutoka kwa mwendeshaji wa validator. Hii yote inaanzishwa kwenye safu ya makubaliano, hivyo hakuna gesi (ada ya muamala) inayohitajika katika hatua yoyote. + +### Tumefikaje hapa? {#how-did-we-get-here} + +Katika miaka michache iliyopita, Ethereum imepitia maboresho kadhaa ya mtandao ikibadilika kuwa mtandao unaolindwa na ETH yenyewe, badala ya uchimbaji unaotumia nishati nyingi kama ilivyokuwa awali. Kushiriki katika makubaliano kwenye Ethereum sasa kunajulikana kama "staking", ambapo washiriki wamefunga ETH kwa hiari, kuiweka "hatarini" kwa uwezo wa kushiriki kwenye mtandao. Watumiaji wanaofuata sheria watapata zawadi, wakati majaribio ya kudanganya yanaweza kuadhibiwa. + +Tangu kuzinduliwa kwa mkataba wa amana ya staking mnamo Novemba 2020, baadhi ya waanzilishi wa Ethereum wamefunga fedha kwa hiari ili kuanzisha "validators", akaunti maalum ambazo zina haki ya kuthibitisha na kupendekeza vitalu, zikifuata sheria za mtandao. + +Kabla ya sasisho la Shanghai/Capella, hukuweza kutumia au kufikia ETH yako iliyowekwa kwenye staking. Lakini sasa, unaweza kuchagua kupokea zawadi zako kiotomatiki kwenye akaunti uliyochagua, na pia unaweza kutoa ETH yako iliyowekwa kwenye staking wakati wowote unapotaka. + +### Niandae vipi? {#how-do-i-prepare} + + + +### Matangazo muhimu {#important-notices} + +Kutoa anwani ya uondoaji ni hatua inayohitajika kwa akaunti yoyote ya validator kabla ya kuwa na sifa ya kutoa ETH kutoka kwenye salio lake. + + + + + +Kila akaunti ya mthibitishaji inaweza tu kupewa anwani moja ya uondoaji, mara moja. Mara tu anwani inapochaguliwa na kuwasilishwa kwenye safu ya makubaliano, hii haiwezi kutenduliwa au kubadilishwa tena. Hakiki maradufu umiliki na usahihi wa anwani iliyotolewa kabla ya kuwasilisha. + + + + +Hakuna tishio lolote kwa fedha zako kwa sasa kwa kutotoa hii, ikichukuliwa kuwa fungu la maneno yako ya mnemonic/msingi limebaki salama nje ya mtandao, na halijaathiriwa kwa njia yoyote. Kukosa kuongeza stakabadhi za uondoaji kutaacha tu ETH ikiwa imefungwa kwenye akaunti ya mthibitishaji kama ilivyokuwa hadi anwani ya uondoaji itakapotolewa. + +## Kuacha staking kabisa {#exiting-staking-entirely} + +Kutoa anwani ya uondoaji kunahitajika kabla _fedha zozote_ haziwezi kuhamishwa kutoka kwa salio la akaunti ya mthibitishaji. + +Watumiaji wanaotaka kuacha staking kabisa na kutoa salio lao lote lazima pia watie sahihi na kutangaza ujumbe wa "kujiondoa kwa hiari" na funguo za mthibitishaji ambao utaanza mchakato wa kujiondoa kwenye staking. Hii inafanywa na mteja wako wa kithibitishaji na kuwasilishwa kwenye nodi yako ya makubaliano, na haihitaji gesi. + +Mchakato wa mthibitishaji kujiondoa kwenye staking huchukua muda tofauti, kulingana na wangapi wengine wanajiondoa kwa wakati mmoja. Mara tu itakapokamilika, akaunti hii haitawajibika tena kwa kutekeleza majukumu ya mtandao wa mthibitishaji, haistahiki tena zawadi, na haina tena ETH yake "iliyowekwa hisa". Kwa wakati huu akaunti itawekwa alama kuwa "inayoweza kutolewa" kikamilifu. + +Mara tu akaunti itakapotiwa alama ya "inayoweza kutolewa", na stakabadhi za uondoaji zimetolewa, hakuna kingine ambacho mtumiaji anahitaji kufanya isipokuwa kusubiri. Akaunti hufagiliwa kiotomatiki na mfululizo na wapendekezaji wa bloku kwa ajili ya fedha zinazostahiki zilizotolewa, na salio la akaunti yako litahamishwa kikamilifu (pia inajulikana kama "uondoaji kamili") wakati wa ufagiaji unaofuata. + +## Uondoaji wa staking uliwashwa lini? {#when} + +Utendaji wa uondoaji uliwezeshwa kama sehemu ya sasisho la Shanghai/Capella lililotokea **tarehe 12 Aprili 2023**. + +Sasisho la Shanghai/Capella liliwezesha ETH iliyokuwa imewekwa hisa awali kurejeshwa kwenye akaunti za kawaida za Ethereum. Hii ilifunga mduara juu ya ukwasi wa staking, na kuleta Ethereum hatua moja karibu zaidi katika safari yake ya kujenga mfumo ikolojia endelevu, unaoweza kupanuka, na salama uliogatuliwa. + +- [Zaidi kuhusu historia ya Ethereum](/ethereum-forks/) +- [Zaidi kuhusu mpango wa maendeleo wa Ethereum](/roadmap/) + +## Malipo ya uondoaji hufanyaje kazi? {#how-do-withdrawals-work} + +Iwapo mthibitishaji fulani anastahiki uondoaji au la huamuliwa na hali ya akaunti ya mthibitishaji yenyewe. Hakuna ingizo la mtumiaji linalohitajika wakati wowote ili kubaini kama akaunti inapaswa kuanzishiwa uondoaji au la—mchakato mzima unafanywa kiotomatiki na safu ya makubaliano katika mzunguko unaoendelea. + +### Wewe ni mwanafunzi wa kuona zaidi? {#visual-learner} + +Angalia maelezo haya ya uondoaji wa staking wa Ethereum na Finematics: + + + +### "Ufagiaji" wa Mthibitishaji {#validator-sweeping} + +Wakati mthibitishaji amepangiwa kupendekeza bloku inayofuata, inatakiwa kuunda foleni ya uondoaji, ya hadi uondoaji 16 unaostahiki. Hii inafanywa kwa kuanza na faharasa ya mthibitishaji 0, kubaini kama kuna uondoaji unaostahiki kwa akaunti hii kulingana na sheria za itifaki, na kuiongeza kwenye foleni ikiwa ipo. Seti ya mthibitishaji iliyopangwa kupendekeza bloku inayofuata itaendelea pale ambapo ya mwisho iliishia, ikiendelea kwa utaratibu bila kikomo. + + + + + +Fikiria kuhusu saa ya analojia. Mkono kwenye saa unaelekeza kwenye saa, huendelea kwa mwelekeo mmoja, hauruki saa zozote, na hatimaye huzunguka na kurudi mwanzo tena baada ya nambari ya mwisho kufikiwa.

+Sasa badala ya 1 hadi 12, fikiria saa ina 0 hadi N (jumla ya idadi ya akaunti za wathibitishaji ambazo zimewahi kusajiliwa kwenye safu ya makubaliano, zaidi ya 500,000 kufikia Jan 2023).

+Mkono kwenye saa unaelekeza kwa mthibitishaji anayefuata anayehitaji kukaguliwa kwa ajili ya uondoaji unaostahiki. Huanza saa 0, na huendelea kuzunguka bila kuruka akaunti zozote. Mthibitishaji wa mwisho anapofikiwa, mzunguko unaendelea tena mwanzoni. +
+
+
+ +#### Kukagua akaunti kwa ajili ya uondoaji {#checking-an-account-for-withdrawals} + +Wakati mpendekezaji anafagia wathibitishaji kwa ajili ya uondoaji unaowezekana, kila mthibitishaji anayekaguliwa anapimwa dhidi ya mfululizo mfupi wa maswali ili kubaini kama uondoaji unapaswa kuanzishwa, na ikiwa ndivyo, ni kiasi gani cha ETH kinapaswa kutolewa. + +1. **Je, anwani ya uondoaji imetolewa?** Ikiwa hakuna anwani ya uondoaji iliyotolewa, akaunti inarukwa na hakuna uondoaji unaoanzishwa. +2. **Je, mthibitishaji amejiondoa na anaweza kutoa?** Ikiwa mthibitishaji amejiondoa kabisa, na tumefikia epoki ambapo akaunti yake inachukuliwa kuwa "inayoweza kutolewa", basi uondoaji kamili utachakatwa. Hii itahamisha salio lote lililobaki kwenye anwani ya uondoaji. +3. **Je, salio halisi limefikia kiwango cha juu cha 32?** Ikiwa akaunti ina stakabadhi za uondoaji, haijatoka kikamilifu, na ina zawadi zaidi ya 32 zinazosubiri, uondoaji kiasi utachakatwa ambao utahamisha tu zawadi zilizo juu ya 32 kwenye anwani ya uondoaji ya mtumiaji. + +Kuna vitendo viwili tu vinavyochukuliwa na waendeshaji wa vithibitishaji wakati wa mzunguko wa maisha wa mthibitishaji ambavyo huathiri mtiririko huu moja kwa moja: + +- Toa stakabadhi za uondoaji ili kuwezesha aina yoyote ya uondoaji +- Toka kwenye mtandao, jambo ambalo litaanzisha uondoaji kamili + +### Bila gesi {#gas-free} + +Njia hii ya uondoaji wa staking huepuka kuwataka waweka hisa kuwasilisha muamala wao wenyewe wakiomba kiasi fulani cha ETH kitolewe. Hii inamaanisha hakuna **gesi (ada ya muamala) inayohitajika**, na uondoaji pia haushindani na nafasi iliyopo ya bloku ya safu ya utekelezaji. + +### Nitapata zawadi zangu za staking mara ngapi? {#how-soon} + +Uondoaji wa juu wa 16 unaweza kuchakatwa katika bloku moja. Kwa kiwango hicho, uondoaji wa wathibitishaji 115,200 unaweza kuchakatwa kwa siku (kwa kuchukulia hakuna nafasi zilizokosekana). Kama ilivyoelezwa hapo juu, wathibitishaji wasio na uondoaji unaostahiki watarukwa, na kupunguza muda wa kumaliza ufagiaji. + +Kwa kupanua hesabu hii, tunaweza kukadiria muda utakaotumika kuchakata idadi fulani ya uondoaji: + + + +| Idadi ya uondoaji | Muda wa kukamilisha | +| :---------------: | :----------------------: | +| 400,000 | siku 3.5 | +| 500,000 | siku 4.3 | +| 600,000 | siku 5.2 | +| 700,000 | siku 6.1 | +| 800,000 | siku 7.0 | + + + +Kama unavyoona, hii hupungua kasi kadiri wathibitishaji wengi wanavyokuwa kwenye mtandao. Ongezeko la nafasi zilizokosekana linaweza kupunguza kasi hii kwa uwiano, lakini kwa ujumla hii itawakilisha upande wa polepole wa matokeo yanayowezekana. + +## Maswali yanayoulizwa mara kwa mara {#faq} + + +Hapana, mchakato wa kutoa stakabadhi za uondoaji ni wa mara moja tu, na hauwezi kubadilishwa baada ya kuwasilishwa. + + + +Kwa kuweka anwani ya uondoaji ya safu ya utekelezaji, stakabadhi za uondoaji za mthibitishaji huyo hubadilishwa kabisa. Hii inamaanisha stakabadhi za zamani hazitafanya kazi tena, na stakabadhi mpya zinaelekeza kwenye akaunti ya safu ya utekelezaji. + +Anwani za uondoaji zinaweza kuwa mkataba-erevu (unadhibitiwa na msimbo wake), au akaunti inayomilikiwa nje (EOA, inayodhibitiwa na ufunguo wake binafsi). Kwa sasa akaunti hizi hazina njia ya kuwasiliana na ujumbe kurudi kwenye safu ya makubaliano ambayo ingeashiria mabadiliko ya stakabadhi za mthibitishaji, na kuongeza utendaji huu kungeongeza ugumu usio wa lazima kwenye itifaki. + +Kama mbadala wa kubadilisha anwani ya uondoaji kwa mthibitishaji fulani, watumiaji wanaweza kuchagua kuweka mkataba-erevu kama anwani yao ya uondoaji ambayo inaweza kushughulikia uzungushaji wa funguo, kama vile Safe. Watumiaji wanaoweka fedha zao kwenye EOA zao wenyewe wanaweza kutoka kikamilifu ili kutoa fedha zao zote zilizowekwa hisa, na kisha kuweka hisa tena kwa kutumia stakabadhi mpya. + + + + +Ikiwa wewe ni sehemu ya [bwawa la staking](/staking/pools/) au unamiliki tokeni za staking, unapaswa kuwasiliana na mtoa huduma wako kwa maelezo zaidi kuhusu jinsi uondoaji wa staking unavyoshughulikiwa, kwani kila huduma hufanya kazi tofauti. + +Kwa ujumla, watumiaji wanapaswa kuwa huru kudai ETH yao ya msingi iliyowekwa hisa, au kubadilisha mtoa huduma wa staking wanayemtumia. Ikiwa bwawa fulani linakuwa kubwa sana, fedha zinaweza kutolewa, kukombolewa, na kuwekwa hisa tena na mtoa huduma mdogo. Au, ikiwa umekusanya ETH ya kutosha unaweza [kuweka hisa kutoka nyumbani](/staking/solo/). + + + +Ndiyo, mradi tu mthibitishaji wako ametoa anwani ya uondoaji. Hii lazima itolewe mara moja ili kuwezesha uondoaji wowote, kisha malipo ya zawadi yataanzishwa kiotomatiki kila baada ya siku chache kwa kila ufagiaji wa mthibitishaji. + + + + +Hapana, ikiwa mthibitishaji wako bado anafanya kazi kwenye mtandao, uondoaji kamili hautafanyika kiotomatiki. Hii inahitaji kuanzisha mwenyewe kujiondoa kwa hiari. + +Mara tu mthibitishaji anapokamilisha mchakato wa kutoka, na kwa kuchukulia kuwa akaunti ina stakabadhi za uondoaji, salio lililobaki litatolewa wakati wa ufagiaji wa mthibitishaji unaofuata. + + + +Uondoaji umeundwa kusukumwa kiotomatiki, ukihamisha ETH yoyote ambayo haichangii kikamilifu kwenye hisa. Hii inajumuisha salio kamili kwa akaunti ambazo zimekamilisha mchakato wa kutoka. + +Haiwezekani kuomba mwenyewe kiasi maalum cha ETH kitolewe. + + + + +Waendeshaji wa vithibitishaji wanapendekezwa kutembelea ukurasa wa Staking Launchpad Withdrawals ambapo utapata maelezo zaidi kuhusu jinsi ya kuandaa mthibitishaji wako kwa ajili ya uondoaji, muda wa matukio, na maelezo zaidi kuhusu jinsi uondoaji unavyofanya kazi. + +Ili kujaribu usanidi wako kwenye testnet kwanza, tembelea Hoodi Testnet Staking Launchpad ili kuanza. + + + +Hapana. Mara tu mthibitishaji anapotoka na salio lake lote limetolewa, fedha zozote za ziada zilizowekwa kwa mthibitishaji huyo zitahamishiwa kiotomatiki kwenye anwani ya uondoaji wakati wa ufagiaji wa mthibitishaji unaofuata. Ili kuweka hisa tena ETH, mthibitishaji mpya lazima aamilishwe. + + +## Masomo zaidi {#further-reading} + +- [Staking Launchpad Withdrawals](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: Uondoaji wa kushinikiza wa Mnyororo Kioleza kama operesheni](https://eips.ethereum.org/EIPS/eip-4895) +- [PEEPanEIP #94: Uondoaji wa ETH Iliyowekwa Hisa (Majaribio) na Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Uondoaji wa kushinikiza wa Mnyororo Kioleza kama operesheni na Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Kuelewa Salio Halisi la Mthibitishaji](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/public/content/translations/sw/web3/index.md b/public/content/translations/sw/web3/index.md new file mode 100644 index 00000000000..69d8d6fdd6a --- /dev/null +++ b/public/content/translations/sw/web3/index.md @@ -0,0 +1,169 @@ +--- +title: Je tovuti ya tatu (Web3) ni nini na kwanini ni muhimu? +description: Utangulizi wa tovuti ya tatu mageuzi yajayo ya tovuti ulimwenguni na kwanini ni muhimu. +lang: sw +--- + +# Utangulizi wa Web3 {#introduction} + +
+ +
+ +Uwekaji kati umesaidia mabilioni ya watukwenye wavuti ya ulimwenguni kote na kuunda miundombinu thabiti inayoishi. Wakati huo huo mashirika machache ya jumuiya kuu yana ngome katika maeneo makubwa ya wavuti ya ulimwenguni kote, yenye kuamua kipi kuruhusiwe na kipi kisiruhusiwe. + +Tovuti ya tatu ni suluhisho la shida hii. Badala ya mtandao uliohodhiwa na makampuni makubwa ya teknolojia, tovuti ya 3 inakumbatia ugatuaji na inajengwa kuendeshwa na kumilikiwa na watumiaji wake. Tovuti ya tatu inaweka mamlaka au nguvu katika mikono ya watu binafsi badala ya taasisi au mashirika binafsi. +Kabla ya kuongelea tovuti ya tatu, tuangalie namna tulivyofika hapa. + + + +## Wavuti ya awali {#early-internet} + +Watu wengi hufikiria mtandao kama nguzo yenye kuendelea ya maisha ya kisasa iligunduliwa na ikawepo tangu wakati huo. Ingawa, mtandao/wavuti wengi wetu tunavyoufahamu sasa ni tofauti na ilivyofikiriwa awali. Ili kuelewa hili vizuri ni vyema ni kuvunja historia fupi ya mtandao/tovuti katika vipindi huru tovuti 1.0 na tovuti 2.0. + +### Web 1.0: Kusoma Pekee (1990-2004) {#web1} + +Mwaka 1989 huko CERN, Geneva Tim Berner-lee alikuwa bize kutengeneza itifaki ambayo ingekuwa wavuti ya mtandao wa ulimwengu. Wazo lake? Kutengeneza itifaki zilizo wazi zilizoruhusiwa kushiriki taarifa kote ulimwenguni. + +Uanzishwaji wa kwanza wa uundaji wa Berners-Lee ambao kwa sasa unajulikana kama 'tovuti 1.0', ulitokea takribani kati ya mwaka 1990 hadi 2004. Tovuti 1.0 ilikuwa tovuti zilizotulia ambazo zilimilikiwa na makampuni, na hakukuwa na muingiliano kati ya watumiaji watu binafsi mara chache walitoa maudhui - na kusababisha kujulikana kama wavuti ya kusoma tu. + +![Muundo wa mteja-seva, unaowakilisha Web 1.0](./web1.png) + +### Web 2.0: Kusoma-Kuandika (2004-sasa) {#web2} + +Kipindi cha tovuti 2.0 kilianza mnamo mwaka 2004 ikiwa ni pamoja na kuibuka kwa majukwaa ya mitandao ya kijamii. Badala ya Kusoma tu, wavuti hii ilibadilika na kuwa ya kusoma-kuandika. Badala ya makampuni kutoa maudhui kwa watumiaji, walianza pia kutoa majukwaa ya kushiriki maudhui yanayotokana na mtumiaji na kujihusisha na mwingiliano kati ya mtumiaji na mtumiaji. Kadiri watu wengi walivyoingia mtandaoni, makampuni machache maarufu yalianza kudhibiti idadi isiyo na uwiano pamoja na thamani inayozalishwa kwenye wavuti. Tovuti 2.0 pia ilizalisha mtindo wa mapato unaoendeshwa na utangazaji. Ingawa watumiaji wanaweza kuunda maudhui, hawakuyamiliki au kunufaika nayo kutokana na uchumaji wake wa mapato. + +![Muundo wa mteja-seva, unaowakilisha Web 2.0](./web2.png) + + + +## Web 3.0: Kusoma-Kuandika-Kumiliki {#web3} + +Dhana ya 'Web 3.0' ilibuniwa na mwanzilishi mwenza wa [Ethereum](/what-is-ethereum/) Gavin Wood muda mfupi baada ya Ethereum kuzinduliwa mwaka 2014. Gavin aliweka kwa maneno suluhisho la tatizo ambalo watumiaji wengi wakwanza wa sarafu za kidijitali walihisi: Mtandao ulihitaji uaminifu mkubwa. Huo ni, Mtandao mkubwa ambao watu wanaujua na kutumia leo unategemea kuamini makampuni machache ya kibinafsi kufanya kazi kwa manufaa ya umma. + +![Muundo wa nodi uliogatuliwa, unaowakilisha Web3](./web3.png) + +### Je, Web3 ni nini? {#what-is-web3} + +Tovuti ya tatu imekuwa muda wa kuvutia watu wote kwa maono ya mtandao mpya, bora zaidi. Kwa msingi wake, tovuti ya tatu hutumia mnyororo wa bloku, cryptocurrensets, na NFTs kurejesha nguvu kwa watumiaji katika mfumo wa umiliki. [Chapisho la mwaka 2020 kwenye Twitter](https://twitter.com/himgajria/status/1266415636789334016) lilisema vyema zaidi: Web1 ilikuwa ya kusoma-pekee, Web2 ni ya kusoma-kuandika, Web3 itakuwa ya kusoma-kuandika-kumiliki. + +#### Mawazo ya msingi ya Web3 {#core-ideas} + +Ingawa ni changamoto kutoa ufafanuzi wa tovuti ya tatu ni nini, kanuni chache za msingi huongoza uundaji wake. + +- **Web3 imegatuliwa:** badala ya sehemu kubwa za mtandao kudhibitiwa na kumilikiwa na huluki za kati, umiliki unasambazwa miongoni mwa wajenzi na watumiaji wake. +- **Web3 haina ruhusa:** kila mtu ana ufikiaji sawa wa kushiriki katika Web3, na hakuna anayetengwa. +- **Web3 ina malipo ya asili:** inatumia sarafu ya kidigitali kwa matumizi na kutuma pesa mtandaoni badala ya kutegemea miundombinu iliyopitwa na wakati ya benki na wasindikaji wa malipo. +- **Web3 haiitaji uaminifu:** inafanya kazi kwa kutumia vivutio na mifumo ya kiuchumi badala ya kutegemea wahusika wengine wanaoaminika. + +### Kwanini tovuti ya tatu ni muhimu? {#why-is-web3-important} + +Ingawa vipengele vikuu vya tovuti ya tatu havijatengwa na havitoshi katika kategoria nadhifu, kwa urahisi tumejaribu kuvitenganisha ili kurahisisha kueleweka. + +#### Umiliki {#ownership} + +Tovuti ya tatu inakupa umiliki wa mali zako za kidijitali kwa njia ambayo haijawahi kushuhudiwa. Kwa mfano, unacheza mchezo wa wa tovuti ya pili. Kama ukinunua bidhaa ya ndani ya mchezo, inahusishwa moja kwa moja na akaunti yako. Kama mtengenezaji wa gemu au mchezo akifuta akaunti yako, utapoteza vitu hivi. Au, kama ukiacha kucheza mchezo, utapoteza thamani uliyowekeza kwenye bidhaa zako za ndani ya mchezo. + +Web3 inaruhusu umiliki wa moja kwa moja kupitia [tokeni zisizoweza kubadilishwa (NFTs)](/glossary/#nft). Hakuna mtu yeyote, hata watayarishaji wa mchezo, aliye na uwezo wa kukunyang'anya umiliki. Na, kama ukiacha kucheza, unaweza kuuza au kubadilishana bidhaa zako za ndani ya mchezo kwenye soko huria na kurudisha thamani yake. Gundua [michezo ya onchain](/gaming/) ili kuona hili likifanyika. + + + + +
Pata maelezo zaidi kuhusu NFT
+ + Zaidi kuhusu NFTs + +
+
+ +#### Ukinzani dhidi ya udhibiti {#censorship-resistance} + +Nguvu kubwa inayobadilika kati ya majukwaa na waundaji maudhui haijasawazishwa kwa kiasi kikubwa. + +OnlyFans pekee ndio tovuti ya maudhui ya watu wazima inayozalishwa na watumiaji na waundaji maudhui zaidi ya milioni 1, wengi wao wakitumia jukwaa kama chanzo chao kikuu cha mapato. Mnamo Agosti 2021, OnlyFans ilitangaza mipango ya kupiga marufuku maudhui ya ngono waziwazi. Tangazo hilo lilizua hasira miongoni mwa watayarishaji kwenye jukwaa, ambao walihisi kuwa walikuwa wakiibiwa mapato kwenye jukwaa ambalo walisaidia kuunda. Mara baada ya mzozo huo, uamuzi ulibadilishwa haraka. Licha ya waundaji kushinda vita hii, inaonyesha tatizo la waundaji la wavuti ya 2.0: unapoteza sifa na wafuasi uliowapata kwenye jukwaa kama utaondoka. + +Kwenye wavuti wa 3, taarifa zako zinaishi kwenye kiambajengo. Ukiamua kuondoka kwenye jukwaa, unaweza chukua sifa zako, ukazieka kwenye kiunganishi kingine kinachoendana na maadili yako. + +Wavuti wa 2 inamuhitaji muunda maudhui kuamini jukwa kutokubadilisha sheria zao, lakini kuzuia uthibiti ni kipengele cha asili cha jukwa la wavuti wa 3. + +#### Mashirika huru yaliyogatuliwa (DAOs) {#daos} + +Kama kumiliki taarifa zako kwenye wavuti wa 3, unaweza kumiiki jukwaa kwa ujumla, kwa kutumia tokeni zinazokuwa kama hisa kwenye kampuni. Mashirika gatuzi yanakuwezesha kuendesha umiliki wa jukwaa na kufanya maamuzi kuhusu baadae yake. + +DAOs zinafafanuliwa kitaalamu kama [mikataba-erevu](/glossary/#smart-contract) iliyokubaliwa ambayo hufanya maamuzi yaliyogatuliwa kiotomatiki juu ya hazina ya rasilimali (tokeni). Watumiaji wenye tokeni wanapiga kura jinsi rasilimali itakavyo tumika, na msimbo automatiki unafanya mrejesho wa kura. + +Hata hivyo, watu wengi hueleza jamii nyingi za wavuti wa 3 kama mashirika gatuzi. Jamii hizi zina viwango tofauti vya ugatuzi na automatiki kwa kutumia msimbo. Sasa ivi, tuna chunguza nini ni mashirika gatuzi na jinsi gani yatakavyo kuwepo siku zijazo. + + + + +
Pata maelezo zaidi kuhusu DAO
+ + Zaidi kuhusu DAOs + +
+
+ +### Utambulisho {#identity} + +Kiasilia, ungeunda akaunti kwa kila jukwaa utakalotumia. Kwa mfano, unaweza ukawa na akaunti ya Twitter, akaunti ya YouTube, na akaunti ya Reddit. Unataka kubadilisha uonekanaji wako au wasifu picha? Utatakiwa kufanya kwa kila akaunti. Unaweza kuingia kwa kutumia jamii nyinginezo, lakini hii inaleta shida inayojuliakna ya uthibiti. Kwa kubonyeza mara moja, jukwaa hili linaweza kukufungia nje maisha yako ya mtandaoni. Hata vibaya zaidi, majukwaa mengi yanahitaji uwaamini wao na taarifa za utambulisho binafsi kutengeneza akaunti. + +Web3 hutatua matatizo haya kwa kukuruhusu kudhibiti utambulisho wako wa kidijitali na anwani ya Ethereum na wasifu wa [Huduma ya Majina ya Ethereum (ENS)](/glossary/#ens). Kutumia anwani ya Ethereum unakuwezesha kuingia kwa mara moja kwenye majukwaa ambayo ni salama, yanazuia uthibiti kutoka kwa mtu mwingine, na kutokujulikana. + +### Malipo ya asili {#native-payments} + +Miundombinu ya malipo ya wavuti wa 2 unategemea mabenki na wachakata miamala, ikitoa watu bila akaunti za benki au hao ambao imetokea wanaishi kwenye mipaka ya nchi isiyo sahihi. +Web3 hutumia tokeni kama [ETH](/glossary/#ether) kutuma pesa moja kwa moja kwenye kivinjari na haihitaji mhusika mwingine anayeaminika. + + + Zaidi kuhusu ETH + + +## Mapungufu ya Web3 {#web3-limitations} + +Licha ya manufaa mengi ya Web3 katika hali yake ya sasa, bado kuna vikwazo vingi ambavyo mfumo wa ikolojia lazima ushughulikie ili uweze kustawi. + +### Upatikanaji {#accessibility} + +Vipengele muhimu vya Web3, kama vile Kuingia kwa kutumia Ethereum, tayari vinapatikana kwa mtu yeyote kutumia kwa gharama sifuri. Lakini, gharama ya miamala bado ni kubwa kwa wengi. Web3 ina uwezekano mdogo wa kutumiwa katika mataifa maskini, yanayoendelea kutokana na ada za juu za ununuzi. Kwenye Ethereum, changamoto hizi zinatatuliwa kupitia [ramani](/roadmap/) na [suluhu za kuongeza za safu ya 2](/glossary/#layer-2). Teknolojia iko tayari, lakini tunahitaji viwango vya juu zaidi vya kupitishwa kwenye safu ya 2 ili kufanya Web3 ipatikane na kila mtu. + +### Uzoefu wa mtumiaji {#user-experience} + +Kizuizi cha kiufundi cha kuingia kwa kutumia Web3 kwa sasa kiko juu sana. Watumiaji lazima waelewe maswala ya usalama, waelewe nyaraka ngumu za kiufundi,, na waelekeze miingiliano ya violesura. [Watoa huduma za mkoba](/wallets/find-wallet/), hasa, wanafanya kazi kutatua hili, lakini maendeleo zaidi yanahitajika kabla ya Web3 kupitishwa kwa wingi. + +### Elimu {#education} + +Web3 inaleta dhana mpya zinazohitaji kujifunza miundo tofauti ya kiakili kuliko ile inayotumika katika Web2.0. Msukumo kama huo wa elimu ulitokea wakati Web1.0 ilipokuwa ikipata umaarufu mwishoni mwa miaka ya 1990; wafuasi wa wavuti wa ulimwengu mzima walitumia mbinu nyingi za kielimu kuelimisha umma kutoka kwa sitiari rahisi (barabara kuu ya habari, vivinjari, kuvinjari wavuti) hadi [matangazo ya televisheni](https://www.youtube.com/watch?v=SzQLI7BxfYI). Web3 sio ngumu, lakini ni tofauti. Mipango ya kielimu kuwafahamisha watumiaji wa Web2 kuhusu dhana hizi za Web3 ni muhimu kwa mafanikio yake. + +Ethereum.org inachangia elimu ya Web3 kupitia [Programu yetu ya Tafsiri](/contributing/translation-program/), ikilenga kutafsiri maudhui muhimu ya Ethereum katika lugha nyingi iwezekanavyo. + +### Miundombinu ya kati {#centralized-infrastructure} + +Mfumo ikolojia wa Web3 ni mchanga na unabadilika haraka. Kama matokeo, kwa sasa inategemea sana miundombinu ya mfumo mkusanyo (GitHub, Twitter, Discord, nk). Makampuni mengi ya Web3 yanaharakisha kujaza mapengo haya, lakini kujenga miundombinu ya ubora wa juu na ya kuaminika inachukua muda. + +## Mustakabali uliogatuliwa {#decentralized-future} + +Web3 ni mfumo mchanga na unaoendelea. Gavin Wood aliunda neno hilo mnamo 2014, lakini mengi ya maoni haya yamekuwa ukweli hivi karibuni. Katika mwaka uliopita pekee, kumekuwa na ongezeko kubwa la maslahi ya sarafu-fiche, kuboreshwa kwa ufumbuzi wa safu ya 2, majaribio makubwa ya aina mpya za utawala na mapinduzi katika utambulisho wa kidijitali. + +Tuko mwanzoni tu wa kuunda Wavuti bora na Web3, lakini tunapoendelea kuboresha miundombinu ambayo itaiunga mkono, mustakabali wa Wavuti unaonekana mzuri. + +## Ninawezaje kushiriki {#get-involved} + +- [Pata mkoba](/wallets/) +- [Tafuta jumuiya](/community/) +- [Gundua programu za Web3](/apps/) +- [Jiunge na DAO](/dao/) +- [Jenga kwenye Web3](/developers/) + +## Masomo zaidi {#further-reading} + +Web3 haijafafanuliwa kwa ukali. Washiriki mbalimbali wa jumuiya wana mitazamo tofauti juu yake. ''Hapa kuna baadhi yao.'': + +- [What is Web3? Mtandao Uliogatuliwa wa Baadaye Umefafanuliwa](https://www.freecodecamp.org/news/what-is-web3) – _Nader Dabit_ +- [Kuielewa Web 3](https://medium.com/l4-media/making-sense-of-web-3-c1a9e74dcae) – _Josh Stark_ +- [Kwa nini Web3 ni Muhimu](https://a16zcrypto.com/posts/article/why-web3-matters/) — _Chris Dixon_ +- [Kwa nini Ugatuzi ni Muhimu](https://onezero.medium.com/why-decentralization-matters-5e3f79f7638e) - _Chris Dixon_ +- [Mandhari ya Web3](https://a16z.com/wp-content/uploads/2021/10/The-web3-Readlng-List.pdf) – _a16z_ +- [Mjadala wa Web3](https://www.notboring.co/p/the-web3-debate) – _Packy McCormick_ + + diff --git a/public/content/translations/sw/what-are-apps/index.md b/public/content/translations/sw/what-are-apps/index.md new file mode 100644 index 00000000000..591f4d28385 --- /dev/null +++ b/public/content/translations/sw/what-are-apps/index.md @@ -0,0 +1,80 @@ +--- +title: Aplikesheni za Ethereum +metaTitle: Proguramu ya Ethereum | proguramu isiyo na udhibiti wa kati kwenye Ethereum +description: Programu zinazojengwa kwenye Ethereum ni bure, za kimataifa na zinatumia blockchain ya umma badala ya server zinazomilikiwa na kampuni binafsi. Hii inamaanisha unaweza kutumia akaunti ile ile katika kila mradi na bado kudumisha faragha yako.''. +lang: sw +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +showDropdown: false +image: /images/doge-computer.png +summary: Programu zinazojengwa kwenye Ethereum ni bure, za kimataifa na zinatumia blockchain ya umma badala ya server zinazomilikiwa na kampuni binafsi. Hii inamaanisha unaweza kutumia akaunti ile ile katika kila mradi na bado kudumisha faragha yako.''. +--- + +## Programu zenye uwezo mkubwa kuliko kawaida{#apps-with-superpowers} + +''Programu za Ethereum zinaonekana na kufanya kazi kama apps za kawaida.'' ''Ingawa zinaonekana kama apps za kawaida , ndani yake kuna uwezo wa kipekee .''. + +''Mara tu programu inapochapishwa kwenye Ethereum , inakuwa haiwezi simamishwa .''. ''Hii ni kwa sababu mtandao wa Ethereum umesambazwa kwenye maelfu ya kompyuta duniani kote.''. ''Hakuna mtu anayeweza kuondoa programu zinazoendeshwa kwenye Ethereum, kwa sababu hakuna seva moja ya kulengwa.''. ''Ethereum pia haina upendeleo, hiyo mtu yeyote popote duniani anaweza kuitumia au kujiunganisha nayo na kujenga marekebisho yake juu yake.''. + +## ''dapp ni nini?''? {#what-is-a-dapp} + +''Programu za Ethereum zinaendesha mantiki yake kwenye blockchain ya Ethereum badala ya seva ya kati.''. ''Ndiyo maana mara nyingi zimekuwa zikijulikana kama programu zisizo na udhibiti wa kati, au kwa kifupi dApps.''. + + + + + + + +## ''Kwa nini hii ni muhimu?''{#why-does-this-matter} + +''Programu za Ethereum zinaweza kufanya mambo ambayo hayawezekani kabisa kwa programu za kawaida.''. ''Kama vile kukopesha mtu usiyemjua kabisa kwa uhakika kwamba utarudishiwa pesa zako, pamoja na riba.''. ''Bila kulipa mtu wa kati ''anayeaminika'', kama wakili, kushughulikia muamala huo.''. + +'' Kuna programu ya kila kitu: michezo, fedha, kazi, ujumbe, uhifadhi na mengine mengi.''. ''Kwa programu nyingi huusishwi na matangazo, wala huzuizwi kwa upatikanaji uliozaliwa.''. + +''Unachohitaji ni pochi ya Ethereum na kiasi kidogo cha ETH ili kuanza kutumia programu yoyote ya Ethereum.''. + +## ''Inafanyaje kazi ''?''{#how-does-it-work} + +''Programu zinaendeshwa na mikataba mahiri-vipande vya msimbo vinavyoishi kwenye blockchain ya Ethereum.''. ''Tofauti na programu za kawaida, hazihitaji kampuni ili kuziendesha.''. + +| ''Kipengele.'' | ''Programu za kawaida.'' | ''Programu za Ethereum.'' | +| --------------------------------------- | ---------------------------------------------- | ----------------------------------------------------------- | +| ''**Nani anayeiongoza?**' | ''Kampuni.'' | ''Hakuna mtu.'' | +| ''Anayeendesha.'' | ''server za kampuni binafsi.'' | ''Mnyororo wa vitalu ya umma ya Ethereum.'' | +| ''\*\*Je, inaweza kuzuiwa au kufutwa?'' | Ndiyo | Hapana | +| ''\*\*Nani anamiliki data zako?'' | ''Kawaida sio wewe.'' | ''Unamiliki data yako.'' | + + + +
+ +![./developers-eth-blocks.png] +
+ +## ''Programu za Ethereum ni kama lego{#ethereum-apps-are-like-legos}.'' + +''Wakati programu zote zinatengenezwa kwenye Ethereum, zote zinalingana.''. ''Tokeni ya programu moja, itafanya kazi kwenye programu tofauti kabisa.''. ''Hii ni kama kuwa na uwezo wa kuchapisha ujumbe mfupi kwenye ukuta wako wa Facebook.''. ''Kwa kweli, mara nyingi unaweza kutumi tena profaili moja kwenye programu nyingi tofauti za Ethereum bila haja ya kusajili kila mahali tofauti.''. + + + +## Masomo zaidi {#further-reading} + +- ''[Ethereum kwa waanzilishi](/what-is-ethereum).'' +- ''[Nini maana ya mkataba mahiri?](/developers/docs/smart-contracts/) +- ''[Nyaraka za kiufundi za dApp](/developers/docs/dapps/) + +## Maswali yanayoulizwa mara kwa mara {#faq} + + +

''dApp ina maana ya programu zisizo na udhibiti wa kati.''. ''Hizo ni programu zilizojengwa juu ya mitandao ya mnyororo wa bloku kama Ethereum.''. ''Zinaitwa zisizo na udhibiti wa kati kwa sababu mtandao wa msingi pia hauna udhibiti wa kati.''.

+
+ + +

''Baadhi ya programu hukuruhusu kufanya biashara au kununua tokeni za crypto, lakini si programu zote zimeundwa kwa ajili hiyo.''. Kama unatafuta kununua tokeni zako za kwanza, tembelea [Pata ETH](/get-eth).

+
+ + +

''Walleti za crypto hukuruhusu kushikilia tokeni zako na kusimamia akaunti yako ya Ethereum.''. ''Kuna walleti nyingi nzuri, kila moja ikihudumia kusudi tofauti.''. "Ili kujua ni pochi gani inayokufaa zaidi, tembelea [orodha yetu ya pochi]."

+
\ No newline at end of file diff --git a/public/content/translations/sw/whitepaper/index.md b/public/content/translations/sw/whitepaper/index.md new file mode 100644 index 00000000000..fa884f95400 --- /dev/null +++ b/public/content/translations/sw/whitepaper/index.md @@ -0,0 +1,523 @@ +--- +title: Karatasi nyeupe ya Ethereum +description: Karatasi ya utangulizi kwa Ethereum, iliyochapishwa mnamo mwaka wa 2013 kabla ya kuzinduliwa kwake. +lang: sw +sidebarDepth: 2 +hideEditButton: true +--- + +# Karatasi Nyeupe ya Ethereum {#ethereum-whitepaper} + +_Karatasi hii ya utangulizi ilichapishwa awali mwaka 2014 na Vitalik Buterin, mwanzilishi wa [Ethereum](/what-is-ethereum/), kabla ya mradi kuzinduliwa mwaka 2015. Ni muhimu kuzingatia kwamba Ethereum, kama miradi mingi ya kijamii, ya chanzo wazi, imebadilika tangu kuanzishwa kwake._ + +_Wakati tuna miaka kadhaa, tunatunza karatasi hii kwa sababu inaendelea kutumika kama kumbukumbu muhimu na uwakilishi sahihi wa Ethereum na maono yake. Ili kujifunza kuhusu maendeleo ya hivi karibuni ya Ethereum, na jinsi mabadiliko kwenye itifaki yanavyofanywa, tunapendekeza [mwongozo huu](/learn/)._ + +[Watafiti na wasomi wanaotafuta toleo la kihistoria au la kikanuni la karatasi nyeupe [kutoka Desemba 2014] wanapaswa kutumia PDF hii.](./whitepaper-pdf/Ethereum_Whitepaper_-_Buterin_2014.pdf) + +## Jukwaa la Kizazi Kijacho la Mkataba-erevu na Mfumo Uliotawanywa {#a-next-generation-smart-contract-and-decentralized-application-platform} + +Maendeleo ya Bitcoin ya Satoshi Nakamoto mnamo 2009 mara nyingi yamesifiwa kama maendeleo makubwa katika pesa na sarafu, ikiwa ni mfano wa kwanza wa mali ya kidijitali ambayo wakati huo huo haina uungwaji mkono au "[thamani ya asili](https://bitcoinmagazine.com/culture/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it)" na haina mtoaji au mdhibiti wa kati. Ingawaje, kando ya hayo, pengime muhimu zaidi, sehemu ya jaribio la Bitcoin ni msingi wa kiteknologia wa blockchain kama kifaa cha makubaliano yaliyosambazwa, na mtazamo unazidi kuanza kuelekezwa kwa mwenendo mwingine wa Bitcoin. Matumizi mbadala ya teknolojia ya mnyororo wa bloku yanayotajwa mara kwa mara ni pamoja na kutumia mali za kidijitali kwenye mnyororo wa bloku kuwakilisha sarafu maalum na zana za kifedha ("[colored coins](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)"), umiliki wa kifaa halisi cha msingi ("[mali-erevu](https://en.bitcoin.it/wiki/Smart_Property)"), mali zisizobadilishika kama vile majina ya vikoa ("[Namecoin](http://namecoin.org)"), pamoja na matumizi tata zaidi yanayohusisha mali za kidijitali kudhibitiwa moja kwa moja na kipande cha msimbo kinachotekeleza sheria holela ("[mikataba-erevu](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)") au hata "[mashirika huru ya kiotomatiki](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/)" (DAOs) yanayotegemea mnyororo wa bloku. Kile Ethereum inakusudia kutoa ni blockchain iliyo na lugha ya programu iliyojengwa ndani kikamili na inayokubaliana na mfumo wa Turing, ambayo imetumika kuunda "mikataba" inayoweza kutumika kusibua hali za kiholela za mpito wa hali, na hivyo kuwawezesha watumiaji kuunda mifumo yeyote kati ya ile iliyotajwa hapo juu, pamoja na mengine ambayo hatujafikiria, kirahisi kwa kuandika kimantiki katika mistari michache ya msimbo. + +## Utangulizi wa Bitcoin na Dhana Zilizopo {#introduction-to-bitcoin-and-existing-concepts} + +### Historia {#history} + +Dhana ya sarafu dijitali isiyotegemea mtaalamu, pamoja na matumizi mbadala kama vile rejista za mali, imekuwepo kwa miongo mingi. Itifaki za e-cash zisizojulikana za miaka ya 1980 na 1990, zilizoegemea zaidi kwenye mbinu ya usimbaji wa siri inayojulikana kama Chaumian blinding, zilitengeneza sarafu yenye kiwango cha juu cha faragha, lakini itifaki hizo kwa kiasi kikubwa hazikuweza kupata umaarufu kutokana na kutegemea kwao mtaalamu wa kati. Mnamo 1998, [b-money](http://www.weidai.com/bmoney.txt) ya Wei Dai ilikuwa pendekezo la kwanza la kuanzisha wazo la kuunda pesa kupitia utatuzi wa mafumbo ya kikokotozi pamoja na makubaliano yaliyogatuliwa, lakini pendekezo hilo lilikuwa na maelezo machache kuhusu jinsi makubaliano yaliyogatuliwa yangeweza kutekelezwa. Mnamo 2005, Hal Finney alianzisha dhana ya "[reusable proofs of work](https://nakamotoinstitute.org/finney/rpow/)", mfumo unaotumia mawazo kutoka kwa b-money pamoja na mafumbo ya Hashcash ya Adam Back ambayo ni magumu kikokotozi ili kuunda dhana ya sarafu ya kidigitali, lakini kwa mara nyingine tena ilipungukiwa na ubora kwa kutegemea kompyuta inayoaminika kama sehemu ya nyuma. Mwaka 2009, sarafu isiyo na mtaalamu wa kati ilitekelezwa kwa mara ya kwanza na Satoshi Nakamoto, akiunganisha mbinu zilizokuwepo za kusimamia umiliki kupitia usimbaji wa funguo za umma pamoja na algoriti ya makubaliano kwa ajili ya kufuatilia nani anamiliki sarafu, inayojulikana kama "proof-of-work". + +Mfiduo wa proof-of-work ulikuwa uvumbuzi muhimu katika eneo la sarafu za kidijitali kwa sababu uliongoza kutatua matatizo mawili kwa wakati mmoja. Kwanza, ilitoa algoriti rahisi na yenye ufanisi wa wastani wa makubaliano, ikiruhusu nodi katika mtandao kukubaliana pamoja juu ya seti ya masasisho halali ya hali ya daftari la Bitcoin. Pili, iliweka mfumo unaoruhusu kuingia huru katika mchakato wa makubaliano, ukitatua tatizo la kisiasa la kuamua nani anayeweza kuathiri makubaliano, huku pia ukizuia mashambulizi ya sybil kwa wakati mmoja. Hufanya hivyo kwa kubadilisha kizuizi rasmi cha kushiriki, kama vile sharti la kuandikishwa kama kiumbe cha kipekee kwenye orodha fulani, na kizuizi cha kiuchumi - uzito wa nodi moja katika mchakato wa upigaji kura wa makubaliano unaendana moja kwa moja na nguvu ya kompyuta ambayo nodi hiyo inaleta. Tangu wakati huo, mbinu mbadala imependekezwa iitwayo _proof-of-stake_, inayokokotoa uzito wa nodi kuwa sawia na hisa zake za sarafu na si rasilimali za kikokotozi; mjadala wa sifa za kulinganisha za mbinu hizi mbili uko nje ya upeo wa karatasi hii lakini inapaswa kuzingatiwa kuwa mbinu zote mbili zinaweza kutumika kama uti wa mgongo wa sarafu ya kidigitali. + +### Bitcoin Kama Mfumo wa Mpito wa Hali {#bitcoin-as-a-state-transition-system} + +![Mpito wa hali ya Ethereum](./ethereum-state-transition.png) + +Kutoka mtazamo wa kiufundi, daftari la sarafu ya kidijitali kama Bitcoin linaweza kufikiriwa kama mfumo wa mabadiliko ya hali, ambapo kuna "hali" inayojumuisha hali ya umiliki wa bitcoins zote zilizopo na "kazi ya mabadiliko ya hali" inayochukua hali na muamala na kutoa hali mpya ambayo ni matokeo. Katika mfumo wa kawaida wa benki, kwa mfano, hali ni taarifa ya usawa wa akaunti, muamala ni ombi la kuhamisha kiasi cha dola $X kutoka A kwenda B, na kazi ya mabadiliko ya hali hupunguza thamani katika akaunti ya A kwa dola $X na kuongeza thamani katika akaunti ya B kwa dola $X. Kama akaunti ya A haina angalau dola $X, kazi ya mabadiliko ya hali hurudisha kosa. Hivyo, mtu anaweza kufafanua rasmi: + +``` +APPLY(S,TX) -> S' or ERROR +``` + +Katika mfumo wa benki uliofafanuliwa hapo juu: + +```js +APPLY({ Alice: $50, Bob: $50 },"tuma $20 kutoka kwa Alice kwenda kwa Bob") = { Alice: $30, Bob: $70 } +``` + +Lakini: + +```js +APPLY({ Alice: $50, Bob: $50 },"tuma $70 kutoka kwa Alice kwenda kwa Bob") = ERROR +``` + +"State" katika Bitcoin ni mkusanyiko wa sarafu zote (kifundi, "unspent transaction outputs" au UTXO) ambazo zimemintiwa lakini bado hazijatumiwa, ambapo kila UTXO ina thamani na mmiliki (amefafanuliwa kwa anwani ya byte 20 ambayo ni kama funguo za umma za usimbaji wa siri[fn1](#notes)). Muamala wa Bitcoin una sehemu kuu mbili: pembejeo na matokeo. Kila pembejeo linajumuisha rejeleo la UTXO iliyopo pamoja na saini ya kryptografia inayotokana na funguo binafsi zinazohusiana na anwani ya mmiliki. Kila matokeo yanajumuisha UTXO mpya inayoongezwa kwenye hali ya mfumo wa Bitcoin. Hii ina maana kwamba pembejeo ni kutumia sarafu zilizotolewa hapo awali, na matokeo ni sarafu mpya zinazoundwa kwa ajili ya mamiliki wapya wa sarafu hizo. + +Kazi ya mpito wa hali `APPLY(S,TX) -> S'` inaweza kufafanuliwa takriban kama ifuatavyo: + +
    +
  1. + Kwa kila ingizo katika TX: +
      +
    • + Ikiwa UTXO inayorejelewa haimo katika S, rudisha hitilafu. +
    • +
    • + Ikiwa saini iliyotolewa hailingani na mmiliki wa UTXO, rudisha hitilafu. +
    • +
    +
  2. +
  3. + Ikiwa jumla ya thamani za UTXO zote za ingizo ni ndogo kuliko jumla ya thamani za UTXO zote za towe, rudisha hitilafu. +
  4. +
  5. + Rejesha S huku UTXO zote za ingizo zimeondolewa na UTXO zote za towe zimeongezwa. +
  6. +
+ +Sehemu ya kwanza ya hatua ya kwanza hulinda wasafirishi wa muamala wasitumiwe sarafu ambazo hazipo, na sehemu ya pili hulinda wasafirishi wasitumie sarafu za watu wengine bila idhini yao na hatua ya pili inahakikisha uhifadhi wa thamani. Kwa ajili ya kutumia Bitcoin kama malipo, itifaki ya malipo hujumuisha hatua zifuatazo. Ikiwa Alice anataka kutuma 11.7 BTC kwa Bob. Kwanza, Alice atatafuta mkusanyiko wa UTXO anamiliki ulio jumlisha angalau 11.7 BTC. Kweli, Alice haiwezi kupata kwa usahihi 11.7 BTC kutoka kwa UTXO zilizopo, kwa mfano, tuseme anaweza kupata mchanganyiko wa 6+4+2=12. Alice ataunda muamala wenye pembejeo tatu na matokeo mawili. Tokeo la kwanza itakuwa na thamani ya 11.7 BTC na mmiliki wake atakuwa anwani ya Bob, wakati huo tokeo la pili itakuwa na tofauti ya 0.3 BTC kama "badiliko," na mmiliki wake atakuwa Alice mwenyewe. + +### Uchimbaji {#mining} + +![Bloku za Ethereum](./ethereum-blocks.png) + +Ikiwa tungekuwa na huduma ya kuaminika iliyojengewa kati ambayo inasimamia hali, mfumo huu ungebaki rahisi kutekeleza sawa na ilivyoelezwa; ungetumia tu diski ya seva kuu kufuatilia hali. Lakini kwa Bitcoin, tunajaribu kujenga mfumo wa sarafu usio na msimamizi wa kati, hivyo tunahitaji kuunganisha mfumo wa mabadiliko ya hali ya muamala na mfumo wa makubaliano wa kijumla kuhakikisha kila mtu anakubaliana kuhusu mpangilio wa miamala. Mchakato wa makubaliano wa Bitcoin hutegemea nodi katika mtandao zinazojaribu kuunda vifurushi vya miamala vinavyoitwa "blocks." Mtandao umekusudiwa kutoa takriban bloku moja kila dakika kumi, huku kila bloku ikiwa na muhuri wa muda, nonce, rejeleo la (yaani, hashi ya) bloku iliyotangulia na orodha ya miamala yote iliyotokea tangu bloku iliyotangulia. Mtandao huu unakusudia kuzalisha block moja takriban kila dakika kumi, na sarafu zinazoongoza kuunda mnyororo unaoitwa "blockchain" unaoendelea kukua na kuonyesha hali halisi na ya sasa ya daftari la Bitcoin. + +Algorithimu ya ukaguzi wa halali ya block katika mfumo wa Bitcoin inaweza kufafanuliwa kama ifuatavyo: + +1. Angalia kama block iliyotanguliaipo kwenye blockchain tayari na imethibitishwa kuwa halali. +2. Hakikisha kuwa timestamp ya block ni kubwa kuliko ile ya block iliyotangulia [fn2](#notes) na haizidi masaa 2 mbele ya wakati wa sasa +3. Thibitisha kwamba proof-of-work kwenye block ni halali. +4. Wacha `S[0]` iwe hali mwishoni mwa bloku iliyotangulia. +5. Tuseme `TX` ni orodha ya miamala ya bloku yenye miamala `n`. Kwa `i` zote katika `0...n-1`, weka `S[i+1] = APPLY(S[i],TX[i])` Ikiwa utekelezaji wowote utarudisha hitilafu, toka na urudishe false. +6. Rudisha `true`, na sajili `S[n]` kama hali ya mwisho ya bloku hii. + +Kwa msingi huu, kila muamala katika block lazima utoe mabadiliko halali ya hali kutoka kwa hali ya kanoni kabla ya muamala kutekelezwa hadi hali mpya. Kumbuka kuwa hali hii haijafichwa kwenye block kwa namna yoyote; ni dhihirisho tu ambalo linahifadhiwa na nodi zinazothibitisha na linaweza kuhesabiwa kwa usalama kwa kuanza kutoka hali ya awali (genesis state) na kutekeleza kila muamala katika kila block mfululizo. Zaidi ya hayo, angalia kwamba mpangilio ambao mchimbaji anajumuisha miamala katika block ni muhimu; ikiwa kuna miamala miwili A na B ndani ya block ambapo B inatumia UTXO iliyoundwa na A, basi block itakuwa halali ikiwa A itajiandaa kabla ya B, lakini haitakuwa halali vinginevyo. + +Sharti moja la halali lililopo katika orodha hapo juu ambalo haliwezi kupatikana katika mifumo mingine ni hitaji la "proof-of-work". Sharti halisi ni kwamba hash ya double-SHA256 ya kila block, inayochukuliwa kama nambari ya 256-bit, lazima iwe ndogo kuliko lengo linalo rekebishwa kwa nguvu, ambalo kwa sasa lina takriban thamani ya 2187. Kusudi la hili ni kufanya uundaji wa block kuwa gumu kihisabati, hivyo kuzuia washambulizi wa aina ya sybil kutoka kuunda mnyororo mzima wa blockchain kwa faida yao binafsi. Kwa kuwa SHA256 imeundwa kuwa kazi isiyotabirika kabisa na ya nasibu (pseudo-random), njia pekee ya kuunda block halali ni kwa jaribio na makosa, kwa kujaribu kuongezea nonce na kuona ikiwa hash mpya inakidhi vigezo. + +Kwa lengo la sasa la takriban ~2187, mtandao unapaswa kufanya jaribio la wastani la takriban ~269 mara kabla ya kupata block halali; kwa jumla, lengo hili hubadilishwa na mtandao kila blocks 2016 ili kuhakikisha kuwa block mpya inazalishwa takriban kila dakika kumi na nodi fulani mtandaoni. Ili kumpa motisha mchimbaji kupata block, mchimbaji anaruhusiwa kujumuisha muamala unaojipa 25 BTC kwa block hiyo, mtindo wa malipo usiotegemea chochote. Zaidi ya hayo, ikiwa muamala wowote una pembejeo yenye jumla kubwa kuliko matokeo yake, tofauti hiyo hupokelewa na mchimbaji kama "ada ya muamala". Kwa bahati nzuri, hii pia ndiyo njia pekee ambayo BTC hutolewa; hali ya mwanzo (genesis) haikuwa na sarafu yoyote kabisa. + +Ili kuelewa vyema kusudi la uchimbaji, tuchunguze kinachotokea wakati wa mwovu. Kwa kuwa usimbaji fiche wa Bitcoin unajulikana kuwa salama, mshambuliaji atalenga sehemu moja tu ya mfumo wa Bitcoin ambayo haikingwi moja kwa moja na usimbaji fiche: mpangilio wa miamala. Mbinu ya mshambuliaji ni rahisi: + +1. Tuma 100 BTC kwa muuzaji kwa bidhaa fulani (ikiwa inawezekana bidhaa ya kidijitali inayoweza kusafirishwa haraka) +2. Subiri kuwasilishwa kwa bidhaa +3. Tengeneza muamala mwingine unaotuma 100 BTC hizo kwa mwenyewe +4. Jaribu kuwashawishi washiriki wa mtandao kwamba muamala wake wa kutuma kwa mwenyewe ndio uliotangulia. + +Mara baada ya hatua ya kwanza (1) kutekelezwa, ndani ya dakika chache mchimbaji fulani ataingiza muamala kwenye block, sema block nambari 270000. Baada ya takriban saa moja, blocks tano zaidi zitakuwa zimeongezwa mnyoroni kuanzia block hiyo, kila moja likiwahusisha kwa njia isiyo ya moja kwa moja miamala hiyo na hivyo kuthibitisha. Katika hatua hii, muuzaji atakubali malipo kama ya mwisho na kubadilisha bidhaa; kwa kuwa tunazungumzia bidhaa ya kidijitali, usafirishaji ni wa papo hapo. Sasa mshambuliaji anatengeneza muamala mwingine wa kutuma 100 BTC kwa mwenyewe. Ikiwa mshambuliaji atauachilia tu, muamala hautashughulikiwa; wachimbaji watajaribu kuendesha `APPLY(S,TX)` na kugundua kuwa `TX` inatumia UTXO ambayo haipo tena katika hali. Badala yake, mshambuliaji anatengeneza "tawi" la blockchain, kuanzia kwa kuchimba toleo lingine la block 270000 linalorejelea block 269999 kama mzazi lakini likiwa na muamala mpya badala ya wa zamani. Kwa kuwa data ya bloki ni tofauti, hii inahitaji kufanya tena proof-of-work. Zaidi ya hayo, toleo jipya la bloki 270000 linayo mshambuliaji lina hash tofauti, hivyo bloki asilia 270001 hadi 270005 hazijawahi kuitaja; hivyo mnyororo wa asili na mnyororo mpya wa mshambuliaji ni tofauti kabisa. Amri ni kwamba katika tawi, mnyororo mrefu zaidi ndio unaochukuliwa kuwa wa kweli, kwa hiyo wachimbaji halali wataendelea kazi zao kwenye mnyororo wa 270005 wakati mshambuliaji peke yake anafanya kazi kwenye mnyororo wa 270000. Ili mshambuliaji afanikishe kufanya mnyororo wake kuwa mrefu zaidi, anahitaji kuwa na nguvu ya kupanga zenye nguvu zaidi kuliko nodi zote za mtandao kwa pamoja ili kufikia ncha hiyo (hii ndiyo "shambulio la 51%"). + +### Miti ya Merkle {#merkle-trees} + +![SPV katika Bitcoin](./spv-bitcoin.png) + +_Kushoto: inatosha kuwasilisha nodes chache tu katika mti wa Merkle ili kutoa ushahidi wa halali ya tawi._ + +_Kulia: jaribio lolote la kubadilisha sehemu yoyote ya mti wa Merkle hatimaye litaelekea kwenye kutoelewana mahali fulani juu ya mnyororo._ + +Sifa muhimu ya kuongezeka kwa uwezo ya Bitcoin ni kwamba block huhifadhiwa katika muundo wa data yenye ngazi nyingi. "Hash" ya bloki ni hash tu ya kichwa cha bloki, kipande cha data chenye takriban byte 200 ambacho kina timestamp, nonce, hash ya bloki ya awali, na hash ya mzizi wa muundo wa data unaoitwa mti wa Merkle unaohifadhi miamala yote katika bloki. Mti wa Merkle ni aina ya mti wa binary, unaojumuisha seti ya nodi yenye idadi kubwa ya nodi za majani chini mwa mti zenye data ya msingi, seti ya nodi za kati ambapo kila nodi ni hash ya wanawe wawili, na mwisho mzizi wa nodi moja, pia umetengenezwa kwa hash ya wanawe wawili, unaowakilisha "juu" ya mti. Madhumuni ya mti wa Merkle ni kuruhusu data katika bloki kusambazwa kwa sehemu: nodi inaweza kupakua tu kichwa cha bloki kutoka kwa chanzo kimoja, sehemu ndogo ya mti inayohusiana nayo kutoka chanzo kingine, bado ikihakikiwa kuwa data yote ni sahihi. Sababu ya hili kufanya kazi ni kwamba hash husambazwa juu: kama mtumiaji mbaya atajaribu kubadilisha muamala wa bandia chini mwa mti wa Merkle, mabadiliko haya yataleta mabadiliko kwenye nodi ya juu, kisha mabadiliko kwenye nodi inayofuata juu, hatimaye kubadilisha mzizi wa mti na kwa hivyo hash ya bloki, na kupelekea itajulikana kama bloki tofauti kabisa (ikiwa na proof-of-work isiyo halali). + +Itifaki ya mti wa Merkle ni muhimu kwa uendelevu wa muda mrefu. Nodi kamili katika mtandao wa Bitcoin, inayohifadhi na kusindika bloki zote, inachukua takriban gigabaiti 15 za nafasi ya diski kama Aprili 2014, na inaendelea kuongezeka kwa zaidi ya gigabaiti moja kila mwezi. Kwa sasa, hii inawezekana kwa baadhi ya kompyuta za mezani na si simu za mkononi, na baadaye tu biashara na watumiaji wa hiari wataweza kushiriki. Itifaki inayoitwa "simplified payment verification" (SPV) inaruhusu aina nyingine ya nodi inayoitwa "light nodes", ambazo hupakua vichwa vya bloki, kuhakiki proof-of-work kwenye vichwa vya block, na kisha hupakua tu "matawi" yanayohusiana na miamala inayowahusu. Hii inaruhusu light nodes kuamua kwa uhakikisho mkubwa wa usalama hali ya muamala wowote wa Bitcoin, na salio lao la sasa, huku wakipakua sehemu ndogo sana ya blockchain nzima. + +### Matumizi Mbadala ya Mnyororo wa Bloku {#alternative-blockchain-applications} + +Dhana ya kuchukua wazo la blockchain msingi na kuitumia kwenye dhana nyingine imekuwa na historia ndefu. Mnamo 2005, Nick Szabo alikuja na dhana ya "[hati miliki salama za mali zenye mamlaka ya mmiliki](https://nakamotoinstitute.org/library/secure-property-titles/)", waraka unaoelezea jinsi "maendeleo mapya katika teknolojia ya hifadhidata iliyonakiliwa" yataruhusu mfumo unaotegemea mnyororo wa bloku kwa ajili ya kuhifadhi sajili ya nani anamiliki ardhi gani, na kuunda mfumo wa kina unaojumuisha dhana kama vile makazi, umiliki mbaya na kodi ya ardhi ya Georgia. Hata hivyo, wakati huo hakukuwa na mfumo mzuri wa hifadhidata zilizopigwa maradufu, hivyo itifaki haikutekelezwa vibaya. Baada ya 2009, mara baada ya kusambaa kwa makubaliana ya jumla ya Bitcoin, matumizi mbalimbali yalianza kujitokeza haraka. + +- **Namecoin** - iliyoundwa mwaka 2010, [Namecoin](https://namecoin.org/) inaelezewa vyema kama hifadhidata ya usajili wa majina iliyogatuliwa. Katika itifaki zilizogatuliwa kama Tor, Bitcoin na BitMessage, kunahitajika kuwa na njia ya kutambua akaunti ili watu wengine waweze kuingiliana nazo, lakini katika suluhisho zote zilizopo aina pekee ya kitambulisho kinachopatikana ni hashi isiyo ya mpangilio maalum kama `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Kila mtu angependa kuwa na akaunti yenye jina rahisi kama "george". Ingawaja, tatizo ni kwamba ikiwa mtu mmoja anaweza kuunda akaunti iitwayo "george", mtu mwingine anaweza kutumia njia hiyo hiyo kusajili "george" kwa ajili yake na kudanganya. Suluhisho ya kipekee ni "mtindo wa mwanzilishi wa kwanza" ambapo mwanzilishi wa kwanza nafanikiwa na wa pili anashindwa - tatizo linalofaa kwa itifaki ya makubaliano ya Bitcoin. Namecoin ni utekelezaji wa zamani zaidi na wenye mafanikio zaidi wa mfumo wa usajili wa majina ukitumia wazo hilo. +- **Sarafu za Rangi** - madhumuni ya [sarafu za rangi](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) ni kutumika kama itifaki ya kuruhusu watu kuunda sarafu zao za kidijitali - au, katika kesi muhimu ndogo ya sarafu yenye kitengo kimoja, tokeni za kidijitali, kwenye mnyororo wa bloku wa Bitcoin. Katika itifaki ya colored coins, mtu "hutangaza" sarafu mpya kwa kuweka rangi maalum kwenye UTXO fulani ya Bitcoin, na itifaki inaeleza mara kwa mara kuwa rangi ya UTXO zingine ni rangi moja na ya pembejeo za muamala zinazozitumia (na sheria maalum kwa pembejeo zilizochanganywa). Hii inawawezesha watumiaji kuhifadhi pochi linalo zima UTXO za rangi fulani na kuzipeleka kama bitcoins kawaida, wakirudi nyuma kwenye blockchain kuona rangi ya UTXO wanazopokea. +- **Metacoins** - wazo la metacoin ni kuwa na itifaki inayoishi juu ya Bitcoin, ikitumia miamala ya Bitcoin kuhifadhi miamala ya metacoin lakini ikiwa na kazi tofauti ya mpito wa hali, `APPLY'`. Kwa sababu itifaki ya metacoin haiwezi kuzuia miamala batili ya metacoin kuonekana kwenye mnyororo wa bloku wa Bitcoin, sheria inaongezwa kwamba ikiwa `APPLY'(S,TX)` itarudisha hitilafu, itifaki inarejea kuwa `APPLY'(S,TX) = S`. Hii inatoa njia rahisi ya kutengeneza itifaki yoyote ya sarafu, labda yenye sifa za hali ya juu zisizoweza kutekelezwa ndani ya Bitcoin, lakini kwa gharama ndogo sana kwa sababu mambo magumu ya uchimbaji na mtandao yanafanywa tayari na itifaki ya Bitcoin. Metacoins zime tumika kutekeleza aina fulani za mikataba ya kifedha, usajili wa majina na kubadilishana kwa njia zisizo za kati. + +Kwa hiyo, kwa ujumla, kuna mbinu mbili kuelekea kujenga itifaki ya makubaliano: kujenga mtandao huru, na kujenga itifaki juu ya Bitcoin. Mbinu ya kwanza, ingawa imefanikiwa kwa programu kama Namecoin, ni vigumu kutekeleza; kila utekelezaji unahitaji kuanzisha blockchain huru, pamoja na kuandaa na kujaribu mabadiliko yote ya hali na kofia na usambazaji. Zaidi ya hayo, tunabiri kuwa seti ya matumizi ya teknolojia ya makubaliano isiyo ya kati itafuata usambazaji wa nguvu ambapo matumizi mengi sana yatakuwa madogo mno kuhitaji blockchain yao wenyewe, na kuna makundi makubwa ya matumizi ya programu zisizo za kati, hasa mashirika ya kiotomatiki yasiyo na msimamizi, yanayohitaji mwingiliano. + +Mbali na hilo, mbinu inayotegemea Bitcoin ina dosari kuwa haiwezi kurithi sifa za uthibitishaji wa malipo rahisi ya Bitcoin. SPV inafanya kazi kwa Bitcoin kwa sababu inatumia kina cha blockchain kama kinara cha uhalali; sehemu fulani, mara watoto wa muamala wanapokuwa mbali vya kutosha nyuma, ni salama kusema walikuwa sehemu halali ya hali. Lakini itifaki za meta za blockchain siwezi kulazimisha blockchain isiingize miamala isiyo halali ndani ya itifaki zao. Kwa hiyo, utekelezaji salama wa SPV meta-itifaki unahitaji kurudi nyuma kabisa hadi mwanzo wa blockchain ya Bitcoin kuchunguza uhalali wa miamala fulani. Kwa sasa, utekelezaji wote wa "light" wa mitandao ya meta-itifaki zinazotegemea Bitcoin unategemea seva ya kuaminika kutoa data, jambo lisilofaa hasa wakati mojawapo ya madhumuni kuu ya sarafu za kidijitali ni kuondoa haja ya kuamini mtu mwingine. + +### Uandishi wa Hati {#scripting} + +Hata bila nyongeza yoyote, itifaki ya Bitcoin inaruhusu aina dhaifu ya dhana ya "mikataba-erevu". UTXO katika Bitcoin haiwezi kumilikiwa tu na funguo za umma, bali pia na skripti ngumu zaidi iliyoelezwa kwa lugha rahisi ya kufuli wa vitendo. Katika mfumo huu, muamala unaotumia UTXO lazima utoe data inayokidhi skripti. Kwa kweli, hata mfumo wa umiliki wa funguo za umma unatekelezwa kwa skripti: skripti hupokea saini ya mduara wa elliptic kama pembejeo, kuikagua dhidi ya muamala na anwani inayomiliki UTXO, na kurudisha 1 kama uthibitisho ni mzuri, au 0 vinginevyo. Skripti nyingine, ngumu zaidi, zipo kwa matumizi tofauti. Kwa mfano, mtu anaweza kutengeneza skripti inayotaka sahihi kutoka kwa funguo mbili kati ya tatu zilizopo("multisig"), inayofaa kwa akaunti za kampuni, akaunti za hifadhi salama, na malipo ya mteja. Skripti zinaweza kutumika pia kulipa zawadi kwa kutafuta suluhisho la matatizo ya kompyuta, na mtu anaweza hata kutengeneza skripti inayosema "UTXO hii ni yako kama unaweza kutoa uthibitisho wa SPV kuwa umetuma muamala wa Dogecoin kwa kiasi hiki kwangu", ikiruhusu kubadilishana kati ya sarafu za kidijitali zisizo na msimamizi. + +Hata hivyo, lugha ya kuprogramu kama ilivyotekelezwa katika Bitcoin ina mapungufu machache muhimu: + +- **Ukosefu wa Ukamilifu wa Turing** - yaani, ingawa kuna sehemu kubwa ya hesabu ambayo lugha ya uandishi wa hati ya Bitcoin inasaidia, haikaribii kusaidia kila kitu. Kundi kuu linalokosekana ni mizunguko (loops). Hii imefanywa kuepuka mizunguko isiyo na mwisho katika uthibitishaji wa miamala; kwa nadharia, mpangaji skripti anaweza kuiga mizunguko kwa kurudia msimbo wa msingi mara nyingi kwa kutumia kauli ya if, lakini hii husababisha skripti zisizokuwa na ufanisi kwa nafasi. Mfano, kutekeleza mbadala wa alama ya mduara wa elliptic pengine ingekuwa na mizunguko 256 ya kuzidisha inayojumuishwa kwenye msimbo moja moja. +- **Upofu wa Thamani** - hakuna njia kwa hati ya UTXO kutoa udhibiti wa kina juu ya kiasi kinachoweza kutolewa. Mfano, mkataba wa oracle una nguvu angalau geuko wa kawaida, ambapo A na B waliweka BTC ya thamani ya dola 1000, na baada ya siku 30 skripti itatuma BTC ya dola 1000 kwa A na sehemu iliyobaki kwa B. Hii ingehitaji oracle kubaini thamani ya BTC 1 kwa dola, lakini bado ni maendeleo makubwa ikilinganishwa na suluhisho kamili za kati zinazopatikana sasa. Hata hivyo, kwa sababu UTXO ni yote-au-sifuri, njia pekee ya kufanikisha hili ni kupitia udukuzi usio na ufanisi wa kuwa na UTXO nyingi za thamani tofauti (k.m., UTXO moja ya 2k kwa kila k hadi 30) na kuwa na oracle ikichagua UTXO gani itume kwa A na ipi kwa B. +- **Ukosefu wa hali** - UTXO inaweza kuwa imetumika au haijatumika; hakuna fursa ya mikataba ya hatua nyingi au hati zinazoweka hali nyingine yoyote ya ndani zaidi ya hiyo. Hii inafanya vigumu kutengeneza mikataba ya chaguo nyingi, ofa za kubadilishana zisizo za kati au itifaki za usajili wa siri za hatua mbili (zinazohitajika kwa zawadi za kompyuta salama). Pia inamaanisha UTXO zinatumika tu kutengeneza mikataba rahisi na si mikataba tata ya "hali", na kufanya meta-itifaki zisiwe rahisi kutekeleza. Hali ya binary pamoja na ukosefu wa kuona thamani ina maana hata matumizi muhimu kama mipaka ya uondoaji hauwezekani. +- **Upofu kwa Mnyororo wa Bloku** - UTXO ni vipofu kwa data ya mnyororo wa bloku kama vile nonce, muhuri wa muda na hashi ya bloku iliyotangulia. Hii inapunguza sana matumizi katika kamari na aina nyingine mbalimbali, kwa kuondoa chanzo cha nasibu inayoweza kuwa ya thamani kwa lugha ya kuscripti. + +Kwa hiyo, tunaona mbinu tatu za kujenga programu za hali ya juu juu ya sarafu za kidijitali: kujenga blockchain mpya, kutumia kuskripti juu ya Bitcoin, na kujenga meta-itifaki juu ya Bitcoin. Kujenga blockchain mpya kunaruhusu uhuru usio na mipaka wa kujenga sifa, lakini kwa gharama ya muda wa maendeleo, juhudi za kuanzisha na usalama. Kutumia kuskripti ni rahisi kutekeleza na kuainisha, lakini ni na mipaka mikubwa, na meta-itifaki, ingawa rahisi, zinakumbwa na upungufu wa uwezo. Katika Ethereum, tunakusudia kujenga mfumo mbadala unaotoa urahisi zaidi wa maendeleo pamoja na sifa bora zaidi za mteja mwepesi, wakati huo huo kuruhusu programu kushiriki mazingira ya kiuchumi na usalama wa blockchain. + +## Ethereum {#ethereum} + +Lengo la Ethereum ni kuunda itifaki mbadala ya kujenga programu zisizo na msimamizi wa kati, zikitoa mchanganyiko tofauti wa manufaa ambayo tunaamini yatakuwa muhimu sana kwa daraja kubwa la programu zisizo na msimamizi, kwa mkazo maalum katika hali ambapo muda wa maendeleo ya haraka, usalama kwa programu ndogo zisizotumiwa mara kwa mara, na uwezo wa programu tofauti kuingiliana kwa ufanisi mkubwa ni muhimu. Ethereum hufanikisha hili kwa kujenga kile kinachoitwa tabaka la msingi la muhtasari kabisa: blockchain yenye lugha ya programu ya Turing-complete iliyojengwa ndani, ikiruhusu mtu yeyote kuandika mikataba-erevu na programu iliyogatuliwa ambapo wanaweza kuunda kanuni zao za umiliki, muundo wa miamala, na kazi za mabadiliko ya hali. Toleo la msingi kabisa la Namecoin linaweza kuandikwa kwa mistari miwili tu ya msimbo, na itifaki nyingine kama sarafu na mifumo ya sifa zinaweza kujengwa chini ya mistari ishirini. Mikataba-erevu, "masanduku" ya kriptografia yanayohifadhi thamani na kufunguliwa tu ikiwa masharti fulani yatatimizwa, pia inaweza kujengwa juu ya jukwaa, na yenye nguvu zaidi sana kuliko ile inayotolewa na maandishi ya Bitcoin kwa sababu ya nguvu za ziada za Turing-completeness, ufahamu wa thamani, ufahamu wa blockchain, na hali. + +### Akaunti za Ethereum {#ethereum-accounts} + +Katika Ethereum, hali inaundwa na vitu vinavyoitwa "akaunti", ambapo kila akaunti ina anwani ya byte 20 na mabadiliko ya hali ni uhamisho wa moja kwa moja wa thamani na taarifa kati ya akaunti. Akaunti ya Ethereum ina sehemu nne: + +- **Nonce**, kaunta inayotumika kuhakikisha kila muamala unaweza kushughulikiwa mara moja tu +- Salio la sasa la **ether** la akaunti +- Msimbo wa **mkataba** wa akaunti, ikiwa upo +- **Hifadhi** ya akaunti (tupu kwa chaguo-msingi) + +"Ether" ni krypto-mafuta kuu ya ndani ya Ethereum, na hutumika kulipia ada za muamala. Kwa ujumla, kuna aina mbili za akaunti: **akaunti zinazomilikiwa na watu wengine**, zinazodhibitiwa na funguo za faragha, na **akaunti za mkataba**, zinazodhibitiwa na msimbo wa mkataba wao. Akaunti inayomilikiwa na mtu binafsi haina msimbo yoyote, na mtu anaweza kutuma ujumbe kutoka kwa akaunti hiyo kwa kuunda na kusaini muamala; kwa akaunti ya mkataba, kila wakati akaunti inapopokea ujumbe msimbo unatekelezwa, ukiruhusu kutiwa na kusomewa kwa hifadhi ya ndani na kutuma ujumbe mwingine au kuunda mikataba ikifuatana. + +Kumbuka kuwa "mikataba" katika Ethereum haipaswi kuonekana kama kitu kinachopaswa "kutimizwa" au "kuzingatiwa"; badala yake, ni kama "wakala huru" wanaoishi ndani ya mazingira ya utekelezaji ya Ethereum, kila wakati wakitekeleza kipande maalum cha msimbo wanapopewa ujumbe au muamala, na kuwa na udhibiti wa moja kwa moja wa salio lao la ether na hifadhi yao ya funguo/thamani kuzingatia vigezo vya kudumu. + +### Ujumbe na Miamala {#messages-and-transactions} + +Neno "muamala" linatumika katika Ethereum kumaanisha kifurushi cha data kilichosainiwa kinachohifadhi ujumbe unaotumwa kutoka kwa akaunti inayomilikiwa na mtu. Miamala ina: + +- Mpokeaji wa ujumbe +- Saini inayotambua mtuma +- Kiasi cha ether cha kuhamishwa kutoka kwa mtuma kwa mpokeaji +- Sehemu ya data chaguo-msingi +- Thamani ya `STARTGAS`, inayowakilisha idadi ya juu zaidi ya hatua za kikokotoo ambazo utekelezaji wa muamala unaruhusiwa kuchukua +- Thamani ya `GASPRICE`, inayowakilisha ada anayolipa mtumaji kwa kila hatua ya kikokotoo + +Mambo matatu ya kwanza ni sehemu za kawaida zinazotarajiwa katika sarafu yoyote ya kidijitali. Sehemu ya data haina kazi kwa chaguo-msingi, lakini mashine pepe ina opcode ambayo mkataba unaweza kutumia kupata data hiyo; mfano wa matumizi ni kama mkataba unafanya kazi kama huduma ya usajili wa majina kwenye blockchain, basi unaweza kutafsiri data inayopita kama ikiweka "sehemu mbili", sehemu ya kwanza ikiwa ni jina la kikoa kuandikishwa na sehemu ya pili anwani ya IP kuhusishwa. Mkataba utasoma haya kutoka kwa data ya ujumbe na kuweka ipasavyo katika hifadhi. + +Sehemu za `STARTGAS` na `GASPRICE` ni muhimu kwa mfumo wa Ethereum wa kuzuia kunyimwa huduma. Ili kuzuia mizunguko isiyo na mwisho au matumizi mabaya ya rasilimali katika msimbo, kila muamala unahitaji kuweka kikomo cha hatua za kihesabu kinachoweza kutumiwa. Kitengo msingi cha hesabu ni "gesi"; kwa kawaida, hatua ya hesabu huhitaji gesi moja, lakini baadhi ya shughuli huhitaji gesi zaidi kwa sababu ni ngumu zaidi kihesabu, au huongeza kiasi cha data kinachotakiwa kuhifadhiwa kama sehemu ya hali. Pia kuna ada ya gesi 5 kwa kila beyti katika data ya muamala. Lengo la mfumo wa ada ni kumlazimisha mshambuliaji kulipa kwa rasilimali zote anazotumia, ikiwa ni pamoja na hesabu, msongamano wa mtandao, na uhifadhi; hivyo muamala wowote unaoongeza matumizi ya rasilimali hizi lazima uwe na ada ya gesi inayolingana. + +### Ujumbe {#messages} + +Mikataba ina uwezo wa kutuma "ujumbe" kwa mikataba mingine. Ujumbe ni vitu vya pepe ambavyo havihifadhiwi na vinaishi tu katika mazingira ya utekelezaji ya Ethereum. Ujumbe una: + +- Mtuma wa ujumbe(asiyeonekana moja kwa moja) +- Mpokeaji wa ujumbe +- Kiasi cha ether kinachotumwa pamoja na ujumbe +- Sehemu ya data chaguo-msingi +- Thamani ya `STARTGAS` + +Asilimia gani, ujumbe ni kama muamala, isipokuwa unazalishwa na mkataba na si mtu wa nje. Ujumbe hutolewa wakati mkataba unaotekeleza msimbo unatekeleza msimbo-endeshaji wa `CALL`, ambao hutoa na kutekeleza ujumbe. Kama muamala, ujumbe unasababisha akaunti mpokeaji kutekeleza msimbo wake. Hii inaruhusu mikataba kuhusiana na mikataba mingine kwa njia sawa kabisa na watu wa nje. + +Kumbuka kuwa msamaha wa gesi unaopatikana kwa muamala au mkataba unahusisha gesi yote inayotumiwa na muamala huo na utekelezaji wake mdogo. Mfano, ikiwa mtu A anamtumia mtu B muamala wenye gesi 1000, na B anatumia gesi 600 kabla ya kutuma ujumbe kwa C, na utekelezaji wa C unatumia gesi 300 kabla ya kurudi, basi B anaweza kutumia gesi 100 zaidi kabla ya kukosa gesi. + +### Kazi ya Mpito wa Hali ya Ethereum {#ethereum-state-transition-function} + +![Mpito wa hali ya Ether](./ether-state-transition.png) + +Kazi ya mpito wa hali ya Ethereum, `APPLY(S,TX) -> S'` inaweza kufafanuliwa kama ifuatavyo: + +1. Angalia ikiwa muamala umeundwa vizuri (yaani, una idadi sahihi ya thamani), saini ni halali, na nonce inalingana na nonce katika akaunti ya mtumaji. Ikiwa si hivyo, rudisha kosa. +2. Hesabu ada ya muamala kama `STARTGAS * GASPRICE`, na tambua anwani ya mtumaji kutoka kwa saini. Ondoa ada kutoka salio la akaunti ya mtuma na ongeza nonce ya mtuma. Ikiwa hakuna salio la kutosha, rudisha kosa. +3. Anzisha `GAS = STARTGAS`, na toa kiasi fulani cha gesi kwa kila baiti kulipia baiti katika muamala. +4. Hamisha thamani ya muamala kutoka kwa akaunti ya mtuma hadi akaunti ya mpokeaji. Ikiwa akaunti ya mpokeaji haipo, unda akaunti hiyo. Ikiwa akaunti ya mpokeaji ni mkataba, endesha msimbo wa mkataba hadi kumalizika au hadi gesi itakapokamilika. +5. Ikiwa hamisho la thamani limefeli kwa sababu mtuma hana pesa za kutosha, au utekelezaji wa msimbo umekosa gesi, rejea mabadiliko yote ya hali isipokuwa malipo ya ada, na ongeza ada kwa akaunti ya mchimbaji. +6. Vinginevyo, rudisha ada ya gesi iliyobaki kwa mtuma, na tuma ada ya gesi iliyotumika kwa mchimbaji. + +Kwa mfano, tuseme mkataba wa msimbo ni: + +```py +if !self.storage[calldataload(0)]: + self.storage[calldataload(0)] = calldataload(32) +``` + +Kumbuka kuwa katika ukweli msimbo wa mkataba umeandikwa kwa lugha ya chini ya EVM; mfano huu umeandikwa kwa Serpent, moja ya lugha zetu za kiwango cha juu, kwa uwazi, na unaweza kusanifiwa kwa msimbo wa EVM. Tuseme hifadhi ya mkataba inaanza ikiwa tupu, na muamala umetumwa wenye thamani ya ether 10, gesi 2000, bei ya gesi ya ether 0.001, na data ya baiti 64, huku baiti 0-31 zikiwakilisha nambari `2` na baiti 32-63 zikiwakilisha mfuatano `CHARLIE`. Mchakato wa kazi ya mabadiliko ya hali katika kesi hii ni kama ifuatavyo: + +1. Hakiki kuwa muamala ni halali na umeandaliwa vizuri. +2. Hakiki kuwa mtuma wa muamala ana angalau ether 2000 \* 0.001 = 2. Ikiwa ni hivyo, toa 2 ether kutoka kwa akaunti ya mtuma. +3. Anzisha gesi = 2000; tukizingatia kuwa muamala ni bole 170 bytes na ada ya byte ni 5, toa 850 ili kubaki gesi 1150. +4. Toa ether 10 zaidi kutoka kwa akaunti ya mtuma, na ongeza kwenye akaunti ya mkataba. +5. Endesha msimbo. Katika kesi hii, ni rahisi: inakagua kama hifadhi ya mkataba kwenye faharasa `2` imetumika, inagundua kuwa haijatumika, na hivyo inaweka hifadhi kwenye faharasa `2` kuwa na thamani `CHARLIE`. Tuchukulie hili linahitaji gesi 187, hivyo gesi iliyobaki ni 1150 - 187 = 963 +6. Rudisha ether 963 \* 0.001 = 0.963 kwa akaunti ya mtuma, na rudisha hali inayotokana. + +Ikiwa hakuna mkataba upande wa mpokeaji wa muamala, basi jumla ya ada ya muamala itakuwa sawa na `GASPRICE` iliyotolewa ikizidishwa na urefu wa muamala kwa baiti, na data iliyotumwa pamoja na muamala haitakuwa na umuhimu. + +Kumbuka kuwa ujumbe hufanya kazi kama muamala katika muktadha wa kurudi nyuma: ikiwa utekelezaji wa ujumbe unakosa gesi, basi utekelezaji wa ujumbe huo, pamoja na utekelezaji mingine yote uliosababishwa na ule, hurudi nyuma, lakini utekelezaji wa mzazi hauhitaji kurudi nyuma. Hii ina maana kuwa ni "salama" kwa mkataba kuituma ujumbe kwa mkataba mwingine, kwani ikiwa A anawasiliana na B kwa gesi G basi utekelezaji wa A unahakikishiwa kupoteza angalau gesi G. Mwishowe, kumbuka kuwa kuna msimbo-endeshaji, `CREATE`, unaounda mkataba; mbinu zake za utekelezaji kwa ujumla zinafanana na `CALL`, isipokuwa kwamba towe la utekelezaji huamua msimbo wa mkataba mpya ulioundwa. + +### Utekelezaji wa Msimbo {#code-execution} + +Msimbo katika mikataba ya Ethereum umeandikwa kwa lugha ya msimbo wa chini wa staki, unaojulikana kama "msimbo wa mashine pepe ya Ethereum" au "msimbo wa EVM". Msimbo una mfululizo wa bytes, ambapo kila byte inawakilisha shughuli moja. Kwa ujumla, utekelezaji wa msimbo ni kitanzi kisicho na mwisho ambacho kinajumuisha kutekeleza operesheni mara kwa mara kwenye kaunta ya programu ya sasa (inayoanzia sifuri) na kisha kuongeza kaunta ya programu kwa moja, hadi mwisho wa msimbo ufikiwe au hitilafu au maagizo ya `STOP` au `RETURN` yagunduliwe. Shughuli zinaweza kutumia aina tatu za sehemu za kuhifadhi data: + +- **Rafu**, chombo cha mwisho-kuingia-kwanza-kutoka ambapo thamani zinaweza kusukumwa na kutolewa +- **Kumbukumbu**, safu ya baiti inayoweza kupanuka bila kikomo +- Hifadhi ya muda mrefu ya mkataba, duka la ufunguo/thamani. Tofauti na staki na kumbukumbu, ambazo hurudishwa kuwa safi baada ya hesabu kumalizika, hifadhi hudumu kwa muda mrefu. + +Msimbo pia unaweza kupata thamani, mtuma na data ya ujumbe unaoingia, pamoja na data ya kichwa cha block, na unaweza pia kurudisha safu ya byte kama matokeo. + +Mfano rasmi wa utekelezaji wa msimbo wa EVM ni rahisi sana. Wakati mashine halisi ya Ethereum inafanya kazi, hali yake kamili ya kikokotozi inaweza kufafanuliwa na tuple `(block_state, transaction, message, code, memory, stack, pc, gas)`, ambapo `block_state` ni hali ya kimataifa inayojumuisha akaunti zote na inajumuisha salio na hifadhi. Mwanzoni mwa kila raundi ya utekelezaji, maagizo ya sasa yanapatikana kwa kuchukua baiti ya `pc` ya `code` (au 0 ikiwa `pc >= len(code)`), na kila agizo lina ufafanuzi wake jinsi linavyoathiri tuple. Kwa mfano, `ADD` hutoa vitu viwili kutoka kwenye rafu na kusukuma jumla yao, hupunguza `gas` kwa 1 na huongeza `pc` kwa 1, na `SSTORE` hutoa vitu viwili vya juu kutoka kwenye rafu na kuingiza kitu cha pili kwenye hifadhi ya mkataba kwenye faharasa iliyobainishwa na kitu cha kwanza. Ingawa kuna njia nyingi za kuboresha utekelezaji wa mashine pepe ya Ethereum kwa matumizi ya jibu haraka, utekelezaji wa msingi wa Ethereum unaweza kufanywa katika mistari michache mia ya msimbo. + +### Mnyororo wa Bloku na Uchimbaji Madini {#blockchain-and-mining} + +![Mchoro wa bloku ya utekelezaji ya Ethereum](./ethereum-apply-block-diagram.png) + +Blockchain ya Ethereum kwa njia nyingi ni kama blockchain ya Bitcoin, ingawa ina tofauti kadhaa. Tofauti kuu kati ya Ethereum na Bitcoin kuhusu usanifu wa blockchain ni kuwa, tofauti na Bitcoin, blocks za Ethereum zina orodha ya miamala na hali ya hivi punde. Zaidi ya hayo, thamani mbili, nambari ya block na ugumu, pia huhifadhiwa katika block. Algorithimu ya msingi ya ukaguzi wa block katika Ethereum ni kama ifuatavyo: + +1. Hakiki kama block inayorejelea bloki iliyotangulia ipo na ni halali. +2. Hakiki kuwa timestamp ya bloki ni kubwa kuliko ile ya bloki iliyotangulia na haizidi dakika 15 mbele +3. Hakiki kuwa nambari ya bloki, ugumu, mizizi ya miamala na mizizi ya "uncle", na kikomo cha gesi(mifano ya chini kadhaa ya kauli haswa ya Ethereum) ni halali. +4. Thibitisha kwamba proof-of-work kwenye block ni halali. +5. Wacha `S[0]` iwe hali mwishoni mwa bloku iliyotangulia. +6. Wacha `TX` iwe orodha ya miamala ya bloku, yenye miamala `n`. Kwa `i` zote katika `0...n-1`, weka `S[i+1] = APPLY(S[i],TX[i])`. Ikiwa matumizi yoyote yatarudisha hitilafu, au ikiwa jumla ya gesi iliyotumika katika bloku hadi sasa inazidi `GASLIMIT`, rudisha hitilafu. +7. Wacha `S_FINAL` iwe `S[n]`, lakini ukiongeza zawadi ya kizuizi inayolipwa kwa mchimbaji. +8. Angalia ikiwa mzizi wa mti wa Merkle wa hali `S_FINAL` ni sawa na mzizi wa hali ya mwisho uliotolewa kwenye kichwa cha bloku. Ikiwa ni sawa, block ni halali; vinginevyo, si halali. + +Njia hii inaweza kuonekana isiyofaa mwanzoni, kwa sababu inahitaji kuhifadhi hali yote kwa kila bloki, lakini kwa kweli ufanisi unapaswa kuwa sawa na ule wa Bitcoin. Sababu ni kuwa hali huhifadhiwa katika muundo wa mti, na baada ya bloki yoyote, sehemu ndogo tu ya mti inahitaji kubadilishwa. Kwa hivyo, kwa ujumla, kati ya bloku mbili zilizo karibu sehemu kubwa ya mti inapaswa kuwa sawa, na kwa hivyo data inaweza kuhifadhiwa mara moja na kurejelewa mara mbili kwa kutumia viashiria (yaani, hashi za miti midogo). Aina maalum ya mti inayoitwa "mti wa Patricia" hutumika kufanikisha hili, ikiwa na marekebisho ya dhana ya mti wa Merkle ambayo inaruhusu kuingiza na kufuta nodi kwa ufanisi, si kubadilisha tu. Zaidi ya hayo, kwa kuwa taarifa zote za hali ni sehemu ya bloki ya mwisho, hakuna haja ya kuhifadhi historia yote ya blockchain - mkakati ambao, kama ungetumika Bitcoin, unaweza kuleta akiba ya nafasi ya mara 5-20. + +Swali la mara kwa mara ni "msimbo wa mkataba unatekelezaje, kwa upande wa vifaa vya kimwili. Hili lina jibu rahisi: mchakato wa kutekeleza msimbo wa mkataba ni sehemu ya ufafanuzi wa kazi ya mpito wa hali, ambayo ni sehemu ya kanuni ya uthibitishaji wa bloku, kwa hivyo ikiwa muamala umeongezwa kwenye bloku `B` utekelezaji wa msimbo unaochochewa na muamala huo utatekelezwa na nodi zote, sasa na siku zijazo, ambazo zinapakua na kuthibitisha bloku `B`. + +## Matumizi {#applications} + +Kwa jumla, kuna aina tatu za programu juu ya Ethereum. Kundi la kwanza ni programu za kifedha, zinazowapa watumiaji njia za nguvu zaidi za kusimamia na kuingia mikataba kwa fedha zao. Hii inajumuisha sarafu ndogo, derivatives za kifedha, mikataba ya hedging, pochi za akiba, wasia, na hatimaye aina fulani za mikataba ya kazi kamili. Kundi la pili ni programu za nusu-kifedha, ambapo fedha zinahusika lakini pia kuna sehemu kubwa isiyo ya kifedha; mfano mzuri ni zawadi zinazojiendesha mwenyewe kwa suluhisho la matatizo ya kompyuta. Mwisho, kuna programu kama kura za mtandao na utawala usio na msimamizi ambazo si za kifedha kabisa. + +### Mifumo ya Tokeni {#token-systems} + +Mifumo ya tokeni kwenye blockchain ina matumizi mengi kuanzia sarafu ndogo zinazowakilisha mali kama USD au dhahabu hadi hisa za kampuni, tokeni binafsi zinazo wakilisha mali mahususi, vocha salama ambazo haiwezi kubadilishwa, na hata mifumo ya tokeni isiyo na uhusiano na thamani za kawaida kabisa, inayotumika kama mfumo wa alama za motisha. Mifumo ya tokeni ni rahisi kushirikisha katika Ethereum. Kitendo kikuu cha kuelewa ni kwamba sarafu, au mfumo wa tokeni, ni misingi database yenye operesheni moja: toa X vipimo kutoka A na upe X vipimo B, kwa sharti kuwa (i) A alikuwa na angalau X vipimo kabla ya muamala na (2) muamala umeturuhusiwa na A. Yote yanayotakiwa kutekeleza mfumo wa tokeni ni kutekeleza mantiki hii katika mkataba. + +Msimbo rahisi wa kushirikisha mtumo wa tokeni kwa Serpent unafanana kama ifuatavyo: + +```py +def send(to, value): + if self.storage[msg.sender] >= value: + self.storage[msg.sender] = self.storage[msg.sender] - value + self.storage[to] = self.storage[to] + value +``` + +Hii ni utekelezaji wa moja kwa moja wa kazi ya mabadiliko ya hali ya "mfumo wa benki" iliyoelezwa hapo juu zaidi katika hati hii. Mistari michache ya msimbo inahitaji kuongezwa ili kuanzisha hatua ya awali ya kusambaza vitengo vya sarafu kwa mara ya kwanza na baadhi ya kesi za mwisho, na kwa kawaida kazi ingeongezwa kuruhusu mikataba mingine kuulizia salio la anwani. Lakini hayo ndiyo yote. Kwa nadharia, mifumo ya tokeni zinazotegemea Ethereum inayofanya kazi kama sarafu ndogo inaweza kuhusisha kipengele kingine muhimu ambacho meta-sarafu za Bitcoin-based zimeshindwa kuwa nazo: uwezo wa kulipa ada za muamala moja kwa moja kwa sarafu hiyo. Jinsi hii ingetekelezwa ni kwamba mkataba ungefanya usawa wa ether ambao ungeirudishia ether iliyotumiwa kulipa ada kwa mtuma, na ungeongeza usawa huu kwa kukusanya vitengo vya sarafu ya ndani ambavyo hupewa kama ada na kuviuza tena katika mnada unaoendelea. Watumiaji basi wangehitaji "kuamsha" akaunti zao na ether, lakini mara ether ipo, ingekuwa inaweza kutumika tena kwa sababu mkataba ungeirudisha kila mara. + +### Vifaa vya Kifedha na Sarafu zenye Thamani Imara {#financial-derivatives-and-stable-value-currencies} + +Viingilio vya kifedha ni matumizi ya kawaida zaidi ya "mkataba smart", na ni rahisi zaidi kutekeleza kwa msimbo. Changamoto kuu katika kutekeleza mikataba ya kifedha ni kwamba wengi wao wanahitaji marejeleo kutoka kwa ripoti ya bei ya nje; mfano gani ni mkataba-erevu muhimu unaolinda dhidi ya mabadiliko ya thamani ya ether (au sarafu nyingine ya krypto) kwa dola ya Marekani, lakini kufanya hivyo kunahitaji mkataba kujua thamani ya ETH/USD. Njia rahisi zaidi ya kufanya hili ni kupitia mkataba wa "data feed" unaosimamiwa na mhusika maalum (k.m., NASDAQ) ulioundwa ili mhusika huyo awe na uwezo wa kusasisha mkataba inapohitajika, na kutoa kiolesura kinachoruhusu mikataba mingine kutuma ujumbe kwa mkataba huo na kupata jibu linalotoa bei. + +Kwa kuzingatia hilo, mkataba wa hedging ungeonekana kama ifuatavyo: + +1. Subiri upande A awasilishe ether 1000. +2. Subiri upande B awasilishe ether 1000. +3. Rekodi thamani ya dola ya ether 1000, iliyokadiriwa kwa kuulizia mkataba wa data feed, katika hifadhi, sema hiyo ni $x. +4. Baada ya siku 30, ruhusu A au B "kuanzisha tena" mkataba ili kutuma ether yenye thamani ya $x (iliyokadiriwa kwa kuulizia tena bei mpya katika mkataba wa data feed) kwa A na salio kwa B. + +Mkataba kama huu una uwezo mkubwa katika biashara ya krypto. Moja ya matatizo kuu yaliyotajwa kuhusu sarafu za kidijitali ni kutegemea mabadiliko ya thamani; ingawa watumiaji wengi na wauzaji wanaweza kutaka usalama na urahisi wa kushughulika na mali za cryptographic, wengi hawawezi kukubali kupoteza hadi 23% ya thamani ya fedha zao kwa siku moja. Hadi sasa, suluhisho lililopendekezwa zaidi limekuwa mali zinazoungwa mkono na mtoaji; wazo ni kwamba mtoaji anaunda sarafu ndogo ambayo ana haki ya kutoa na kufuta vitengo, na kutoa kitengo kimoja cha sarafu kwa mtu yeyote anayewapa (nje ya mtandao) kitengo kimoja cha mali ya msingi iliyobainishwa (k.m., dhahabu, USD). Mhusika huhakikishia kutoa kitengo cha mali kwa yeyote anayerudisha kitengo kimoja cha krypto-mali. Mchakato huu unaruhusu mali yoyote isiyo ya kikriptografia "kuongezwa thamani" kuwa mali ya cryptographic, kwa sharti mhusika anategemewa. + +Katika vitendo, hata hivyo, wahusika si kila mara wanaaminika, na katika baadhi ya kesi miundombinu ya benki ni dhaifu au hatari kwa huduma kama hizo kuwepo. Viingilio vya kifedha zinatolewa kama mbadala. Hapa, badala ya mtoaji mmoja kutoa fedha za kuunga mkono mali, soko lililogatuliwa la walanguzi, wanaobashiri kwamba bei ya mali ya rejeleo ya kriptografia (k.m., ETH) itapanda, ndio huchukua jukumu hilo. Tofauti na wahusika, wawekezaji hawawezi kukiuka upande wao wa mkataba kwa sababu mkataba wa hedging unawashikilia fedha zao kwa escrow. Kumbuka mbinu hii si kamili sana kwa kuwa chanzo cha kuaminika bado kinahitajika kutoa ripoti ya bei, ingawa bado ni maendeleo makubwa kwa kupunguza mahitaji ya miundombinu (tofauti na kuwa mhusika, kutoa ripoti ya bei hakuhitaji leseni na kunaweza kuzingatiwa kama uhuru wa kusema) na kuzuia kuwepo na utapeli. + +### Mifumo ya Utambulisho na Sifa {#identity-and-reputation-systems} + +Sarafu ya kidigitali mbadala ya awali kabisa, [Namecoin](http://namecoin.org/), ilijaribu kutumia mnyororo wa bloku unaofanana na Bitcoin kutoa mfumo wa usajili wa majina, ambapo watumiaji wanaweza kusajili majina yao katika hifadhidata ya umma pamoja na data nyingine. Kesi kuu ya matumizi iliyotajwa ni kwa mfumo wa [DNS](https://wikipedia.org/wiki/Domain_Name_System), inayopanga majina ya vikoa kama "bitcoin.org" (au, katika kesi ya Namecoin, "bitcoin.bit") kwa anwani ya IP. Matumizi mengine ni uthibitishaji wa barua pepe na mifumo ya sifa ya hali ya juu zaidi. Hapa kuna mkataba wa msingi wa kutoa mfumo wa usajili wa majina kama wa Namecoin kwenye Ethereum: + +```py +def register(name, value): + if !self.storage[name]: + self.storage[name] = value +``` + +Mkataba ni rahisi sana; yote ni hifadhidata ndani ya mtandao wa Ethereum ambayo inaweza kuongezwa, lakini si kubadilishwa au kufutwa. Kila mtu anaweza kusajili jina kwa thamani fulani, na usajili huo unabaki milele. Mkataba wa usajili wa majina ulioboreshwa zaidi pia utakuwa na "kifungu cha kazi" kinachoruhusu mikataba mingine kuiuliza, pamoja na utaratibu kwa "mmiliki" (yaani, msajili wa kwanza) wa jina kubadilisha data au kuhamisha umiliki. Mtu anaweza kuongeza hata sifa za sifa na mtandao wa imani juu yake. + +### Hifadhi ya Faili Iliyogatuliwa {#decentralized-file-storage} + +Katika miaka michache iliyopita, kumekuwa na kuibuka kwa kampuni maarufu za kuhifadhi faili mtandaoni, maarufu zaidi ikiwa ni Dropbox, zinazotaka kuwapa watumiaji uwezo wa kupakia nakala rudufu ya diski zao ngumu na kuweka huduma hifadhi hiyo na kumruhusu mtumiaji kuifikia kwa malipo ya kila mwezi. Hata hivyo, sasa hivi soko la kuhifadhi faili ni mara nyingine si wenye ufanisi sana; mtazamo wa haraka wa suluhisho mbalimbali zilizopo unaonyesha kuwa hasa katika kiwango cha "uncanny valley" cha GB 20-200 ambapo hakuna quota ya bure au punguzo la ngazi ya biashara linavyoanza, bei za kila mwezi za kuhifadhi faili ni ghali kiasi kwamba unalipia zaidi ya gharama ya diski nzima kwa mwezi mmoja tu. Mikataba ya Ethereum inaweza kuruhusu maendeleo ya mfumo wa uhifadhi wa faili usio na msimamizi wa kati, ambapo watumiaji binafsi wanaweza kupata kipato kidogo kwa kukodisha diski zao ngumu na nafasi zisizotumika zikitumika kupunguza zaidi gharama za kuhifadhi faili. + +Sehemu muhimu ya mfumo kama huu itaweza kuwa kile tunachokiita "mkataba wa Dropbox gatuzi". Mkataba huu hufnya kazi kama ifuatavyo. Kwanza, mtu anagawanya data inayotakiwa katika bloki, kuzificha block zote kwa usiri, na kujenga mti wa Merkle kutoka kwake. Kisha mtu anafanya mkataba wenye sheria kwamba kila blocks N, mkataba utachagua index ya nasibu katika mti wa Merkle (kutumia hash ya block ya awali inayopatikana kutoka kwa msimbo wa mkataba kama chanzo cha nasibu), na kumpa ether X kitu cha kwanza kutoa muamala wenye ushahidi wa huduma rahisi wa umiliki wa bloki katika index hiyo ya mti. Mtumiaji anapotaka kupakua tena faili yake, anaweza kutumia itifaki ya chaneli ya malipo madogo (k.m., kulipa szabo 1 kwa kila kilobaiti 32) ili kurejesha faili; mbinu yenye ufanisi zaidi wa ada ni kwa mlipaji kutochapisha muamala hadi mwisho, badala yake akibadilisha muamala na mwingine wenye faida kidogo na nonce ileile baada ya kila kilobaiti 32. + +Sifa muhimu ya itifaki ni kwamba, ingawa inavyoonekana mtu anaamini nodi nyingi zisahau faili, anaweza kupunguza hatari hiyo karibu sifuri kwa kugawanya faili vipande vingi kwa njia ya kushirikiana kwa siri, na kuangalia mikataba kuona sehemu zote bado ziko mkononi mwa nodi fulani. Ikiwa mkataba bado unatoa pesa, hiyo ni ushahidi wa usimbaji fiche wa kriptografia kwamba mtu bado anahifadhi faili. + +### Mashirika Huru ya Kiotomatiki {#decentralized-autonomous-organizations} + +Dhana ya jumla ya "shirika huru la ugatuzi" ni kitu cha pepe chenye seti ya wanachama au wanahisa ambao, labda kwa idadi ya juu ya 67%, wana haki ya kutumia fedha za shirika na kubadilisha msimbo wake. Wanachama watakubaliana pamoja juu ya jinsi shirika linapaswa kugawa fedha zake. Njia za kugawa fedha za shirika DAO's zinaweza kuanzia zawadi, mishahara hadi njia za kipekee zaidi kama sarafu ya ndani kuwapa motisha wafanyakazi. Hili kwa kiasi kikubwa hufanana na utawala wa kampuni au shirika lisilo la faida kwa kutumia tu teknolojia za kriptografia za blockchain kuhimiza. Hadi sasa mazungumzo mengi kuhusu DAOs yamezunguka mfano wa "kampuni huru isiyosimamiwa na msimamizi" (DAC) yenye wanahisa wanaopokea gawio na hisa zinazoweza kuuzwa; mbadala, labda eleza kama "jamii huru isiyosimamiwa na msimamizi", ingekuwa kwamba wanachama wote wana mshiriki sawa katika maamuzi na inahitaji idadi ya 67% ya wanachama waliopo kukubaliana kuongeza au kuondoa mwanachama. Sharti kwamba mtu mmoja awe na uanachama mmoja tu unapaswa kuthibitishwa pamoja na kundi. + +Muhtasari wa jinsi ya kuandika msimbo wa DAO ni kama ifuatavyo. Muundo rahisi ni msimbo unaojibadilisha wenyewe unaobadilika endapo theluthi mbili ya wanachama watakubaliana juu ya mabadiliko. Ingawa msimbo kwa nadharia hauwezi kubadilika, mtu anaweza kuzunguka hili kwa kuwa na sehemu za msimbo katika mikataba tofauti, na kuweka anwani ya mikataba ya kuitwa kuhifadhiwa katika hifadhi inayobadilika. Katika utekelezaji rahisi wa mkataba wa DAO, kutakuwa na aina tatu za miamala, zinazotofautishwa na data iliyotolewa: + +- `[0,i,K,V]` kusajili pendekezo lenye faharasa `i` la kubadilisha anwani katika faharasa ya hifadhi `K` kuwa thamani `V` +- `[1,i]` kusajili kura ya kuunga mkono pendekezo `i` +- `[2,i]` kukamilisha pendekezo `i` ikiwa kura za kutosha zimepigwa + +Mkataba utakuwa na masharti kwa kila moja ya haya. Utahifadhi rekodi ya mabadiliko yote yaliyofunguliwa ya hifadhi, pamoja na orodha ya waliopiga kura. Pia itakuwa na orodha ya wanachama wote. Mara yoyote mabadiliko ya hifadhi yatakayopata kura za theluthi mbili ya wanachama, muamala wa kumalizia unaweza kutekeleza mabadiliko. Muundo wa kina zaidi pia utakuwa na uwezo wa kupiga kura uliojengwa ndani kwa ajili ya vipengele kama vile kutuma muamala, kuongeza wanachama na kuondoa wanachama, na unaweza hata kutoa ugawaji wa kura wa mtindo wa [Liquid Democracy](https://wikipedia.org/wiki/Liquid_democracy) (yaani, mtu yeyote anaweza kumteua mtu wa kumpigia kura, na uteuzi huo ni wa mpito kwa hivyo ikiwa A atamteua B na B akamteua C basi C huamua kura ya A). Muundo huu utawezesha DAO kukua kidemokrasia kama jamii huru, ikiruhusu watu hatimaye kupeana jukumu la kuchuja nani ni mwanachama kwa wataalamu, ingawa tofauti na "mfumo wa sasa" wataalamu wanaweza kuingia na kutoka kwa urahisi wakati wanachama binafsi wa jamii wanabadilisha mawazo yao. + +Mfano mwingine ni kampuni huru inayowezesha akaunti yoyote kuwa na hisa sifuri au zaidi, na kura za theluthi mbili za hisa zinahitajika kufanya maamuzi. Muundo kamili utahusisha utawala wa mali, uwezo wa kufanya ofa kununua au kuuza hisa, na uwezo wa kukubali ofa (akiwa na mtindo wa kulinganisha oda ndani ya mkataba). Uteuzi pia utakuwepo kwa mtindo wa Liquid Democracy, ukipanua dhana ya "bodi ya wakurugenzi". + +### Matumizi Zaidi {#further-applications} + +**1. Pochi za akiba**. Tuchukulie Alice anataka kulinda fedha zake, lakini ana wasiwasi kuwa ataipoteza au mtu atavunja funguo zake binafsi. Anaweka ether katika mkataba na Bob, benki, kama ifuatavyo: + +- Alice peke yake anaweza kutoa hadi 1% ya fedha kwa siku. +- Bob peke yake anaweza kutoa hadi 1% ya fedha kwa siku, lakini Alice ana uwezo wa kufanya muamala wa kuzuia hili. +- Alice na Bob pamoja wanaweza kutoa fedha zozote. + +Kwa kawaida, 1% kwa siku inatosha kwa Alice, na anapohitaji zaidi anaweza kumtafuta Bob kwa msaada. Ikiwa funguo za Alice ziharibiwa, anaenda kwa Bob kuchukua fedha na kuhamisha kwenye mkataba mpya. Ikiwa atapoteza funguo, Bob atatoa fedha kwa hakika. Ikiwa Bob atatokea kuwa mbaya, Alice anaweza kuzuia uwezo wake wa kutoa fedha. + +**2. Bima ya mazao**. Mtu anaweza kutengeneza mkataba wa viingilio wa kifedha kwa kutumia data ya hali ya hewa badala ya index ya bei. Ikiwa mkulima aliye Iowa ananunue kiingilio kinacholipa kinyume na mvua kule Iowa, basi akiba atapokea pesa moja kwa moja ikiwa kuna ukame, na furaha ikiwa mvua itatosha. Hii inaweza kupanuliwa kuwa bima ya majanga ya asili kwa ujumla. + +**3. Chanzo cha data huru**. Kwa mikataba ya kifedha kwa tofauti, inaweza kuwa inawezekana kugatua mlisho wa data kupitia itifaki inayoitwa "[SchellingCoin](https://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/)". Kimsingi SchellingCoin hufanya kazi kama ifuatavyo: wahusika N wote huweka kwenye mfumo thamani ya data fulani (k.m., bei ya ETH/USD), thamani hizo hupangwa, na kila mtu kati ya asilimia 25 na 75 anapata tokeni moja kama zawadi. Kila mtu ana hamasa ya kutoa jibu ambalo wengine wata toa, na thamani pekee ambayo wachezaji wengi wanaweza kukubaliana ni ukweli. Hii huunda itifaki huru inayoweza kutoa idadi yoyote ya thamani, ikiwa ni pamoja na bei ya ETH/USD, joto la Berlin, au matokeo ya hesabu ngumu. + +**4. Mkataba wa escrow wa nguvu za saini nyingi**. Bitcoin inaruhusu mikataba yenye saini nyingi ambapo, kwa mfano, tatu kati ya funguo tano wanaweza kutumia fedha. Ethereum inaruhusu utofauti zaidi; kwa mfano, nne kati ya tano wanaweza kutumia kila kitu, tatu kati ya tano wanaweza kutumia hadi 10% kwa siku, na mbili kati ya tano hadi 0.5% kwa siku. Zaidi ya hayo, multisig ya Ethereum ni solandanifu - watu wawili wanaweza kusajili saini zao kwenye blockchain wakati tofauti na saini ya mwisho itatuma muamala moja kwa moja. + +**5. Wingu la utarakilishi**. Teknolojia ya EVM pia inaweza kutumika kuunda mazingira ya kuhifadhi utarakilishi yanayothibitishwa, kuruhusu watumiaji kuwaombi wengine kufanya mahesabu na kisha omba uthibitisho wa kwamba mahesabu maeneo fulani yaliyopangwa kimsingi yamefanyika sawa. Hii inaruhusu kuundwa kwa soko la kompyuta ya wingu ambapo mtumiaji yeyote anaweza kushiriki na kompyuta yake ya mezani, kompyuta ndogo au seva maalum, na ukaguzi wa mara kwa mara pamoja na amana za usalama zinaweza kutumika kuhakikisha kuwa mfumo ni wa kuaminika (yaani, nodi haziwezi kudanganya kwa faida). Ingawa mfumo kama huu unaweza usifae kwa kazi zote; kazi zinahitaji mawasiliano ya hali ya juu kati ya michakato, kwa mfano, haiwezi kufanyika kwa urahisi kwenye wingi kubwa la nodi. Hata hivyo, kazi nyingine ni rahisi zaidi kugawanyika; miradi kama SETI@home, folding@home na algorithms za jenetiki zinaweza kutekelezwa juu ya jukwaa kama hili. + +**6. Kamari ya mtu kwa mtu**. Itifaki zozote za kamari za rika-kwa-rika, kama vile [Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf) ya Frank Stajano na Richard Clayton, zinaweza kutekelezwa kwenye mnyororo wa bloku wa Ethereum. Itifaki rahisi ya kamari ni mkataba wa tofauti katika bloki inayofuata, na itifaki zaidi za hali ya juu zinaweza kujengwa, kuunda huduma za kamari zenye ada karibu sifuri na haziwezi kudanganya. + +**7. Masoko ya Utabiri**. Ikiwa kuna oracle au SchellingCoin, masoko ya utabiri pia ni rahisi kutekeleza, na masoko ya utabiri pamoja na SchellingCoin yanaweza kuwa matumizi ya kwanza ya kawaida ya [futarchy](https://mason.gmu.edu/~rhanson/futarchy.html) kama itifaki ya utawala kwa mashirika yaliyogatuliwa. + +**8. Masoko yaliyogatuliwa kwenye mnyororo wa bloku**, kwa kutumia mfumo wa utambulisho na sifa kama msingi. + +## Mengineyo na Wasiwasi {#miscellanea-and-concerns} + +### Utekelezaji Uliobadilishwa wa GHOST {#modified-ghost-implementation} + +Itifaki ya "Greedy Heaviest Observed Subtree" (GHOST) ni uvumbuzi ulioanzishwa kwa mara ya kwanza na Yonatan Sompolinsky na Aviv Zohar mnamo [Desemba 2013](https://eprint.iacr.org/2013/881.pdf). Motisha ya GHOST ni kuwa blockchains zenye muda mfupi wa kuthibitisha mara nyingi huwa na usalama mdogo kwa sababu ya kiwango kikubwa cha bloki zisizotumika - kwa sababu blocks zinachukua muda kusafirishwa mtandaoni, ikiwa mchimbaji A atachimba bloki na mchimbaji B anachimba bloki kabla bloki ya A kufikia B, bloki ya B itakuwa ya bure na haitasaidia usalama wa mtandao. Zaidi ya hayo, kuna tatizo la kuwaridhisha watu wachache: kama mchimbaji A ana 30% ya nguvu ya hash na B ana 10%, A atakuwa na nafasi ya kuzalisha bloki isiyotumika kwa 70% ya wakati(kwa kuwa 30% iliyosaliawakati A alizalisha bloki awali na kwa hivyo atapata data ya uchimbaji mara moja) wakati B ana nafasi ya kuzalisha block isiyotumika kwa 90%. Kwa hivyo, ikiwa muda kati ya bloki ni mfupi sana kwa kiwango kikubwa cha bloki zisizotumika, mchimbaji A atakuwa na ufanisi mkubwa sana kutokana na ukubwa wake. Kwa kuunganishwa kwa mambo haya mawili, blockchains zinazozalisha bloki kwa haraka huenda zikawa na pool moja ya uchimbaji yenye asilimia kubwa ya nguvu ya hash mtandaoni kuweza kudhibiti mchakato wa uchimbaji. + +Kama ilivyotajwa na Sompolinsky na Zohar, GHOST inatatua tatizo la kupoteza usalama wa mtandao kwa kujumuisha bloki zisizotumika katika hesabu ya mnyororo mrefu zaidi; yaani, si mzazi na babu wa block peke yake, bali pia watoto wa babu wa bloki (inajulikana kama "uncle" katika Ethereum) hujumuishwa katika hesabu ya bloki yenye jumla kubwa ya proof-of-work inayoiunga mkono. Ili kutatua tatizo la pili la upendeleo wa kuwaridhisha watu wachache, sisi huzidi itifaki yaniyotajwa na Sompolinsky na Zohar, pia tunapeana thawabu za bloki zisizotumika: bloki isiyotumika hupokea asilimia 87.5 ya thawabu zake za msingi, na bloki inayojumuisha bloki isiyotumika hupokea asilimia 12.5 ya thawabu za msingi. Hata hivyo, ada za miamala hazitoiwana mapato kwa blocks zisizotumika. + +Ethereum hutumia toleo rahisi la GHOST linalozunguka hadi ngazi saba tu. Kwa undani, ni kama ifuatavyo: + +- Block lazima ibainishe mzazi, na lazima ibainishe "uncles" sifuri au zaidi +- Uncle aliyejumuishwa katika block B lazima awe na sifa zifuatazo: + - Lazima iwe mtoto wa moja kwa moja wa babu wa kizazi cha k cha B, ambapo `2 <= k <= 7`. + - Haiwezi kuwa babu wa B + - Uncle lazima awe na kichwa halali cha block, lakini haipaswi kuwa block iliyothibitishwa awali au halali + - Uncle lazima awe tofauti na "uncles" wote waliotajwa katika bloki zilizopita na wote waliotajwa katika bloki moja (kizuizi cha mara mbili) +- Kila uncle U katika block B, mchimbaji wa B hupata bonasi ya asilimia 3.125 ya thawabu yake ya kawaida na mchimbaji wa U hupata asilimia 93.75 ya thawabu ya kawaida. + +Toleo hili lililozuiliwa la GHOST, lililo na uncles hadi kizazi 7 tu, lilitumiwa kwa sababu mbili. Kwanza, GHOST isiyo na kikomo ingeleta usumbufu mwingi katika hesabu ya uncles halali za block fulani. Pili, GHOST isiyo na kikomo iliyo na malipo kama inavyotumika Ethereum inaondoa msukumo kwa mchimbaji kuchimba kwenye mnyororo mkuu badala ya mnyororo wa mshambuliaji wa umma. + +### Ada {#fees} + +Kwa sababu kila muamala unaochapishwa kwenye blockchain unaagiza mtandao kuupakua na kuuthibitisha, inahitajika mfumo fulani wa udhibiti, kawaida ukiwa ada za muamala, kuzuia matumizi mabaya. Mbinu ya kawaida, inayotumiwa na Bitcoin, ni kuwa ada ni hiari kabisa, na kutegemea wachimbaji kuwa walinzi wa lango na kuweka kiwango cha chini kinachobadilika. Mbinu hii imepokelewa vizuri katika jamii ya Bitcoin hasa kwa sababu ni "inayozingatia soko", ikiruhusu mahitaji na ugavi kati ya wachimbaji na watuma miamala kuamua bei. Tatizo na mbinu hii ni kuwa, hata hivyo, usindikaji wa miamala si soko; ingawa ni la kuvutia kusisitiza usindikaji wa miamala kama huduma inayotolewa na mchimbaji kwa mtuma, kweli kila muamala unaojumuishwa na mchimbaji utawajibika kusindikwa na kila nodi katika mtandao, kwa hiyo gharama kubwa zaidi za usindikaji hutegemea watu wengine, si mchimbaji anayeamua ikiwa au la kuujumuisha. Hivyo, matatizo ya "mikosi ya shughuli za kawaida" huenda yakatokea. + +Hata hivyo, dosari hii ya mfumo wa kuzingatia soko, ikiwa itafikiriwa kwa mtazamo fulani usio sahihi, inajatupwa yote yenyewe. Dhana ni kama ifuatavyo. Tuseme kuwa: + +1. Muamala husababisha operesheni `k`, ukitoa thawabu `kR` kwa mchimbaji yeyote anayeijumuisha ambapo `R` imewekwa na mtumaji na `k` na `R` (takriban) zinaonekana kwa mchimbaji mapema. +2. Operesheni ina gharama ya usindikaji ya `C` kwa nodi yoyote (yaani, nodi zote zina ufanisi sawa) +3. Kuna nodi `N` za uchimbaji, kila moja ikiwa na nguvu sawa ya usindikaji (yaani, `1/N` ya jumla) +4. Hakuna nodi kamili zisizo za uchimbaji. + +Mchimbaji angependa kusindika muamala ikiwa thawabu inayotarajiwa ni kubwa kuliko gharama. Kwa hivyo, thawabu inayotarajiwa ni `kR/N` kwani mchimbaji ana nafasi ya `1/N` ya kushughulikia bloku inayofuata, na gharama ya usindikaji kwa mchimbaji ni `kC` tu. Kwa hivyo, wachimbaji watajumuisha miamala ambapo `kR/N > kC`, au `R > NC`. Kumbuka kuwa `R` ni ada kwa kila operesheni inayotolewa na mtumaji, na hivyo ni kikomo cha chini cha faida ambayo mtumaji hupata kutokana na muamala, na `NC` ni gharama kwa mtandao mzima kwa pamoja ya kushughulikia operesheni. Kwa hivyo, wachimbaji wana motisha ya kujumuisha miamala ambayo faida yake ya jumla ni zaidi ya gharama. + +Hata hivyo, katika ukweli kuna tofauti kadhaa muhimu kando na maoni kiukweli: + +1. Mchimbaji anagharamia zaidi kusindika muamala kuliko nodi zingine, kwa sababu muda wa ziada wa uthibitisho huchelewesha usafirishaji wa bloki na kuongeza nafasi ya bloki kuwa isiyotumika. +2. Kuna nodi kamili zisizo za uchimbaji. +3. Ugawaji wa nguvu ya uchimbaji unaweza kuwa hauwiano sana. +4. Wanaotamalaki, maadui wa kisiasa na watu wenye fikra kali walio na nia ya kuharibu mtandao wapo, wanaweza kuanzisha mikataba ambayo gharama yao ni ndogo kuliko gharama ya nodi zingine. + +(1) hutoa mwelekeo kwa mchimbaji kujumuisha miamala michache, na +(2) huongeza `NC`; kwa hivyo, athari hizi mbili angalau kwa sehemu hufutiana +.[Jinsi gani?](https://web.archive.org/web/20250427212319/https://github.com/ethereum/wiki/issues/447#issuecomment-316972260#issuecomment-316972260) +(3) na (4) ndio suala kuu; ili kuzitatua tunaweka tu kikomo +kinachoelea: hakuna bloku inayoweza kuwa na operesheni nyingi kuliko +`BLK_LIMIT_FACTOR` mara wastani wa muda mrefu wa kielelezo. +Maelezo maalum ni: + +```js +blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + +floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) +``` + +`BLK_LIMIT_FACTOR` na `EMA_FACTOR` ni vidhibiti ambavyo vitawekwa kuwa 65536 na 1.5 kwa sasa, lakini huenda vikabadilishwa baada ya uchambuzi zaidi. + +Kuna sababu nyingine ya kuzuiwa kwa ukubwa wa bloki za Bitcoin: bloki kubwa huchukua muda mrefu kusafirishwa na hivyo kuongeza uwezekano wa kuwa bloki zisizotumika. Katika Ethereum, bloki zinazotumia gesi nyingi zapo sakata sawa, kwa sababu bloki hizo ni kubwa kimwili na zinachukua muda mrefu kusindika mabadiliko ya hali kuidhinishwa. Ucheleweshaji huu ni sababu muhimu sana katika Bitcoin, lakini si kwa Ethereum kwa sababu ya itifaki ya GHOST; hiyo ndiyo maana kuna kizuizi cha ukubwa wa block ni msingi thabiti zaidi. + +### Ukokotoaji na Ukamilifu wa Turing {#computation-and-turing-completeness} + +Kumbuka muhimu ni kwamba mashine pepe ya Ethereum ni Turing-complete; hii ina maana kwamba msimbo wa EVM unaweza kuwakilisha hesabu yoyote inayowezekana kufanyika, ikiwa ni pamoja na mizunguko isiyo na mwisho. Msimbo wa EVM unaruhusu mizunguko kwa njia mbili. Kwanza, kuna maagizo ya `JUMP` yanayoruhusu programu kuruka nyuma hadi mahali pa awali katika msimbo, na maagizo ya `JUMPI` kufanya urukaji wa masharti, kuruhusu taarifa kama `while x < 27: x = x * 2`. Pili, mikataba inaweza kuitwa na mikataba mingine, ikiruhusu mizunguko kupitia urudufu. Hii huleta tatizo: je, watumiaji wabaya wanaweza kuzima wachimbaji na nodi kamili kwa kuwalazimisha waziingie mizunguko isiyo na mwisho? Tatizo linatokana na shida ya kompyuta sayansi linalojulikana kama tatizo la kuacha: hakuna njia ya kusema, kwa ujumla, kama programu fulani itaacha kufanya kazi. + +Kama ilivyobainishwa katika sehemu ya mabadiliko ya hali, suluhisho letu ni kusuta miamala ili kuweka kikomo cha hatua za kihesabu anazoruhusiwa kutumia, na ikiwa utekelezaji utaendelea zaidi, mabadiliko ya hesabu hurudi nyuma lakini ada bado inalipwa. Ujumbe hufanya kazi kwa njia ile ile. Ili kuonyesha sababu ya suluhisho letu, zingatia mifano ifuatayo: + +- Mshambuliaji anaunda mkataba unaoendesha mizunguko isiyo na mwisho, na kisha anamtumia muamala wa kuanzisha mizunguko hiyo kwa mchimbaji. Mchimbaji atasindika muamala, anatekeleza mizunguko isiyo na mwisho, na kusubiri gesi itakapokamilika. Ingawa utekelezaji unakosa gesi na kusimama katikati, muamala bado ni halali na mchimbaji atapokea ada kutoka kwa mshambuliaji kwa kila hatua ya kihesabu. +- Mshambuliaji anaunda mizunguko ndefu isiyo na mwisho ili kulazimisha mchimbaji kuendelea kupanga kwa muda mrefu kiasi kwamba dakika zaidi za bloki zitatokea na haitakuwa na uwezo wa kupakia muamala kudai ada na mchimbaji hautawezekana. Hata hivyo, mshambuliaji atahitajika kuwasilisha thamani ya `STARTGAS` inayozuia idadi ya hatua za kikokotozi ambazo utekelezaji unaweza kuchukua, kwa hivyo mchimbaji atajua mapema kuwa ukokotoaji utachukua idadi kubwa sana ya hatua. +- Mshambuliaji anaona mkataba wenye msimbo wa aina fulani kama `send(A,contract.storage[A]); contract.storage[A] = 0`, na anatuma muamala wenye gesi ya kutosha kuendesha hatua ya kwanza lakini si ya pili (yaani, kutoa pesa lakini si kuruhusu salio kupungua). Mwandishi wa mkataba hahitaji kuwa na wasiwasi juu ya mashambulizi haya, kwa sababu ikiwa utekelezaji unasimama katikati, mabadiliko hurudi nyuma. +- Mkataba wa kifedha hufanya kazi kwa kuchukua kati ya ripoti tisa za bei ili kupunguza hatari. Mshambuliaji anachukua udhibiti wa moja kati ya ripoti hizo, ambazo zinaweza kubadilishwa kupitia mfumo wa anwani zinazoweza kubadilika kama ilivyoelezwa katika sehemu ya DAOs, na kuibadilisha kuendesha mzunguko usio na mwisho, kwa hivyo akijaribu kulazimisha maombi yote ya pesa mkataba wa kifedha utatumiwa hadi gesi itakapokamilika. Hata hivyo, mkataba wa kifedha unaweza kuweka kikomo cha gesi kwa ujumbe kuzuia shida hii. + +Njia mbadala ya ukamilifu wa Turing ni kutokamilika kwa Turing, ambapo `JUMP` na `JUMPI` hazipo na nakala moja tu ya kila mkataba inaruhusiwa kuwepo kwenye rafu ya wito wakati wowote. Katika mfumo huu, mfumo wa ada uliotajwa na kutatanisha kuhusu ufanisi wa suluhisho letu ungeweza kutotakiwa, kwa kuwa gharama ya utekelezaji wa mkataba ingekuwa na kikomo juu kulingana na ukubwa wake. Zaidi ya hayo, ukamilifu si kikwazo kikubwa sana; kati ya mifano yote ya mikataba tuliyotengeneza ki-ndani, mpaka sasa mkataba mmoja tu umehitaji mzunguko, na hata mzunguko huo unaweza kuondolewa kwa kurudia mistari 26 ya msimbo wa mstari mmoja. Kwa athari za uzito za ukamilifu wa Turing na faida ndogo, kwa nini basi tusitumie lugha isiyo kamili ya Turing? Hata hivyo, kwa kweli, ukamilifu wa Turing hauwezi kuwa suluhisho zuri kwa tatizo hili. Ili kuona kwanini, tazama mikataba ifuatayo: + +```sh +C0: call(C1); call(C1); +C1: call(C2); call(C2); +C2: call(C3); call(C3); +... +C49: call(C50); call(C50); +C50: (endesha hatua moja ya programu na rekodi mabadiliko kwenye hifadhi) +``` + +Sasa, tuma muamala kwa A. Kwa hivyo, katika miamala 51, tuna mkataba unaotumia hatua 250 za kihesabu. Wachimbaji wangejaribu kugundua mapema mizinga ya mantiki kama hiyo kwa kuweka thamani na kila mkataba, na kuhesabu hii kwa mikataba inayoita mikataba mingine kwa urudufu, lakini hii ingehitaji wachimbaji kuzuia mikataba inayoumba mikataba mingine (kwa sababu uundaji na utekelezaji wa mikataba 26 zilizo hapo juu ungeweza kuruhusiwa kuingizwa katika mkataba mmoja). Tatizo lingine ni kwamba uwanja wa anwani wa ujumbe ni wa kubadilika, kwa hivyo kwa ujumla haiwezekani kujua ni mikataba ipi mkataba fulani uta wasiliana nayo mapema. Kwa hiyo, kwa haya yote, tuna hitimisho la kushangaza: ukamilifu wa Turing ni rahisi kudhibiti, na ukosefu wake ni mgumu kudhibiti isipokuwa udhibiti huo huo uwepo - lakini katika hali hiyo, kwa nini tusiruhusu itifaki kuwa na ukamilifu wa Turing? + +### Sarafu na Utoaji {#currency-and-issuance} + +Mtandao wa Ethereum una sarafu yake ya ndani iliyojengwa, ether, ambayo inahudumu kwa madhumuni mawili ya kutoa tabaka kuu la ushawishi kuruhusu kubadilishana kwa ufanisi kati ya aina mbalimbali za mali za kidijitali na, muhimu zaidi, kutoa mfumo wa kulipa ada za miamala. Kwa urahisi na kuepuka mabishano ya baadaye (angalia mjadala wa sasa wa mBTC/uBTC/satoshi katika Bitcoin), vitengo vitakuwa vimeandikwa awali: + +- 1: wei +- 1012: szabo +- 1015: finney +- 1018: ether + +Hii inapaswa kuchukuliwa kama toleo lililoenea la dhana ya "dola" na "senti" au "BTC" na "satoshi". Katika siku za karibuni, tunatarajia "ether" itatumika kwa miamala ya kawaida, "finney" kwa miamala midogo sana, na "szabo" na "wei" kwa majadiliano ya kiufundi kuhusu ada na utekelezaji wa itifaki; vitengo vilivyo baki vinaweza kuwa na matumizi baadaye na hazipaswi kuingizwa katika wateja kwa sasa. + +Muundo wa utoaji utakuwa kama ifuatavyo: + +- Ether itatolewa katika mauzo ya sarafu kwa bei ya ether 1000-2000 kwa BTC, mfumo uliokusudiwa kufadhili shirika la Ethereum na kulipa maendeleo ambayo imetumika kwa mafanikio na majukwaa mengine kama Mastercoin na NXT. Wanunuzi wa awali watapata punguzo kubwa zaidi. BTC zitakazopokewa kutoka kwa mauzo zitakuwa kwa kila kitu kulipia mishahara na zawadi kwa watengenezaji na kuwekeza katika miradi mbalimbali ya faida na isiyo ya faida katika mfumo wa Ethereum na sarafu za kidijitali. +- 0.099x ya jumla ya kiasi kilichouzwa (60102216 ETH) itagawiwa kwa shirika kuwalipa wachangiaji wa mapema na kulipia gharama zilizo katika ETH kabla ya bloki ya mwanzo. +- 0.099x ya jumla ya kiasi kilichouzwa itahifadhiwa kama akiba ya muda mrefu. +- 0.26x ya jumla ya kiasi kilichouzwa itatolewa kwa wachimbaji kila mwaka milele kuanzia wakati huo. + +| Kikundi | Wakati wa uzinduzi | Baada ya mwaka 1 | Baada ya miaka 5 | +| -------------------------------- | ---------------------- | ---------------------- | ---------------------- | +| Vitengo vya sarafu | 1.198X | 1.458X | 2.498X | +| Wanunuzi | 83.5% | 68.6% | 40.0% | +| Akiba iliyotumika kabla ya mauzo | 8.26% | 6.79% | 3.96% | +| Akiba iliyotumika baada ya mauzo | 8.26% | 6.79% | 3.96% | +| Wachimbaji | 0% | 17.8% | 52.0% | + +#### Kiwango cha ukuaji wa ugavi wa muda mrefu (asilimia) + +![Mfumo wa bei wa Ethereum](./ethereum-inflation.png) + +_Licha ya utoaji wa sarafu kwa mstari, kama Bitcoin kwa muda kiwango cha ukuaji wa ugavi huwa kinakaribia sifuri._ + +Chaguo mbili kuu katika muundo huu ni (1) uwepo na ukubwa wa hazina ya msaada, na (2) uwepo wa ugavi unaokua kwa mstari milele, tofauti na ugavi ulio na kikomo kama Bitcoin. Sababu ya kuwepo kwa hazina ya msaada ni kama ifuatavyo. Kama hazina hiyo haipo, na utoaji wa mstari ukapunguzwa kuwa 0.217x ili kutoa kiwango sawa cha mfumuko, basi kiasi cha ether kingekuwa pungufu kwa 16.5% na kila kitengo kingekuwa na thamani kubwa kwa 19.8%. Hivyo basi, kwa usawa, kungetolewa ether zaidi 19.8% kwa mauzo na kila kitengo kingerejea kuwa na thamani sawa kama awali. Shirika linaweza pia kuwa na BTC 1.198x, ambayo inaweza kugawanywa katika sehemu mbili: BTC za asili na ziada ya 0.198x. Kwa hivyo, hali hii ni _sawa kabisa_ na ruzuku, lakini kwa tofauti moja muhimu: shirika linashikilia BTC tu, na kwa hivyo halina motisha ya kusaidia thamani ya kitengo cha ether. + +Muundo wa milele wa ukuaji wa ugavi wa mstari unaepuka hatari ya mkusanyiko mkubwa wa utajiri kama ilivyoona kwenye Bitcoin, na unawapa watu wa enzi za sasa na zijazo nafasi sawa ya kupata vitengo vya sarafu, huku pia ukihifadhi msukumo wa kuupata na kuushikilia ether kwa sababu "kiwango cha ukuaji wa ugavi" bado kinakaribia sifuri kwa muda. Pia tunatoa nadharia kwamba kwa sababu sarafu hupotea kila wakati kutokana na uzembe, kifo, n.k., na upotevu wa sarafu unaweza kuigwa kama asilimia ya jumla ya usambazaji kwa mwaka, kwamba jumla ya usambazaji wa sarafu katika mzunguko hatimaye itatulia kwa thamani sawa na utoaji wa kila mwaka ukigawanywa na kiwango cha upotevu (k.m., kwa kiwango cha upotevu cha 1%, mara tu usambazaji utakapofikia 26X basi 0.26X itachimbwa na 0.26X itapotea kila mwaka, na kuunda usawa). + +Kumbuka kwamba baadaye, Ethereum ina uwezekano wa kubadili mfumo wake kuwa wa uthibitisho wa hisa (proof-of-stake) kwa usalama, kupunguza mahitaji ya utoaji kwenda kati ya sifuri na 0.05X kwa mwaka. Katika tukio ambalo shirika la Ethereum litapoteza ufadhili au kwa sababu nyingine yoyote litatoweka, tunaacha wazi "mkataba wa kijamii": mtu yeyote ana haki ya kuunda toleo la baadaye la Ethereum, na sharti pekee likiwa kwamba kiasi cha ether lazima kiwe sawa na `60102216 * (1.198 + 0.26 * n)` ambapo `n` ni idadi ya miaka baada ya bloku ya mwanzo. Watengenezaji inaweza kuuza kwa umma au kugawa tofauti kati ya upanuzi wa ugavi unaosababishwa na PoS na kiwango cha juu kinachoruhusiwa kulipia maendeleo. Maboresho yanayogombea ambayo hayazingatii mkataba wa kijamii yanaweza kwa haki kugawanywa kuwa matoleo yanayoendana. + +### Ugatuaji wa Uchimbaji Madini {#mining-centralization} + +Algorithimu ya uchimbaji ya Bitcoin inafanya kazi kwa kuwafanya wachimbaji kuhesabu SHA256 kwenye toleo lililobadilishwa la kichwa cha bloki mara kwa mara milioni nyingi, hadi nodi moja ipate toleo lenye hash ndogo kuliko lengo (sasa takriban 2192). Hata hivyo, algorithimu hii ina hatari mbili za kuwaridhisha watu wachache. Kwanza, mazingira ya uchimbaji yamedominika na ASICs (application-specific integrated circuits), chips za kompyuta zilizotengenezwa kwa kazi hiyo maalum ya uchimbaji Bitcoin na kwa hiyo ni mara elfu zaidi zenye ufanisi. Hii ina maana uchimbaji wa Bitcoin haupo tena kwa usambazaji mkubwa na usawa, na unahitaji mamilioni ya dola kushiriki ipasavyo. Pili, wachimbaji wengi wa Bitcoin hawafanyi ukaguzi wa bloki wenyewe; badala yake, wanategemea kundi la uchimbaji lililojikita kutoa vichwa vya bloki. Tatizo hili linaweza kuwa mbaya zaidi: sasa hivi makundi matatu makubwa ya uchimbaji yana udhibiti wa takriban 50% ya nguvu za kuheshaji mtandao wa Bitcoin, ingawa hii inapunguzwa kwa uwezekano wa wachimbaji kuhamia hazina za uchimbaji zingine ikiwa hazina au muungano unajaribu shambulio la 51%. + +Madhumuni ya sasa katika Ethereum ni kutumia algorithimu ya uchimbaji ambapo wachimbaji wanatakiwa kupata data nasibu kutoka hali, kuhesabu baadhi ya miamala iliyochaguliwa nasibu kutoka kwa bloki N za mwisho kwenye blockchain, na kurudisha hash ya matokeo. Hii ina faida mbili muhimu. Kwanza, mikataba ya Ethereum inaweza kujumuisha aina yoyote ya ukokotoaji, kwa hivyo ASIC ya Ethereum kimsingi ingekuwa ASIC kwa ukokotoaji wa jumla - yaani, CPU bora zaidi. Pili, uchimbaji unahitaji ufikiaji wa blockchain nzima, na kulazimisha wachimbaji kuhifadhi blockchain nzima na angalau kuweza kuthibitisha kila muamala. Hii inaondoa hitaji la makundi ya uchimbaji ya kijumla; ingawa makundi haya bado yanaweza kuhudumu kama wasimamizi wa usawa wa usambazaji wa thawabu, kazi hii inaweza kufanywa sawa na makundi ya kawaida ya peer-to-peer bila udhibiti wa kati. + +Muundo huu haujajaribiwa, na kunaweza kuwa na ugumu wa kuepuka mbinu za ujanja katika matumizi ya utekelezaji wa mikataba kama algorithimu ya uchimbaji. Hata hivyo, kipengele cha kuvutia cha algorithimu hii ni kwamba inaruhusu mtu yeyote "kuharibisha vyanzo vya data", kwa kuanzisha mikataba mingi kwenye blockchain iliyoundwa mahsusi kuzuia ASIC mbalimbali. Kuhamasisha kiuchumi kuna kuwepo kwa watengenezaji wa ASIC kutumia hekaya hii kushambuliana. Kwa hiyo, suluhisho tunalotengeneza ni la kiuchumi lenye kubadilika zaidi kuliko kiteknikali tu. + +### Uwezo wa Kuongezeka {#scalability} + +Wasiwasi wa kawaida kuhusu Ethereum ni suala la uwezo wa kuongezeka kwa huduma. Kama Bitcoin, Ethereum ina tatizo la kila muamala kuwa lazima usindikwe na nodi zote mtandaoni. Na Bitcoin basi ukubwa wa blockchain sasa uko takriban 15 GB na unaongezeka kwa MB 1 kila saa. Ikiwa mtandao wa Bitcoin uendeshwe kwa miamala 2000 kwa sekunde kama Visa, utakuwa ukubwa wa MB 1 kwa kila sekunde tatu (GB 1 kwa saa, TB 8 kwa mwaka). Ethereum pia itaathiriwa na ukuaji kama huo, uliyozidiwa na ukweli kwamba kutakuwa na matumizi mengi juu ya blockchain ya Ethereum badala ya sarafu tu kama Bitcoin, lakini upungufu ni kwamba nodi za Ethereum kamili zinaweza kuhifadhi hali pekee badala ya historia yote ya blockchain. + +Tatizo la ukubwa mkubwa wa blockchain ni hatari ya kuwaridhisha watu wachache. Kama ukubwa wa blockchain ukaongezeka takriban 100 TB, basi dhana ya uwezekano ni kwamba biashara ndogo ndogo sana ndio zitaweza kuendesha nodi kamili, na watumiaji wa kawaida watatumia nodi za mwanga SPV. Katika hali kama hiyo, kuna uwezekano wa wasiwasi kwamba nodi kamili zinaweza kuungana na kukubaliana kudanganya kwa njia ya faida (k.m., kubadilisha zawadi ya kizuizi, kujipa BTC). Nodi za mwanga hazitakuwa na njia ya kugundua hilo mara moja. Hakika, angalau nodi moja halali itakuwapo, na baada ya masaa machache habari kuhusu udanganyifu itasambaa kupitia chaneli kama Reddit, lakini wakati huo itakuwa kuchelewa: itakuwa juu ya watumiaji wa kawaida kuandaa juhudi ya kuorodhesha bloki fulani hivyohivyo, changamoto kubwa sana ya ushirikiano sawa na shambulio la 51% la mafanikio. Katika kesi ya Bitcoin, hili ni tatizo kwa sasa, lakini kuna marekebisho ya mnyororo wa bloku [yaliyopendekezwa na Peter Todd](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) ambayo yatapunguza suala hili. + +Katika muda mfupi ujao, Ethereum itatumia mikakati miwili ya ziada kukabiliana na tatizo hili. Kwanza, kwa sababu ya algorithimu za uchimbaji zinazotegemea blockchain, wachimbaji wote watahitajika kuwa nodi kamili, na kuunda kikomo cha chini cha nodi kamili. Pili na muhimu zaidi, hata hivyo, tutajumuisha mzizi wa mti wa hali wa kati katika blockchain baada ya kusindika kila muamala. Hata kama ukaguzi wa block utakuwa wa makundi machache, mradi nodi moja halali ipo, tatizo la kuwaridhisha watu wachache linaweza kuepukwa kwa kutumia itifaki ya uthibitisho. Ikiwa mchimbaji atachapisha bloku batili, bloku hiyo lazima iwe na muundo mbaya, au hali `S[n]` si sahihi. Kwa kuwa `S[0]` inajulikana kuwa sahihi, lazima kuwe na hali ya kwanza `S[i]` isiyo sahihi ambapo `S[i-1]` ni sahihi. Nodi inayothibitisha itatoa faharasa `i`, pamoja na "uthibitisho wa ubatili" unaojumuisha sehemu ndogo ya nodi za mti wa Patricia zinazohitaji kuchakata `APPLY(S[i-1],TX[i]) -> S[i]`. Nodi zitaweza kutumia nodi hizo kuendesha sehemu hiyo ya ukokotoaji, na kuona kuwa `S[i]` iliyozalishwa hailingani na `S[i]` iliyotolewa. + +Shambulio jingine, la hila zaidi, lingehusisha wachimbaji wabaya kutangaza blocks zisizokamilika, hivyo taarifa zote kamili haziwezi hata kupatikana kuamua kama blocks ni halali au la. Suluhisho ni itifaki ya changamoto-jibu: nodi zinazothibitisha hutoa "changamoto" katika fomu ya index za muamala, na wakati nodi nyingine inapokea, nodi nyepesi inachukulia bloki kama isiyo na kuaminika hadi nodi nyingine, iwe mchimbaji au mtathmini mwingine, atatoa subset ya nodi za Patricia kama ushahidi wa uhalali. + +## Hitimisho {#conclusion} + +Itifaki ya Ethereum ilianzishwa kama toleo lililotengenezwa la sarafu ya kidijitali, ikitoa sifa za hali ya juu kama escrow juu ya blockchain, mipaka ya uondoaji, mikataba ya kifedha, masoko ya kamari na mengine kupitia lugha ya programu iliyo na nguvu. Itifaki ya Ethereum haitegemei moja kwa moja matumizi yoyote, lakini uwepo wa lugha ya programu yenye ukamilifu wa Turing ina maana kwamba mikataba yoyote inaweza kuundwa kwa nadharia kwa aina yoyote ya muamala au matumizi. Kinachovutia zaidi kuhusu Ethereum ni kuwa itifaki ya Ethereum inazidi tu sarafu. Itifaki kuhusu uhifadhi wa faili ulio huru, hesabu zilizo huru, na masoko ya utabiri zilizo huru, miongoni mwa dhana nyingine nyingi, zina uwezo mkubwa wa kuongeza ufanisi wa sekta ya hesabu, na kutoa msukumo mkubwa kwa itifaki nyingine za peer-to-peer kwa kuongeza mara ya kwanza tabaka la kiuchumi. Mwisho, pia kuna idadi kubwa ya matumizi ambayo hayahusiani kabisa na fedha. + +Dhana ya kazi ya mabadiliko ya hali kama ilivyoletwa na itifaki ya Ethereum inatoa jukwaa lenye uwezo wa kipekee; badala ya kuwa itifaki ya hifadhi-data, mkataba wenye malengo mahususi katika uhifadhi data, kamari, au fedha, Ethereum ni wazi kwa matumizi mengi tofauti, na tunaamini ni sahihi sana kuwa tabaka la msingi kwa idadi kubwa ya itifaki za kifedha na zisizo za kifedha miaka ijayo. + +## Dondoo na Masomo Zaidi {#notes-and-further-reading} + +### Dondoo {#notes} + +1. Msomaji mwenye ujuzi anaweza kugundua kuwa anwani ya Bitcoin ni hash ya funguo za umma za elliptic curve, si funguo za umma wenyewe. Hata hivyo, ni halali kitaalamu kutumia istilahi ya kriptografia ya funguo za umma kwa maana ya hash ya funguo za umma. Hii ni kwa sababu usimbaji fiche wa Bitcoin unaweza kuzingatiwa kuwa algorithm ya sauti za kidijitali ya kawaida, ambapo funguo za umma ni hash ya funguo za ECC, saini ni funguo za ECC zilizounganishwa na saini ya ECC, na algorithimu ya uthibitisho ni kuangalia funguo za ECC zinavyolingana na hash zilizotolewa kama funguo za umma na kuthibitisha saini za ECC kwa funguo za ECC. +2. Kitaalamu, ukatikati wa bloki 11 za awali hutumika. +3. Kwa undani, 2 na "CHARLIE" ni nambari [fn3](#notes), ambapo ya mwisho ni muundo wa big-endian base 256. Nambari zinaweza kuwa angalau 0 zaidi na angalau kiasi 2256-1. + +### Masomo zaidi {#further-reading} + +1. [Thamani ya Asili](https://bitcoinmagazine.com/culture/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it) +2. [Mali-erevu](https://en.bitcoin.it/wiki/Smart_Property) +3. [Mikataba-erevu](https://en.bitcoin.it/wiki/Contracts) +4. [B-money](http://www.weidai.com/bmoney.txt) +5. [Uthibitisho wa kazi unaoweza kutumika tena](https://nakamotoinstitute.org/finney/rpow/) +6. [Hati miliki salama za mali zenye mamlaka ya mmiliki](https://nakamotoinstitute.org/library/secure-property-titles/) +7. [Karatasi Nyeupe ya Bitcoin](http://bitcoin.org/bitcoin.pdf) +8. [Namecoin](https://namecoin.org/) +9. [Pembetatu ya Zooko](https://wikipedia.org/wiki/Zooko's_triangle) +10. [Karatasi Nyeupe ya Sarafu za Rangi](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) +11. [Karatasi Nyeupe ya Mastercoin](https://github.com/mastercoin-MSC/spec) +12. [Mashirika huru ya kiotomatiki, Jarida la Bitcoin](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) +13. [Uthibitishaji uliorahisishwa wa malipo](https://en.bitcoin.it/wiki/Scalability#Simplified_payment_verification) +14. [Miti ya Merkle](https://wikipedia.org/wiki/Merkle_tree) +15. [Miti ya Patricia](https://wikipedia.org/wiki/Patricia_tree) +16. [GHOST](https://eprint.iacr.org/2013/881.pdf) +17. [StorJ na Mawakala Wanaojitegemea, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) +18. [Mike Hearn kuhusu Mali-erevu kwenye Tamasha la Turing](https://www.youtube.com/watch?v=MVyv4t0OKe4) +19. [RLP ya Ethereum](/developers/docs/data-structures-and-encoding/rlp/) +20. [Miti ya Merkle Patricia ya Ethereum](/developers/docs/data-structures-and-encoding/patricia-merkle-trie/) +21. [Peter Todd kuhusu miti ya jumla ya Merkle](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) + +_Kwa historia ya karatasi nyeupe, angalia [wiki hii](https://web.archive.org/web/20250427212319/https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md)._ + +_Ethereum, kama miradi mingi ya programu za chanzo huria zinazosimamiwa na jamii, imeendelea tangu ilipoanzishwa. Ili kujifunza kuhusu maendeleo ya hivi karibuni ya Ethereum, na jinsi mabadiliko kwenye itifaki yanavyofanywa, tunapendekeza [mwongozo huu](/learn/)._ diff --git a/public/content/translations/sw/wrapped-eth/index.md b/public/content/translations/sw/wrapped-eth/index.md new file mode 100644 index 00000000000..29768a7e6a1 --- /dev/null +++ b/public/content/translations/sw/wrapped-eth/index.md @@ -0,0 +1,66 @@ +--- +title: Ether Iliyofungwa (WETH) ni nini +description: "Utangulizi wa Ether Iliyofungwa (WETH)— kifungashio kinachotangamana na ERC20 cha ether (ETH)." +lang: sw +--- + +# Ether iliyofungwa (WETH) {#intro-to-weth} + + + +
Unganisha mkoba wako ili kufunga au kufungua ETH kwenye mnyororo wowote kwenye [WrapETH.com](https://www.wrapeth.com/)
+
+ +Ether (ETH) ndiyo sarafu kuu ya Ethereum. Hutumika kwa madhumuni kadhaa kama vile kuweka hisa, kama sarafu, na kulipia ada za gesi kwa ajili ya kukokotoa. **WETH kwa hakika ni mfumo ulioboreshwa wa ETH wenye utendakazi fulani wa ziada unaohitajika na programu nyingi na [tokeni za ERC-20](/glossary/#erc-20)**, ambazo ni aina zingine za mali za kidijitali kwenye Ethereum. Ili kufanya kazi na tokeni hizi, ETH lazima ifuate sheria sawa na zinazofuatwa, zinazojulikana kama kiwango cha ERC-20. + +Ili kuziba pengo hili, ETH iliyofungwa (WETH) iliundwa. **ETH Iliyofungwa ni mkataba-erevu unaokuwezesha kuweka kiasi chochote cha ETH kwenye mkataba na kupokea kiasi sawa katika WETH iliyotengenezwa** inayofuata kiwango cha tokeni cha ERC-20. WETH ni uwakilishi wa ETH unaokuruhusu kuingiliana nayo kama tokeni ya ERC-20, sio kama mali asili ya ETH. Bado utahitaji ETH asili ili kulipia ada za gesi, kwa hivyo hakikisha unahifadhi kiasi fulani unapoweka. + +Unaweza kufungua WETH na kupata ETH kwa kutumia mkataba-erevu wa WETH. Unaweza kukomboa kiasi chochote cha WETH na mkataba-erevu wa WETH, na utapokea kiasi sawa katika ETH. WETH iliyowekwa huchomwa na kutolewa kwenye usambazaji unaozunguka wa WETH. + +**Takriban ~3% ya usambazaji unaozunguka wa ETH umefungwa kwenye mkataba wa tokeni wa WETH** na kuifanya kuwa moja ya [mikabataba-erevu](/glossary/#smart-contract) inayotumika zaidi. WETH ni muhimu hasa kwa watumiaji wanaoigilia kati programu katika fedha zilizogatuliwa (DeFi). + +## Kwa nini tunahitaji kufunga ETH kama ERC-20? {#why-do-we-need-to-wrap-eth} + +[ERC-20](/developers/docs/standards/tokens/erc-20/) inafafanua kiolesura cha kawaida cha tokeni zinazoweza kuhamishwa, kwa hivyo mtu yeyote anaweza kuunda tokeni zinazoingiliana bila matatizo na programu na tokeni zinazotumia kiwango hiki katika mfumo ikolojia wa Ethereum. Kwa kuwa **ETH ilikuwepo kabla ya kiwango cha ERC-20**, ETH haikubaliani na vipimo hivi. Hii ina maana **huwezi kwa urahisi** kubadilisha ETH kwa tokeni zingine za ERC-20 au **kutumia ETH katika programu zinazotumia kiwango cha ERC-20**. Kufunga ETH kunakupa fursa ya kufanya yafuatayo: + +- **Kubadilisha ETH kwa tokeni za ERC-20**: Huwezi kubadilisha ETH moja kwa moja kwa tokeni zingine za ERC-20. WETH ni uwakilishi wa ether unaotii kiwango cha tokeni kinachoweza kubadilishwa cha ERC-20 na inaweza kubadilishwa na tokeni zingine za ERC-20. + +- **Tumia ETH katika mfumo mtawanyo wa kimamlaka**: Kwa sababu ETH haitangamani na ERC20, wasanidi programu watahitaji kuunda violessura tofauti (moja kwa ETH na nyingine kwa tokeni za ERC-20) katika mfumo mtawanyo wa kimamlaka. Kufunga ETH kunaondoa kikwazo hiki na kuwawezesha wasanidi programu kushughulikia ETH na tokeni zingine ndani ya mfumo mtawanyo wa kimamlaka mmoja. Programu nyingi za fedha zilizogatuliwa hutumia kiwango hiki, na kuunda masoko ya kubadilisha tokeni hizi. + +## Ether iliyofungwa (WETH) dhidi ya ether (ETH): Kuna tofauti gani? {#weth-vs-eth-differences} + +| | **Ether (ETH)** | **Ether Iliyofungwa (WETH)** | +| ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Ugavi | Ugavi wa ETH unadhibitiwa na itifaki ya Ethereum. [Utoaji](/roadmap/merge/issuance) wa ETH hushughulikiwa na wathibitishaji wa Ethereum wakati wa kuchakata miamala na kuunda bloku. | WETH ni tokeni ya ERC-20 ambayo ugavi wake unadhibitiwa na mkataba-erevu. Vipande vipya vya WETH hutolewa na mkataba baada ya kupokea amana za ETH kutoka kwa watumiaji, au vipande vya WETH huchomwa mtumiaji anapotaka kukomboa WETH kwa ETH. | +| Umiliki | Umiliki unadhibitiwa na itifaki ya Ethereum kupitia salio la akaunti yako. | Umiliki wa WETH unadhibitiwa na mkataba-erevu wa tokeni ya WETH, unaolindwa na itifaki ya Ethereum. | +| Gesi | Ether (ETH) ndicho kipimo kinachokubalika cha malipo kwa ajili ya kukokotoa kwenye mtandao wa Ethereum. Ada za gesi hupimwa kwa gwei (sehemu ya ether). | Kulipa gesi kwa kutumia tokeni za WETH hakuwezeshwi moja kwa moja. | + +## Maswali yanayoulizwa mara kwa mara {#faq} + + + +Unalipa ada za gesi ili kufunga au kufungua ETH ukitumia mkataba wa WETH. + + + + +WETH kwa ujumla inachukuliwa kuwa salama kwa sababu inategemea mkataba-erevu rahisi na uliothibitishwa kivita. Mkataba wa WETH pia umethibitishwa rasmi, ambao ndio kiwango cha juu zaidi cha usalama kwa mikataba-erevu kwenye Ethereum. + + + + +Kando na [utekelezaji mkuu wa WETH](https://etherscan.io/token/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2) ulioelezewa kwenye ukurasa huu, kuna anuwai zingine zinazotumika. Hizi zinaweza kuwa tokeni maalum zilizoundwa na wasanidi programu au matoleo yaliyotolewa kwenye minyororo mingine ya bloku, na zinaweza kuwa na tabia tofauti au kuwa na sifa tofauti za usalama. **Kagua mara mbili habari za tokeni kila wakati ili kujua ni utekelezaji upi wa WETH unaoingiliana nao.** + + + + +- [Mtandao Mkuu wa Ethereum](https://etherscan.io/token/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) +- [Arbitrum](https://arbiscan.io/token/0x82af49447d8a07e3bd95bd0d56f35241523fbab1) +- [Optimism](https://optimistic.etherscan.io/token/0x4200000000000000000000000000000000000006) + + +## Masomo zaidi {#further-reading} + +- [WETH ni nini?](https://weth.tkn.eth.limo/) +- [Taarifa za tokeni ya WETH kwenye Blockscout](https://eth.blockscout.com/token/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) +- [Uthibitisho Rasmi wa WETH](https://zellic.io/blog/formal-verification-weth) diff --git a/public/content/translations/sw/zero-knowledge-proofs/index.md b/public/content/translations/sw/zero-knowledge-proofs/index.md new file mode 100644 index 00000000000..8d657d79d8a --- /dev/null +++ b/public/content/translations/sw/zero-knowledge-proofs/index.md @@ -0,0 +1,238 @@ +--- +title: Ushahidi usio na utambuzi +description: Utangulizi usio wa kiufundi kwa uthibitisho wa maarifa ya sifuri kwa Kompyuta. +lang: sw +--- + +# Je! Uthibitisho wa maarifa ya sifuri ni nini? {#what-are-zk-proofs} + +Uthibitisho wa maarifa sifuri ni njia ya kudhibitish uhalali wa taarifa bila kufunua taarifa yenyewe. 'Prover' ni chama kinachojaribu kudhibitisha madai, wakati 'sifa' inawajibika kwa kudhibitisha madai. + +Uthibitisho wa maarifa-sifuri ulionekana kwa mara ya kwanza katika karatasi ya 1985, “[Utata wa maarifa wa mifumo ya uthibitisho inayoingiliana](http://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Proof%20Systems/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf)” ambayo inatoa ufafanuzi wa uthibitisho wa maarifa-sifuri unaotumika sana leo: + +> Itifaki ya maarifa-sifuri ni mbinu ambayo kwayo upande mmoja (mthibitishaji) **unaweza kuthibitisha** kwa upande mwingine (mhakiki) **kwamba kitu ni kweli, bila kufichua taarifa yoyote** isipokuwa ukweli kwamba taarifa hii mahususi ni ya kweli. + +Uthibitisho wa Ero-Ujuzi umeboreka zaidi ya miaka na sasa zinatumika katika programu kadhaa za ulimwengu wa kweli. + + + +## Kwa nini tunahitaji uthibitisho wa maarifa ya sifuri? {#why-zero-knowledge-proofs-are-important} + +Uthibitisho wa maarifa ya Zero uliwakilisha mafanikio katika maandishi ya maandishi, kwani waliahidi kuboresha usalama wa habari kwa watu binafsi. Fikiria jinsi unavyoweza kudhibitisha madai (k.v., "Mimi ni raia wa X Nchi") kwa chama kingine (k.v. mtoaji wa huduma). Unahitaji kutoa "ushahidi" ili kuunga mkono madai yako, kama pasipoti ya kitaifa au leseni ya dereva. + +Lakini kuna shida na njia hii, haswa ukosefu wa faragha. Habari inayotambulika ya kibinafsi (PII) iliyoshirikiwa na huduma za mtu wa tatu huhifadhiwa katika hifadhidata kuu, ambazo ziko katika hatari ya hacks. Kwa wizi wa kitambulisho kuwa suala muhimu, kuna wito wa njia zaidi za kulinda faragha za kushiriki habari nyeti. + +Uthibitisho wa maarifa-sifuri hutatua tatizo hili kwa **kuondoa hitaji la kufichua taarifa ili kuthibitisha uhalali wa madai**. Itifaki ya maarifa ya sifuri hutumia taarifa hiyo (inayoitwa 'shahidi') kama pembejeo ili kutoa uthibitisho dhahiri wa uhalali wake. Uthibitisho huu hutoa dhamana kubwa kwamba taarifa ni kweli bila kufunua habari inayotumiwa katika kuijenga. + +Kurudi kwenye mfano wetu wa mapema, ushahidi pekee unahitaji kudhibitisha madai yako ya uraia ni dhibitisho la maarifa. Mthibitishaji lazima aangalie tu ikiwa mali fulani ya dhibitisho inashikilia kuwa kweli kuwa na hakika kuwa taarifa ya msingi inashikilia pia. + +## Matukio ya matumizi ya uthibitisho wa maarifa-sifuri {#use-cases-for-zero-knowledge-proofs} + +### Malipo yasiyojulikana {#anonymous-payments} + +Malipo ya kadi ya mkopo mara nyingi huonekana kwa vyama vingi, pamoja na mtoaji wa malipo, benki, na vyama vingine vinavyovutiwa (k.v., viongozi wa serikali). Wakati uchunguzi wa kifedha una faida za kutambua shughuli haramu, pia inadhoofisha faragha ya raia wa kawaida. + +Cryptocurrencyzilikusudiwa kutoa njia kwa watumiaji kufanya shughuli za kibinafsi, za rika. Lakini shughuli nyingi za cryptocurrency zinaonekana wazi kwenye blockchains za umma. Vitambulisho vya watumiaji mara nyingi huwa na majina bandia na ama huunganishwa kwa makusudi na vitambulisho vya ulimwengu halisi (k.m., kwa kujumuisha anwani za ETH kwenye wasifu wa Twitter au GitHub) au vinaweza kuhusishwa na vitambulisho vya ulimwengu halisi kwa kutumia uchanganuzi wa data wa msingi wa kwenye na nje ya mnyororo. + +Kuna “sarafu za faragha” maalum zilizoundwa kwa ajili ya miamala isiyojulikana kabisa. Minyororo inayolenga faragha, kama vile Zcash na Monero, hulinda maelezo ya muamala, ikijumuisha anwani za mtumaji/mpokezi, aina ya mali, kiasi na ratiba ya shughuli za ununuzi. + +Kwa kuingiza teknolojia ya maarifa-sifuri kwenye itifaki, mitandao ya [mnyororo wa bloku](/glossary/#blockchain) inayolenga faragha inaruhusu [nodi](/glossary/#node) kuhalalisha miamala bila kuhitaji kufikia data ya miamala. [EIP-7503](https://eips.ethereum.org/EIPS/eip-7503) ni mfano wa muundo uliopendekezwa ambao utawezesha uhamishaji wa thamani wa asili wa faragha kwenye mnyororo wa bloku wa Ethereum. Mapendekezo kama hayo, hata hivyo, ni magumu kutekeleza kutokana na mchanganyiko wa masuala ya usalama, udhibiti na UX. + +**Uthibitisho wa maarifa-sifuri pia unatumika kufanya miamala isijulikane kwenye minyororo ya bloku ya umma**. Mfano ni Tornado Cash, huduma iliyogatuliwa, isiyo ya dhamana inayowaruhusu watumiaji kufanya miamala ya faragha kwenye Ethereum. Tornado Cash hutumia uthibitisho wa maarifa-sifuri kuficha maelezo ya miamala na kuhakikisha faragha ya kifedha. Kwa bahati mbaya, kwa sababu hizi ni zana za faragha za "kujijumuisha" zinahusishwa na shughuli haramu. Ili kukabiliana na hili, faragha hatimaye inapaswa kuwa chaguo-msingi kwenye minyororo ya bloku ya umma. Jifunze zaidi kuhusu [faragha kwenye Ethereum](/privacy/). + +### Ulinzi wa utambulisho {#identity-protection} + +Mifumo ya sasa ya usimamizi wa utambulisho huweka taarifa za kibinafsi hatarini. Uthibitisho wa maarifa-sifuri unaweza kusaidia watu binafsi kuhalalisha utambulisho huku wakilinda maelezo nyeti. + +Uthibitisho wa maarifa-sifuri ni muhimu hasa katika muktadha wa [utambulisho uliogatuliwa](/decentralized-identity/). Utambulisho uliogatuliwa (pia unaofafanuliwa kama 'utambulisho wa kujitawala') humpa mtu binafsi uwezo wa kudhibiti ufikiaji wa vitambulisho vya kibinafsi. Kuthibitisha uraia wako bila kufichua kitambulisho chako cha kodi au maelezo ya pasipoti ni mfano mzuri wa jinsi teknolojia isiyo na maarifa huwezesha utambulisho uliotawanywa. + + + + + + ZKP + Utambulisho katika utekelezaji: Kitambulisho cha Kitaifa cha Kidijitali cha Bhutan (NDI) kwenye Ethereum + + +

+ Mfano halisi wa kutumia ZKP kwa mifumo ya usimamizi wa utambulisho ni mfumo wa Kitambulisho cha Kitaifa cha Kidijitali (NDI) cha Ufalme wa Bhutan, uliojengwa kwenye Ethereum. NDI ya Bhutan hutumia ZKP kuruhusu raia kuthibitisha kwa njia ya kisimbaji ukweli kujihusu, kama vile "Mimi ni raia" au "Nina zaidi ya miaka 18," bila kufichua data nyeti ya kibinafsi kwenye kitambulisho chao. +

+

+ Jifunze zaidi kuhusu NDI ya Bhutan katika utafiti kifani wa Utambulisho Uliogatuliwa. +

+
+
+
+ +### Uthibitisho wa Ubinadamu {#proof-of-humanity} + +Moja ya mifano inayotumika sana ya uthibitisho wa maarifa-sifuri leo ni [itifaki ya World ID](https://world.org/blog/world/world-id-faqs), ambayo inaweza kufikiriwa kama "pasipoti ya kidijitali ya kimataifa kwa enzi ya AI." Inawaruhusu watu kuthibitisha kuwa wao ni watu wa kipekee bila kufichua taarifa za kibinafsi. Hili linafikiwa kupitia kifaa kiitwacho Orb, ambacho huchanganua mboni ya jicho la mtu na kutoa msimbo wa mboni. Msimbo wa mboni hukaguliwa na kuthibitishwa ili kuthibitisha kuwa mtu huyo ni binadamu wa kipekee kibayolojia. Baada ya uthibitishaji, ahadi ya utambulisho inayotolewa kwenye kifaa cha mtumiaji (na haijaunganishwa au inayotokana na data ya kibayometriki) huongezwa kwenye orodha salama kwenye kiambajengo. Kisha, wakati wowote mtumiaji anapotaka kuthibitisha kuwa yeye ni binadamu aliyethibitishwa - ama kuingia, kupiga kura au kuchukua hatua nyingine - anaweza kutoa uthibitisho wa kutojua maarifa ambao unathibitisha uanachama wao katika orodha. Uzuri wa kutumia uthibitisho wa maarifa-sifuri ni kwamba ni kauli moja tu inayofichuliwa: mtu huyu ni wa kipekee. Kila kitu kingine kinabaki kuwa siri. + +World ID inategemea [itifaki ya Semaphore](https://docs.semaphore.pse.dev/) iliyotengenezwa na [timu ya PSE](https://pse.dev/) katika Msingi wa Ethereum. Semaphore imeundwa kuwa njia nyepesi lakini yenye nguvu ya kuzalisha na kuthibitisha uthibitisho wa maarifa-sifuri. Inawaruhusu watumiaji kuthibitisha wao ni sehemu ya kundi (katika hali hii, wanadamu waliothibitishwa) bila kuonyesha ni mwanachama gani wa kundi hilo. Semaphore pia inaweza kunyumbulika sana, ikiruhusu vikundi kuundwa kulingana na anuwai ya vigezo kama vile uthibitishaji wa utambulisho, kushiriki katika matukio, au umiliki wa vitambulisho. + +### Uthibitishaji {#authentication} + +Kutumia huduma za mtandaoni kunahitaji kuthibitisha utambulisho wako na haki ya kufikia mifumo hiyo. Hii mara nyingi inahitaji kutoa taarifa za kibinafsi, kama vile majina, anwani za barua pepe, tarehe za kuzaliwa, na kadhalika. Unaweza pia kuhitaji kukariri nywila ndefu au kuhatarisha kupoteza ufikiaji. + +Uthibitisho wa maarifa-sifuri, hata hivyo, unaweza kurahisisha uthibitishaji kwa mifumo na watumiaji. Pindi tu uthibitisho wa ZK unapotolewa kwa kutumia pembejeo za umma (kwa mfano, data inayothibitisha uanachama wa mtumiaji wa jukwaa) na pembejeo za kibinafsi (k.m., maelezo ya mtumiaji), mtumiaji anaweza kuiwasilisha kwa urahisi ili kuthibitisha utambulisho wao wakati wanahitaji kufikia huduma. Hii inaboresha uzoefu kwa watumiaji na huondoa mashirika kutoka kwa hitaji la kuhifadhi kiasi kikubwa cha taarifa za watumiaji. + +### Hesabu inayoweza kuthibitishwa {#verifiable-computation} + +Hesabu inayoweza kuthibitishwa ni matumizi mengine ya teknolojia ya maarifa-sifuri kwa kuboresha miundo ya mnyororo wa bloku. Hesabu inayoweza kuthibitishwa inaturuhusu kukabidhi hesabu kwa chombo kingine huku tukidumisha matokeo yanayoweza kuthibitishwa. Chombo hicho huwasilisha matokeo pamoja na uthibitisho unaohakiki kuwa programu ilitekelezwa ipasavyo. + +Hesabu inayoweza kuthibitishwa ni **muhimu sana katika kuboresha kasi ya uchakataji kwenye minyororo ya bloku** bila kupunguza usalama. Kuelewa hili kunahitaji kujua tofauti katika suluhu zilizopendekezwa za upanuzi wa Ethereum. + +[Suluhu za upanuzi wa kwenye mnyororo](/developers/docs/scaling/#onchain-scaling), kama vile ugawanyaji, zinahitaji marekebisho makubwa ya safu ya msingi ya mnyororo wa bloku. Hata hivyo, mbinu hii ni tata sana na makosa katika utekelezaji yanaweza kudhoofisha mfumo wa usalama wa Ethereum. + +[Suluhu za upanuzi wa nje ya mnyororo](/developers/docs/scaling/#offchain-scaling) hazihitaji kuunda upya itifaki ya msingi ya Ethereum. Badala yake, zinategemea mtindo wa hesabu uliokabidhiwa ili kuboresha upitishaji kwenye safu ya msingi ya Ethereum. + +Hivi ndivyo inavyofanya kazi kwa vitendo: + +- Badala ya kuchakata kila muamala, Ethereum inakabidhi utekelezaji kwa mnyororo tofauti. + +- Baada ya kuchakata miamala, mnyororo mwingine unarudisha matokeo ili yatumike kwenye hali ya Ethereum. + +Faida hapa ni kwamba Ethereum haihitaji kufanya utekelezaji wowote na inahitaji tu kutumia matokeo kutoka kwa hesabu iliyokabidhiwa kwenye hali yake. Hii inapunguza msongamano wa mtandao na pia inaboresha kasi ya miamala (itifaki za nje ya mnyororo huboresha utekelezaji wa haraka). + +Mnyororo unahitaji njia ya kuhalalisha miamala ya nje ya mnyororo bila kuitekeleza tena, la sivyo thamani ya utekelezaji wa nje ya mnyororo itapotea. + +Hapa ndipo hesabu inayoweza kuthibitishwa inapoingia. Wakati nodi inapotekeleza muamala nje ya Ethereum, inawasilisha uthibitisho wa maarifa-sifuri ili kuthibitisha usahihi wa utekelezaji wa nje ya mnyororo. Uthibitisho huu (unaoitwa [uthibitisho wa uhalali](/glossary/#validity-proof)) unahakikisha kuwa muamala ni halali, na kuruhusu Ethereum kutumia matokeo kwenye hali yake—bila kungoja mtu yeyote kuupinga. + +[Zero-knowledge rollups](/developers/docs/scaling/zk-rollups) na [validiums](/developers/docs/scaling/validium/) ni suluhu mbili za upanuzi za nje ya mnyororo zinazotumia uthibitisho wa uhalali ili kutoa upanuzi salama. Itifaki hizi hutekeleza maelfu ya miamala nje ya mnyororo na kuwasilisha uthibitisho kwa ajili ya uhakiki kwenye Ethereum. Matokeo hayo yanaweza kutumika mara moja baada ya uthibitisho kuhakikiwa, na kuruhusu Ethereum kuchakata miamala zaidi bila kuongeza hesabu kwenye safu ya msingi. + +### Kupunguza hongo na njama katika upigaji kura wa kwenye mnyororo {#secure-blockchain-voting} + +Miradi ya upigaji kura ya kiambajengo ina sifa nyingi zinazofaa: inaweza kukaguliwa kikamilifu, ni salama dhidi ya mashambulizi, ni sugu kwa udhibiti, na haina vikwazo vya kijiografia. Lakini hata mifumo ya upigaji kura ya kwenye mnyororo haiko salama kutokana na tatizo la **njama**. + +Inafafanuliwa kama "kuratibu kuzuia ushindani wa wazi kwa kuwahadaa, kuwahadaa na kuwapotosha wengine," kula njama kunaweza kuchukua sura ya mwigizaji hasidi anayeshawishi upigaji kura kwa kutoa hongo. Kwa mfano, Alice anaweza kupokea hongo kutoka kwa Bob ili kupigia kura `chaguo B` kwenye kura hata kama anapendelea `chaguo A`. + +Hongo na kula njama huzuia ufanisi wa mchakato wowote unaotumia upigaji kura kama njia ya kuashiria (hasa ambapo watumiaji wanaweza kuthibitisha jinsi walivyopiga kura). Hii inaweza kuwa na madhara makubwa, hasa pale ambapo kura zinahusika na ugawaji wa rasilimali adimu. + +Kwa mfano, [mifumo ya ufadhili wa kipeo](https://www.radicalxchange.org/wiki/plural-funding/) inategemea michango ili kupima upendeleo kwa chaguzi fulani miongoni mwa miradi tofauti ya bidhaa za umma. Kila mchango huhesabiwa kama "kura" kwa mradi maalum, huku miradi inayopokea kura nyingi ikipata fedha zaidi kutoka kwa hazina ya ulinganifu. + +Kutumia upigaji kura kwa njia ya mtandao hufanya ufadhili wa mara nne kuhusika katika kula njama: miamala ya kiambajengo ni ya umma, kwa hivyo watoa rushwa wanaweza kukagua shughuli ya minyororo ya hongo ili kuona jinsi "walivyopiga kura. Kwa njia hii ufadhili wa mara nne hukoma kuwa njia bora ya kutenga fedha kulingana na matakwa yaliyojumlishwa ya jumuiya. + +Kwa bahati nzuri, suluhu mpya zaidi kama vile MACI (Minimum Anti-Collusion Infrastructure) zinatumia uthibitisho wa maarifa-sifuri kufanya upigaji kura wa kwenye mnyororo (k.m., mifumo ya ufadhili wa kipeo) kuwa sugu kwa hongo na njama. MACI ni seti ya mikataba-erevu na hati zinazomruhusu msimamizi mkuu (anayeitwa "mratibu") kujumlisha kura na kuhesabu matokeo _bila_ kufichua maelezo mahususi kuhusu jinsi kila mtu alivyopiga kura. Hata hivyo, bado inawezekana kuthibitisha kwamba kura zilihesabiwa ipasavyo, au kuthibitisha kwamba mtu fulani alishiriki katika duru ya upigaji kura. + +#### Je, MACI inafanyaje kazi na uthibitisho wa maarifa-sifuri? {#how-maci-works-with-zk-proofs} + +Mwanzoni, mratibu anatumia mkataba wa MACI kwenye Ethereum, baada ya hapo watumiaji wanaweza kujiandikisha kupiga kura (kwa kusajili ufunguo wao wa umma katika mkataba mahiri). Watumiaji hupiga kura kwa kutuma ujumbe uliosimbwa kwa njia fiche kwa ufunguo wao wa umma kwa mkataba mahiri (kura halali lazima isainiwe kwa ufunguo wa hivi sasa wa umma unaohusishwa na utambulisho wa mtumiaji, miongoni mwa vigezo vingine). Baadaye, mratibu huchakata jumbe zote mara tu kipindi cha upigaji kura kinapoisha, huhesabu kura, na kuthibitisha matokeo kwenye mnyororo. + +Katika MACI, uthibitisho wa maarifa-sifuri hutumiwa kuhakikisha usahihi wa hesabu kwa kufanya isiwezekane kwa mratibu kuchakata kura na kuhesabu matokeo isivyo sahihi. Hili linafikiwa kwa kumtaka mratibu atengeneze uthibitisho wa ZK-SNARK unaohakiki kwamba a) jumbe zote zilichakatwa ipasavyo b) matokeo ya mwisho yanalingana na jumla ya kura zote _halali_. + +Kwa hivyo, hata bila kushiriki uchanganuzi wa kura kwa kila mtumiaji (kama ilivyo kawaida), MACI inahakikisha uadilifu wa matokeo yanayokokotolewa wakati wa mchakato wa kujumlisha. Kipengele hiki ni muhimu katika kupunguza ufanisi wa mifumo ya msingi ya njama. Tunaweza kuchunguza uwezekano huu kwa kutumia mfano uliopita wa Bob kumhonga Alice ili apigie kura chaguo fulani: + +- Alice anajiandikisha kupiga kura kwa kutuma ufunguo wake wa umma kwa mkataba-erevu. +- Alice anakubali kupigia kura `chaguo B` badala ya hongo kutoka kwa Bob. +- Alice anapigia kura `chaguo B`. +- Alice anatuma kwa siri muamala uliosimbwa kwa njia fiche ili kubadilisha ufunguo wa umma unaohusishwa na utambulisho wake. +- Alice anatuma ujumbe mwingine (uliosimbwa kwa njia fiche) kwa mkataba-erevu akipigia kura `chaguo A` kwa kutumia ufunguo mpya wa umma. +- Alice anamuonyesha Bob muamala unaoonyesha alipigia kura `chaguo B` (ambao si halali kwani ufunguo wa umma hauhusiani tena na utambulisho wa Alice kwenye mfumo) +- Wakati wa kuchakata jumbe, mratibu anaruka kura ya Alice ya `chaguo B` na kuhesabu tu kura ya `chaguo A`. Kwa hivyo, jaribio la Bob la kula njama na Alice na kuendesha kura ya kwenye mnyororo linashindwa. + +Kutumia MACI _kunahitaji_ kumwamini mratibu kwamba hatashirikiana na wahongaji au kujaribu kuwahonga wapiga kura wenyewe. Mratibu anaweza kusimbua jumbe za watumiaji (muhimu kwa kuunda uthibitisho), hivyo wanaweza kuthibitisha kwa usahihi jinsi kila mtu alivyopiga kura. + +Lakini katika hali ambapo mratibu anabaki mkweli, MACI inawakilisha zana yenye nguvu ya kuhakikisha utakatifu wa upigaji kura wa kwenye mnyororo. Hii inaelezea umaarufu wake miongoni mwa matumizi ya ufadhili wa kipeo (k.m., [clr.fund](https://clr.fund/#/about/maci)) ambayo yanategemea sana uadilifu wa chaguzi za upigaji kura za kila mtu. + +[Jifunze zaidi kuhusu MACI](https://maci.pse.dev/). + +## Uthibitisho wa maarifa-sifuri hufanyaje kazi? {#how-do-zero-knowledge-proofs-work} + +Uthibitisho wa maarifa-sifuri unakuruhusu kuthibitisha ukweli wa kauli bila kushiriki yaliyomo kwenye kauli hiyo au kufichua jinsi ulivyogundua ukweli. Ili kufanikisha hili, itifaki za maarifa-sifuri zinategemea kanuni zinazochukua data fulani kama ingizo na kurudisha 'kweli' au 'siyo kweli' kama tokeo. + +Itifaki ya maarifa-sifuri lazima ikidhi vigezo vifuatavyo: + +1. **Ukamilifu**: Ikiwa ingizo ni halali, itifaki ya maarifa-sifuri daima hurudisha 'kweli'. Kwa hivyo, ikiwa kauli ya msingi ni ya kweli, na mthibitishaji na mhakiki wanafanya kazi kwa uaminifu, uthibitisho unaweza kukubaliwa. + +2. **Uthabiti**: Ikiwa ingizo si halali, kinadharia haiwezekani kuidanganya itifaki ya maarifa-sifuri irudishe 'kweli'. Kwa hivyo, methali ya uwongo haiwezi kuhadaa mthibitishaji mwaminifu kuamini kuwa taarifa batili ni halali (isipokuwa kwa ukingo mdogo wa uwezekano). + +3. **Maarifa-sifuri**: Mhakiki hajifunzi chochote kuhusu kauli zaidi ya uhalali wake au uongo (wana “maarifa sifuri” ya kauli hiyo). Sharti hili pia linamzuia mhakiki kupata ingizo la asili (yaliyomo kwenye kauli) kutoka kwenye uthibitisho. + +Katika muundo wa msingi, uthibitisho wa maarifa-sifuri unaundwa na vipengele vitatu: **shahidi**, **changamoto**, na **majibu**. + +- **Shahidi**: Kwa uthibitisho wa maarifa-sifuri, mthibitishaji anataka kuthibitisha maarifa ya taarifa fulani iliyofichwa. Taarifa ya siri ndiyo “shahidi” wa uthibitisho, na maarifa yanayodhaniwa ya mthibitishaji kuhusu shahidi huanzisha seti ya maswali ambayo yanaweza kujibiwa tu na upande wenye maarifa ya taarifa hiyo. Kwa hivyo, mthibitishaji anaanza mchakato wa kuthibitisha kwa kuchagua swali bila mpangilio, kukokotoa jibu, na kulituma kwa mhakiki. + +- **Changamoto**: Mhakiki anachagua swali lingine bila mpangilio kutoka kwenye seti na kumwomba mthibitishaji alijibu. + +- **Majibu**: Mthibitishaji anakubali swali, anakokotoa jibu, na kulirudisha kwa mhakiki. Majibu ya mthibitishaji yanamruhusu mhakiki kuangalia kama mthibitishaji kweli ana ufikiaji wa shahidi. Ili kuhakikisha mthibitishaji habahatishi na kupata majibu sahihi kwa bahati, mhakiki anachagua maswali zaidi ya kuuliza. Kwa kurudia mwingiliano huu mara nyingi, uwezekano wa mthibitishaji kughushi maarifa ya shahidi hupungua sana hadi mhakiki atakaporidhika. + +Hapo juu panaelezea muundo wa 'uthibitisho wa maarifa-sifuri unaoingiliana'. Itifaki za mwanzo za maarifa-sifuri zilitumia uthibitishaji unaoingiliana, ambapo kuhakiki uhalali wa kauli kulihitaji mawasiliano ya kwenda na kurudi kati ya wathibitishaji na wahakiki. + +Mfano mzuri unaoonyesha jinsi uthibitisho unaoingiliana unavyofanya kazi ni hadithi maarufu ya Jean-Jacques Quisquater ya [pango la Ali Baba](https://en.wikipedia.org/wiki/Zero-knowledge_proof#The_Ali_Baba_cave). Katika hadithi, Peggy (mthibitishaji) anataka kumthibitishia Victor (mhakiki) kwamba anajua kifungu cha siri cha kufungua mlango wa uchawi bila kufichua kifungu hicho. + +### Uthibitisho wa maarifa-sifuri usioingiliana {#non-interactive-zero-knowledge-proofs} + +Ingawa ulikuwa wa kimapinduzi, uthibitishaji unaoingiliana ulikuwa na manufaa machache kwani ulihitaji pande zote mbili zipatikane na kuingiliana mara kwa mara. Hata kama mhakiki alishawishika na uaminifu wa mthibitishaji, uthibitisho haungepatikana kwa uhakiki huru (kukokotoa uthibitisho mpya kulihitaji seti mpya ya jumbe kati ya mthibitishaji na mhakiki). + +Ili kutatua tatizo hili, Manuel Blum, Paul Feldman, na Silvio Micali walipendekeza [uthibitisho wa kwanza wa maarifa-sifuri usioingiliana](https://dl.acm.org/doi/10.1145/62212.62222) ambapo mthibitishaji na mhakiki wana ufunguo wa pamoja. Hii inamruhusu mthibitishaji kuonyesha maarifa yake ya taarifa fulani (yaani, shahidi) bila kutoa taarifa yenyewe. + +Tofauti na uthibitisho unaoingiliana, uthibitisho usioingiliana ulihitaji duru moja tu ya mawasiliano kati ya washiriki (mthibitishaji na mhakiki). Mthibitishaji anapitisha taarifa ya siri kwa kanuni maalum ili kukokotoa uthibitisho wa maarifa-sifuri. Uthibitisho huu unatumwa kwa mhakiki, ambaye huangalia kuwa mthibitishaji anajua taarifa ya siri kwa kutumia kanuni nyingine. + +Uthibitishaji usioingiliana unapunguza mawasiliano kati ya mthibitishaji na mhakiki, na kufanya uthibitisho wa ZK kuwa na ufanisi zaidi. Zaidi ya hayo, mara tu uthibitisho unapozalishwa, unapatikana kwa mtu mwingine yeyote (mwenye ufikiaji wa ufunguo wa pamoja na kanuni ya uhakiki) kuuhakiki. + +Uthibitisho usioingiliana uliwakilisha mafanikio makubwa kwa teknolojia ya maarifa-sifuri na kuchochea maendeleo ya mifumo ya uthibitishaji inayotumika leo. Tunajadili aina hizi za uthibitisho hapa chini: + +### Aina za uthibitisho wa maarifa-sifuri {#types-of-zero-knowledge-proofs} + +#### ZK-SNARKs {#zk-snarks} + +ZK-SNARK ni kifupi cha **Zero-Knowledge Succinct Non-Interactive Argument of Knowledge**. Itifaki ya ZK-SNARK ina sifa zifuatazo: + +- **Maarifa-sifuri**: Mhakiki anaweza kuhalalisha uadilifu wa kauli bila kujua chochote kingine kuhusu kauli hiyo. Maarifa pekee ambayo mhakiki anayo kuhusu kauli ni kama ni ya kweli au si ya kweli. + +- **Fupi**: Uthibitisho wa maarifa-sifuri ni mdogo kuliko shahidi na unaweza kuhakikiwa haraka. + +- **Isiyoingiliana**: Uthibitisho ni 'usioingiliana' kwa sababu mthibitishaji na mhakiki huingiliana mara moja tu, tofauti na uthibitisho unaoingiliana ambao unahitaji duru nyingi za mawasiliano. + +- **Hoja**: Uthibitisho unakidhi sharti la 'uthabiti', kwa hivyo udanganyifu hauwezekani sana. + +- **(Ya) Maarifa**: Uthibitisho wa maarifa-sifuri hauwezi kuundwa bila ufikiaji wa taarifa ya siri (shahidi). Ni vigumu, kama siyo haiwezekani, kwa mthibitishaji ambaye hana shahidi kukokotoa uthibitisho halali wa maarifa-sifuri. + +'Ufunguo wa pamoja' uliotajwa hapo awali unarejelea vigezo vya umma ambavyo mthibitishaji na mhakiki wanakubali kutumia katika kuzalisha na kuhakiki uthibitisho. Kuzalisha vigezo vya umma (vinavyojulikana kwa pamoja kama Common Reference String (CRS)) ni operesheni nyeti kwa sababu ya umuhimu wake katika usalama wa itifaki. Ikiwa entropia (randomness) inayotumika katika kuzalisha CRS itaingia mikononi mwa mthibitishaji asiye mwaminifu, anaweza kukokotoa uthibitisho wa uongo. + +[Hesabu ya pande nyingi (MPC)](https://en.wikipedia.org/wiki/Secure_multi-party_computation) ni njia ya kupunguza hatari katika kuzalisha vigezo vya umma. Pande nyingi hushiriki katika [sherehe ya usanidi inayoaminika](https://zkproof.org/2021/06/30/setup-ceremonies/amp/), ambapo kila mtu anachangia baadhi ya thamani za nasibu ili kuzalisha CRS. Muda wote upande mmoja mwaminifu unapoharibu sehemu yake ya entropia, itifaki ya ZK-SNARK huhifadhi uthabiti wa kikokotoo. + +Usanidi unaoaminika unahitaji watumiaji kuwaamini washiriki katika uzalishaji wa vigezo. Hata hivyo, maendeleo ya ZK-STARKs yamewezesha itifaki za uthibitishaji zinazofanya kazi na usanidi usioaminika. + +#### ZK-STARKs {#zk-starks} + +ZK-STARK ni kifupi cha **Zero-Knowledge Scalable Transparent Argument of Knowledge**. ZK-STARKs zinafanana na ZK-SNARKs, isipokuwa kwamba: + +- **Inayoweza kupanuliwa**: ZK-STARK ni ya haraka kuliko ZK-SNARK katika kuzalisha na kuhakiki uthibitisho wakati ukubwa wa shahidi ni mkubwa. Kwa uthibitisho wa STARK, nyakati za mthibitishaji na uhakiki huongezeka kidogo tu kadri shahidi anavyokua (nyakati za mthibitishaji na mhakiki wa SNARK huongezeka sawia na ukubwa wa shahidi). + +- **Uwazi**: ZK-STARK inategemea unakisi unaoweza kuthibitishwa na umma ili kuzalisha vigezo vya umma vya kuthibitisha na kuhakiki badala ya usanidi unaoaminika. Kwa hivyo, zina uwazi zaidi ikilinganishwa na ZK-SNARKs. + +ZK-STARKs huzalisha uthibitisho mkubwa kuliko ZK-SNARKs kumaanisha kwa ujumla zina gharama kubwa zaidi za uhakiki. Hata hivyo, kuna hali (kama vile kuthibitisha seti kubwa za data) ambapo ZK-STARKs zinaweza kuwa na gharama nafuu zaidi kuliko ZK-SNARKs. + +## Hasara za kutumia uthibitisho wa maarifa-sifuri {#drawbacks-of-using-zero-knowledge-proofs} + +### Gharama za maunzi {#hardware-costs} + +Kuzalisha uthibitisho wa maarifa-sifuri kunahusisha hesabu ngumu sana zinazofanywa vizuri zaidi kwenye mashine maalum. Kwa kuwa mashine hizi ni ghali, mara nyingi huwa haziwezi kufikiwa na watu wa kawaida. Kwa kuongeza, programu zinazotaka kutumia teknolojia ya maarifa-sifuri lazima zizingatie gharama za maunzi—ambazo zinaweza kuongeza gharama kwa watumiaji wa mwisho. + +### Gharama za uhakiki wa uthibitisho {#proof-verification-costs} + +Kuhakiki uthibitisho pia kunahitaji hesabu ngumu na huongeza gharama za kutekeleza teknolojia ya maarifa-sifuri katika programu. Gharama hii ni muhimu hasa katika muktadha wa kuthibitisha hesabu. Kwa mfano, ZK-rollups hulipa ~ 500,000 gesi ili kuhakiki uthibitisho mmoja wa ZK-SNARK kwenye Ethereum, huku ZK-STARKs zikihitaji ada za juu zaidi. + +### Dhana za uaminifu {#trust-assumptions} + +Katika ZK-SNARK, Neno la Marejeleo la Kawaida (vigezo vya umma) huzalishwa mara moja na linapatikana kwa matumizi tena kwa pande zinazotaka kushiriki katika itifaki ya maarifa-sifuri. Vigezo vya umma huundwa kupitia sherehe ya usanidi inayoaminika, ambapo washiriki wanadhaniwa kuwa waaminifu. + +Lakini hakuna njia yoyote kwa watumiaji kutathmini uaminifu wa washiriki na watumiaji lazima wawaamini wasanidi programu kwa neno lao. ZK-STARKs hazina dhana za uaminifu kwani unakisi unaotumika katika kuzalisha neno unaweza kuthibitishwa na umma. Wakati huo huo, watafiti wanafanyia kazi usanidi usioaminika kwa ZK-SNARKs ili kuongeza usalama wa mifumo ya uthibitishaji. + +### Vitisho vya kompyuta ya quantum {#quantum-computing-threats} + +ZK-SNARK hutumia usimbaji fiche wa curve ya duaradufu kwa ajili ya usimbaji fiche. Ingawa tatizo la logariti kamili ya curve ya duaradufu linadhaniwa kuwa haliwezi kutatuliwa kwa sasa, maendeleo ya kompyuta za quantum yanaweza kuvunja mfumo huu wa usalama katika siku zijazo. + +ZK-STARK inachukuliwa kuwa salama dhidi ya tishio la kompyuta za quantum, kwani inategemea tu vitendakazi vya hashi sugu kwa mgongano kwa usalama wake. Tofauti na uoanishaji wa funguo za umma-binafsi zinazotumiwa katika usimbaji fiche wa curve ya duaradufu, u-hashi sugu kwa mgongano ni mgumu zaidi kwa kanuni za kompyuta za quantum kuvunja. + +## Masomo zaidi {#further-reading} + +- [Muhtasari wa matukio ya matumizi ya uthibitisho wa maarifa-sifuri](https://pse.dev/projects) — _Timu ya Uchunguzi wa Faragha na Upanuzi_ +- [SNARKs dhidi ya STARKS dhidi ya SNARKs Zinazojirudia](https://www.alchemy.com/overviews/snarks-vs-starks) — _Alchemy Overviews_ +- [Uthibitisho wa Maarifa-Sifuri: Kuboresha Faragha kwenye Mnyororo wa Bloku](https://www.altoros.com/blog/zero-knowledge-proof-improving-privacy-for-a-blockchain/) — _Dmitry Lavrenov_ +- [zk-SNARKs — Mfano Halisi wa Maarifa-Sifuri na Uchambuzi wa Kina](https://medium.com/coinmonks/zk-snarks-a-realistic-zero-knowledge-example-and-deep-dive-c5e6eaa7131c) — _Adam Luciano_ +- [ZK-STARKs — Unda Uaminifu Unaoweza Kuthibitishwa, hata dhidi ya Kompyuta za Quantum](https://medium.com/coinmonks/zk-starks-create-verifiable-trust-even-against-quantum-computers-dd9c6a2bb13d) — _Adam Luciano_ +- [Utangulizi wa takriban wa jinsi zk-SNARKs zinavyowezekana](https://vitalik.eth.limo/general/2021/01/26/snarks.html) — _Vitalik Buterin_ +- [Kwa nini Uthibitisho wa Maarifa Sifuri (ZKPs) ni Kigeuzi cha Mchezo kwa Utambulisho wa Kujitawala](https://frankiefab.hashnode.dev/why-zero-knowledge-proofs-zkps-is-a-game-changer-for-self-sovereign-identity) — _Franklin Ohaegbulam_ +- [EIP-7503 Imefafanuliwa: Kuwezesha Uhamisho wa Faragha kwenye Ethereum na Uthibitisho wa ZK](https://research.2077.xyz/eip-7503-zero-knowledge-wormholes-for-private-ethereum-transactions#introduction) — _Emmanuel Awosika_ +- [Mchezo wa Kadi za ZK: mchezo wa kujifunza misingi ya ZK na matukio ya matumizi ya maisha halisi](https://github.com/ZK-card/zk-cards) - _ZK-Cards_ diff --git a/src/intl/sw/glossary-tooltip.json b/src/intl/sw/glossary-tooltip.json index d7724d9bca0..11eb3de09af 100644 --- a/src/intl/sw/glossary-tooltip.json +++ b/src/intl/sw/glossary-tooltip.json @@ -1,4 +1,166 @@ { + "51%-attack-term": "mashambulizi ya 51%", + "51%-attack-definition": "Aina ya mashambulizi ambapo kikundi kinapata udhibiti wa nodi nyingi. Hii itawaruhusu kulaghai kiambajengo kwa kubadilisha alama na kutumia mara mbili ether na tokeni zingine.", + "abi-term": "Kiolesura cha paca cha Programu (ABI)", + "abi-definition": "Faili ya JSON inayofafanua vipengele na vigeu vilivyojumuishwa katika mkataba mahiri. ABI inaruhusu bytecode kuchorwa katika miundo inayoweza kusomeka na binadamu.", + "account-term": "Akaunti", + "account-definition": "Akaunti ya Ethereum ni utambulisho wa kidijitali kwenye kiambajengo cha Ethereum, inayowaruhusu watumiaji kutuma, kupokea Ether au mali nyingine za kidijitali na kuingiliana na mikataba mahiri.", + "address-term": "Anwani", + "address-definition": "Anwani ya Ethereum ni kitambulisho cha kipekee kinachotumika kupokea tokeni, hufanya kazi sawa na nambari ya akaunti ya benki kwa fedha za siri. Inatumika kutambua akaunti yako ya Ethereum.", + "anti-sybil-term": "Anti-Sybil", + "anti-sybil-definition": "Je! ni njia za kuwazuia watu kujifanya kuwa watumiaji wengi mara moja kwenye mtandao, kuhakikisha kila mtumiaji ni mtu halisi, aliyejitenga. Hii husaidia kuweka mwingiliano wa mtandaoni kuwa sawa na uaminifu.", + "apr-term": "APR", + "apr-definition": "APR, au Kiwango cha Asilimia cha Mwaka, huonyesha gharama ya kila mwaka ya kukopa pesa, ikijumuisha riba na ada, kama asilimia.", + "attestation-term": "Uthibitishaji", + "attestation-definition": "Dai lililotolewa na chombo kwamba kitu fulani ni kweli. Katika muktadha wa Ethereum, wathibitishaji wa makubaliano lazima watoe dai kuhusu kile wanachoamini kuwa hali ya mnyororo kuwa. Kwa nyakati zilizowekwa, kila mthibitishaji ana jukumu la kuchapisha uthibitisho tofauti ambao hutangaza rasmi maoni ya mthibitishaji huyu wa msururu, ikijumuisha kituo cha ukaguzi kilichokamilishwa na kichwa cha sasa cha msururu. Mengi zaidi kuhusu uthibitishaji.", + "block-term": "Bloku", + "block-definition": "Kizuizi ni mahali ambapo miamala au vitendo vya kidijitali huhifadhiwa. Mara tu kitalu kimejaa, inaunganishwa na ile ya awali, na kuunda mlolongo wa vitalu au \"kiambajengo\". Mengi kwenye vitalu.", + "blockchain-term": "Blockchain", + "blockchain-definition": "Kiambajengo ni hifadhidata ya miamala, iliyorudiwa na kushirikiwa kwenye kompyuta zote kwenye mtandao, kuhakikisha data haiwezi kubadilishwa kwa kurudi nyuma.", + "bridge-term": "Madaraja / Vusha", + "bridge-definition": "Daraja la kiambajengo hutumiwa kuhamisha mali kutoka kwa mtandao mmoja wa kiambajengo hadi mwingine.", + "consensus-term": "Makubaliano", + "consensus-definition": "Wakati zaidi ya 2/3 ya kompyuta kwenye mtandao zinakubali kuwa zina rekodi sawa, kuhakikisha kuwa kila mtu yuko kwenye ukurasa mmoja. Hii haihusu sheria wanazofuata, lakini kuhakikisha kuwa zote zina taarifa sawa.", + "consensus-client-term": "mteja wa makubaliano", + "consensus-client-definition": "Wateja wa Makubaliano (kama vile Prysm, Teku, Nimbus, Lighthouse, Lodestar) hutekeleza kanuni za makubaliano ya ya uthibitisho wa hisa ya Ethereum inayoruhusu mtandao kufikia makubaliano kuhusu mkuu wa Mnyororo wa Beacon. Wateja wa makubaliano hawashiriki katika kuthibitisha/kutangaza miamala au kutekeleza mabadiliko ya serikali. Hii inafanywa na wateja wa utekelezaji. Wateja wa makubaliano hawatoi ushahidi, au kupendekeza vitalu vipya. Hili hufanywa na mteja wa kiidhinishaji ambayo ni nyongeza ya hiari kwa mteja wa makubaliano.", + "consensus-layer-term": "Safu ya makubaliano", + "consensus-layer-definition": "Safu ya makubaliano ya Ethereum ni mtandao wa wateja wa makubaliano.", + "cryptoeconomics-term": "Uchumi-wa-Kripto", + "cryptoeconomics-definition": "Utafiti wa kanuni za hisabati na kiuchumi ili kubuni majukwaa salama na ya kuaminika ya kidigitali. Lengo ni kuhakikisha kuwa washiriki wote wanafuata sheria na wanatuzwa kwa kuchangia usalama na uendeshaji wa mtandao ", + "cryptography-term": "Usimbaji fiche", + "cryptography-definition": "“Ni mbinu ya kufanya mawasiliano kuwa ya faragha na salama ili tu wale waliyoelekezwa habari hiyo waweze kuisoma.", + "dao-term": "Shirika linalojitawala lililogatuliwa (DAO)", + "dao-definition": "“DAO ni shirika la kidijitali linaloendeshwa na kanuni zilizopangwa kwenye kiambajengo, ambapo maamuzi hufanywa kwa kura za wanachama, si mamlaka kuu. Zaidi kuhusu mashirika ya kidijitali yasiyo na mamlaka kuu (DAOs).", + "dapp-term": "Mfumo uliotawanywa", + "dapp-definition": "“dApp ni mfumo mtawanyo unayofanya kazi kwenye mtandao wa kiambajengo, ukitoa huduma bila mamlaka kuu ya kudhibiti. Zaidi kuhusu mfumo mtawanyo.", + "data-availability-term": "Uwepo wa data", + "data-availability-definition": "Nodi yoyote inaweza kuthibitisha miamala kwa uhuru kwenye mnyororo wa bloku ili kudumisha uwazi na uaminifu katika mfumo.", + "defi-term": "DeFi", + "defi-definition": "Aina pana ya programu za Ethereum zinazolenga kutoa huduma za kifedha zinazoungwa mkono na kiambajengo, bila wapatanishi wowote. Mengi zaidi kuhusu utawanyaji wa fedha (DeFi)", + "dex-term": "Soko la ubadilishanaji lililogatuliwa (DEX)", + "dex-definition": "Aina ya programu ya Ethereum inayokuruhusu kubadilisha tokeni na programu zingine kwenye mtandao. DEX haziko chini ya vikwazo vya kijiografia kama vile kubadilishana kati - mtu yeyote anaweza kushiriki.", + "difficulty-bomb-term": "Bomu la ugumu", + "difficulty-bomb-definition": "Ongezeko la kielelezo lililopangwa katika mipangilio ya uthibitisho wa kazi ugumu ambayo iliundwa ili kuhamasisha mpito hadi uthibitisho wa kuhusika, kupunguza uwezekano wa uma. Bomu la ugumu liliacha kutumika na the Merge.", + "ecdsa-term": "Algorithm ya Sahihi ya Kidijitali ya Mzingo Mduaradufu (ECDSA)", + "ecdsa-definition": "Algorithm ya kriptografia inayotumiwa na Ethereum kuhakikisha kuwa pesa zinaweza kutumiwa na wamiliki wao pekee. Ni njia inayopendekezwa ya kuunda funguo za umma na za kibinafsi. Inafaa kwa uzalishaji wa anwani ya akaunti na uthibitishaji wa shughuli.", + "ens-term": "Huduma ya Jina ya Ethereum (ENS)", + "ens-definition": "Huduma ya Jina ya Ethereum ni kama kitabu cha simu cha intaneti kwa anwani za Ethereum. Badala ya kutumia anwani ndefu za pochi, ENS hukuruhusu kutumia majina rahisi kama vile \"john.eth\" kutuma na kupokea pesa na mali dijitali.", + "epoch-term": "Epoch", + "epoch-definition": "Muda wa nafasi 32, kila nafasi ikiwa ni sekunde 12, jumla ya dakika 6.4. Kihalali kamati huchanganyika kila wakati kwa sababu za usalama. Kila enzi ina fursa kwa msururu kukamilika. Kila kithibitishaji hupewa majukumu mapya mwanzoni mwa kila kipindi. Mengi zaidi kuhusu uthibitisho wa hisa", + "eoa-term": "Akaunti inayomilikiwa na nje (EOA)", + "eoa-definition": "Akaunti Zinazomilikiwa Nje (EOAs) ni aina ya kawaida ya akaunti ya Ethereum. Zinadhibitiwa na mtu kupitia funguo za kibinafsi / kifungu cha urejeshaji. Mengi zaidi kuhusu pochi za Ethereum.", + "erc-term": "Ombi la Ethereum la Maoni (ERC)", + "erc-definition": "“ERC (Ombi la Maoni la Ethereum) ni aina ya nyaraka za kiufundi zinazotumika katika jamii ya Ethereum kupendekeza viwango vipya vya matumizi kwa mtandao wa Ethereum.”", + "erc-1155-term": "ERC-1155", + "erc-1155-definition": "Aina ya kiwango cha tokeni ya Ethereum sawa na NFT (kama vile vitu vya kipekee vinavyoweza kukusanywa) ambayo pia inaruhusu kuunda bidhaa zinazoweza kubadilishwa (kama vile sarafu) ndani ya mkataba mmoja mahiri.", + "erc-20-term": "ERC-20", + "erc-20-definition": "Je, ni kanuni za kawaida ambazo tokeni nyingi kwenye mtandao wa Ethereum zinaundwa nazo.", + "erc-721-term": "ERC-721", + "erc-721-definition": "Seti ya kawaida ya sheria zinazotumiwa kuunda NFTs (ishara zisizoweza kuvu).", + "ether-term": "Ether", + "ether-definition": "Sarafu ya kifikra ya asili ya Ethereum, inayojulikana kama \"ETH\". Inatumika kulipia ada za ununuzi unapotumia mfumo wa ikolojia na programu za Ethereum. Mengi zaidi kuhusu etha.", + "events-term": "Matukio", + "events-definition": "Inaruhusu matumizi ya EVM nyenzo za ukataji miti. Dapps inaweza kusikiliza matukio na kuzitumia kuanzisha JavaScript callbacks katika kiolesura cha mtumiaji. Mengi zaidi kuhusu matukio na kumbukumbu", + "execution-client-term": "Mteja wa utekelezaji", + "execution-client-definition": "Wateja wa utekelezaji (hapo awali walijulikana kama \"Wateja wa Eth1\"), kama vile Besu, Erigon, Go-Ethereum (Geth), Nethermind, wana jukumu la kuchakata na kutangaza shughuli na kudhibiti jimbo la Ethereum. Huendesha hesabu kwa kila ununuzi kwa kutumia Ethereum Virtual Machine ili kuhakikisha kuwa sheria za itifaki zinafuatwa.", + "execution-layer-term": "safu ya utekelezaji", + "execution-layer-definition": "Safu ya utekelezaji ya Ethereum ni mtandao wa wateja wa utekelezaji.", + "finality-term": "Mwisho", + "finality-definition": "Mwisho ni dhamana ya kwamba seti ya shughuli haiwezi kubadilishwa bila kiasi kikubwa cha ETH kupotea.", + "fork-term": "Uma", + "fork-definition": "Mabadiliko ya itifaki na kusababisha kuundwa kwa mlolongo mbadala.", + "fraud-proof-term": "Ushahidi wa ulaghai", + "fraud-proof-definition": "Muundo wa usalama wa masuluhisho fulani ya safu 2 ambapo, ili kuongeza kasi, miamala hukungwa katika makundi na kuwasilishwa kwa Ethereum kwa muamala mmoja. Washiriki wengine wa mtandao wanaweza kutekeleza tena miamala ili kuhakikisha kuwa ilitekelezwa kwa uaminifu. Iwapo watagundua tofauti kati ya data iliyochapishwa na toleo lao wenyewe wanaweza kuchapisha uthibitisho wa siri ambao unaonyesha mahali ulaghai fulani ulifanyika. Baadhi ya rollups hutumia uthibitisho wa uhalali.", + "gas-term": "Gesi", + "gas-definition": "Gharama ya muamala ni ada inayolipwa kwa miamala na mikataba mahiri kwenye kiambajengo, kama vile Ethereum. Mengi zaidi kuhusu gharama ya muamala na ada.", + "genesis-block-term": "Bloku ya mwanzo", + "genesis-block-definition": "Bloku ya kwanza katika mnyororo wa bloku, inayotumiwa kuanzisha mtandao fulani na sarafu yake ya kidigitali.", + "gwei-term": "Gwei", + "gwei-definition": "Ufupi wa gigawei, thamani ndogo ya etha, hutumika kwa bei ya gharama ya muamala. 1 gwei = 109 wei. 109 gwei = etha 1.", + "hash-term": "Hashi", + "hash-definition": "Alama ya kidole ya urefu usiobadilika ya data ya ukubwa tofauti, inayozalishwa na chaguo za kukokotoa za hashi. (Tazama keccak-256).", + "holographic-consensus-term": "Makubaliano ya kiholografia", + "holographic-consensus-definition": "“Inahusu jinsi maamuzi ya kikundi kikubwa yanavyofanywa kwa kuruhusu kikundi kidogo cha watu wa uwakilishi kupiga kura. Kisha wengine wote wanakubali kufuata maamuzi hayo, mradi tu waamini kikundi kidogo kilifanya kazi nzuri.”", + "index-term": "Faharasa", + "index-definition": "Muundo wa mtandao unaokusudiwa kuboresha uulizaji wa taarifa kutoka kwenye blockchain kwa kutoa njia bora ya uhifadhi wake.", + "key-term": "Ufunguo", + "key-definition": "Katika muktadha wa Ethereum, funguo ni misimbo ya dijiti: ufunguo wa umma wa kupokea shughuli na ufunguo wa kibinafsi wa kupata na kutuma fedha.", + "layer-2-term": "Safu ya 2", + "layer-2-definition": "Safu za 2 ni mitandao mingine iliyojengwa juu ya mtandao mkuu wa Ethereum ili kufanya miamala iwe ya haraka na ya bei nafuu. Zaidi kuhusu safu ya 2.", + "liquidity-tokens-term": "Tokeni za ukwasi", + "liquidity-tokens-definition": "“Tokeni za ukwasi ni tokeni za kidijitali zinazotolewa kwa washiriki wanaoweka mali ndani ya bwawa la ukwasi, ambalo ni mkusanyiko wa fedha zilizofungwa kwenye mkataba mahiri na hutumika kurahisisha biashara kwenye mfumo mtawanyo wa ubadilishaji(DEX).”", + "mainnet-term": "Mtandao Mkuu", + "mainnet-definition": "Fupi la \"mtandao mkuu,\" huu ndio mnyororo wa bloku mkuu wa umma wa Ethereum.", + "mev-term": "MEV", + "mev-definition": "Utaratibu unaoweka kipaumbele kwa vitendo fulani kwenye kiambajengo kwa ada, matokeo ya kushawishi na mpangilio wa shughuli.", + "multisig-term": "Saini nyingi", + "multisig-definition": "“sahihi nyingi inahusu pochi ya kidijitali au akaunti inayohitaji sahihi nyingi au idhini nyingi kutekeleza miamala, ikiongeza usalama.”", + "nft-term": "Ishara zisizokuvu (NFTs)", + "nft-definition": "Kipengee cha kipekee cha kidijitali unachoweza kumiliki, kama vile sanaa au mkusanyiko, kilichothibitishwa na teknolojia ya kiambajengo. Mengi zaidi kuhusu tokeni zikipekee (NFTs).", + "node-term": "Nodi", + "node-definition": "Mteja wa programu anayeshiriki katika mtandao. Mengi zaidi kuhusu nodi na wateja.", + "ommer-term": "Kitalu Ommer", + "ommer-definition": "Wakati mchimbaji mchimba anapata kitalu halali, mchimbaji mwingine anaweza kuwa amechapisha kitalu kinachoshindana ambacho huongezwa kwenye ncha ya kiambajengo kwanza. Kitalu hiki halali, lakini cha zamani kinaweza kujumuishwa na vitalu vipya zaidi kama ommers na kupokea zawadi ya kitalui kidogo. Neno \"ommer\" ni neno linalopendekezwa lisilopendelea kijinsia kwa kitalu cha asili, lakini hii pia wakati mwingine hujulikana kama \"ommers\". Hili lilikuwa jambo la kawaida kwa Ethereum ilipokuwa mtandao wa uthibitisho wa kazi. Kwa kuwa sasa Ethereum inatumia uthibitisho wa hisa, ni mpendekezaji mmoja tu wa kitalu ndiye anayechaguliwa kwa kila nafasi.", + "onchain-term": "Onchain", + "onchain-definition": "Inarejelea vitendo au miamala ambayo hufanyika kwenye kiambajengo na inapatikana kwa umma.", + "optimistic-rollup-term": "''Kuunganisha kwa matumaini.''", + "optimistic-rollup-definition": "Uboreshaji wa Matumain ni suluhisho la Tabaka la 2 ambalo huharakisha ununuzi kwenye Ethereum, ikizingatiwa kuwa ni halali kwa chaguomsingi isipokuwa kama pingamizi liwe. Mengi zaidi kuhusu uboreshaji wa Matumaini.", + "peer-to-peer-network-term": "Mtandao wa rika-kwa-rika", + "peer-to-peer-network-definition": "Mtandao wa kompyuta (rika) ambazo kwa pamoja zina uwezo wa kufanya kazi bila hitaji la mfumo uliokusanyika, zinazotegemea seva.", + "permissionless-term": "Isiyohitaji ruhusa", + "permissionless-definition": "Hakuna ruhusa au kibali kinachohitajika ili kutumia mfumo kama vile Ethereum na hakuna mtu anayeweza kukuzuia kuutumia. Ni wazi 24/7 kwa kila mtu kushiriki.", + "private-key-term": "Ufunguo binafsi", + "private-key-definition": "Ufunguo wa faragha ni msimbo wa siri unaothibitisha kuwa unamiliki pesa zako dijitali na hukuruhusu kuzitumia, kama vile PIN ya akaunti yako. USISHIRIKI.", + "poap-term": "POAP", + "poap-definition": "Itifaki ya Uthibitisho wa Mahudhurio inatumika kuunda mkusanyiko wa dijitali (NFT) ambao unathibitisha kuwa ulihudhuria tukio au shughuli mahususi.", + "pos-term": "Uthibitisho-wa-hisa (PoS)", + "pos-definition": "Mbinu ambayo itifaki ya kiambajengo ya sarafu ya kidigitali inalenga kufikia makubaliano yaliyosambazwa. PoS inauliza watumiaji kuthibitisha umiliki wa kiasi fulani cha fedha za siri (\"hisa\" yao katika mtandao) ili waweze kushiriki katika uthibitishaji wa shughuli. Mengi zaidi kuhusu uthibitisho wa hisa.", + "pow-term": "Uthibitisho wa kazi (PoW)", + "pow-definition": "Utaratibu wa usalama wa viambajengo ambao unahitaji nodi kutumia nishati katika mfumo wa hesabu ili kupata thamani fulani.", + "public-goods-term": "Bidhaa za umma", + "public-goods-definition": "Bidhaa za umma ni vitu ambavyo kila mtu anaweza kutumia bila malipo, kama vile bustani au hewa safi, na kuzitumia hakuzuii wengine kuzitumia pia. Mara nyingi serikali hutoa hizi kwa sababu biashara kwa kawaida hazitoi, kwa kuwa haziwezi kutoza watu kwa urahisi kwa kuzitumia.", + "public-key-term": "Ufunguo wa umma", + "public-key-definition": "Ufunguo wa umma ni kundi la herufi zinazowaruhusu wengine kukutumia sarafu ya kidijitali kwa usalama, kama vile barua pepe ya pesa.", + "quadratic-voting-term": "Upigaji kura wa Quadratic", + "quadratic-voting-definition": "Ni njia ya kupiga kura ambapo wapiga kura hueleza jinsi wanavyohisi sana kuhusu masuala. Inaruhusu wapiga kura kuonyesha sio tu upendeleo, lakini pia ukubwa wa upendeleo wao.", + "recovery-phrase-term": "Kifungu cha maneno / maneno ya kurejesha", + "recovery-phrase-definition": "Orodha ya maneno uliyopewa unapounda pochi ya kidijitali. Inafanya kazi kama nenosiri ambalo linaweza kukusaidia kurudi kwenye pochi yako ukipoteza ufikiaji, na kuhakikisha kuwa haupotezi pesa au tokeni zako za kidijitali.", + "rollups-term": "Unda-mpya", + "rollups-definition": "Aina ya safu ya 2 suluhisho la kuongeza kiwango ambalo hulinganisha miamala mingi na kuziwasilisha kwa mnyororo mkuu wa Ethereum katika muamala mmoja. Hii inaruhusu kupunguzwa kwa gharama ya gesi na kuongezeka kwa muamala. Kuna matoleo ya Optimistic na Zero-knowledge ambayo hutumia mbinu tofauti za usalama kutoa faida hizi za hatari. Mengi zaidi kuhusu rollups.", + "rpc-term": "Wito wa utaratibu wa mbali (RPC)", + "rpc-definition": "RPC inaruhusu kompyuta moja kuomba data au kitendo kutoka kwa nyingine kupitia mtandao, kama vile kuomba maelezo kwa kutumia rimoti.", + "sequencer-term": "mratibu wa mfuatano", + "sequencer-definition": "“Mfuatano ni programu inayohusika na kupanga mpangilio wa miamala kwenye mtandao wa kiambajengo.”", + "smart-contract-term": "Mkataba nadhifu", + "smart-contract-definition": "Mkataba mahiri ni mpango ambao hutekeleza makubaliano kiotomatiki kwenye kiambajengo, kama vile mkataba wa kidigitali unaojitosheleza. Utangulizi wa mikataba mahiri.", + "stablecoin-term": "Sarafu-imara", + "stablecoin-definition": "Sarafu mahiri ni aina ya sarafu ya kidigitali iliyobuniwa kuwa na thamani dhabiti, ambayo mara nyingi huwekwa kwenye sarafu au bidhaa (kama vile dola ya Marekani), ili kupunguza kubadilikabadilika kwa bei. Mengi zaidi kuhusu sarafu mahiri.", + "staking-term": "Kuweka dhamana", + "staking-definition": "Inaweka idadi ya etha (dau lako) ili kuwa kihalalishaji na kulinda mtandao. Mthibitishaji hukagua shughuli na kupendekeza kkuzuia chini ya uthibitisho wa makubaliano. Staking inakupa motisha ya kiuchumi ya kutenda kwa manufaa ya mtandao. Utapata zawadi kwa kutekeleza jukumu lako la kithibitishaji, lakini utapoteza viwango tofauti vya ETH usipofanya hivyo. Mengi zaidi kuhusu Ethereum staking.", + "staking-pool-term": "Kuunganisha bwawa", + "staking-pool-definition": "ETH iliyojumuishwa ya zaidi ya kidau kimoja cha Ethereum, iliyotumika kufikia 32 ETH inayohitajika kuwezesha seti ya funguo za kihalali. mtoa huduma wa nodi hutumia funguo hizi kushiriki katika makubaliano na zawadi za kitalu hugawanywa miongoni mwa wadau wanaochangia. Mabwawa ya staking au ugawaji wa majukumu sio asili ya itifaki ya Ethereum, lakini masuluhisho mengi yamejengwa na jumuiya. Mengi zaidi kuhusu staking zilizokusanywa.", + "sybil-attack-term": "Shambulio la Sybil", + "sybil-attack-definition": "Mashambulizi ya Sybil yanarejelea binadamu mmoja mmoja anayehadaa mfumo kufikiria kuwa wao ni watu wengi ili kuongeza ushawishi wao.", + "terminal-total-difficulty-term": "Ugumu kamili wa mwisho (TTD)", + "terminal-total-difficulty-definition": "Ugumu wa jumla ni jumla ya ugumu wa uchimbaji wa Ethash kwa vitalu vyote hadi sehemu fulani maalum kwenye kiambajengo. Ugumu wa jumla ni thamani mahususi kwa ugumu wa jumla ambao ulitumika kama kichochezi cha wateja wa utekelezaji kuzima uchimbaji wao na kuzuia utendakazi wa porojo zinazowezesha mtandao kubadilika hadi uthibitisho wa dau. Haifai tena kwa sababu Ethereum ilihamia uthibitisho wa hisa.", + "transaction-fee-term": "Ada ya muamala", + "transaction-fee-definition": "Ada unayohitaji kulipa wakati wowote unapotumia mtandao wa Ethereum. Mifano ni pamoja na kutuma pesa kutoka kwa pochi au mwingiliano wa dapp, kama vile kubadilishana tokeni au kununua kitu kinachoweza kukusanywa. Unaweza kufikiria hii kama malipo ya huduma. Ada hii itabadilika kulingana na jinsi mtandao ulivyo na shughuli nyingi. Hii ni kwa sababu waidhinishaji, watu walio na jukumu la kuchakata muamala wako, wana uwezekano wa kutanguliza malipo kwa ada ya juu - kwa hivyo msongamano unalazimisha bei kupanda.

Katika kiwango cha kiufundi, ada yako ya muamala inahusiana na kiasi gani cha gesi muamala wako unahitaji.

Kupunguza ada za miamala ni suala la riba kubwa kwa sasa. Tazama Safu ya 2.", + "trust-assumptions-term": "Dhana za uaminifu", + "trust-assumptions-definition": "Mawazo ya kutegemewa ni imani za kimsingi kuhusu usalama na kutegemewa kwa mfumo, zinazoongoza kile tunachoamini ili mfumo ufanye kazi.", + "validator-term": "Mthibitishaji", + "validator-definition": "nodi katika uthibitisho wa hisa unaohusika na kuhifadhi data, kuchakata miamala na kuongeza vizuizi vipya kwenye kiambajengo. Ili kuamilisha programu ya kiidhinisha, unahitaji kuwa na uwezo wa hisa 32 ETH. Mengi zaidi kuhusu kuweka hisa kwenye Ethereum.", + "validity-proof-term": "Uthibitisho wa uhalali", + "validity-proof-definition": "Muundo wa usalama wa masuluhisho fulani ya safu 2 ambapo, ili kuongeza kasi, miamala inakusanywa katika makundi na kuwasilishwa kwa Ethereum katika muamala mmoja. Uhesabuji wa muamala unafanywa nje ya mnyororo na kisha kutolewa kwa mnyororo mkuu na uthibitisho wa uhalali wao. Njia hii huongeza kiasi cha miamala inayowezekana wakati wa kudumisha usalama. Baadhi ya rollups hutumia uthibitisho wa ulaghai. Mengi zaidi kuhusu uboreshaji wa maarifa sifuri.", + "wallet-term": "Pochi", + "wallet-definition": "Pochi ni zana ya kidijitali ya kuhifadhi, kutuma na kupokea sarafu ya kidijitali, kama vile pochi ya mtandaoni ya pesa zako mtandaoni. Mengi zaidi kuhusu pochi za Ethereum.", + "web2-term": "Web2", + "web2-definition": "Ni mtandao wa sasa, unaolenga maudhui yanayozalishwa na mtumiaji na mitandao ya kijamii ambayo inadhibitiwa na makampuni machache. Web3 ni imani ya siri kwamba watumiaji wanapaswa kudhibiti data na miamala yao badala yake.", + "web3-term": "Wavuti3", + "web3-definition": "Web3 ni mtandao mpya wenye kiambajengo, ambapo watumiaji hudhibiti data na miamala yao, si makampuni. Hakuna haja ya kushirikisha habari yoyote ya kibinafsi. Mengi kwenye web3.", + "wei-term": "Wei", + "wei-definition": "Yeye ndiye thamani ndogo zaidi ya etha. 1018 wei = etha 1.", + "zk-proof-term": "Uthibitishaji wa Zero-knowledge", + "zk-proof-definition": "Uthibitishaji wa zero-knowledge ni mbinu ya siri ambayo inaruhusu mtu binafsi kuthibitisha kuwa taarifa ni kweli bila kuwasilisha taarifa yoyote ya ziada. Mengi zaidi kuhusu uboreshaji wa zero-knowledge .", "state-term": "Hali", "state-definition": "Picha ya masalio yote na data kwa wakati fulani kwenye blockchain, kwa kawaida ikirejelea hali katika kitalu fulani." } diff --git a/src/intl/sw/glossary.json b/src/intl/sw/glossary.json new file mode 100644 index 00000000000..3efe1ecdff4 --- /dev/null +++ b/src/intl/sw/glossary.json @@ -0,0 +1,408 @@ +{ + "51%-attack-term": "mashambulizi ya 51%", + "51%-attack-definition": "Aina ya shambulio ambapo kikundi kinapata udhibiti wa idadi kubwa ya nodi. Hii ingewaruhusu kulaghai mnyororo wa bloku kwa kubatilisha miamala na kutumia mara mbili ether na tokeni zingine.

Katika uthibitisho wa hisa wa Ethereum hili lingefikiwa kwa kukusanya zaidi ya nusu ya jumla ya ether iliyowekwa kama hisa. Hii ingemruhusu mshambuliaji kuamua ni bloku zipi mpya zinaongezwa kwenye mnyororo wa bloku. Hata hivyo, ili kubatilisha mnyororo au kutumia mara mbili mshambuliaji angehitaji angalau 66% ya jumla ya ether iliyowekwa kama hisa.", + "account-term": "Akaunti", + "account-definition": "Akaunti ya Ethereum ni utambulisho wa kidijitali kwenye kiambajengo cha Ethereum, inayomruhusu mtumiaji kutuma, kupokea Ether, na kushirikiana na mikataba mahiri.

Kiteknolojia:
Ni kitu kinachojumuisha anwani, salio, nonce, na hifadhi na msimbo wa hiari. Akaunti inaweza kuwa akaunti ya mkataba au akaunti inayomilikiwa moja kwa moja na mtumiaji (EOA).", + "address-term": "Anwani", + "address-definition": "Anwani ya Ethereum ni kitambulisho cha kipekee kinachotumika kupokea tokeni, hufanya kazi sawa na nambari ya akaunti ya benki kwa fedha za siri. Inatumika kutambua akaunti yako ya Ethereum.

Ni biti 160 za kulia zaidi za ufunguo wa umma wa ECDSA.", + "anti-sybil-term": "Anti-Sybil", + "anti-sybil-definition": "Je! ni njia za kuwazuia watu kujifanya kuwa watumiaji wengi mara moja kwenye mtandao, kuhakikisha kila mtumiaji ni mtu halisi, aliyejitenga. Hii husaidia kuweka mwingiliano wa mtandaoni kuwa sawa na uaminifu.", + "abi-term": "Kiolesura cha paca cha Programu (ABI)", + "abi-definition": "Faili ya JSON inayofafanua vipengele na vigeu vilivyojumuishwa katika mkataba mahiri. ABI inaruhusu bytecode kuchorwa katika miundo inayoweza kusomeka na binadamu.", + "api-term": "Kiolesura cha Kuandaa Programu (API)", + "api-definition": "Kiolesura cha Kuandaa Programu (API) ni seti ya ufafanuzi wa jinsi ya kutumia kipande cha programu. API hukaa kati ya programu na seva ya tovuti, na kuwezesha uhamishaji wa data kati yao.", + "apr-term": "APR", + "apr-definition": "APR, au Kiwango cha Asilimia cha Mwaka, huonyesha gharama ya kila mwaka ya kukopa pesa, ikijumuisha riba na ada, kama asilimia.", + "asic-term": "ASIC", + "asic-definition": "Sakiti iliyojumuishwa ya programu mahususi. Kawaida hii inarejelea mzunguko uliojumuishwa, iliyoundwa maalum kwa uchimbaji wa sarafu ya Kidigitali.", + "assert-term": "thibitisha", + "assert-definition": "Katika Solidity, `assert(false)` hujumuisha `0xfe`, opcode batili, ambayo hutumia gesi yote iliyosalia na kurejesha mabadiliko yote. Taarifa ya `assert()` inaposhindwa, kuna kitu kibaya sana na kisichotarajiwa kinatokea, na utahitaji kurekebisha nambari yako. Unapaswa kutumia `assert()` ili kuepuka hali ambazo hazipaswi kutokea kamwe. Mengi zaidi kuhusu usalama wa mkataba mahiri.", + "attestation-term": "Uthibitishaji", + "attestation-definition": "Dai lililotolewa na chombo kwamba kitu fulani ni kweli. Katika muktadha wa Ethereum, wathibitishaji wa makubaliano lazima watoe dai kuhusu kile wanachoamini kuwa hali ya mnyororo kuwa. Kwa nyakati zilizowekwa, kila mthibitishaji ana jukumu la kuchapisha uthibitisho tofauti ambao hutangaza rasmi maoni ya mthibitishaji huyu wa msururu, ikijumuisha kituo cha ukaguzi kilichokamilishwa na kichwa cha sasa cha msururu. Mengi zaidi kuhusu uthibitishaji.", + "base-fee-term": "Ada ya msingi", + "base-fee-definition": "Kila block ina bei ya akiba inayojulikana kama 'ada ya msingi'. Ni ada ya chini zaidi ya gesi ambayo mtumiaji lazima alipe ili kujumuisha muamala katika eneo linalofuata. Mengi zaidi kuhusu gesi na ada.", + "beacon-chain-term": "Mnyororo wa beacon", + "beacon-chain-definition": "Msururu wa Beacon ulikuwa mnyororo wa kuzuia ulioleta uthibitisho wa hisa na wathibitishaji kwa Ethereum. Iliendeshwa pamoja na uthibitisho wa kazi wa Ethereum Mainnet kuanzia Desemba 2020 hadi minyororo hiyo miwili ilipounganishwa mnamo Septemba 2022 na kuunda Ethereum ya leo. Mengi zaidi kuhusu msururu wa vinara.", + "big-endian-term": "Kubwa-endian", + "big-endian-definition": "Uwakilishi wa nambari mahali ambapo tarakimu muhimu zaidi ni ya kwanza kwenye kumbukumbu. Kinyume cha-endian kidogo, ambapo tarakimu ndogo zaidi ni ya kwanza.", + "block-term": "Bloku", + "block-definition": "Kitalu ni mahali ambapo miamala au vitendo vya kidijitali huhifadhiwa. Mara tu kitalu kimejaa, kinaunganishwa na kile cha awali, na kuunda mlolongo wa vitalu au \"kiambajengo\". Mengi kuhusu vitalu.

kitalu ni kitengo cha taarifa kilichounganishwa ambacho kinajumuisha orodha ya miamala iliyoagizwa na maelezo yanayohusiana na makubaliano. Vitalu vinapendekezwa na vithibitishaji vya uthibitisho wa dau, wakati ambapo vinashirikiwa katika mtandao mzima wa rika-kwa-rika, ambapo vinaweza kuthibitishwa kwa urahisi na nodi nyingine zote. Sheria za Makubaliano hudhibiti ni maudhui gani ya kizuizi yanachukuliwa kuwa halali, na vizuizi vyovyote batili vinapuuzwa na mtandao. Upangaji wa vizuizi hivi na miamala iliyomo huunda mlolongo wa kubainisha wa matukio na mwisho ukiwakilisha hali ya sasa ya mtandao.", + "block-explorer-term": "''Kichunguzi cha mnyororo.''", + "block-explorer-definition": "Kiolesura ambacho humruhusu mtumiaji kutafuta taarifa kutoka, na kuhusu, kiambajengo. Hii ni pamoja na kurejesha miamala ya kibinafsi, shughuli inayohusishwa na anwani maalum na taarifa kuhusu mtandao.", + "block-header-term": "Kitalu kichwa", + "block-header-definition": "Kitalu kichwa ni mkusanyiko wa metadata kuhusu kitalu na muhtasari wa miamala iliyojumuishwa katika upakiaji wa utekelezaji.", + "block-propagation-term": "Kitalu usambazaji", + "block-propagation-definition": "Mchakato wa kusambaza kitalu kilichothibitishwa kwa nodi zingine zote kwenye mtandao.", + "block-proposer-term": "Kitalu pendekezo", + "block-proposer-definition": "Kithibitishaji mahususi kilichochaguliwa kuunda kitalu katika slot fulani.", + "block-reward-term": "Kitalu zawadi", + "block-reward-definition": "Kiasi cha ether kitazawadiwa kwa anayependekeza kitalu kipya halali.", + "block-status-term": "Kitalu hali", + "block-status-definition": "Majimbo ambayo kitalu kinaweza kuwepo. Majimbo yanayowezekana ni pamoja na:

  • iliyopendekezwa: kitalu kilipendekezwa na kithibitishaji
  • kilichoratibiwa: wathibitishaji kwa sasa wanawasilisha data
  • wamekosa/kurukwa: mpendekezaji hakupendekeza kitalu ndani ya muda unaostahiki
  • yatima: kitalu kilipangwa upya algorithm ya kuchagua uma
", + "block-time-term": "Wakati wa bloku", + "block-time-definition": "Muda wa kati wa vitalu vinavyoongezwa kwenye kiambajengo.", + "block-validation-term": "Kitalu uthibitishaji", + "block-validation-definition": "Mchakato wa kuangalia kwamba kitalu kipya kina shughuli na saini halali, hujengwa juu ya mlolongo mzito zaidi wa kihistoria (ikimaanisha ule ambao umekusanya uthibitisho zaidi katika historia yake), na hufuata sheria zingine zote za makubaliano. Vitalu halali huongezwa kwa kichwa cha mnyororo na kuenezwa kwa wengine kwenye mtandao. Vitalu batili vinapuuzwa.", + "blockchain-term": "Blockchain", + "blockchain-definition": "Kiambajengo ni hifadhidata ya miamala, iliyorudiwa na kushirikiwa kwenye kompyuta zote kwenye mtandao, na kuhakikisha kwamba data haiwezi kubadilishwa kwa kurudi nyuma.

Msururu wa block , kila moja ikiunganishwa na mtangulizi wake hadi genesis block kwa kurejelea hashi ya kitalu kilichopita. Uadilifu wa kiambajengo umelindwa kiuchumi kwa kutumia uthibitisho wa utaratibu wa makubaliano ya msingi wa hisa. kiambajengo ni nini?", + "bootnode-term": "Bootnode", + "bootnode-definition": "Nodi ambazo zinaweza kutumika kuanzisha mchakato wa ugunduzi wakati wa kuendesha nodi. Bootnodi 'huanzisha' nodi mpya kwa nodi nyingine zilizopo ili waweze kupata wenzao kwa haraka, badala ya kulazimika kutafuta rika la awali. Mwisho wa nodi hizi kwa kawaida hutolewa katika msimbo wa chanzo wa mteja wa Ethereum, lakini watumiaji wanaweza kutoa orodha yao ya bootnodi.", + "bridge-term": "Madaraja / Vusha", + "bridge-definition": "Daraja la kiambajengo hutumiwa kuhamisha asserts kutoka kwa mtandao mmoja wa kiambajengo hadi mwingine. Kwa mfano unaweza kutumia daraja kuhamisha ETH kutoka mtandao mkuu wa Ethereum hadi kwa ufumbuzi wa bei nafuu wa safu ya 2.", + "bytecode-term": "Bytecode", + "bytecode-definition": "Msimbo umeonyeshwa kwa ufupi, umbo la nambari ili uweze kutekelezwa ipasavyo na EVM.", + "byzantium-fork-term": "Uma wa Byzantium", + "byzantium-fork-definition": "Njia ya kwanza kati ya mbili uma ngumu kwa ajili ya hatua ya ukuzaji ya Metropolis. Ilijumuisha EIP-649 Metropolis Bomu la Ugumu Kuchelewa na kitalu Kupunguza Zawadi, ambapo Ice Age ilicheleweshwa kwa mwaka 1 na zawadi ya kitalu ikapunguzwa kutoka etha 5 hadi 3.", + "casper-ffg-term": "Casper FFG", + "casper-ffg-definition": "Casper-FFG ni itifaki ya makubaliano ya uthibitisho wa dau inayotumika pamoja na LMD-GHOST algoriti ya chaguo la kuruhusu wateja wa makubaliano kukubaliana juu ya kichwa cha Msururu wa Beacon.", + "checkpoint-term": "Kituo cha ukaguzi", + "checkpoint-definition": "mnyororo wa Beacon ina tempo iliyogawanywa katika nafasi (sekunde 12) na epochs (nafasi 32). Nafasi ya kwanza katika kila enzi ni kituo cha ukaguzi. Wakati idadi kubwa ya wathibitishaji inapothibitisha kiungo kati ya vituo viwili vya ukaguzi, wanaweza kuhalalishwa na kisha kituo kingine cha ukaguzi kikithibitishwa juu, wanaweza kukamilishwa.", + "compiling-term": "Kuandaa", + "compiling-definition": "Kubadilisha msimbo ulioandikwa katika lugha ya kiwango cha juu cha programu (k.m., Solidity) hadi lugha ya kiwango cha chini (k.m., EVM bytecode).Zaidi kuhusu kukusanya mikataba mahiri", + "committee-term": "Kamati", + "committee-definition": "Kundi la angalau wathibitishaji 128 waliogawiwa kuthibitisha kitalu katika kila nafasi. Mmoja wa waidhinishaji katika kamati ni mjumlishaji, anayewajibika kujumlisha saini za wathibitishaji wengine wote katika kamati wanaokubali uthibitisho. Isichanganywe na kamati ya kusawazisha.", + "computational-infeasibility-term": "Ukosefu wa uwezekano wa kimahesabu", + "computational-infeasibility-definition": "Mchakato hauwezekani kimahesabu ikiwa utachukua muda mrefu usiowezekana (k.m., mabilioni ya miaka) kuufanya kwa mtu yeyote ambaye anaweza kuwa na nia ya kuutekeleza.", + "consensus-term": "Makubaliano", + "consensus-definition": "Wakati zaidi ya 2/3 ya kompyuta kwenye mtandao zinakubali kuwa zina rekodi sawa, kuhakikisha kuwa kila mtu yuko kwenye ukurasa mmoja. Hii haihusu sheria wanazofuata, lakini kuhakikisha kuwa zote zina taarifa sawa.", + "consensus-client-term": "mteja wa makubaliano", + "consensus-client-definition": "Wateja wa Makubaliano (kama vile Prysm, Teku, Nimbus, Lighthouse, Lodestar) hutekeleza kanuni za makubaliano ya ya uthibitisho wa hisa ya Ethereum inayoruhusu mtandao kufikia makubaliano kuhusu mkuu wa Mnyororo wa Beacon. Wateja wa makubaliano hawashiriki katika kuthibitisha/kutangaza miamala au kutekeleza mabadiliko ya serikali. Hii inafanywa na wateja wa utekelezaji. Wateja wa makubaliano hawatoi ushahidi, au kupendekeza vitalu vipya. Hili hufanywa na mteja wa kiidhinishaji ambayo ni nyongeza ya hiari kwa mteja wa makubaliano.", + "consensus-layer-term": "Safu ya makubaliano", + "consensus-layer-definition": "Safu ya makubaliano ya Ethereum ni mtandao wa wateja wa makubaliano.", + "consensus-rules-term": "Sheria za makubaliano", + "consensus-rules-definition": "Sheria za uthibitishaji wa kuzuia ambazo nodi kamili hufuata ili kukaa katika makubaliano na nodi zingine. Isichanganywe na makubaliano.", + "cfi-term": "Inazingatiwa kwa Ujumuishaji (CFI)", + "cfi-definition": "Msingi EIP ambayo bado haitumiki kwenye Mainnet, na wasanifu wa mteja kwa ujumla wana maoni chanya kuelekea wazo hilo. Ikizingatiwa kuwa inakidhi mahitaji yote ya ujumuishaji wa mainnet, inaweza kujumuishwa katika uboreshaji wa mtandao (sio lazima ijayo).", + "constantinople-fork-term": "Uma wa Constantinople", + "constantinople-fork-definition": "Sehemu ya pili ya hatua ya Metropolis, iliyopangwa awali kufanyika katikati ya mwaka wa 2018. Inatarajiwa kujumuisha ubadilishaji hadi uthibitisho wa kazi/uthibitisho wa kuhusika, miongoni mwa mabadiliko mengine.", + "contract-account-term": "Akaunti ya mkataba", + "contract-account-definition": "Akaunti iliyo na msimbo unaotekelezwa wakati wowote inapopokea muamala kutoka kwa akaunti nyingine (EOA] au mkataba).", + "contract-creation-transaction-term": "Muamala wa uundaji wa mkataba", + "contract-creation-transaction-definition": "muamala maalum unaojumuisha msimbo wa kuanzisha mkataba. Mpokeaji amewekwa `null` na mkataba utatumwa kwa anwani inayotokana na anwani ya mtumiaji na `nonce`. ambayo hutumika kusajili mkataba na kuirekodi kwenye kiambajengo cha Ethereum.", + "cryptoeconomics-term": "Uchumi-wa-Kripto", + "cryptoeconomics-definition": "Utafiti wa kanuni za hisabati na kiuchumi ili kubuni majukwaa salama na ya kuaminika ya kidigitali. Lengo ni kuhakikisha kuwa washiriki wote wanafuata sheria na wanatuzwa kwa kuchangia usalama na uendeshaji wa mtandao ", + "cryptography-term": "Usimbaji fiche", + "cryptography-definition": "Ni utaratibu wa kupata mawasiliano na data kupitia matumizi ya misimbo, ili wale tu ambao taarifa imekusudiwa waweze kuisoma na kuichakata.
Inahusisha mbinu za usimbaji fiche (kubadilisha taarifa zinazosomeka kuwa umbizo lisilosomeka) na kusimbua (kuibadilisha kuwa umbizo linalosomeka), kuhakikisha usiri.", + "doge-d-term": "Đ", + "doge-d-definition": "Đ (D yenye kiharusi) inatumika katika Kiingereza cha Kale, Kiingereza cha Kati, Kiaislandi, na Kifarao kusimamisha herufi kubwa \"Eth\". Inatumika katika maneno kama vile ĐEV au Đapp (maombi yaliyogatuliwa), ambapo Đ ni herufi ya Norse \"eth\". Herufi kubwa eth (Ð) pia hutumika kuashiria Dogecoin ya sarafu ya fiche. Hii inaonekana kwa kawaida katika fasihi ya zamani ya Ethereum lakini hutumiwa mara chache leo.", + "dag-term": "DAG", + "dag-definition": "DAG inasimama kwa Directed Acyclic Graph. Ni muundo wa data unaojumuisha nodi na viungo kati yao. Kabla ya Kuunganisha, Ethereum ilitumia DAG katika uthibitisho wa kazi algoriti, Ethash, lakini haitumiki tena katika uthibitisho wa hisa.", + "dapp-term": "Mfumo uliotawanywa", + "dapp-definition": "Dapp ni programu iliyotawanywa ambayo inaendeshwa kwenye mtandao wa kiambajengo, ikitoa huduma bila mamlaka kuu ya udhibiti. Mengi zaidi kuhusu programu zilizotawanywa.
Kwa uchache dapp ina mkataba mahiri uliounganishwa kwenye kiolesura cha tovuti. Kwa kuongeza, dapps nyingi zinajumuisha hifadhi iliyotawanywa na/au itifaki ya ujumbe na jukwaa.", + "data-availability-term": "Uwepo wa data", + "data-availability-definition": "Nodi yoyote inaweza kuthibitisha miamala kwa uhuru kwenye mnyororo wa bloku ili kudumisha uwazi na uaminifu katika mfumo.", + "decentralization-term": "Ugatuzi", + "decentralization-definition": "Dhana ya kuhamisha udhibiti na utekelezaji wa michakato mbali na chombo kikuu.", + "dao-term": "Shirika linalojitawala lililogatuliwa (DAO)", + "dao-definition": "DAO ni shirika la kidijitali linaloendeshwa kwa kanuni zilizowekwa kwenye kiambajengo, ambapo maamuzi hufanywa na kura za wanachama, si mamlaka kuu. Mengi zaidi kuhusu mashirika yanayojiendesha yenye mamlaka (DAOs).
Nguvu za kupiga kura za kila mwanachama mara nyingi hulingana na idadi ya tokeni alizo nazo. DAOs zinalenga kuleta demokrasia katika kufanya maamuzi na uendeshaji, kwa kuzingatia uwazi na utawala wa jamii.", + "desci-term": "DeSci", + "desci-definition": "DeSci, au Sayansi Iliyogatuliwa, ni harakati inayotumia teknolojia ya mnyororo wa bloku katika utafiti wa kisayansi. Inatumia DAO, mikataba-erevu, na motisha za kitokeni kuunda mifumo ya ufadhili na utafiti iliyo wazi zaidi, na ya ushirikiano.", + "dex-term": "Soko la ubadilishanaji lililogatuliwa (DEX)", + "dex-definition": "Aina ya programu ya Ethereum inayokuruhusu kubadilisha tokeni na programu zingine kwenye mtandao. DEX haziko chini ya vikwazo vya kijiografia kama vile kubadilishana kati - mtu yeyote anaweza kushiriki.", + "deposit-contract-term": "Mkataba wa amana", + "deposit-contract-definition": "Njia ya kuingia kwenye Ethereum. Mkataba wa amana ni mkataba mzuri kwenye Ethereum ambao unakubali amana za ETH na kudhibiti salio la waidhinishaji. Mthibitishaji hawezi kuanzishwa bila kuweka ETH katika mkataba huu. Mkataba unahitaji ETH na data ya ingizo. Data hii ya ingizo inajumuisha ufunguo wa umma wa kiidhinishaji na ufunguo wa umma wa kutoa, uliotiwa saini na ufunguo wa faragha wa kihalalishaji. Data hii inahitajika ili kithibitishaji kitambulishwe na kuidhinishwa na mtandao wa uthibitisho wa kuhusika.", + "defi-term": "DeFi", + "defi-definition": "Aina pana ya programu za Ethereum zinazolenga kutoa huduma za kifedha zinazoungwa mkono na kiambajengo, bila wapatanishi wowote. Mengi zaidi kuhusu utawanyaji wa fedha (DeFi)", + "difficulty-term": "Ugumu", + "difficulty-definition": "Mipangilio ya mtandao mzima katika mitandao ya uthibitisho wa kazi ambayo inadhibiti ni kiasi gani cha wastani cha hesabu kinachohitajika ili kupata nonce halali. Ugumu unawakilishwa na idadi ya sufuri zinazoongoza ambazo zinahitajika katika heshi ya kuzuia ili ichukuliwe kuwa halali. Wazo hili limeacha kutumika katika Ethereum tangu mabadiliko ya hadi uthibitisho wa hisa.", + "difficulty-bomb-term": "Bomu la ugumu", + "difficulty-bomb-definition": "Ongezeko la kielelezo lililopangwa katika mipangilio ya uthibitisho wa kazi ugumu ambayo iliundwa ili kuhamasisha mpito hadi uthibitisho wa kuhusika, kupunguza uwezekano wa uma. Bomu la ugumu liliacha kutumika na the Merge.", + "digital-signatures-term": "Sahihi ya kidijitali", + "digital-signatures-definition": "Mfuatano mfupi wa data ambao mtumiaji hutoa kwa hati kwa kutumia ufunguo wa faragha ili mtu yeyote aliye na ufunguo unaolingana wa ufunguo wa umma, sahihi, na hati aweze kuthibitisha kwamba (1) hati \"ilitiwa saini\" na mmiliki wa hati hiyo (2) baada ya ufunguo huo wa faragha kubadilishwa, na kutotiwa saini.", + "discovery-term": "Ugunduzi", + "discovery-definition": "Mchakato ambao nodi ya Ethereum hupata nodi zingine za kuunganisha nazo.", + "distributed-hash-table-term": "Jedwali la hashi lililosambazwa (DHT)", + "distributed-hash-table-definition": "Muundo wa data ulio na jozi `(ufunguo, thamani)` zinazotumiwa na nodi za Ethereum kutambua programu zingine za kuunganisha na kubainisha itifaki za kutumia kuwasiliana.", + "double-spend-term": "Matumizi mara mbili", + "double-spend-definition": "Uma wa makusudi wa mnyororo wa bloku, ambapo mtumiaji aliye na kiasi kikubwa cha kutosha cha nguvu ya uchimbaji/hisa hutuma muamala unaohamisha sarafu fulani nje ya mnyororo (k.m., kutoka na kuingia katika pesa za fiat au kufanya ununuzi nje ya mnyororo) kisha kupanga upya mnyororo wa bloku ili kuondoa muamala huo. Matumizi ya mara mbili yaliyofanikiwa humwacha mshambuliaji na mali zake za ndani ya mnyororo na nje ya mnyororo.", + "ecdsa-term": "Algorithm ya Sahihi ya Kidijitali ya Mzingo Mduaradufu (ECDSA)", + "ecdsa-definition": "Algorithm ya kriptografia inayotumiwa na Ethereum kuhakikisha kuwa pesa zinaweza kutumiwa na wamiliki wao pekee. Ni njia inayopendekezwa ya kuunda funguo za umma na za kibinafsi. Inafaa kwa uzalishaji wa anwani ya akaunti na uthibitishaji wa shughuli.", + "encryption-term": "Usimbaji fiche", + "encryption-definition": "Usimbaji fiche ni ubadilishaji wa data ya kielektroniki kuwa fomu isiyoweza kusomeka na mtu yeyote isipokuwa mmiliki wa ufunguo sahihi wa kusimbua.", + "entropy-term": "Entropy", + "entropy-definition": "Katika muktadha wa kriptografia, ukosefu wa kutabirika au kiwango cha kubahatisha. Wakati wa kutoa maelezo ya siri, kama vile funguo za faragha, algoriti kwa kawaida hutegemea chanzo cha entropy ya juu ili kuhakikisha matokeo hayatabiriki.", + "epoch-term": "Epoch", + "epoch-definition": "Muda wa nafasi 32, kila nafasi ikiwa ni sekunde 12, jumla ya dakika 6.4. Kihalali kamati huchanganyika kila wakati kwa sababu za usalama. Kila enzi ina fursa kwa msururu kukamilika. Kila kithibitishaji hupewa majukumu mapya mwanzoni mwa kila kipindi. Mengi zaidi kuhusu uthibitisho wa hisa", + "equivocation-term": "Usawa", + "equivocation-definition": "Mthibitishaji anayetuma jumbe mbili zinazokinzana. Mfano mmoja rahisi ni mtumaji wa muamala anayetuma miamala miwili na nonce sawa. Mwingine ni mpendekezaji wa kitalu anapendekeza vitalu viwili kwa urefu sawa wa kitalu (au kwa yanayopangwa sawa).", + "eth1-term": "Eth1", + "eth1-definition": "'Eth1' ni neno linalorejelea Mainnet Ethereum, mnyororo uliopo wa uthibitisho wa kazi. Neno hili limeacha kutumika kwa ajili ya 'safu ya utekelezaji'. Pata maelezo zaidi kuhusu mabadiliko haya ya jina.", + "eth2-term": "Eth2", + "eth2-definition": "'Eth2' ni neno linalorejelea seti ya uboreshaji wa itifaki ya Ethereum, ikijumuisha ubadilishaji wa Ethereum hadi uthibitisho wa hisa. Neno hili limeacha kutumika kwa ajili ya 'safu ya makubaliano'. Pata maelezo zaidi kuhusu mabadiliko haya ya jina.", + "eip-term": "Pendekezo la Uboreshaji la Ethereum (EIP)", + "eip-definition": "Hati ya muundo inayotoa maelezo kwa jumuiya ya Ethereum, inayoelezea kipengele kipya kilichopendekezwa au michakato au mazingira yake (ona ERC). Utangulizi wa EIPs", + "ens-term": "Huduma ya Jina ya Ethereum (ENS)", + "ens-definition": "Huduma ya Jina ya Ethereum ni kama kitabu cha simu cha intaneti kwa anwani za Ethereum. Badala ya kutumia anwani ndefu za pochi, ENS hukuruhusu kutumia majina rahisi kama vile \"john.eth\" kutuma na kupokea pesa na mali dijitali.

Kiufundi:
Sajili ya ENS ni mkataba mmoja ambao hutoa ramani na kutatua vikoa kama ilivyofafanuliwa kutoka kwa majina ya vikoa 3 hadi EIP, 1. Soma zaidi katika ens.domains.", + "erc-1155-term": "ERC-1155", + "erc-1155-definition": "ERC-1155 ni aina mpya zaidi ya kiwango cha tokeni ya Ethereum sawa na NFT (kama vile vitu vya kipekee vinavyoweza kukusanywa) ambayo pia inaruhusu kuunda bidhaa zinazoweza kubadilishwa (kama vile sarafu) ndani ya mkataba mmoja mahiri.
Hii hurahisisha na ufanisi zaidi kudhibiti aina mbalimbali za vipengee vya dijitali, hasa kwa programu kama vile michezo ya video au mikusanyiko ya dijitali.", + "erc-20-term": "ERC-20", + "erc-20-definition": "ERC-20 ni kiwango ambacho tokeni nyingi kwenye mtandao wa Ethereum hutumia kwa uundaji wao.
Mifano maarufu ni sarafu-imara kama DAI na USDC au tokeni za soko la ubadilishanaji kama UNI kutoka Uniswap. Sawa na aina yoyote ya pesa mbadala tulizo nazo katika mifumo ya jadi… yaani, pointi za zawadi, mifumo ya mikopo, au hata hisa, n.k.", + "erc-721-term": "ERC-721", + "erc-721-definition": "NFTs (tokeni zisizoweza kufungika) huundwa kwa kutumia kanuni za kawaida zinazojulikana kama ERC-721.
Tokeni za NFT zinaweza kuwakilisha umiliki wa kitu chochote cha kipekee, kama vile sanaa ya kidijitali au mkusanyiko, huku kila tokeni ikiwa na sifa na thamani yake maalum. Kila NFT ni ya kipekee na inaweza kutofautishwa kwa urahisi na NFT nyingine yoyote.", + "execution-client-term": "Mteja wa utekelezaji", + "execution-client-definition": "Wateja wa utekelezaji (hapo awali walijulikana kama \"Wateja wa Eth1\"), kama vile Besu, Erigon, Go-Ethereum (Geth), Nethermind, wana jukumu la kuchakata na kutangaza shughuli na kudhibiti jimbo la Ethereum. Huendesha hesabu kwa kila ununuzi kwa kutumia Ethereum Virtual Machine ili kuhakikisha kuwa sheria za itifaki zinafuatwa.", + "execution-layer-term": "safu ya utekelezaji", + "execution-layer-definition": "Safu ya utekelezaji ya Ethereum ni mtandao wa wateja wa utekelezaji.", + "eoa-term": "Akaunti inayomilikiwa na nje (EOA)", + "eoa-definition": "Akaunti Zinazomilikiwa Nje (EOAs) ni aina ya kawaida ya akaunti ya Ethereum. Zinadhibitiwa na mtu kupitia funguo za kibinafsi / kifungu cha urejeshaji. Mengi zaidi kuhusu pochi za Ethereum.", + "erc-term": "Ombi la Ethereum la Maoni (ERC)", + "erc-definition": "ERC (Ombi la Ethereum la Maoni) ni aina ya hati za kiufundi zinazotumiwa katika jumuiya ya Ethereum kupendekeza viwango vipya vya matumizi ya mtandao wa Ethereum.

Mapendekezo haya yanaweza kushughulikia mada mbalimbali, ikiwa ni pamoja na viwango vipya vya tokeni (kama vile ERC-20 vinavyotumika kwa tokeni na ERC-721).", + "ethash-term": "Ethash", + "ethash-definition": "Algoriti ya uthibitisho wa kazi ambayo ilitumika kwenye Ethereum kabla ya kubadilishwa hadi uthibitisho wa hisa. Soma zaidi", + "ether-term": "Ether", + "ether-definition": "Sarafu ya kifikra ya asili ya Ethereum, inayojulikana kama \"ETH\". Inatumika kulipia ada za ununuzi unapotumia mfumo wa ikolojia na programu za Ethereum. Mengi zaidi kuhusu etha.", + "events-term": "Matukio", + "events-definition": "Inaruhusu matumizi ya EVM nyenzo za ukataji miti. Dapps inaweza kusikiliza matukio na kuzitumia kuanzisha JavaScript callbacks katika kiolesura cha mtumiaji. Mengi zaidi kuhusu matukio na kumbukumbu", + "evm-term": "Mashine Halisi ya Ethereum (EVM)", + "evm-definition": "Mashine halisi ya msingi ya rafu inayotekeleza bytecode. Katika Ethereum, mtindo wa utekelezaji unabainisha jinsi hali ya mfumo inavyobadilishwa kutokana na mfululizo wa maagizo ya bytecode na nakala ndogo ya data ya mazingira. Hii inabainishwa kupitia mfano rasmi wa mashine ya hali pepe. Mengi zaidi kuhusu Ethereum Virtual Machine.", + "evm-assembly-language-term": "Lugha ya mkutano wa EVM", + "evm-assembly-language-definition": "Aina inayoweza kusomeka na binadamu ya EVM bytecode.", + "fallback-function-term": "Kitendaji cha kurudi nyuma", + "fallback-function-definition": "Chaguo la msingi linaloitwa bila data au jina la chaguo-msingi lililotangazwa.", + "faucet-term": "Faucet", + "faucet-definition": "Huduma inayotekelezwa kupitia mkataba mahirit ambayo hutoa fedha kwa njia ya etha ya majaribio ya bure ambayo inaweza kutumika kwenye testnet.", + "finality-term": "Mwisho", + "finality-definition": "Mwisho ni dhamana ya kwamba seti ya shughuli haiwezi kubadilishwa bila kiasi kikubwa cha ETH kupotea.", + "finney-term": "Finney", + "finney-definition": "Thamani ndogo ya etha. 1 finney = 1015 wei. 103 finney = etha 1.", + "fork-term": "Uma", + "fork-definition": "Mabadiliko ya itifaki na kusababisha kuundwa kwa mlolongo mbadala.", + "fork-choice-algorithm-term": "Algorithm ya uchaguzi wa uma", + "fork-choice-algorithm-definition": "Algorithm inayotumika kutambua kichwa cha kiambajengo. Kwenye Ethereum kichwa cha mnyororo kinatambuliwa kama uma wenye 'uzito' mkubwa zaidi wa uthibitisho. Uzito ni bidhaa ya idadi ya uthibitisho na usawa wa ufanisi wa wathibitishaji wa kuthibitisha. Hii inamaanisha kuwa kichwa cha kweli cha mnyororo ndiye ambaye etha inayohusika zaidi amempigia kura. Kwenye safu ya makubaliano algoriti ya chaguo la uma inaitwa LMD_GHOST.", + "fraud-proof-term": "Ushahidi wa ulaghai", + "fraud-proof-definition": "Muundo wa usalama wa masuluhisho fulani ya safu 2 ambapo, ili kuongeza kasi, miamala hukungwa katika makundi na kuwasilishwa kwa Ethereum kwa muamala mmoja. Washiriki wengine wa mtandao wanaweza kutekeleza tena miamala ili kuhakikisha kuwa ilitekelezwa kwa uaminifu. Iwapo watagundua tofauti kati ya data iliyochapishwa na toleo lao wenyewe wanaweza kuchapisha uthibitisho wa siri ambao unaonyesha mahali ulaghai fulani ulifanyika. Baadhi ya rollups hutumia uthibitisho wa uhalali.", + "frontier-term": "Frontier", + "frontier-definition": "Hatua ya awali ya maendeleo ya mtihani wa Ethereum, ambayo ilidumu kutoka Julai 2015 hadi Machi 2016.", + "gas-term": "Gesi", + "gas-definition": "Gharama ya muamala ni ada inayolipwa kwa miamala na mikataba mahiri kwenye kiambajengo, kama vile Ethereum. Mengi zaidi kuhusu gharama ya muamala na ada.", + "gas-limit-term": "Kikomo cha gharama ya muamala", + "gas-limit-definition": "Kiasi cha juu cha ggarama ya muamala muamala au kitalu kinaweza kutumia.", + "gas-price-term": "Bei ya gharama ya muamala", + "gas-price-definition": "Bei katika etha ya kitengo kimoja cha gharama ya muamala iliyobainishwa katika shughuli ya ununuzi.", + "genesis-block-term": "Bloku ya mwanzo", + "genesis-block-definition": "Bloku ya kwanza katika mnyororo wa bloku, inayotumiwa kuanzisha mtandao fulani na sarafu yake ya kidigitali.", + "geth-term": "Geth", + "geth-definition": "Go Ethereum. Mojawapo ya utekelezaji maarufu zaidi wa itifaki ya Ethereum, iliyoandikwa kwa Go. Soma zaidi kwenye geth.ethereum.org", + "gwei-term": "Gwei", + "gwei-definition": "Ufupi wa gigawei, thamani ndogo ya etha, hutumika kwa bei ya gharama ya muamala. 1 gwei = 109 wei. 109 gwei = etha 1.", + "hard-fork-term": "Uma mgumu", + "hard-fork-definition": "Tofauti ya kudumu katika blockchain; pia inajulikana kama mabadiliko ya hard-forking. Moja hutokea wakati nodi ambazo hazijaboreshwa haziwezi kuthibitisha vizuizi vilivyoundwa na nodi zilizoboreshwa zinazofuata sheria mpya zaidi za makubaliano. Haipaswi kuchanganyikiwa na uma, uma laini, uma wa programu, au uma wa Git.", + "hash-term": "Hashi", + "hash-definition": "Alama ya kidole ya urefu usiobadilika ya data ya ukubwa tofauti, inayozalishwa na chaguo za kukokotoa za hashi. (Tazama keccak-256).", + "hash-rate-term": "Kiwango cha hashi", + "hash-rate-definition": "Idadi ya hesabu za hashi zinazofanywa kwa sekunde na kompyuta zinazoendesha programu ya uchimbaji madini.", + "homestead-term": "Nyumbani", + "holographic-consensus-term": "Makubaliano ya kiholografia", + "holographic-consensus-definition": "Inarejelea jinsi uamuzi wa kikundi kikubwa hufanywa kwa kuruhusu kikundi kidogo cha watu wawakilishi kupiga kura. Kisha watu wengine wote hukubali kwenda sambamba na hilo, mradi tu wanaamini kwamba kikundi kidogo kilifanya kazi nzuri.", + "homestead-definition": "Hatua ya pili ya maendeleo ya Ethereum, iliyozinduliwa Machi 2016 kwenye bloku ya 1,150,000.", + "index-term": "Faharasa", + "index-definition": "Muundo wa mtandao unaokusudiwa kuboresha uulizaji wa taarifa kutoka kwenye blockchain kwa kutoa njia bora ya uhifadhi wake.", + "ide-term": "Mazingira Jumuishi ya Maendeleo (IDE)", + "ide-definition": "Kiolesura cha mtumiaji ambacho kwa kawaida huchanganya kihariri cha msimbo, kikusanyaji, muda wa utekelezaji na kitatuzi. Mengi zaidi kuhusu mazingira jumuishi ya maendeleo.", + "immutable-deployed-code-problem-term": "Tatizo la msimbo uliotumwa lisilobadilika", + "immutable-deployed-code-problem-definition": "Pindi msimbo wa mkataba (au wa maktaba) unapotumwa, huwa hauwezi kubadilika. Mazoea ya kawaida ya uundaji wa programu hutegemea kuwa na uwezo wa kurekebisha hitilafu zinazowezekana na kuongeza vipengele vipya, kwa hivyo hii inawakilisha changamoto kwa uundaji wa mikataba mahiri. Mengi zaidi kuhusu kupeleka mikataba mahiri.", + "internal-transaction-term": "Muamala wa ndani", + "internal-transaction-definition": "muamala uliotumwa kutoka akaunti ya mkataba hadi akaunti nyingine ya mkataba au EOA (angalia ujumbe).", + "issuance-term": "utoaji", + "issuance-definition": "Uundaji wa ether mpya ili kuzawadia pendekezo la bloku, uthibitishaji na ufichuaji.", + "kdf-term": "Chaguo la kukokotoa la utoaji ufunguo (KDF)", + "kdf-definition": "Pia inajulikana kama \"algoriti ya kunyoosha nenosiri\", hutumika na fomati za keystore kulinda dhidi ya mashambulizi ya nguvu kubwa, kamusi (dictionary), na jedwali la rainbow table kwenye usimbaji fiche wa nywila, kwa kurudia mara nyingi ku-hash nenosiri hilo.", + "keystore-term": "Hifadhi ya funguo", + "keystore-definition": "Jozi ya ufunguo wa kibinafsi/anwani ya kila akaunti inapatikana kama faili moja muhimu katika mteja wa Ethereum. Hizi ni faili za maandishi za JSON ambazo zina ufunguo wa faragha uliosimbwa kwa njia fiche wa akaunti, ambao unaweza tu kusimbwa kwa nenosiri lililowekwa wakati wa kuunda akaunti.", + "keccak-256-term": "Keccak-256", + "keccak-256-definition": "Chaguo za kukokotoa za hashi ya kriptografia inayotumika katika Ethereum. Keccak-256 iliwekwa kama kiwango kama SHA-3.", + "key-term": "Ufunguo", + "key-definition": "Katika muktadha wa Ethereum, funguo ni misimbo ya digitali: ufunguo wa umma wa kupokea miamala na ufunguo wa faragha wa kufikia na kutuma pesa.
Funguo za umma: Hizi zinaweza kushirikiwa kwa uwazi.
Funguo za faragha: Hizi ni siri na mmiliki.", + "layer-1-term": "Safu ya 1", + "layer-1-definition": "Safu ya 1 inarejelea blockchain kuu katika mtandao wa kiambajengo wa ngazi nyingi. Kwa mfano, Ethereum na Bitcoin ni safu moja ya viambajengo. viambajengo vingi vya safu ya pili hupakia miamala mikali ya rasilimali kwa viambajengo vyao tofauti, huku zikiendelea kutumia safu ya kwanza yakiambajengo cha Ethereum au Bitcoin kwa madhumuni ya usalama.", + "layer-2-term": "Safu ya 2", + "layer-2-definition": "Safu za 2 ni mitandao mingine iliyojengwa juu ya mtandao mkuu wa Ethereum ili kufanya miamala iwe ya haraka na ya bei nafuu. Zaidi kuhusu safu ya 2.", + "library-term": "Maktaba", + "library-definition": "Aina maalum ya mkataba ambayo haina vitendaji vinavyolipiwa, hakuna utendakazi mbadala, na hakuna hifadhi ya data. Kwa hivyo, haiwezi kupokea au kushikilia etha, au kuhifadhi data. Maktaba hutumika kama msimbo uliotumwa hapo awali ambao mikataba mingine inaweza kuita kwa ukokotoaji wa kusoma tu. Mengi zaidi kuhusu maktaba mahiri za mikataba.", + "light-client-term": "Mteja mwepesi", + "light-client-definition": "Mteja wa Ethereum ambaye hahifadhi nakala ya ndani ya blockchain, au kuthibitisha vitalu na alama. Inatoa utendakazi wa mkoba na inaweza kuunda na kutangaza miamala.", + "liquidity-term": "Ukwasi", + "liquidity-definition": "Liquidity ni jinsi mali inaweza kubadilishwa kwa haraka na kwa urahisi kuwa pesa taslimu au mali nyingine. Biashara zilizogatuliwa kama vile Uniswap zina hifadhi nyingi za ukwasi ambapo wamiliki wa mali wanaweza kuweka mali zao ambapo wafanyabiashara wanaweza kuzinunua na kuziuza kwa njia iliyogatuliwa ili kubadilishana na zawadi.", + "liquidity-tokens-term": "Tokeni za ukwasi", + "liquidity-tokens-definition": "Tokeni za Liquidity (LST) ni tokeni za digitali zinazotolewa kwa washiriki wanaoweka mali kwenye kundi la ukwasi, ambayo ni mkusanyiko wa fedha zilizowekwa katika mkataba mahiri na zinazotumiwa kuwezesha biashara ya ubadilishanaji wa madaraka (DEX).
Tokeni hizi zinawakilisha sehemu ya mshiriki ya dimbwi na zinaweza kukombolewa kwa kuongeza sehemu ya malipo ya awali kwa ajili ya malipo ya awali. Kimsingi, tokeni za ukwasi hutumika kama uthibitisho wa umiliki au hisa katika kundi la ukwasi, kuruhusu wamiliki kupata zawadi huku wakitoa ukwasi unaohitajika kwa wengine kufanya biashara ya jozi tofauti za sarafu ya fiche kwa ufanisi.", + "liquid-staking-tokens-term": "Tokeni za uwekaji hisa za ukwasi", + "liquid-staking-tokens-definition": "Tokeni inayotokana na ambayo inawakilisha umiliki wa sarafu-fiche iliyofungwa ambayo mtumiaji anahusika nayo. Baada ya kuweka kipengee cha mali, baadhi ya majukwaa yanaruhusu uundaji wa tokeni za kioevu (LSTs), ambazo zinawakilisha sehemu sawa ya tokeni zilizofungwa. LST hizi zinaweza kisha kuuzwa, kuuzwa au kutumika katika itifaki zingine za DeFi, kuboresha ufanisi wa mtaji kwa mdau kwa kuruhusu ufikiaji wa ukwasi kutoka kwa fedha zao, hata wakati mali zao asili zinasalia kuhusishwa.", + "lmd-ghost-term": "LMD-GHOST", + "lmd-ghost-definition": "algorithu ya kuchagua fork inayotumiwa na wateja wa makubaliano ya Ethereum kutambua kichwa cha mnyororo. LMD-GHOST ni kifupi kinachosimama cha \"Latest Message Driven Greediest Heaviest Observed SubTree\" ambayo ina maana kwamba kichwa cha mnyororo ndicho kitalu chenye mkusanyiko mkubwa zaidi wa uthibitisho katika historia yake.", + "mainnet-term": "Mtandao Mkuu", + "mainnet-definition": "Fupi la \"mtandao mkuu,\" huu ndio mnyororo wa bloku mkuu wa umma wa Ethereum.", + "max-fee-per-gas-term": "Ada ya Juu kwa kila Gesi", + "max-fee-per-gas-definition": "Ada ya Juu ni kiwango cha juu kabisa ambacho mtumiaji yuko tayari kulipa kwa kila kitengo cha gharama ya muamala (gwei) ili shughuli ya malipo ijumuishwe kwenye kitalu.", + "merkle-patricia-tree-term": "Mti wa Merkle Patricia (MPT)", + "merkle-patricia-tree-definition": "Muundo wa data unaotumika katika Ethereum kuhifadhi kwa ufanisi jozi za ufunguo-thamani.", + "merkle-root-term": "Mzizi wa Merkle", + "merkle-root-definition": "Mzizi wa Merkle ni hash moja ya juu ya mti wa Merkle. Inathibitisha shughuli zote ndani ya block.", + "message-term": "Ujumbe", + "message-definition": "muamala wa ndani ambao haujasasishwa na hutumwa tu ndani ya EVM.", + "message-call-term": "Mwito wa ujumbe", + "message-call-definition": "Kitendo cha kupitisha ujumbe kutoka akaunti moja hadi nyingine. Ikiwa akaunti lengwa inahusishwa na EVM msimbo, basi VM itaanzishwa na hali ya kitu hicho na ujumbe kufanyiwa kazi.", + "mev-term": "Thamani ya Juu Inayoweza Kuchimbwa (MEV)", + "mev-definition": "Thamani ya juu zaidi inayoweza kutolewa kutoka kwa uzalishaji wa vitalu zaidi ya malipo ya kawaida ya kitalu na ada za gharama ya muamala kwa kujumuisha, kutojumuisha na kubadilisha mpangilio wa miamala katika block. Mengi zaidi kuhusu Thamani ya Juu Inayochimbwa (MEV).", + "mining-term": "Uchimbaji", + "mining-definition": "Mchakato wa kuharakisha kichwa cha kitalu mara kwa mara huku ukiongeza nonce hadi matokeo yawe na nambari kiholela ya sifuri pacha zinazoongoza. Huu ndio mchakato ambao vitalu vipya huongezwa kwenye msururu wa uthibitisho wa kazi. Hivi ndivyo Ethereum ililindwa kabla ya kuhamia kwa uthibitisho wa hisa.", + "miner-term": "Wachimbaji", + "miner-definition": "Mtandao nodi unaopata uthibitisho halali wa vitalu vipya, kwa kuharakisha kupita mara kwa mara (ona Ethash). Wachimbaji si sehemu ya Ethereum tena - walibadilishwa na wathibitishaji Ethereum ilipohamia kwenye uthibitisho wa hisa.", + "mint-term": "Mint", + "mint-definition": "Minting ni mchakato wa kuunda ishara mpya na kuzileta kwenye mzunguko ili ziweze kutumika. Ni mfumo mtawanyo wa kuunda tokeni mpya bila kuhusisha mamlaka kuu.", + "multisig-term": "Saini nyingi", + "multisig-definition": "Sahihi nyingi inarejelea pochi ya dijitali au akaunti inayohitaji saini nyingi au vibali ili kutekeleza miamala, kuimarisha usalama.
Hii huongeza usalama zaidi ikilinganishwa na akaunti za kawaida za sahihi moja ambapo kibali cha mtu mmoja tu kinahitajika.", + "network-term": "Mtandao", + "network-definition": "Akizungumzia mtandao wa Ethereum, mtandao wa rika-kwa-rika ambao hueneza shughuli na kuzuia kwa kila nodi ya Ethereum (mshiriki wa mtandao). Mengi kwenye mitandao.", + "network-hashrate-term": "Mtandao hashrate", + "network-hashrate-definition": "Hashrate ya pamoja inayotolewa na mtandao mzima wa uchimbaji. Uchimbaji kwenye Ethereum ulizimwa Ethereum ilipohamia kwenye uthibitisho wa hisa.", + "nft-term": "Tokeni isiyoweza kubadilishwa (NFT)", + "nft-definition": "Kipengee cha kipekee cha kidijitali unachoweza kumiliki, kama vile sanaa au mkusanyiko, kilichothibitishwa na teknolojia ya kiambajengo. Mengi zaidi kuhusu tokeni zikipekee (NFTs).", + "node-term": "Nodi", + "node-definition": "Mteja wa programu anayeshiriki katika mtandao. Mengi zaidi kuhusu nodi na wateja.", + "nonce-term": "Nonce", + "nonce-definition": "Katika kriptografia, thamani ambayo inaweza kutumika mara moja tu. Nonce ya akaunti ni kaunta ya muamala katika kila akaunti, ambayo hutumiwa kizuia mashambulizi ya kucheza tena.", + "offchain-term": "Offchain", + "offchain-definition": "Nje ya mnyororo inamaanisha muamala au data yoyote iliyo nje ya kiambajengo. Kwa sababu kufanya kila muamala kwenye mnyororo kunaweza kuwa ghali na kutofaa, zana za wahusika wengine kama vile hotuba zinazoshughulikia data ya bei, au suluhu za safu ya 2 ambazo hutekeleza utendakazi wa juu zaidi wa miamala, kushughulikia sehemu kubwa ya kazi ya kuchakata nje ya msururu, na itawasilisha taarifa kwenye mnyororo kwa muda mfupi.", + "ommer-term": "Kitalu Ommer", + "ommer-definition": "Wakati mchimbaji mchimba anapata kitalu halali, mchimbaji mwingine anaweza kuwa amechapisha kitalu kinachoshindana ambacho huongezwa kwenye ncha ya kiambajengo kwanza. Kitalu hiki halali, lakini cha zamani kinaweza kujumuishwa na vitalu vipya zaidi kama ommers na kupokea zawadi ya kitalui kidogo. Neno \"ommer\" ni neno linalopendekezwa lisilopendelea kijinsia kwa kitalu cha asili, lakini hii pia wakati mwingine hujulikana kama \"ommers\". Hili lilikuwa jambo la kawaida kwa Ethereum ilipokuwa mtandao wa uthibitisho wa kazi. Kwa kuwa sasa Ethereum inatumia uthibitisho wa hisa, ni mpendekezaji mmoja tu wa kitalu ndiye anayechaguliwa kwa kila nafasi.", + "onchain-term": "Onchain", + "onchain-definition": "Inarejelea vitendo au miamala inayofanyika kwenye kiambajengo na inapatikana kwa umma.

Fikiria kama kuandika kitu kwenye daftari kubwa, la pamoja ambalo kila mtu anaweza kuona na kuangalia, kuhakikisha kuwa chochote kilichoandikwa (kama vile kutuma pesa kidijitali au kufanya mkataba) ni cha kudumu na hakiwezi kubadilishwa au kufutwa.", + "optimistic-rollup-term": "''Kuunganisha kwa matumaini.''", + "optimistic-rollup-definition": "Uboreshaji wa Matumain ni suluhisho la Tabaka la 2 ambalo huharakisha ununuzi kwenye Ethereum, ikizingatiwa kuwa ni halali kwa chaguomsingi isipokuwa kama pingamizi liwe. Mengi zaidi kuhusu uboreshaji wa Matumaini.", + "oracle-term": "Oracle", + "oracle-definition": "Oracle ni daraja kati ya kiambajengo na ulimwengu halisi. Zinatumika kama API zinazoweza kuulizwa kwa maelezo na kutumika katika mikataba mahiri. Mengi zaidi kuhusu oracles.", + "peer-term": "Rika", + "peer-definition": "Kompyuta zilizounganishwa zinazotumia programu ya mteja wa Ethereum ambazo zina nakala zinazofanana za kiambajengo.", + "peer-to-peer-network-term": "Mtandao wa rika-kwa-rika", + "peer-to-peer-network-definition": "Mtandao wa kompyuta (rika) ambazo kwa pamoja zinaweza kutekeleza utendakazi bila hitaji la huduma za kati, zinazotegemea seva.
Mpangilio huu mara nyingi hutumiwa kushiriki faili (yaani, BitTorrent), habari, au sarafu za kidigitali, kuruhusu ubadilishanaji wa moja kwa moja na wenye ufanisi zaidi kati ya watumiaji.", + "permissionless-term": "Isiyohitaji ruhusa", + "permissionless-definition": "Bila ruhusa inamaanisha mtu yeyote anaweza kujiunga na kutumia mfumo kama vile Ethereum. Iko wazi kwa kila mtu kushiriki na haihitaji idhini yoyote.", + "plasma-term": "Njozi", + "plasma-definition": "Suluhisho la kuongeza kasi ya nje ya mnyororo linalotumia uthibitisho wa ulaghai, kama vile uboreshaji wa matumaini. Plasma ina ukomo wa shughuli rahisi kama vile uhamisho wa tokeni na ubadilishaji. Mengi kuhusu plasma.", + "private-key-term": "Ufunguo binafsi", + "private-key-definition": "Ufunguo wa faragha ni msimbo wa siri unaothibitisha kuwa unamiliki pesa zako dijitali na hukuruhusu kuzitumia, kama vile PIN ya akaunti yako. USISHIRIKI.", + "public-goods-term": "Bidhaa za umma", + "public-goods-definition": "Bidhaa za umma ni vitu ambavyo kila mtu anaweza kutumia bila malipo, kama vile bustani au hewa safi, na kuzitumia hakuzuii wengine kuzitumia pia. Mara nyingi serikali hutoa hizi kwa sababu biashara kwa kawaida hazitoi, kwa kuwa haziwezi kutoza watu kwa urahisi kwa kuzitumia.", + "private-chain-term": "Mnyororo wa kibinafsi", + "private-chain-definition": "Kiambajengo cha kibinafsi kabisa ni kile kilicho na ufikiaji ulioidhinishwa, haipatikani kwa umma kwa matumizi.", + "poap-term": "POAP", + "poap-definition": "Itifaki ya Uthibitisho wa Mahudhurio inatumika kuunda mkusanyiko wa dijitali (NFT) ambao unathibitisha kuwa ulihudhuria tukio au shughuli mahususi.", + "pos-term": "Uthibitisho-wa-hisa (PoS)", + "pos-definition": "Mbinu ambayo itifaki ya kiambajengo ya sarafu ya kidigitali inalenga kufikia makubaliano yaliyosambazwa. PoS inauliza watumiaji kuthibitisha umiliki wa kiasi fulani cha fedha za siri (\"hisa\" yao katika mtandao) ili waweze kushiriki katika uthibitishaji wa shughuli. Mengi zaidi kuhusu uthibitisho wa hisa.", + "pow-term": "Uthibitisho wa kazi (PoW)", + "pow-definition": "Utaratibu wa usalama wa viambajengo ambao unahitaji nodi kutumia nishati katika mfumo wa hesabu ili kupata thamani fulani.", + "proto-danksharding-term": "Proto-Dankharding", + "proto-danksharding-definition": "Aina mpya ya muamala ambayo inakubali \"blobs\" za data ya Ethereum. Data hii ya \"blob\" imehifadhiwa kwa muda kwenye msururu wa beacon kwa epochs 4096 (~siku 18.2), na inaweza kukatwa kwa hiari ili kusaidia kupunguza mahitaji ya maunzi kwa waendeshaji wa nodi.", + "public-key-term": "Ufunguo wa umma", + "public-key-definition": "Ufunguo wa umma ni kundi la herufi zinazowaruhusu wengine kukutumia sarafu ya kidijitali kwa usalama, kama vile barua pepe ya pesa.", + "quadratic-voting-term": "Upigaji kura wa Quadratic", + "quadratic-voting-definition": "Ni njia ya kupiga kura ambapo wapiga kura hueleza jinsi wanavyohisi sana kuhusu masuala. Inaruhusu wapiga kura kuonyesha sio tu upendeleo, lakini pia ukubwa wa upendeleo wao.", + "receipt-term": "Risiti", + "receipt-definition": "Data iliyorejeshwa na mteja wa Ethereum kuwakilisha matokeo ya muamala fulani, ikiwa ni pamoja na hash ya muamala, kitalu nambari yake, kiasi cha mkataba mahiri, anwani ya mkataba.", + "recovery-phrase-term": "Kifungu cha maneno / maneno ya kurejesha", + "recovery-phrase-definition": "Orodha ya maneno unayopewa unapounda mkoba wa kidijitali. Hufanya kazi kama nenosiri linaloweza kukusaidia kurejesha ufikiaji wa mkoba wako ukipoteza, na kuhakikisha haupotezi pesa zako za kidijitali au tokeni.", + "re-entrancy-attack-term": "Shambulio la kuingia tena", + "re-entrancy-attack-definition": "Mashambulizi ambayo yanajumuisha kandarasi ya mshambulizi inayoita kazi ya kandarasi ya mwathirika kwa njia ambayo wakati wa utekelezaji mwathirika humwita mshambulizi kandarasi tena, kwa kujirudia. Hii inaweza kusababisha, kwa mfano, katika wizi wa fedha kwa kuruka sehemu za mkataba wa mwathirika ambao huhihisha salio au kuhesabu kiasi cha uondoaji. Mengi zaidi kuhusu kuingia upya.", + "reward-term": "Zawadi", + "reward-definition": "Kiasi cha ether tunukiwa kwa wathibitishaji ambao hufanya kazi fulani, ikiwa ni pamoja na kupendekeza kitalu au kushiriki katika kamati ya kusawazisha, katika kila nafasi.", + "rlp-term": "Kiambishi awali cha urefu kinachojirudia (RLP)", + "rlp-definition": "kiwango cha usimbaji kilichoundwa na wasanifu wa Ethereum ili kusimba na kusawazisha vitu (miundo ya data) ya utata na urefu usio na mpangilio.", + "rollups-term": "Unda-mpya", + "rollups-definition": "Aina ya safu ya 2 suluhisho la kuongeza kiwango ambalo hulinganisha miamala mingi na kuziwasilisha kwa mnyororo mkuu wa Ethereum katika muamala mmoja. Hii inaruhusu kupunguzwa kwa gharama ya gesi na kuongezeka kwa muamala. Kuna matoleo ya Optimistic na Zero-knowledge ambayo hutumia mbinu tofauti za usalama kutoa faida hizi za hatari. Mengi zaidi kuhusu rollups.", + "rpc-term": "Wito wa utaratibu wa mbali (RPC)", + "rpc-definition": "RPC inaruhusu kompyuta moja kuomba data au kitendo kutoka kwa nyingine kupitia mtandao, kama vile kuomba maelezo kwa kutumia rimoti.", + "sha-term": "Linda kanuni za Hash (SHA)", + "sha-definition": "Familia ya chaguo za kukokotoa za hashi za kriptografia zilizochapishwa na Taasisi ya Kitaifa ya Viwango na Teknolojia (NIST).", + "serialization-term": "Mpangilio wa data katika mfumo maalum", + "serialization-definition": "Mchakato wa kubadilisha muundo wa data kuwa mfuatano wa baiti.", + "sequencer-term": "mratibu wa mfuatano", + "sequencer-definition": "Sequencer ni mpango unaowajibika kwa kuagiza miamala katika mtandao wa kiambajengo, haswa ndani ya suluhu za kuongeza safu ya Tabaka la 2.", + "shard-term": "Kigae / mnyororo wa vigae", + "shard-definition": "Minyororo ya Shard ni sehemu tofauti za jumla ya kiambajengo ambazo seti ndogo za waidhinishaji zinaweza kuwajibika. Hapo awali hii ilikusudiwa kuwa njia ambayo Ethereum ilipanda hadi mamilioni ya miamala kwa sekunde, lakini sasa imeondolewa na maendeleo ya haraka ya kuongeza viwango kwa kutumia rollups.", + "sidechain-term": "Sidechain", + "sidechain-definition": "Suluhisho la kuongeza ukubwa linalotumia mnyororo tofauti wenye sheria za maafikiano tofauti, mara nyingi kwa haraka. Daraja linahitajika ili kuunganisha minyororo hii ya kando na Mainnet. Rollups pia hutumia minyororo ya pembeni, lakini hufanya kazi kwa ushirikiano na Mainnet badala yake. Mengi zaidi kwenye sidechains.", + "signing-term": "Kutia sahihi", + "signing-definition": "Kuonyesha kwa njia ya kriptografia kwamba muamala uliidhinishwa na mmiliki wa ufunguo maalum wa faragha.", + "singleton-term": "Singleton", + "singleton-definition": "Neno la programu za kompyuta linaloelezea kitu ambacho mfano mmoja tu unaweza kuwepo.", + "slasher-term": "Slasher", + "slasher-definition": "Slasher ni huluki ambayo huchanganua uthibitisho unaotafuta makosa yanayoweza kupunguzwa. Kufyeka hutangazwa kwa mtandao, na mpendekezaji wa kitalu anayefuata anaongeza uthibitisho kwenye kitalu. Kisha anayependekeza kitalu hupokea thawabu kwa kufyeka kithibitishaji hasidi.", + "slot-term": "Yanayopangwa", + "slot-definition": "Kipindi cha muda (sekunde 12) ambapo vitalu vipya vinaweza kupendekezwa na kithibitishaji katika uthibitisho wa hisa. Nafasi inaweza kuwa tupu. Nafasi 32 zinaunda zama. Mengi zaidi kuhusu uthibitisho wa uwekaji dhamana.", + "smart-contract-term": "Mkataba nadhifu", + "smart-contract-definition": "Mkataba mahiri ni mpango ambao hutekeleza makubaliano kiotomatiki kwenye kiambajengo, kama vile mkataba wa kidigitali unaojitosheleza. Utangulizi wa mikataba mahiri.", + "snark-term": "SNARK", + "snark-definition": "Ufupi kwa \"hoja fupi isiyoingiliana ya maarifa\", SNARK ni aina ya uthibitisho usio na maarifa. Mengi zaidi kuhusu uboreshaji wa zero knowledge.", + "soft-fork-term": "Uma laini", + "soft-fork-definition": "Tofauti katika blockchain ambayo hutokea wakati sheria za makubaliano zinapobadilika. Kinyume na uma ngumu, uma laini unaendana kwa nyuma; nodi zilizoboreshwa zinaweza kuhalalisha vizuizi vilivyoundwa na nodi zisizosasishwa mradi tu zinafuata sheria mpya za makubaliano.", + "solidity-term": "Uimara", + "solidity-definition": "Lugha ya kiutaratibu (ya lazima) ya programu yenye sintaksia inayofanana na JavaScript, C++, au Java. Lugha maarufu na inayotumiwa sana kwa mikataba mahiri ya Ethereum. Imeundwa na Dk. Gavin Wood. Mengi zaidi kuhusu Mshikamano.", + "solidity-inline-assembly-term": "Mkutano wa ndani wa Solidity", + "solidity-inline-assembly-definition": "EVM lugha ya mkusanyiko katika programu ya Solidity. Usaidizi wa Solidity kwa mkusanyiko wa ndani hurahisisha kuandika shughuli fulani.", + "stablecoin-term": "Sarafu-imara", + "stablecoin-definition": "Sarafu mahiri ni aina ya sarafu ya kidigitali iliyobuniwa kuwa na thamani dhabiti, ambayo mara nyingi huwekwa kwenye sarafu au bidhaa (kama vile dola ya Marekani), ili kupunguza kubadilikabadilika kwa bei. Mengi zaidi kuhusu sarafu mahiri.", + "staking-term": "Kuweka dhamana", + "staking-definition": "Inaweka idadi ya etha (dau lako) ili kuwa kihalalishaji na kulinda mtandao. Mthibitishaji hukagua shughuli na kupendekeza kkuzuia chini ya uthibitisho wa makubaliano. Staking inakupa motisha ya kiuchumi ya kutenda kwa manufaa ya mtandao. Utapata zawadi kwa kutekeleza jukumu lako la kithibitishaji, lakini utapoteza viwango tofauti vya ETH usipofanya hivyo. Mengi zaidi kuhusu Ethereum staking.", + "staking-pool-term": "Kuunganisha bwawa", + "staking-pool-definition": "ETH iliyojumuishwa ya zaidi ya kidau kimoja cha Ethereum, iliyotumika kufikia 32 ETH inayohitajika kuwezesha seti ya funguo za kihalali. mtoa huduma wa nodi hutumia funguo hizi kushiriki katika makubaliano na zawadi za kitalu hugawanywa miongoni mwa wadau wanaochangia. Mabwawa ya staking au ugawaji wa majukumu sio asili ya itifaki ya Ethereum, lakini masuluhisho mengi yamejengwa na jumuiya. Mengi zaidi kuhusu staking zilizokusanywa.", + "stark-term": "STARK", + "stark-definition": "Ufupi wa \"hoja ya uwazi ya maarifa\", STARK ni aina ya uthibitisho wa zero knowledge. Mengi zaidi kuhusu uboreshaji wa zero knowledge.", + "state-term": "State", + "state-definition": "Muhtasari wa mizani yote na data kwa wakati fulani kwenye kiambajengo, kwa kawaida inarejelea hali kwenye kitalu fulani.", + "state-channels-term": "Ugavi na Utoaji wa Eth {#eth-supply-and-issuance}", + "state-channels-definition": "Suluhisho la safu 2 ambapo kituo kimeundwa kati ya washiriki, ambapo wanaweza kufanya miamala kwa uhuru na kwa bei nafuu. Ni muamala pekee wa kusanifu kituo na kufunga kituo ndio hutumwa kwa Mainnet. Hii inaruhusu uboreshaji wa juu sana wa muamala, lakini inategemea kujua idadi ya washiriki mbele na kufunga pesa. Mengi zaidi njia za malipo nje ya mnyororo.", + "supermajority-term": "Walio wengi zaidi", + "supermajority-definition": "Walio wengi ni neno linalotolewa kwa kiasi kinachozidi 2/3 (66%) ya jumla ya ether iliyowekwa kwenye hisa inayolinda Ethereum. Kura ya walio wengi inahitajika ili vitalu viweze kukamilishwa kwenye Mnyoror wa Beacon.", + "sybil-attack-term": "Shambulio la Sybil", + "sybil-attack-definition": "Mashambulizi ya Sybil yanarejelea binadamu mmoja mmoja anayehadaa mfumo kufikiria kuwa wao ni watu wengi ili kuongeza ushawishi wao.", + "syncing-term": "Usawazishaji", + "syncing-definition": "Mchakato wa kupakua toleo zima la hivi karibuni la mnyororo wa bloku kwenye nodi.", + "sync-committee-term": "Kamati ya usawazishaji", + "sync-committee-definition": "Kamati ya kusawazisha ni kikundi kilichochaguliwa bila mpangilio cha vithibitishaji ambacho huhuisha kila ~ saa 27. Kusudi lao ni kuongeza saini zao kwa vichwa halali vya vitalu. Kamati za kusawazisha huruhusu wateja wepesi kufuatilia kichwa cha kiambajengo bila kuhitaji kufikia seti nzima ya kithibitishaji.", + "szabo-term": "Szabo", + "szabo-definition": "Dhehebu la ether. szabo 1 = 1012 wei. szabo 106 = ether 1.", + "terminal-total-difficulty-term": "Ugumu kamili wa mwisho (TTD)", + "terminal-total-difficulty-definition": "Ugumu wa jumla ni jumla ya ugumu wa uchimbaji wa Ethash kwa vitalu vyote hadi sehemu fulani maalum kwenye kiambajengo. Ugumu wa jumla ni thamani mahususi kwa ugumu wa jumla ambao ulitumika kama kichochezi cha wateja wa utekelezaji kuzima uchimbaji wao na kuzuia utendakazi wa porojo zinazowezesha mtandao kubadilika hadi uthibitisho wa dau. Haifai tena kwa sababu Ethereum ilihamia uthibitisho wa hisa.", + "testnet-term": "Testnet", + "testnet-definition": "Fupi la \"mtandao wa majaribio,\" mtandao unaotumiwa kuiga tabia ya mtandao mkuu wa Ethereum.", + "token-term": "Tokeni", + "token-definition": "Dhamana ya mtandaoni inayoweza kuuzwa iliyofafanuliwa katika mikataba mahiri kwenye kiambajengo cha Ethereum.", + "token-factory-term": "Kiwanda cha tokeni", + "token-factory-definition": "Kiwanda cha tokeni ni mkataba-erevu unaowezesha uundaji wa tokeni ndani ya kiwango maalum, kama vile ERC-20, ERC-721, au ERC-1155. Mkataba-erevu hufanya kazi kama kiolezo, kuruhusu watumiaji kupeleka tokeni mpya zenye vigezo maalum kama jina, alama, usambazaji, na utendakazi wa ziada bila kuunda mkataba-erevu mpya kutoka mwanzo.", + "transaction-term": "Miamala", + "transaction-definition": "Data iliyowekwa kwa Ethereum kiambajengo iliyotiwa saini na akaunti asili, inayolenga anwani mahususi. Muamala una metadata kama vile kikomo cha gharama ya muamala kwa muamala huo. Mengi zaidi kuhusu miamala.", + "transaction-fee-term": "Ada ya muamala", + "transaction-fee-definition": "Ada unayohitaji kulipa wakati wowote unapotumia mtandao wa Ethereum. Mifano ni pamoja na kutuma pesa kutoka kwa pochi au mwingiliano wa dapp, kama vile kubadilishana tokeni au kununua kitu kinachoweza kukusanywa. Unaweza kufikiria hii kama malipo ya huduma. Ada hii itabadilika kulingana na jinsi mtandao ulivyo na shughuli nyingi. Hii ni kwa sababu waidhinishaji, watu walio na jukumu la kuchakata muamala wako, wana uwezekano wa kutanguliza malipo kwa ada ya juu - kwa hivyo msongamano unalazimisha bei kupanda.

Katika kiwango cha kiufundi, ada yako ya muamala inahusiana na kiasi gani cha gesi muamala wako unahitaji.

Kupunguza ada za miamala ni suala la riba kubwa kwa sasa. Tazama Safu ya 2.", + "trust-assumptions-term": "Dhana za uaminifu", + "trust-assumptions-definition": "Mawazo ya kutegemewa ni imani za kimsingi kuhusu usalama na kutegemewa kwa mfumo, zinazoongoza kile tunachoamini ili mfumo ufanye kazi.", + "trustlessness-term": "Hali ya kutokuwa na uaminifu", + "trustlessness-definition": "Uwezo wa mtandao kusuluhisha miamala bila mhusika yeyote anayehitaji kumwamini mtu mwingine.", + "turing-complete-term": "Turing kumekamilika", + "turing-complete-definition": "Dhana iliyopewa jina la mwanahisabati wa Kiingereza na mwanasayansi wa kompyuta Alan Turing - mfumo wa sheria za upotoshaji wa data (kama vile seti ya maagizo ya kompyuta, lugha ya programu au kiotomatiki cha simu za mkononi) inasemekana kuwa \"Turing kamili\" au \"kikokotozi zima\" ikiwa inaweza kutumika kuiga mashine yoyote ya Turing.", + "validator-term": "Mthibitishaji", + "validator-definition": "nodi katika uthibitisho wa hisa unaohusika na kuhifadhi data, kuchakata miamala na kuongeza vizuizi vipya kwenye kiambajengo. Ili kuamilisha programu ya kiidhinisha, unahitaji kuwa na uwezo wa hisa 32 ETH. Mengi zaidi kuhusu kuweka hisa kwenye Ethereum.", + "validator-lifecycle-term": "Mzunguko wa maisha ya mthibitishaji", + "validator-lifecycle-definition": "Msururu wa hali ambazo kiidhinishaji kinaweza kuwepo. Hizi ni pamoja na:

  • zilizowekwa: Angalau ETH 32 zimewekwa kwa mkataba wa amana na mthibitishaji
  • inasubiri: kiidhinishi yumo kwenye foleni ya kuwezesha
  • iliyoidhinishwa na mtandao uliopo unaosubiri kutumika kwa sasa. kuthibitisha na kupendekeza vizuizi
  • kufyeka: aliyeidhinisha ametenda vibaya na anapunguzwa
  • kutoka: aliyeidhinisha amealamishwa kwa kuondoka kwenye mtandao, ama kwa hiari au kwa sababu ameondolewa.
", + "validity-proof-term": "Uthibitisho wa uhalali", + "validity-proof-definition": "Muundo wa usalama wa masuluhisho fulani ya safu 2 ambapo, ili kuongeza kasi, miamala inakusanywa katika makundi na kuwasilishwa kwa Ethereum katika muamala mmoja. Uhesabuji wa muamala unafanywa nje ya mnyororo na kisha kutolewa kwa mnyororo mkuu na uthibitisho wa uhalali wao. Njia hii huongeza kiasi cha miamala inayowezekana wakati wa kudumisha usalama. Baadhi ya rollups hutumia uthibitisho wa ulaghai. Mengi zaidi kuhusu uboreshaji wa maarifa sifuri.", + "validium-term": "Validium", + "validium-definition": "Suluhisho la nje ya mnyororo ambalo hutumia uthibitisho wa uhalali ili kuboresha utumaji wa muamala. Tofauti na Ziro-maarifa yanayokunjwa, data ya validium haijahifadhiwa kwenye safu ya 1 ya Mainnet. Mengi zaidi kuhusu validium.", + "vyper-term": "Vyper", + "vyper-definition": "Lugha ya programu ya kiwango cha juu yenye syntax kama ya Python. Inakusudiwa kupata karibu na lugha safi ya utendaji. Iliyoundwa na Vitalik Buterin. Mengi zaidi kuhusu Vyper.", + "wallet-term": "Pochi", + "wallet-definition": "Pochi ni zana ya kidijitali ya kuhifadhi, kutuma na kupokea sarafu ya kidijitali, kama vile pochi ya mtandaoni ya pesa zako mtandaoni. Mengi zaidi kuhusu pochi za Ethereum.", + "web2-term": "Web2", + "web2-definition": "Ni mtandao wa sasa, unaolenga maudhui yanayozalishwa na mtumiaji na mitandao ya kijamii ambayo inadhibitiwa na makampuni machache. Web3 ni imani ya siri kwamba watumiaji wanapaswa kudhibiti data na miamala yao badala yake.", + "web3-term": "Wavuti3", + "web3-definition": "Web3 ni mtandao mpya wenye kiambajengo, ambapo watumiaji hudhibiti data na miamala yao, si makampuni. Hakuna haja ya kushirikisha habari yoyote ya kibinafsi. Mengi kwenye web3.", + "wei-term": "Wei", + "wei-definition": "Yeye ndiye thamani ndogo zaidi ya etha. 1018 wei = etha 1.", + "wrapped-token-term": "Tokeni iliyofungwa", + "wrapped-token-definition": "Tokeni inayotokana na kiambajengo ambayo inawakilisha sarafu nyingine ya kidigitali au mali kwenye mtandao tofauti. Kwa mfano, Ether Iliyofungwa (WETH) inawakilisha Ether(ETH) katika umbizo ambalo linatii kiwango cha tokeni cha Ethereum cha ERC-20. tokeni bora imefungwa kwa usalama na mkataba mahiri, na tokeni sawa na iliyofungwa inaundwa. Utaratibu huu huwezesha mwingiliano ndani na kati ya minyororo ya kuzuia, kuruhusu mali kama ETH kutumika bila mshono katika programu zilizogatuliwa huku zikihifadhi thamani yake.", + "zero-address-term": "Anwani zero", + "zero-address-definition": "Anwani ya Ethereum, inayojumuisha sifuri kabisa, ambayo hutumiwa mara kwa mara kama anwani ya kuondoa tokeni kwenye mzunguko unaomilikiwa. Tofauti hutolewa kati ya tokeni zilizoondolewa rasmi kwenye faharasa ya mkataba mahiri kupitia njia ya burn() na zile zinazotumwa kwa anwani hii.", + "zk-proof-term": "Uthibitishaji wa Zero-knowledge", + "zk-proof-definition": "Uthibitishaji wa zero-knowledge ni mbinu ya siri ambayo inaruhusu mtu binafsi kuthibitisha kuwa taarifa ni kweli bila kuwasilisha taarifa yoyote ya ziada. Mengi zaidi kuhusu uboreshaji wa zero-knowledge .", + "zk-rollup-term": "''Kuunganisha kwa ujanja wa kukosa maarifa.''", + "zk-rollup-definition": "kuchapisha kwa miamala inayotumia uthibitisho wa uhalali ili kutoa ongezeko la safu ya 2 huku ukitumia usalama uliotolewa na Mainnet (safu ya 1). Ingawa haziwezi kushughulikia aina changamano za miamala, kama vile mipango yenye matumaini, hazina matatizo ya kusubiri kwa sababu miamala ni halali inapowasilishwa. Mengi zaidi kuhusu uboreshaji wa zero-knowledge." +} diff --git a/src/intl/sw/learn-quizzes.json b/src/intl/sw/learn-quizzes.json new file mode 100644 index 00000000000..420992abb30 --- /dev/null +++ b/src/intl/sw/learn-quizzes.json @@ -0,0 +1,698 @@ +{ + "add-quiz": "Ongeza swali/chemshabongo", + "average-score": "Wastani wa alama:", + "basics": "Msingi wa Ethereum", + "basics-description": "Sehemu hii inahusika na dhana msingi za Ethereum, kuhakikisha una msingi imara.", + "completed": "Kamilika:", + "community-stats": "Takwimu za jamii", + "contribute": "Changia kwenye maktaba yetu.", + "correct": "Sahihi", + "explanation": "Maelezo", + "next-question": "Swali lingine", + "next-quiz": "Jaribio lijalo", + "question-number": "Nambari ya swali:", + "page-assets-merge": "Muungano", + "passed": "Umepita kwenye jaribio!", + "questions": "Maswali", + "questions-answered": "Maswali ambayo yamejibiwa:", + "quizzes-subtitle": "Gundua jinsi uelewaji wako wa Ethereum na sarafu za tarakimu ulivyo. Je, uko tayari kuwa mtaalamu?", + "retry": "Kiwango cha majaribio ya kurudia:", + "score": "Alama", + "see-results": "Angalia matokeo", + "share-results": "Shiriki matokeo", + "start": "Anza", + "submit-answer": "Kagua jibu", + "test-your-knowledge": "Pima uelewaji wako wa Ethereum", + "try-again": "Jaribu tena", + "using-ethereum": "Utumizi wa Ethereum", + "using-ethereum-description": "Chunguza matumizi halisi ya Ethereum na gundua jinsi jukwaa hili la mnyororo wa taarifa la mapinduzi linavyogeuza muundo wa kampuni mbalimbali. Hii ni njia nzuri ya kuhakikisha unaelewa vitu vizuri kabla ya kuanza kutumia sarafu za tarakimu kwa vitendo.", + "want-more-quizzes": "Unataka kuona majaribio zaidi hapa?", + "your-results": "Matokeo yako", + "your-total": "Jumla ya alama zako", + "what-is-ethereum-1-prompt": "Tofauti kubwa kati ya Ethereum na Bitcoin ni:", + "what-is-ethereum-1-a-label": "Ethereum haikubali kufanya malipo kwa watu wengine", + "what-is-ethereum-1-a-explanation": "Zote Bitcoin na Ethereum zinatoa ruhusa kufanya malipo kwa watu wengine.", + "what-is-ethereum-1-b-label": "Unaweza kuendesha maombi ya kompyuta za kompyuta kwenye Ethereum", + "what-is-ethereum-1-b-explanation": "Ethereum inaweza kuongezewa maombi ya kompyuta. Hii ina maana unaweza kuweka maombi yoyote ya kompyuta kwenye mnyororo wa taarifa ya Ethereum.", + "what-is-ethereum-1-c-label": "Unaweza kuendesha maombi ya kompyuta za kompyuta kwenye Bitcoin", + "what-is-ethereum-1-c-explanation": "Tofauti na Ethereum, Bitcoin haiwezi kuongezewa maombi ya kompyuta na haiwezi kuendesha maombi yoyote ya kompyuta.", + "what-is-ethereum-1-d-label": "Zina nembo tofauti", + "what-is-ethereum-1-d-explanation": "Zina nembo tofauti! Lakini hii sio tofauti kubwa zaidi kati yao.", + "what-is-ethereum-2-prompt": "Sarafu ya asili ya Ethereum inaitwa:", + "what-is-ethereum-2-a-label": "Ether", + "what-is-ethereum-2-a-explanation": "Ether ni sarafu ya tarakimu asili ya mfumo wa Ethereum.", + "what-is-ethereum-2-b-label": "Ethereum", + "what-is-ethereum-2-b-explanation": "Ethereum ni mnyororo wa taarifa, lakini sarafu yake asili sio Ethereum. Hii ni dhana potofu ya kawaida.", + "what-is-ethereum-2-c-label": "Sarafu ya Ether", + "what-is-ethereum-2-c-explanation": "Tofauti na sarafu nyingi za tarakimu, sarafu asili ya Ethereum haina neno 'sarafu' kwenye jina.", + "what-is-ethereum-2-d-label": "Bitcoin", + "what-is-ethereum-2-d-explanation": "Bitcoin (B kubwa) ilikuwa mnyororo wa taarifa ya kwanza kuundwa, wakati bitcoin (b ndogo) ni sarafu yake asili.", + "what-is-ethereum-3-prompt": "Nani anaendesha Ethereum?", + "what-is-ethereum-3-a-label": "Wasanidi programu", + "what-is-ethereum-3-a-explanation": "Waendelezaji ni muhimu katika kuunda na kuboresha Ethereum, lakini wao si kundi linalosimamia Ethereum.", + "what-is-ethereum-3-b-label": "Wachimbaji", + "what-is-ethereum-3-b-explanation": "Uchimbaji haujafinikiwa tangu muungano. Hakuna tena 'watu wanaofanya uchimbaji' kwenye Ethereum.", + "what-is-ethereum-3-c-label": "Taasisi ya Ethereum", + "what-is-ethereum-3-c-explanation": "Taasisi ya Ethereum haina jukumu kubwa katika uendeshaji wa kila siku wa vifaa vya kitarakimu wa Ethereum.", + "what-is-ethereum-3-d-label": "Yeyote anayeendesha nodi", + "what-is-ethereum-3-d-explanation": "Yeyote anayeendesha nodi ni sehemu muhimu ya miundombinu ya Ethereum. Ikiwa bado haujafanya hivyo, fikiria kuendesha nodi ya Ethereum.", + "what-is-ethereum-4-prompt": "Tangu Ethereum ilipozinduliwa, ni mara ngapi ilikuwa hawala mtandaoni?", + "what-is-ethereum-4-a-label": "Kamwe", + "what-is-ethereum-4-a-explanation": "Ethereum haijawahi kuwa offline kabisa (kuacha kuzalisha blocks) tangu ilipoanza kufanya kazi.", + "what-is-ethereum-4-b-label": "Mwanzo", + "what-is-ethereum-4-c-label": "Mara nne", + "what-is-ethereum-4-d-label": "Zaidi ya mara kumi", + "what-is-ethereum-5-prompt": "Ethereum inatumia umeme mwingi kuliko:", + "what-is-ethereum-5-a-label": "Uchimbaji wa Dhahabu", + "what-is-ethereum-5-a-explanation": "Uchimbaji wa dhahabu hutumia takriban terawatt-saa 131 kwa mwaka. Ethereum hutumia takriban terawatt-saa 0.0026 kwa mwaka.", + "what-is-ethereum-5-b-label": "Netflix", + "what-is-ethereum-5-b-explanation": "Netflix hutumia takriban terawatt-saa 0.451 kwa mwaka. Ethereum hutumia takriban terawatt-saa 0.0026 kwa mwaka.", + "what-is-ethereum-5-c-label": "PayPal", + "what-is-ethereum-5-c-explanation": "PayPal hutumia takriban terawatt-saa 0.26 kwa mwaka. Ethereum hutumia takriban terawatt-saa 0.0026 kwa mwaka.", + "what-is-ethereum-5-d-label": "Hakuna kati ya zilizo hapo juu", + "what-is-ethereum-5-d-explanation": "Ethereum hutumia takriban terawatt-saa 0.0026 kwa mwaka. Chini ya uchimbaji wa dhahabu (~131 TWh/mwaka), Netflix (~0.451 TWh/mwaka), na Paypal (~0.26 TWh/mwaka).", + "what-is-ether-1-prompt": "Ether pia inajulikana kama:", + "what-is-ether-1-a-label": "ETC", + "what-is-ether-1-a-explanation": "ETC ndio tiketi ya kuchagua Ethereum Classic.", + "what-is-ether-1-b-label": "ETR", + "what-is-ether-1-b-explanation": "ETR si tiki ya ethER au sarafu ya kidigitali yoyote muhimu.", + "what-is-ether-1-c-label": "ETH", + "what-is-ether-1-c-explanation": "ETH ndio tiki ya ether kwenye Ethereum.", + "what-is-ether-1-d-label": "BTC", + "what-is-ether-1-d-explanation": "BTC ni tiki ya bitcoin kwenye mtandao wa Bitcoin.", + "what-is-ether-2-prompt": "Kwa Ethereum, ada za mtandao hulipwa kwa:", + "what-is-ether-2-a-label": "bitcoin", + "what-is-ether-2-a-explanation": "\"bitcoin\" ya herufi ndogo ni sarafu ya asili ya mtandao wa Bitcoin.", + "what-is-ether-2-b-label": "ETH", + "what-is-ether-2-b-explanation": "Ether (ETH) ni sarafu ya kidigitali ya asili ya Ethereum. Ada zote za mtandao kwenye Ethereum hulipwa kwa ETH.", + "what-is-ether-2-c-label": "USD", + "what-is-ether-2-c-explanation": "Haiwezekani kulipa ada za mtandao kwa Ethereum kwa USD (Dola za Marekani), au sarafu nyingine yoyote ya FIAT.", + "what-is-ether-2-d-label": "Ethereum", + "what-is-ether-2-d-explanation": "Ethereum ni mtandao, lakini ada za mtandao za Ethereum hulipwa kwa ETH.", + "what-is-ether-3-prompt": "Staking kwenye Ethereum husaidia kulinda mtandao kwa sababu:", + "what-is-ether-3-a-label": "Wadau wanaweza kupiga marufuku watu ikiwa hawapendi wanachofanya", + "what-is-ether-3-a-explanation": "Wadau hawawezi kuhakiki watumiaji kiholela.", + "what-is-ether-3-b-label": "Ikiwa mdau atajaribu kudanganya mtandao, ana hatari ya kupoteza ETH yake", + "what-is-ether-3-b-explanation": "Watumiaji hatarini kupoteza kiasi kikubwa cha ETH zao ikiwa wataonyeshwa kuwa na tabia mbaya dhidi ya mtandao. Hii inajulikana kama kufyeka.", + "what-is-ether-3-c-label": "Wadau huendesha kompyuta zenye nguvu ili kuonyesha uthibitisho wa kazi", + "what-is-ether-3-c-explanation": "Wadau hawahitaji maunzi yenye nguvu kuhatarisha ETH zao. Ethereum aliacha kutumia uthibitisho wa kazi katika The Merge.", + "what-is-ether-3-d-label": "Wadau hupitia KYC kabla ya kukubaliwa kama mthibitishaji", + "what-is-ether-3-d-explanation": "Kuweka pesa kwenye Ethereum hakuna ruhusa na hauhitaji KYC.", + "what-is-ether-4-prompt": "ETH inaweza kutumika kwa:", + "what-is-ether-4-a-label": "Kulipa ada za ununuzi kwenye Ethereum", + "what-is-ether-4-a-explanation": "Jibu hili ni sawa, lakini ni moja tu ya mambo mengi ambayo ETH inaweza kutumika.", + "what-is-ether-4-b-label": "Malipo yasiyodhibitiwa ya kutoka kwa wenzao", + "what-is-ether-4-b-explanation": "Jibu hili ni sawa, lakini ni moja tu ya mambo mengi ambayo ETH inaweza kutumika.", + "what-is-ether-4-c-label": "Dhamana kwa mikopo ya Sarafu Ya Kidigitali", + "what-is-ether-4-c-explanation": "Jibu hili ni sawa, lakini ni moja tu ya mambo mengi ambayo ETH inaweza kutumika.", + "what-is-ether-4-d-label": "Yote ya hapo juu", + "what-is-ether-4-d-explanation": "Shughuli za Ethereum haziwezi kukaguliwa, ETH inahitajika kufanya shughuli yoyote kwenye Ethereum, na ni muhimu kwa uthabiti wa mfumo ikolojia wa DeFi.", + "web3-1-prompt": "Web3 huruhusu watumiaji kumiliki mali za kidijitali kupitia:", + "web3-1-a-label": "Tokeni", + "web3-1-a-explanation": "Tokeni hutoa njia ya kuwakilisha vitengo vya thamani ambavyo vinaweza kubadilishana, vinavyomilikiwa na akaunti ya Ethereum. Ingawa zinawakilisha umiliki, kuna njia zaidi za kumiliki mali za kidijitali kwenye Ethereum.", + "web3-1-b-label": "NFTs", + "web3-1-b-explanation": "NFTs (Tokeni zisizoweza kubadilishana) zinatoa njia ya kuwakilisha kitu chochote cha kipekee kama mali inayotegemea Ethereum. Ingawa zinaonyesha umiliki, kuna njia nyingine nyingi za kumiliki mali za kidijitali kwenye Ethereum.", + "web3-1-c-label": "ENS", + "web3-1-c-explanation": "ENS (Huduma ya Jina la Ethereum) ni huduma ya kumtaja iliyogatuliwa kwa kiambajengo cha Ethereum. Ingawa zinawakilisha umiliki, kuna njia zaidi za kumiliki mali za kidijitali kwenye Ethereum.", + "web3-1-d-label": "Yote ya hapo juu", + "web3-1-d-explanation": "Chaguo zote hutoa njia za kumiliki mali za dijiti kwenye Ethereum. Tokeni, NFTs, na ENS zote ni njia za kuwakilisha umiliki wa mali za kidijitali.", + "web3-2-prompt": "Web1 ilisomwa pekee, Web2 inasomwa-kuandika, Web3 imefafanuliwa kama:", + "web3-2-a-label": "soma-andika-uza", + "web3-2-a-explanation": "Web3 haijaelezewa kwa njia hii.", + "web3-2-b-label": "soma-andika-hifadhi", + "web3-2-b-explanation": "Web3 haijaelezewa kwa njia hii.", + "web3-2-c-label": "soma-andika-miliki", + "web3-2-c-explanation": "Web3 huruhusu watumiaji kumiliki data zao na kwa hivyo imefafanuliwa kama 'soma-andika-miliki', uboreshaji wowote kwenye Web2's, ambayo ni 'soma-andika' tu.", + "web3-2-d-label": "soma-andika-nunua", + "web3-2-d-explanation": "Web3 haijaelezewa kwa njia hii.", + "web3-3-prompt": "Ni marudio gani ya tovuti ambayo hayategemei watoa huduma wengine wa malipo?", + "web3-3-a-label": "Web1", + "web3-3-a-explanation": "Web1 haikuwa na malipo asili, yaliyojengewa ndani.", + "web3-3-b-label": "Web2", + "web3-3-b-explanation": "Web2 haina malipo asili, yaliyojengewa ndani.", + "web3-3-c-label": "Wavuti3", + "web3-3-c-explanation": "Web3 ina malipo asili, yaliyojengewa ndani kwa kutumia sarafu za siri, kama vile ETH.", + "web3-3-d-label": "Yote ya hapo juu", + "web3-3-d-explanation": "Web1 na Web2 hazina malipo asili, yaliyojengewa ndani.", + "web3-4-prompt": "Neno 'Web3' lilianzishwa kwanza na:", + "web3-4-a-label": "Gavin Wood", + "web3-4-a-explanation": "Gavin Wood, mwanzilishi mwenza wa Ethereum, anasifiwa kwa kubuni neno Web3 muda mfupi baada ya Ethereum kuzinduliwa mwaka wa 2015.", + "web3-4-b-label": "Steve Jobs", + "web3-4-b-explanation": "Steve Jobs hakutunga msemo ‘Web3’.", + "web3-4-c-label": "Vitalik Buterin", + "web3-4-c-explanation": "Vitalik Buterin, ingawa mwanzilishi wa awali wa Ethereum, hakuunda neno 'Web3'.", + "web3-4-d-label": "Elon Musk", + "web3-4-d-explanation": "Elon Musk hakuunda maneno 'Web3'.", + "web3-5-prompt": "Unaweza kuwa na njia moja ya kuingia, isiyoweza kudhibiti udhibiti kwenye wavuti kupitia matumizi ya:", + "web3-5-a-label": "Ingia kwa kutumia Facebook", + "web3-5-a-explanation": ".", + "web3-5-b-label": "Ingia kwa kutumia Google", + "web3-5-b-explanation": "Kuingia kwa kutumia Google hakuhimili udhibiti.", + "web3-5-c-label": "Ingia ukitumia Ethereum", + "web3-5-c-explanation": "Kuingia kwa kutumia Ethereum ndilo chaguo pekee ambalo ni sugu kwa udhibiti na kutumika kwenye programu yoyote ya tovuti.", + "web3-5-d-label": "Ingia ukitumia Twitter", + "web3-5-d-explanation": "Kuingia kwa kutumia Twitter hakuzuiwi na udhibiti.", + "wallets-1-prompt": "Aina salama zaidi ya mkoba ni:", + "wallets-1-a-label": "Mkoba ya simu", + "wallets-1-a-explanation": "Mkoba wa simu hushikilia funguo za faragha kwenye simu ya mkononi, ambayo kwa kawaida ina miunganisho ya intaneti, na ambayo inaweza kuathiriwa na programu nyingine.", + "wallets-1-b-label": "Mkoba wa vifaa", + "wallets-1-b-explanation": "Vifunguo vya faragha vya mkoba wa vifaa huhifadhiwa kwenye kifaa maalum ambacho kinaweza kuwekwa nje ya mtandao na kutengwa na programu zingine kwenye vifaa vyako.", + "wallets-1-c-label": "Mkoba wa tovuti", + "wallets-1-c-explanation": "Mkoba wa tovuti zina usalama mdogo kuliko mkoba wa vifaa kwa sababu funguo za faragha huhifadhiwa kwenye kifaa kilichounganishwa kwenye mtandao.", + "wallets-1-d-label": "Mkoba wa deskitopu", + "wallets-1-d-explanation": "Mkoba wa mezani hushikilia funguo za kibinafsi kwenye diski kuu ya kompyuta, ambayo kwa kawaida ina miunganisho ya mtandao, na ambayo inaweza kuathiriwa na programu nyingine.", + "wallets-2-prompt": "Je, unapaswa kuhifadhi vipi maneno yako ya faragha?", + "wallets-2-a-label": "Katika picha kwenye simu yako", + "wallets-2-a-explanation": "Hili sio chaguo salama zaidi. Ikiwa picha hii itapakiwa kwenye hifadhi ya wingu basi mdukuzi hupata picha hii na kupata ufikiaji wa akaunti yako.", + "wallets-2-b-label": "Katika faili kwenye kompyuta yako", + "wallets-2-b-explanation": "Hili sio chaguo salama zaidi. wadukuzi wanazidi kutafuta taarifa zinazohusiana na sarafu ya kidigitali kwenye vifaa lengwa. Ikiwa mdukuzi atafikia faili na maneno ya faragha yako atapata ufikiaji wa akaunti yako.", + "wallets-2-c-label": "Katika ujumbe wa maandishi kwa mwanafamilia anayeaminika", + "wallets-2-c-explanation": "Haupaswi kamwe kutuma maneno ya faragha yako kwa mtu yeyote. Ujumbe unaweza kukamatwa na mtu mwingine, na hata kama unamwamini mtu huyu kabisa, hujui ni nani anayeweza kufikia simu yake.", + "wallets-2-d-label": "Hakuna kati ya zilizo hapo juu", + "wallets-2-d-explanation": "Maneno ya faragha yako yanapaswa kuhifadhiwa kwa njia salama, bila ya mtandao. Kuandika kwenye karatasi mara nyingi hupendekezwa kwa sababu hii, lakini wasimamizi salama wa nenosiri ni mbadala nzuri.", + "wallets-3-prompt": "Je, unapaswa kumpa nani maneno yako ya faragha/funguo za faragha?", + "wallets-3-a-label": "Mtu unayemlipa", + "wallets-3-a-explanation": "Haupaswi kamwe kutoa kifungu chako cha faragha au funguo za kibinafsi kwa mtu yeyote. Badala yake, tuma tokeni kwa anwani zao za mkoba kupitia muamala.", + "wallets-3-b-label": "Ili kuingia kwenye dapp au mkoba", + "wallets-3-b-explanation": "Haupaswi kamwe kutoa maneno yako ya faragha/ funguo za kibinafsi ili kuingia kwenye mkoba wako au dapp.", + "wallets-3-c-label": "Wafanyakazi wa usaidizi", + "wallets-3-c-explanation": "Haupaswi kamwe kutoa maneno yako ya faragha/ funguo za kibinafsi kwa mtu yeyote anayedai kuwa mfanyakazi wa usaidizi. Yeyote anayekuuliza hii ni tapeli.", + "wallets-3-d-label": "Hakuna mtu", + "wallets-3-d-explanation": "Kwa kweli, haupaswi kamwe kutoa kifungu chako cha faragha au funguo za kibinafsi kwa mtu yeyote. Ikiwa unamwamini mtu aliye na ufikiaji kamili wa pesa zako (kama vile mwenzi), basi unaweza kuamua kushiriki habari hii naye.", + "wallets-4-prompt": "Mkoba na akaunti kwenye Ethereum ni kitu kimoja.", + "wallets-4-a-label": "Kweli", + "wallets-4-a-explanation": "Mkoba ni kiolesura cha kuona kinachotumiwa kuingiliana na akaunti ya Ethereum.", + "wallets-4-b-label": "Si kweli", + "wallets-4-b-explanation": "Mkoba ni kiolesura cha kuona kinachotumiwa kuingiliana na akaunti ya Ethereum.", + "security-1-prompt": "Kwa nini utumie manenosiri ya kipekee kwa akaunti zako zote?", + "security-1-a-label": "Ikiwa moja ya majukwaa ina uvunjaji wa data", + "security-1-a-explanation": "Jibu hili ni sahihi, lakini pia kuna majibu mengine sahihi.", + "security-1-b-label": "Iwapo mtu anayekutazama juu ya bega lako atakutumia nenosiri lako", + "security-1-b-explanation": "Jibu hili ni sahihi, lakini pia kuna majibu mengine sahihi.", + "security-1-c-label": "Iwapo programu hasidi, kama vile kikata funguo, itaiba nenosiri lako", + "security-1-c-explanation": "Jibu hili ni sahihi, lakini pia kuna majibu mengine sahihi.", + "security-1-d-label": "Yote ya hapo juu", + "security-1-d-explanation": "Majibu yote ni sahihi. Kutumia manenosiri ya kipekee ndiyo njia bora ya kuzuia mtu mwingine yeyote kufikia akaunti yako.", + "security-2-prompt": "Kufuatia Muunganisho, lazima ETH iboreshwe hadi ETH2.", + "security-2-a-label": "Kweli", + "security-2-a-explanation": "Huhitaji kuboresha ETH yako hadi ETH2. Hakuna ETH2 na hii ni simulizi ya kawaida inayotumiwa na walaghai.", + "security-2-b-label": "Si kweli", + "security-2-b-explanation": "Huhitaji kuboresha ETH yako hadi ETH2. Hakuna ETH2 na hii ni simulizi ya kawaida inayotumiwa na walaghai.", + "security-3-prompt": "Zawadi za ETH ni:", + "security-3-a-label": "Njia nzuri ya kupata ETH zaidi", + "security-3-a-explanation": "Zawadi za ETH ni ulaghai ulioundwa ili kuiba ETH yako na tokeni zingine. Kamwe sio njia nzuri ya kupata ETH zaidi.", + "security-3-b-label": "Daima halisi", + "security-3-b-explanation": "Zawadi za ETH si za kweli kamwe.", + "security-3-c-label": "Kawaida hufanywa na watu mashuhuri wa jamii", + "security-3-c-explanation": "Wanajamii mashuhuri hawafanyi zawadi za ETH. Walaghai hujifanya kuwa watu wanaowajua vyema, kama vile Elon Musk, wanatoa zawadi ili kuwapa ulaghai huo hisia ya uhalali.", + "security-3-d-label": "Kuna uwezekano mkubwa wa kuwa mlaghai", + "security-3-d-explanation": "Zawadi za ETH ni ulaghai kila wakati. Kuripoti na kupuuza walaghai ni bora.", + "security-4-prompt": "Miamala ya Ethereum inaweza kurudishwa nyuma.", + "security-4-a-label": "Kweli", + "security-4-a-explanation": "Miamala ya Ethereum haiwezi kurudishwa nyuma. Mtu yeyote anayekuambia vinginevyo anaweza kuwa anajaribu kukulaghai.", + "security-4-b-label": "Si kweli", + "security-4-b-explanation": "Miamala ya Ethereum haiwezi kurudishwa nyuma. Mtu yeyote anayekuambia vinginevyo anaweza kuwa anajaribu kukulaghai.", + "nfts-1-prompt": "NFTs zinafafanuliwa zaidi kama:", + "nfts-1-a-label": "mali ya kipekee ya digitali", + "nfts-1-a-explanation": "NFTs huwakilisha mali ya kipekee ya kidigitali.", + "nfts-1-b-label": "mchoro wa kidigitali", + "nfts-1-b-explanation": "NFTs huwakilisha mali ya kipekee ya kidijitali, hii kwa kawaida ni kazi ya sanaa ya digitali, lakini haikomei kwa sanaa.", + "nfts-1-c-label": "tiketi za matukio ya kipekee", + "nfts-1-c-explanation": "NFTs inawakilisha mali ya kipekee ya kidigitali, huu unaweza kuwa mfumo wa tiketi, lakini hauzuiliwi kwa tiketi pekee.", + "nfts-1-d-label": "mikataba inayofunga kisheria", + "nfts-1-d-explanation": "Ingawa mkataba wa kisheria unaweza kuwakilishwa kama NFT, NFTs sio mahususi kwa mikataba inayofunga kisheria.", + "nfts-2-prompt": "NFT mbili zinazowakilisha mchoro sawa ni kitu kimoja.", + "nfts-2-a-label": "Kweli", + "nfts-2-a-explanation": "NFTs hazifungiki. Hii inamaanisha hata kama zinawakilisha kipande cha sanaa ya kidigitali, bado zinaweza kutambulika kwa njia ya kipekee. Katika ulimwengu wa sanaa wa kitamaduni, hii inaweza kuwa sawa na asili na picha zilizochapishwa.", + "nfts-2-b-label": "Si kweli", + "nfts-2-b-explanation": "NFTs hazifungiki. Hii inamaanisha hata kama zinawakilisha kipande cha sanaa ya kidigitali, bado zinaweza kutambulika kwa njia ya kipekee. Katika ulimwengu wa sanaa wa kitamaduni, hii inaweza kuwa sawa na asili na picha zilizochapishwa.", + "nfts-3-prompt": "NFTs kawaida huwakilisha:", + "nfts-3-a-label": "Nenosiri la mkoba wako", + "nfts-3-a-explanation": "Hii ni hatari ya usalama na kwa ujumla ni wazo mbaya!", + "nfts-3-b-label": "Umiliki wa bidhaa ya kipekee ya kidigitali", + "nfts-3-b-explanation": "NFTs kwa kawaida huwakilisha umiliki wa bidhaa ya kipekee ya kidigitali.", + "nfts-3-c-label": "Salio lako la sasa la ETH", + "nfts-3-c-explanation": "Ts haiwezi kuwakilisha salio lako la ETH kiholela.", + "nfts-3-d-label": "Yote ya hapo juu", + "nfts-3-d-explanation": "NFTs kwa kawaida huwakilisha umiliki wa kipengee cha kipekee cha digitali, si salio la ETH au manenosiri ya mkoba.", + "nfts-4-prompt": "NFTs zimesaidia kuunda mpya:", + "nfts-4-a-label": "uchumi wa mtunzaji", + "nfts-4-a-explanation": "NFTs zilisaidia kuunda uchumi mpya kwa watayarishi, si wasimamizi.", + "nfts-4-b-label": "uchumi wa kaboni", + "nfts-4-b-explanation": "NFTs zilisaidia kuunda uchumi mpya kwa watayarishi, sio kaboni.", + "nfts-4-c-label": "uchumi wa muumbaji", + "nfts-4-c-explanation": "NFTs zilisaidia kuunda uchumi wa waundaji.", + "nfts-4-d-label": "uchumi wa doge", + "nfts-4-d-explanation": "NFTs zilisaidia kuunda uchumi mpya kwa watayarishaji, na wala si doge🐶.", + "nfts-5-prompt": "NFTs kwenye Ethereum ni hatari kwa mazingira", + "nfts-5-a-label": "Kweli", + "nfts-5-a-explanation": "Tangu The Merge (mpito hadi uthibitisho wa dhamana), muamala wowote umekuwa athari kidogo kwa mazingira.", + "nfts-5-b-label": "Si kweli", + "nfts-5-b-explanation": "Tangu The Merge (mpito hadi uthibitisho wa dhamana), muamala wowote umekuwa athari kidogo kwa mazingira.", + "rollups-1-prompt": "Mitandao ya kiambajengo ya Tabaka la 2 ni ya:", + "rollups-1-a-label": "Kuongeza Ethereum", + "rollups-1-a-explanation": "Kusudi la msingi la rollups na suluhu nyingine za safu ya 2 ni kuongeza uwezo Ethereum.", + "rollups-1-b-label": "Kufanya malipo", + "rollups-1-b-explanation": "Kusudi la msingi la rollups na suluhu nyingine za safu ya 2 ni kuongeza uwezo Ethereum.", + "rollups-1-c-label": "Kununua NFT", + "rollups-1-c-explanation": "Kusudi la msingi la rollups na suluhu nyingine za safu ya 2 ni kuongeza uwezo Ethereum.", + "rollups-1-d-label": "Kueneza madaraka ya Ethereum", + "rollups-1-d-explanation": "Kusudi la msingi la rollups na suluhu nyingine za safu ya 2 ni kuongeza uwezo Ethereum.", + "rollups-2-prompt": "Ili kuongeza ukubwa, mitandao mingi mbadala ya safu ya 1 imetoa kafara hasa kwa:", + "rollups-2-a-label": "Usalama", + "rollups-2-a-explanation": "Mitandao mingi mbadala ya Safu ya 1 inatoa kafara ya usalama na kitu kingine ili kuongeza ukubwa.", + "rollups-2-b-label": "Ugatuzi", + "rollups-2-b-explanation": "Mitandao mingi mbadala ya Safu ya 1 inatoa kafara ya ugatuaji na kitu kingine ili kuongeza ukubwa.", + "rollups-2-c-label": "Bei ya tokeni", + "rollups-2-c-explanation": "Bei ya tokeni haina athari yoyote kwenye uwezo wa kuongeza ukubwa.", + "rollups-2-d-label": "Usalama na ugatuaji", + "rollups-2-d-explanation": "Mitandao mingi mbadala ya safu ya 1 inatoa kafara ya usalama na ugatuaji ili kuongeza ukubwa.", + "rollups-3-prompt": "Ni ipi kati ya zifuatazo haizingatiwi kuwa safu ya 2?", + "rollups-3-a-label": "Validiums", + "rollups-3-a-explanation": "Validiums hazizingatiwi kuwa suluhisho za safu ya 2 kwa sababu hazipati usalama au upatikanaji wa data kutoka kwa Ethereum. Hili si jibu pekee sahihi.", + "rollups-3-b-label": "Minyororo ya pembeni", + "rollups-3-b-explanation": "Sidechains hazizingatiwi kuwa suluhisho za safu ya 2 kwa sababu hazipati usalama au upatikanaji wa data kutoka kwa Ethereum. Hili si jibu pekee sahihi.", + "rollups-3-c-label": "Blockchain mbadala za safu ya 1", + "rollups-3-c-explanation": "Blockchain mbadala za safu ya 1 hazizingatiwi kuwa suluhisho za safu ya 2. Hili si jibu pekee sahihi.", + "rollups-3-d-label": "Yote ya hapo juu", + "rollups-3-d-explanation": "Validiums, Sidechains, na blockchain mbadala za safu ya 1 hazizingatiwi kuwa suluhisho za safu ya 2 kwa sababu hazipati usalama au upatikanaji wa data kutoka kwa Ethereum.", + "rollups-4-prompt": "Kwa nini Ethereum haina safu ya 2 'rasmi'?", + "rollups-4-a-label": "Wasanidi programu wakuu wana shughuli nyingi wakifanya kazi kwenye Ethereum", + "rollups-4-a-explanation": "Hakuna mipango ya safu ya 2 'rasmi' kwenye Ethereum kwani tutanufaika na mbinu mbalimbali za kubuni suluhisho za safu ya 2.", + "rollups-4-b-label": "Kama L1, Ethereum hatimaye itafikia kuongeza ukubwa kwa wingi yenyewe", + "rollups-4-b-explanation": "Hakuna mipango ya safu ya 2 'rasmi' kwenye Ethereum kwani tutanufaika na mbinu mbalimbali za kubuni suluhisho za safu ya 2.", + "rollups-4-c-label": "Wasanidi programu wakuu bado wanajadili kati ya optimistic rollups na zk-rollups", + "rollups-4-c-explanation": "Hakuna mipango ya safu ya 2 'rasmi' kwenye Ethereum kwani tutanufaika na mbinu mbalimbali za kubuni suluhisho za safu ya 2.", + "rollups-4-d-label": "Ethereum itanufaika na mbinu mbalimbali za kubuni L2", + "rollups-4-d-explanation": "Hakuna mipango ya safu ya 2 'rasmi' kwenye Ethereum kwani tutanufaika na mbinu mbalimbali za kubuni suluhisho za safu ya 2.", + "merge-1-prompt": "Muungano ulihamisha Ethereum kwenye utaratibu gani wa makubaliano?", + "merge-1-a-label": "Ushahidi wa Kazi", + "merge-1-a-explanation": "Uthibitisho-wa-kazi ulikuwa utaratibu wa makubaliano uliotumika kabla ya Muungano.", + "merge-1-b-label": "Ushahidi wa Umiliki wa Hisa", + "merge-1-b-explanation": "Sahihi! Muungano ulihamisha Ethereum kwenye uthibitisho-wa-hisa.", + "merge-1-c-label": "Ushahidi wa Mamlaka", + "merge-1-c-explanation": "Ethereum haitumii, na haijawahi kutumia uthibitisho-wa-mamlaka kwenye Mtandao Mkuu wa Ethereum.", + "merge-1-d-label": "Yote ya hapo juu", + "merge-1-d-explanation": "Haitowezekana kwa Ethereum kuwa na taratibu zote hizi za makubaliano kwa wakati mmoja.", + "merge-2-prompt": "Muungano ulipunguza matumizi ya nishati ya Ethereum kwa:", + "merge-2-a-label": "50%", + "merge-2-a-explanation": "Matumizi ya nishati ya Ethereum yalipunguzwa kwa 99.95% baada ya Muungano kuwezesha mpito kutoka uthibitisho-wa-kazi hadi uthibitisho-wa-hisa.", + "merge-2-b-label": "62.5%", + "merge-2-b-explanation": "Matumizi ya nishati ya Ethereum yalipunguzwa kwa 99.95% baada ya Muungano kuwezesha mpito kutoka uthibitisho-wa-kazi hadi uthibitisho-wa-hisa.", + "merge-2-c-label": "90%", + "merge-2-c-explanation": "Matumizi ya nishati ya Ethereum yalipunguzwa kwa 99.95% baada ya Muungano kuwezesha mpito kutoka uthibitisho-wa-kazi hadi uthibitisho-wa-hisa.", + "merge-2-d-label": "99.95%", + "merge-2-d-explanation": "Matumizi ya nishati ya Ethereum yalipunguzwa kwa 99.95% baada ya Muungano kuwezesha mpito kutoka uthibitisho-wa-kazi hadi uthibitisho-wa-hisa.", + "merge-3-prompt": "Muungano ulitokea lini?", + "merge-3-a-label": "Septemba 15, 2022", + "merge-3-a-explanation": "Muungano ulitokea Septemba 15, 2022 saa 06:42:42 AM (UTC).", + "merge-3-b-label": "Desemba 1, 2020", + "merge-3-b-explanation": "Muungano ulitokea baadaye kuliko hivi. Desemba 1, 2020 ndipo Mnyororo Kioleza ulipozinduliwa.", + "merge-3-c-label": "Novemba 27 2013", + "merge-3-c-explanation": "Muungano ulitokea baadaye kuliko hivi. Novemba 27, 2013 ndipo karatasi nyeupe ya Ethereum ilipotolewa.", + "merge-3-d-label": "Oktoba 31, 2008", + "merge-3-d-explanation": "Muungano ulitokea baadaye kuliko hivi. Oktoba 31 ni siku ambapo Karatasi Nyeupe ya Bitcoin ilitolewa.", + "merge-4-prompt": "Muungano ulimaanisha watumiaji walipaswa kubadilisha ETH zao kwa ETH2:", + "merge-4-a-label": "Kweli", + "merge-4-a-explanation": "ETH haikubadilika wakati wowote kabla, wakati, au baada ya Muungano. Wazo la 'kuboresha' ETH kuwa ETH2 lilikuwa mbinu ya kawaida na wahalifu waovu kuwalaghai watumiaji.", + "merge-4-b-label": "Si kweli", + "merge-4-b-explanation": "ETH haikubadilika wakati wowote kabla, wakati, au baada ya Muungano. Wazo la 'kuboresha' ETH kuwa ETH2 lilikuwa mbinu ya kawaida na wahalifu waovu kuwalaghai watumiaji.", + "merge-5-prompt": "Safu ya makubaliano ya Ethereum zamani ilijulikana kama:", + "merge-5-a-label": "Ushahidi wa Kazi", + "merge-5-a-explanation": "Uthibitisho-wa-kazi ulikuwa utaratibu wa makubaliano uliotumika kabla ya Muungano.", + "merge-5-b-label": "Eth2", + "merge-5-b-explanation": "Kabla ya kubadilishwa jina na kuitwa safu ya makubaliano, awali iliitwa 'Eth2'.", + "merge-5-c-label": "Eth1", + "merge-5-c-explanation": "Eth1 lilikuwa jina la asili lililopewa safu ya utekelezaji, sio safu ya makubaliano.", + "merge-5-d-label": "Kuweka dhamana", + "merge-5-d-explanation": "Kuweka hisa ni kuweka ETH kwenye mkataba mahiri ili kusaidia kulinda mnyororo.", + "gas-1-prompt": "Nini ni ada ya gesi?", + "gas-1-a-label": "Ada inayohusishwa na miamala na utendakazi wa mikataba mahiri", + "gas-1-a-explanation": "Sahihi kiasi, ada za ggarama ya muamala zinawakilisha gharama ya miamala na utendakazi wa mikataba mahiri.", + "gas-1-b-label": "Kiasi cha gharama ya muamala inayotumiwa kufanya operesheni, ikiongezeka kwa gharama kwa kila kitengo cha gharama ya muamala", + "gas-1-b-explanation": "Sahihi kiasi. Ingawa ni kweli, sio jibu bora kutokana na chaguo.", + "gas-1-c-label": "Malipo ambayo yanajumuisha ada ya kipaumbele ili kuharakisha uchakataji wa muamala", + "gas-1-c-explanation": "Sahihi kiasi, jumla ya ada ya gharama ya muamala inajumuisha ada ya msingi na ada ya kipaumbele ambayo inaweza kuathiri kasi ya uchakataji wa muamala", + "gas-1-d-label": "Yote ya hapo juu", + "gas-1-d-explanation": "Ada za gharama ya muamala hujumuisha vipengele hivi vyote: hufidia hesabu, hutumika kwa miamala na mikataba mahiri, na zinaweza kujumuisha ada za kipaumbele za kujumuishwa kwa haraka.", + "gas-2-prompt": "Je, ni mkakati upi kati ya zifuatazo ambao ni Mkakati madhubuti wa kupunguza gharama ya muamala?", + "gas-2-a-label": "Utekelezaji wa shughuli katika vipindi vya msongamano mdogo", + "gas-2-a-explanation": "Shughuli za muda wakati wa saa zisizo na kilele zinaweza kupunguza gharama za muamala.", + "gas-2-b-label": "Shughuli za muda wakati wa saa zisizo na kilele zinaweza kupunguza gharama za miamala", + "gas-2-b-explanation": "Kusubiri bei ya gharama ya muamala ipungue ni mkakati halali kwa kuwa gharama ya muamala hubadilika-badilika kulingana na msongamano.", + "gas-2-c-label": "Kutumia safu 2 minyororo kwa ada ya chini", + "gas-2-c-explanation": "Suluhu za Tabaka 2 hupunguza ada na ni njia bora ya kuokoa kwenye gharama ya muamala.", + "gas-2-d-label": "Kwa kutumia mantiki changamano ya mkataba mahiri ambayo huongeza mahitaji ya hesabu", + "gas-2-d-explanation": "Mantiki tata ya mkataba mahiri huongeza gharama za miamala kwa kuhitaji ukokotoaji zaidi. Usanifu bora hupunguza hatua, uhifadhi na shughuli zisizohitajika ili kupunguza ada.", + "gas-3-prompt": "Ni nini husababisha ada za gharama ya muamala kuwa kubwa?", + "gas-3-a-label": "Kokotoo la mtandao linalozidi kiwango maalumu", + "gas-3-a-explanation": "Wakati ukokotoaji kwenye Ethereum unazidi kiwango cha juu, ada za gharama za muamala huongezeka, hasa katika vipindi vya juu vya shughuli kama vile dapps au NFT drops.", + "gas-3-b-label": "Vithibitishaji vinavyoongeza ada ya msingi wao wenyewe", + "gas-3-b-explanation": "Wathibitishaji hawaweki ada za msingi kwa mikono; zinarekebishwa na itifaki kulingana na mahitaji katika kiatalu cha awali.", + "gas-3-c-label": "Mikataba mahiri iliyoandikwa vizuri, iliyoboreshwa", + "gas-3-c-explanation": "Mantiki ya mikataba mahiri iliyoandikwa vizuri kama vile utumiaji mzuri wa hifadhi na vitanzi vinaweza kusababisha matumizi ya chini ya gharama ya muamala.", + "gas-3-d-label": "Ukosefu wa ETH inayopatikana kwenye mtandao", + "gas-3-d-explanation": "Gharama ya muamala hauathiriwi na kiasi cha ETH kinachopatikana kwenye mtandao.", + "gas-4-prompt": "Je, gharama za muamala husaidiaje kuweka Ethereum salama?", + "gas-4-a-label": "Kwa kuhamasisha wathibitishaji kutenda kwa uaminifu", + "gas-4-a-explanation": "Vithibitishaji hulipwa kwa njia chache, lakini ada za gesi kimsingi hukatisha tamaa barua taka na matumizi mengi ya rasilimali.", + "gas-4-b-label": "Kwa kukatisha tamaa barua taka na shughuli hasidi kwa gharama za kifedha", + "gas-4-b-explanation": "Ada za gesi hufanya barua taka au shughuli hasidi kuwa za gharama kubwa, kuzuia matumizi mabaya na kusaidia kudumisha utulivu wa mtandao.", + "gas-4-c-label": "Kwa kuhakikisha miamala inachakatwa kulingana na kipaumbele", + "gas-4-c-explanation": "Kipaumbele kinaweza kuamuliwa na ncha, sio ada za gesi zenyewe.", + "gas-4-d-label": "Kwa kuongeza jumla ya ETH katika mzunguko", + "gas-4-d-explanation": "Ada ya msingi (sehemu ya jumla ya ada ya gesi) huchomwa, na kupunguza ETH katika mzunguko, sio kuiongeza", + "gas-5-prompt": "Ni jinsi gani gesi inapigiwa mahesabu?", + "gas-5-a-label": "Bei ya gesi × saizi ya muamala", + "gas-5-a-explanation": "Ada za gesi zinategemea hesabu, sio saizi ya muamala.", + "gas-5-b-label": "Vitengo vya gesi vilivyotumika × (ada ya msingi + ada ya kipaumbele)", + "gas-5-b-explanation": "Ada za gesi huamuliwa kwa kutumia fomula: vitengo vya gesi vilivyotumika × (ada ya msingi + ada ya kipaumbele).", + "gas-5-c-label": "Saizi ya kizuizi × kikomo cha ncha ya mthibitishaji", + "gas-5-c-explanation": "Saizi ya kizuizi haihusiani moja kwa moja na fomula hii.", + "gas-5-d-label": "Ada ya msingi + ada ya kipaumbele + ncha", + "gas-5-d-explanation": "Ada ya msingi na ada ya kipaumbele ni sehemu ya fomula; ncha ndiyo ada ya kipaumbele.", + "daos-1-prompt": "Ni nini kweli kuhusu DAO?", + "daos-1-a-label": "DAO zinamilikiwa kwa pamoja kupitia tokeni za utawala", + "daos-1-a-explanation": "DAO zinamilikiwa kwa pamoja, lakini hiyo sio taarifa pekee sahihi.", + "daos-1-b-label": "Zinatawaliwa na wanachama wake", + "daos-1-b-explanation": "DAO zinatawaliwa na wanachama wake, lakini hiyo sio taarifa pekee sahihi.", + "daos-1-c-label": "Wanafanya kazi kuelekea dhamira ya pamoja", + "daos-1-c-explanation": "DAO zinafanya kazi kuelekea dhamira ya pamoja, lakini hiyo sio taarifa pekee sahihi.", + "daos-1-d-label": "Yote ya hapo juu", + "daos-1-d-explanation": "Sahihi, DAO ni shirika linalomilikiwa kwa pamoja, linalotawaliwa na blockchain ambalo linafanya kazi kuelekea dhamira ya pamoja.", + "daos-2-prompt": "Ni mifano gani ya vitendo ya jinsi ya kutumia DAO?", + "daos-2-a-label": "Itifaki zilizogatuliwa, wanachama wanapiga kura kuhusu masuala ya itifaki au jinsi ya kuendeleza bidhaa", + "daos-2-a-explanation": "DAO za Itifaki ni mfano mmoja, lakini DAO haziishii hapo.", + "daos-2-b-label": "Umiliki wa pamoja, k.m., kwa NFT au mali halisi", + "daos-2-b-explanation": "DAO za wakusanyaji ni mfano mmoja, lakini DAO haziishii hapo.", + "daos-2-c-label": "Miradi na ruzuku, unganisha mtaji na piga kura juu ya miradi ya kufadhili", + "daos-2-c-explanation": "DAO za miradi au ruzuku ni mfano mmoja, lakini DAO haziishii hapo.", + "daos-2-d-label": "Yote ya hapo juu", + "daos-2-d-explanation": "DAO inaweza kuwa na 'dhamira' nyingi.", + "daos-3-prompt": "Tofauti na mashirika ya jadi, DAO ni…", + "daos-3-a-label": "Kwa kawaida huwa na madaraja", + "daos-3-a-explanation": "DAO kawaida huwa tambarare, na zina demokrasia kamili.", + "daos-3-b-label": "Uwazi na wazi kabisa kuhusu shughuli zao", + "daos-3-b-explanation": "Shukrani kwa upigaji kura wa onchain, maamuzi ni wazi kwenye blockchain. Majadiliano na vipengele vingine vya mchakato wa kufanya maamuzi viko wazi kwa wanachama wote.", + "daos-3-c-label": "Inadhibitiwa na upande mmoja mkuu", + "daos-3-c-explanation": "Mabadiliko yanahitaji upigaji kura na wanachama. Huduma zinazotolewa hushughulikiwa kiotomatiki kwa njia iliyogatuliwa.", + "daos-3-d-label": "Imewekewa vizuizi kuhusu nani anaweza kupendekeza mabadiliko", + "daos-3-d-explanation": "Kawaida, kila mwanachama wa DAO anaweza kupendekeza mabadiliko.", + "daos-4-prompt": "Ni nini muhimu kuhusu mikataba mahiri kwa DAO?", + "daos-4-a-label": "Msimbo wa mkataba mahiri unaweza kurekebishwa", + "daos-4-a-explanation": "Mara tu mkataba unapokuwa hewani kwenye Ethereum, hakuna anayeweza kubadilisha sheria isipokuwa kwa kura. Hii inaruhusu DAO kuendeshwa na sheria ambazo ilipangiwa.", + "daos-4-b-label": "Ina mmiliki binafsi ambaye anabaki na mamlaka ya kufanya mabadiliko na kutuma kutoka hazina.", + "daos-4-b-explanation": "Hazina inafafanuliwa na mkataba mahiri. Ili kutumia pesa, idhini ya kikundi inahitajika.", + "daos-4-c-label": "Imani katika makubaliano yaliyosambazwa ya blockchain ya msingi", + "daos-4-c-explanation": "Ni muhimu kwa DAO kwamba blockchain ya msingi haiwezi kudanganywa. Makubaliano ya Ethereum yenyewe yamesambazwa na kuanzishwa vya kutosha kwa mashirika kuamini mtandao.", + "daos-4-d-label": "DAO hazihitaji mikataba mahiri", + "daos-4-d-explanation": "Uti wa mgongo wa DAO (mashirika yaliogatuliwa) ni Mkataba-erevu, ambao unafafanua sheria za shirika na pia kushikilia hazina ya kundi.", + "daos-5-prompt": "Ni utaratibu gani usiotumika kutawala DAO?", + "daos-5-a-label": "Uanachama-wa-tokeni", + "daos-5-a-explanation": "Utawala unaotegemea tokeni hutumiwa sana. Kwa kawaida hauna ruhusa kabisa na hutumiwa kutawala itifaki pana zilizogatuliwa na/au tokeni zenyewe.", + "daos-5-b-label": "Uanachama-wa-hisa", + "daos-5-b-explanation": "DAO zinazotegemea hisa zina ruhusa zaidi lakini bado ziko wazi. Mwanachama yeyote mtarajiwa anaweza kuwasilisha pendekezo la kujiunga na DAO, kwa kawaida akitoa heshima ya thamani fulani kwa njia ya tokeni au kazi.", + "daos-5-c-label": "Sifa za uanachanama", + "daos-5-c-explanation": "Tofauti na uanachama unaotegemea tokeni au hisa, DAO zinazotegemea sifa hazihamishi umiliki kwa wachangiaji. Wanachama wa DAO lazima wapate sifa kupitia ushiriki.", + "daos-5-d-label": "Bodi ya utendaji na usimamizi wa hazina ya offchain", + "daos-5-d-explanation": "Mbinu hii hutumia mifumo ya serikali kuu na isiyo wazi ya kutawala. Kinyume chake, DAOs hutumia mbinu za upigaji kura zinazoweza kuthibitishwa na usimamizi wa hazina ya onchain ili kuhakikisha uwazi na uwajibikaji.", + "staking-solo-1-prompt": "Je, ni kweli gani kuhusu kufyeka?", + "staking-solo-1-a-label": "Adhabu ya kuwa nje ya mtandao, zawadi zitaendelea tena ukirejea mtandaoni", + "staking-solo-1-a-explanation": "Kuwa nje ya mtandao hakusababishi kufyeka. Adhabu ndogo hutolewa kwa kuwa nje ya mtandao, na zawadi hurejeshwa mthibitishaji anaporejea mtandaoni na kurejesha uthibitishaji.", + "staking-solo-1-b-label": "Adhabu ya kuwa nje ya mtandao, aliyeidhinisha haruhusiwi mara moja kuthibitisha tena", + "staking-solo-1-b-explanation": "Kuwa nje ya mtandao hakusababishi kufyeka. Ingawa kufyeka kutasababisha mthibitishaji kupigwa marufuku kutoa uthibitisho tena na hatimaye kuondolewa kwa nguvu, kuwa nje ya mtandao hakusababisha kuondolewa kwenye mtandao.", + "staking-solo-1-c-label": "Adhabu kwa kukiuka sheria maalum za makubaliano, zawadi huanza tena baada ya kufyeka", + "staking-solo-1-c-explanation": "Kufyeka ni adhabu kubwa kwa kuvunja sheria maalum za maafikiano zinazoleta tishio kwa mtandao. Kwa hivyo, pindi kiidhinishi kinapopunguzwa, hakiruhusiwi mara moja kutoa uthibitisho zaidi, na hatimaye hutolewa kwa nguvu kutoka kwa mtandao na ETH iliyosalia itatolewa kwa mmiliki.", + "staking-solo-1-d-label": "Adhabu kwa kukiuka sheria maalum za makubaliano, mthibitishaji anazuiwa mara moja kushuhudia tena", + "staking-solo-1-d-explanation": "Kufyeka ni adhabu kubwa kwa kuvunja sheria maalum za maafikiano zinazoleta tishio kwa mtandao. Kwa hivyo, pindi kiidhinishi kinapopunguzwa, hakiruhusiwi mara moja kutoa uthibitisho zaidi, na hatimaye hutolewa kwa nguvu kutoka kwa mtandao na ETH iliyosalia itatolewa kwa mmiliki.", + "staking-solo-2-prompt": "Nini hutokea ikiwa mthibitishaji huenda nje ya mtandao?", + "staking-solo-2-a-label": "Hakuna athari kwa zawadi", + "staking-solo-2-a-explanation": "Adhabu hutolewa wakati kithibitishaji hakipo ili kuthibitisha hali ya msururu kwa enzi yoyote. Ukubwa wa adhabu hizi ni takriban sawa na 75% ya malipo ya uthibitisho sahihi yangekuwa. Zawadi hurejeshwa kiidhinishi kinaporejea mtandaoni, na HAKUNA kufyeka kunatokea.", + "staking-solo-2-b-label": "Adhabu za kutofanya kazi hutolewa tu wakati haipatikani", + "staking-solo-2-b-explanation": "Wakati haipatikani, mthibitishaji atapata adhabu ndogo za kutofanya kazi, takriban sawa na 75% ya zawadi ambayo ingekuwa kwa uthibitisho sahihi. Katika hali nadra/za kupita kiasi ambapo mtandao haukamiliki (yaani, zaidi ya 1/3 ya mtandao pia iko nje ya mtandao), adhabu hizi ni kubwa zaidi. Zawadi huanza tena mthibitishaji anaporudi mtandaoni, na hakuna kufyeka kunakotokea.", + "staking-solo-2-c-label": "Kufyeka mara moja na kuondolewa kwenye mtandao", + "staking-solo-2-c-explanation": "Hili ni wazo potofu la kawaida, lakini kwenda nje ya mtandao HAKUNA matokeo ya kufyeka! Kufyeka ni aina mahususi ya adhabu kwa kosa kubwa zaidi, pamoja na adhabu kubwa na pia husababisha kuondolewa kutoka kwa seti ya kiidhinishaji.", + "staking-solo-2-d-label": "Kuchelewa kwa wiki moja kabla ya kufyeka na kutolewa", + "staking-solo-2-d-explanation": "Kukaa nje ya mtandao hakusababishi kufyeka, hata baada ya muda mrefu. Kithibitishaji kinadharia kinaweza kuwa nje ya mtandao kwa miaka mingi bila kupunguzwa, ingawa adhabu za kutotumika zinaweza kuongezeka ikiwa kiidhinishi hakitaondoka.", + "staking-solo-3-prompt": "Je, salio la juu zaidi la mthibitishaji ni lipi?", + "staking-solo-3-a-label": "16", + "staking-solo-3-a-explanation": "Wathibitishaji wanaoshuka hadi salio la ufanisi la ETH 16 hutolewa kiotomatiki kutoka kwa Mnyororo Kioleza.", + "staking-solo-3-b-label": "32", + "staking-solo-3-b-explanation": "32 ETH ni ETH ya chini zaidi inayohitajika ili kuwezesha kithibitishaji kipya, na pia kiwango cha juu zaidi cha 'salio faafu' (vote weight) kwa kithibitishaji hicho. Zawadi zilizo zaidi ya 32 zinaweza kuongezwa, lakini salio hili halichangii uzito wa kura za waidhinishaji kwenye mtandao na zawadi haziongezi.", + "staking-solo-3-c-label": "Inabadilika kulingana na mwendeshaji", + "staking-solo-3-c-explanation": "Sheria za maafikiano zinatumika kwa kila akaunti ya mthibitishaji kwa usawa na hazitegemei mtu anayeendesha nodi. Salio la juu la ufanisi la wathibitishaji wote ni 32 ETH.", + "staking-solo-3-d-label": "Hakuna kikomo", + "staking-solo-3-d-explanation": "Kila akaunti ya kiidhinishaji ina ukomo wa salio halisi la 32 ETH, na kupunguza nguvu ya jumla ya kithibitishaji kimoja kwenye mtandao. Hii pia huweka kikomo ni kiasi gani cha ETH kinaweza kuwekwa kwenye hisa au kutengwa katika kipindi fulani cha muda, kwani uwezeshaji na njia za kutoka za kiidhishi huchakatwa kupitia foleni iliyowekewa viwango.", + "staking-solo-4-prompt": "Ipi SIYO zawadi inayopokelewa kama mthibitishaji?", + "staking-solo-4-a-label": "Kitalu zawadi", + "staking-solo-4-a-explanation": "Wahalalishaji hupokea zawadi katika mfumo wa utoaji mpya wa ETH kwa kupendekeza kitalu halali wakati umechaguliwa kwa itifaki. Zawadi hizi ni tofauti na ada na MEV ambazo pia hupatikana wakati wa kupendekeza zuio.", + "staking-solo-4-b-label": "Ncha za ada / MEV", + "staking-solo-4-b-explanation": "Vidokezo vya ada (sehemu isiyochomwa ya ada) na mapato ya MEV yanasambazwa kwa mpendekezaji zuio (staker/kithibitishaji) kupitia anwani ya mpokeaji ada iliyotolewa na kiidhinishaji huyo. Zawadi hizi ni tofauti na zawadi ya kuzuia pia kupatikana wakati wa kupendekeza vitalu.", + "staking-solo-4-c-label": "Zawadi ya uthibitisho wa mkuu wa mnyororo", + "staking-solo-4-c-explanation": "Wahalalishaji hupokea zawadi katika mfumo wa utoaji mpya wa ETH kwa uthibitisho kwa usahihi na mara moja kwa mkuu wa mnyororo, kichwa cha epoch kilichothibitishwa, na kichwa cha epoch kilichokamilishwa cha sasa.", + "staking-solo-4-d-label": "Ada za biashara za Uniswap", + "staking-solo-4-d-explanation": "Ada za biashara zinazozalishwa na majukwaa ya biashara na mabadilishano hazipokelewi na wathibitishaji wa Ethereum.", + "staking-solo-5-prompt": "Ni muda gani wa kufanya kazi unahitajika ili mthibitishaji awe na faida?", + "staking-solo-5-a-label": "100%", + "staking-solo-5-a-explanation": "Ingawa ni lengo bora, kufikia muda wa kazi wa 100% sio hitaji la chini kabisa kwa mthibitishaji kubaki na faida.", + "staking-solo-5-b-label": "~99%", + "staking-solo-5-b-explanation": "Ingawa ni lengo bora, kufikia muda wa kazi wa 99% sio hitaji la chini kabisa kwa mthibitishaji kubaki na faida.", + "staking-solo-5-c-label": "~50%", + "staking-solo-5-c-explanation": "Wathibitishaji huadhibiwa takriban 75% ya kile ambacho wangepewa tuzo kwa kushuhudia kwa usahihi na kwa haraka hali ya mnyororo. Hii inamaanisha kwa kipindi fulani cha muda, kuwa nje ya mtandao 50% ya wakati huo bado kutakuwa na faida halisi, ingawa ni faida kidogo kuliko mthibitishaji anayepatikana kwa uhakika zaidi.", + "staking-solo-5-d-label": "~25%", + "staking-solo-5-d-explanation": "Mthibitishaji aliye na muda wa nyongeza wa 25% tu atakuwa akipata adhabu kwa 75% nyingine ya wakati huo. Kwa kuzingatia ukubwa sawa wa zawadi na adhabu, kuwa nje ya mtandao kwa mara 3 ya muda wa mtandaoni kutasababisha hasara halisi ya ETH kwa kipindi hicho.", + "staking-solo-6-prompt": "Ni lipi kati ya yafuatayo SI kosa linaloweza kufyeka?", + "staking-solo-6-a-label": "Kuwa nje ya mtandao", + "staking-solo-6-a-explanation": "Kuwa nje ya mtandao hakusababishi kufyeka. Itasababisha adhabu ndogo za kutofanya kazi ukiwa nje ya mtandao, lakini itaendelea kutoa ushahidi utakaporejea mtandaoni.", + "staking-solo-6-b-label": "Kupendekeza na kusaini vizuizi viwili tofauti kwa nafasi moja", + "staking-solo-6-b-explanation": "Hii inatishia uadilifu wa mtandao na itasababisha kufyeka na kutolewa kwenye mtandao.", + "staking-solo-6-c-label": "Kushuhudia kizuizi kinachozunguka kingine (kwa ufanisi kubadilisha historia)", + "staking-solo-6-d-label": "'Kupiga kura mara mbili' kwa kushuhudia wagombea wawili wa kizuizi kimoja", + "staking-solo-7-prompt": "Ipi SIYO njia ya kulinda/kuzuia mthibitishaji wako asifyekwe?", + "staking-solo-7-a-label": "Epuka usanidi mwingi usiohitajika, na hifadhi tu funguo zako na mteja mmoja wa mthibitishaji kwa wakati mmoja", + "staking-solo-7-a-explanation": "Wengi wa kufyeka hadi sasa ni kutoka kwa waendeshaji wanaohifadhi funguo zao za kusaini kwenye zaidi ya mashine moja, kama nakala rejea. Hii ni hatari sana, kwani hitilafu yoyote inaweza kusababisha upigaji kura mara mbili na kufyeka.", + "staking-solo-7-b-label": "Endesha programu ya mteja kama ilivyo bila kubadilisha msimbo wewe mwenyewe", + "staking-solo-7-b-explanation": "Programu ya mteja imeandikwa na kujaribiwa ili kulinda dhidi ya kufanya vitendo vinavyoweza kupunguzwa. Ili kutekeleza kitendo kinachoweza kutekelezwa, hii kwa kawaida ingehitaji kubadilisha msimbo wa mteja mwenyewe kwa njia mbaya.", + "staking-solo-7-c-label": "Endesha mteja unaotumiwa na wathibitishaji wengine wengi", + "staking-solo-7-c-explanation": "Kutumia mteja sawa na wengi wa mtandao wengine huweka hatari ya kupunguzwa ikiwa kuna hitilafu ya programu katika mteja huyo. Kuendesha mteja wa wachache kunalinda dhidi ya hii.", + "staking-solo-7-d-label": "Zima mthibitishaji kwa epoki 2-4 kabla ya kuhamisha funguo kwenye mashine mpya", + "staking-solo-7-d-explanation": "Hii inaruhusu muda wa kuruhusu mnyororo kukamilika wakati nodi yako iko nje ya mtandao, ili kupunguza hatari yoyote ya kupiga kura mara mbili kwa bahati mbaya na kufyeka wakati wa uhamishaji wa ufunguo.", + "staking-solo-8-prompt": "Ipi SI lazima ili kupokea malipo ya zawadi / uondoaji wa sehemu?", + "staking-solo-8-a-label": "Kutoa anwani ya uondoaji wa utekelezaji mara moja", + "staking-solo-8-a-explanation": "Hii inahitajika mara moja kwa mchakato wa uondoaji ili kujua wapi pa kutuma fedha zozote za safu ya makubaliano", + "staking-solo-8-b-label": "Kuwa na salio la ufanisi la ETH 32", + "staking-solo-8-b-explanation": "Salio lako la ufanisi lazima liwe la juu zaidi la ETH 32 kabla ya uondoaji wowote wa sehemu kuanzishwa.", + "staking-solo-8-c-label": "Kuwa na jumla ya salio zaidi ya ETH 32", + "staking-solo-8-c-explanation": "Jumla ya salio lako lazima liwe na zawadi zaidi ya ETH 32 ili uondoaji wowote wa sehemu uanzishwe.", + "staking-solo-8-d-label": "Kuwasilisha kiasi cha uondoaji kilichoombwa na malipo ya gesi", + "staking-solo-8-d-explanation": "Mara tu vigezo vingine vinapotimizwa, malipo ya zawadi huwa ya kiotomatiki. Wapokeaji hawahitaji kuwasilisha muamala au kulipa gesi. Kiasi kilichoondolewa ni sawa na salio la mthibitishaji linalozidi 32. Kiasi maalum hakiwezi kuombwa.", + "scaling-1-prompt": "Ni ipi kati ya zifuatazo Ethereum inatumia kuongeza ukubwa?", + "scaling-1-a-label": "Rollups za Safu ya 2", + "scaling-1-a-explanation": "Hizi husaidia Ethereum kuongeza ukubwa kwa kuunganisha shughuli, kuzitekeleza, na kisha kutuma matokeo kwa Ethereum ili kuthibitishwa na kulindwa. Mifano au matoleo ni pamoja na Arbitrum au Optimism. Hii sio njia pekee ya Ethereum kuongeza.", + "scaling-1-b-label": "Proto-Dankharding", + "scaling-1-b-explanation": "Hili linatoa chaguo la hifadhi la muda na la bei nafuu la kuhifadhi data ya kukunja kwa Mainnet, ambayo kwa sasa inawajibika kwa takriban 90% ya gharama ambayo mtumiaji hukutana nayo kwenye ukusanyaji. Hii sio njia pekee ya Ethereum kuongeza.", + "scaling-1-c-label": "Ugawanyikaji wa Dank", + "scaling-1-c-explanation": "Hii huondoa hitaji la kila kiidhinishaji na nodi kwenye mtandao kutokana na kuhitajika kuhifadhi 100% ya data kwa ajili ya matoleo yote, na kupunguza mahitaji ya maunzi kwa waendeshaji wa nodi. Hii sio njia pekee ya Ethereum kuongeza.", + "scaling-1-d-label": "Yote ya hapo juu", + "scaling-1-d-explanation": "Muamala wa vifurushi vya safu ya 2, Proto-Dankharding huunda hifadhi ya muda ya bei nafuu ya data hii, na Dankharding hushiriki mzigo wa uhifadhi kwa viidhinishi vyote—yote yakisaidia kipimo cha Ethereum.", + "scaling-2-prompt": "Baada ya kuweka miamala pamoja na kuitekeleza, je, rollups za safu ya 2 hufanya nini baadaye?", + "scaling-2-a-label": "Hifadhi data kwenye seva ya faragha", + "scaling-2-a-explanation": "Matokeo hutumwa kwa Mainnet kwa uwazi na upatikanaji wa umma, na hayategemei seva za kibinafsi.", + "scaling-2-b-label": "Hutuma uthibitisho kwa mtumiaji kwa ajili ya kuhifadhi", + "scaling-2-b-explanation": "Watumiaji hawatarajiwi kushikilia matokeo ya muamala wao. Habari hii inachapishwa kwenye Mtandao Mkuu.", + "scaling-2-c-label": "Wasilisha matokeo kwa Ethereum", + "scaling-2-c-explanation": "Rollups za Safu ya 2 huchapisha matokeo ya utekelezaji wa miamala yao kwenye Mtandao Mkuu, na kuyalinda katika historia ya Ethereum", + "scaling-2-d-label": "Futa matokeo ili kupunguza gharama", + "scaling-2-d-explanation": "Safu ya 2 iliyokunjwa huchapisha matokeo ya utekelezaji wao wa miamala kwa Mainnet. Uokoaji wa gharama unaopatikana kwa mbinu hii ni kwa kuunganisha na kubana data ya muamala, na hatimaye kuihifadhi katika hifadhi ya bei nafuu ambayo muda wake unaisha ikishapatikana kwa wale wanaoihitaji.", + "scaling-3-prompt": "Je, Proto-Danksharding inapunguza vipi gharama za miamala ya rollup kwenye rollups?", + "scaling-3-a-label": "Kuongeza moja kwa moja saizi ya kizuizi", + "scaling-3-a-explanation": "Proto-Dankharding haiongezi kikomo cha gharma ya muamala moja kwa moja, lakini inafanya uhifadhi wa data ya kukunja kuwa ya bei nafuu kwa kufanya uhifadhi wa muda upatikane", + "scaling-3-b-label": "Kugawanya ni wathibitishaji gani wanahitajika kuhifadhi data", + "scaling-3-b-explanation": "Ingawa Dankharding kamili inatarajiwa kupunguza hitaji la wathibitishaji wote kuhifadhi data yote, hii inatanguliwa na Proto-Danksharding ambayo huunda chaguo la kuhifadhi ghali zaidi, la muda kwa data inayotolewa na rollups.", + "scaling-3-c-label": "Kuongeza kwa kiasi kikubwa mahitaji ya maunzi kwa waendeshaji wa nodi", + "scaling-3-c-explanation": "Hili kwa ujumla halizingatiwi kuwa chaguo linalokubalika kwa kuongeza Ethereum. Juhudi kubwa huchukuliwa ili kupunguza mahitaji ya maunzi ya kuendesha nodi ili kuifanya iweze kufikiwa iwezekanavyo.", + "scaling-3-d-label": "Kuhifadhi data yake katika hifadhi ya bei nafuu, ya muda ya 'blob'", + "scaling-3-d-explanation": "Proto-Dankharding inatanguliza chaguo la muda la kuhifadhi data kwa kukusanya ili kuwaruhusu kuchapisha matokeo yake kwa bei nafuu zaidi kwa Mainnet", + "scaling-4-prompt": "Ni hatua gani muhimu inayofuata kwa rollups kuongeza ukubwa wa Ethereum?", + "scaling-4-a-label": "Kuwahamasisha vyombo vyenye kompyuta zenye nguvu kushughulikia mpangilio wote", + "scaling-4-a-explanation": "Mojawapo ya matatizo ya upangaji wa sasa ni hali ya kati ya wale wanaoendesha vifuatavyo (wale wanaoamua kujumuishwa na kuagiza miamala ndani ya mkusanyo). Lengo ni kuruhusu mtu yeyote kushiriki, na si kutegemea kundi moja au chombo kwa njia yoyote.", + "scaling-4-b-label": "Sambaza jukumu la kuendesha waratibu wa mfuatano na wathibitishaji kwa watu wengi zaidi", + "scaling-4-b-explanation": "Udhibiti wa kukusanya kwa kawaida huanza na sehemu kuu, ambayo husaidia kuanzisha mambo, lakini huacha mtandao kukabiliwa na udhibiti. Kugawanya mchakato wa kujumuisha shughuli ili mtu yeyote aweze kushiriki ni muhimu ili kuzuia uwezekano wa maelewano ya mtandao.", + "scaling-4-c-label": "Fanya rollups zote zifuate njia ile ile ya usalama", + "scaling-4-c-explanation": "Ethereum inafaidika kutokana na kuwa na mbinu mbalimbali za usalama ndani ya mfumo wake wa ikolojia kama njia ya ustahimilivu.", + "scaling-4-d-label": "Oracles za data ili kuthibitisha uhifadhi wa data ya muamala kwenye seva za faragha", + "scaling-4-d-explanation": "Data ya Rollup huhifadhiwa kwenye Ethereum, na haitegemei seva za faragha au hifadhidata.", + "run-a-node-1-prompt": "Ni nini kinachohitajika ili kuendesha nodi?", + "run-a-node-1-a-label": "Kuendesha programu ya mteja na maunzi ya kawaida ukiwa mtandaoni.", + "run-a-node-1-a-explanation": "Kuendesha nodi kunajumuisha kuendesha programu inayowasiliana kwa kutumia lugha ya itifaki ya Ethereum na kompyuta zingine zinazofanya vivyo hivyo. Programu hii hupakua nakala ya blockchain ya Ethereum, huthibitisha uhalali wa kila kizuizi, kisha huiweka ikiwa imesasishwa na vizuizi na miamala mipya, huku ikisaidia wengine kupakua na kusasisha nakala zao.", + "run-a-node-1-b-label": "Weka ETH 32 ili kupata zawadi", + "run-a-node-1-b-explanation": "Hili ni hitaji la kuhusika-mchakato wa kuwa mshiriki hai katika makubaliano ya mtandao. Hii haihitajiki tu kuendesha nakala huru ya kiambajengo, ambayo inahitaji NO ETH.", + "run-a-node-1-c-label": "Endesha mashine za uchimbaji madini za ASIC zenye nguvu ili kufikia makubaliano ya mtandao", + "run-a-node-1-c-explanation": "Ijapokuwa Ethereum hapo awali ilitumia uchimbaji madini na kompyuta zenye nguvu kufikia makubaliano, mchakato huu umebadilishwa kabisa na kuweka hisa. Wala uchimbaji madini hapo awali, wala kuhatarisha kwa sasa, hauhitajiki kuendesha nakala huru ya blockchain.", + "run-a-node-1-d-label": "Fanya kazi muda wote katika miundombinu ya blockchain", + "run-a-node-1-d-explanation": "Uwekaji zana za programu umeendelea kuboreshwa kwa muda kufanya kuendesha nodi kutoka nyumbani kama novice kufikika zaidi. Kufanya kazi wakati wote katika miundombinu ya kiambajengo sio hitaji la kujihusisha.", + "run-a-node-2-prompt": "Unahitaji ETH ngapi kuweka hisa ili kuendesha nodi?", + "run-a-node-2-a-label": "0", + "run-a-node-2-a-explanation": "Uendeshaji wa nodi ya Ethereum hauhitaji ETH yoyote. Kinyume na kuendesha kihalalishaji cha uhakika kama sehemu ya usanidi wa nodi, mtu yeyote yuko huru kuendesha programu ya mteja na kusawazisha nakala yake huru ya kiambajengo—hakuna ETH inayohitajika.", + "run-a-node-2-b-label": "8", + "run-a-node-2-c-label": "16", + "run-a-node-2-d-label": "32", + "run-a-node-2-d-explanation": "Uendeshaji wa nodi ya Ethereum hauhitaji ETH yoyote. Tofauti na 32 ETH inayohitajika kuwezesha kihalalishaji dhabiti ambacho kinashiriki moja kwa moja katika makubaliano ya mtandao, mtu yeyote yuko huru kuendesha programu ya mteja na kusawazisha nakala yake huru ya kiambajengo-hakuna ETH inayohitajika.", + "run-a-node-3-prompt": "Unapata faida gani kwa kuendesha nodi yako mwenyewe?", + "run-a-node-3-a-label": "Upinzani wa udhibiti", + "run-a-node-3-a-explanation": "Hii ni faida kwa watumiaji, lakini sio pekee. Kwa kuendesha programu ya nodi inayowasiliana moja kwa moja na wenzao wengine kwenye mtandao, miamala yako huchanganyika na kila shughuli nyingine nodi yako inaeneza. Kwa hivyo, karibu haiwezekani kutofautisha na kudhibiti ununuzi halali ambao nodi yako imeshiriki.", + "run-a-node-3-b-label": "Uhuru na Uadilifu", + "run-a-node-3-b-explanation": "Hii ni faida kwa watumiaji, lakini sio pekee. Kwa kuwa na nakala yako mwenyewe ya Ethereum kiambajengo, hutegemei tena mhusika yeyote wa nje kuingiliana na mtandao. Huhitaji kamwe kuomba ruhusa ili kutafuta salio lako, au kutekeleza muamala, na miamala yote inathibitishwa kwa kutumia programu unayoendesha wewe mwenyewe. Maboresho ya mtandao yanapotokea, wewe ndiwe unayesimamia iwapo utasaidia kusasisha au la.", + "run-a-node-3-c-label": "Faragha", + "run-a-node-3-c-explanation": "Hii ni faida kwa watumiaji, lakini sio pekee. Bila nodi yako mwenyewe, kutafuta tu salio la akaunti yako kunahitaji kutuma orodha ya akaunti zako kutoka kwa mkoba wako, iliyoambatishwa kwenye anwani yako ya IP, kwa mtoa huduma mwingine ambaye basi anaaminika kukupa taarifa sahihi.", + "run-a-node-3-d-label": "Yote ya hapo juu", + "run-a-node-3-d-explanation": "Kuendesha nodi hukupa udhibiti kamili na mamlaka juu ya data unayoitegemea, huku kuruhusu kutazama na kuthibitisha kwa faragha maudhui ya mnyororo, na kuhakikisha kwamba miamala yoyote halali haijakaguliwa.", + "run-a-node-4-prompt": "Ni hifadhi gani ya diski kuu inahitajika kwa nodi ya Ethereum?", + "run-a-node-4-a-label": "SSD ya GB 512", + "run-a-node-4-a-explanation": "Hivi sasa, hakuna programu ya mteja inayoweza kuhifadhi mnyororo kwa kutumia GB 512 pekee", + "run-a-node-4-b-label": "TB 2 Inayozunguka", + "run-a-node-4-b-explanation": "Kwa ujumla, diski kuu zinazozunguka haziungi mkono kasi ya kusoma/kuandika inayohitajika ili kuendana na mahitaji ya usindikaji wa nodi ya Ethereum, na diski ya SSD inapendekezwa", + "run-a-node-4-c-label": "SSD ya TB 2", + "run-a-node-4-c-explanation": "Wakati wa kuandika, diski ya SSD ya TB 2 inapaswa kukidhi mahitaji ya hifadhi na kasi ya kusoma/kuandika kwa nodi kamili ya Ethereum.", + "run-a-node-4-d-label": "SSD ya TB 8", + "run-a-node-4-d-explanation": "Wakati wa kuandika, diski ya SSD ya TB 2 inapaswa kukidhi mahitaji ya hifadhi na kasi ya kusoma/kuandika kwa nodi kamili ya Ethereum. SSD ya TB 8 ingeruhusu ulinzi zaidi wa siku zijazo, na uwezo wa kusawazisha pia minyororo ya safu ya 2, lakini kwa sasa si hitaji la Mtandao Mkuu.", + "run-a-node-5-prompt": "Nini hutokea ikiwa nodi yako itaenda nje ya mtandao?", + "run-a-node-5-a-label": "Nodi yako inapoteza usawazishaji na hali ya sasa ya mtandao", + "run-a-node-5-a-explanation": "Wakati nodi yako haipatikani mtandaoni, haiwezi kupokea miamala mipya na vizuizi kutoka kwa rika, na kwa hivyo inapoteza usawazishaji na hali ya sasa ya mnyororo. Kuunganisha tena mtandaoni kutairuhusu programu ya nodi yako isawazishwe tena ili ifanye kazi kikamilifu tena.", + "run-a-node-5-b-label": "ETH iliyo katika hifadhi yako baridi inafyekwa", + "run-a-node-5-b-explanation": "ETH iliyoshikiliwa katika hifadhi yako baridi haina uhusiano wowote na nodi yako kuwa mtandaoni au la. Ikiwa nodi yako iko nje ya mtandao, hautaweza kuitumia kutafuta salio la hivi karibuni la akaunti zako, lakini kuwa nje ya mtandao hakuweki fedha zako zilizolindwa hatarini. Ikiwa pia unaendesha programu ya mthibitishaji na nodi yako kama mwekaji hisa, adhabu ndogo zitatolewa kwa salio hili la mthibitishaji wakati haipatikani kwenye mtandao.", + "run-a-node-5-c-label": "Nishati inayotumika kutafuta uthibitisho-wa-kazi inapotea", + "run-a-node-5-c-explanation": "Ethereum haitumii tena uthibitisho-wa-kazi, na hili halikuwahi kuwa hitaji la waendeshaji wote wa nodi. Kuwa nje ya mtandao kunamaanisha tu nodi yako haijasawazishwa tena na mabadiliko ya hivi karibuni kwenye mtandao, na inaweza kusawazisha tena kwa kurudi mtandaoni.", + "run-a-node-5-d-label": "Data ya mnyororo huondolewa, na kusawazisha upya kutoka mwanzo kunahitajika", + "run-a-node-5-d-explanation": "Kwenda nje ya mtandao kwa kawaida hakufuti data yoyote ya mnyororo iliyohifadhiwa. Kuunganisha tena kwenye intaneti kutaruhusu programu kuendelea pale ilipoishia ili kusawazisha na miamala ya hivi karibuni.", + "run-a-node-6-prompt": "Kuendesha nodi kunapata zawadi za mtandao", + "run-a-node-6-a-label": "Kweli", + "run-a-node-6-a-explanation": "Kuendesha programu ya mteja pekee hakukupatii zawadi. Ili kupata zawadi, lazima pia uwe unaweka hisa.", + "run-a-node-6-b-label": "Si kweli", + "stablecoins-1-prompt": "Nini ni Sarafu-imara?", + "stablecoins-1-a-label": "Sarafu za kidigitali zenye tete ya chini ya bei, thamani yake ni thabiti na inafanana na sarafu za jadi", + "stablecoins-1-a-explanation": "Sahihi! Sarafu-imara zimeundwa kushughulikia suala la tete linalojitokeza mara kwa mara katika sarafu nyingi za kidigitali.", + "stablecoins-1-b-label": "Uwakilishi wa kidijitali wa dhahabu", + "stablecoins-1-b-explanation": "Hii si sahihi. Ingawa baadhi ya sarafu-imara zinaweza kuungwa mkono na madini ya thamani, zinaweza pia kuungwa mkono na sarafu ya fiat au sarafu nyingine za kidigitali.", + "stablecoins-1-c-label": "Aina mpya ya kadi ya mkopo", + "stablecoins-1-c-explanation": "Hii si sahihi. Sarafu-imara ni aina ya sarafu ya kidigitali, sio kadi ya mkopo.", + "stablecoins-1-d-label": "Mbadala wa ether", + "stablecoins-1-d-explanation": "Hii si sahihi. koini imara haijaundwa kuchukua nafasi ya ether (ETH). Wao ni ishara nyingine kwenye mtandao wa Ethereum iliyoundwa ili kudumisha thamani ya kutosha kwa muda.", + "stablecoins-2-prompt": "Ipi kati ya zifuatazo ni sarafu-imara?", + "stablecoins-2-a-label": "Dola ya Marekani", + "stablecoins-2-a-explanation": "Hii si sahihi. Wakati koini imara inaweza kuwakilisha dola ya Marekani, dola ya Marekani si sarafu ya kidigitali.", + "stablecoins-2-b-label": "Tokeni ya AAVE", + "stablecoins-2-b-explanation": "Hii si sahihi. AAVE ni ishara ya utawala kwa itifaki ya Aave, ambayo hutoa soko kwa koini zilizo imara, lakini AAVE yenyewe sio koini imara.", + "stablecoins-2-c-label": "Dai", + "stablecoins-2-c-explanation": "Sahihi! Pengine Dai ndiyo sarafu-imara iliyogatuliwa maarufu zaidi, na thamani yake ni takriban Dola 1 ya Marekani.", + "stablecoins-2-d-label": "Ether", + "stablecoins-2-d-explanation": "Hii si sahihi. Ether ni sarafu asili ya mtandao wa Ethereum, lakini haikusudiwi kuwa imara.", + "stablecoins-3-prompt": "Sarafu-imara zinaweza kutumika kwa nini?", + "stablecoins-3-a-label": "Ili kuwalinda watumiaji wake kutokana na mabadiliko ya bei tete", + "stablecoins-3-a-explanation": "Si kabisa. Jibu hili ni sahihi kwa sehemu, lakini ni mojawapo tu ya mambo mengi ambayo sarafu-imara zinaweza kutumika.", + "stablecoins-3-b-label": "Kununua vitu kwenye mtandao mahali popote duniani", + "stablecoins-3-b-explanation": "Si kabisa. Jibu hili ni sahihi kwa sehemu, lakini ni mojawapo tu ya mambo mengi ambayo sarafu-imara zinaweza kutumika.", + "stablecoins-3-c-label": "Kupata pesa kwa kuwakopesha wengine", + "stablecoins-3-c-explanation": "Si kabisa. Jibu hili ni sahihi kwa sehemu, lakini ni mojawapo tu ya mambo mengi ambayo sarafu-imara zinaweza kutumika.", + "stablecoins-3-d-label": "Yote ya hapo juu", + "stablecoins-3-d-explanation": "Sahihi! koini imara inaweza kutumika kuhifadhi sarafu ya kidigitali bila kuwa na utulivu wa bei, kufanya miamala kimataifa kwenye mtandao, na kupata riba unapozikopesha.", + "stablecoins-4-prompt": "Ni nini kinachofanya sarafu-imara kuwa za kipekee?", + "stablecoins-4-a-label": "Ni tokeni inayofungamanishwa na mali katika ulimwengu halisi", + "stablecoins-4-a-explanation": "Hii si sahihi. Ingawa sarafu imara nyingi zimewekwa kwenye mali ya ulimwengu halisi, sifa hii haiko katika sarafu imara pekee (k.m., tokeni zilizoidhinishwa na ETH).", + "stablecoins-4-b-label": "Ni tokeni ya sarafu ya kidigitali iliyoundwa mahususi ili kuweka thamani yake thabiti", + "stablecoins-4-b-explanation": "Sahihi! arafu imara zimeundwa ili kuweka thamani yake kwa uthabiti, kwa kawaida huwekwa kwenye mali kama sarafu (k.m., 1 USDC = dola 1 ya Marekani), lakini si sarafu zote imara zinazofuata muundo huu (k.m., RAI).", + "stablecoins-4-c-label": "Ina uwezo wa kutumwa kupitia mtandao", + "stablecoins-4-c-explanation": "Hii si sahihi. Ingawa huu ni uwezo, sio wa kipekee kwa sarafu-imara.", + "stablecoins-4-d-label": "Inaweza kutumika kwenye mtandao wa Ethereum.", + "stablecoins-4-d-explanation": "Hii si sahihi. Tokeni nyingi za sarafu ya kidigitali zinaweza kutumika kwenye mtandao wa Ethereum.", + "stablecoins-5-prompt": "Ipi SIYO njia ya kupata sarafu-imara?", + "stablecoins-5-a-label": "Zibadilishe na tokeni zingine", + "stablecoins-5-a-explanation": "Si sahihi, hii ni njia ya kupata sarafu-imara. Mojawapo ya njia za kawaida watu wanapata sarafu-imara ni kwa kubadilisha sarafu zao za kidigitali zilizopo kwa sarafu-imara.", + "stablecoins-5-b-label": "Kopa", + "stablecoins-5-b-explanation": "Sio sahihi, hii ni njia ya kupata sarafu imara. Unaweza kukopa baadhi ya sarafu imara kwa kutumia fedha zako za siri zilizopo, kama vile ether, kama dhamana. Utahitaji kulipa sarafu imara zilizokopwa ili kurejesha dhamana yako iliyofungwa.", + "stablecoins-5-c-label": "Nunua kutoka kwenye mabadilishano", + "stablecoins-5-c-explanation": "Sio sahihi, hii ni njia ya kupata sarafu imara. Kubadilishana kwingi na mkoba hukuruhusu kununua sarafu imara moja kwa moja. Vizuizi vya kijiografia vinaweza kutumika kwa ubadilishanaji wa kati.", + "stablecoins-5-d-label": "Zichimbe", + "stablecoins-5-d-explanation": "Sahihi! Tofauti na bitcoin, huwezi kuchimba sarafu-imara.", + "defi-1-prompt": "DeFi inasimama kwa nini?", + "defi-1-a-label": "Fedha Zilizogatuliwa", + "defi-1-a-explanation": "Sahihi! DeFi inarejelea Fedha Iliyotawanywa, mfumo wa kifedha uliojengwa kwenye Ethereum unaofanya kazi bila wapatanishi kama vile benki au taasisi za fedha.", + "defi-1-b-label": "Fedha za Kidijitali", + "defi-1-b-explanation": "Hii si sahihi. Fedha Digitali inarejelea huduma za kifedha ambazo hutolewa kupitia mifumo ya kidigitali, lakini haimaanishi haswa utawanyaji.", + "defi-1-c-label": "Fedha Zilizosambazwa", + "defi-1-c-explanation": "Hii si sahihi. Ingawa 'kusambazwa' kunaweza kumaanisha ugatuaji, neno linalotumika katika sekta hiyo ni 'Fedha Zilizogatuliwa,' si Fedha Zilizosambazwa.", + "defi-1-d-label": "Fedha za Maendeleo", + "defi-1-d-explanation": "Hii si sahihi. maendeleo ya kiuchumi kwa kawaida hurejelea usaidizi wa kifedha unaotolewa kwa miradi inayolenga maendeleo ya kiuchumi, mara nyingi katika nchi zinazoendelea, na haihusiani na kiambajengo au DeFi.", + "defi-2-prompt": "Ni nini HUWEZI kufanya na DeFi?", + "defi-2-a-label": "Tuma pesa duniani kote.", + "defi-2-a-explanation": "Hii si sahihi. Kwa DeFi, unaweza kutuma thamani kwa mtu yeyote mahali popote duniani, bila vikomo vyovyote.", + "defi-2-b-label": "Muulize msaada kwa wateja kurekebisha makosa yako.", + "defi-2-b-explanation": "Sahihi! Katika DeFi, miamala ni ya mwisho na kudhibitiwa na msimbo badala ya kampuni. Hitilafu ikitokea, kama vile kutuma pesa kwa anwani isiyo sahihi, hakuna usaidizi wa mteja wa kusaidia kulirekebisha. Unahitaji kuwa makini zaidi.", + "defi-2-c-label": "Kopa fedha na dhamana.", + "defi-2-c-explanation": "Hii si sahihi. Kwa DeFi, unaweza kukopa pesa mara moja, ukiepuka mchakato wa idhini wa siku nyingi wa benki za jadi.", + "defi-2-d-label": "Fanya biashara ya tokeni zako 24/7.", + "defi-2-d-explanation": "Hii si sahihi. DeFi hukuruhusu kufanya biashara ya tokeni 24/7. Masoko yako wazi kila wakati, na unaweza kubadilisha ETH yako dhidi ya USDT au sarafu nyingine yoyote wakati wowote.", + "defi-3-prompt": "Jukwaa gani la DeFi linajulikana kwa kuruhusu watumiaji kubadilisha tokeni moja kwa moja wao kwa wao?", + "defi-3-a-label": "Uniswap", + "defi-3-a-explanation": "Sahihi! Uniswap ni mabadilishano yaliyogatuliwa ambayo huruhusu watumiaji kufanya biashara (kubadilisha) tokeni moja kwa moja na wengine kwa kutumia mifumo ya kiotomatiki ya kutengeneza soko.", + "defi-3-b-label": "Aave", + "defi-3-b-explanation": "Hii si sahihi. Aave ni itifaki ya DeFi inayolenga kukopesha na kukopa, sio ubadilishanaji wa tokeni.", + "defi-3-c-label": "PoolTogether", + "defi-3-c-explanation": "Hii si sahihi. PoolTogether huendesha bahati nasibu zisizo na hasara ambazo hutoa njia mpya ya ubunifu ya kuweka pesa.", + "defi-3-d-label": "MakerDao", + "defi-3-d-explanation": "Hii si sahihi. MakerDAO ni jukwaa lililogatuliwa linaloruhusu watumiaji kutoa na kusimamia sarafu-imara ya DAI, lakini haizingatii ubadilishanaji wa tokeni.", + "defi-4-prompt": "Unapotumia programu ya DeFi na kufanya muamala, habari ya muamala huhifadhiwa wapi?", + "defi-4-a-label": "ETH", + "defi-4-a-explanation": "Hii si sahihi. Data haihifadhiwi katika ether (ETH). ETH ni mali asili ya blockchain ya Ethereum.", + "defi-4-b-label": "mkoba wangu", + "defi-4-b-explanation": "Hii si sahihi. mkoba ni programu inayosimamia akaunti yako ya Ethereum kwa kuunganisha kwenye blockchain ya Ethereum. Haihifadhi data yoyote kuhusu historia ya miamala yako.", + "defi-4-c-label": "mfumo mtawanyo wa kimamlaka", + "defi-4-c-explanation": "Hii si sahihi. Programu za DeFi hazihifadhi historia ya miamala yako moja kwa moja. Badala yake, maelezo ya muamala wako hurekodiwa kwenye blockchain ya Ethereum.", + "defi-4-d-label": "Blockchain ya Ethereum", + "defi-4-d-explanation": "Sahihi! Ethereum kama kiambajengo huhifadhi data yote iliyotengenezwa na watumiaji na programu zake. Hii inaruhusu wathibitishaji kudumisha hali sawa kwenye mtandao wa P2P.", + "defi-5-prompt": "Ni nini kinachowezesha Fedha Zilizogatuliwa (DeFi) kwenye Ethereum?", + "defi-5-a-label": "Mkataba-erevu", + "defi-5-a-explanation": "Sahihi! Mikataba mahiri ni kama taarifa za kidigitali za 'ikiwa basi' zilizoandikwa kwa Ethereum. Wanachukua nafasi ya mikataba ya kitamaduni na wafanyabiashara wa kati, na kutekeleza miamala kiotomatiki ikiwa masharti fulani yatatimizwa.", + "defi-5-b-label": "Watu wa kati", + "defi-5-b-explanation": "Hii si sahihi. Ethereum haihitaji watu wa kati ili shughuli ziendeshwe. Kila kitu huendeshwa kwenye mnyororo kupitia mikataba mahiri.", + "defi-5-c-label": "Bitcoin", + "defi-5-c-explanation": "Hii si sahihi. Bitcoin ni mtandao rahisi wa kuhifadhi thamani, si kwa ajili ya kuendesha programu za juu. DeFi inahitaji mfumo unaonyumbulika zaidi, kama vile Ethereum, unaoweza kuendesha programu ngumu kushughulikia mikopo na kufanya biashara kiotomatiki.", + "defi-5-d-label": "Taasisi za fedha za jadi", + "defi-5-d-explanation": "Hii si sahihi. Programu za DeFi hazihitaji taasisi za fedha za jadi. Wanatumia programu za kiambajengo zinazoitwa mikataba mahiri kushughulikia miamala kiotomatiki.", + "smart-contracts-1-prompt": "Mikataba mahiri ina sifa gani?", + "smart-contracts-1-a-label": "Mikataba mahiri ni kama mikataba ya kisheria, lakini huhifadhiwa kidijitali kwenye blockchain ili kuhifadhi maudhui kwa usalama.", + "smart-contracts-1-a-explanation": "Mikataba mahiri hutumia mantiki inayofanana na mikataba ya jadi, lakini vinginevyo vina mambo machache yanayofanana.", + "smart-contracts-1-b-label": "Imeunganishwa na mifumo ya AI inayojitegemea inayotekeleza miamala", + "smart-contracts-1-b-explanation": "Mikataba mahiri hutekeleza miamala kwa kutabirika kulingana na mantiki ya 'ikiwa-hii-basi-hiyo' iliyoagizwa katika msimbo—haitumii AI", + "smart-contracts-1-c-label": "Programu za Onchain zinazofuata mantiki ya 'ikiwa-hii-basi-hiyo', zimehakikishiwa kutekeleza kulingana na sheria zake", + "smart-contracts-1-c-explanation": "Mkataba mahiri ni akaunti ya Ethereum iliyotumwa na msimbo usioweza kubadilishwa ambao huamua utendaji wake.", + "smart-contracts-1-d-label": "Hizo ni sheria zilizo nyuma ya Blockchain ya Ethereum, zilizotengenezwa pamoja na wanasheria ili kuhakikisha utiifu wa kisheria.", + "smart-contracts-1-d-explanation": "Mikataba mahiri ni vipande vya msimbo vinavyoweza kuundwa na wasanidi programu na kutumwa kwenye blockchain.", + "smart-contracts-2-prompt": "Ni sitiari gani inayoelezea kwa karibu zaidi utendaji wa mikataba mahiri?", + "smart-contracts-2-a-label": "Benki", + "smart-contracts-2-a-explanation": "Benki zinahitaji utekelezaji wa mwongozo na zimeundwa kama huluki za daraja, ilhali mikataba mahiri hutekelezwa kutabirika na kompyuta zilizo na sheria zisizobadilika.", + "smart-contracts-2-b-label": "''Mashine ya kuuza kielektroniki.''", + "smart-contracts-2-b-explanation": "Mashine ya kuuza itatoa tu bidhaa unayotaka baada ya mahitaji yote kutimizwa: pembejeo mahususi huhakikisha matokeo ya kuamua. Hii ni sawa na mantiki ya mikataba mahiri.", + "smart-contracts-2-c-label": "Kikokotoo", + "smart-contracts-2-c-explanation": "Msimbo mahiri wa mkataba unaweza kutumika kwa hesabu, lakini hauzuiliwi kwa hilo. Badala yake, mikataba mahiri ni programu zenye msingi wa kiambajengo zinazofuata mantiki ya 'ikiwa-hii-basi-ile'.", + "smart-contracts-2-d-label": "Tovuti", + "smart-contracts-2-d-explanation": "Tovuti ni sehemu ya mbele inayopokea maagizo ya mtumiaji. Mkataba mahiri ni mantiki ya nyuma ambapo maagizo haya hutekelezwa, na matokeo yanaweza kurudishwa.", + "smart-contracts-3-prompt": "Ipi SIYO sifa kuu ya mikataba mahiri?", + "smart-contracts-3-a-label": "Utekelezaji wa kudumu", + "smart-contracts-3-a-explanation": "Faida kuu ya mkataba mahiri ni kwamba hutekeleza kwa kudumu msimbo usio na utata, bila tafsiri ya kibinadamu au upendeleo.", + "smart-contracts-3-b-label": "Rekodi za umma", + "smart-contracts-3-b-explanation": "Kwa mikataba mahiri kwenye blockchain ya umma, mtu yeyote anaweza kufuatilia mara moja uhamisho wa mali na habari zingine zinazohusiana.", + "smart-contracts-3-c-label": "Ulinzi wa faragha", + "smart-contracts-3-c-explanation": "Kwa kuwa blockchain ni mitandao isiyojulikana, miamala hufungamanishwa hadharani na anwani ya kipekee ya kriptografia, sio utambulisho.", + "smart-contracts-3-d-label": "Uwezo wa kubadilika", + "smart-contracts-3-d-explanation": "Mkataba mahiri hauwezi kubadilishwa mara tu unapoundwa—umehakikishiwa kutekeleza kulingana na sheria zilizofafanuliwa na msimbo wake.", + "smart-contracts-4-prompt": "Ipi SIYO matumizi ya mikataba mahiri?", + "smart-contracts-4-a-label": "Sarafu-imara", + "smart-contracts-4-a-explanation": "Sarafu-imara ni vitu vya tokeni vinavyofafanuliwa na kufuatiliwa kwa kutumia mikataba mahiri.", + "smart-contracts-4-b-label": "Mabadiliko ya itifaki", + "smart-contracts-4-b-explanation": "Ingawa mabadiliko ya itifaki wakati mwingine yanaweza kutumia mikataba mahiri, uundaji na ufafanuzi wake unapendekezwa kupitia mabaraza ya mtandaoni yenye uwazi na kutekelezwa katika programu ya mteja.", + "smart-contracts-4-c-label": "Ishara zisizokuvu(NFTs)", + "smart-contracts-4-c-explanation": "Mikataba mahiri hutumiwa kufafanua anuwai ya NFT, kutoka sanaa ya kidijitali hadi vyeti vya umiliki wa mali.", + "smart-contracts-4-d-label": "Ubadilishanaji wa sarafu wazi", + "smart-contracts-4-d-explanation": "Mabadilishano yaliyogatuliwa (DEXs) hujengwa kwa kutumia mikataba mahiri kufanya kazi bila udhibiti wa kati." +} diff --git a/src/intl/sw/page-10-year-anniversary.json b/src/intl/sw/page-10-year-anniversary.json new file mode 100644 index 00000000000..7de70bbf1ce --- /dev/null +++ b/src/intl/sw/page-10-year-anniversary.json @@ -0,0 +1,131 @@ +{ + "page-10-year-anniversary-meta-title": "Maadhimisho ya Miaka 10", + "page-10-year-anniversary-meta-description": ".", + "page-10-year-censorship-resistance": "upinzani wa udhibiti", + "page-10-year-uptime": "100% muda wa kuendelea", + "page-10-year-decentralization": "ugatuzi", + "page-10-year-community-building": "ujenzi wa jamii", + "page-10-year-developer-growth": "ukuaji wa Msanidi programu", + "page-10-year-global-collaboration": "ushirikiano wa kimataifa", + "page-10-year-cypherpunk-values": "mchawi wa kificho thamani", + "page-10-year-hackathons": "shindano la uvumbuzi wa fundi", + "page-10-year-permissionless-finance": "uchumi usiohitaji ruhusa", + "page-10-year-credible-neutrality": "hii ni kutokuwa na upendeleo kwa njia ya kuaminika na haki. Kanuni itakayotolewa ni ya uwazi isiyoegemea upande wowote na yenye uwazi", + "page-10-year-infinite-garden": "bustani isiyo na kikomo, dhana maarufu sana katika web3 na Ethereum inayotumiwa kueleza falsafa ya jinsi Ethereum na miradi ya wazi inayokua", + "page-10-year-client-diversity": "mchanganyiko wa program za kuunganisha kwenye mtandao au tofauti wa program za wateja", + "page-10-year-celebrating": "Kusherehekea miaka 10 ya", + "page-10-year-hero-title": "Muongo mmoja wa kubadilisha dunia bloku moja kwa wakati mmoja", + "page-10-year-hero-description": "Mnamo Julai 30, 2015, kiambajengo cha Ethereum ilizaliwa. Wakati block ya mwanzo ilipochimbwa, ilileta uwezekano mpya kwa mtandao, ikileta mabadiliko makubwa katika fedha, umiliki, na uwezo wa programu.", + "page-10-year-hero-tagline": "''Miaka kumi imepita, milele uko mbele.''.", + "page-10-year-join-party-title": "''Jiunge na sherehe.''", + "page-10-year-join-party-description": "''Sherehekea miaka kumi 10 ya Ethereum pamoja na jumuiya ya kimataifa. Tafuta tukio la karibu au anzisha sherehe yako mwenyewe.''.", + "page-10-year-events-description-1": "''Jiunge na watu kote ulimwengu kwa mazungumzo, nyavu ya kijamii na sherehe tunapoadhimisha siku ya kuzaliwa ya kumi ya Ethereum.''.", + "page-10-year-events-description-2": "''Huwezi kufika ana kwa ana? Tazama matangazo yetu ya moja kwa moja na fuatilia taarifa kutoka kwa matukio duniani kote, ili kila mtu aweze kusherehekea hatua hii muhimu pamoja.''.", + "page-10-year-host-event-title": "''Shiriki tukio lako.''", + "page-10-year-host-event-description": "Je, unaandaa tukio? Weka maelezo ya tukio hapa chini ili liwekwe kwenye ramani.", + "page-10-year-host-event-cta": "''Shiriki tukio.''", + "page-10-year-innovation-title": "miaka 10 ya", + "page-10-year-innovation-subtitle": "''Ubunifu.''", + "page-10-year-innovation-description-1": "''Ethereum ilibadilisha mnyororo wa vizuizi kwa kutambulisha mikataba mahiri.''", + "page-10-year-innovation-description-2": "''Kwa Ethereum, mnyororo wa vizuizi zilibadilika kutoka kuwa rekodi ya kidijitali hadi kuwa jukwaa linaloweza kupangwa ambapo msimbo unatekelzwa moja kwa moja pindi masharti yanapotimizwa.''.", + "page-10-year-innovation-description-3": "''Ubunifu wa Ethereum uliwezesha kuzaliwa kwa sekta mpya kabisa kama vile DeFi, NFT, na DAO. Ulipanua matumizi ya mnyororo wa vizuizi zaidi ya sarafu ya kidijitali na kuifanya kuwa jukwaa linalobadilisha namna tunavyounda na kubadilishana thamani.''.", + "page-10-year-adoption-title": "miaka 10 ya", + "page-10-year-adoption-subtitle": "''Ueneaji.''", + "page-10-year-adoption-description-1": "''Kutoka kwenye waraka mweupe hadi zaidi ya milioni ishirini na nne za miamala ya kila siku ndani ya Ethereum.''", + "page-10-year-adoption-description-2": "''Ethereum imekuwa jukwaa la kimataifa la kompyuta linaloendesha maelfu ya maombi rasmi zinazotumiwa na mamilioni kila siku. Linavuka sekta na mipaka huku likiendelea kupanua matumizi yake.''.", + "page-10-year-stories-title": "miaka 10 ya", + "page-10-year-stories-subtitle": "Hadithi", + "page-10-year-stories-description-1": "Mapitio ya jinsi Ethereum inatumika katika maisha ya kila siku", + "page-10-year-stories-description-2": "''Kutoka kwa mamilioni ya pochi hadi kila pembe ya dunia, watu wanatumia Ethereum kwa njia zinazotia moyo. Hadithi hizi halisi zinaonyesha ubunifu, uhuru na muunganiko unaoendeshwa na Ethereum.''.", + "page-10-year-stories-cta": "shiriki hadithi yako", + "page-10-year-ideas-title": "Uko na wazo kuhusu jinsi jamii inaeza kusherehekea?", + "page-10-year-ideas-description": "Vitu vya mtandaoni, mchezo wa kimataifa wa trivia ya Ethereum, hakuna kikomo! Shiriki wazo lako hapa chini.", + "page-10-year-ideas-cta": "''Wasilisha wazo lako.''", + "page-10-year-event-link": "enda matukio", + "page-10-year-countdown-expired": "Ethereum ina umri wa miaka 10! 🚀", + "page-10-year-countdown-day": "siku", + "page-10-year-countdown-days": "siku", + "page-10-year-countdown-hour": "saa", + "page-10-year-countdown-hours": "saa", + "page-10-year-countdown-minute": "dakika", + "page-10-year-countdown-minutes": "dakika", + "page-10-year-countdown-second": "sekunde", + "page-10-year-countdown-seconds": "sekunde", + "page-10-year-banner-header": "''Miaka kumi 10 ya Ethereum.''", + "page-10-year-banner-launch-text": "Mnamo Julai 30, 2015, saa 3:44 jioni UTC, block ya kwanza ya kiambajengo ya Ethereum ilizaliwa.", + "page-10-year-banner-tagline": "''Miaka kumi imepita, bado mbele kuna umilele.''", + "page-10-year-banner-cta": "''Jiunge na sherehe.''", + "page-10-year-stories-read-more": "Soma zaidi", + "page-10-year-stories-show-original": "''Onyesha asili.''", + "page-10-year-stories-show-english": "Onyesha Kiingereza", + "page-10-year-stories-original-language": "Lugha ya asili", + "page-10-year-stories-english-translation": "''Tafsiri ya kiingereza.''", + "page-10-year-stories-show-more": "''Onyesha zaidi.''", + "page-10-year-globe-go-to-event": "enda matukio", + "page-10-year-innovation-card-1-title": "Uzinduzi wa Ethereum", + "page-10-year-innovation-card-1-date": "Julai 30, 2015", + "page-10-year-innovation-card-1-description-1": "''Kizuizi cha kwanza cha Ethereum kilianzishwa, kikizindua mtandao wa jina maalum. Toleo hili la awali lililokuwa na vipengele vya msingi pekee liliwapa watengenezaji nafasi ya kwanza ya kujenga maombi rasmi zilizogatuliwa na kujaribu mikataba mahiri.''.", + "page-10-year-innovation-card-1-description-2": "''Dhamira ya Ethereum: Mtandao wazi ambapo watumiaji wanadhibiti takwimu zao, maombi rasmi zinafanya kazi bila walinzi na thamani inapita kwa uhuru kati ya watu.''.", + "page-10-year-innovation-card-2-title": "DAI: sarafu thabiti ya kwanza.''", + "page-10-year-innovation-card-2-date": "''Desemba, 2015.''", + "page-10-year-innovation-card-2-description-1": "''Sarafu imara ya kwanza isiyo na udhibiti wa kati ilizinduliwa. DAI inadumisha uthamani wa karibu sawa na dola ya marekani kupitia dhamana ya fedha za kidijitali zilizofungwa ndani ya mikataba mahiri.''.", + "page-10-year-innovation-card-2-description-2": "Tofauti na sarafu thabiti zilizokandamizwa na kampuni, DAI inasimamiwa na shirika huru lisilo na kati (DAO), ikifanya iwe isiyohitaji kuamini na inayoendeshwa na jamii.", + "page-10-year-innovation-card-3-title": "''Cryptokitties na mipaka ya awali NFT.''", + "page-10-year-innovation-card-3-date": "Novemba, 2017", + "page-10-year-innovation-card-3-description-1": "''CryptoKittie walileta umiliki wa kidijitali kuwa rahisi. Mchezo huu wa awali wa NFT ulionyeshwa jinsi mnyororo wa vizuizi inaweza kuwezesha aina mpya ya maonyesho, ukusanyaji na utamaduni mtandaoni.''.", + "page-10-year-innovation-card-3-description-2": "''Ilibainishwa kuwa Ethereum inaweza kupanuka zaidi ya fedha hadi michezo ya kubahatisha, sanaa nautambulisho wa kidijitali, ikifungua uwezekano mpya kabisa wa ubunifu.''.", + "page-10-year-innovation-card-4-title": "''Majira ya joto ya DeFi.''", + "page-10-year-innovation-card-4-date": "''Juni 2020.''", + "page-10-year-innovation-card-4-description-1": "''Ukuaji mkubwa wa DeFi uliibadilisha kabisa jinsi dunia inavyofikiria kuhusu fedha. Itifaki za kukopesha, kufanya biashara na kupata faida ziliendelea kwa kasi kubwa, zikionyesha nguvu ya miundombinu ya kifedha iliyo wazi na inayoweza kuunganishwa.''.", + "page-10-year-innovation-card-4-description-2": "''Kipindi hiki kilileta mabilioni ya thamani kwenye mnyororo wa vizuizi na kuanzisha Ethereum kama tovuti cha fedha zisizo na udhibiti wa kati.''.", + "page-10-year-innovation-card-5-title": "Taarifa juu ya Muungano", + "page-10-year-innovation-card-5-date": "''Septemba 15, 2022.''", + "page-10-year-innovation-card-5-description-1": "Mabadiliko makubwa zaidi ya Ethereum bado. Mtandao ulibadilika bila mshono kutoka uthibitishaji-wa-kazi unaotumia nishati nyingi hadi proof-of-stake. Kukiwa na mabilioni ya thamani kwenye Ethereum, mabadiliko hayo yalifafanuliwa kama kubadilisha injini ya ndege katikati ya safari.", + "page-10-year-innovation-card-5-description-2": "Muungano ulipunguza matumizi ya nishati ya Ethereum kwa 99.95%, uliimarisha usalama wa mtandao, na kuweka msingi wa masasisho ya uongezwaji ya siku zijazo.", + "page-10-year-innovation-card-6-title": "ETFs za ETH za Moja kwa Moja", + "page-10-year-innovation-card-6-date": "Mei 23, 2024", + "page-10-year-innovation-card-6-description-1": "Wall Street inakumbatia Ethereum. Spot ETH ETFs zilizinduliwa, zikileta mtaji wa kitaasisi na uhalali wa kisheria kwa jukwaa linaloongoza duniani la mkataba-erevu.", + "page-10-year-innovation-card-6-description-2": "Idhini hiyo ilionyesha kukubalika zaidi kwa mali za ulimwengu halisi zilizowekwa tokeni, huku taasisi kuu za kifedha sasa zikijenga kwenye Ethereum kuleta kila kitu kuanzia mali isiyohamishika hadi hati fungani za hazina kwenye mnyororo.", + "page-10-year-adoption-card-1-title": "Muongo wa Ugatuzi", + "page-10-year-adoption-card-1-description": "Kilichoanza kama mfumo wa ikolojia maalum sasa kimeenea katika nchi 80+ kukiwa na wathibitishaji 870,000, nodi 13,600 halisi, na mamilioni ya watumiaji katika mabara yote.", + "page-10-year-adoption-card-1-link-text": "''Angalia takwimu za Ethereum.''", + "page-10-year-adoption-card-2-title": "''Miaka 10, maboresho 16, hakuna muda wa kupumzika 0.''", + "page-10-year-adoption-card-2-description": "Ethereum imekua na uendeshaji kamili bila kupumzika huku ikiendelea kubadilika. Mnyororo wa vizuizi haijawahi kuenda nje ya wavu.''.", + "page-10-year-adoption-card-2-link-text": "''Angalia ramani ya maendeleo.''", + "page-10-year-adoption-card-3-title": "Dola bilioni 123 katika soko la sarafu-imara", + "page-10-year-adoption-card-3-description": "Kufikia Q2 2025, Ethereum L1 inalinda zaidi ya dola bilioni 123 katika sarafu-imara, ikichukua zaidi ya 50% ya soko la kimataifa la sarafu-imara.", + "page-10-year-adoption-card-3-link-text": "Zaidi juu ya sarafu-imara", + "page-10-year-adoption-card-4-title": "Dola bilioni 75 zilizolindwa katika Ethereum DeFi", + "page-10-year-adoption-card-4-description": "Kufikia Q2 2025, Ethereum inalinda zaidi ya dola bilioni 75 katika DeFi kwenye mfumo wake wa ikolojia.", + "page-10-year-adoption-card-4-link-text": "Zaidi juu ya DeFi", + "page-10-year-adoption-card-5-title": "0.01 TWh kwa mwaka", + "page-10-year-adoption-card-5-description": "Kufuatia Muungano, matumizi ya nishati ya Ethereum yalipungua kwa kiasi kikubwa hadi 0.01 TWh kwa mwaka tu, kutoka kilele chake cha 93.95 TWh.", + "page-10-year-adoption-card-5-link-text": "Zaidi kwenye matumizi ya nishati ya Ethereum", + "page-10-year-adoption-card-6-title": "Zaidi ya 250 TPS", + "page-10-year-adoption-card-6-description": "Uwezo wa Ethereum umeongezeka sana tangu kuzinduliwa, huku mfumo wa ikolojia wa Ethereum sasa ukishughulikia zaidi ya miamala 250 kwa sekunde.", + "page-10-year-adoption-card-6-link-text": "Zaidi kuhusu safu ya 2", + "page-10-year-torch-title": "Mwenge wa Ethereum", + "page-10-year-torch-description": "NFT ya kipekee inayosherehekea miaka 10 ya Ethereum. Mwenge hupita kati ya wanajamii, ukiwakilisha roho ya ushirikiano na ugatuzi unaoifafanua Ethereum.", + "page-10-year-torch-current-holder": "Mshikaji wa Mwenge wa Sasa", + "page-10-year-torch-no-holder": "Hakuna mshikaji wa sasa", + "page-10-year-torch-history-title": "Historia ya Washikaji wa Mwenge", + "page-10-year-torch-no-history": "Hakuna historia ya uhamisho inayopatikana", + "page-10-year-torch-from": "Kutoka", + "page-10-year-torch-to": "Kwa", + "page-10-year-torch-view-tx": "Tazama Muamala", + "page-10-year-livestream-title": "Jiunge na mtiririko wa moja kwa moja", + "page-10-year-livestream-video-title": "Mtiririko wa moja kwa moja wa miaka 10 ya Ethereum", + "page-10-year-torch-nft-intro": "Ili kuadhimisha hatua hii ya kihistoria, tunatambulisha Mwenge wa Ethereum NFT, NFT inayoashiria roho ya ugatuzi na jamii ambayo imeufafanua muongo wa kwanza wa Ethereum.", + "page-10-year-torch-nft-description": "Kama mwali wa sherehe unaosafiri kutoka jamii moja hadi nyingine, Mwenge wa Ethereum utasafiri katika mfumo mzima wa ikolojia wa Ethereum. NFT hii maalum itapitishwa kutoka mkoba hadi mkoba kati ya wanajamii waliochaguliwa kwa makini, wasanidi programu, na wajenzi ambao wameunda hadithi ya Ethereum katika miaka 10 iliyopita.", + "page-10-year-torch-one-of-kind-title": "Ya kipekee:", + "page-10-year-torch-one-of-kind-description": "Kuna NFT moja tu ya Mwenge wa Ethereum, ikimfanya kila mshikaji kuwa mlezi wa muda wa urithi wa Ethereum", + "page-10-year-torch-time-limited-title": "Ulinzi wa muda mfupi:", + "page-10-year-torch-time-limited-description": "Kila mshikaji huweka mwenge kwa saa 24 kabla ya kuupitisha kwa mlezi anayefuata. Mnamo Julai 30 NFT hii itateketezwa ili kusherehekea maadhimisho hayo.", + "page-10-year-mint-card-title": "Tengeneza wakati huu", + "page-10-year-mint-card-description": "Sherehekea muongo wa ugatuzi na NFT ya bure, ya muda mfupi ya maadhimisho ya miaka 10. Tengeneza yako kabla muda haujaisha.", + "page-10-year-mint-card-ended-title": "Kipindi cha kudai kimekwisha", + "page-10-year-mint-card-ended-description": "Asanteni nyote kwa kujiunga na sherehe", + "page-10-year-video-aria-label": "Video ya maadhimisho ya miaka 10", + "page-10-year-nft-link-label": "Tazama NFT ya Miaka Kumi ya Ethereum kwenye OpenSea", + "page-10-year-terms-and-conditions": "Vigezo na Masharti" +} diff --git a/src/intl/sw/page-about.json b/src/intl/sw/page-about.json new file mode 100644 index 00000000000..a8e3ae3b494 --- /dev/null +++ b/src/intl/sw/page-about.json @@ -0,0 +1,35 @@ +{ + "page-about-h2": "Omba kipengele", + "page-about-h3": "Kazi inaendelea", + "page-about-h3-1": "Vipengele vilivyotekelezwa", + "page-about-h3-2": "Vipengele vilivyopangwa", + "page-about-li-1": "inaendelea", + "page-about-li-2": "iliyopangwa", + "page-about-li-3": "imetekelezwa", + "page-about-li-4": "imetekelezwa", + "page-about-link-1": "Msimbo chanzo wa hazina hii una leseni chini ya Leseni ya MIT", + "page-about-link-2": "GitHub", + "page-about-link-3": "Tazama orodha kamili ya kazi zinazoendelea kwenye GitHub", + "page-about-link-4": "Jiunge na seva yetu ya Discord", + "page-about-link-5": "Wasiliana nasi kwenye Twitter", + "page-about-link-6": "Tazama orodha kamili ya kazi zilizotekelezwa kwenye GitHub", + "page-about-link-7": "Unda suala kwenye GitHub", + "page-about-p-1": "Tangu kuzinduliwa kwa ethereum.org, tunajitahidi kuwa wawazi kuhusu jinsi tunavyofanya kazi. Hii ni moja ya maadili yetu ya msingi kwa sababu tunaamini kuwa uwazi ni muhimu kwa mafanikio ya Ethereum.", + "page-about-p-2": "Tunatumia", + "page-about-p-3": "kama zana yetu kuu ya usimamizi wa mradi. Tunapanga kazi zetu katika kategoria 3:", + "page-about-p-4": "Tunafanya tuwezavyo kuifahamisha jamii kuhusu hali ya kazi maalum.", + "page-about-p-5": "Kazi tunazotekeleza.", + "page-about-p-6": "Kazi tulizopanga kutekeleza baadaye.", + "page-about-p-7": "Kazi zilizokamilishwa hivi karibuni.", + "page-about-p-8": "Je, una wazo la jinsi ya kuboresha ethereum.org? Tungependa kushirikiana nawe!", + "page-what-is-ethereum-energy-consumption-chart-legend": "Matumiz ya nishati ya mwaka kwa lisaa la Terawati/mwaka", + "energy-consumption-chart-global-data-centers-label": "Kituo cha data cha Kimataifa", + "energy-consumption-chart-airbnb-label": "AirBnB", + "energy-consumption-gold-mining-cbeci-label": "Uchimbaji wa Dhahabu", + "energy-consumption-chart-btc-pow-label": "Uthibitisho-wa-Kazi wa Bitcoin", + "energy-consumption-chart-netflix-label": "Netflix", + "energy-consumption-chart-eth-pow-label": "Uthibitisho-wa-Kazi wa Ethereum", + "energy-consumption-chart-gaming-us-label": "Michezo ukiwa Marekani", + "energy-consumption-chart-paypal-label": "PayPal", + "energy-consumption-chart-eth-pos-label": "Uthibitisho-wa-Hisa wa Ethereum" +} diff --git a/src/intl/sw/page-apps.json b/src/intl/sw/page-apps.json index 9a704df94d8..f2d0589439c 100644 --- a/src/intl/sw/page-apps.json +++ b/src/intl/sw/page-apps.json @@ -1,289 +1,72 @@ { - "page-apps-1inch-logo-alt": "Nembo ya inchi 1", - "page-apps-aave-logo-alt": "Nembo ya Aave", - "page-apps-add-button": "Pendekeza dapp", - "page-apps-add-title": "Ongeza dapp", - "page-apps-ankr-logo-alt": "Nembo ya Ankr", - "page-apps-api3-logo-alt": "Nembo ya API3", - "page-apps-arweave-logo-alt": "Nembo ya ARweave", - "page-apps-audius-logo-alt": "Nembo ya Audius", - "page-apps-axie-infinity-logo-alt": "Nembo ya Axie Infinity", - "page-apps-balancer-logo-alt": "Nembo ya Balancer", - "page-apps-brave-logo-alt": "Nembo ya Brave", - "page-apps-beginner-friendly-description": "Programu gatuzi chache ni nzuri kwa anayeanza. Chunguza programu gatuzi chini.", - "page-apps-beginner-friendly-header": "Inawafaa wanaoanza", - "page-apps-category-arts": "Sanaa na mtindo", - "page-apps-category-browsers": "Vivinjari", - "page-apps-category-code-marketplaces": "Masoko ya misimbo", - "page-apps-category-collectibles": "Vitu vinavyokusanyika vya kidijitali", - "page-apps-category-competitive": "Michezo ya Web3", - "page-apps-category-computing": "Vifaa vya wasanidi programu", - "page-apps-category-dex": "Masoko ya kubadilishana", - "page-apps-category-investments": "Fedha za uwekezaji", - "page-apps-category-lending": "Kukopa na kukopesha", - "page-apps-category-lottery": "Ufadhili wa Umati", - "page-apps-category-marketplaces": "Masoko", - "page-apps-category-music": "Muziki", - "page-apps-category-payments": "Malipo", - "page-apps-category-insurance": "Bima", - "page-apps-category-portfolios": "Usimamizi wa jalada", - "page-apps-category-trading": "Masoko ya utabiri", - "page-apps-category-utilities": "Huduma za ziada", - "page-apps-category-worlds": "Ulimwengu pepe", - "page-apps-category-demand-aggregator": "Sababu zinazoleta uhitaji", - "page-apps-category-derivatives": "Dondoo", - "page-apps-category-liquid-staking": "Uwekaji dhamana wa ukwasi", - "page-apps-category-bridges": "Madaraja", - "page-apps-category-experiences": "Uzoefu wa pamoja", - "page-apps-category-guilds": "Vyama vya mapato", - "page-apps-category-avatar": "Picha wakilishi", - "page-apps-choose-category": "Chagua kundi", - "page-apps-category-social": "Mitandao ya kijamii", - "page-apps-category-content": "Maudhui", - "page-apps-category-community": "Jamii", - "page-apps-category-messaging": "Ujumbe", - "page-apps-category-identity": "Utambulisho", - "page-apps-collectibles-benefits-1-description": "Sanaa inapofanywa ishara kwenye Ethereum, umiliki unaweza kuthibitishwa kwa ajili ya wote kuona. Unaweza kufuatilia safari ya kazi ya sanaa kutoka uundaji hadi kwa anayeimiliki sasa.", - "page-apps-collectibles-benefits-1-title": "Umiliki unathibitika", - "page-apps-collectibles-benefits-2-description": "Kulipa ili kutiririsha muziki au kununua kazi za sanaa ni haki zaidi kwa wasanii. Kwa Ethereum kuna haja ndogo ya waamuzi. Na kama wasuluhishi wanahitajika, gharama zao si za juu sana kwa sababu majukwaa hayahitaji kulipia miundombinu ya mtandao.\nMuhtasari.", - "page-apps-collectibles-benefits-2-title": "Haki zaidi kwa watengenezaji", - "page-apps-collectibles-benefits-3-description": "Vifurushi vilivyofanywa tokeni vinafungamanishwa na anuani yako ya Ethereum, sio jukwaa. Kwa hiyo unaweza kuuza vitu kama vipengele vya mchezo kwenye soko lolote la Ethereum, sio tu ndani ya mchezo.", - "page-apps-collectibles-benefits-3-title": "Vifurushi vinavyokufaa", - "page-apps-collectibles-benefits-4-description": "Zana na bidhaa tayari zipo ili uweze kufanya sanaa yako kuwa tokeni na kuiuza. Na tokeni zako zinaweza kuuzwa kwenye majukwaa yoyote ya Ethereum.", - "page-apps-collectibles-benefits-4-title": "Miundo mbinu iko tayari", - "page-apps-collectibles-benefits-description": "Hizi ni programu zinazojikita katika umiliki wa kidijitali, kuogeza nafasi ya mavuno zaidi kwa waundaji na kuvumbua njia mpya za kuwekeza kwa waundaji unaowapenda na kazi zao.", - "page-apps-collectibles-benefits-title": "vifurushi na utiririshaji uliogatuliwa", - "page-apps-collectibles-button": "Sanaa na vifurushi", - "page-apps-collectibles-description": "Hizi ni programu zinazojikita katika umiliki wa kidijitali, kuogeza nafasi ya mavuno zaidi kwa waundaji na kuvumbua njia mpya za kuwekeza kwa waundaji unaowapenda na kazi zao.", - "page-apps-collectibles-title": "Sanaa zilizogatuliwa na vifurushi", - "page-apps-compound-logo-alt": "Nembo ya Compound", - "page-apps-convex-logo-alt": "Nembo ya Convex", - "page-apps-cryptopunks-logo-alt": "Nembo ya CryptoPunks", - "page-apps-cryptovoxels-logo-alt": "Nembo ya Cryptovoxels", - "page-apps-cyberconnect-logo-alt": "Nembo ya CyberConnect", - "page-apps-dapp-description-1inch": "Inakusaidia kukwepa bei ghali za kutelezza kwa kutafuta bei zinazofaa zaidi.", - "page-apps-dapp-description-aave": "Azima tokeni zako ili kupata riba na uondoe wakati wowote.", - "page-apps-dapp-description-ankr": "Seti ya bidhaa mbalimbali za miundo msingi ya Web3 ya ujenzi, malipo, michezo na zaidi - yote kwenye kiambajengo.", - "page-apps-dapp-description-api3": "Vyanzo vya data vya bei vya mhusika wa kwanza vinavyoruhusu programu gatuzi (dApps) kwenye mitandao 10 (na kuendelea) kuunganishwa na data ya bei ya mali kwa wakati halisi, ikijumuisha bei za kripto na forex.", - "page-apps-dapp-description-arweave": "Hifadhi data milele, endelevu, na ada moja tu ya mbele.", - "page-apps-dapp-description-async-art": "Unda, kusanya na ufanye biashara #ProgrammableArt - picha za kidijitali zimegawanywa katika \"Tabaka\" ambazo unaweza kutumia kuathiri picha kwa ujumla. Kila bwana na Tabaka ni tokeni ya ERC721.", - "page-apps-dapp-description-audius": "Majukwaa ya uturirishaji yaliogatuliwa. Wasikilizaji = pesa za waundaji, na sio lebo.", - "page-apps-dapp-description-axie-infinity": "Fanya biashara na viuimbe vipambanaji kwa jina Axies. Na jinshindie pesa unapocheza - iapatikana kwenye simu za rununu", - "page-apps-dapp-description-balancer": "Balancer ni kidhibiti cha kiotomatiki cha potifolio na ni jukwaa la biashara.", - "page-apps-dapp-description-brave": "Jipatie ishara kwa kuvinjari na kutegemeza waundaji uwapendao.", + "page-apps-all-apps": "Programu zote", "page-apps-dapp-description-cent": "Mtandao wa kijamii unapata pesa kwa kuchapisha NFT.", - "page-apps-dapp-description-compound": "Azima tokeni zako ili kupata riba na uondoe wakati wowote.", - "page-apps-dapp-description-convex": "Convex inaruhusu watoa huduma wa ukwasi wa Curve kupata ada za uuzaji na kudai mapato yalioongezwa ya CRV bila kuzifunga CRV yao.", - "page-apps-dapp-description-cryptopunks": "Nunua, weka zabuni, na toa punks (vibonzo) vya kuuza - moja ya vifurushi vya mwanzo kwenye Ethereum.", - "page-apps-dapp-description-cryptovoxels": "Unda nyumba za sanaa, jenga maduka, na nunua ardhi - Ulimwengu wa mtandaoni wa Ethereum.", - "page-apps-dapp-description-cyberconnect": "Protokali ya picha ya kijamii iliyogatuliwa inayosaidia programu gatuzi kuanzisha athari za mtandao na kujenga uzoefu wa kijamii ulio binafsi", - "page-apps-dapp-description-dark-forest": "Jishindie sayari bila ukomo, zinazoundwa kwa utaratibu, kwa ulimwengu maalumu wa kriptografia.", "page-apps-dapp-description-decentraland": "Kusanya, fanya biashara kwenye ardhi ya mtandaoni kwenye ulimwengu wa mtandaoni unaoweza kuvinjari.", "page-apps-dapp-description-ens": "Majina yanayozifaa anwani za Ethereum na tovuti zilizogatuliwa.", - "page-apps-dapp-description-foundation": "Wekeza kwenye matoleo ya pekee ya sanaa za kidijitali na fanya biashara na wanunuzi wengine.", "page-apps-dapp-description-gitcoin": "Jipatie kripto kwa kufanya kazi kwenye programu zilizo na vyanzo vya wazi.", - "page-apps-dapp-description-gitcoin-grants": "Ufadhili wa watu wengi kwa ajili ya miradi ya wana-Ethereum na michango iliokuzwa", - "page-apps-dapp-description-gm": "Jukwaa la kila kitu kwa mazungumzo, majukwaa, na sauti ambalo linashiriki mapato na watengeneza maudhui wake", "page-apps-dapp-description-gods-unchained": "Kadi ya kimkakati ya mchezo wa biashara. Jishindie kadi kwa kucheza na unaweza kuuza kwenye maisha halisi.", - "page-apps-dapp-description-golem": "Pata nguvu ya kompyuta za jamii ama kodisha rasilimali zako mwenyewe.", - "page-apps-dapp-description-graph": "Kielezo cha itifaki kwa ajili ya kutafuta mtandao kama Ethereum na IPFS.", - "page-apps-dapp-description-ipfs": "Mtandao wa kidijitali shirikishi uliobuniwa kuhifadhi na kukuza maarifa ya binadamu kwa kufanya tovuti iweze kuboreshwa, kuwa imara na wazi zaidi.", - "page-apps-dapp-description-radicle": "Ushirikishaji wa msimbo wa rika-kwa-rika ulio salama bila viunganishi.", - "page-apps-dapp-description-kyberswap": "Badilisha na pata kwa bei poa.", - "page-apps-dapp-description-kiwinews": "Pata habari, makala na bidhaa za kuvutia za Ethereum zilizochaguliwa na wajenzi kwa ajili ya wajenzi. Jadili pamoja na wasanidi wenzao, waanzilishi na wawekezaji.", - "page-apps-dapp-description-lido": "Imerahisishwa na salama kuweka dhamana kwa jili ya mali za kidijitali.", - "page-apps-dapp-description-loopring": "Jukwa la rika-kwa-rika lililojengwa kwa ajili ya kasi.", - "page-apps-dapp-description-marble-cards": "Unda na uza kadi za kidijitali za kipekee kulingana na URL.", - "page-apps-dapp-description-matcha": "Inatafuta majukwaa tofauti tofauti kukupatia wewe bei ilobora zaidi.", - "page-apps-dapp-description-meeds": "Vituo kwa ajili ya jamii ya tovuti ya tatu kwa ajili ya umri wa kazi za ugatuzi. Zawadi inatolewa kwa usawa na kwa uwazi kwa michango muhimu.", - "page-apps-dapp-description-mirror": "Imejengwa juu ya tovuti ya tatu, kioo kinachokuza machapisho yanayosukuma mipaka ya kuandika mtandaoni", - "page-apps-dapp-description-multichain": "Njia kuu ya tovuti ya tatu. Ni miundombinu imeundwa kwa ajili ya kuingia kufanya shughuli kwenye mnyororo mwingine.", - "page-apps-dapp-description-nifty-gateway": "Nunua kazi za wasanii, wakimbiaji, chapa na waundaji wakuu kwenye mfumo.", - "page-apps-dapp-description-summerfi": "Uza, kopa na weka akiba na Dai, sarafu-imara ya Ethereum.", - "page-apps-dapp-description-opensea": "Nunua, uza, gundua na fanya biashara ya bidhaa zenye ukomo.", - "page-apps-dapp-description-opera": "Tuma kripto kutoka kwenye kivinjari chako kwenda kwa wafanya biashara, watumiaji wengine, na programu.", - "page-apps-dapp-description-osuvox": "Picha za 3D zinazoishi kwenye kiambajengo", - "page-apps-dapp-description-poap": "Kusanya NFT ili kuthibitisha ulikuwepo sehemu tofauti ya mtandaonmi au matukio halisi ya uso kwa uso,. Zitumie kujiunga kwenye bahati nasibu, piga kura, shiriki, au jisifu tu.", - "page-apps-dapp-description-polymarket": "Weka dau juiu ya matokeo. Fanya biashara juu ya taarifa za masoko.", - "page-apps-dapp-description-pooltogether": "Bahati nasibu usioweza kuipoteza. Tuzo za kila wiki.", - "page-apps-dapp-description-index-coop": "Hazina ya faharasa ya crypto ambayo hutoa kwingineko yako kufichua tokeni za juu za DeFi.", - "page-apps-dapp-description-nexus-mutual": "Chanjo bila kampuni ya bima. Jilinde dhidi ya hitilafu na udukuzi wa mikataba mahiri.", - "page-apps-dapp-description-etherisc": "Kiolezo cha bima iliyogatuliwa ambayo mtu yeyote anaweza kutumia kuunda bima yake mwenyewe.", - "page-apps-dapp-description-zapper": "Fuatilia jalada lako na utumie bidhaa mbalimbali za DeFi kutoka kiolesura kimoja.", - "page-apps-dapp-description-zerion": "Dhibiti kwingineko yako na utathmini kwa urahisi kila kipengee cha DeFi kwenye soko.", - "page-apps-dapp-description-rotki": "Zana huria ya kufuatilia jalada, kufanya uchanganuzi, uhasibu na ripoti za kodi, inayoheshimu faragha yako.", - "page-apps-dapp-description-krystal": "Jukwaa moja kwa linalokupa ufikiaji wa huduma za DeFi uzipendazo.", - "page-apps-dapp-description-rarible": "Unda, uuze na ununue vifurushi vya ishara.", - "page-apps-dapp-description-request-finance": "Seti ya zanaa za kifedha kwa ajili ya kripto za ankara, malipo ya mishahara na gharama.", - "page-apps-dapp-description-rubic": "Kiunganisha teknolojia cha mwingiliio-wa-mnyororo kwa watumiaji na programu gatuzi.", - "page-apps-dapp-description-sablier": "Pata mtiririko wa hela katika wakati halisi.", - "page-apps-dapp-description-spatial": "Unda picha yako ikiwa na chaguzi zako kwenye ulimwengu wa 3D", - "page-apps-dapp-description-spruce": "Seti ya programu za uwazi (programu huria) kuacha uthibiti wa utambulisho na data pale ambapo: ipo mikononi mwa watumiaji.", - "page-apps-dapp-description-status": "Imebuniwa kuruhusu uhuru wa mawazo, kulinda haki za faragha, kulinda maongezi, na kuinua uhuru wa watu.", - "page-apps-dapp-description-superrare": "Nunua kazi za sanaa za kiidjitali kutka kwa wasanii au masoko ya sekondari.", - "page-apps-dapp-description-synthetix": "Synthetix ni itifaki ya utoaji wa na ufanyaji biashara wa amali asili", - "page-apps-dapp-description-uniswap": "Badilisha ishara kiurahisis au toa ishara kupata zawadi kwa silimia % kadhaa.", - "page-apps-dapp-description-xmtp": "Tuma ujumbe baina ya akaunti ya kiambajengo, Ikiwemo jumbe za faragha, tahadhari, matangazo, na zaidi.", - "page-apps-dapp-description-yearn": "Yearn Finance ni mkusanyaji wa mapato. Kupatia watu binafsi, DAO na itifaki nyinginezo njia ya kuweka mali ya kidijitali na kupokea mapato.", - "page-apps-docklink-dapps": "Utangulizi wa dapps", - "page-apps-docklink-smart-contracts": "Mikataba erevu", - "page-apps-dark-forest-logo-alt": "Nembo ya Dark Forest", - "page-apps-decentraland-logo-alt": "Nembo ya Decentraland", - "page-apps-index-coop-logo-alt": "Nembo ya index Coop", - "page-apps-nexus-mutual-logo-alt": "Nembo ya Nexus Mutual", - "page-apps-etherisc-logo-alt": "Nembo ya Etherisc", - "page-apps-zapper-logo-alt": "Nembo ya Zapper", - "page-apps-zerion-logo-alt": "Nembo ya Zerion", - "page-apps-rotki-logo-alt": "Nembo ya Rotiki", - "page-apps-krystal-logo-alt": "Nembo ya Krystal", - "page-apps-synthetix-logo-alt": "Nembo ya Synthetix", - "page-apps-desc": "Tafuta programu ya Ethereum ujaribishe.", - "page-apps-doge-img-alt": "Kielelezo cha doge akitumia tarakilishi", - "page-apps-editors-choice-dark-forest": "Cheza dhidi ya wengine kujipatia sayari na jaribishe upanga unaovuja wa Ethereum inayotanuka/teknolojia binafsi. Labda kwa wale wanaoitambua Ethereum tayari.", - "page-apps-editors-choice-foundation": "Wekeza katika utamaduni. Nunua, fanya biashara na uza kazi za kipekee za kidijitali na mitindo kutoka kwa wasanii, wanamuziki na chapa za ajabu.", - "page-apps-editors-choice-pooltogether": "Nunua tikiti ya bahati nasibu isiyo na hasara. Kila wiki, riba inayotokana na kundi zima la tikiti hutumwa kwa mshindi mmoja wa bahati. Rudisha pesa zako wakati wowote upendao.", - "page-apps-editors-choice-uniswap": "Badilisha tokeni zako kwa urahisi. Kipendwa cha jumuiya kinachokuruhusu kufanya biashara ya tokeni na watu kwenye mtandao.\nMuhtasari.", - "page-apps-ens-logo-alt": "Nembo ya Ethereum Name Service", - "page-apps-explore-dapps-description": "Prograu nyingi zilizogatuliwa (dapps) bado ziko kwenye majaribio, upimaji wa uwezekano wa mitandaao iliogatuliwa. Lakini kumekuwepo na wahamaji wa mwanzo waliofanikiwa katika teknolojia, uchumi, michezo na vitengo mbali mbali vya viavyokusanyika.", - "page-apps-explore-dapps-title": "Chunguza dapps", - "page-apps-features-1-description": "Mara msimbo wa dapp utakapozinduliwa kwenye Ethereum, haiitawezekana kuuondoa. Na mtu yeyote anaweza kutumia huduma za dapps. Hata kama timu ilio nyuma ya dapp imekutoa bado unaweza kuitumia. Pale inapokua kwenye ethereum, inakaa hapo hapo.", - "page-apps-features-1-title": "Hamna wamiliki", - "page-apps-features-2-description": "Huwezi kuzuiliwa kutuia dapp au kuwasilisha miamala. Kwa mfano Twitter ingekua kwenye Ethereum, hamna ambae angeweza kuzuia akaunti yako au kukuzuia wewe kuendelea ku-tweet.", - "page-apps-features-2-title": "Isio na udhibiti", - "page-apps-features-3-description": "Kwa sababu Ethereum ina ETH, malipo yanatoka kwa Ethereum. Wasanidi programu hawahitaji kutumia muda kujumuika na watoa huduma wengine wa malipo.", - "page-apps-features-3-title": "Malipo yaliyojumuishwa", - "page-apps-features-4-description": "Msimbo wa Dapp mara nyingi uko wazi na unaweza kutumika kwa chaguomsingi. Timu hujenga mara kwa mara kwa kutumia kazi ya timu nyingine. Ikiwa ungependa kuruhusu watumiaji kubadilishana tokeni kwenye dapp yako, unaweza tu kuunganisha msimbo mwingine wa dapps.", - "page-apps-features-4-title": "Unganisha na utumie", - "page-apps-features-5-description": "Kwa dapps nyingi, huhitaji kushiriki utambulisho wako wa ulimwengu halisi. Akaunti yako ya Ethereum ndiyo kuingia kwako na unahitaji tu mkoba.", - "page-apps-features-5-title": "Kuingia mara moja bila kujitambulisha", - "page-apps-features-6-description": "Kriptografia huhakikisha kwamba wavamizi hawawezi kughushi miamala na mwingiliano mwingine wa dapp kwa niaba yako. Unaidhinisha vitendo vya dapp ukitumia akaunti yako ya Ethereum - kwa kawaida kupitia mkoba wako - ili hati zako zisalie salama.", - "page-apps-features-6-title": "Imehakikishwa na kriptografia", - "page-apps-features-7-description": "Pale ambapo dapp inakua hai kwenye Ethereum, itaanguka pale tu ethereum yenyewe itakapoanguka. Mitandao ya ujazo wa Ethereum ina sifa mbaya kwa washambuliaji maana haipenyeki.", - "page-apps-features-7-title": "Haina vipindi vya kushuka", - "page-apps-finance-benefits-1-description": "Huduma za kiuchumi zinazoendeshwa juu ya Ethereum hazihitaji usajili. kama una pesa na mtandao uko vizuri kufanya shughuli zako.", - "page-apps-finance-benefits-1-title": "Ufikiaji wa wazi", - "page-apps-finance-benefits-2-description": "Kuna ulimwengu mzima wa ishara ambazo unaweza kuwasiliana nazo kwenye bidhaa hizi za kifedha. Watu wanajenga tokeni mpya juu ya Ethereum kila wakati.", - "page-apps-finance-benefits-2-title": "Uchumi mpya wa tokeni", - "page-apps-finance-benefits-3-description": "Timu imejenga sarafu-imara yenye mwendo mdogo wa mabadiliko ya bei ya sarafu za kripto. Hii inaruhusu wewe kufanya uchuguzi na kutumia kripto bila ya hatari na kutokuwa na uhakika.", - "page-apps-finance-benefits-3-title": "Sarafu-imara", - "page-apps-finance-benefits-4-description": "Bidhaa za kifedha katika nafasi ya Ethereum zote ni za msimu na zinaendana. Mipangilio mipya ya moduli hizi inagonga soko kila wakati, na kuongeza kile unachoweza kufanya na crypto yako.", - "page-apps-finance-benefits-4-title": "Huduma za kifedha zilizounganishwa", - "page-apps-finance-benefits-description": "Je, ni nini kuhusu Ethereum inayoruhusu maombi ya fedha yaliyogatuliwa kustawi?", - "page-apps-finance-benefits-title": "fedha zilizogatuliwa (DeFi)", - "page-apps-finance-button": "Fedha", - "page-apps-finance-description": "Hizi ni programu zinazolenga kujenga huduma za kifedha kwa kutumia sarafu za siri. Wanatoa upendeleo wa kukopesha, kukopa, kupata riba na malipo ya kibinafsi - hakuna data ya kibinafsi inayohitajika.", - "page-apps-finance-title": "Fedha zilizogatuliwa (DeFi)", - "page-apps-foundation-logo-alt": "Nembo ya msingi", - "page-apps-gaming-benefits-1-description": "Iwe ni ardhi pepe au kadi za biashara, bidhaa zako zinaweza kuuzwa kwenye masoko ya bidhaa zinazokusanywa. Vipengee vyako vya ndani ya mchezo vina thamani ya ulimwengu halisi.", - "page-apps-gaming-benefits-1-title": "Vipengele vya mchezo pia hutumika kama tokeni", - "page-apps-gaming-benefits-2-description": "Unamiliki vitu vyako, na katika hali zingine maendeleo yako, sio kampuni za mchezo. Kwa hivyo hutapoteza chochote ikiwa kampuni inayoendesha mchezo imeshambuliwa, itakumbwa na hitilafu ya seva, au itasambaratishwa.", - "page-apps-gaming-benefits-2-title": "Mafanikio yako ni salama", - "page-apps-gaming-benefits-3-description": "Kwa njia hiyo hiyo malipo ya Ethereum yanapatikana kwa mtu yeyote ili kuthibitisha, michezo inaweza kutumia ubora huu ili kuhakikisha haki. Kwa nadharia, kila kitu kinaweza kuthibitishwa kutoka kwa idadi ya vibao muhimu hadi saizi ya kifua cha vita cha mpinzani.", - "page-apps-gaming-benefits-3-title": "Haki inayoonekana", - "page-apps-gaming-benefits-description": "Je, ni nini kuhusu Ethereum inayoruhusu maombi ya fedha yaliyogatuliwa kustawi?", - "page-apps-gaming-benefits-title": "michezo iliogatuliwa", - "page-apps-gaming-button": "Michezo", - "page-apps-gaming-description": "Hizi ni programu zinazoangazia uundaji wa ulimwengu pepe na kupambana na wachezaji wengine kwa kutumia mkusanyiko ambao una thamani ya ulimwengu halisi.", - "page-apps-gaming-title": "Michezo iliogatuliwa", - "page-apps-get-some-eth-description": "Vitendo vya Dapp vinagharimu ada ya ununuzi", - "page-apps-get-started-subtitle": "Kujaribu programu gatuzi utaitaji mkoba na kiasi cha ETH. Mkoba utakuwezesha wewe kuunganisha, au kuingia ndani, Na utahitaji ETH kulipa ada ya muamala.", - "page-apps-get-started-title": "Anza", - "page-apps-gitcoin-grants-logo-alt": "Nembo ya Gitcoin Grants", - "page-apps-gitcoin-logo-alt": "Nembo ya Gitcoin", - "page-apps-gm-logo-alt": "nembo ya gm.xyz", - "page-apps-gods-unchained-logo-alt": "Nembo ya Gods Unchained", - "page-apps-golem-logo-alt": "Nembo ya Golem", - "page-apps-graph-logo-alt": "Nembo ya grafu", - "page-apps-radicle-logo-alt": "Nembo ya Radical", - "page-apps-hero-header": "Zana na huduma zinazoendeshwa na Ethereum", - "page-apps-hero-subtitle": "Dapps ni harakati inayokua ya programu zinazotumia Ethereum kutatiza miundo ya biashara au kuvumbua mpya.", - "page-apps-how-dapps-work-p1": "Programu gatuzi ina miundombinu yake ya msimbo wa nyuma (mikataba erevu) kufanya kazi kama mtandao gatuzi na sio seva za umoja. Wnatumia.", - "page-apps-how-dapps-work-p2": "Mkataba mahiri ni kama seti ya sheria zinazotumika kwa kila mtu kuona na kutekelezwa kulingana na sheria hizo. Hebu fikiria mashine ya kuuza: ikiwa utaisambaza kwa fedha za kutosha na uteuzi sahihi, utapata bidhaa unayotaka. Na kama vile mashine za kuuza, kandarasi mahiri zinaweza kuhifadhi pesa kama vile akaunti yako ya Ethereum. Hii inaruhusu msimbo kupatanisha makubaliano na shughuli.", - "page-apps-how-dapps-work-p3": "Mara dapps zinapotumika kwenye mtandao wa Ethereum huwezi kuzibadilisha. Dapps zinaweza kugatuliwa kwa sababu zinadhibitiwa na mantiki iliyoandikwa kwenye mkataba, si mtu binafsi au kampuni.", - "page-apps-how-dapps-work-title": "Jinsi dapps inavyofanya kazi", - "page-apps-ipfs-logo-alt": "Nembo ya IPFS", - "page-apps-kyberswap-logo-alt": "Logo ya KyberSwap", - "page-apps-learn-callout-button": "Anza kujenga", - "page-apps-learn-callout-description": "Tovuti yetu ya wasanidi programu wa jumuiya ina hati, zana, na mifumo ya kukusaidia kuanza kuunda dapp.", - "page-apps-learn-callout-image-alt": "Kielelezo cha mkono ukiunda nembo ya ETH kwa matofali aina ya lego.", - "page-apps-learn-callout-title": "Jifunze kuunda dapp", - "page-apps-lido-logo-alt": "Nembo ya Lido", - "page-apps-loopring-logo-alt": "Nembo ya Loopring", - "page-apps-magic-behind-dapps-description": "Dapps inaweza kuhisi kama programu za kawaida. Lakini nyuma ya pazia wana sifa maalum kwa sababu wanarithi nguvu zote za Ethereum. Hiki ndicho kinachofanya dapps kuwa tofauti na programu.", - "page-apps-magic-behind-dapps-link": "Ni nini kinachofanya Ethereum kuwa nzuri?", - "page-apps-magic-behind-dapps-title": "Uchawi nyuma ya dapps", - "page-apps-magic-title-1": "Uchawi", - "page-apps-magic-title-2": "nyuma", - "page-apps-magician-img-alt": "Kielelezo cha wachawi", - "page-apps-marble-cards-logo-alt": "nembo ya marble.cards", - "page-apps-async-logo-alt": "Nembo ya Async", - "page-apps-matcha-logo-alt": "Nembo ya Matcha", - "page-apps-meeds-logo-alt": "Nembo ya Meeds", - "page-apps-metaverse-benefits-title": "metaverse", - "page-apps-metaverse-benefits-description": "Je, ni nini kuhusu Ethereum inayoruhusu metaverse kustawi?", - "page-apps-metaverse-benefits-1-title": "NFTs", - "page-apps-metaverse-benefits-1-description": "Ya kipekee kwenye vitu vya mchezo ambayo inamilikiwa na watumiaji na inaweza tumika kati ya ulimwengu sadifu na masoko yanayo toa msaada wa viwango ivyo.", - "page-apps-metaverse-benefits-2-title": "Jumuiya zinazomilikiwa na watumiaji", - "page-apps-metaverse-benefits-2-description": "Utambulisho unamilikiwa na mtumiaji mwenyenafasi nyingi za kuchunguza na kuunda mitandao ya kijamii kupitia ulimwengu sadifu.", - "page-apps-metaverse-button": "Meterverse", - "page-apps-metaverse-title": "Meterverse", - "page-apps-metaverse-description": "Hizi ni programu zinazo wezesha mtumiaji kushiriki kwa uhuru kwenye ulimwengu sadifu. Watumiaji wanaweza unda mitandao binafsi na kuchukua umiliki wa mali za kidijitali", - "page-apps-mirror-logo-alt": "Nembo ya Mirror", - "page-apps-mobile-options-header": "Vinjari kitengo kingine", - "page-apps-multichain-logo-alt": "Nembo ya Minyororo-mingi", - "page-apps-nifty-gateway-logo-alt": "Nembo ya Nifty Gateway", - "page-apps-summerfi-logo-alt": "Nembo ya Summer.fi", - "page-apps-opensea-logo-alt": "Nembo ya OpenSea", - "page-apps-opera-logo-alt": "Nembo ya Opera", - "page-apps-osuvox-logo-alt": "Nembo ya OSUVOX", - "page-apps-polymarket-logo-alt": "Nembo ya Polymarket", - "page-apps-poap-logo-alt": "Nembo ya uthibitiusho wa ushiriki", - "page-apps-pooltogether-logo-alt": "Nembo ya PoolTogether", - "page-apps-rarible-logo-alt": "Nembo ya Rarible", - "page-apps-ready-button": "Nenda", - "page-apps-ready-description": "Chagua dapp ili kujaribu", - "page-apps-ready-title": "Uko tayari?", - "page-apps-request-finance-logo-alt": "Nembo Ombi ya Fedha", - "page-apps-rubic-logo-alt": "Nembo ya Rubic", - "page-apps-sablier-logo-alt": "Nembo ya Sablier", - "page-apps-set-up-a-wallet-button": "Tafuta pochi", - "page-apps-set-up-a-wallet-description": "Mkoba ni \"kuingia\" kwako kwa dapp", - "page-apps-set-up-a-wallet-title": "Andaa pochi", - "page-apps-social-button": "Jamii", - "page-apps-social-description": "Hizi ni programu zilizo jikita kwenye kutengeneza mitandao ya kijamii kutumia teknolojia ya utambulisho wa ugatuzi ambapo utambulisho wa kidijitali na grafu za kijamii zinamilikiwa na watumiaji.", - "page-apps-social-title": "Jamii", - "page-apps-spatial-logo-alt": "Nembo ya Spatial", - "page-apps-spruce-logo-alt": "Nembo ya Spruce", - "page-apps-status-logo-alt": "Nembo ya Status", - "page-apps-superrare-logo-alt": "Nembo ya SuperRare", - "page-apps-technology-button": "Teknolojia", - "page-apps-technology-description": "Hizi ni programu ambazo zinaangazia ugatuaji wa zana za wasanidi programu, kujumuisha mifumo ya kriptoeconomic katika teknolojia iliyopo, na kuunda soko kwa kazi huria ya ukuzaji.", - "page-apps-technology-title": "Teknolojia zilizogatuliwa", - "page-apps-uniswap-logo-alt": "Nembo ya Uniswap", - "page-apps-wallet-callout-button": "Tafuta pochi", - "page-apps-wallet-callout-description": "Pochi ni dapps pia. Tafuta moja kulingana na vipengele vinavyokufaa.", - "page-apps-wallet-callout-image-alt": "Kielelezo cha roboti.", - "page-apps-wallet-callout-title": "Angalia pochi", - "page-apps-warning-header": "Mara zote fanya utafitit wako mwenyewe", - "page-apps-warning-message": "Ethereum ni teknolojia mpya na matumizi mengi ni mapya. Kabla ya kuweka kiasi kikubwa cha pesa, hakikisha unaelewa hatari.", - "page-apps-what-are-dapps": "Dapps ni nini?", - "page-apps-more-on-defi-button": "Zaidi juu fedha zilizogatuliwa (DeFi)", - "page-apps-more-on-nft-button": "Zaidi kuhusu vifurushi vya tokeni", - "page-apps-more-on-nft-gaming-button": "Zaidi juu ya michezo ya ndani iliofanya tokeni", - "page-apps-dapp-description-pwn": "Mikopo rahisi iliyoauniwa na tokeni yoyote ama NFT kwenye Ethereum.", - "page-apps-pwn-image-alt": "Nembo ya PWN", - "page-apps-xmtp-logo-alt": "Nembo ya XMTP", - "opage-apps-yearn-logo-alt": "Nembo ya Yearn", - "page-apps-yearn-image-alt": "Nembo ya Yearn", - "page-apps-convex-image-alt": "Nembo ya Convex", + "page-apps-dapp-description-augur": "Weka dau juiu ya matokeo. Fanya biashara juu ya taarifa za masoko.", + "page-apps-ready-button": "Go", "foundation": "Msingi", "page-wallets-get-some": "Pata ETH", - "page-apps-dapp-description-curve": "Curve ni dex iliyojikita kwenye sarafu-imara", - "page-apps-curve-image-alt": "Nembo ya Curve", - "page-apps-dapp-description-dodo": "DODO ni mtoaji wa ukwasi kwenye mfumo, ambaye anatumia algoriti ya Mtengeneza Soko Tendeti (PMM)", - "page-apps-dodo-image-alt": "Nembo ya DODO", - "page-apps-dapp-description-artblocks": "Art Blocks imedhamiria kuleta jumla ya kazi nzuri zilizozalishwa na sanaa kwenye uhai", - "page-apps-artblocks-image-alt": "Nembo ya Art Blocks", - "page-apps-explore-title": "Unataka kutazama programu nyingi?", - "page-apps-explore": "Angalia mamia ya programu gatuzi" + "page-apps-title": "Programu", + "page-apps-subtitle": "Gundua orodha ya programu zilizoratibiwa zinazoendeshwa kwenye Ethereum na mitandao ya safu ya 2", + "page-apps-learn-button": "Jifunze kuhusu programu", + "page-apps-highlights-title": "Vivutio", + "page-apps-discover-title": "Gundua", + "page-apps-applications-title": "Matumizi", + "page-apps-categories-title": "Kategoria za maombi", + "page-apps-community-picks-title": "Chaguo za jumuiya", + "page-apps-meta-title": "Programu maarufu za kripto kwenye Ethereum", + "page-apps-meta-description": "Gundua programu za kripto kwenye Ethereum: chunguza DeFi, NFTs, Kijamii, Michezo, Madaraja, Faragha, Tija na mfumo mtawanyo wa kimamlaka wa DAO. Pata programu zinazoaminika za kwenye mnyororo za kufanya biashara, kupata pesa na kuingiliana.", + "page-apps-category-defi-name": "DeFi", + "page-apps-category-defi-description": "DeFi ni aina ya maombi programu mtawanyo ambayo huruhusu watumiaji kukopesha, kukopa, kufanya biashara na kupata riba kwa mali zao za kripto.", + "page-apps-category-defi-meta-title": "Orodha ya programu za Ethereum DeFi — Kukopesha, Kukopa na Mazao", + "page-apps-category-defi-meta-description": "Gundua programu bora za DeFi kwenye Ethereum za kukopesha, kukopa, utoaji wa tokeni imara, mkopo na biashara ya mtandaoni ya DEX.", + "page-apps-category-collectibles-name": "Vinavokusanywa", + "page-apps-category-collectibles-description": "Mikusanyiko ni vipengee vya dijitali ambavyo ni vya kipekee na haviwezi kuigwa.", + "page-apps-category-collectibles-meta-title": "Orodha ya programu bora za NFT kwenye Ethereum", + "page-apps-category-collectibles-meta-description": "Gundua programu bora za NFT za kununua vitu vinavyokusanywa, kufanya biashara gaming skins, na kugundua vipengee vipya vya kidijitali kwenye soko kuu la Ethereum.", + "page-apps-category-social-name": "Jamii", + "page-apps-category-social-description": "Jamii ni aina ya programu za mfumo mtawanyo ambazo huruhusu watumiaji kuungana na wengine na kushiriki maudhui.", + "page-apps-category-social-meta-title": "Programu za kijamii kwenye Ethereum: Farcaster, Zora na zaidi", + "page-apps-category-social-meta-description": "Gundua programu bora zaidi za ujumbe na kijamii kwenye Ethereum.", + "page-apps-category-gaming-name": "Michezo", + "page-apps-category-gaming-description": "Michezo ya Kubahatisha ni aina ya programu zilizogatuliwa ambazo huruhusu watumiaji kucheza michezo na kupata zawadi.", + "page-apps-category-gaming-meta-title": "Orodha ya michezo ya kripto na NFT kwenye Ethereum", + "page-apps-category-gaming-meta-description": "Gundua michezo bora ya blockchain ambayo inafurahisha kucheza. MMORPG, michezo ya kadi, michezo ya kubahatisha ya AI, RPG, michezo ya kawaida", + "page-apps-category-bridge-name": "Madaraja / Vusha", + "page-apps-category-bridge-description": "Bridge ni aina ya programu za mfumo mtawanyo ambazo huruhusu watumiaji kuunganisha mali zao kati ya mitandao tofauti.", + "page-apps-category-bridge-meta-title": "Orodha ya madaraja ya Ethereum kwa mitandao tofauti", + "page-apps-category-bridge-meta-description": "Gundua programu bora zaidi ya daraja la kripto ili kuhamisha mali yako kati ya mitandao tofauti na safu ya 2s.", + "page-apps-category-productivity-name": "Tija", + "page-apps-category-productivity-description": "Tija ni aina ya programu za mfumo mtawanyo ambazo huruhusu watumiaji kuwa na tija.", + "page-apps-category-productivity-meta-title": "Programu za tija na mfumo mtawanyo", + "page-apps-category-productivity-meta-description": "Gundua programu bora za Ethereum kwa utambulisho wa mfumo mtawanyo, hifadhi, DNS na kompyuta ya video. Ongeza tija yako kwenye mnyororo kwa zana za miundombinu zinazoaminika.", + "page-apps-category-privacy-name": "Faragha", + "page-apps-category-privacy-description": "Faragha ni kategoria ya programu za mfumo mtawanyo ambazo huruhusu watumiaji kuwa wa faragha.", + "page-apps-category-privacy-meta-title": "Programu za faragha za Ethereum: Tornado Cash na zingine", + "page-apps-category-privacy-meta-description": "Gundua programu za faragha za Ethereum kama vile Tornado Cash na zingine ambazo hulinda jina la mtumiaji, kuwezesha miamala ya kibinafsi na kuimarisha usiri mtandaoni.", + "page-apps-category-dao-name": "DAO", + "page-apps-category-dao-description": "DAO ni kategoria ya programu za mfumo mtawanyo ambazo huruhusu watumiaji kutawala na kuunda mashirika yanayojitawala ya mfumo mtawanyo.", + "page-apps-category-dao-meta-title": "Orodha ya zana za DAO kwenye Ethereum", + "page-apps-category-dao-meta-description": "Gundua zana bora za DAO kwenye Ethereum kwa utawala, usimamizi wa hazina, upigaji kura, na uratibu wa wachangiaji. Zindua, dhibiti na ukue shirika lako la mfumo mtawanyo.", + "page-apps-see-all": "Tazama zote", + "page-apps-suggest-an-app-title": "Pendekeza programu", + "page-apps-suggest-an-app-description": "Daima tunatafuta programu mpya za kuongeza kwenye orodha yetu. Ikiwa unajua programu ambayo unadhani inapaswa kuwa kwenye orodha, tafadhali tujulishe.", + "page-apps-suggest-an-app-button": "Pendekeza programu", + "page-apps-filter-by": "Chuja kwa", + "page-apps-filter-all": "Zote", + "page-apps-showing": "Kuonyesha", + "page-apps-visit-app": "Tembelea {appName}", + "page-apps-see-next": "Tazama inayofuata", + "page-apps-info-title": "Habari", + "page-apps-info-founded": "Ilianzishwa", + "page-apps-info-creator": "Muundaji", + "page-apps-info-last-updated": "Usasisho wa mwisho", + "page-apps-gallery-title": "Matunzio", + "page-apps-more-apps-like-this": "Programu zaidi kama hii", + "page-apps-today": "Leo", + "page-apps-one-day-ago": "siku 1 iliyopita", + "page-apps-days-ago": "siku {days} zilizopita" } diff --git a/src/intl/sw/page-assets.json b/src/intl/sw/page-assets.json new file mode 100644 index 00000000000..605f489bff1 --- /dev/null +++ b/src/intl/sw/page-assets.json @@ -0,0 +1,61 @@ +{ + "page-assets-bazaar": "Soko la Ethereum", + "page-assets-beacon-chain": "Mlolongo wa beacon", + "page-assets-blocks": "Nyanzo za ujenzi", + "page-assets-dao": "DAO", + "page-assets-defi": "DeFi", + "page-assets-merge": "Muungano", + "page-assets-doge": "Doge inayotumia dapps", + "page-assets-download-artist": "Msanii:", + "page-assets-download-download": "Pakua", + "page-assets-enterprise": "Ethereum ya kibiashara", + "page-assets-eth": "Ether(ETH)", + "page-assets-eth-diamond-color": "Almasi ya ETH (rangi)", + "page-assets-eth-diamond-glyph": "Almasi ya ETH (glif)", + "page-assets-eth-diamond-gray": "Almasi ya ETH (kijivu)", + "page-assets-eth-diamond-purple": "Almasi ya ETH (zambarau)", + "page-assets-eth-diamond-white": "Almasi ya ETH (nyeupe)", + "page-assets-eth-diamond-colored": "Almasi ya ETH (imejazwa rangi)", + "page-assets-eth-diamond-colored-svg": "Almasi ya ETH (imejazwa rangi, SVG)", + "page-assets-eth-glyph-video-dark": "Video ya ETH ya glif (nyeusi)", + "page-assets-eth-glyph-video-light": "Video ya ETH ya glif (yenye mwanga)", + "page-assets-eth-logo-landscape-gray": "Mandhari ya nembo ya ETH (Kijivu)", + "page-assets-eth-logo-landscape-purple": "Mandhari ya nembo ya ETH (zambarau)", + "page-assets-eth-logo-landscape-white": "Mandhari ya nembo ya ETH (nyeupe)", + "page-assets-eth-logo-portrait-gray": "Picha ya nembo ya ETH (kijivu)", + "page-assets-eth-logo-portrait-purple": "Picha ya nembo ya ETH (zambarau)", + "page-assets-eth-logo-portrait-white": "Picha ya nembo ya ETH (nyeupe)", + "page-assets-eth-wordmark-gray": "Alama ya neno ya ETH (kijivu)", + "page-assets-eth-wordmark-purple": "Alama ya neno ya ETH (zambarau)", + "page-assets-eth-wordmark-white": "Alama ya neno ya ETH (nyeupe)", + "page-assets-ethereum-brand-assets": "Rasimali zenye chapa ya Ethereum", + "page-assets-finance": "Fedha", + "page-assets-future": "Muda ujao", + "page-assets-h1": "rasilimali za ethereum.org", + "page-assets-hero": "shujaa wa wa ethereum.org", + "page-assets-hero-panda": "shujaa wa ethereum.org na unganisha panda", + "page-assets-merge-panda": "Unganisha panda", + "page-assets-merge-panda-svg": "Unganisha panda SVG", + "page-assets-hero-particles": "Picha ya chembe chembe za ETH", + "page-assets-historical-artwork": "Kazi ya sanaa za kihistoria", + "page-assets-illustrations": "Vielelezo", + "page-assets-impact": "Matokeo", + "page-assets-infrastructure": "Miundo mbinu", + "page-assets-leslie-the-rhino": "Leslie kifaru", + "page-assets-meta-desc": "Chunguza na pakua Ethereum na rasilimali za ethereum.org, vielelezo na vyombo vya habari.", + "page-assets-meta-title": "Rasimali zenye chapa ya Ethereum", + "page-assets-mainnet": "Mtandao Mkuu", + "page-assets-page-assets-solid-background": "Msingi thabiti", + "page-assets-page-assets-transparent-background": "Msingi ulio wazi", + "page-assets-robot": "Roboti anaewakilisha pochi", + "page-assets-sharding": "Ugawanyaji", + "page-assets-hackathon": "Hackathon", + "page-assets-learn-hero-name": "Chuo kikuu cha Futuristic", + "page-assets-community-hero-name": "Mkusanyiko wa jumuiya", + "page-assets-quizzes-hero-name": "Uwanja wa michezo usio na mwisho", + "page-assets-developers-hero-name": "Kujenga mustakabali", + "page-assets-garden-name": "Bustani Ya Etherium", + "page-assets-roadmap-hero-name": "Njia(s) kuelekea mustakabali", + "page-assets-layer-2-hero-name": "Kujenga Etherium", + "page-assets-guides-hero-name": "Maabara ya etherium" +} diff --git a/src/intl/sw/page-bug-bounty.json b/src/intl/sw/page-bug-bounty.json index 0801fa1c407..eb7f0a3cddc 100644 --- a/src/intl/sw/page-bug-bounty.json +++ b/src/intl/sw/page-bug-bounty.json @@ -1,34 +1,46 @@ { "page-upgrades-bug-bounty-annotated-specs": "maaelezo maalum", "page-upgrades-bug-bounty-annotations": "Itakuwa vizuri kuangalia maelezo yafuatayo:", - "page-upgrades-bug-bounty-client-bugs": "Wadudu wa programu ya safu ya makubaliano", - "page-upgrades-bug-bounty-client-bugs-desc": "Wateja wataendesha mnyororo kioleza mara maboresho yatakapozinduliwa. Wateja watafuata mantiki iliyowekwa mahususi na kua salama dhidi ya mashambulizi. wadudu tunaotaka kupata ni wale wanaohusiana na utekelezaji wa itifaki.", - "page-upgrades-bug-bounty-client-bugs-desc-2": "Kwa sasa Lighthouse, Nimbus, Teku, na Prysm weanastahiki zawadi. Lodestar i8nastaahiki zawadi pia, lakini mpaka ukaguzi wa kina utakapofanyika pointi zao na zawadi zitakuwa asilimia kumi tu. ( malipo ya juu ni DAI 5,000). Wateja/Programu zingine zitaogezwa iwapo ukaguzi utafanyika na kuwa tayari kwa uzalishaji.", + "page-upgrades-bug-bounty-client-bugs": "Hitilafu za Wateja", + "page-upgrades-bug-bounty-client-bugs-desc": "Wateja huendesha Mtandao wa Ethereum, na wanahitaji kufuata mantiki iliyowekwa katika vipimo na kuwa salama dhidi ya mashambulizi yanayoweza kutokea. Hitilafu tunazotaka kupata zinahusiana na utekelezaji wa itifaki.", + "page-upgrades-bug-bounty-client-bugs-desc-2": "Kwa sasa wateja wa safu ya utekelezaji (Besu, Erigon, Geth, Nethermind na Reth) na wateja wa safu ya makubaliano (Lighthouse, Lodestar, Nimbus, Teku na Prysm) wamejumuishwa katika Mpango wa Zawadi za Hitilafu. Wateja wengine wanaweza kuongezwa wanapokamilisha ukaguzi na kuwa tayari kwa matumizi.", "page-upgrades-bug-bounty-clients": "Wateja walioangaziwa kwenye zawadi", "page-upgrades-bug-bounty-clients-type-1": "Vipimo na masuala yasiyo ya kufuata", - "page-upgrades-bug-bounty-clients-type-2": "Ajali zisizotarajiwa au kunyimwa kwa udhaifu wa huduma", + "page-upgrades-bug-bounty-clients-type-2": "Kuanguka kusikotarajiwa, RCE au udhaifu wa kukataliwa kwa huduma (DOS)", "page-upgrades-bug-bounty-clients-type-3": "Masuala yoyote yanayosababisha makubaliano yasiyoweza kurekebishwa hugawanyika kutoka kwa mtandao wote", + "page-upgrades-bug-bounty-misc-bugs": "Hitilafu za vikusanyaji vya lugha", + "page-upgrades-bug-bounty-misc-bugs-desc": "Vikusanyaji vya Solidity na Vyper vimo ndani ya wigo wa mpango wa zawadi za hitilafu. Tafadhali jumuisha maelezo yote muhimu ili kuiga tena udhaifu kama vile: Mpango wa ingizo unaosababisha hitilafu, Toleo la Kikusanyaji lililoathiriwa, Toleo lengwa la EVM, Mfumo/IDE ikiwa inatumika, Mazingira ya utekelezaji ya EVM/mteja ikiwa inatumika na Mfumo wa uendeshaji, Tafadhali jumuisha hatua za kuiga tena hitilafu uliyoipata kwa undani iwezekanavyo.", + "page-upgrades-bug-bounty-misc-bugs-desc-2": "Solidity na Vyper hazina hakikisho la usalama kuhusu ukusanyaji wa ingizo lisiloaminika - na hatutoi zawadi kwa kuanguka kwa kikusanyaji kwenye data iliyoundwa kwa nia mbaya.", + "page-upgrades-bug-bounty-deposit-bugs": "Hitilafu za Mkataba wa Amana", + "page-upgrades-bug-bounty-deposit-bugs-desc": "Vipimo na msimbo chanzo wa Mkataba wa Amana wa Mnyororo Kioleza ni sehemu ya mpango wa zawadi za hitilafu.", + "page-upgrades-bug-bounty-deposit-contract-specs": "Vipimo vya Mkataba wa Amana", + "page-upgrades-bug-bounty-deposit-contract-source": "Msimbo Chanzo wa Mkataba wa Amana", + "page-upgrades-bug-bounty-dependency-bugs": "Hitilafu za utegemezi", + "page-upgrades-bug-bounty-dependency-bugs-desc": "Vitegemezi fulani ni muhimu ili Mtandao wa Ethereum ufanye kazi, na baadhi ya hivi vimeongezwa kwenye mpango wa zawadi za hitilafu. Kwa sasa, orodha ya vitegemezi vilivyojumuishwa katika mpango wa zawadi za hitilafu ni C-KZG-4844 na Go-KZG-4844.", "page-upgrades-bug-bounty-docking": "ungana", "page-upgrades-bug-bounty-email-us": "Tuma barua pepe:", "page-upgrades-bug-bounty-help-links": "Viungo vya kusaidia", "page-upgrades-bug-bounty-hunting": "Sheria za utafutaji wadudu", - "page-upgrades-bug-bounty-hunting-desc": "Mpango wa zawadi za hitilafu ni mpango wa siri wa majaribio na wa hiari kwa jumuiya yetu inayotumika ya Ethereum ili kuwatia moyo na kuwatuza wale wanaosaidia kuboresha jukwaa. Sio mashindano.Unapaswa kujua kwamba tunaweza kuondoa programu wakati wowote, na tuzo ni kwa uamuzi wa kidirisha cha fadhila jukwaa la Ethereum.Kwa kuongezea, hatuwezi kutoa tuzo kwa watu ambao wako kwenye orodha ya vikwazo au ambao wako katika nchi zilizo kwenye orodha ya vikwazo. Mfano( Korea kaskazini, Iran, na nyingine). Unawajibika kwa ushuru wote. Tuzo zote ziko chini ya sheria inayotumika. Hatimaye, jaribio lako lazima lisikiuke sheria yoyote au kuathiri data yoyote ambayo si yako.", - "page-upgrades-bug-bounty-hunting-leaderboard": "Ubao wa wanaoongoza wa uwindaji wa mende", + "page-upgrades-bug-bounty-hunting-desc": "Mpango wa zawadi za hitilafu ni mpango wa majaribio na hiari wa zawadi kwa jumuiya yetu hai ya Ethereum ili kuhamasisha na kuwatuza wale wanaosaidia kuboresha jukwaa. Sio mashindano. Unapaswa kujua kwamba tunaweza kughairi mpango huo wakati wowote, na zawadi ziko kwa uamuzi pekee wa jopo la zawadi za hitilafu la Msingi wa Ethereum. Kwa kuongeza, hatuwezi kutoa zawadi kwa watu binafsi walio kwenye orodha za vikwazo au walio katika nchi zilizo kwenye orodha za vikwazo (k.m., Korea Kaskazini, Iran, n.k). Sheria za nchini zinatutaka tuombe uthibitisho wa utambulisho wako. Unawajibika kwa kodi zote. Zawadi zote ziko chini ya sheria inayotumika. Mwisho, majaribio yako hayapaswi kukiuka sheria yoyote au kuathiri data yoyote ambayo si yako na lazima yafanyike kwenye testnet zinazoendeshwa ndani ya nchi.", + "page-upgrades-bug-bounty-hunting-leaderboard": "Ubao wa wanaoongoza wa Zawadi za Hitilafu za Safu ya Makubaliano", + "page-upgrades-bug-bounty-hunting-execution-leaderboard": "Ubao wa wanaoongoza wa Zawadi za Hitilafu za Safu ya Utekelezaji", "page-upgrades-bug-bounty-hunting-leaderboard-subtitle": "Tafuta hitilafu za safu ya makubaliano ili uongezwe kwenye ubao huu wa wanaoongoza", - "page-upgrades-bug-bounty-hunting-li-1": "Masuala ambayo tayari yamewasilishwa na mtumiaji mwingine au tayari yanajulikana na wasimamizi wa mteja hayastahiki zawadi.", - "page-upgrades-bug-bounty-hunting-li-2": "Ufichuaji hadharani wa athari huifanya isistahiki kupata faida.", - "page-upgrades-bug-bounty-hunting-li-3": "Watafiti na wafanyakazi wa Msingi Ethereum na timu za programu za makubaliano hawastahiki zawadi.", + "page-upgrades-bug-bounty-hunting-execution-leaderboard-subtitle": "Tafuta hitilafu za safu ya utekelezaji ili uongezwe kwenye ubao huu wa wanaoongoza", + "page-upgrades-bug-bounty-hunting-li-1": "Masuala yasiyo na POC au ambayo tayari yamewasilishwa na mtumiaji mwingine au ambayo tayari yanajulikana na wasimamizi wa vipimo na wateja hayastahiki zawadi za hitilafu.", + "page-upgrades-bug-bounty-hunting-li-2": "Ufichuzi wa umma wa udhaifu au kuripoti kwa wahusika wengine bila makubaliano ya awali hufanya usiweze kustahili zawadi.", + "page-upgrades-bug-bounty-hunting-li-3": "Wafanyakazi na wakandarasi wa Msingi wa Ethereum au timu za wateja zilizo katika wigo wa mpango wa zawadi za hitilafu wanaweza kushiriki katika mpango huo tu katika ukusanyaji wa pointi na hawatapokea zawadi za kifedha.", "page-upgrades-bug-bounty-hunting-li-4": "Mpango wa fadhila wa Ethereum huzingatia idadi ya vigezo katika kuamua zawadi. Maamuzi ya kustahiki, alama na masharti yote yanayohusiana na tuzo ni kwa uamuzi wa mwisho wa Msingi wa jukwaa la Ethereum.", - "page-upgrades-bug-bounty-leaderboard": "Tazama ubao kamili wa wanaoongoza", + "page-upgrades-bug-bounty-leaderboard": "Tazama bao zote za wanaoongoza", + "page-upgrades-bug-bounty-leaderboard-list": "Ubao wa wanaoongoza wa zawadi za hitilafu", "page-upgrades-bug-bounty-leaderboard-points": "pointi", - "page-upgrades-bug-bounty-ledger-desc": "Mnyororo Kioleza hutoa maelezo ya vipimo vyenye mantiki ya uundaji na mabadiliko pendekezwa kwenye Ethereum kupitia maboresho ya mnyororo kioleza.", - "page-upgrades-bug-bounty-ledger-title": "Hitilafu za ubainishaji wa mnyororo kioleza", - "page-upgrades-bug-bounty-meta-description": "Muhtasari wa mpango wa uwindaji wa wadudu wa programu: jinsi ya kuhusika na kutoa taarifa.", - "page-upgrades-bug-bounty-meta-title": "Programu ya utafiti wa hitilafu za safu ya makubaliano", - "page-upgrades-bug-bounty-not-included": "Haijajumuishwa", - "page-upgrades-bug-bounty-not-included-desc": "Muungano na maboresho ya mnyororo wa kigae viko kwenye hatua ya uundwaji na bado havijajumuishwa kama sehemu ya programu ya fadhila.", + "page-upgrades-bug-bounty-ledger-desc": "Vipimo vya Ethereum vinaelezea kwa undani mantiki ya usanifu kwa Safu ya Utekelezaji na Safu ya Makubaliano.", + "page-upgrades-bug-bounty-ledger-title": "Hitilafu za vipimo", + "page-upgrades-bug-bounty-meta-description": "Muhtasari wa mpango wa zawadi za hitilafu wa Ethereum: jinsi ya kushiriki na maelezo ya zawadi.", + "page-upgrades-bug-bounty-meta-title": "Mpango wa Zawadi za Hitilafu wa Ethereum", + "page-upgrades-bug-bounty-not-included": "Nje ya wigo", + "page-upgrades-bug-bounty-not-included-desc": "Ni walengwa walioorodheshwa chini ya ndani ya wigo pekee ndio sehemu ya Mpango wa Zawadi za Hitilafu. Udhaifu ambao HAUstahiki chini ya mpango huo ni pamoja na:", "page-upgrades-bug-bounty-owasp": "Angalia njia ya OWASP", - "page-upgrades-bug-bounty-points": "EF itatoa alama kulingana na:", + "page-upgrades-bug-bounty-points": "EF pia itatoa zawadi kulingana na:", "page-upgrades-bug-bounty-points-error": "Hitilafu katika kupakia data... tafadhali onyesha upya.", "page-upgrades-bug-bounty-points-exchange": "Badiliko la point", "page-upgrades-bug-bounty-points-loading": "Data inapakia...", @@ -40,15 +52,16 @@ "page-upgrades-bug-bounty-quality-desc": ": Zawadi za juu hulipwa kwa mawasilisho yaliyo wazi na yaliyoandikwa vizuri.", "page-upgrades-bug-bounty-quality-fix": "Ubora wa kurekebisha, kama umejumuishwa: Zawadi kubwa hulipwa kwa waliotoa maelezo yanayoeleweka juu ya kutatua tatizo.", "page-upgrades-bug-bounty-quality-repro": "Ubora wa kuzaliana", - "page-upgrades-bug-bounty-quality-repro-desc": ": Tafadhali jumuisha nambari ya jaribio, hati na maagizo ya kina. Kadiri inavyokuwa rahisi kwetu kuzaliana na kuthibitisha uwezekano wa kuathiriwa, ndivyo zawadi inavyoongezeka.", + "page-upgrades-bug-bounty-quality-repro-desc": ": Uthibitisho wa Dhana (POC) lazima ujumuishwe ili kustahili zawadi. Tafadhali jumuisha msimbo wa jaribio, hati na maagizo ya kina. Kadiri inavyokuwa rahisi kwetu kuiga na kuthibitisha udhaifu, ndivyo zawadi inavyokuwa kubwa.", "page-upgrades-bug-bounty-questions": "Maswali?", "page-upgrades-bug-bounty-rules": "Soma maelekezo", - "page-upgrades-bug-bounty-slogan": "Safu ya makubaliano na zawadi za wadudu", - "page-upgrades-bug-bounty-specs": "Soma vipimo kamili", + "page-upgrades-bug-bounty-slogan": "Mpango wa Zawadi za Hitilafu", + "page-upgrades-bug-bounty-specs": "Vipimo vya Safu ya Makubaliano", + "page-upgrades-bug-bounty-execution-specs": "Vipimo vya Safu ya Utekelezaji", "page-upgrades-bug-bounty-specs-docs": "Nyaraka za vipimo", "page-upgrades-bug-bounty-submit": "Wasilisha mdudu", - "page-upgrades-bug-bounty-submit-desc": "Kwa kila hitilafu utakaoipata utapata pointi. Kwa kila pointi utakayopata itategemea ukali wa hitilafu. Hitilafu za Lodestar zinazawadiwa asilimia 10 ya pointi zilizoorodheshwa hapo chini, mpaka ukaguzi wa ziada utakapokamilika. Msingi wa Ethereum (EF) utaamua ukali wa hitilafu kwa kutmia mbinu ya OWASP.", - "page-upgrades-bug-bounty-subtitle": "Jishindie mpaka USD 50,0000 na nafasi katika ubao wa viongozi kwa kutafuta hitalafu za safu ya makubaliano na programu.", + "page-upgrades-bug-bounty-submit-desc": "Kwa kila hitilafu halali unayoipata utapata zawadi. Kiasi cha zawadi zinazotolewa kitatofautiana kulingana na ukali. Ukali huhesabiwa kulingana na mtindo wa ukadiriaji wa hatari wa OWASP kulingana na Athari kwenye Mtandao wa Ethereum na Uwezekano.", + "page-upgrades-bug-bounty-subtitle": "Pata hadi USD 250,000 na nafasi kwenye ubao wa wanaoongoza kwa kupata hitilafu za itifaki, mteja na vikusanyaji lugha vinavyoathiri mtandao wa Ethereum.", "page-upgrades-bug-bounty-title": "Wazi kwa mawasilisho", "page-upgrades-bug-bounty-title-1": "Mlolongo wa beacon", "page-upgrades-bug-bounty-title-2": "Chaguzi la njia panda", @@ -59,21 +72,21 @@ "page-upgrades-bug-bounty-type-3": "Kutofautiana kwa dhana, kama vile hali ambapo wathibitishaji waaminifu wanaweza kupunguzwa", "page-upgrades-bug-bounty-type-4": "Hesabu au kutofautiana kwa uthabiti", "page-upgrades-bug-bounty-types": "Aina za hitalafu", - "page-upgrades-bug-bounty-validity": "Wadudu waliokubaliwa", - "page-upgrades-bug-bounty-validity-desc": "Mpango huu wa fadhila za hitilafu unalenga kutafuta hitilafu katika vipimo vya msingi safu ya makubaliano ya Mnyororo Kioleza na utekelezaji wa mteja wa Lighthouse, Nimbus, Teku na Prysm.", + "page-upgrades-bug-bounty-validity": "Ndani ya Wigo", + "page-upgrades-bug-bounty-validity-desc": "Mpango wetu wa zawadi za hitilafu unaenea mwanzo hadi mwisho: kutoka kwa uthabiti wa itifaki (kama vile mtindo wa makubaliano wa mnyororo wa bloku, itifaki za waya na p2p, uthibitishaji wa hisa, n.k.) na kufuata itifaki/utekelezaji hadi usalama wa mtandao na uadilifu wa makubaliano. Usalama wa kawaida wa mteja pamoja na usalama wa misingi ya kriptografia pia ni sehemu ya mpango huo. Ukiwa na shaka, tuma barua pepe kwa bounty@ethereum.org na utuulize. Unaweza pia kuwasilisha ufichuzi/udhaifu moja kwa moja kwa bounty@ethereum.org, ambapo tunakuomba usimbe ujumbe kwa kutumia Ufunguo wetu wa PGP", "page-upgrades-bug-bounty-card-critical": "Muhimu", "page-upgrades-bug-bounty-card-critical-risk": "Wasilisha hitilafu muhimu ya hatari", "page-upgrades-bug-bounty-card-h2": "Wastani", "page-upgrades-bug-bounty-card-high": "Juu", "page-upgrades-bug-bounty-card-high-risk": "Wasilisha hitilafu muhimu ya hatari", "page-upgrades-bug-bounty-card-label-1": "Mpaka pointi 1,000", - "page-upgrades-bug-bounty-card-label-2": "Mpaka DAI 2,000", + "page-upgrades-bug-bounty-card-label-2": "Hadi USD 2,000", "page-upgrades-bug-bounty-card-label-3": "Mpaka pointi 5,000", - "page-upgrades-bug-bounty-card-label-4": "Mpaka DAI 10,000", + "page-upgrades-bug-bounty-card-label-4": "Hadi USD 10,000", "page-upgrades-bug-bounty-card-label-5": "Mpaka pointi 10,000", - "page-upgrades-bug-bounty-card-label-6": "Mpaka DAI 20,000", + "page-upgrades-bug-bounty-card-label-6": "Hadi USD 50,000", "page-upgrades-bug-bounty-card-label-7": "Mpaka pointi 25,000", - "page-upgrades-bug-bounty-card-label-8": "Mpaka DAI 50,000", + "page-upgrades-bug-bounty-card-label-8": "Hadi USD 250,000", "page-upgrades-bug-bounty-card-li-1": "Athari ya chini, uwezekano wa kati", "page-upgrades-bug-bounty-card-li-2": "Athari ya wastani, uwezekano mdogo", "page-upgrades-bug-bounty-card-li-3": "Athari ya juu, uwezekano mdogo", @@ -89,7 +102,68 @@ "page-upgrades-bug-bounty-card-subheader-2": "Mfano", "page-upgrades-bug-bounty-card-text": "Mshambulizi wakati mwingine anaweza kuweka nodi katika hali inayosababisha kuacha uthibitisho mmoja kati ya kila mia moja unaotolewa na kiidhinisha", "page-upgrades-bug-bounty-card-text-1": "Mshambulizi anaweza kufanya mashambulizi ya kupatwa kwa jua kwenye nodi kwa vitambulisho rika na baiti 4 zinazoongoza kwa sufuri", - "page-upgrades-bug-bounty-card-text-2": "Kuna hitilafu ya makubaliano kati ya wateja wawili, lakini ni vigumu au haiwezekani kwa mshambuliaji kuanzisha tukio.", - "page-upgrades-bug-bounty-card-text-3": "Kuna hitilafu ya makubaliano kati ya wateja wawili, lakini ni vigumu au haiwezekani kwa mshambuliaji kuanzisha tukio.", - "page-upgrades-question-title": "Maswali yanayoulizwa mara kwa mara" + "page-upgrades-bug-bounty-card-text-2": "Mshambulizi anaweza kugawanya kwa mafanikio sehemu kubwa za mtandao, na ni rahisi kwa mshambulizi kusababisha udhaifu", + "page-upgrades-bug-bounty-card-text-3": "Mshambulizi anaweza kufanikiwa kutekeleza msimbo kwa mbali katika mteja mkuu, na ni rahisi kwa mshambulizi kusababisha udhaifu", + "page-upgrades-question-title": "Maswali yanayoulizwa mara kwa mara", + "bug-bounty-faq-q1-title": "Uwasilishaji mzuri wa udhaifu unapaswa kuonekanaje?", + "bug-bounty-faq-q1-contentPreview": "Tazama mfano halisi wa uwasilishaji wa udhaifu wa hali ya juu.", + "bug-bounty-faq-q1-content-1": "Maelezo: Kukataliwa kwa huduma kwa mbali kwa kutumia bloku ambazo hazijathibitishwa", + "bug-bounty-faq-q1-content-2": "Hali ya shambulio: Mshambulizi anaweza kutuma bloku ambazo zinaweza kuhitaji kiasi kikubwa cha hesabu (kikomo cha juu cha gesi) lakini hazina uthibitisho-wa-kazi. Ikiwa mshambulizi atatuma bloku mfululizo, mshambulizi anaweza kulazimisha nodi ya mwathiriwa kutumia 100% ya CPU.", + "bug-bounty-faq-q1-content-3": "Athari: Mshambulizi anaweza kutumia vibaya matumizi ya CPU kwenye nodi za mbali, ikiwezekana kusababisha DoS kamili.", + "bug-bounty-faq-q1-content-4": "Vipengele: Toleo la mteja wa Go v0.6.8", + "bug-bounty-faq-q1-content-5": "Uigaji: Tuma bloku kwa nodi ya Go iliyo na txs nyingi lakini haina PoW halali.", + "bug-bounty-faq-q1-content-6": "Maelezo: Bloku zinathibitishwa katika mbinu ya Process(Block, dontReact). Mbinu hii hufanya kazi ghali zinazotumia CPU sana, kama vile kutekeleza miamala (sm.ApplyDiff) na baadaye inathibitisha uthibitisho-wa-kazi (sm.ValidateBlock()). Hii inaruhusu mshambulizi kutuma bloku ambazo zinaweza kuhitaji kiasi kikubwa cha hesabu (kikomo cha gesi cha juu zaidi) lakini hazina uthibitisho-wa-kazi. Ikiwa mshambulizi atatuma bloku mfululizo, mshambulizi anaweza kulazimisha nodi ya mwathiriwa kutumia 100% ya CPU.", + "bug-bounty-faq-q1-content-7": "Suluhisho: Geuza mpangilio wa ukaguzi.", + "bug-bounty-faq-q2-title": "Je, mpango wa zawadi za hitilafu una ukomo wa muda?", + "bug-bounty-faq-q2-contentPreview": "Hapana.", + "bug-bounty-faq-q2-content-1": "Hakuna tarehe ya mwisho iliyowekwa kwa sasa. Angalia blogu ya Msingi wa Ethereum kwa habari za hivi punde.", + "bug-bounty-faq-q3-title": "Zawadi za hitilafu hulipwaje?", + "bug-bounty-faq-q3-contentPreview": "Zawadi hulipwa kwa ETH au DAI.", + "bug-bounty-faq-q3-content-1": "Zawadi hulipwa kwa ETH au DAI baada ya uwasilishaji kuthibitishwa, kwa kawaida siku chache baadaye. Sheria za nchini zinatutaka tuombe uthibitisho wa utambulisho wako. Kwa kuongeza, tutahitaji anwani yako ya ETH.", + "bug-bounty-faq-q4-title": "Je, naweza kuchangia zawadi yangu kwa hisani?", + "bug-bounty-faq-q4-contentPreview": "Ndiyo!", + "bug-bounty-faq-q4-content-1": "Tunaweza kuchangia zawadi yako kwa shirika la hisani lililoidhinishwa la chaguo lako.", + "bug-bounty-faq-q5-title": "Niliripoti suala / udhaifu lakini sijapokea jibu!", + "bug-bounty-faq-q5-contentPreview": "Tafadhali ruhusu siku chache ili mtu ajibu uwasilishaji wako.", + "bug-bounty-faq-q5-content-1": "Tunalenga kujibu mawasilisho haraka iwezekanavyo. Jisikie huru kututumia barua pepe kwa bounty@ethereum.org ikiwa hujapokea jibu ndani ya siku moja au mbili.", + "bug-bounty-faq-q6-title": "Nataka nisijulikane / Sitaki jina langu liwe kwenye ubao wa wanaoongoza.", + "bug-bounty-faq-q6-contentPreview": "Unaweza kufanya hivi, lakini inaweza kukufanya usistahili zawadi.", + "bug-bounty-faq-q6-content-1": "Kuwakilisha bila kujulikana au kwa jina bandia ni sawa, lakini kutakufanya usistahili zawadi za ETH/DAI. Ili kustahili zawadi za ETH/DAI, tunahitaji jina lako halisi na uthibitisho wa utambulisho wako utumwe, ukiwa umesimbwa kwa kutumia PGP kwenye tovuti yetu salama, kwa timu yetu ya kisheria katika Msingi wa Ethereum ambao ndio wapitiaji pekee wa nyaraka. Kuchangia zawadi yako ya hitilafu kwa hisani hakuhitaji utambulisho wako.", + "bug-bounty-faq-q6-content-2": "Tafadhali tujulishe ikiwa hutaki jina/jina lako la utani lionyeshwe kwenye ubao wa wanaoongoza.", + "bug-bounty-faq-q7-title": "Pointi kwenye ubao wa wanaoongoza ni nini?", + "bug-bounty-faq-q7-contentPreview": "Kila udhaifu / suala lililopatikana hupewa alama", + "bug-bounty-faq-q7-content-1": "Kila udhaifu / suala lililopatikana hupewa alama. Wawindaji wa zawadi za hitilafu hupangwa kwenye ubao wetu wa wanaoongoza kwa jumla ya pointi.", + "bug-bounty-faq-q8-title": "Je, una ufunguo wa PGP?", + "bug-bounty-faq-q8-contentPreview": "Ndiyo. Panua kwa maelezo.", + "bug-bounty-faq-q8-content-1": "Tafadhali tumia AE96 ED96 9E47 9B00 84F3 E17F E88D 3334 FA5F 6A0A", + "bug-bounty-faq-q8-PGP-key": "Ufunguo wa PGP", + "page-upgrades-bug-bounty-severity-qualifications-title": "Sifa za ukali wa udhaifu", + "page-upgrades-bug-bounty-severity-qualifications-desc": "Ukali hupimwa kulingana na uwezo wa udhaifu uliogunduliwa kufanya yafuatayo:", + "page-upgrades-bug-bounty-severity-low-title": "Ukali wa chini", + "page-upgrades-bug-bounty-severity-low-li-1": "Punguza 0.01% ya wathibitishaji", + "page-upgrades-bug-bounty-severity-low-li-2": "Sababisha kwa urahisi mgawanyiko wa mtandao unaoathiri 0.01% ya mtandao", + "page-upgrades-bug-bounty-severity-low-li-3": "Kuwa na uwezo wa kuangusha 0.01% ya mtandao kwa kutuma pakiti moja ya mtandao au muamala wa onchain", + "page-upgrades-bug-bounty-severity-medium-title": "Ukali wa kati", + "page-upgrades-bug-bounty-severity-medium-li-1": "Punguza 1% ya wathibitishaji", + "page-upgrades-bug-bounty-severity-medium-li-2": "Sababisha kwa urahisi mgawanyiko wa mtandao unaoathiri 5% ya mtandao", + "page-upgrades-bug-bounty-severity-medium-li-3": "Kuwa na uwezo wa kuangusha 5% ya mtandao kwa kutuma pakiti moja ya mtandao au muamala wa onchain", + "page-upgrades-bug-bounty-severity-high-title": "Ukali wa juu", + "page-upgrades-bug-bounty-severity-high-li-1": "Punguza 33% ya wathibitishaji", + "page-upgrades-bug-bounty-severity-high-li-2": "Sababisha kwa urahisi mgawanyiko wa mtandao unaoathiri 33% ya mtandao", + "page-upgrades-bug-bounty-severity-high-li-3": "Kuwa na uwezo wa kuangusha 33% ya mtandao kwa kutuma pakiti moja ya mtandao au muamala wa onchain", + "page-upgrades-bug-bounty-severity-critical-title": "Ukali muhimu", + "page-upgrades-bug-bounty-severity-critical-li-1": "Punguza 50% ya wathibitishaji", + "page-upgrades-bug-bounty-severity-critical-li-2": "Tumia vibaya EIP/vipimo au hitilafu ya mteja ili kwa urahisi kuunda kiasi kisicho na kikomo cha ETH ambacho kinakamilishwa na mtandao", + "page-upgrades-bug-bounty-severity-critical-li-3": "Iba ETH kutoka kwa EOA zote", + "page-upgrades-bug-bounty-severity-critical-li-4": "Choma ETH kutoka kwa EOA zote", + "page-upgrades-bug-bounty-severity-critical-li-5": "Angusha mtandao mzima kwa kutuma muamala mmoja hasidi wa onchain ambao huishia kuangusha wateja wote", + "page-upgrades-bug-bounty-out-of-scope-footnote": "Hizi kwa kawaida hazijumuishwi, hata hivyo, tunaweza kusaidia kuwafikia wahusika walioathirika, kama vile waandishi au masoko ya kubadilishana katika hali kama hizo", + "page-upgrades-bug-bounty-not-included-li-1": "Hitilafu za miundombinu—kama vile kurasa za wavuti, dns, barua pepe, n.k.", + "page-upgrades-bug-bounty-not-included-li-2": "Hitilafu za mkataba wa ERC-20", + "page-upgrades-bug-bounty-not-included-li-3": "Hitilafu za Huduma ya Majina ya Ethereum (ENS) (zinazotunzwa na msingi wa ENS)", + "page-upgrades-bug-bounty-not-included-li-4": "Udhaifu unaohitaji mtumiaji awe amefichua API kwa umma, kama vile JSON-RPC au Beacon API", + "page-upgrades-bug-bounty-not-included-li-5": "Makosa ya uchapaji", + "page-upgrades-bug-bounty-not-included-li-6": "Majaribio", + "page-upgrades-bug-bounty-not-included-li-7": "Mashambulizi ya DoS ya rika moja yenye juhudi kubwa (endelevu, yanayotumia CPU au kipimo data sana, na/au yanayohitaji zaidi ya pakiti 1 au muamala wa onchain)", + "page-upgrades-bug-bounty-not-included-li-8": "Masuala yoyote yanayojulikana hadharani (inajumuisha machapisho ya jukwaa, PRs, masuala ya github, commits, machapisho ya blogu, ujumbe wa umma wa discord, n.k.)" } diff --git a/src/intl/sw/page-collectibles.json b/src/intl/sw/page-collectibles.json new file mode 100644 index 00000000000..5df620dad8b --- /dev/null +++ b/src/intl/sw/page-collectibles.json @@ -0,0 +1,67 @@ +{ + "page-collectibles-already-desc": "Angalia maendeleo yako", + "page-collectibles-already-title": "Je, tayari wewe ni mchangiaji?", + "page-collectibles-code-content-desc": "Tatua matatizo, andika au boresha makala au pendekeza maboresho ya muundo wa tovuti.", + "page-collectibles-code-content-design-1issue": "Beji ya tatizo la muundo limetatuliwa", + "page-collectibles-code-content-design-desc": "Fanya ukosoaji wa miundo, boresha mfumo wetu wa usanifu au shiriki katika majaribio ya mtumiaji.", + "page-collectibles-code-content-design-title": "Kubuni", + "page-collectibles-code-content-design-user-testing": "Beji ya kushiriki katika majaribio ya mtumiaji", + "page-collectibles-code-content-developer-10pr": "Beji ya PR 10 zilizounganishwa", + "page-collectibles-code-content-developer-1pr": "Beji ya PR 1 iliyounganishwa", + "page-collectibles-code-content-developer-5pr": "Beji ya PR 5 zilizounganishwa", + "page-collectibles-code-content-developer-desc": "Boresho lolote lililounganishwa kwenye tovuti.", + "page-collectibles-code-content-developer-title": "Msanidi programu", + "page-collectibles-code-content-gitpoap-1pr": "Beji ya PR iliyounganishwa", + "page-collectibles-code-content-gitpoap-desc": "Inaweza kudaiwa kiotomatiki baada ya PR yako kuunganishwa.", + "page-collectibles-code-content-gitpoap-title": "GitPOAP", + "page-collectibles-code-content-instructions-1": "Nenda kwenye hazina yetu ya GitHub", + "page-collectibles-code-content-instructions-2": "Chagua suala la kufanyia kazi", + "page-collectibles-code-content-instructions-3": "Wasilisha suluhisho au boresho", + "page-collectibles-code-content-title": "Msimbo na Maudhui", + "page-collectibles-code-content-writing-badge-1": "Beji ya mchango wa maudhui", + "page-collectibles-code-content-writing-desc": "Kwa boresho lolote la maudhui lililounganishwa na master.", + "page-collectibles-code-content-writing-title": "Uandishi", + "page-collectibles-connect-wallet": "Unganisha mkoba", + "page-collectibles-contributing-since": "Unachangia tangu", + "page-collectibles-contributor-img-alt": "Wachangiaji wawili wakizungumza", + "page-collectibles-contributor-progress-label": "Imedaiwa", + "page-collectibles-current-year-title": "Mwaka wa sasa", + "page-collectibles-get-started": "Anza", + "page-collectibles-hero-description": "Thibitisha kuwa ulifanya kazi kwenye ethereum.org, onchain.", + "page-collectibles-hero-header": "Vitu vya Kukusanya vya Ethereum.org", + "page-collectibles-hero-title": "Beji", + "page-collectibles-how-step1-desc": "kwenye tovuti", + "page-collectibles-how-step1-title": "Changia", + "page-collectibles-how-step2-desc": "kwenye Discord", + "page-collectibles-how-step2-title": "Thibitishwa", + "page-collectibles-how-step3-desc": "kwenye Galxe", + "page-collectibles-how-step3-title": "Dai NFT", + "page-collectibles-how-title": "Jinsi inavyofanya kazi", + "page-collectibles-improve-desc-1": "Pata NFT za kipekee kwa kusaidia kutunza na kupanua tovuti ya ethereum.org. Beji hizi zinatambua ushiriki wako onchain.", + "page-collectibles-improve-desc-2": "Wamiliki wakuu hupata swag za wachangiaji au tiketi za bei nafuu kwa matukio kama Devcon. Beji zako za onchain hurahisisha wengine kukusaidia.", + "page-collectibles-improve-title": "Boresha ethereum.org", + "page-collectibles-index-frequency": "Matokeo husasishwa mara moja kila siku saa 15:15 UTC", + "page-collectibles-instructions-label": "Maelekezo", + "page-collectibles-previous-years-badge-count": "{count, plural, =0 {hakuna beji} =1 {beji 1} other {beji #}}", + "page-collectibles-previous-years-collectors-count": "{count, plural, =0 {hakuna wakusanyaji} =1 {mkusanyaji 1} other {wakusanyaji #}}", + "page-collectibles-previous-years-no-badges": "Hakuna beji zilizotengenezwa", + "page-collectibles-previous-years": "Miaka iliyopita", + "page-collectibles-social-desc": "Jiunge na simu zetu zozote za Discord ili kujaribu tovuti kwa hitilafu kabla ya matoleo au kufuatilia habari za ethereum.org kwenye simu zetu za kila mwezi za jumuiya.", + "page-collectibles-social-instructions-1": "Jiunge na seva yetu ya Discord", + "page-collectibles-social-instructions-2": "Angalia ratiba", + "page-collectibles-social-instructions-3": "Jiunge!", + "page-collectibles-social-title": "Jamii", + "page-collectibles-stats-collectors": "Wakusanyaji", + "page-collectibles-stats-minted": "Imetengenezwa", + "page-collectibles-stats-unique-badges": "Beji za Kipekee", + "page-collectibles-translations-1000": "Beji ya maneno 1,000", + "page-collectibles-translations-10000": "Beji ya maneno 10,000", + "page-collectibles-translations-250": "Beji ya maneno 250", + "page-collectibles-translations-50000": "Beji ya maneno 50,000", + "page-collectibles-translations-badge-desc": "Kwa lugha yoyote.", + "page-collectibles-translations-desc": "Watumiaji wengi hawazungumzi Kiingereza, kwa hivyo ni muhimu kusaidia kutafsiri makala zetu katika lugha zingine, hakuna uzoefu wa kutafsiri unaohitajika.", + "page-collectibles-translations-instructions-1": "Jisajili kwenye Crowdin", + "page-collectibles-translations-instructions-2": "Chagua lugha", + "page-collectibles-translations-instructions-3": "Anza kutafsiri", + "page-collectibles-translations-title": "Tafsiri" +} diff --git a/src/intl/sw/page-community-events.json b/src/intl/sw/page-community-events.json index f381cd6a7a0..c10f097c1e5 100644 --- a/src/intl/sw/page-community-events.json +++ b/src/intl/sw/page-community-events.json @@ -51,7 +51,7 @@ "page-events-section-organizers-planning-cta": "Soma mwongozo", "page-events-section-support": "Unatafuta usaidizi?", "page-events-section-support-subtitle": "Hapo chini, utapata timu zinazoweza kukupa usaidizi, mwongozo, na msaada iwe unapanga tukio lako la kwanza, unaendeleza, unaboresha tukio linaloendelea, mfululizo wa mikusanyiko ya jamii, au mipango mingine.", - "page-events-support-ethereum-everywhere": "Ethereum Everywhere", + "page-events-support-ethereum-everywhere": "Ethereum Kila Mahali", "page-events-support-ethereum-everywhere-description": "Timu ya Ethereum Everywhere ni timu ya kukuza mfumo ikolojia ndani ya Msingi wa Ethereum, inayowezesha na kusaidia jamii za ndani na matukio kwa njia mbalimbali, na kuwasaidia kuwa na mafanikio na endelevu kwa muda mrefu.", "page-events-support-ethereum-everywhere-guidance": "Mwongozo", "page-events-support-ethereum-everywhere-guidance-description": "Ushauri wa kirafiki kuhusu kupanga na kuendesha matukio na jamii zenye mafanikio zinazokaribisha wajenzi na watumiaji wapya, kuwasaidia kujiunga, na kuweka jamii zilizopo zikiwa zimeunganishwa na kushiriki.", @@ -63,7 +63,7 @@ "page-events-support-geode-labs-description": "Geode Labs ni shirika la kimataifa la maendeleo ya mfumo ikolojia wa Ethereum na studio ya bidhaa iliyozaliwa kutoka kwa Msingi wa Ethereum.", "page-events-support-geode-labs-grants": "Programu ya Ruzuku ya Geode Labs", "page-events-support-geode-labs-grants-description": "Ruzuku za mfumo ikolojia zinazoimarisha ugatuzi wa Ethereum kwa kuzingatia ngazi ya chini.", - "page-events-support-geode-labs-local": "Local Ethereum", + "page-events-support-geode-labs-local": "Ethereum ya Ndani", "page-events-support-geode-labs-local-description": "Jarida linaloshirikiana na viongozi wa jamii za ndani ili kusimulia hadithi za kijiografia za Ethereum.", "page-events-support-geode-labs-ethstars": "ETHStars", "page-events-support-geode-labs-ethstars-description": "Kituo cha jamii cha Ethereum ambapo wajenzi hujifunza, huungana, na kupata.", @@ -80,7 +80,6 @@ "page-events-tag-hackathon": "Hackathon", "page-events-tag-meetup": "Mkutano", "page-events-tag-popup": "Popup", - "page-events-tag-regional": "Kikanda", "page-events-tag-group": "Kikundi", "page-events-tag-other": "Nyingine", "page-events-tag-cowork": "Kazi Pamoja", diff --git a/src/intl/sw/page-community.json b/src/intl/sw/page-community.json new file mode 100644 index 00000000000..d98465a0e39 --- /dev/null +++ b/src/intl/sw/page-community.json @@ -0,0 +1,64 @@ +{ + "page-community-card-1-title": "Jiunge na jamii ya mtandaoni", + "page-community-card-1-description": "Pata kabila lako na shiriki katika jamii na wapenzi wengine wa Ethereum.", + "page-community-card-2-title": "Matukio ya Ethereum", + "page-community-card-2-description": "Pata na shiriki kwenye mikutano ya Ethereum, au hackathon.", + "page-community-card-3-title": "Changia kwenye mradi", + "page-community-card-3-description": "Tupa jicho kwenye orodha ya namna za kushiriki ambazo unaweza kuchangia kulingana na ujuzi ulionao na taaluma yako.", + "page-community-card-4-title": "Tafuta ruzuku", + "page-community-card-4-description": "Utoaji wa ruzuku hukusaidia wewe kuinua pendekezo lako.", + "page-community-community-hub-list-h3": "Kitovu cha jamii", + "page-community-community-hub-list-cta-label-1": "Jisajili kufanya kazi pamoja", + "page-community-community-hub-list-cta-label-2": "Mkutano", + "page-community-contribute": "Changia kwenye ethereum.org", + "page-community-contribute-button": "Zaidi juu ya uchangiaji", + "page-community-contribute-description": "Kwa watu wengi, ethereum.org ndio hatua yao ya kwanza ya kujihusisha na ikolojia ya Ethereum. Inasasoshwa na kusahihishwa na maelfu ya wachangiaji wa vyanzo-vilivyo-wazi. Unataka kusaidia? Soma mwongozo juu ya uchangiaji, au weka suala kwenye GitHub.", + "page-community-contribute-secondary-button": "Angalia kwenye GitHub", + "page-community-daos-callout-title": "Mashirika huru yasiyotawaliwa (DAOs)", + "page-community-daos-callout-description": "Haya makundi huinua teknolojia ya Ethereum ili kuwezesha ushirikiano na mashirika.", + "page-community-explore-dapps": "Chunguza dapps", + "page-community-explore-dapps-alt": "Chunguza dapps", + "page-community-explore-dapps-description": "Dapps ni programu ama app zilizojengwa juu ya Ethereum. Dapps zinavuruga biashara za sasa na kuunda biashara za aina nyingine.", + "page-community-explore-dapps-title": "Jaribu dapps", + "page-community-explore-grants": "Chunguza ruzuku", + "page-community-find-a-job": "Tafuta kazi", + "page-community-get-eth": "Pata ETH", + "page-community-get-eth-alt": "Pata ETH", + "page-community-get-eth-description": "ETH ni sarafu ya asili ya Ethereum. Utahitaji ETH kadhaa kwenye pochi yako ili kutumia programu ama app za Ethereum.", + "page-community-get-eth-title": "Pata ETH", + "page-community-get-involved-title": "Nawezaje kujihusisha?", + "page-community-get-involved-description": "Kuna njia nyingi za kujihususha na jamii ya Ethereum inayokua kwa kasi; unaweza kujiunga kwenye jamii mashuhuri za mtandaoni, shiriki kwenye kongamano, jiunge na mikutano, changia kwenye mdahalo au shiriki kwenye moja kati ya vikao vingi vya mtandaoni vya Ethereum.", + "page-community-get-involved-image-alt": "Jihusishe", + "page-community-hero-alt": "Kitovu cha jamii ya wana Ethereum", + "page-community-hero-header": "Karibu kwenye Kitovu cha Jamii ya Wana Ethereum", + "page-community-hero-subtitle": "Jamii ya wana Ethereum ni mji wa mamia kwa maelfu ya wasanidi programu, wanateknolijia, wabunifu, watumiaji wawekezaji na wapenzi wa Ethereum.", + "page-community-hero-title": "Jiunge na jamii", + "page-community-meetuplist-no-meetups": "Hatuna kikao chochote kinachoingiliana na unachotafuta. Je unajua kimoja wapo?", + "page-community-meta-title": "Kitovu cha jamii", + "page-community-meta-description": "Kitovu cha jamii kwa mfumo ikolojia wa Ethereum", + "page-community-open-source": "Muundaji? Mjenzi? Jipatie kipato kwa kazi yako.", + "page-community-open-source-description": "Je unajenga juu ya Ethereum, ama unataka? Makampuni yanaajiri maelfu ya wataalamu wa kiufundi na wasio mafundi. Una pendekezo lako pekee? Jaribu kutafuta ruzuku ili kuanza kushughulikia wazo lako.", + "page-community-open-source-image-alt": "Jipe kipato kwa kazi yako", + "page-community-please-add-to-page": "Tafadhali iongeze kwenye ukurasa huu!", + "page-community-support": "Msaada wa Ethereum", + "page-community-support-alt": "Msaada", + "page-community-support-button": "Pata msaada", + "page-community-support-description": "Unahitaji msaada? Hakuna msaada rasni wa Ethereum, ila kuna mamia ya jamii ya wana-ethereum zinazoweza kukusaidia uweze kujiendeleza juu ya Ethereum.", + "page-community-try-ethereum": "Jaribisha Ethereum mwenyewe", + "page-community-upcoming-events-no-events": "Hatuna ufahamu juu ya matukio yajayo ya Ethereum. Je unajua moja wapo?", + "page-community-upcoming-events-load-more": "Pakia zaidi", + "page-community-upcoming-events-view-event": "Tazama tukio", + "page-community-why-get-involved-title": "Kwanini ujihusishe?", + "page-community-why-get-involved-card-1-title": "Tafuta jabila lako", + "page-community-why-get-involved-card-1-description": "Kuna kabila kwa ajili ya kila mmoja.", + "page-community-why-get-involved-card-2-title": "Jipatie riziki", + "page-community-why-get-involved-card-2-description": "Kila mmoja ana bili za kulipa. Ethereum hukuruhusu kujipatia kazi zenye maana, na kulipwa vizuri kuzifanya kazi hizo.", + "page-community-why-get-involved-card-3-title": "Tengeneza utofauti", + "page-community-why-get-involved-card-3-description": "Kushiriki katika Ethereum hukuruhusu kua mwenkezaji alie hai kwenye teknolijia yenye matokea chanya kwa mamilini ya watu.", + "page-index-internet-image-alt": "Kielelezo cha tarakilishi ya baadaye, inayowezeshwa na vifuwele vya Ethereum.", + "page-index-get-started-image-alt": "Kielelezo cha mtu anayefanya kazi kwenye tarakilishi.", + "page-index-get-started-wallet-image-alt": "Kielelezo cha roboti yenye mwili wa kuba, unoawakilisha pochi ya Ethereum.", + "page-index-get-started-eth-image-alt": "Kielelezo cha kundi la watu wakiishangaa alama ya ether (ETH) kwa furaha.", + "page-index-get-started-dapps-image-alt": "Kielelezo cha doge akitumia tarakilishi.", + "page-index-get-started-devs-image-alt": "Kielelezo cha mkono ukiunda nembo ya ETH kwa matofali aina ya lego." +} diff --git a/src/intl/sw/page-contributing-translation-program-acknowledgements.json b/src/intl/sw/page-contributing-translation-program-acknowledgements.json new file mode 100644 index 00000000000..55cfbde6a96 --- /dev/null +++ b/src/intl/sw/page-contributing-translation-program-acknowledgements.json @@ -0,0 +1,42 @@ +{ + "page-contributing-translation-program-acknowledgements-acknowledgement-page-title": "Shukrani za wachanhiaji", + "page-contributing-translation-program-acknowledgements-acknowledgement-page-1": "Progrmu ya kutafsiri ni ya nguvu ya ushirikiano na maelfu wa wachangiji wanajihusisha na kutoa mda wao na kutusaidia kutengeneza tovuti inayopatikana katika lugha nyingi iwezekanavyo.", + "page-contributing-translation-program-acknowledgements-acknowledgement-page-2": "Ukurasa huu unadhamiria kuwatambua watafsiri wetu na juhudi zao, kuonyesha wachangiaji bora zaidi, na kuwaunga mkono kwenye taaluma zao.", + "page-contributing-translation-program-acknowledgements-acknowledgement-page-3": "Watadsiri wote walio hai kwenye kazi zetu kwenye Crowdin wanaangazwa kwenye ukurasa wetu wa wachangiaji.", + "page-contributing-translation-program-acknowledgements-acknowledgement-page-link": "Angalia watafsiri wote wa ethereum.org", + "page-contributing-translation-program-acknowledgements-acknowledgement-page-4": "Watafsiri wanaochangia zaidi katika kipindi fulani watapewa nafasi katika ubao wa matangazo wa wafasiri wanaoongoza.", + "page-contributing-translation-program-acknowledgements-acknowledgement-page-5": "Wafasiri waliosomea aama wanaochipukia, pamaoja na wanafunzi wa kufasiri na wataalamu wa lugha wanaotafuta kuongeza uwanja mpya wa utaalamu, wanaweza kuomba cheti cha mtafsiri, ili kuthibitisha mchango wao katika tovuti.", + "page-contributing-translation-program-acknowledgements-cert-title": "Cheti", + "page-contributing-translation-program-acknowledgements-cert-1": "Tuantaka kuwatambua wafasiri wetu na kuwaunga mkono katika njia zao kupata kazi. Na hili kibindoni, tumetayarisha cheti cha mtafsiri wa ethereum.org.", + "page-contributing-translation-program-acknowledgements-cert-2": "Cheti hiki kinalenga wataalamu na wafasiri chipukizi wanaotaka kutumia cheti hiki kama kumbukumbu, kuthibitisha utaalamu wao katika kutafsiri maudhui ya kitaalamu au kuonyesha wakfu wao kwa Ethereum.", + "page-contributing-translation-program-acknowledgements-cert-3": "Kama umeshachangia kwenye programu hii ya kutafsiri na umefasiri idadi ya maneno 5,000, unaweza kuomba cheti chako cha ufasiri kwa kutuandikia kupitia translations@ethereum.org. Ujumbe wako uhusushe kiungo kwenda kwenye akaunti yako ya Crowdin na jina lako kamili (au pak, kama unapendelea), amabayo tutaongeza kwenye cheti.", + "page-contributing-translation-program-acknowledgements-hero-image-alt": "Picha ya hero shiba ya programu ya utafsiri", + "page-contributing-translation-program-acknowledgements-meta-description": "Utambuzi wa kazi kubwa watafsiri wetu waliofanya na kuendelea kufanya", + "page-contributing-translation-program-acknowledgements-meta-title": "Utambuzi wa wafasiri", + "page-contributing-translation-program-acknowledgements-our-translators-cta": "Angalia orodha kamili ya wa wafasiri wliojitolea mda wao na ujuzi kusaidia kufanya maudhui ya Ethereum kuwepo kwa kila mmoja.", + "page-contributing-translation-program-acknowledgements-our-translators-title": "Watafsiri wetu", + "page-contributing-translation-program-acknowledgements-our-translators-view-all": "Angalia watafsiri wote", + "page-contributing-translation-program-acknowledgements-our-translators-1": "Jamii ndio moyo wa programu ya ufasiri wa ethereum.org. Chunguza jamii kamili ya watafsiri hapo chini.", + "page-contributing-translation-program-acknowledgements-translation-leaderboard-title": "Ubao wa wanaoongoza katika kutafsiri", + "page-contributing-translation-program-acknowledgements-translation-leaderboard-cta": "Tusaidia kutafsiri ethereum.org na jipatie nafasi kwenye ubao wanaoongoza katika kutafsiri!", + "page-contributing-translation-program-acknowledgements-translation-leaderboard-1": "Tunataka kuangaza wafasiri bora kwa kuangalia kazi zao za hivi karibuni na pia kuwoenyesha wachangiaji walio na mchango mkubwa zaidi kuliko wote. Ubao wa wanaoongoza unafuatilia wafasiri walio hai zaidi kwa kuongalia mwezi, miezi mitatu na mwonekano wa wakati wote, na wanasasishwa kila mwanzo wa mwezi. Wafasiri wanawekwa kwenye ubao wa wanaoongoza kulingana na wingi wa maneno \"yalioshinda\" (maneno yaliothibitishwa wakati wa uhakiki).", + "page-contributing-translation-program-acknowledgements-translation-leaderboard-all-time-view": "Mwonekano wa muda wote", + "page-contributing-translation-program-acknowledgements-translation-leaderboard-month-view": "Mwonekano wa mwezi", + "page-contributing-translation-program-acknowledgements-translation-leaderboard-quarter-view": "Mwonekano wa miezi mitatu", + "page-contributing-translation-program-acknowledgements-translation-leaderboard-show-less": "Onyesha kidogo zaidi", + "page-contributing-translation-program-acknowledgements-translation-leaderboard-show-more": "Onyesha zaidi", + "page-contributing-translation-program-acknowledgements-translator": "Mtafsiri", + "page-contributing-translation-program-acknowledgements-language": "Lugha", + "page-contributing-translation-program-acknowledgements-total-words": "Jumla ya maneno", + "page-contributing-translation-program-acknowledgements-oats-title": "OATs", + "page-contributing-translation-program-acknowledgements-1": "Wachangiaji kwenye Programu ya Tafsiri wanastahiki OATs (tokeni za mafanikio za onchain) tofauti – tokeni zisizo kuvu zinazothibitisha ushiriki wao katika Programu ya Tafsiri ya ethereum.org.", + "page-contributing-translation-program-acknowledgements-2": "Tuna idadi ya OATs tofauti zinazopatikana kwa watafsiri, kulingana na shughuli zao.", + "page-contributing-translation-program-acknowledgements-3": "Ikiwa umechangia katika juhudi za tafsiri katika Crowdin, una OAT inayokusubiri!", + "page-contributing-translation-program-acknowledgements-how-to-claim-title": "Jinsi ya dai", + "page-contributing-translation-program-acknowledgements-how-to-claim-1": "Jiunge na", + "page-contributing-translation-program-acknowledgements-how-to-claim-1-discord": "Seva ya Discord", + "page-contributing-translation-program-acknowledgements-how-to-claim-2": "Bandika kiungo cha akaunti yako ya Crowdin katika chaneli ya #🥇 | proof-of-contribution.", + "page-contributing-translation-program-acknowledgements-how-to-claim-3": "Subiri mwanachama wa timu yetu akukabidhi majukumu yanayohitajika ili kudai OATs zako.", + "page-contributing-translation-program-acknowledgements-how-to-claim-4": "Dai OATs zako!", + "page-contributing-translation-program-acknowledgements-4": "Unapaswa kutumia tu mikoba ya kujihifadhi kudai OATs. Usitumie akaunti za mabadilishano au akaunti zingine ambazo huna funguo zake binafsi, kwani hizi hazitakuruhusu kupata na kudhibiti OATs zako." +} diff --git a/src/intl/sw/page-contributing-translation-program-contributors.json b/src/intl/sw/page-contributing-translation-program-contributors.json new file mode 100644 index 00000000000..9ea27356072 --- /dev/null +++ b/src/intl/sw/page-contributing-translation-program-contributors.json @@ -0,0 +1,10 @@ +{ + "page-contributing-translation-program-contributors-thank-you": "Tungependa kuwashukuru wachangiaji wote!", + "page-contributing-translation-program-contributors-title": "Watafsiri wetu", + "page-contributing-translation-program-contributors-our-translators-1": "Jamii ndio roho ya Programu ya ufasiri wa ethereum.org.", + "page-contributing-translation-program-contributors-our-translators-2": "Na maelfu ya wanachama wa jamii wanaochangia katika rasimu yetu ya uafasiri, ni vigumu kumtambua kila mmoja.", + "page-contributing-translation-program-contributors-our-translators-3": "Watafsiri wote wameorodheshwa kialfabeti ikifuta majina yao waliotumia kwenye Crowdin. Kama wewe ni mfasiri na ungependa kutumia jina lako halisi, jina la utani na mengine., unaweza kubadili jina lako kwenye Crowdin.", + "page-contributing-translation-program-contributors-meta-title": "Watafsiri wetu", + "page-contributing-translation-program-contributors-meta-description": "Orodha ya wachangiaji wetu katika kuafasiri.", + "page-contributing-translation-program-contributors-number-of-contributors": "Idadi ya wachangiaji:" +} diff --git a/src/intl/sw/page-developers-docs.json b/src/intl/sw/page-developers-docs.json index 9953270d520..2ae524deee8 100644 --- a/src/intl/sw/page-developers-docs.json +++ b/src/intl/sw/page-developers-docs.json @@ -1,4 +1,154 @@ { + "docs-nav-accounts": "Akaunti", + "docs-nav-accounts-description": "Taasisi za mtandao ambazo zinaweza kuwekeza baki na kutuma shughuli", + "docs-nav-advanced": "Ya hali ya juu", + "docs-nav-backend-apis": "Mfumo wa nyuma wa programu", + "docs-nav-block-explorers": "Wachunguzi wa tofali", + "docs-nav-blocks": "Vipande", + "docs-nav-blocks-description": "Jinsi shughuli zinavyo unganishwa pamoja ili kusababisha kusawazishwa kwa wahusika wote", + "docs-nav-bridges": "Madaraja", + "docs-nav-bridges-description": "Muhtasari wa kuunda madaraja kwa ajili ya wasanidi programu", + "docs-nav-compiling-smart-contracts": "Kuandaa smart contracts", + "docs-nav-composability": "Utunzi", + "docs-nav-consensus-mechanisms": "Utaratibu wa makubaliano", + "docs-nav-consensus-mechanisms-description": "Jinsi nodi husika ya mtandao wakusambazwa huukubaliana na hali ya sasa ya mfumo", + "docs-nav-gasper": "Gasper", + "docs-nav-weak-subjectivity": "Upendeleo dhaifu", + "docs-nav-attestations": "Uthibitishaji", + "docs-nav-keys": "Funguo", + "docs-nav-withdrawal-credentials": "Vitambulisho vya utoaji", + "docs-nav-block-proposal": "Pendekezo la bloku", + "docs-nav-data-and-analytics": "Data na Uchambuzi", + "docs-nav-data-and-analytics-description": "Jinsi data ya blockchain inavyo kusanishwa, kupangwa na kutelekezwa kwa dapps", + "docs-nav-data-availability": "Uwepo wa data", + "docs-nav-data-availability-storage-strategies": "Mikakati ya uhifadhi data kwenye kiambajengo", + "docs-nav-dart": "Dart", + "docs-nav-delphi": "Delphi", + "docs-nav-deploying-smart-contracts": "Kupeleka mikataba erevu", + "docs-nav-design-and-ux": "Utangulizi kwenye ubunifu na UX", + "docs-nav-design-and-ux-description": "Utambulisho kwa ubunifu wa UX utafiti kwenye tovuti ya tatu eneo la Ethereum", + "docs-nav-design-fundamentals": "Misingi ya ubunifu", + "docs-nav-development-frameworks": "Mfumo wa maendeleo", + "docs-nav-development-frameworks-description": "Zana zinazorahisisha uundaji kwa kutumia Ethereum", + "docs-nav-development-networks": "Maendeleo ya mtandao", + "docs-nav-development-networks-description": "Mazingira ya kawaida ya kiambajengo inayotumika kujaribu programu gatuzi kabla ya kuachiwa", + "docs-nav-dex-design-best-practice": "Jukwa la mabadilishano gatuzi mazoezi bora ya ubunifu", + "docs-nav-dot-net": ".NET", + "docs-nav-elixir": "Elixir", + "docs-nav-erc-20": "ERC-20: Tokeni za kufanana (kujirudia)", + "docs-nav-erc-721": "ERC-721: NFTs (Tokeni zisizo za kujirudia)", + "docs-nav-erc-777": "ERC-777", + "docs-nav-erc-1155": "ERC-1155", + "docs-nav-erc-4626": "ERC-4626", + "docs-nav-ethereum-client-apis": "Mteja wa Ethereum APIs", + "docs-nav-ethereum-client-apis-description": "Maktaba zinazokuwezesha programu yako ya wavuti kuingiliana na Ethereum na mikataba mahiri.", + "docs-nav-ethereum-stack": "Mkusanyiko wa Ethereum", + "docs-nav-evm": "Mashine Pepe ya Ethereum", + "docs-nav-evm-description": "The EVM handles all the computation on the Ethereum network", + "docs-nav-foundational-topics": "Mada za msingi", + "docs-nav-gas": "Gesi", + "docs-nav-gas-description": "Nguvu ya kompyuta inayohitajika kuchakata miamala, inayolipwa kwa ETH na watumaji wa miamala.", + "docs-nav-golang": "Golang", + "docs-nav-heuristics-for-web3": "Mbinu za utatuzi kwa Web3", + "docs-nav-integrated-development-environments-ides": "Mazingira Jumuishi ya Maendeleo (IDEs)", + "docs-nav-integrated-development-environments-ides-description": "Mazingira bora ya kuandika msimbo wa dapp", + "docs-nav-intro-to-dapps": "Utangulizi wa dapps", + "docs-nav-intro-to-dapps-description": "Utangulizi wa programu zisiozo na mipaka", + "docs-nav-intro-to-ether": "Utangulizi wa Ether", + "docs-nav-intro-to-ether-description": "Muhtasari wa haraka kuhusu Ether", + "docs-nav-intro-to-ethereum": "Utangulizi wa Ethereum", + "docs-nav-intro-to-ethereum-description": "Maelezo ya haraka kuhusu Ethereum", + "docs-nav-intro-to-the-stack": "Utangulizi katika mpororo", + "docs-nav-intro-to-the-stack-description": "Muhtasari wa mfumo wa Ethereum/Web3", + "docs-nav-java": "Java", + "docs-nav-java-script-apis": "JavaScript APIs", + "docs-nav-javascript": "JavaScript", + "docs-nav-json-rpc": "JSON-RPC", + "docs-nav-mev": "Thamani inayoweza kutolewa (MEV)", + "docs-nav-mev-description": "Jinsi thamani inavyotolewa kutoka kwenye blockchain ya Ethereum zaidi ya zawadi ya bloku.", + "docs-nav-mining": "Uchimbaji", + "docs-nav-mining-algorithms": "Maelekezo ya uchimbaji", + "docs-nav-dagger-hashimoto": "Dagger-Hashimoto", + "docs-nav-ethash": "Ethash", + "docs-nav-networks": "Mitandao", + "docs-nav-networks-description": "Utekelezaji wa Ethereum, ikiwa ni pamoja na mitandao ya majaribio", + "docs-nav-nodes-and-clients": "Nodi na wateja", + "docs-nav-nodes-and-clients-description": "Washiriki wa mtandao na programu wanazotumia kuthibitisha miamala.", + "docs-nav-opcodes": "Opcodes", + "docs-nav-run-a-node": "Endesha nodi", + "docs-nav-client-diversity": "Utofauti wa wateja", + "docs-nav-bootnodes": "Bootnodes", + "docs-nav-light-clients": "Wateja wepesi", + "docs-nav-nodes-as-a-service": "Nodi kama huduma", + "docs-nav-oracles": "Maneno", + "docs-nav-oracles-description": "Jinsi taarifa inavyoingizwa kwenye blockchain ya Ethereum.", + "docs-nav-programming-languages": "Lugha za programu", + "docs-nav-programming-languages-description": "Jinsi ya kuanza kutumia Ethereum kwa kutumia lugha ambazo tayari unazijua", + "docs-nav-proof-of-authority": "Ushahidi wa Mamlaka", + "docs-nav-proof-of-stake": "Ushahidi wa Umiliki wa Hisa", + "docs-nav-proof-of-work": "Ushahidi wa Kazi", + "docs-nav-python": "Python", + "docs-nav-readme": "Muhtasari", + "docs-nav-ruby": "Ruby", + "docs-nav-rust": "Rust", + "docs-nav-scaling": "Uongezwaji", + "docs-nav-scaling-description": "Mbinu za kuhifadhi ugatuaji na usalama kadiri Ethereum inavyokua.", + "docs-nav-scaling-optimistic-rollups": "Rollups za Kimaendeleo (Optimistic)", + "docs-nav-scaling-zk-rollups": "Rollups za Maarifa Sifuri", + "docs-nav-scaling-channels": "Ugavi na Utoaji wa Eth {#eth-supply-and-issuance}", + "docs-nav-scaling-sidechains": "Minyororo ya pembeni", + "docs-nav-scaling-plasma": "Njozi", + "docs-nav-scaling-validium": "Validium", + "docs-nav-smart-contract-security": "Usalama wa mkataba erevu", + "docs-nav-smart-contract-security-description": "Mbinu bora za kudhibiti mashambulizi ya mikataba mahiri na udhaifu", + "docs-nav-smart-contract-formal-verification": "Uthibitishaji rasmi wa mkataba mahiri", + "docs-nav-smart-contract-formal-verification-description": "Utangulizi wa uthibitishaji rasmi katika muktadha wa mikataba mahiri ya Ethereum", + "docs-nav-smart-contract-anatomy": "Anatomy ya mkataba mahiri", + "docs-nav-smart-contract-languages": "Lugha za mikataba mahiri", + "docs-nav-smart-contracts": "Mikataba erevu", + "docs-nav-smart-contracts-description": "Programu ambazo hukaa katika anwani ya Ethereum na huendesha utendaji kazi inapoanzishwa na miamala", + "docs-nav-smart-contracts-libraries": "Maktaba za mikataba mahiri", + "docs-nav-standards": "Viwango", + "docs-nav-standards-description": "Kukubaliwa kwa itifaki za kudumisha ufanisi na ufikiaji wa miradi kwa jamii", + "docs-nav-storage": "Ghala", + "docs-nav-storage-description": "Mfumo mtawanyo na mbinu za uhifadhi uliogatuliwa", + "docs-nav-testing-smart-contracts": "Kujaribu mikataba ya mahiri", + "docs-nav-token-standards": "Viwango vya Mithili", + "docs-nav-transactions": "Miamala", + "docs-nav-transactions-description": "Uhamisho na vitendo vingine vinavyosababisha hali ya Ethereum kubadilika", + "docs-nav-upgrading-smart-contracts": "Kuboresha mikataba erevu", + "docs-nav-naming-smart-contracts": "Kutaja mikataba-erevu", + "docs-nav-verifying-smart-contracts": "Kuhakiki mikataba erevu", + "docs-nav-web2-vs-web3": "Wavuti-2 dhidi ya Wavuti-3", + "docs-nav-web2-vs-web3-description": "Utofauti ya msingi ambazo kiambajengo inategemea programu inayotoa", + "docs-nav-networking-layer": "Safu ya mtandao", + "docs-nav-networking-layer-description": "Maelezo ya safu ya mtandao wa Ethereum", + "docs-nav-networking-layer-network-addresses": "Anwani ya mtandao", + "docs-nav-networking-layer-portal-network": "Mtandao wa lango", + "docs-nav-data-structures-and-encoding": "Muundo wa data na usimbuaji", + "docs-nav-data-structures-and-encoding-description": "Utangulizi juu ya muundo wa data na skema ya usimbuaji inayotumika kwenye msururu wa Ethereum", + "docs-nav-data-structures-and-encoding-rlp": "Kiambishi awali cha urefu kinachojirudia (RLP)", + "docs-nav-data-structures-and-encoding-patricia-merkle-trie": "Kiambatanishi cha Patricia", + "docs-nav-data-structures-and-encoding-ssz": "Mfwatano rahisi", + "docs-nav-data-structures-and-encoding-web3-secret-storage": "Tovuti ya tatu ufafanuzi wa uhifadhi", + "docs-nav-rewards-and-penalties": "Uthibitisho wa dhamana zawadi na makato", + "docs-nav-node-architecture": "Muundo wa Nodi", + "docs-nav-archive-nodes": "Nodi zilizohifadhiwa", + "docs-nav-attack-and-defense": "Uthibitisho wa dhamana shambuliz na ulinzi", + "docs-nav-pos-vs-pow": "Uthibitisho wa dhamana dhidi ya uthibitisho wa kazi", + "docs-nav-pos-faqs": "Uthibitisho-wa-dhamana", + "page-calltocontribute-desc-1": "Kama wewe ni mtaalamu wa mada na unahitaji kuchangia, kuhariri kurasa na kuipa busara zako.", + "page-calltocontribute-desc-2": "Utapewa sifa zako na utajkuwa unaisaidia jamii ya Ethereum!", + "page-calltocontribute-desc-3": "Tumia rahisi ya kunyumbulika", + "page-calltocontribute-desc-4": "Maswali? tuulize kwenye kituo cha #maudhui yetu", + "page-calltocontribute-link": "kiolezo cha nyaraka", + "page-calltocontribute-link-2": "Seva ya Discord", + "page-calltocontribute-span": "Hariri ukurasa", + "page-calltocontribute-title": "Saidia kusasisha ukurasa huu", + "layer-2-arbitrum-note": "Uthibitisho wa udanganyifu unapatikana tu kwa watumiaji walioko kwenye orodha ya waruhusiwa, orodha bado aijafunguliwa", + "layer-2-boba-note": "Uthibitishaji wa hali katika uundaji", + "layer-2-metis-note": "Ushaidi wa udanganyifu upo kwenye maendeleo", + "layer-2-optimism-note": "Uthibitisho wa makosa upo kwenye maendeleo", "back-to-top": "Kurudi juu", "banner-page-incomplete": "Ukurasa huu haujakamilika na tungependa msaada wako. Hariri ukurasa huu na kuongeza chochote unachofikiri kinaweza kua na manufaa kwa wengine.", "next": "Ijayo", diff --git a/src/intl/sw/page-developers-index.json b/src/intl/sw/page-developers-index.json index 6c52d8d5aa0..a0f15edafb4 100644 --- a/src/intl/sw/page-developers-index.json +++ b/src/intl/sw/page-developers-index.json @@ -1,23 +1,15 @@ { - "page-developer-meta-title": "Rasilomali za Msanisi Programu kwenye Ethereum", - "page-developers-about": "Kuhusu rasilimali za msanidi programu", - "page-developers-about-desc": "ethereum.org iko hapa kukusaidia kujenga na Ethereum na nyaraka juu ya dhana za msingi na pia safu ya maendeleo. Kwa kuongeza kuna mafunzo ya kukufanya uweze kujiendeleza.", - "page-developers-about-desc-2": "Iliyotiwa moyo na Mtandao wa Wasanidi Programu wa Mozilla, tulifikiri Ethereum inahitaji mahali pa kuweka bidhaa na rasilimali bora za msanidi programu. Kama marafiki wetu huko Mozilla, kila kitu hapa ni chanzo-wazi na tayari kwako kutanua na kuboresha.", + "page-developer-meta-title": "Rasilimali za Msanidi Programu kwenye Ethereum", "page-developers-account-desc": "Mikataba au watu kwenye mtandao", "page-developers-accounts-link": "Akaunti", - "page-developers-advanced": "Ya hali ya juu", "page-developers-api-desc": "Kutumia maktaba kuingiliana na mikataba-erevu", "page-developers-api-link": "Mfumo wa nyuma wa programu", "page-developers-block-desc": "Makundi ya shughuli zilizoongezwa kwenye pande la mnyororo", "page-developers-block-explorers-desc": "Lango lako la data za Ethereum", "page-developers-block-explorers-link": "Wachunguzi wa tofali", "page-developers-blocks-link": "Vipande", - "page-developers-browse-tutorials": "Vinjari mafunzo", - "page-developers-choose-stack": "Chagua mpororo wako", - "page-developers-contribute": "Changia", "page-developers-dev-env-desc": "IDEs zinazo faa kwa maendeleo ya dapp", "page-developers-dev-env-link": "Mazingira ya maendeleo", - "page-developers-discord": "Jiunge Discord", "page-developers-docs-introductions": "Utangulizi", "page-developers-ethskills-cta": "Jenga na {ethskills}", "page-developers-ethskills-desc": "Maarifa ya Ethereum yaliyopangwa kwa ajili ya mkusanyiko wa mawakala. Mpe wakala wako wa AI muktadha unaohitajika kusoma hali, kutuma miamala, na kuratibu na itifaki, bila kuondoka kwenye dirisha la muktadha wa modeli.", @@ -31,15 +23,12 @@ "page-developers-evm-desc": "Tarakilishi inayoshughulikia mapatano", "page-developers-evm-link": "Mashine Dhahiri ya Ethereum(MDE)", "page-developers-explore-documentation": "Chunguza nyaraka", - "page-developers-feedback": "Ikiwa una maoni yoyote, tuwasiliane kupitia GitHub au kwenye seva yetu ya Discord.", "page-developers-frameworks-desc": "Zana za kusaidia kuharakisha maendeleo", "page-developers-frameworks-link": "Mfumo wa maendeleo", "page-developers-fundamentals": "Misingi", "page-developers-gas-desc": "Ether inayohitajika kutoa nguvu kwa ajili ya mapatano", "page-developers-gas-link": "Gesi", - "page-developers-get-started": "Je! Ungependa kuanza?", - "page-developers-improve-ethereum": "Tusaidie kufanya ethereum.org iwe bora", - "page-developers-improve-ethereum-desc": "Kama ethereum.org, hati hizi ni juhudi za jamii. Unda PR(Vuta ombi) ikiwa utaona makosa, nafasi ya kuboresha, au fursa mpya za kusaidia watengenezaji wa Ethereum.", + "page-developers-get-started": "Unataka kujenga nini leo?", "page-developers-into-eth-desc": "Utangulizi wa blockchain na Ethereum", "page-developers-intro-ether-desc": "Utangulizi wa sarafu ya krypto na Ether", "page-developers-intro-dapps-desc": "Utangulizi wa programu zisiozo na mipaka", @@ -50,48 +39,103 @@ "page-developers-intro-stack-desc": "Utangulizi katika mpororo wa Ethereum", "page-developers-js-libraries-desc": "Utumiaji wa javascript kuingiliana na mikatabaerevu", "page-developers-js-libraries-link": "Maktaba za javascript", + "page-developers-jump-right-in-title": "Anzisha wazo lako haraka", "page-developers-language-desc": "Kutumia Ethereum na lugha zinazojulikana", "page-developers-languages": "Lugha za programu", "page-developers-learn": "Jifunze utengenezaji wa Ethereum", - "page-developers-learn-desc": "Soma juu ya dhana za msingi na mpororo wa Ethereum na hati zetu", + "page-developers-learn-desc": "Soma juu ya dhana za msingi na mpororo wa Ethereum na hati zetu.", "page-developers-learn-tutorials": "Jifunze kupitia mafunzo", "page-developers-learn-tutorials-cta": "Angalia mafunzo", "page-developers-learn-tutorials-desc": "Jifunze utengenezaji wa Ethereum hatua kwa hatua kutoka kwa wajenzi ambao tayari wameufanya.", "page-developers-meta-desc": "Nyaraka, mafunzo, na zana kwa wasanidi programu wanaojenga juu ya Ethereum.", - "page-developers-mev-desc": "Utangulizi wa thamani inayoweza kutolewa kwa mchimbaji", - "page-developers-mev-link": "Thamani ya mchimbaji", - "page-developers-mining-desc": "Jinsi matofali mapya yanavyoundwa na makubaliano kufikiwa", - "page-developers-mining-link": "Uchimbaji", "page-developers-networks-desc": "Muhtasari wa Mtandao Mkuu na mitandao ya majaribio", "page-developers-networks-link": "Mitandao", "page-developers-node-clients-desc": "Jinsi matofali na miamala inavyothibitishwa kwenye mtandao", "page-developers-node-clients-link": "Nodi na wateja", - "page-developers-oracle-desc": "Kutoka nje ya mnyororo-data katika mikataba yako erevu", - "page-developers-oracles-link": "Maneno", "page-developers-play-code": "Cheza na msimbo", + "page-developers-quickstart-scaffold-subtext": "Bootstrap mrundikano wa programu yako ya Ethereum kwa sekunde.", + "page-developers-quickstart-scaffold-docs": "Soma Scaffold-ETH 2", "page-developers-read-docs": "Soma hati", - "page-developers-scaling-desc": "Ufumbuzi wa miamala ya haraka", - "page-developers-scaling-link": "Uongezwaji", + "page-developers-start-quest": "Anza jukumu", + "page-developers-resources": "Rasilimali", "page-developers-smart-contract-security-desc": "Hatua za usalama za kuzingatia wakati wa utengenezwaji wa mikataba erevu", "page-developers-smart-contract-security-link": "Usalama wa mkataba erevu", - "page-developers-set-up": "Tengeneza mazingira", - "page-developers-setup-desc": "Andaa mpororo wako tayari kwa ujenzi kwa kusanidi mazingira ya utengenezaji.", "page-developers-smart-contracts-desc": "Mantiki nyuma ya dapps - makubaliano yanayojitekeleza", "page-developers-smart-contracts-link": "Mikataba erevu", + "page-developers-solidity-docs": "Soma hati za Solidity", + "page-developers-speedrunethereum-title": "Jifunze dhania zote za muhimu kwa kujenga kwenye Etherium", + "page-developers-speedrunethereum-description": "Pokea ushauri kutoka kwa wengine, na ujifunze kushirikiana na waendelezaji wenzako.", + "page-developers-speedrunethereum-link": "MwendoKasi Ethereum", "page-developers-stack": "Mpororo", - "page-developers-start": "Anza majaribio", - "page-developers-start-desc": "Unataka kujaribu kwanza, uliza maswali baadaye?", + "page-developers-start": "Changamoto na ushauri", "page-developers-storage-desc": "Jinsi ya kushughulikia uhifadhi wa dapp", "page-developers-storage-link": "Ghala", - "page-developers-subtitle": "Mwongozo wa wajenzi wa Ethereum. Umeundwa na wajenzi, kwa wajenzi.", + "page-developers-subtitle": "Mwongozo wa wajenzi wa Ethereum. Kila kitu unachohitaji kujenga na kukuza programu yako ya mtandaoni (onchain).", "page-developers-title-1": "Ethereum", "page-developers-title-2": "msanidi programu", "page-developers-title-3": "rasilimali", - "page-developers-token-standards-desc": "Muhtasari wa viwango vya mithili iliyokubalika", - "page-developers-token-standards-link": "Viwango vya Mithili", "page-developers-transactions-desc": "Jinsi hali ya Ethereum inavyobadilika", "page-developers-transactions-link": "Miamala", "page-developers-web3-desc": "Jinsi ulimwengu wa wavuti-3 wa maendeleo ni tofauti", "page-developers-web3-link": "Wavuti-2 dhidi ya Wavuti-3", - "alt-eth-blocks": "Kielelezo cha matofali yaliopangwa kama nembo ya ETH" + "page-developers-networking-layer": "Safu ya mtandao", + "page-developers-networking-layer-link": "Safu ya mtandao", + "page-developers-networking-layer-desc": "Utangulizi wa safu ya mtandao wa Ethereum", + "page-developers-data-structures-and-encoding": "Muundo wa taarifa/data na usimbuaji", + "page-developers-data-structures-and-encoding-link": "Muundo wa data na usimbuaji", + "page-developers-data-structures-and-encoding-desc": "Utangulizi juu ya muundo wa data na schema ya usimbuaji inayotumika kwenye msururu wa Ethereum", + "alt-eth-blocks": "Kielelezo cha matofali yaliopangwa kama nembo ya ETH", + "page-assets-doge": "Doge inayotumia dapps", + "page-developers-build-section-desc": "Kila kitu unachohitaji kujifunza na kujenga programu zako za kwanza kwenye Ethereum", + "page-developers-resources-section-title": "Rasilimali zenye msaada kwa waendelezaji", + "page-developers-get-help-title": "Pata msaada", + "page-developers-get-help-desc": "Kama umekwama au unahitaji msaada kutatua matatizo, hakikisha unaomba mwongozo", + "page-developers-stack-exchange": "jukwaa la maswali na majibu kwa waendelezaji", + "page-developers-ask-ai": "Uliza AI", + "page-developers-resources-title": "Rasilimali", + "page-developers-resources-desc": "Unataka kujaribu kwanza, kisha uulize maswali baadaye? Angalia sehemu za majaribio, bootcamps n.k.", + "page-developers-tutorials-title": "Mafunzo", + "page-developers-tutorials-desc": "Jifunze utengenezaji wa Ethereum hatua kwa hatua kutoka kwa wajenzi ambao tayari wameufanya.", + "page-developers-video-courses-title": "Kozi za video", + "page-developers-video-courses-desc": "Unataka kuanzisha taaluma yako ya kitaalamu katika blockchain? Kozi hizi zitakuandaa kupata ajira kama msanidi programu wa blockchain.", + "page-developers-docs-section-desc": "Elewa dhana kuu za Ethereum na blockchain.", + "page-developers-hackathons-title": "Jiunge na hackathon", + "page-developers-hackathons-desc": "Hackathon ni fursa nzuri za kujenga mtandao na kujifunza kutoka kwa wengine, pamoja na kuanzisha miradi na kupata zawadi.", + "page-developers-visit-ethglobal": "Tembelea EthGlobal", + "page-developers-founders-title": "Je, wewe ni mwanzilishi?", + "page-developers-founders-desc": "Tayari una wazo la mradi au unafanya kazi kwenye mfano (prototype)? Chunguza jinsi ya kupeleka mradi wako hatua inayofuata. Tunaweza kukuunganisha na mashirika yanayohusika na wataalamu katika nyanja hii.", + "page-developers-get-in-touch": "Wasiliana nasi", + "page-developers-see-grant-options": "Tazama chaguo za ruzuku", + "page-developers-speedrun-nft-alt": "Bango la Utokenishaji wa Speedrun Ethereum", + "page-developers-speedrun-nft-title": "Utokenishaji", + "page-developers-speedrun-nft-desc": "Unda tokeni ya kipekee ili kujifunza misingi ya scaffold-eth.", + "page-developers-skill-beginner": "Mwanzo", + "page-developers-skill-intermediate": "Wastani", + "page-developers-skill-advanced": "Ya hali ya juu", + "page-developers-speedrun-dex-alt": "Bango la Speedrun Ethereum DEX", + "page-developers-speedrun-dex-title": "DEX", + "page-developers-speedrun-dex-desc": "Jenga mtengeneza soko rahisi wa kiotomatiki, toa ukwasi, na tekeleza ubadilishanaji wa tokeni.", + "page-developers-speedrun-stablecoins-alt": "Bango la Speedrun Ethereum la Sarafu-imara", + "page-developers-speedrun-stablecoins-title": "Sarafu-imara", + "page-developers-speedrun-stablecoins-desc": "Jenga sarafu-imara na ujifunze mbinu za uthabiti na oracles za bei.", + "page-developers-course-duration": "Kozi ya masaa ", + "page-developers-course-blockchain-basics-title": "Misingi ya blockchain", + "page-developers-course-blockchain-basics-desc": "Jifunze jinsi blockchain na mikataba mahiri inavyofanya kazi, unda pochi (wallet), na saini muamala wako wa kwanza.", + "page-developers-course-blockchain-basics-alt": "Bango la kozi ya misingi ya blockchain ya Cyfrin Updraft", + "page-developers-course-solidity-title": "Uendelezaji wa mikataba mahiri kwa Solidity", + "page-developers-course-solidity-desc": "Uprogramu wa Solidity ni njia yako ya kuingia kwenye maendeleo ya Web3 katika mifumo inayolingana na Ethereum.", + "page-developers-course-solidity-alt": "Bango la kozi ya uendelezaji wa mikataba mahiri kwa Solidity ya Cyfrin Updraft", + "page-developers-course-foundry-fundamentals-title": "Misingi ya Foundry", + "page-developers-course-foundry-fundamentals-desc": "Boresha ujuzi wako wa maendeleo ya Solidity kwa kutumia Foundry na dhana na zana za hali ya juu za maendeleo ya Web3.", + "page-developers-course-foundry-fundamentals-alt": "Bango la kozi ya misingi ya Foundry ya Cyfrin Updraft", + "page-developers-course-advanced-foundry-title": "Foundry ya hali ya juu", + "page-developers-course-advanced-foundry-desc": "Fahamu mbinu za hali ya juu za maendeleo ya Web3 kwa kutumia Advanced Foundry kwa ajili ya uendelezaji wa mikataba mahiri ya Solidity.", + "page-developers-course-advanced-foundry-alt": "Bango la kozi ya Advanced Foundry ya Cyfrin Updraft", + "page-developers-course-security-title": "Usalama wa mkataba erevu", + "page-developers-course-security-desc": "Anza taaluma yako kama mtafiti wa usalama wa mikataba mahiri! Jifunze ukaguzi wa mikataba mahiri na mbinu bora za kufanya kazi.", + "page-developers-course-security-alt": "Bango la kozi ya misingi ya blockchain ya Cyfrin Updraft", + "page-developers-why-title": "Pata malipo mazuri. Fanya kazi popote. Jenga mustakabali.", + "page-developers-why-subtitle": "Zaidi ya nusu ya kazi za mnyororo wa bloku ni za kufanyia mbali, na makadirio mengine yanaonyesha idadi hiyo kufikia 70%.", + "page-developers-why-avg-salary-dev": "Wastani wa mshahara wa msanidi programu", + "page-developers-why-avg-salary-blockchain": "Wastani wa mshahara katika sekta ya mnyororo wa bloku" } diff --git a/src/intl/sw/page-developers-tutorials.json b/src/intl/sw/page-developers-tutorials.json index 19a9408914c..42ef65948f9 100644 --- a/src/intl/sw/page-developers-tutorials.json +++ b/src/intl/sw/page-developers-tutorials.json @@ -1,6 +1,24 @@ { + "comp-tutorial-metadata-minute-read": "soma ndani ya dakika", + "page-tutorial-listing-policy-intro": "Kabla ya kuwasilisha mafunzo tafadhali soma sera yetu ya uorodheshaji.", + "comp-tutorial-metadata-tip-author": "Mzawadie mwandishi", + "page-tutorial-create-an-issue": "Tengeneza suala", + "page-tutorial-create-an-issue-desc": "Jaza kiolezo cha suala kinachoelezea mafunzo yako.", + "page-tutorial-raise-issue-btn": "Ongeza suala", + "page-tutorial-read-time": "dakika", + "page-tutorial-submit-btn": "Tuma mafunzo", + "page-tutorial-subtitle": "Karibu katika orodha yetu ya mafunzo ya jamii.", + "page-tutorial-tags-error": "Bado hamna mafunzo yenye vitambulisho vyako vyote ulivochagua", + "page-tutorial-title": "Mafunzo ya Maendeleo ya Ethereum", + "page-tutorials-meta-description": "Vinjari na uchunguze mafunzo ya jamii ya Ethereum kwa mada.", + "page-tutorial-external-link": "Ya nje", + "page-tutorials-meta-title": "Mafunzo ya Maendeleo ya Ethereum", + "page-tutorial-beginner": "Mwanzo", + "page-tutorial-intermediate": "Wastani", + "page-tutorial-advanced": "Ya hali ya juu", "page-find-wallet-try-removing": "Jaribu kuondoa kipengele kimoja ama viwili", - "page-find-wallet-clear": "Futa vichujaji", + "page-find-wallet-clear": "Ondoa vichujaji", + "page-tutorials-env-banner": "Usifanye commit ya .env! Tafadhali hakikisha kamwe hushiriki au kufichua faili yako ya .env na mtu yeyote, kwani kwa kufanya hivyo unaweka siri zako hatarini. Ikiwa unatumia udhibiti wa toleo, ongeza .env yako kwenye faili ya gitignore.", "page-tutorial-all": "Zote", "page-tutorial-topics": "Mada", "page-tutorial-search-placeholder": "Tafuta mafunzo...", diff --git a/src/intl/sw/page-energy-consumption.json b/src/intl/sw/page-energy-consumption.json new file mode 100644 index 00000000000..b9d4e4d5e0a --- /dev/null +++ b/src/intl/sw/page-energy-consumption.json @@ -0,0 +1,21 @@ +{ + "adoption-chart-artists-label": "Wasanii", + "adoption-chart-column-now-label": "Sasa", + "adoption-chart-companies-label": "Makampuni", + "adoption-chart-developers-label": "Wasanidi programu", + "adoption-chart-gamers-label": "Wachezaji", + "adoption-chart-investors-label": "Wawekezaji", + "adoption-chart-musicians-label": "Waimbaji", + "adoption-chart-refugees-label": "Wakimbizi", + "adoption-chart-writers-label": "Waandishi", + "energy-consumption-chart-airbnb-label": "AirBnB", + "energy-consumption-chart-btc-pow-label": "Uthibitisho-wa-Kazi wa Bitcoin", + "energy-consumption-chart-eth-pos-label": "Uthibitisho-wa-Hisa wa Ethereum", + "energy-consumption-chart-eth-pow-label": "Uthibitisho-wa-Kazi wa Ethereum", + "energy-consumption-chart-gaming-us-label": "Michezo ukiwa Marekani", + "energy-consumption-chart-global-data-centers-label": "Kituo cha data cha Kimataifa", + "energy-consumption-chart-netflix-label": "Netflix", + "energy-consumption-chart-paypal-label": "PayPal", + "energy-consumption-gold-mining-cbeci-label": "Uchimbaji wa Dhahabu", + "energy-consumption-chart-legend": "Matumiz ya nishati ya mwaka kwa lisaa la Terawati/mwaka" +} diff --git a/src/intl/sw/page-ethereum-history-founder-and-ownership.json b/src/intl/sw/page-ethereum-history-founder-and-ownership.json new file mode 100644 index 00000000000..ecd941f8df1 --- /dev/null +++ b/src/intl/sw/page-ethereum-history-founder-and-ownership.json @@ -0,0 +1,65 @@ +{ + "page-ethereum-history-founder-and-ownership-meta-title": "Historia ya Ethereum: mwanzilishi, uzinduzi na umiliki | ethereum.org", + "page-ethereum-history-founder-and-ownership-meta-description": "Jifunze kuhusu historia ya Ethereum, ikiwa ni pamoja na nani aliyeiumba, ilizinduliwa lini na nani anaiongoza leo.", + "page-ethereum-history-founder-and-ownership-twitter-meta-description": "Jifunze tofauti kati ya Bitcoin na Ethereum, ikiwa ni pamoja na matumizi, utendaji wa mtandao, uchumi wa tokeni na zaidi.", + "page-ethereum-history-founder-and-ownership-title": "Historia ya Ethereum: mwanzilishi, uzinduzi na umiliki", + "page-ethereum-history-founder-and-ownership-description-1": "Ethereum ilianzishwa na Vitalik Buterin mwaka wa 2013. Waanzilishi wenza kadhaa walijiunga baadaye, akiwemo Gavin Wood na Joseph Lubin. Mtandao wa Ethereum ulizinduliwa rasmi mnamo Julai 30, 2015, kwa uchimbaji wa bloku ya kwanza (bloku ya Genesis).", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-description-1": "Tofauti na mashirika ya jadi, Ethereum haina Mkurugenzi Mtendaji, bodi, au mhusika mmoja anayedhibiti. Ni jukwaa lililogatuliwa linalotawaliwa na jumuiya yake, huku Taasisi ya Ethereum isiyo ya faida ikitoa usaidizi.", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum": "Nani alianzisha/alishiriki kuanzisha Ethereum?", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-description-1": "Ethereum ilianzishwa na Vitalik Buterin aliyebuni wazo hilo mwishoni mwa 2013.", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-description-2": "Alizaliwa nchini Urusi mnamo 1994 na kukulia nchini Kanada, Buterin alionyesha kipaji cha kipekee cha hisabati tangu akiwa na umri mdogo.", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-description-3": "Aligundua Bitcoin mnamo 2011, na akaanza kuandika makala za Bitcoin ambazo zilimfanya ashiriki kuanzisha Bitcoin Magazine mnamo 2012. Hiki kilikuwa kimojawapo ya machapisho ya kwanza yaliyojikita kwenye sarafu ya kidigitali. Kwa kuwa sehemu ya jumuiya ya awali ya Bitcoin, alishuhudia mwenyewe uwezo wake na mapungufu yake.", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-description-4": "Mnamo 2014, Vitalik alichapisha Karatasi Nyeupe ya Ethereum, akielezea jukwaa ambalo lingeenda mbali zaidi ya Bitcoin kwa kuunda mnyororo wa bloku ambao ungeweza kufanya zaidi ya malipo tu.", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-description-5": "Ethereum inapanua mbinu ya Bitcoin, kimsingi ikisema, badala ya kuwa na sheria ambazo zimeundwa ili kusaidia programu moja, tutatengeneza kitu cha jumla zaidi ambapo watu wanaweza tu kuunda programu zao wenyewe na sheria za programu zozote walizounda zinaweza kutekelezwa, kutumiwa kwenye jukwaa la Ethereum.", + "page-ethereum-history-founder-and-ownership-when-ethereum-when-did-ethereum-launch": "Ethereum ilizinduliwa lini?", + "page-ethereum-history-founder-and-ownership-who-owns-and-runs-ethereum-now": "Nani anamiliki na kuendesha Ethereum sasa?", + "page-ethereum-history-founder-and-ownership-founder-of-ethereum": "Mwanzilishi wa Ethereum", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-description-6": "Ethereum ilianzishwa kwa ushirikiano na watu 8 waliosaidia kuifanya Ethereum iwe hai.", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-vitalik-buterin": "Vitalik Buterin: Alibuni Ethereum mnamo 2013, aliandika karatasi nyeupe ya awali, na akawa mwonaji mkuu na mtetezi wake, akielezea dhana ya kompyuta ya ulimwengu iliyogatuliwa na kuongoza mwelekeo wa kiufundi na kifalsafa wa itifaki.", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-gavin-wood": "Gavin Wood: Alitengeneza lugha ya programu ya Solidity na akaandika Karatasi ya Njano ya Ethereum, mwongozo wa kiufundi wa Mashine ya Mtandaoni ya Ethereum (EVM).", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-joseph-lubin": "Joseph Lubin: Alisaidia kufadhili hatua za awali za Ethereum na baadaye akaanzisha ConsenSys, kampuni inayojikita katika kujenga programu na miundombinu inayotegemea Ethereum.", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-jeffrey-wilcke": "Jeffrey Wilcke: Aliunda Geth, programu ya utekelezaji ya Ethereum ya awali na inayotumiwa sana, inayohusika na kuendesha EVM na kuhifadhi data ya mtandao wa Ethereum.", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-mihai-alisie": "Mihai Alisie: Alishiriki kuanzisha Bitcoin Magazine na Vitalik Buterin na alisaidia kuanzisha Taasisi ya Ethereum nchini Uswizi, akihudumu kama makamu wa rais na kuweka mfumo wa kisheria wa mauzo ya awali ya ether.", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-anthony-di-lorio": "Anthony Di Lorio", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-amir-chetrit": "Amir Chetrit", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-charles-hoskinson": "Charles Hoskinson", + "page-ethereum-history-founder-and-ownership-who-founded-ethereum-launch-description-7": "Hadi leo, Vitalik Buterin bado anashiriki kikamilifu katika maendeleo ya Ethereum. Joseph Lubin anaendelea kuongoza ConsenSys. Kampuni yake inatengeneza zana muhimu za mfumo wa ikolojia wa Ethereum kama MetaMask na Infura.", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-1": "Safari kutoka wazo la awali la Vitalik hadi uzinduzi rasmi wa Ethereum ilichukua takriban miezi 20. Hapa kuna hatua muhimu:", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-2": "Novemba 2013: Vitalik Buterin anashiriki karatasi nyeupe ya Ethereum. Inaelezea maono yake ya jukwaa la mnyororo wa bloku ambalo linaweza kuendesha mikataba-erevu.", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-3": "Januari 2014: Vitalik anatangaza hadharani dhana ya Ethereum kwenye Mkutano wa Bitcoin wa Amerika Kaskazini huko Miami.", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-4": "Julai–Agosti 2014: Ili kufadhili maendeleo ya Ethereum, timu ya waanzilishi iliendesha kampeni ya umma ya kutafuta fedha. Walikusanya BTC 31,000 (zenye thamani ya takriban dola milioni 18 wakati huo) badala ya ether (ETH).", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-5": "Aprili 2015: Vitalik na waanzilishi wenza wanazindua testnet ya Olympic ya Ethereum. Hii ilikuwa hatua ya mwisho ya majaribio kabla ya uzinduzi wa mtandao mkuu.", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-6": "Julai 30, 2015: Timu ya waanzilishi inazindua rasmi mtandao mkuu wa Ethereum kwa kuchimba bloku ya genesis. Hii inaashiria kuzaliwa kwa mtandao wa Ethereum.", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-7": "Machi 14, 2016: Jumuiya ya Ethereum inatekeleza \"Homestead,\" sasisho la kwanza lililopangwa. Hii inaashiria kuwa Ethereum ilikuwa tayari kwa matumizi ya jumla.", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-8": "Tulikuwa na dhana hii kwenye mradi wa Ethereum kwamba tungepata fursa moja tu, ilikuwa ni mara moja na basi, kwa hivyo ilibidi tuifanye kwa usahihi.", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-9": "Mwanzilishi Mwenza wa Ethereum", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-10": "Uzinduzi wa Ethereum uliashiria hatua muhimu katika teknolojia ya mnyororo wa bloku. Ulianzisha mikataba-erevu na kuunda jukwaa la programu zilizogatuliwa.", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-11": "Unaweza kutazama bloku ya genesis ya Ethereum kila wakati ukihifadhi wakati ambapo Ethereum ilianza kuwepo.", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-12": "Tazama orodha kamili ya masasisho ya Ethereum", + "page-ethereum-history-founder-and-ownership-when-did-ethereum-launch-description-13": "Angalia mpango wa utekelezaji wa Ethereum wa siku zijazo", + "page-ethereum-history-founder-and-ownership-who-owns-and-runs-ethereum-now-description-1": "Moja ya vipengele vya kipekee zaidi vya Ethereum ni muundo wake wa umiliki, au kwa usahihi zaidi, ukosefu wake wa umiliki wa jadi. Tofauti na kampuni ya kawaida, Ethereum:", + "page-ethereum-history-founder-and-ownership-who-owns-and-runs-ethereum-now-description-2": "haina Mkurugenzi Mtendaji au mamlaka kuu", + "page-ethereum-history-founder-and-ownership-who-owns-and-runs-ethereum-now-description-3": "haidhibitiwi na chombo kimoja au shirika", + "page-ethereum-history-founder-and-ownership-who-owns-and-runs-ethereum-now-description-4": "haina wanahisa kwa maana ya jadi", + "page-ethereum-history-founder-and-ownership-who-owns-and-runs-ethereum-now-description-5": "Badala yake, Ethereum inafanya kazi kama mtandao uliogatuliwa. Inatunzwa na maelfu ya kompyuta huru (nodi) kote ulimwenguni. Mfumo huu uliogatuliwa ndio kiini cha muundo na thamani ya Ethereum.", + "page-ethereum-history-founder-and-ownership-who-owns-and-runs-ethereum-now-description-6": "Vikundi kadhaa muhimu husaidia katika maendeleo endelevu na utawala wa Ethereum:", + "page-ethereum-history-founder-and-ownership-ethereum-foundation": "1. Taasisi ya Ethereum", + "page-ethereum-history-founder-and-ownership-ethereum-foundation-description-1": "Taasisi ya Ethereum ni shirika lisilo la faida linalosaidia Ethereum na teknolojia zinazohusiana. Ingawa ni muhimu, haidhibiti mtandao. Taasisi hiyo:", + "page-ethereum-history-founder-and-ownership-ethereum-foundation-description-2": "Inasimamia fedha za kusaidia maendeleo ya Ethereum", + "page-ethereum-history-founder-and-ownership-ethereum-foundation-description-3": "Inatoa ruzuku kwa miradi inayojengwa kwenye Ethereum", + "page-ethereum-history-founder-and-ownership-ethereum-foundation-description-4": "Inaandaa matukio ya jamii na mipango ya elimu", + "page-ethereum-history-founder-and-ownership-ethereum-foundation-description-5": "Inaratibu juhudi za utafiti", + "page-ethereum-history-founder-and-ownership-core-developers": "2. Wasanidi programu wakuu na watafiti", + "page-ethereum-history-founder-and-ownership-core-developers-description-1": "Jumuiya ya kimataifa ya wasanidi programu na watafiti inachangia kwenye msimbo na muundo wa Ethereum. Wachangiaji hawa wanapendekeza, wanajadili, na kutekeleza maboresho kupitia mchakato wazi na wa umma. Vitalik Buterin bado anaheshimiwa katika jumuiya, hata hivyo, maamuzi hufanywa kupitia makubaliano ya kikundi badala ya mtu mmoja pekee.", + "page-ethereum-history-founder-and-ownership-eip": "3. Mapendekezo ya Uboreshaji ya Ethereum (EIPs)", + "page-ethereum-history-founder-and-ownership-eip-description-1": "Jumuiya ya Ethereum inapendekeza mabadiliko kwenye mtandao kupitia Mapendekezo ya Uboreshaji ya Ethereum (EIPs). Mfumo huu wazi unaruhusu mtu yeyote kupendekeza maboresho. Mawazo haya kisha hujadiliwa, huboreshwa, na yanaweza kutekelezwa na jumuiya.", + "page-ethereum-history-founder-and-ownership-validators": "4. Waendeshaji wa nodi na wathibitishaji", + "page-ethereum-history-founder-and-ownership-validators-description-1": "Tangu mabadiliko ya Ethereum kwenda kwa uthibitisho wa hisa mnamo Septemba 2022, mtandao unalindwa na wathibitishaji wanaofunga (kuweka hisa) ETH na kuchakata miamala. Kuna idadi kubwa ya wathibitishaji waliosambaa kote ulimwenguni, jambo ambalo linasambaza udhibiti wa mtandao kote.", + "page-ethereum-history-founder-and-ownership-validators-description-2": "Mfumo huu uliogatuliwa unapunguza udhibiti na chombo chochote kimoja, na kuifanya Ethereum kuwa sugu kwa udhibiti. Hii inajumuisha waanzilishi wake wa awali. Hakuna mtu mmoja au shirika linaloweza kubadilisha sheria za Ethereum au kuzima mtandao peke yao.", + "page-ethereum-history-founder-and-ownership-validators-description-3": "Tofauti kuu kati ya kujenga programu kwenye Ethereum dhidi ya kuijenga kwenye jukwaa fulani la jadi la kati ni wazo hili kuu kwamba mara tu unapojenga programu yako, programu hiyo haihitaji kukutegemea wewe au mtu mwingine yeyote ili iendelee kuwepo. Na programu hiyo inahakikishiwa kuendelea kufanya kazi kulingana na sheria zilizobainishwa.", + "page-ethereum-history-founder-and-ownership-conclusion": "Hitimisho", + "page-ethereum-history-founder-and-ownership-conclusion-description-1": "Tangu kuundwa kwake na Vitalik Buterin mnamo 2013 hadi uzinduzi wake mnamo 2015 na ukuaji wake leo, Ethereum imebaki kuwa kweli kwa maono yake ya msingi. Inabaki kuwa jukwaa liliogatuliwa, lisilo na upendeleo kwa kuaminika kwa ajili ya programu zinazofanya kazi kama zilivyopangwa. Mtandao na programu zilizojengwa juu yake hufanya kazi bila muda wa kupumzika, udhibiti, ulaghai, au kuingiliwa na watu wengine.", + "page-ethereum-history-founder-and-ownership-conclusion-description-2": "Hadithi ya Ethereum inaendelea kufunuka kwa kila sasisho na uvumbuzi. Kadri mtandao unavyoendelea, unaonyesha jinsi utawala uliogatuliwa unavyoweza kuendesha maendeleo ya kiteknolojia bila miundo ya jadi ya ushirika.", + "page-ethereum-history-founder-and-ownership-conclusion-description-3": "Ethereum imebadilika kutoka kwa karatasi nyeupe ya maono na kuwa safu ya miundombinu ya kimataifa inayowezesha maelfu ya programu na mabilioni ya thamani. Hii inathibitisha kuwa ushirikiano wazi unaweza kubadilisha sio tu fedha, bali dhana za msingi za umiliki, utawala, na uaminifu wa kidijitali.", + "page-ethereum-history-founder-and-ownership-conclusion-description-4": "Jifunze zaidi kuhusu mchakato wa utawala wa Ethereum" +} diff --git a/src/intl/sw/page-ethereum-vs-bitcoin.json b/src/intl/sw/page-ethereum-vs-bitcoin.json new file mode 100644 index 00000000000..92fbdd3ed09 --- /dev/null +++ b/src/intl/sw/page-ethereum-vs-bitcoin.json @@ -0,0 +1,101 @@ +{ + "page-ethereum-vs-bitcoin-meta-title": "Ethereum dhidi ya Bitcoin: kuna tofauti gani? | ethereum.org", + "page-ethereum-vs-bitcoin-meta-description": "Jifunze tofauti kati ya Bitcoin na Ethereum, ikiwa ni pamoja na matumizi, utendaji wa mtandao, usalama, uchumi wa tokeni, kiwango cha ugatuzi na zaidi.", + "page-ethereum-vs-bitcoin-twitter-meta-description": "Jifunze tofauti kati ya Bitcoin na Ethereum, ikiwa ni pamoja na matumizi, utendaji wa mtandao, uchumi wa tokeni na zaidi.", + "page-ethereum-vs-bitcoin-title": "Ethereum dhidi ya Bitcoin: kuna tofauti gani?", + "page-ethereum-vs-bitcoin-description-1": "Bitcoin na Ethereum ni mitandao miwili inayojulikana zaidi ya mnyororo wa bloku uliogatuliwa, lakini hutumikia madhumuni tofauti sana.", + "page-ethereum-vs-bitcoin-section-1": "Bitcoin (yenye B kubwa) ni mnyororo wa bloku ulioundwa kwa ajili ya sarafu ya kidigitali inayoitwa bitcoin (b ndogo). Ethereum imeundwa kuwa jukwaa lililogatuliwa kwa ajili ya programu na mali, inayoendeshwa na sarafu yake ya asili ya kidigitali ether (ETH).", + "page-ethereum-vs-bitcoin-section-2": "Zote zinatumia teknolojia ya mnyororo wa bloku, ni vyanzo-wazi, na hudumishwa na jumuiya za kimataifa, lakini malengo na vipengele vyao ni tofauti. Katika mwongozo huu, tutapitia kila mtandao ni nini, zinafanana nini, na zinatofautiana vipi katika maeneo kama teknolojia, utamaduni, na mtazamo wa siku zijazo.", + "page-ethereum-vs-bitcoin-bitcoin-section-title": "Bitcoin—utangulizi mfupi", + "page-ethereum-vs-bitcoin-bitcoin-section-1": "Bitcoin ni mtandao wa sarafu ya kidigitali uliogatuliwa. Uliundwa mwaka 2009 na chombo kisichojulikana kwa kutumia jina Satoshi Nakamoto, muda mfupi baada ya mzozo wa kifedha wa 2008. Wazo lilikuwa Bitcoin iwe mfumo wa pesa taslimu za kielektroniki za rika-kwa-rika.", + "page-ethereum-vs-bitcoin-bitcoin-section-2": "Bitcoin inamruhusu yeyote kutuma na kupokea bitcoin kupitia intaneti bila kutegemea mamlaka kuu kama benki. Miamala yote hurekodiwa kwenye leja ya umma inayojulikana kama mnyororo wa bloku.", + "page-ethereum-vs-bitcoin-bitcoin-section-3": "Bitcoin hutumia uthibitishaji-wa-kazi ili kulinda mtandao wake. Kompyuta ulimwenguni kote hushindana kutatua mafumbo ya kriptografia ambayo huwaruhusu kuongeza bloku mpya. Kompyuta hizi maalum huitwa wachimbaji na hupokea bitcoin kama zawadi ya kizuizi kwa ajili ya \"uchimbaji\" wa bloku mpya.", + "page-ethereum-vs-bitcoin-bitcoin-section-4": "Bitcoin ina usambazaji wa juu uliowekwa wa sarafu milioni 21. Chaguo hili la muundo ni sababu muhimu kwa nini Bitcoin mara nyingi hujulikana kama dhahabu ya kidijitali.", + "page-ethereum-vs-bitcoin-ethereum-section-title": "Ethereum—utangulizi mfupi", + "page-ethereum-vs-bitcoin-ethereum-section-1": "Kama Bitcoin, Ethereum pia ni mtandao wa mnyororo wa bloku uliogatuliwa, lakini uliundwa kufanya zaidi ya kurekodi malipo tu. Ilizinduliwa mwaka 2015 na msanidi programu anayeitwa Vitalik Buterin na waanzilishi wenzake, Ethereum ilijengwa kuwa jukwaa la mkataba-erevu na mfumo uliotawanywa.", + "page-ethereum-vs-bitcoin-ethereum-section-2": "Ethereum inaruhusu mtu yeyote kutuma na kupokea thamani kama Bitcoin, lakini pia hufanya kazi kama jukwaa ambalo mtu yeyote anaweza kutumia kwa programu. Mtandao wa Ethereum unaendeshwa kupitia maelfu ya nodi na haudhibitiwi na chombo kimoja.", + "page-ethereum-vs-bitcoin-ethereum-section-3": "Mtu yeyote anaweza kuunda na kupeleka programu kwenye Ethereum. Programu hizi zinaitwa mikabata-erevu, na ndizo uvumbuzi mkuu wa Ethereum.", + "page-ethereum-vs-bitcoin-ethereum-section-4": "Mara tu mkataba-erevu unapowekwa, huendeshwa kwa uhakika unaposhughulikiwa. Hii inafanya iwezekane kuunda programu kwa ajili ya mambo kama vile kukopesha, biashara, michezo, na vitu vya kukusanywa vya kidijitali vinavyoendeshwa mchana kutwa, kila siku, kwa mamilioni ya watumiaji ulimwenguni kote.", + "page-ethereum-vs-bitcoin-ethereum-section-5": "Kwa njia sawa na jinsi bitcoin inavyotumika kulipia ada za muamala kwenye mtandao wa Bitcoin, sarafu ya asili ya Ethereum, ether, hutumika kulipia ada za muamala, kuchapisha na kutumia mikataba-erevu, na kulinda mtandao. Ether hufanya kazi kama nishati ya kuendesha programu na kama hifadhi ya thamani.", + "page-ethereum-vs-bitcoin-ethereum-section-6": "Jifunze zaidi kuhusu Ethereum na jinsi inavyofanya kazi", + "page-ethereum-vs-bitcoin-differences-section-title": "Tofauti kuu", + "page-ethereum-vs-bitcoin-differences-section-1": "Bitcoin na Ethereum zinatumia teknolojia ya mnyororo wa bloku kudumisha mitandao iliyogatuliwa, lakini zinatofautiana katika muundo, madhumuni, na uwezo wao.", + "page-ethereum-vs-bitcoin-differences-table-area": "Eneo", + "page-ethereum-vs-bitcoin-differences-table-bitcoin": "Bitcoin", + "page-ethereum-vs-bitcoin-differences-table-ethereum": "Ethereum", + "page-ethereum-vs-bitcoin-differences-table-row-1-1": "Kusudi kuu", + "page-ethereum-vs-bitcoin-differences-table-row-1-2": "Sarafu ya kidijitali ya rika-kwa-rika", + "page-ethereum-vs-bitcoin-differences-table-row-1-3": "Jukwaa la programu na uchumi wa kidijitali", + "page-ethereum-vs-bitcoin-differences-table-row-2-1": "Mikataba erevu", + "page-ethereum-vs-bitcoin-differences-table-row-2-2": "Haitumiki", + "page-ethereum-vs-bitcoin-differences-table-row-2-3": "Utendaji mkuu", + "page-ethereum-vs-bitcoin-differences-table-row-3-1": "Ugavi", + "page-ethereum-vs-bitcoin-differences-table-row-3-2": "Bitcoin hutolewa kila bloku kwa kiwango kisichobadilika/kilichopangwa awali kinachoamuliwa na itifaki asili na isiyobadilika, na kikomo cha mwisho cha milioni 21.", + "page-ethereum-vs-bitcoin-differences-table-row-3-3": "Ether huchomwa kila bloku kulingana na shughuli/mahitaji, na hutolewa kila epoki kulingana na jumla ya ETH iliyosimamishwa. Hakuna kikomo kilichowekwa, lakini kiwango cha utoaji kinazuiliwa na jumla ya ETH iliyosimamishwa.", + "page-ethereum-vs-bitcoin-differences-table-row-4-1": "Utaratibu wa makubaliano", + "page-ethereum-vs-bitcoin-differences-table-row-4-2": "Ushahidi wa Kazi", + "page-ethereum-vs-bitcoin-differences-table-row-4-3": "Ushahidi wa Umiliki wa Hisa", + "page-ethereum-vs-bitcoin-differences-table-row-5-1": "Kasi", + "page-ethereum-vs-bitcoin-differences-table-row-5-2": "Inachukuliwa na wengi kuwa haiwezi kubadilishwa baada ya bloku sita, wastani wa dakika 60", + "page-ethereum-vs-bitcoin-differences-table-row-5-3": "Takriban dakika 15 hadi mwisho", + "page-ethereum-vs-bitcoin-differences-table-row-6-1": "Matumizi ya nishati", + "page-ethereum-vs-bitcoin-differences-table-row-6-2": "Juu", + "page-ethereum-vs-bitcoin-differences-table-row-6-3": "Chini", + "page-ethereum-vs-bitcoin-differences-table-row-7-1": "Utawala", + "page-ethereum-vs-bitcoin-differences-table-row-7-2": "Kihafidhina, inayoenda polepole", + "page-ethereum-vs-bitcoin-differences-table-row-7-3": "Inayobadilika, inayoendeshwa na jamii", + "page-ethereum-vs-bitcoin-differences-table-row-8-1": "Mfumo ikolojia wa wasanidi programu", + "page-ethereum-vs-bitcoin-differences-table-row-8-2": "Ndogo", + "page-ethereum-vs-bitcoin-differences-table-row-8-3": "Kubwa na inayofanya kazi", + "page-ethereum-vs-bitcoin-differences-table-row-9-1": "Visasisho", + "page-ethereum-vs-bitcoin-differences-table-row-9-2": "Adimu", + "page-ethereum-vs-bitcoin-differences-table-row-9-3": "Mara kwa mara na inayojirudia", + "page-ethereum-vs-bitcoin-purpose-title": "Madhumuni ya Bitcoin dhidi ya Ethereum", + "page-ethereum-vs-bitcoin-purpose-1": "Bitcoin ilianzishwa mwaka 2009 kufuatia mzozo wa kifedha duniani. Lengo lake lilikuwa kutoa aina ya pesa za rika-kwa-rika ambazo zilifanya kazi bila benki au serikali. Ina muundo rahisi. Mtandao unalenga kuhamisha thamani kutoka kwa mtu mmoja hadi mwingine bila mpatanishi. Mtazamo huu finyu umeisaidia kujulikana sana kama aina ya dhahabu ya kidijitali, hifadhi adimu na dumu ya thamani ambayo inaweza pia kutumika kama njia ya kubadilishana.", + "page-ethereum-vs-bitcoin-purpose-2": "Ethereum ilizinduliwa mwaka 2015 ikiwa na maono mapana zaidi. Waumbaji wake walitaka kuchukua usalama na ugatuzi wa mnyororo wa bloku na kuifanya iweze kupangiliwa. Badala ya kujizuia na malipo pekee, Ethereum inamruhusu mtu yeyote kuandika na kuchapisha programu zinazojitegemea zinazoitwa mikataba-erevu. Hii inafungua mlango kwa kategoria mpya kabisa ya programu, kuanzia fedha zilizogatuliwa (DeFi) na sarafu-imara hadi tokeni zisizobadilishika (NFTs), michezo na mitandao ya kijamii iliyogatuliwa.", + "page-ethereum-vs-bitcoin-purpose-3": "Miundo ya kiufundi inaakisi madhumuni haya. Lugha ya uandishi ya Bitcoin ni finyu, ambayo hupunguza utata na kusaidia kuweka mtandao salama. Lugha ya upangaji ya Ethereum ni bayana zaidi, inairuhusu kuhifadhi na kudhibiti hali na mwingiliano tata zaidi kati ya programu. Unyumbufu huu ni nguvu, lakini pia inamaanisha kuwa mtandao hubadilika haraka zaidi, kukiwa na masasisho ya mara kwa mara na vipengele vipya.", + "page-ethereum-vs-bitcoin-purpose-4": "Zote zina majukumu tofauti katika uchumi mpana wa kidijitali. Bitcoin inalenga kuwa hifadhi thabiti na iliyogatuliwa ya thamani. Ethereum inalenga kuwa safu ya malipo ya kimataifa kwa ajili ya mifumo iliyotawanywa na mali zinazoweza kupangiliwa.", + "page-ethereum-vs-bitcoin-usecases-and-adoption-title": "Matumizi na upokeaji", + "page-ethereum-vs-bitcoin-usecases-and-adoption-1": "Bitcoin hutumiwa sana kama hifadhi ya thamani. Wawekezaji wengi huiona kama kinga dhidi ya mfumuko wa bei au kuyumba kwa uchumi. Katika baadhi ya nchi, hutumika kama sarafu mbadala au kama njia ya watu kuweka akiba nje ya mfumo wa kibenki wa jadi.", + "page-ethereum-vs-bitcoin-usecases-and-adoption-2": "Ether hutumika kama hifadhi ya thamani pia, lakini jukumu lake kuu ni kuwezesha mfumo ikolojia mpana wa programu na mali. Wasanidi programu wanaweza kutumia Ethereum kuunda itifaki mpya, kuzindua tokeni, kuendesha masoko ya kubadilishana yaliyogatuliwa, kutoa NFTs, kuunda michezo, na kuendeleza majukwaa ya kijamii yanayoendeshwa bila udhibiti wa kati.", + "page-ethereum-vs-bitcoin-usecases-and-adoption-3": "Ethereum inasaidia maelfu ya mifumo iliyotawanywa kwa ajili ya aina mpya za fedha, uchangiaji wa watu wengi, na umiliki wa kidijitali. Baadhi ya matumizi huunganisha mitandao yote miwili. Kwa mfano, Bitcoin inaweza “kuviringishwa” na kutumika kwenye Ethereum kwa shughuli kama vile kukopesha, kukopa, na kufanya biashara katika DeFi.", + "page-ethereum-vs-bitcoin-usecases-and-adoption-4": "Upokeaji wa kitaasisi unaakisi tofauti hizi. Sarafu ya kidigitali ya Bitcoin inashikiliwa sana kama hifadhi ya thamani ya muda mrefu, huku Ethereum ikionekana kama miundombinu iliyogatuliwa. Uwezo wake wa kupangiliwa unavutia majukwaa ya fintech na watoa huduma za malipo.", + "page-ethereum-vs-bitcoin-usecases-and-adoption-5": "Pata maelezo zaidi kuhusu Ethereum inatumika", + "page-ethereum-vs-bitcoin-monetary-policy-title": "Sera ya fedha", + "page-ethereum-vs-bitcoin-monetary-policy-1": "Ugavi wa Bitcoin utafikia kiwango cha juu cha sarafu milioni 21. Kikomo hiki kigumu kinatekelezwa na itifaki na ni moja ya sababu Bitcoin inalinganishwa na dhahabu. Bitcoin mpya huingia kwenye mzunguko kupitia zawadi za uchimbaji, ambazo hupungua nusu kila baada ya bloku 210,000, ambayo huchukua takriban miaka 4 kuchimba, katika tukio liitwalo kupungua nusu (the halving). Zawadi ilianza na bitcoin 50 kwa kila bloku mwaka 2009, ikashuka hadi 25 mwaka 2012, kisha 12.5 mwaka 2016, na kuendelea. Kwa kiwango hiki, bitcoin ya mwisho inatarajiwa kuchimbwa karibu mwaka 2140.", + "page-ethereum-vs-bitcoin-monetary-policy-2": "Zawadi za uchimbaji wa Bitcoin na ada za muamala hulipia mtandao na hutumika kuulinda. Hata hivyo, kadri zawadi ya kizuizi inavyopungua nusu, mtandao unategemea zaidi ada za muamala kujilipia. Hivi sasa ada za mtandao ni sehemu ndogo ya mapato ya mtandao, <5%, ikimaanisha usalama wa muda mrefu wa mtandao unaweza kuwa hatarini kadri utoaji wa mtandao wa Bitcoin unapoelekea 0.", + "page-ethereum-vs-bitcoin-monetary-policy-3": "Ethereum haina kikomo cha ugavi kilichowekwa. Badala yake, utoaji wake unaamuliwa na sheria za itifaki, na masasisho ya hivi karibuni yameanzisha mifumo inayoweza kupunguza ugavi kwa muda. Uboreshaji unaojulikana zaidi ni EIP-1559, ambao huchoma sehemu ya ada za muamala. Wakati shughuli za mtandao ziko juu, ETH nyingi zaidi zinaweza kuchomwa kuliko kutolewa, na kufanya ugavi kuwa wa upungufu (deflationary) katika vipindi hivyo.", + "page-ethereum-vs-bitcoin-monetary-policy-4": "Njia ya kifedha ya Ethereum inahakikisha bajeti ya usalama milele, huku ada za muamala na zawadi za kizuizi zikitoa bajeti ya usalama ya mtandao.", + "page-ethereum-vs-bitcoin-developer-ecosystem-title": "Mfumo ikolojia wa wasanidi programu", + "page-ethereum-vs-bitcoin-developer-ecosystem-1": "Ethereum ina mojawapo ya jamii kubwa zaidi za wasanidi programu wa mnyororo wa bloku. Kujenga juu ya Ethereum hukupa ufikiaji wa anuwai ya zana, mifumo, ruzuku, na hackathons. Mashine ya mtandaoni ya Ethereum (EVM) ni mazingira ya uendeshaji ya Ethereum na imekuwa kiwango cha kawaida, na minyororo mingine mingi ya bloku inaitumia kuhakikisha upatanifu.", + "page-ethereum-vs-bitcoin-developer-ecosystem-2": "Viwango vya tokeni kama ERC-20 na ERC-721 vimekuwa msingi wa sehemu kubwa ya uchumi mpana wa mnyororo wa bloku. Mitandao mingi ya Safu ya 2 na minyororo mingine ya bloku hutumia EVM ili programu, pochi, na mikataba-erevu iweze kutumia msimbo kwenye minyororo ya bloku tofauti kwa mabadiliko madogo.", + "page-ethereum-vs-bitcoin-developer-ecosystem-3": "Jamii ya wasanidi programu wa Bitcoin ni ndogo na imejikita zaidi. Shughuli nyingi hujikita katika kudumisha na kuboresha itifaki ya msingi, pamoja na kuendeleza suluhisho za Safu ya 2 kama Mtandao wa Lightning kwa malipo ya haraka na nafuu.", + "page-ethereum-vs-bitcoin-developer-ecosystem-4": "Jifunze zaidi kuhusu rasilimali za wasanidi programu wa Ethereum", + "page-ethereum-vs-bitcoin-security-and-consensus-title": "Usalama na makubaliano", + "page-ethereum-vs-bitcoin-security-and-consensus-1": "Bitcoin na Ethereum zote zinalindwa na mitandao mikubwa, iliyosambazwa ya nodi huru, lakini zinatumia njia tofauti kukubaliana juu ya hali ya mtandao.", + "page-ethereum-vs-bitcoin-security-and-consensus-2": "Bitcoin hutumia mfumo unaoitwa uthibitishaji-wa-kazi. Kompyuta zinazoitwa wachimbaji hushindana kutatua mafumbo ya kriptografia. Wa kwanza kutatua hupata fursa ya kuongeza bloku inayofuata ya miamala kwenye mnyororo wa bloku na hupata zawadi ya bitcoin. Mbinu hii huipa Bitcoin kile kinachojulikana kama ukamilifu wa uwezekano, ikimaanisha muamala unachukuliwa kuwa salama sana tu baada ya bloku kadhaa zaidi kuongezwa juu yake. Kwa Bitcoin, hii mara nyingi ni karibu na uthibitisho sita, au takriban saa moja.", + "page-ethereum-vs-bitcoin-security-and-consensus-3": "Ethereum inatumia uthibitisho-wa-hisa. Katika mtindo huu, wathibitishaji hufunga, au kuweka hisa, ETH kwa fursa ya kuchaguliwa kupendekeza na kuthibitisha bloku mpya. Uchaguzi ni wa kubahatisha, lakini uwezekano wa kuchaguliwa huongezeka kulingana na kiasi cha ETH kilichowekwa hisa. Wathibitishaji wanaotenda kwa udanganyifu wanahatarisha kupoteza hisa zao. Hii inaruhusu Ethereum kufikia ukamilifu wa kiuchumi, ambapo bloku zilizokamilishwa ni vigumu sana kuzirejesha nyuma, mara nyingi ndani ya takriban dakika 15. Ethereum pia hutumia vituo vya ukaguzi kuweka alama kwenye bloku kuwa haziwezi kurejeshwa nyuma mara tu wathibitishaji wa kutosha wanapokubaliana.", + "page-ethereum-vs-bitcoin-security-and-consensus-4": "Jifunze zaidi kuhusu utaratibu wa makubaliano wa Ethereum", + "page-ethereum-vs-bitcoin-underlying-technology-title": "Teknolojia ya msingi", + "page-ethereum-vs-bitcoin-underlying-technology-1": "Bitcoin inatumia kile kinachojulikana kama mfumo wa matokeo ya miamala ambayo haijatumika, au UTXO. Katika mfumo huu, mnyororo wa bloku haufuatilii salio za akaunti. Badala yake, hurekodi matokeo kutoka kwa miamala ya awali ambayo bado haijatumiwa. Unapotumia bitcoin, unatumia matokeo haya kama pembejeo kwa muamala mpya, na kuunda matokeo mapya katika mchakato huo.", + "page-ethereum-vs-bitcoin-underlying-technology-2": "Unaweza kufikiria hili kama kutumia pesa taslimu. Ikiwa una noti mbili za dola tano na unataka kutumia dola saba, unatoa noti zote mbili na kupokea dola tatu kama chenji. Bitcoin hurekodi noti na chenji, sio salio lako lote.", + "page-ethereum-vs-bitcoin-underlying-technology-3": "Ethereum hutumia mfumo unaotegemea akaunti. Badala ya kufuatilia matokeo ya mtu binafsi, huweka rekodi ya salio za akaunti kama akaunti ya benki inavyofanya. Mbinu hii hurahisisha kusimamia mikataba-erevu na mantiki changamano, kwa kuwa akaunti zinaweza kuhifadhi data na kuingiliana kama programu.", + "page-ethereum-vs-bitcoin-underlying-technology-4": "Kila mfumo una faida na hasara zake. UTXO zinaweza kutoa faragha zaidi na kurahisisha kufuatilia sarafu binafsi. Mifumo inayotegemea akaunti ni rahisi zaidi kwa ajili ya kuunda programu.", + "page-ethereum-vs-bitcoin-underlying-technology-5": "Soma zaidi katika nyaraka za wasanidi programu wa Ethereum", + "page-ethereum-vs-bitcoin-decentralization-title": "Ugatuzi", + "page-ethereum-vs-bitcoin-decentralization-1": "Bitcoin na Ethereum zote zimeundwa kuwa zilizogatuliwa, lakini zinapima na kuikaribia kwa njia tofauti.", + "page-ethereum-vs-bitcoin-decentralization-2": "Ugatuzi wa Bitcoin unaungwa mkono na muundo wake rahisi wa kiufundi, uthabiti wa muda mrefu, na usambazaji mpana wa nodi. Mahitaji yake ya rasilimali chache hurahisisha watu kuendesha nodi kamili nyumbani, ambayo husaidia kuhifadhi uhuru wa mtandao na upinzani dhidi ya udhibiti.", + "page-ethereum-vs-bitcoin-decentralization-3": "Ethereum pia ina mtandao mkubwa na unaokua wa nodi. Inaweka msisitizo mkubwa juu ya utofauti wa wateja, ikimaanisha matoleo mengi ya programu yanatunzwa na timu huru. Hii inapunguza utegemezi kwa mteja mmoja na husaidia kulinda dhidi ya hitilafu au kushindwa ambako kunaweza kuathiri mtandao.", + "page-ethereum-vs-bitcoin-decentralization-4": "Ethereum ina idadi kubwa zaidi ya washiriki wanaohusika katika shughuli kama vile kuweka hisa, masasisho, na majadiliano ya utawala, lakini mitandao yote miwili inalenga kubaki wazi na thabiti. Bitcoin huweka mahitaji ya nodi bila kubadilika, ikitegemea wateja wachache wa programu. Ethereum inahimiza wachangiaji tofauti, kila mmoja akileta mtazamo wake.", + "page-ethereum-vs-bitcoin-environmental-impact-title": "Athari za kimazingira", + "page-ethereum-vs-bitcoin-environmental-impact-1": "Moja ya mabadiliko muhimu zaidi katika historia ya Ethereum ilikuwa ni kubadili kutoka uthibitishaji-wa-kazi kwenda uthibitisho-wa-hisa mwaka 2022. Ikijulikana kama Muungano, mabadiliko haya yalipunguza matumizi ya nishati ya mtandao kwa zaidi ya asilimia 99.", + "page-ethereum-vs-bitcoin-environmental-impact-2": "Chini ya uthibitisho-wa-hisa, Ethereum haitegemei tena uchimbaji unaotumia nishati nyingi. Badala yake, wathibitishaji huchaguliwa kwa kubahatisha, na uwezekano wa kuchaguliwa ukiongezeka kulingana na kiasi cha ETH walichoweka hisa. Mabadiliko haya yameifanya Ethereum kuwa moja ya mitandao ya mnyororo wa bloku yenye ufanisi zaidi wa nishati.", + "page-ethereum-vs-bitcoin-environmental-impact-3": "Bitcoin inaendelea kutumia uthibitishaji-wa-kazi, ambao unahitaji kiasi kikubwa cha umeme huku wachimbaji wakishindana kutatua mafumbo ya kriptografia. Baadhi ya nishati hii hutoka kwenye vyanzo vinavyoweza kurejeshwa, na kuna majadiliano yanayoendelea katika jamii ya Bitcoin kuhusu njia za kuboresha uendelevu.", + "page-ethereum-vs-bitcoin-environmental-impact-4": "Tofauti ya matumizi ya nishati imekuwa hoja muhimu ya kulinganisha kati ya mitandao hii miwili. Alama ya chini ya nishati ya Ethereum inaifanya kuvutia zaidi katika mazingira ambapo athari za kimazingira ni kipaumbele.", + "page-ethereum-vs-bitcoin-environmental-impact-5": "Soma ripoti kamili kuhusu matumizi ya nishati ya Ethereum", + "page-ethereum-vs-bitcoin-future-outlook-title": "Wakati ujao unaonekanaje", + "page-ethereum-vs-bitcoin-future-outlook-1": "Bitcoin inazidi kukubaliwa kama hifadhi ya thamani na mali ya akiba. Haiwezekani kubadilika sana, na uthabiti huu ni sehemu ya mvuto wake.", + "page-ethereum-vs-bitcoin-future-outlook-2": "Ethereum inajiweka kama jukwaa la programu katika uchumi mpya wa kidijitali. Pamoja na ukuaji wa mitandao ya Safu ya 2 na masasisho yanayoendelea, inalenga kusaidia programu za kiwango cha kimataifa, miundombinu, na mali.", + "page-ethereum-vs-bitcoin-future-outlook-3": "Kwa watumiaji wengi, mitandao hii miwili haiko katika ushindani wa moja kwa moja. Inatumikia madhumuni tofauti na inaweza kukamilishana katika mbinu mseto ya mali za kidijitali.", + "page-ethereum-vs-bitcoin-future-outlook-4": "Jifunze zaidi kuhusu ramani ya barabara ya Ethereum" +} \ No newline at end of file diff --git a/src/intl/sw/page-founders.json b/src/intl/sw/page-founders.json new file mode 100644 index 00000000000..5e3397d434d --- /dev/null +++ b/src/intl/sw/page-founders.json @@ -0,0 +1,65 @@ +{ + "page-founders-accelerators-alliance-description": "Alliance ni kichochezi kikuu cha crypto na jumuiya ya waanzilishi. Sasa inakubali kampuni chipukizi za AI.", + "page-founders-accelerators-alliance-highlight-1": "Ufadhili wa $500K", + "page-founders-accelerators-base-description": "Base Batches ni programu ya kimataifa kwa wajenzi wanaounda wimbi linalofuata la programu za onchain", + "page-founders-accelerators-base-highlight-1": "Hadi ufadhili wa $1M", + "page-founders-accelerators-growth-label": "Vichochezi na Ukuaji", + "page-founders-accelerators-kernel-description": "Kernel inahusu kujenga polepole, kupitia mwingiliano unaorudiwa na wenzao.", + "page-founders-accelerators-kernel-highlight-1": "Wanachama 2,200+", + "page-founders-accelerators-kernel-highlight-2": "Miradi 150+ inayofanya kazi", + "page-founders-apply-h2": "Omba msaada", + "page-founders-apply-p1": "Chagua njia yako na uelekezwe kwenye hatua inayofuata inayofaa zaidi.", + "page-founders-cta-explore-name": "Gundua {name}", + "page-founders-cta-visit-name": "Tembelea {name}", + "page-founders-description": "Kitovu maalum kwa wajasiriamali kupata programu, ushauri, na mwonekano katika mfumo ikolojia wa Ethereum, kuwapa waanzilishi msaada wanaohitaji katika kila hatua.", + "page-founders-funding-arbitrum-description": "Dhamira ni kuwawezesha wasanidi programu na wajasiriamali kujenga DApps zenye athari zinazotumia uwezo wa mtandao wa Arbitrum", + "page-founders-funding-arbitrum-highlight-1": "Miradi 300+ iliyosaidiwa", + "page-founders-funding-base-description": "Ruzuku za Wajenzi ni majaribio yanayoendelea ya kutambua wajenzi wa Base.", + "page-founders-funding-base-highlight-1": "Ruzuku za ETH 1-5", + "page-founders-funding-esp-description": "Kugawa rasilimali kwa miradi muhimu, kuwa sauti yenye thamani ndani ya mfumo ikolojia wa Ethereum, na kutetea Ethereum kwa ulimwengu wa nje.", + "page-founders-funding-esp-highlight-1": "Miradi 2,000+ iliyosaidiwa", + "page-founders-funding-label": "Ufadhili", + "page-founders-funding-optimism-description": "Msaada kwa wajenzi binafsi na timu zinazotengeneza programu za onchain, zana, na miundombinu ili kuendeleza Superchain.", + "page-founders-funding-optimism-highlight-1": "Chaini 19 zinazostahiki", + "page-founders-funding-optimism-highlight-2": "Miradi 700+ iliyosaidiwa", + "page-founders-funding-polygon-description": "Programu ya ruzuku ya jamii kusaidia wajenzi, timu, na watengenezaji waliojitolea kwa ukuaji wa Polygon", + "page-founders-funding-polygon-highlight-1": "Kujenga au kuhamia Polygon", + "page-founders-funding-unichain-description": "Mfululizo wa programu na rasilimali iliyoundwa kusaidia jumuiya ya wasanidi programu inayoibuka ya Unichain", + "page-founders-funding-unichain-highlight-1": "Njia mpya za DeFi", + "page-founders-get-in-touch-cta": "Omba msaada", + "page-founders-get-in-touch-h2": "Timu ya Mafanikio ya Waanzilishi ya Msingi wa Ethereum", + "page-founders-get-in-touch-p1": "Mafanikio ya Mwanzilishi ni kwa wajenzi wenye mawazo ya kijasiri, wajasiriamali wanaoona Ethereum kama msingi wa bidhaa na biashara zinazoweza kuunda mustakabali.", + "page-founders-metadata-description": "Kuwawezesha waanzilishi kwenye Ethereum kwa programu, ushauri, na rasilimali. Gundua jinsi mfumo ikolojia wa Ethereum unavyosaidia wajasiriamali kutoka wazo hadi ukuaji.", + "page-founders-metadata-title": "Msaada kwa waanzilishi", + "page-founders-partnerships-devconnect-description": "Devconnect ARG ni Maonyesho ya Dunia ya Ethereum: Maonyesho ya programu na tukio la kuunganisha, kujenga, na kuharakisha utumiaji wa Ethereum.", + "page-founders-partnerships-ef-founder-support-cta": "Panga utangulizi", + "page-founders-partnerships-ef-founder-support-description": "Kuratibu ugawanaji wa mapato, ukwasi na ushirikiano. Timu ya Mafanikio ya Mwanzilishi ya EF husaidia kuunganisha timu zinazofaa ili kufanikisha hilo.", + "page-founders-partnerships-ef-founder-support-subtitle": "Utangulizi kwa Itifaki/Timu za DeFi", + "page-founders-partnerships-ens-description": "Programu inalenga kuwezesha miradi ambayo imeonyesha umuhimu na athari ya kipekee kwa wasanidi programu na watumiaji vile vile.", + "page-founders-partnerships-ens-highlight-1": "Ruzuku ndogo hadi ETH 2", + "page-founders-partnerships-ens-highlight-2": "Ruzuku kubwa hadi USDC 50k", + "page-founders-partnerships-ethglobal-description": "Matukio ya kimataifa yanayokuza mfumo ikolojia wa kiwango cha dunia wa wasanidi programu na wajasiriamali wa Ethereum.", + "page-founders-partnerships-label": "Ushirikiano na Ujumuishaji", + "page-founders-partnerships-protocol-guild-description": "Shirika huru la ufadhili kwa wasanidi programu wakuu wa Ethereum. Tunawafadhili kwa hiari watunzaji wanaofanya kazi ambayo mfumo ikolojia unategemea.", + "page-founders-partnerships-protocol-guild-highlight-1": "$28M zilizokusanywa kwa wasanidi wakuu", + "page-founders-partnerships-unichain-description": "Mfululizo wa programu na rasilimali iliyoundwa kusaidia jumuiya ya wasanidi programu inayoibuka ya Unichain", + "page-founders-partnerships-unichain-highlight-1": "Njia mpya za DeFi", + "page-founders-story-dith-p1": "Msaada wa Mwanzilishi wa EF ulikuwa bora sana, walikuwa mshirika mzuri asiye na upendeleo wa mawazo na mshauri kwetu tulipokamilisha uchangishaji wetu wa kwanza wa fedha. Sina kusita kuwapendekeza waanzilishi wengine wa EVM washirikiane nao.", + "page-founders-story-fahim-p1": "Timu ya Mafanikio ya Mwanzilishi ni rasilimali kubwa kwa mfumo ikolojia wa Ethereum. Wanajali kweli kusaidia timu kushinda, na msaada wao wa vitendo na kujitolea kwa dhati kusaidia timu kama Optimism ni wazi kuona. Ninafurahi kuendelea kushirikiana nao na kuimarisha mfumo wetu wa ikolojia pamoja.", + "page-founders-story-kedian-p1": "Mtu wetu wa mawasiliano katika EF amekuwa muhimu katika kutuongoza, sio tu kwa kushiriki maarifa muhimu kuhusu kipengele chetu kijacho lakini pia kwa kututambulisha kwa L2 muhimu katika mfumo ikolojia wa Ethereum.", + "page-founders-story-kedian-p2": "Shukrani kwa maoni yao kuhusu mkakati wetu wa GTM, tuliharakisha kufanya maamuzi, tulipunguza muda uliotumika kwenye utafiti, na tukazingatia moja kwa moja utekelezaji.", + "page-founders-succeed-h2": "Jinsi wengine walivyofanikiwa", + "page-founders-succeed-p1": "Huna haja ya kujenga peke yako, mfumo huu wa ikolojia unakusaidia.", + "page-founders-support-tag-accelerator": "Kichochezi", + "page-founders-support-tag-active": "Inatumika", + "page-founders-support-tag-audit-grants": "Ruzuku za Ukaguzi", + "page-founders-support-tag-ecosystem-events": "Matukio ya mfumo ikolojia", + "page-founders-support-tag-events": "Matukio", + "page-founders-support-tag-fundraising": "Uchangishaji Fedha", + "page-founders-support-tag-grant-program": "Programu ya Ruzuku", + "page-founders-support-tag-mentorship": "Ushauri", + "page-founders-support-tag-networking": "Mitandao", + "page-founders-support-tag-public-goods": "Bidhaa za umma", + "page-founders-support-tag-tooling-infra": "Zana na Miundombinu", + "page-founders-title": "Kuwawezesha Waanzilishi kwenye Ethereum" +} diff --git a/src/intl/sw/page-gas.json b/src/intl/sw/page-gas.json index af8d3fae201..a25d1890dcd 100644 --- a/src/intl/sw/page-gas.json +++ b/src/intl/sw/page-gas.json @@ -1,5 +1,5 @@ { - "page-gas-meta-title": "Ada ya gesi kwenye Ethereum: inafanya kazi aje?", + "page-gas-meta-title": "Ada za Ethereum: gesi ni nini na jinsi ya kulipa kidogo?", "page-gas-meta-description": "Jifunze kuhusu gesi kwenye Ethereum: jinsi inavyofanya kazi na jinsi ya kulipa kidogo zaidi katika ada za gesi", "page-gas-hero-title": "Ada ya gesi", "page-gas-hero-header": "Ada za mtandao", @@ -32,7 +32,7 @@ "page-gas-attack-of-the-cryptokitties-text": "Mnamo Novemba 2017, mradi maarufu wa Crptokitties ulizalishwa. Mafanikio yake kwenye umaarufu ukaifanya kuwa na msongamano mkubwa kwenye mtandao na ada kubwa ya gesi. Changamoto iliyosababishwa na Cryptokitties ikapelekea uharaka wa kutafuta suluhisho la kupanua Ethereum.", "page-gas-why-do-we-need-gas-header": "Kwa nini tunahitaji gesi?", "page-gas-why-do-we-need-gas-text": "Gesi ni kipengele muhimu kuifanya Ethereum salama na kuchakata muamala. Gesi inasaidia kwa njia nyingi:", - "page-gas-benefits-1-description": "Gas inaifanya Ethereum kuwa imara zidi utambulisho wa uongo kwa kuzuia watenda ubaya kufanya mahasi kwenye mtandao kwa kufanya vitendo vya ulaghai.", + "page-gas-benefits-1-description": "Gas inaifanya Etherium kuwa imara zidi utambulisho wa uongo kwa kuzuia watenda ubaya kufanya mahasi kwenye mtandao kwa kufanya vitendo vya ulaghai.", "page-gas-benefits-2-description": "Kwa sababu mahesabu ya kompyuta yanagharimu gesi, kutuma kwa kujirudia na miamala ghali, ikiwa bahati mbaya au kwa nia mbaya, ni vikwazo vya kifedha.", "page-gas-benefits-3-description": "Kikwazo kigumu cha kiwango cha mahesabu ya kompyuta inaweza kufanyika maramoja kuzuia Ethereum kutoka kuelemewa, inasadia kuhakikisha mtandao kila wakati unapatikana.", "page-gas-how-is-gas-calculated-header": "Ni jinsi gani gesi inapigiwa mahesabu?", diff --git a/src/intl/sw/page-history.json b/src/intl/sw/page-history.json new file mode 100644 index 00000000000..3a82efdc982 --- /dev/null +++ b/src/intl/sw/page-history.json @@ -0,0 +1,7 @@ +{ + "page-history-slot-number": "Nambari ya yanayopangwa", + "page-history-block-number": "Namba ya kizuizi", + "page-history-epoch-number": "Nambari ya epoch", + "page-history-ethereum-org-wayback": "ethereum.org kwenye waybackmachine", + "page-history-eth-price": "Bei ya ETH" +} diff --git a/src/intl/sw/page-index.json b/src/intl/sw/page-index.json index 68e9e01a5c1..534018cfa61 100644 --- a/src/intl/sw/page-index.json +++ b/src/intl/sw/page-index.json @@ -19,7 +19,7 @@ "page-index-bento-networks-content": "Mamia ya mitandao ya Layer 2 imejengwa kwenye Ethereum. Furahia ada za chini na miamala ya karibu papo hapo huku ukifaidika na usalama uliothibitishwa wa Ethereum.", "page-index-bento-networks-title": "Mtandao wa mitandao", "page-index-bento-stablecoins-action": "Kugundua sarafu imara", - "page-index-bento-stablecoins-content": "Stablecoins ni sarafu zinazodumisha bei thabiti, zikilinganishwa na mali tulivu kama vile dola ya Marekani. Fikia malipo ya kimataifa papo hapo au hifadhi thamani katika dola za kidijitali kwenye Ethereum.", + "page-index-bento-stablecoins-content": "Stablecoins ni sarafu za kidijitali ambazo hudumisha bei thabiti inayolingana na mali tulivu kama vile dola ya Marekani. Zinawezesha malipo ya papo hapo ya kimataifa au kuhifadhi thamani katika dola za kidijitali kwenye Ethereum.", "page-index-bento-stablecoins-title": "Pesa za kidijitali kwa matumizi ya kila siku", "page-index-builders-action-primary": "Tovuti ya wajenzi", "page-index-builders-action-secondary": "Nyaraka", diff --git a/src/scripts/i18n/post_import_sanitize.ts b/src/scripts/i18n/post_import_sanitize.ts index f2ca4db1b97..cb91af873fd 100644 --- a/src/scripts/i18n/post_import_sanitize.ts +++ b/src/scripts/i18n/post_import_sanitize.ts @@ -2905,6 +2905,48 @@ function detectCrossScriptContamination( return warnings } +/** + * Fix misplaced closing backtick around JSX fragment patterns. + * Crowdin sometimes moves the closing backtick before ``, producing: + * (`<> ...` ) instead of (`<> ... `) + * The escapeMdxAngleBrackets function then escapes the exposed , + * making things worse. This fix must run BEFORE escapeMdxAngleBrackets. + */ +function fixMisplacedBacktickAroundJsxFragment(content: string): { + content: string + fixCount: number +} { + let fixCount = 0 + + // Process line-by-line, skip fenced code blocks + const lines = content.split("\n") + let inFencedBlock = false + + for (let i = 0; i < lines.length; i++) { + const line = lines[i] + + if (/^(`{3,}|~{3,})/.test(line)) { + inFencedBlock = !inFencedBlock + continue + } + if (inFencedBlock) continue + + // Match: `` ) or `` \) -- backtick closed too early + // The closing backtick should wrap the too. + // Pattern: backtick-content-backtick SPACE or \ followed by ) + lines[i] = line.replace( + /(`<[^`]*`)\s*(?:\\)?(<\/>)(\))/g, + (_, codeSpan, fragment, paren) => { + fixCount++ + // Move closing backtick to after the fragment + return codeSpan.slice(0, -1) + " " + fragment + "`" + paren + } + ) + } + + return { content: lines.join("\n"), fixCount } +} + /** * Escape raw `<` before numbers in MDX content. * Pattern: `<5GB` becomes `<5GB` to prevent MDX treating it as a JSX tag. @@ -3365,6 +3407,45 @@ function fixImagePathDotSlash(content: string): { return { content: parts.join(""), fixCount } } +/** + * Fix backslash-escaped quotes in JSX/MDX attributes. + * + * Crowdin sometimes backslash-escapes double quotes in JSX attributes: + * + * This is valid in JSON but breaks MDX compilation. + * Fix: remove the backslash before quotes in JSX-like tag attributes. + */ +function fixEscapedQuotesInJsxAttributes(content: string): { + content: string + fixCount: number +} { + let fixCount = 0 + + const codeBlockPattern = /(```[\s\S]*?```|~~~[\s\S]*?~~~)/g + const parts = content.split(codeBlockPattern) + + for (let i = 0; i < parts.length; i++) { + if (i % 2 === 1) continue // Skip fenced code blocks + + const original = parts[i] + // Match JSX tag lines containing =\" and replace all \" with " + parts[i] = parts[i].replace(/^(\s*<[A-Za-z].*)\\"(.*)$/gm, (fullLine) => { + // Only fix lines that have =\" (attribute assignment with escaped quote) + if (!fullLine.includes('=\\"')) return fullLine + return fullLine.replace(/\\"/g, '"') + }) + if (parts[i] !== original) { + // Count the number of \" that were replaced + const replacements = + (original.match(/\\"/g) || []).length - + (parts[i].match(/\\"/g) || []).length + fixCount += replacements + } + } + + return { content: parts.join(""), fixCount } +} + /** * Fix inner quotes inside JSX attribute values that break MDX parsing. * Crowdin translates attribute content like title="Misconception: "text"" @@ -3818,6 +3899,9 @@ function removeOrphanedClosingTags(content: string): { closerIdx++ } result += line.slice(lastEnd) + // Collapse doubled punctuation left behind after tag removal + // e.g., "word.." becomes "word.." after removal, fix to "word." + result = result.replace(/([.!?,;:])(\s*)\1/g, "$1$2") lines[i] = result.replace(/ +/g, " ").trimEnd() } } @@ -4022,6 +4106,10 @@ function processMarkdownFile( () => fixImagePathDotSlash(content), (n) => `Fixed ${n} corrupted ./ image paths` ) + applyFix( + () => fixEscapedQuotesInJsxAttributes(content), + (n) => `Fixed ${n} backslash-escaped quotes in JSX attributes` + ) applyFix( () => fixInnerQuotesInJsxAttributes(content), (n) => `Fixed ${n} unescaped inner quotes in JSX attributes` @@ -4087,6 +4175,10 @@ function processMarkdownFile( () => fixAsymmetricBackticks(content), (n) => `Fixed ${n} asymmetric backtick pairs` ) + applyFix( + () => fixMisplacedBacktickAroundJsxFragment(content), + (n) => `Repaired ${n} Crowdin-split backtick span(s)` + ) applyFix( () => escapeMdxAngleBrackets(content), (n) => `Escaped ${n} raw angle brackets in prose` @@ -4341,9 +4433,71 @@ function processMarkdownFile( return { fixed, issues, content } } +/** + * Fix translated interpolation placeholders in JSON values. + * + * Crowdin sometimes translates the variable name inside {braces}: + * EN: "{days} ago" -> SW: "{siku} zilizopita" + * The app expects the English key name. This function compares each + * translated JSON value against its English counterpart and restores + * the original placeholder names. + */ +function fixTranslatedJsonPlaceholders( + translatedJson: string, + englishJson: string +): { content: string; fixCount: number } { + let fixCount = 0 + + let trObj: Record + let enObj: Record + try { + trObj = JSON.parse(translatedJson) + enObj = JSON.parse(englishJson) + } catch { + return { content: translatedJson, fixCount: 0 } + } + + for (const key of Object.keys(trObj)) { + const enVal = enObj[key] + if (!enVal || typeof enVal !== "string" || typeof trObj[key] !== "string") + continue + + // Extract placeholders from English: {word} patterns + const enPlaceholders = enVal.match(/\{[a-zA-Z_]\w*\}/g) + if (!enPlaceholders || enPlaceholders.length === 0) continue + + // Extract placeholders from translated value + const trPlaceholders = trObj[key].match(/\{[a-zA-Z_]\w*\}/g) + if (!trPlaceholders || trPlaceholders.length === 0) continue + + // If counts match but names differ, map by position + if (enPlaceholders.length === trPlaceholders.length) { + let val = trObj[key] + let changed = false + for (let j = 0; j < enPlaceholders.length; j++) { + if (trPlaceholders[j] !== enPlaceholders[j]) { + val = val.replace(trPlaceholders[j], enPlaceholders[j]) + changed = true + } + } + if (changed) { + trObj[key] = val + fixCount++ + } + } + } + + if (fixCount === 0) return { content: translatedJson, fixCount } + + // Re-serialize preserving the original formatting (2-space indent) + const content = JSON.stringify(trObj, null, 2) + "\n" + return { content, fixCount } +} + function processJsonFile( jsonPath: string, - providedContent?: string + providedContent?: string, + englishContent?: string ): { fixed: boolean issues: string[] @@ -4388,6 +4542,20 @@ function processJsonFile( issues.push(`Fixed ${compoundResult.fixCount} known wrong compound term(s)`) } + // Fix translated interpolation placeholders if English is available + if (englishContent) { + const placeholderResult = fixTranslatedJsonPlaceholders( + content, + englishContent + ) + if (placeholderResult.fixCount > 0) { + content = placeholderResult.content + issues.push( + `Fixed ${placeholderResult.fixCount} translated placeholder(s)` + ) + } + } + // Try parsing to validate JSON try { JSON.parse(content) @@ -4574,9 +4742,25 @@ export async function runSanitizer( if (originalOnDisk === null && !fileInfo.content) { continue } + // Load English counterpart for JSON placeholder comparison + // e.g., src/intl/sw/page-apps.json -> src/intl/en/page-apps.json + let englishJsonContent: string | undefined + const jsonRelParts = fileInfo.path.split(path.sep) + const intlIdx = jsonRelParts.lastIndexOf("intl") + if (intlIdx !== -1 && intlIdx + 2 < jsonRelParts.length) { + const enJsonPath = [ + ...jsonRelParts.slice(0, intlIdx + 1), + "en", + ...jsonRelParts.slice(intlIdx + 2), + ].join(path.sep) + if (fs.existsSync(enJsonPath)) { + englishJsonContent = fs.readFileSync(enJsonPath, "utf8") + } + } const { fixed, issues, content } = processJsonFile( fileInfo.path, - fileInfo.content + fileInfo.content, + englishJsonContent ) if (fixed) { jsonFixed++ @@ -4797,6 +4981,7 @@ export const _testOnly = { fixBlockComponentLineBreaks, fixTickerTranspositions, fixBrandCapitalization, + fixMisplacedBacktickAroundJsxFragment, escapeMdxAngleBrackets, removeOrphanedClosingTags, normalizeFrontmatterDates, @@ -4831,7 +5016,9 @@ export const _testOnly = { fixMissingLinkParentheses, fixMissingClosingEmTag, fixImagePathDotSlash, + fixEscapedQuotesInJsxAttributes, fixInnerQuotesInJsxAttributes, + fixTranslatedJsonPlaceholders, escapeTildeStrikethrough, fixBoldAdjacentNonLatin, fixItalicAdjacentNonLatin, diff --git a/tests/unit/sanitizer/standalone-fixes.spec.ts b/tests/unit/sanitizer/standalone-fixes.spec.ts index 8d41104ec78..5563c847db7 100644 --- a/tests/unit/sanitizer/standalone-fixes.spec.ts +++ b/tests/unit/sanitizer/standalone-fixes.spec.ts @@ -14,6 +14,7 @@ const { fixAsciiGuillemets, fixBlockComponentLineBreaks, fixTickerTranspositions, + fixMisplacedBacktickAroundJsxFragment, escapeMdxAngleBrackets, removeOrphanedClosingTags, normalizeFrontmatterDates, @@ -50,6 +51,8 @@ const { fixMangledDocLinks, fixBrandCapitalization, fixJsxAttributeSpacing, + fixEscapedQuotesInJsxAttributes, + fixTranslatedJsonPlaceholders, } = _testOnly test.describe("Standalone Fixes", () => { @@ -300,6 +303,40 @@ test.describe("Standalone Fixes", () => { }) }) + test.describe("fixMisplacedBacktickAroundJsxFragment", () => { + test("moves closing backtick to wrap in code span", () => { + const input = "tunatumia kipengele tupu (`<> ...` ) ili kuzifanya" + const { content, fixCount } = fixMisplacedBacktickAroundJsxFragment(input) + expect(content).toBe( + "tunatumia kipengele tupu (`<> ... `) ili kuzifanya" + ) + expect(fixCount).toBe(1) + }) + + test("fixes already-escaped \\ variant", () => { + const input = "tunatumia kipengele tupu (`<> ...` \\) ili kuzifanya" + const { content, fixCount } = fixMisplacedBacktickAroundJsxFragment(input) + expect(content).toBe( + "tunatumia kipengele tupu (`<> ... `) ili kuzifanya" + ) + expect(fixCount).toBe(1) + }) + + test("leaves correct backtick placement unchanged", () => { + const input = "we use an empty component (`<> ... `) to combine" + const { content, fixCount } = fixMisplacedBacktickAroundJsxFragment(input) + expect(content).toBe(input) + expect(fixCount).toBe(0) + }) + + test("skips fenced code blocks", () => { + const input = "```tsx\n(`<> ...` )\n```" + const { content, fixCount } = fixMisplacedBacktickAroundJsxFragment(input) + expect(content).toBe(input) + expect(fixCount).toBe(0) + }) + }) + test.describe("escapeMdxAngleBrackets", () => { test("escapes < before digit", () => { const input = "Requires <5GB of disk space" @@ -413,6 +450,20 @@ test.describe("Standalone Fixes", () => { expect(content).toBe(input) expect(fixCount).toBe(0) }) + + test("collapses double period after orphaned tag removal", () => { + const input = "funguo za BLS za kutoa.. Ili mthibitishaji" + const { content, fixCount } = removeOrphanedClosingTags(input) + expect(content).toBe("funguo za BLS za kutoa. Ili mthibitishaji") + expect(fixCount).toBe(2) + }) + + test("collapses double comma after orphaned tag removal", () => { + const input = "first,, second" + const { content, fixCount } = removeOrphanedClosingTags(input) + expect(content).toBe("first, second") + expect(fixCount).toBe(1) + }) }) test.describe("fixBlockComponentLineBreaks", () => { @@ -2326,4 +2377,72 @@ author: Ori Pomerantz expect(fixCount).toBe(0) }) }) + + test.describe("fixEscapedQuotesInJsxAttributes", () => { + test("removes backslash-escaped quotes in JSX attributes", () => { + const input = + 'Zaidi' + const { content, fixCount } = fixEscapedQuotesInJsxAttributes(input) + expect(content).toBe( + 'Zaidi' + ) + expect(fixCount).toBeGreaterThan(0) + }) + + test("leaves normal JSX attributes unchanged", () => { + const input = + 'Text' + const { content, fixCount } = fixEscapedQuotesInJsxAttributes(input) + expect(content).toBe(input) + expect(fixCount).toBe(0) + }) + + test("skips fenced code blocks", () => { + const input = '```\n\n```' + const { content, fixCount } = fixEscapedQuotesInJsxAttributes(input) + expect(content).toBe(input) + expect(fixCount).toBe(0) + }) + + test("only fixes lines that look like JSX tags", () => { + const input = 'This is prose with a \\" quote in it' + const { content, fixCount } = fixEscapedQuotesInJsxAttributes(input) + expect(content).toBe(input) + expect(fixCount).toBe(0) + }) + }) + + test.describe("fixTranslatedJsonPlaceholders", () => { + test("restores translated placeholder names to English", () => { + const en = JSON.stringify({ key: "{days} ago" }) + const tr = JSON.stringify({ key: "{siku} zilizopita" }) + const { content, fixCount } = fixTranslatedJsonPlaceholders(tr, en) + const parsed = JSON.parse(content) + expect(parsed.key).toBe("{days} zilizopita") + expect(fixCount).toBe(1) + }) + + test("handles multiple placeholders in one value", () => { + const en = JSON.stringify({ k: "{count} of {total}" }) + const tr = JSON.stringify({ k: "{hesabu} ya {jumla}" }) + const { content, fixCount } = fixTranslatedJsonPlaceholders(tr, en) + const parsed = JSON.parse(content) + expect(parsed.k).toBe("{count} ya {total}") + expect(fixCount).toBe(1) + }) + + test("leaves correct placeholders unchanged", () => { + const en = JSON.stringify({ k: "{days} ago" }) + const tr = JSON.stringify({ k: "{days} zilizopita" }) + const { fixCount } = fixTranslatedJsonPlaceholders(tr, en) + expect(fixCount).toBe(0) + }) + + test("skips keys not present in English", () => { + const en = JSON.stringify({ a: "hello" }) + const tr = JSON.stringify({ a: "habari", b: "{extra}" }) + const { fixCount } = fixTranslatedJsonPlaceholders(tr, en) + expect(fixCount).toBe(0) + }) + }) })