From 4e2bf86fea171068b7feef14128dc266e167b364 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Sat, 14 Feb 2026 00:14:36 +0000 Subject: [PATCH 1/2] i18n(sw): translation import part 04 of 13 (23 files) --- .../data-structures-and-encoding/ssz/index.md | 150 ++++++++++++ .../web3-secret-storage/index.md | 195 ++++++++++++++++ .../dex-design-best-practice/index.md | 220 +++++++++++++++++ .../heuristics-for-web3/index.md | 138 +++++++++++ .../sw/developers/docs/design-and-ux/index.md | 86 +++++++ .../docs/development-networks/index.md | 71 ++++++ .../developers/docs/ethereum-stack/index.md | 61 +++++ .../sw/developers/docs/evm/index.md | 88 +++++++ .../sw/developers/docs/evm/opcodes/index.md | 177 ++++++++++++++ .../sw/developers/docs/frameworks/index.md | 157 +++++++++++++ .../sw/developers/docs/gas/index.md | 151 ++++++++++++ .../sw/developers/docs/ides/index.md | 64 +++++ .../translations/sw/developers/docs/index.md | 25 ++ .../developers/docs/intro-to-ether/index.md | 78 +++++++ .../docs/intro-to-ethereum/index.md | 124 ++++++++++ .../sw/developers/docs/mev/index.md | 221 ++++++++++++++++++ .../developers/docs/networking-layer/index.md | 163 +++++++++++++ .../network-addresses/index.md | 39 ++++ .../networking-layer/portal-network/index.md | 89 +++++++ .../sw/developers/docs/networks/index.md | 216 +++++++++++++++++ .../nodes-and-clients/archive-nodes/index.md | 81 +++++++ .../docs/nodes-and-clients/bootnodes/index.md | 32 +++ .../client-diversity/index.md | 132 +++++++++++ 23 files changed, 2758 insertions(+) create mode 100644 public/content/translations/sw/developers/docs/data-structures-and-encoding/ssz/index.md create mode 100644 public/content/translations/sw/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md create mode 100644 public/content/translations/sw/developers/docs/design-and-ux/dex-design-best-practice/index.md create mode 100644 public/content/translations/sw/developers/docs/design-and-ux/heuristics-for-web3/index.md create mode 100644 public/content/translations/sw/developers/docs/design-and-ux/index.md create mode 100644 public/content/translations/sw/developers/docs/development-networks/index.md create mode 100644 public/content/translations/sw/developers/docs/ethereum-stack/index.md create mode 100644 public/content/translations/sw/developers/docs/evm/index.md create mode 100644 public/content/translations/sw/developers/docs/evm/opcodes/index.md create mode 100644 public/content/translations/sw/developers/docs/frameworks/index.md create mode 100644 public/content/translations/sw/developers/docs/gas/index.md create mode 100644 public/content/translations/sw/developers/docs/ides/index.md create mode 100644 public/content/translations/sw/developers/docs/index.md create mode 100644 public/content/translations/sw/developers/docs/intro-to-ether/index.md create mode 100644 public/content/translations/sw/developers/docs/intro-to-ethereum/index.md create mode 100644 public/content/translations/sw/developers/docs/mev/index.md create mode 100644 public/content/translations/sw/developers/docs/networking-layer/index.md create mode 100644 public/content/translations/sw/developers/docs/networking-layer/network-addresses/index.md create mode 100644 public/content/translations/sw/developers/docs/networking-layer/portal-network/index.md create mode 100644 public/content/translations/sw/developers/docs/networks/index.md create mode 100644 public/content/translations/sw/developers/docs/nodes-and-clients/archive-nodes/index.md create mode 100644 public/content/translations/sw/developers/docs/nodes-and-clients/bootnodes/index.md create mode 100644 public/content/translations/sw/developers/docs/nodes-and-clients/client-diversity/index.md diff --git a/public/content/translations/sw/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/translations/sw/developers/docs/data-structures-and-encoding/ssz/index.md new file mode 100644 index 00000000000..51c8c81c35b --- /dev/null +++ b/public/content/translations/sw/developers/docs/data-structures-and-encoding/ssz/index.md @@ -0,0 +1,150 @@ +--- +title: Utaratibu rahisi wa kupanga +description: Ufafanuzi wa muundo wa SSZ wa Ethereum. +lang: sw +sidebarDepth: 2 +--- + +**Serializesheni Rahisi (SSZ)** ni mbinu ya userializesheni inayotumika kwenye Mnyororo Kioleza. Inachukua nafasi ya usanifu wa RLP unaotumiwa kwenye safu ya utekelezaji kila mahali kwenye safu ya makubaliano isipokuwa itifaki ya ugunduzi wa programu zingine. Ili kupata maelezo zaidi kuhusu serializesheni ya RLP, tazama [Kiambishi awali cha urefu kinachojirudia (RLP)](/developers/docs/data-structures-and-encoding/rlp/). SSZ imeundwa kubainisha na pia Merkleize kwa ufanisi. SSZ inaweza kuzingatiwa kuwa na vipengee viwili: mpango wa kuratibu na mpango wa Merkleization ambao umeundwa kufanya kazi kwa ufanisi na muundo wa data uliosanifiwa. + +## SSZ inafanya kazi vipi? {#how-does-ssz-work} + +### Serializesheni {#serialization} + +SSZ ni mpango wa kuratibu ambao haujielezi - badala yake unategemea mpango ambao lazima ujulikane mapema. Kusudi la usanifu wa SSZ ni kuwakilisha vitu vya ugumu wa kiholela kama kamba za baiti. Huu ni mchakato rahisi sana kwa "aina za msingi". Kipengele kinabadilishwa tu kuwa baiti za hexadecimal. Aina za msingi ni pamoja na: + +- nambari kamili ambazo hazijasainiwa +- Thamani za Mantiki + +Kwa aina tata za "mchanganyiko", usakinishaji ni mgumu zaidi kwa sababu aina ya mchanganyiko ina vipengele vingi ambavyo vinaweza kuwa na aina tofauti au ukubwa tofauti, au zote mbili. Ikiwa vitu hivi vyote vina urefu usiobadilika (yaani, ukubwa wa vipengele daima ni wa kudumu bila kujali thamani zao halisi), userializesheni ni ubadilishaji rahisi wa kila kipengele katika aina ya mchanganyiko, unaopangwa katika mifuatano ya baiti ya mwisho-mdogo. Mlolongo huu wa baiti huunganishwa pamoja. Kitu kilichofanyiwa usanifu huwa na mwakilishi wa orodha ya baiti wa vipengele vyenye urefu wa kudumu katika mpangilio uleule kama vinavyoonekana kwenye kitu kilichorudishwa. + +Kwa aina zilizo na urefu tofauti, data halisi hubadilishwa na thamani ya "kukabiliana" katika nafasi ya kipengele hicho katika kitu kilichosanifiwa. Data halisi huongezwa kwenye lundo mwishoni mwa kitu kilichopangwa mfululizo. Thamani ya kukabiliana ni tofauti tofauti ya kuanza kwa data halisi kwenye lundo, ikifanya kazi kama kiashirio kwa baiti husika. + +Mfano hapa chini unaonyesha jinsi urekebishaji unavyofanya kazi kwa kontena iliyo na vitu vilivyowekwa na vya urefu tofauti: + +```Rust + + struct Dummy { + + number1: u64, + number2: u64, + vector: Vec, + number3: u64 + } + + dummy = Dummy{ + + number1: 37, + number2: 55, + vector: vec![1,2,3,4], + number3: 22, + } + + serialized = ssz.serialize(dummy) + +``` + +`serialized` ingekuwa na muundo ufuatao (imejazwa kwa biti 4 tu hapa, imejazwa kwa biti 32 katika uhalisia, na kuweka uwakilishi wa `int` kwa uwazi): + +``` +[37, 0, 0, 0, 55, 0, 0, 0, 16, 0, 0, 0, 22, 0, 0, 0, 1, 2, 3, 4] +------------ ----------- ----------- ----------- ---------- + | | | | | + namba1 namba2 punguzo kwa namba 3 thamani ya + vekta vekta + +``` + +kugawanywa juu ya mistari kwa uwazi: + +``` +[ + 37, 0, 0, 0, # usimbaji wa mwisho-mdogo wa `namba1`. + 55, 0, 0, 0, # usimbaji wa mwisho-mdogo wa `namba2`. + 16, 0, 0, 0, # "Punguzo" linaloonyesha mahali ambapo thamani ya `vekta` huanza (mwisho-mdogo 16). + 22, 0, 0, 0, # usimbaji wa mwisho-mdogo wa `namba3`. + 1, 2, 3, 4, # Thamani halisi katika `vekta`. +] +``` + +Bado hii ni kurahisisha - nambari kamili na sifuri kwenye michoro hapo juu zingehifadhiwa kwa njia, kama hii: + +``` +[ + 10100101000000000000000000000000 # usimbaji wa mwisho-mdogo wa `namba1` + 10110111000000000000000000000000 # usimbaji wa mwisho-mdogo wa `namba2`. + 10010000000000000000000000000000 # "Punguzo" linaloonyesha mahali ambapo thamani ya `vekta` huanza (mwisho-mdogo 16). + 10010110000000000000000000000000 # usimbaji wa mwisho-mdogo wa `namba3`. + 10000001100000101000001110000100 # Thamani halisi ya sehemu ya `baiti`. +] +``` + +Kwa hivyo maadili halisi ya aina za urefu tofauti huhifadhiwa kwenye lundo mwishoni mwa kitu kilichopangwa kwa mpangilio na urekebishaji wao ukihifadhiwa katika nafasi zao sahihi katika orodha ya sehemu zilizoagizwa. + +Pia kuna baadhi ya kesi maalum zinazohitaji matibabu maalum, kama vile aina ya `BitList` inayohitaji kikomo cha urefu kuongezwa wakati wa userializesheni na kuondolewa wakati wa uondoaji-serializesheni. Maelezo kamili yanapatikana katika [maelezo ya SSZ](https://github.com/ethereum/consensus-specs/blob/dev/ssz/simple-serialize.md). + +### Uondoaji-serializesheni {#deserialization} + +Uondoaji-serializesheni wa kitu hiki unahitaji skema. Ratiba inafafanua mpangilio sahihi wa data iliyosawazishwa ili kila kipengele mahususi kiweze kuondolewa kutoka kwenye sehemu ya baiti hadi kwenye kitu fulani cha maana na vipengele vilivyo na aina, thamani, ukubwa na nafasi sahihi. Ni muundo wa data unaomwambia msanifukwa ni maadili gani ni maadili halisi na ni yapi ambayo yamepunguzwa. Majina yote ya sehemu hupotea wakati kitu kinapofanyiwa usanifu, lakini hurudishwa tena wakati wa Urejeshaji wa data katika muundo wake wa asili kulingana na muundo wa data. + +Tazama [ssz.dev](https://www.ssz.dev/overview) kwa maelezo shirikishi kuhusu hili. + +## Umerkleizesheni {#merkleization} + +Kipengee hiki cha serialized cha SSZ kinaweza kisha kuwa merkleized - ambacho kinabadilishwa kuwa uwakilishi wa mti wa Merkle wa data sawa. Kwanza, idadi ya Vipande 32-baiti katika Kipengele kilichoorodheshwa kimeamuliwa. Hizi ni "majani" ya mti. Idadi ya jumla ya majani lazima iwe na nguvu ya 2 ili kuharakisha pamoja majani hatimaye kutoa mzizi mmoja wa mti wa hashi. Ikiwa hii sio kawaida, majani ya ziada yaliyo na baiti 32 za zero huongezwa. Kielelezo: + +``` + mzizi wa mti wa hashi + / \ + / \ + / \ + / \ + hashi ya majani hashi ya majani + 1 na 2 3 na 4 + / \ / \ + / \ / \ + / \ / \ + jani1 jani2 jani3 jani4 +``` + +Pia kuna matukio ambapo majani ya mti hayana kawaida sawasawa kusambaza kwa njia ya kufanya katika mfano hapo juu. Kwa mfano, jani la 4 linaweza kuwa chombo chenye vipengele vingi vinavyohitaji "kina" cha ziada ili kuongezwa kwenye mti wa Merkle, na kuunda mti usio na usawa. + +Badala ya kurejelea vipengele hivi vya mti kama jani X, nodi X n. k, tunaweza kuvipa viashiria vya jumla, tukianza na mzizi = 1 na kuhesabu kutoka kushoto kwenda kulia kwa kila ngazi. Hiki ni kiashiria juimuishi kiliyoelezwa hapo juu. Kila kipengele katika orodha iliyofanyiwa userializesheni kina faharasa ya jumla sawa na `2**depth + idx` ambapo idx ni nafasi yake yenye faharasa-sifuri katika kitu kilichofanyiwa userializesheni na kina ni idadi ya viwango katika mti wa Merkle, ambayo inaweza kubainishwa kama logariti ya msingi-mbili ya idadi ya vipengele (majani). + +## Faharasa za jumla {#generalized-indices} + +Faharasa ya jumla ni nambari kamili inayowakilisha nodi katika mti wa Merkle wa binary ambapo kila nodi ina faharasa ya jumla `2 ** depth + index in row`. + +``` + 1 --kina = 0 2**0 + 0 = 1 + 2 3 --kina = 1 2**1 + 0 = 2, 2**1+1 = 3 + 4 5 6 7 --kina = 2 2**2 + 0 = 4, 2**2 + 1 = 5... + +``` + +"Uwakilishi huu unatoa kiashiria cha nodi kwa kila kipande cha data katika mti wa Merkle." + +## Uthibitisho-anuwai {#multiproofs} + +"Kutoa orodha ya viashiria vilivyopanuliwa vinavyo wakilisha kipengele fulani kunaturuhusu kukithibitisha dhidi ya mizizi ya mti wa hash." Mzizi huu ni toleo letu la ukweli linalokubalika. Data yoyote tunayopewa inaweza kuthibitishwa dhidi ya ukweli huo kwa kuiingiza mahali pazuri katika mti wa Merkle na kuzingatia kwamba mzizi unabaki bila kubadilika. Kuna kazi katika maelezo [hapa](https://github.com/ethereum/consensus-specs/blob/dev/ssz/merkle-proofs.md#merkle-multiproofs) zinazoonyesha jinsi ya kukokotoa seti ndogo iwezekanavyo ya nodi zinazohitajika ili kuthibitisha maudhui ya seti maalum ya faharasa za jumla. + +Kwa mfano, ili kuthibitisha data katika fahirisi ya 9 kwenye mti ulio hapa chini, tunahitaji heshi ya data katika kiashiria 8, 9, 5, 3, 1. +Heshi ya (8,9) inapaswa kuwa sawa na (4), ambayo heshi na 5 kutoa 2, ambayo heshi yenye 3 ili kutoa mzizi wa mti 1. Ikiwa data isiyo sahihi ilitolewa kwa 9, mzizi ungebadilika - tungegundua hii na kushindwa kuthibitisha tawi. + +``` +* = data inayohitajika ili kutoa uthibitisho + + 1* + 2 3* + 4 5* 6 7 +8* 9* 10 11 12 13 14 15 + +``` + +## Masomo zaidi {#further-reading} + +- [Kuboresha Ethereum: SSZ](https://eth2book.info/altair/part2/building_blocks/ssz) +- [Kuboresha Ethereum: Umerkleizesheni](https://eth2book.info/altair/part2/building_blocks/merkleization) +- [Utekelezaji wa SSZ](https://github.com/ethereum/consensus-specs/issues/2138) +- [Kikokotoo cha SSZ](https://simpleserialize.com/) +- [SSZ.dev](https://www.ssz.dev/) diff --git a/public/content/translations/sw/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md b/public/content/translations/sw/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md new file mode 100644 index 00000000000..68c80a55fc4 --- /dev/null +++ b/public/content/translations/sw/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md @@ -0,0 +1,195 @@ +--- +title: Tovuti ya tatu ufafanuzi wa uhifadhi +description: Ufafanuzi rasmi wa ghala ya siri ya web3 +lang: sw +sidebarDepth: 2 +--- + +Ili kufanya programu yako ifanye kazi kwenye Ethereum, unaweza kutumia kitu cha web3 kinachotolewa na maktaba ya web3.js. Kimsingi huwasiliana na nodi ya ndani kupitia wito za RPC. [web3](https://github.com/ethereum/web3.js/) hufanya kazi na nodi yoyote ya Ethereum ambayo inaonyesha safu ya RPC. + +`web3` ina kitu cha `eth` - web3.eth. + +```js +var fs = require("fs") +var recognizer = require("ethereum-keyfile-recognizer") + +fs.readFile("keyfile.json", (err, data) => { + var json = JSON.parse(data) + var result = recognizer(json) +}) + +/** matokeo + * [ 'web3', 3 ] faili la ufunguo la web3 (v3) + * [ 'ethersale', undefined ] Faili la ufunguo la Ethersale + * null faili la ufunguo batili + */ +``` + +Hati hii inaandika **toleo la 3** la Ufafanuzi wa Ghala la Siri la Web3. + +## Ufafanuzi {#definition} + +Usimbaji na uondoaji usimbaji halisi wa faili haujabadilika kwa kiasi kikubwa kutoka toleo la 1, isipokuwa kwamba algoriti ya kripto haijawekwa tena kwa AES-128-CBC (AES-128-CTR sasa ndiyo hitaji la chini kabisa). Maana/algoriti nyingi ni sawa na toleo la 1, isipokuwa `mac`, ambayo hutolewa kama SHA3 (keccak-256) ya miunganisho ya baiti 16 za pili kutoka kushoto za ufunguo uliotolewa pamoja na `ciphertext` kamili. + +Faili za ufunguo wa siri huhifadhiwa moja kwa moja katika `~/.web3/keystore` (kwa mifumo inayofanana na Unix) na `~/AppData/Web3/keystore` (kwa Windows). Zinaweza kupewa jina lolote, lakini utaratibu mzuri ni `.json`, ambapo `` ni UUID ya biti 128 iliyopewa ufunguo wa siri (wakala wa kuhifadhi faragha kwa anwani ya ufunguo wa siri). + +Faili zote kama hizo zina nenosiri linalohusishwa. Ili kupata ufunguo wa siri wa faili fulani ya `.json`, kwanza pata ufunguo wa usimbaji fiche wa faili; hii inafanywa kwa kuchukua nenosiri la faili na kulipitisha kupitia kitendakazi cha kupata ufunguo kama ilivyoelezwa na ufunguo wa `kdf`. Vigezo vya kudumu na vinavyobadilika vinavyotegemea KDF kwa kitendakazi cha KDF vimeelezwa katika ufunguo wa `kdfparams`. + +PBKDF2 lazima iungwe mkono na utekelezaji wote unaokidhi viwango vya chini kabisa, unaoonyeshwa kupitia: + +- `kdf`: `pbkdf2` + +Kwa PBKDF2, kdfparams zinajumuisha: + +- `prf`: Lazima iwe `hmac-sha256` (inaweza kupanuliwa siku zijazo); +- `c`: idadi ya marudio; +- `salt`: chumvi iliyopitishwa kwa PBKDF; +- `dklen`: urefu wa ufunguo uliotolewa. Lazima iwe >= 32. + +Mara ufunguo wa faili utakapopatikana, unapaswa kuthibitishwa kupitia upatikanaji wa MAC. MAC inapaswa kukokotolewa kama hashi ya SHA3 (keccak-256) ya safu ya baiti iliyoundwa kama miunganisho ya baiti 16 za pili kutoka kushoto za ufunguo uliotolewa na yaliyomo kwenye ufunguo wa `ciphertext`, yaani: + +```js +KECCAK(DK[16..31] ++ ) +``` + +(ambapo `++` ni kiendeshaji cha kuunganisha) + +Thamani hii inapaswa kulinganishwa na yaliyomo kwenye ufunguo wa `mac`; ikiwa ni tofauti, nenosiri mbadala linapaswa kuombwa (au operesheni isitishwe). + +Baada ya ufunguo wa faili kuthibitishwa, maandishi ya kificho (ufunguo wa `ciphertext` katika faili) yanaweza kuondolewa usimbaji kwa kutumia algoriti ya usimbaji fiche linganifu iliyoainishwa na ufunguo wa `cipher` na kuwekewa vigezo kupitia ufunguo wa `cipherparams`. Ikiwa saizi ya ufunguo uliotolewa na saizi ya ufunguo wa algoriti hazifanani, baiti za kulia kabisa za ufunguo uliotolewa, zilizojazwa na sifuri, zinapaswa kutumika kama ufunguo wa algoriti. + +Utekelezaji wote unaokidhi viwango vya chini kabisa lazima uunge mkono algoriti ya AES-128-CTR, inayoonyeshwa kupitia: + +- `cipher: aes-128-ctr` + +Kificho hiki huchukua vigezo vifuatavyo, vilivyotolewa kama funguo za ufunguo wa cipherparams: + +- `iv`: vekta ya kuanzisha ya biti 128 kwa kificho. + +Ufunguo wa kificho ni baiti 16 za kushoto kabisa za ufunguo uliotolewa, yaani, `DK[0..15]` + +Uundaji/usimbaji fiche wa ufunguo wa siri unapaswa kuwa kinyume cha maagizo haya kimsingi. Hakikisha `uuid`, `salt` na `iv` ni za kubahatisha. + +Mbali na sehemu ya `version`, ambayo inapaswa kufanya kazi kama kitambulisho "kigumu" cha toleo, utekelezaji unaweza pia kutumia `minorversion` kufuatilia mabadiliko madogo, yasiyovunja, kwa umbizo. + +## Vekta za Majaribio {#test-vectors} + +Maelezo: + +- `Anwani`: `008aeeda4d805471df9b2a5b0f38a0c3bcba786b` +- `ICAP`: `XE542A5PZHH8PYIZUBEJEO0MFWRAPPIL67` +- `UUID`: `3198bc9c-6672-5ab3-d9954942343ae5b6` +- `Nenosiri`: `testpassword` +- `Siri`: `7a28b5ba57c53603b0b07b56bba752f7784bf506fa95edc395f5cf6c7514fe9d` + +### PBKDF2-SHA-256 {#PBKDF2-SHA-256} + +Vekta ya majaribio inayotumia `AES-128-CTR` na `PBKDF2-SHA-256`: + +Yaliyomo kwenye faili ya `~/.web3/keystore/3198bc9c-6672-5ab3-d9954942343ae5b6.json`: + +```json +{ + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "6087dab2f9fdbbfaddc31a909735c1e6" + }, + "ciphertext": "5318b4d5bcd28de64ee5559e671353e16f075ecae9f99c7a79a38af5f869aa46", + "kdf": "pbkdf2", + "kdfparams": { + "c": 262144, + "dklen": 32, + "prf": "hmac-sha256", + "salt": "ae3cd4e7013836a3df6bd7241b12db061dbe2c6785853cce422d148a624ce0bd" + }, + "mac": "517ead924a9d0dc3124507e3393d175ce3ff7c1e96529c6c555ce9e51205e9b2" + }, + "id": "3198bc9c-6672-5ab3-d995-4942343ae5b6", + "version": 3 +} +``` + +**Hatua za kati**: + +`Ufunguo uliotolewa`: `f06d69cdc7da0faffb1008270bca38f5e31891a3a773950e6d0fea48a7188551` +`Mwili wa MAC`: `e31891a3a773950e6d0fea48a71885515318b4d5bcd28de64ee5559e671353e16f075ecae9f99c7a79a38af5f869aa46` +`MAC`: `517ead924a9d0dc3124507e3393d175ce3ff7c1e96529c6c555ce9e51205e9b2` +`Ufunguo wa kificho`: `f06d69cdc7da0faffb1008270bca38f5` + +### Scrypt {#scrypt} + +Vekta ya majaribio inayotumia AES-128-CTR na Scrypt: + +```json +{ + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "740770fce12ce862af21264dab25f1da" + }, + "ciphertext": "dd8a1132cf57db67c038c6763afe2cbe6ea1949a86abc5843f8ca656ebbb1ea2", + "kdf": "scrypt", + "kdfparams": { + "dklen": 32, + "n": 262144, + "p": 1, + "r": 8, + "salt": "25710c2ccd7c610b24d068af83b959b7a0e5f40641f0c82daeb1345766191034" + }, + "mac": "337aeb86505d2d0bb620effe57f18381377d67d76dac1090626aa5cd20886a7c" + }, + "id": "3198bc9c-6672-5ab3-d995-4942343ae5b6", + "version": 3 +} +``` + +**Hatua za kati**: + +`Ufunguo uliotolewa`: `7446f59ecc301d2d79bc3302650d8a5cedc185ccbb4bf3ca1ebd2c163eaa6c2d` +`Mwili wa MAC`: `edc185ccbb4bf3ca1ebd2c163eaa6c2ddd8a1132cf57db67c038c6763afe2cbe6ea1949a86abc5843f8ca656ebbb1ea2` +`MAC`: `337aeb86505d2d0bb620effe57f18381377d67d76dac1090626aa5cd20886a7c` +`Ufunguo wa kificho`: `7446f59ecc301d2d79bc3302650d8a5c` + +## Mabadiliko kutoka Toleo la 1 {#alterations-from-v2} + +Toleo hili linarekebisha kutofautiana kadhaa na toleo la 1 lililochapishwa [hapa](https://github.com/ethereum/homestead-guide/blob/master/old-docs-for-reference/go-ethereum-wiki.rst/Passphrase-protected-key-store-spec.rst). Kwa ufupi haya ni: + +- Matumizi ya herufi kubwa hayana msingi na hayana msimamo (scrypt herufi ndogo, Kdf mchanganyiko, MAC herufi kubwa). +- Anwani sio ya lazima na inahatarisha faragha. +- `Chumvi` kimsingi ni kigezo cha kitendakazi cha kupata ufunguo na inastahili kuhusishwa nacho, sio na kripto kwa ujumla. +- _SaltLen_ sio ya lazima (ipate tu kutoka kwa Chumvi). +- Kitendakazi cha kupata ufunguo kimetolewa, lakini algoriti ya kripto imebainishwa kwa ukali. +- `Toleo` kimsingi ni nambari lakini ni mfuatano (utoaji toleo uliopangwa ungewezekana na mfuatano, lakini unaweza kuzingatiwa kuwa nje ya wigo wa umbizo la faili la usanidi linalobadilika mara chache). +- `KDF` na `cipher` ni dhana ndugu kinadharia lakini zimepangwa tofauti. +- `MAC` inakokotolewa kupitia kipande cha data kisichojali nafasi tupu(!) + +Mabadiliko yamefanywa kwenye umbizo ili kutoa faili ifuatayo, ambayo ni sawa kiutendaji na mfano uliotolewa kwenye ukurasa uliounganishwa hapo awali: + +```json +{ + "crypto": { + "cipher": "aes-128-cbc", + "ciphertext": "07533e172414bfa50e99dba4a0ce603f654ebfa1ff46277c3e0c577fdc87f6bb4e4fe16c5a94ce6ce14cfa069821ef9b", + "cipherparams": { + "iv": "16d67ba0ce5a339ff2f07951253e6ba8" + }, + "kdf": "scrypt", + "kdfparams": { + "dklen": 32, + "n": 262144, + "p": 1, + "r": 8, + "salt": "06870e5e6a24e183a5c807bd1c43afd86d573f7db303ff4853d135cd0fd3fe91" + }, + "mac": "8ccded24da2e99a11d48cda146f9cc8213eb423e2ea0d8427f41c3be414424dd", + "version": 1 + }, + "id": "0498f19a-59db-4d54-ac95-33901b4f1870", + "version": 2 +} +``` + +## Mabadiliko kutoka Toleo la 2 {#alterations-from-v2} + +Toleo la 2 lilikuwa utekelezaji wa mapema wa C++ na idadi ya hitilafu. Mambo yote muhimu hayajabadilika kutoka humo. diff --git a/public/content/translations/sw/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/sw/developers/docs/design-and-ux/dex-design-best-practice/index.md new file mode 100644 index 00000000000..b02ac007df3 --- /dev/null +++ b/public/content/translations/sw/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -0,0 +1,220 @@ +--- +title: Mazoezi bora ya ubunifu wa Mabadilishano yaliyogatuliwa (DEX) +description: Mwongozo unaoelezea maamuzi ya UX/UI kwa ajili ya kubadilishana tokeni. +lang: sw +--- + +Tangu kuzinduliwa kwa Uniswap mnamo 2018, kumekuwa na mamia ya mabadilishano yaliyogatuliwa yaliyozinduliwa katika makumi ya minyororo tofauti. +Mengi ya haya yalileta vipengele vipya au kuongeza mabadiliko yao, lakini kiolesura kimebaki sawa kwa ujumla. + +Sababu moja ya hii ni [Sheria ya Jakob](https://lawsofux.com/jakobs-law/): + +> Watumiaji hutumia muda wao mwingi kwenye tovuti zingine. Hii inamaanisha kuwa watumiaji wanapendelea tovuti yako ifanye kazi kwa njia sawa na tovuti zingine zote ambazo tayari wanazijua. + +Shukrani kwa wavumbuzi wa awali kama Uniswap, Pancakeswap, na Sushiswap, watumiaji wa DeFi wana wazo la pamoja la jinsi DEX inavyoonekana. +Kwa sababu hii, kitu kama “mazoezi bora” sasa kinaibuka. Tunaona maamuzi zaidi na zaidi ya ubunifu yakisanifishwa katika tovuti zote. Unaweza kuona mabadiliko ya DEXes kama mfano mkubwa wa kuijaribu moja kwa moja. Vitu vilivyofanya kazi vilibaki, visivyofanya kazi, vilitupiliwa mbali. Bado kuna nafasi ya mtindo wa kipekee, lakini kuna viwango fulani ambavyo DEX inapaswa kuzingatia. + +Makala hii ni muhtasari wa: + +- nini cha kujumuisha +- jinsi ya kuifanya iweze kutumika iwezekanavyo +- njia kuu za kubinafsisha ubunifu + +Violezo vyote vya mfano vilitengenezwa mahususi kwa ajili ya makala hii, ingawa vyote vinatokana na miradi halisi. + +Seti ya Figma pia imejumuishwa chini - jisikie huru kuitumia na kuharakisha violezo vyako mwenyewe! + +## Muundo wa msingi wa DEX {#basic-anatomy-of-a-dex} + +Kwa ujumla, UI ina vipengele vitatu: + +1. Fomu kuu +2. Kitufe +3. Paneli ya maelezo + +![UI ya DEX ya kawaida, inayoonyesha vipengele vitatu vikuu](./1.png) + +## Tofauti {#variations} + +Hii itakuwa mada ya kawaida katika makala hii, lakini kuna njia mbalimbali tofauti ambazo vipengele hivi vinaweza kupangwa. “Paneli ya maelezo” inaweza kuwa: + +- Juu ya kitufe +- Chini ya kitufe +- Imefichwa kwenye paneli ya akodioni +- Na/au kwenye modal ya “hakikisho” + +Zingatia Modal ya “hakikisho” si ya lazima, lakini ikiwa unaonyesha maelezo machache sana kwenye UI kuu, inakuwa muhimu. + +## Muundo wa fomu kuu {#structure-of-the-main-form} + +Hili ndilo kisanduku ambapo unachagua tokeni unayotaka kubadilisha. Sehemu hiyo ina sehemu ya kuingiza data na kitufe kidogo mfululizo. + +Kwa kawaida DEX huonyesha maelezo ya ziada katika safu moja juu na safu moja chini, ingawa hii inaweza kusanidiwa tofauti. + +![Safu ya kuingiza, yenye safu ya maelezo juu na chini](./2.png) + +## Tofauti {#variations2} + +Tofauti mbili za UI zimeonyeshwa hapa; moja bila mipaka yoyote, na kutengeneza ubunifu ulio wazi sana, na moja ambapo safu ya kuingiza ina mpaka, na kutengeneza mwelekeo kwenye kipengele hicho. + +![Tofauti mbili za UI za fomu kuu](./3.png) + +Muundo huu wa msingi huruhusu **maelezo manne muhimu** kuonyeshwa katika ubunifu: moja katika kila kona. Ikiwa kuna safu moja tu ya juu/chini, basi kuna nafasi mbili tu. + +Wakati wa mabadiliko ya DeFi, mambo mengi tofauti yamejumuishwa hapa. + +## Maelezo muhimu ya kujumuisha {#key-info-to-include} + +- Salio katika mkoba +- Kitufe cha Max +- Thamani sawa ya Fiat +- Athari ya bei kwenye kiasi “kilichopokelewa” + +Katika siku za mwanzo za DeFi, thamani sawa ya fiat mara nyingi ilikuwa haipo. Ikiwa unaunda mradi wa aina yoyote wa Web3, ni muhimu thamani sawa ya fiat ionyeshwe. Watumiaji bado wanafikiri kulingana na sarafu za ndani, kwa hivyo ili kuendana na mifumo ya akili ya ulimwengu halisi, hii inapaswa kujumuishwa. + +Kwenye sehemu ya pili (ile unayochagua tokeni unayobadilisha) unaweza pia kujumuisha athari ya bei karibu na kiasi cha sarafu ya fiat, kwa kukokotoa tofauti kati ya kiasi cha kuingiza na kiasi kinachokadiriwa cha kutoa. Haya ni maelezo muhimu sana ya kujumuisha. + +Vitufe vya asilimia (k.m., 25%, 50%, 75%) vinaweza kuwa kipengele muhimu, lakini vinachukua nafasi zaidi, huongeza wito zaidi wa kuchukua hatua, na kuongeza mzigo zaidi wa kiakili. Sawa na vitelezi vya asilimia. Baadhi ya maamuzi haya ya UI yatategemea chapa yako na aina ya mtumiaji wako. + +Maelezo ya ziada yanaweza kuonyeshwa chini ya fomu kuu. Kwa kuwa aina hii ya maelezo ni kwa ajili ya watumiaji wa kitaalamu, inaleta maana ama: + +- kuweka iwe ndogo iwezekanavyo, au; +- kuificha kwenye paneli ya akodioni + +![Maelezo yaliyoonyeshwa kwenye pembe za fomu hiyo kuu](./4.png) + +## Maelezo ya ziada ya kujumuisha {#extra-info-to-include} + +- Bei ya tokeni +- Slippage +- Kiwango cha chini kilichopokelewa +- Matokeo yanayotarajiwa +- Athari ya bei +- Makadirio ya gharama ya gesi +- Ada zingine +- Uelekezaji wa agizo + +Kwa ubishi, baadhi ya maelezo haya yanaweza kuwa ya hiari. + +Uelekezaji wa agizo unavutia, lakini haileti tofauti kubwa kwa watumiaji wengi. + +Baadhi ya maelezo mengine ni kurudia tu jambo lile lile kwa njia tofauti. Kwa mfano “kiwango cha chini kilichopokelewa” na “slippage” ni pande mbili za sarafu moja. Ikiwa umeweka slippage kuwa 1%, basi kiwango cha chini unachoweza kutarajia kupokea = matokeo yanayotarajiwa-1%. Baadhi ya UI zitaonyesha kiasi kinachotarajiwa, kiasi cha chini, na slippage… Ambayo ni muhimu lakini labda ni kuzidisha. + +Watumiaji wengi wataacha slippage chaguo-msingi hata hivyo. + +“Athari ya bei” mara nyingi huonyeshwa kwenye mabano karibu na thamani sawa ya fiat katika sehemu ya “kwa”. Haya ni maelezo mazuri ya UX ya kuongeza, lakini ikiwa yameonyeshwa hapa, je, kweli yanahitaji kuonyeshwa tena hapa chini? Na kisha tena kwenye skrini ya hakikisho? + +Watumiaji wengi (hasa wale wanaobadilisha kiasi kidogo) hawatajali kuhusu maelezo haya; wataingiza tu nambari na kubonyeza badilisha. + +![Baadhi ya maelezo yanaonyesha kitu kile kile](./5.png) + +Ni maelezo gani hasa yanaonyeshwa yatategemea hadhira yako na hisia gani unataka programu iwe nayo. + +Ikiwa utajumuisha uvumilivu wa slippage katika paneli ya maelezo, unapaswa pia kuifanya iweze kuhaririwa moja kwa moja kutoka hapa. Huu ni mfano mzuri wa “kiongeza kasi”; mbinu nadhifu ya UX inayoweza kuharakisha mtiririko wa watumiaji wenye uzoefu, bila kuathiri utumiaji wa jumla wa programu. + +![Slippage inaweza kudhibitiwa kutoka kwa paneli ya maelezo](./6.png) + +Ni wazo zuri kufikiria kwa makini si tu kuhusu taarifa moja maalum kwenye skrini moja, bali kuhusu mtiririko mzima kupitia: +Kuingiza nambari katika Fomu Kuu → Kuchanganua Maelezo → Kubofya hadi kwenye Skrini ya Hakikisho (ikiwa una skrini ya hakikisho). +Je, paneli ya maelezo inapaswa kuonekana wakati wote, au mtumiaji anahitaji kubofya ili kuipanua? +Je, unapaswa kuongeza ugumu kwa kuongeza skrini ya hakikisho? Hii inamlazimu mtumiaji kupunguza kasi na kufikiria biashara yake, ambayo inaweza kuwa muhimu. Lakini je, wanataka kuona maelezo yale yale tena? Ni nini muhimu zaidi kwao katika hatua hii? + +## Chaguo za ubunifu {#design-options} + +Kama ilivyotajwa, mengi ya haya yanategemea mtindo wako binafsi +Mtumiaji wako ni nani? +Chapa yako ni ipi? +Je, unataka kiolesura cha “kitaalamu” kinachoonyesha kila undani, au unataka kuwa na muonekano mdogo? +Hata kama unawalenga watumiaji wa kitaalamu wanaotaka maelezo yote iwezekanavyo, bado unapaswa kukumbuka maneno ya busara ya Alan Cooper: + +> Haijalishi kiolesura chako ni kizuri kiasi gani, haijalishi ni cha kuvutia kiasi gani, ingekuwa bora kama kingekuwa kidogo. + +### Muundo {#structure} + +- tokeni upande wa kushoto, au tokeni upande wa kulia +- Safu 2 au 3 +- maelezo juu au chini ya kitufe +- maelezo yamepanuliwa, yamepunguzwa, au hayaonyeshwi + +### Mtindo wa sehemu {#component-style} + +- tupu +- yenye mpaka +- iliyojazwa + +Kwa mtazamo safi wa UX, mtindo wa UI ni muhimu kidogo kuliko unavyofikiria. Mitindo ya kuona huja na kuondoka kwa mzunguko, na upendeleo mwingi ni wa kibinafsi. + +Njia rahisi zaidi ya kupata hisia ya hili - na kufikiria juu ya usanidi mbalimbali tofauti - ni kuangalia baadhi ya mifano na kisha kufanya majaribio mwenyewe. + +Seti ya Figma iliyojumuishwa ina sehemu tupu, zenye mpaka na zilizojazwa. + +Angalia mifano ifuatayo ili kuona njia tofauti unazoweza kuweka yote pamoja: + +![safu 3 katika mtindo uliojazwa](./7.png) + +![safu 3 katika mtindo wenye mpaka](./8.png) + +![safu 2 katika mtindo tupu](./9.png) + +![safu 3 katika mtindo wenye mpaka, na paneli ya maelezo](./10.png) + +![safu 3 na safu ya kuingiza katika mtindo wenye mpaka](./11.png) + +![safu 2 katika mtindo uliojazwa](./12.png) + +## Lakini tokeni inapaswa kwenda upande gani? {#but-which-side-should-the-token-go-on} + +Jambo la msingi ni kwamba labda haileti tofauti kubwa kwa utumiaji. Hata hivyo, kuna mambo machache ya kuzingatia, ambayo yanaweza kukushawishi kwa njia moja au nyingine. + +Imekuwa ya kuvutia kiasi kuona mtindo ukibadilika na wakati. Hapo awali Uniswap ilikuwa na tokeni upande wa kushoto, lakini tangu wakati huo imeiweka upande wa kulia. Sushiswap pia ilifanya mabadiliko haya wakati wa uboreshaji wa ubunifu. Itifaki nyingi, lakini si zote, zimefuata mkondo. + +Kawaida ya kifedha kwa jadi huweka alama ya sarafu kabla ya nambari, k.m., $50, €50, £50, lakini sisi _tunasema_ dola 50, Euro 50, pauni 50. + +Kwa mtumiaji wa jumla - hasa mtu anayesoma kutoka kushoto kwenda kulia, juu hadi chini - tokeni upande wa kulia labda huhisi asili zaidi. + +![UI yenye tokeni upande wa kushoto](./13.png) + +Kuweka tokeni upande wa kushoto na nambari zote upande wa kulia huonekana kuwa na ulinganifu wa kupendeza, ambayo ni faida, lakini kuna hasara nyingine kwa mpangilio huu. + +Sheria ya ukaribu inasema kuwa vitu vilivyo karibu pamoja huonekana kama vinahusiana. Kwa hiyo, tunataka kuweka vitu vinavyohusiana karibu na kila kimoja. Salio la tokeni linahusiana moja kwa moja na tokeni yenyewe, na litabadilika kila tokeni mpya inapochaguliwa. Kwa hivyo inaleta maana zaidi kidogo kwa salio la tokeni kuwa karibu na kitufe cha kuchagua tokeni. Inaweza kuhamishwa chini ya tokeni, lakini hiyo inavunja ulinganifu wa mpangilio. + +Hatimaye, kuna faida na hasara kwa chaguo zote mbili, lakini inavutia jinsi mwelekeo unavyoonekana kuwa kuelekea tokeni upande wa kulia. + +## Tabia ya kitufe {#button-behavior} + +Usiwe na kitufe tofauti cha Kuidhinisha. Pia usiwe na bofyo tofauti la Kuidhinisha. Mtumiaji anataka Kubadilisha, kwa hivyo sema tu “badilisha” kwenye kitufe na uanzishe uidhinishaji kama hatua ya kwanza. Modal inaweza kuonyesha maendeleo kwa hatua, au arifa rahisi ya “tx 1 kati ya 2 - inaidhinisha”. + +![UI yenye vitufe tofauti vya kuidhinisha na kubadilisha](./14.png) + +![UI yenye kitufe kimoja kinachosema idhinisha](./15.png) + +### Kitufe kama msaada wa kimuktadha {#button-as-contextual-help} + +Kitufe kinaweza kufanya kazi mara mbili kama arifa! + +Huu kwa kweli ni muundo wa ubunifu usio wa kawaida nje ya Web3, lakini umekuwa wa kawaida ndani yake. Huu ni uvumbuzi mzuri kwani unaokoa nafasi, na kuweka umakini. + +Ikiwa kitendo kikuu - KUBADILISHA - hakipatikani kwa sababu ya hitilafu, sababu inaweza kuelezewa kwa kutumia kitufe, k.m.: + +- badilisha mtandao +- unganisha mkoba +- hitilafu mbalimbali + +Kitufe pia kinaweza **kupangwa kwa kitendo** kinachohitaji kufanywa. Kwa mfano, ikiwa mtumiaji hawezi kubadilisha kwa sababu yuko kwenye mtandao usio sahihi, kitufe kinapaswa kusema “badilisha hadi Ethereum”, na mtumiaji anapobofya kitufe, kinapaswa kubadilisha mtandao hadi Ethereum. Hii inaharakisha mtiririko wa mtumiaji kwa kiasi kikubwa. + +![Vitendo muhimu vinavyoanzishwa kutoka kwa CTA kuu](./16.png) + +![Ujumbe wa hitilafu umeonyeshwa ndani ya CTA kuu](./17.png) + +## Jenga yako mwenyewe na faili hii ya figma {#build-your-own-with-this-figma-file} + +Shukrani kwa kazi ngumu ya itifaki nyingi, ubunifu wa DEX umeboreka sana. Tunajua ni maelezo gani mtumiaji anahitaji, jinsi tunapaswa kuyaonyesha, na jinsi ya kufanya mtiririko uwe laini iwezekanavyo. +Tunatumahi makala hii inatoa muhtasari thabiti wa kanuni za UX. + +Ikiwa unataka kujaribu, tafadhali jisikie huru kutumia seti ya violezo vya Figma. Imewekwa rahisi iwezekanavyo, lakini ina unyumbufu wa kutosha kujenga muundo wa msingi kwa njia mbalimbali. + +[Seti ya violezo vya Figma](https://www.figma.com/community/file/1393606680816807382/dex-wireframes-kit) + +DeFi itaendelea kubadilika, na daima kuna nafasi ya kuboresha. + +Kila la kheri! diff --git a/public/content/translations/sw/developers/docs/design-and-ux/heuristics-for-web3/index.md b/public/content/translations/sw/developers/docs/design-and-ux/heuristics-for-web3/index.md new file mode 100644 index 00000000000..063289002a5 --- /dev/null +++ b/public/content/translations/sw/developers/docs/design-and-ux/heuristics-for-web3/index.md @@ -0,0 +1,138 @@ +--- +title: Miongozo 7 ya usanifu wa kiolesura cha Web3 +description: Kanuni za kuboresha utumiaji wa Web3 +lang: sw +--- + +Miongozo ya utumiaji ni "kanuni za jumla" ambazo unaweza kutumia kupima utumiaji wa tovuti yako. +Miongozo 7 hapa imeundwa mahususi kwa Web3 na inapaswa kutumiwa pamoja na [kanuni 10 za jumla za usanifu wa mwingiliano](https://www.nngroup.com/articles/ten-usability-heuristics/) za Jakob Nielsen. + +## Miongozo saba ya utumiaji kwa web3 {#seven-usability-heuristics-for-web3} + +1. Maoni hufuata kitendo +2. Usalama na uaminifu +3. Taarifa muhimu zaidi iko wazi +4. Istilahi zinazoeleweka +5. Vitendo ni vifupi iwezekanavyo +6. Miunganisho ya mtandao inaonekana na ni rahisi kubadilika +7. Udhibiti kutoka kwenye programu, sio kwenye mkoba + +## Ufafanuzi na mifano {#definitions-and-examples} + +### 1. Maoni hufuata kitendo {#feedback-follows-action} + +**Inapaswa kuwa dhahiri wakati kitu kimetokea, au kinatokea.** + +Watumiaji huamua hatua zao zinazofuata kulingana na matokeo ya hatua zao za awali. Kwa hivyo ni muhimu wabaki wanafahamu kuhusu hali ya mfumo. Hii ni muhimu hasa katika Web3 kwani miamala wakati mwingine inaweza kuchukua muda mfupi kuidhinishwa kwenye mnyororo wa bloku. Ikiwa hakuna maoni yanayowafahamisha wasubiri, watumiaji hawana uhakika kama kuna chochote kimetokea. + +**Vidokezo:** + +- Mfahamishe mtumiaji kupitia ujumbe, arifa, na tahadhari nyingine. +- Wasiliana nyakati za kusubiri kwa uwazi. +- Ikiwa kitendo kitachukua zaidi ya sekunde chache, mhakikishie mtumiaji kwa kipima muda au uhuishaji ili kumfanya ahisi kama kuna kitu kinatokea. +- Ikiwa kuna hatua nyingi katika mchakato, onyesha kila hatua. + +**Mfano:** +Kuonyesha kila hatua inayohusika katika muamala huwasaidia watumiaji kujua wako wapi katika mchakato. Aikoni zinazofaa humjulisha mtumiaji hali ya matendo yake. + +![Kumjulisha mtumiaji kuhusu kila hatua wakati wa kubadilisha tokeni](./Image1.png) + +### 2. Usalama na uaminifu vimejengewa ndani {#security-and-trust-are-backed-in} + +Usalama unapaswa kupewa kipaumbele, na hili linapaswa kusisitizwa kwa mtumiaji. +Watu wanajali sana kuhusu data zao. Usalama mara nyingi huwa ni jambo la msingi kwa watumiaji, kwa hivyo unapaswa kuzingatiwa katika ngazi zote za usanifu. Unapaswa daima kutafuta kujipatia uaminifu wa watumiaji wako, lakini jinsi unavyofanya hivi kunaweza kumaanisha mambo tofauti kwenye programu tofauti. Haipaswi kuwa wazo la baadaye, bali inapaswa kusanifiwa kwa makusudi kote. Jenga uaminifu katika uzoefu wote wa mtumiaji, ikijumuisha chaneli za kijamii na nyaraka, pamoja na UI ya mwisho. Mambo kama kiwango cha ugatuaji, hali ya multi-sig ya hazina, na iwapo timu imefichuliwa (doxxed), yote huathiri uaminifu wa watumiaji. + +**Vidokezo:** + +- Orodhesha ukaguzi wako kwa fahari +- Pata ukaguzi mwingi +- Tangaza vipengele vyovyote vya usalama ulivyosanifu +- Angazia hatari zinazowezekana, ikijumuisha miunganisho ya msingi +- Wasiliana kuhusu utata wa mikakati +- Zingatia masuala yasiyo ya UI ambayo yanaweza kuathiri mtazamo wa watumiaji wako kuhusu usalama + +**Mfano:** +Jumuisha ukaguzi wako kwenye sehemu ya futa, kwa ukubwa unaoonekana. + +![Ukaguzi uliorejelewa katika futa ya tovuti](./Image2.png) + +### 3. Taarifa muhimu zaidi iko wazi {#the-most-important-info-is-obvious} + +Kwa mifumo tata, onyesha tu data muhimu zaidi. Amua nini ni muhimu zaidi, na upe kipaumbele onyesho lake. +Taarifa nyingi mno ni mzigo na kwa kawaida watumiaji huegemea kwenye kipande kimoja cha taarifa wanapofanya maamuzi. Katika DeFi, hii pengine itakuwa APR kwenye programu za mavuno na LTV kwenye programu za kukopesha. + +**Vidokezo:** + +- Utafiti wa mtumiaji utafichua kipimo muhimu zaidi +- Fanya taarifa muhimu iwe kubwa, na maelezo mengine yawe madogo na yasiyoonekana sana +- Watu hawasomi, wanapitia kwa haraka; hakikisha usanifu wako unaweza kupitiwa kwa haraka + +**Mfano:** Tokeni kubwa zenye rangi kamili ni rahisi kupata wakati wa kupitia kwa haraka. APR ni kubwa na imeangaziwa kwa rangi ya lafudhi. + +![Tokeni na APR ni rahisi kupata](./Image3.png) + +### 4. Istilahi zilizo wazi {#clear-terminology} + +Istilahi inapaswa kueleweka na kuwa sahihi. +Lugha ya kitaalamu inaweza kuwa kizuizi kikubwa, kwa sababu inahitaji uundaji wa mtindo mpya kabisa wa kiakili. Watumiaji hawawezi kuhusisha usanifu na maneno, vishazi na dhana ambazo tayari wanazijua. Kila kitu kinaonekana kutatanisha na kigeni, na kuna mteremko mkali wa kujifunza kabla hata ya kujaribu kukitumia. Mtumiaji anaweza kuikaribia DeFi akitaka kuweka akiba ya pesa, na anachokipata ni: Uchimbaji, kilimo, kuweka hisa, utoaji, hongo, kuba, kabati, veTokens, uwekezaji, epoch, algorithm zilizogatuliwa, ukwasi unaomilikiwa na itifaki… +Jaribu kutumia istilahi rahisi zitakazoeleweka na kundi kubwa zaidi la watu. Usibuni istilahi mpya kabisa kwa ajili ya mradi wako tu. + +**Vidokezo:** + +- Tumia istilahi rahisi na thabiti +- Tumia lugha iliyopo kadri iwezekanavyo +- Usibuni istilahi zako mwenyewe +- Fuata kaida zinapojitokeza +- Waelimishe watumiaji kadri iwezekanavyo + +**Mfano:** +"Zawadi zako" ni istilahi inayoeleweka kwa mapana, isiyoegemea upande wowote; si neno jipya lililobuniwa kwa ajili ya mradi huu. Zawadi hizo zimeonyeshwa kwa dola za kimarekani (USD) ili kuendana na mifumo ya kiakili ya ulimwengu halisi, hata kama zawadi zenyewe ziko katika tokeni nyingine. + +![Zawadi za tokeni, zikionyeshwa kwa Dola za Marekani ](./Image4.png) + +### 5. Vitendo ni vifupi iwezekanavyo {#actions-are-as-short-as-possible} + +Harakisha mwingiliano wa mtumiaji kwa kuweka pamoja vitendo vidogo. +Hii inaweza kufanywa katika kiwango cha mkataba-erevu, na pia katika UI. Mtumiaji hapaswi kuhama kutoka sehemu moja ya mfumo kwenda nyingine - au kuondoka kabisa kwenye mfumo - ili kukamilisha kitendo cha kawaida. + +**Vidokezo:** + +- Unganisha "Idhinisha" na vitendo vingine inapowezekana +- Kusanya hatua za kusaini karibu iwezekanavyo + +**Mfano:** Kuunganisha "ongeza ukwasi" na "weka hisa" ni mfano rahisi wa kiongeza kasi kinachookoa mtumiaji muda na gesi. + +![Modali inayoonyesha swichi ya kuunganisha vitendo vya kuweka na kuweka hisa](./Image5.png) + +### 6. Miunganisho ya mtandao inaonekana na ni rahisi kubadilika {#network-connections-are-visible-and-flexible} + +Mfahamishe mtumiaji kuhusu mtandao gani ameunganishwa nao, na toa njia za mkato zilizo wazi za kubadilisha mtandao. +Hii ni muhimu hasa kwenye programu za minyororo mingi. Kazi kuu za programu bado zinapaswa kuonekana ukiwa haujaunganishwa au umeunganishwa kwenye mtandao usiokubalika. + +**Vidokezo:** + +- Onyesha sehemu kubwa ya programu iwezekanavyo ukiwa haujaunganishwa +- Onyesha ni mtandao gani mtumiaji ameunganishwa nao kwa sasa +- Usimlazimishe mtumiaji kwenda kwenye mkoba ili kubadilisha mtandao +- Ikiwa programu inamtaka mtumiaji kubadili mtandao, anzisha kitendo kutoka kwa mwito mkuu wa kuchukua hatua +- Ikiwa programu ina masoko au kuba za mitandao mingi, eleza wazi ni kundi gani mtumiaji analitazama kwa sasa + +**Mfano:** Muonyeshe mtumiaji ni mtandao gani ameunganishwa nao, na mruhusu kuubadilisha, katika upau wa programu. + +![Kitufe cha kushuka kinachoonyesha mtandao uliounganishwa](./Image6.png) + +### 7. Udhibiti kutoka kwenye programu, sio kwenye mkoba {#control-from-the-app-not-the-wallet} + +UI inapaswa kumwambia mtumiaji kila kitu anachohitaji kujua na kumpa udhibiti wa kila kitu anachohitaji kufanya. +Katika Web3, kuna vitendo unavyochukua katika UI, na vitendo unavyochukua kwenye mkoba. Kwa ujumla, unaanzisha kitendo katika UI, na kisha unakithibitisha kwenye mkoba. Watumiaji wanaweza kujisikia vibaya ikiwa nyuzi hizi mbili hazijaunganishwa kwa makini. + +**Vidokezo:** + +- Wasiliana hali ya mfumo kupitia maoni katika UI +- Weka rekodi ya historia yao +- Toa viungo vya kwenda kwenye vichunguzi vya bloku kwa ajili ya miamala ya zamani +- Toa njia za mkato za kubadilisha mitandao. + +**Mfano:** Kontena isiyoonekana sana humuonyesha mtumiaji tokeni husika alizonazo kwenye mkoba wake, na CTA kuu hutoa njia ya mkato ya kubadilisha mtandao. + +![CTA kuu inamshawishi mtumiaji kubadili mtandao](./Image7.png) diff --git a/public/content/translations/sw/developers/docs/design-and-ux/index.md b/public/content/translations/sw/developers/docs/design-and-ux/index.md new file mode 100644 index 00000000000..512968600a9 --- /dev/null +++ b/public/content/translations/sw/developers/docs/design-and-ux/index.md @@ -0,0 +1,86 @@ +--- +title: Ubuni na UX katika web3 +description: Utangulizi wa ubuni wa UX na utafiti katika nafasi ya web3 na Ethereum +lang: sw +--- + +Je, wewe ni mgeni katika kubuni na Ethereum? Hapa ndipo mahali pako sahihi. Jumuiya ya Ethereum imeandika rasilimali za kukutambulisha kwa ubuni wa web3 na misingi ya utafiti. Utajifunza kuhusu dhana za msingi ambazo zinaweza kutofautiana na ubuni mwingine wa programu ambao unaufahamu. + +Je, unahitaji uelewa wa kimsingi zaidi wa web3 kwanza? Angalia [**Kituo cha Kujifunza**](/learn/) + +## Anza na utafiti wa watumiaji {#start-with-user-research} + +Ubuni wenye ufanisi huenda zaidi ya kuunda violesura vya watumiaji vinavyovutia kwa mwonekano. Inahusisha kupata uelewa wa kina wa mahitaji ya mtumiaji, malengo, na mambo yanayochochea. Kwa hivyo, tunapendekeza sana kwamba wabunifu wote wafuate mchakato wa ubuni, kama vile [**mchakato wa almasi mbili**](https://en.wikipedia.org/wiki/Double_Diamond_\(design_process_model\)), ili kuhakikisha kuwa kazi yao ni ya makusudi na imepangwa. + +- [Web3 inahitaji Watafiti na Wabunifu wengi zaidi wa UX](https://blog.akasha.org/akasha-conversations-9-web3-needs-more-ux-researchers-and-designers) - Muhtasari wa ukomavu wa sasa wa ubuni +- [Mwongozo rahisi wa Utafiti wa UX katika web3](https://uxplanet.org/a-complete-guide-to-ux-research-for-web-3-0-products-d6bead20ebb1) - Mwongozo rahisi wa jinsi ya kufanya utafiti +- [Jinsi ya Kukaribia Maamuzi ya UX katika Web3](https://archive.devcon.org/archive/watch/6/data-empathy-how-to-approach-ux-decisions-in-web3/) - Muhtasari mfupi wa utafiti wa kiasi na wa ubora na tofauti kati ya hizo mbili (video, dakika 6) +- [Kuwa mtafiti wa UX katika web3](https://medium.com/@georgia.rakusen/what-its-like-being-a-user-researcher-in-web3-6a4bcc096849) - Mtazamo binafsi kuhusu jinsi ilivyo kuwa mtafiti wa UX katika web3 + +## Uchunguzi wa utafiti katika web3 {#research-in-web3} + +Hii ni orodha iliyoratibiwa ya utafiti wa watumiaji uliofanywa katika web3 ambao unaweza kusaidia katika maamuzi ya ubuni na bidhaa au kutumika kama msukumo wa kufanya utafiti wako mwenyewe. + +| Eneo la kuzingatia | Jina | +| :---------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Ujumuishaji wa Kripto | [The Reown Pulse 2024: Hisia za Watumiaji wa Kripto na Matumizi](https://reown.com/blog/unveiling-walletconnects-consumer-crypto-report) | +| Ujumuishaji wa Kripto | [CRADL: UX katika Sarafu ya kidigitali](https://docs.google.com/presentation/d/1s2OPSH5sMJzxRYaJSSRTe8W2iIoZx0PseIV-WeZWD1s/edit?usp=sharing) | +| Ujumuishaji wa Kripto | [CRADL: Ujumuishaji katika Sarafu ya kidigitali](https://docs.google.com/presentation/d/1R9nFuzA-R6SxaGCKhoMbE4Vxe0JxQSTiHXind3LVq_w/edit?usp=sharing) | +| Ujumuishaji wa Kripto | [Ripoti ya UX ya Bitcoin](https://github.com/patestevao/BitcoinUX-report/blob/master/report.md) | +| Ujumuishaji wa Kripto | [ConSensys: Hali ya mtazamo wa Web3 duniani kote 2023](https://consensys.io/insight-report/web3-and-crypto-global-survey-2023) | +| Ujumuishaji wa Kripto | [NEAR: Kuharakisha safari kuelekea kukubalika](https://drive.google.com/file/d/1VuaQP4QSaQxR5ddQKTMGI0b0rWdP7uGn/view) | +| Kusimamisha | [OpenUX: UX ya Mwendeshaji wa Nodi ya Rocket Pool](https://storage.googleapis.com/rocketpool/RocketPool-NodeOperator-UX-Report-Jan-2024.pdf) | +| Kusimamisha | [Kusimamisha: Mwenendo muhimu, mambo ya kujifunza, na utabiri - Msimamishaji wa Eth](https://lookerstudio.google.com/u/0/reporting/cafcee00-e1af-4148-bae8-442a88ac75fa/page/p_ja2srdhh2c?s=hmbTWDh9hJo) | +| Kusimamisha | [Kusimamisha kwa Programu Nyingi](https://github.com/threshold-network/UX-User-Research/blob/main/Multi-App%20Staking%20\(MAS\)/iterative-user-study/MAS%20Iterative%20User%20Study.pdf) | +| DAO | [Sasisho la Utafiti wa DAO 2022: Wajenzi wa DAO Wanahitaji Nini?](https://blog.aragon.org/2022-dao-research-update/) | +| DeFi | [Mabwawa ya Huduma](https://github.com/threshold-network/UX-User-Research/tree/main/Keep%20Coverage%20Pool) | +| DeFi | [ConSensys: Ripoti ya Utafiti wa Watumiaji wa DeFi 2022](https://cdn2.hubspot.net/hubfs/4795067/ConsenSys%20Codefi-Defi%20User%20ResearchReport.pdf) | +| Metaverse | [Metaverse: Ripoti ya Utafiti wa Watumiaji](https://www.politico.com/f/?id=00000187-7685-d820-a7e7-7e85d1420000) | +| Metaverse | [Kwenda Safari: Kuwatafiti Watumiaji katika Metaverse](https://archive.devcon.org/archive/watch/6/going-on-safari-researching-users-in-the-metaverse/?tab=YouTube) (video, dakika 27) | + +## Ubuni wa web3 {#design-for-web3} + +- [Kitabu cha Mwongozo wa Ubuni wa UX wa Web3](https://web3ux.design/) - Mwongozo wa vitendo wa kubuni programu za Web3 +- [Kanuni za Ubuni wa Web3](https://medium.com/@lyricalpolymath/web3-design-principles-f21db2f240c1) - Mfumo wa kanuni za UX kwa mfumo mtawanyo wa kimamlaka unaotegemea mnyororo wa bloku +- [Kanuni za Ubuni wa Mnyororo wa bloku](https://medium.com/design-ibm/blockchain-design-principles-599c5c067b6e) - Masomo yaliyojifunza na timu ya ubuni wa mnyororo wa bloku katika IBM +- [Neueux.com](https://neueux.com/apps) - Maktaba ya UI ya mtiririko wa watumiaji yenye chaguo mbalimbali za kuchuja +- [Mgogoro wa Utumiaji wa Web3: Unachohitaji Kujua!](https://www.youtube.com/watch?v=oBSXT_6YDzg) - Mjadala wa jopo kuhusu changamoto za ujenzi wa miradi unaozingatia wasanidi programu (video, dakika 34) + +## Kuanza {#getting-started} + +- [Heuristiki za Web3](/developers/docs/design-and-ux/heuristics-for-web3/) - Heuristiki 7 za ubuni wa kiolesura cha Web3 +- [Mbinu Bora za Ubuni wa DEX](/developers/docs/design-and-ux/dex-design-best-practice/) - Mwongozo wa kubuni Exchange Zisizogatuliwa + +## Mifano ya Uchunguzi wa Ubuni wa Web3 {#design-case-studies} + +- [Deep Work Studio](https://www.deepwork.studio/case-studies) +- [Kuuza NFT kwenye OpenSea](https://builtformars.com/case-studies/opensea) +- [Uchambuzi wa UX wa mkoba jinsi mikoba inavyohitaji kubadilika](https://www.youtube.com/watch?v=oTpuxYj8JWI&ab_channel=ETHDenver) (video, dakika 20) + +## Zawadi za Ubuni {#bounties} + +- [Dework](https://app.dework.xyz/bounties) +- [Hackathons za Buildbox](https://app.buidlbox.io/) +- [Hackathons za ETHGlobal](https://ethglobal.com/) + +## DAO na jumuiya za ubuni {#design-daos-and-communities} + +Shiriki katika mashirika ya kitaalamu yanayoendeshwa na jamii au jiunge na vikundi vya ubuni kujadili mada na mienendo inayohusiana na ubuni na utafiti na wanachama wengine. + +- [Vectordao.com](https://vectordao.com/) +- [Deepwork.studio](https://www.deepwork.studio/) +- [We3.co](https://we3.co/) +- [Openux.xyz](https://openux.xyz/) + +## Mifumo ya Ubuni na rasilimali zingine za ubuni {#design-systems-and-resources} + +- [Ubuni wa Optimism](https://www.figma.com/@optimism) (Figma) +- [Mfumo wa Ubuni wa Ethereum.org](https://www.figma.com/@ethdotorg) (Figma) +- [Finity, mfumo wa ubuni kutoka Polygon](https://www.figma.com/community/file/1073921725197233598/finity-design-system) (Figma) +- [Mfumo wa Ubuni wa Kleros](https://www.figma.com/community/file/999852250110186964/kleros-design-system) (Figma) +- [Mfumo wa Ubuni wa Safe](https://www.figma.com/community/file/1337417127407098506/safe-design-system) (Figma) +- [Mfumo wa Ubuni wa ENS](https://thorin.ens.domains/) +- [Mfumo wa Ubuni wa Mirror](https://degen-xyz.vercel.app/) + +**Makala na miradi iliyoorodheshwa kwenye ukurasa huu siyo idhini rasmi**, na hutolewa kwa madhumuni ya habari pekee. +Tunaongeza viungo kwenye ukurasa huu kulingana na vigezo katika [sera yetu ya uorodheshaji](/contributing/design/adding-design-resources). Ikiwa ungependa tuongeze mradi/makala, hariri ukurasa huu kwenye [GitHub](https://github.com/ethereum/ethereum-org-website/blob/dev/public/content/developers/docs/design-and-ux/index.md). diff --git a/public/content/translations/sw/developers/docs/development-networks/index.md b/public/content/translations/sw/developers/docs/development-networks/index.md new file mode 100644 index 00000000000..7ad6f9c0b4d --- /dev/null +++ b/public/content/translations/sw/developers/docs/development-networks/index.md @@ -0,0 +1,71 @@ +--- +title: Mitandao ya Maendeleo +description: Muhtasari wa mitandao ya maendeleo na zana zinazopatikana kusaidia kujenga programu za Ethereum. +lang: sw +--- + +Unapounda programu ya Ethereum na mikataba-erevu, utataka kuiendesha kwenye mtandao wa ndani ili kuona jinsi inavyofanya kazi kabla ya kuipeleka. + +Sawa na jinsi unavyoweza kuendesha seva ya ndani kwenye kompyuta yako kwa ajili ya maendeleo ya wavuti, unaweza kutumia mtandao wa maendeleo kuunda mfano wa mnyororo wa bloku wa ndani ili kujaribu mfumo wako uliotawanywa. Mitandao hii ya maendeleo ya Ethereum hutoa vipengele vinavyoruhusu uradidi wa haraka zaidi kuliko testnet ya umma (kwa mfano, huhitaji kushughulika na kupata ETH kutoka kwenye bomba la testnet). + +## Mahitaji ya awali {#prerequisites} + +Unapaswa kuelewa [misingi ya mkusanyiko wa Ethereum](/developers/docs/ethereum-stack/) na [mitandao ya Ethereum](/developers/docs/networks/) kabla ya kuzama katika mitandao ya maendeleo. + +## Mtandao wa maendeleo ni nini? {#what-is-a-development-network} + +Mitandao ya maendeleo kimsingi ni wateja wa Ethereum (utekelezaji wa Ethereum) iliyoundwa mahususi kwa maendeleo ya ndani. + +**Kwa nini usiendeshe tu nodi ya kawaida ya Ethereum kwenye kompyuta yako?** + +Wewe _unaweza_ [kuendesha nodi](/developers/docs/nodes-and-clients/#running-your-own-node) lakini kwa kuwa mitandao ya maendeleo imeundwa kwa ajili ya maendeleo, mara nyingi huja na vipengele rahisi kama vile: + +- Kuweka data kwenye mnyororo wako wa bloku wa ndani kwa njia bainifu (k.m., akaunti zenye salio za ETH) +- Kuzalisha bloku papo hapo kwa kila muamala inaopokea, kwa utaratibu na bila kuchelewa +- Utendaji ulioboreshwa wa utatuzi na uwekaji kumbukumbu + +## Zana zinazopatikana {#available-projects} + +**Kumbuka**: [Mifumo mingi ya maendeleo](/developers/docs/frameworks/) hujumuisha mtandao wa maendeleo uliojengewa ndani. Tunapendekeza kuanza na mfumo ili [kuweka mazingira yako ya maendeleo ya ndani](/developers/local-environment/). + +### Mtandao wa Hardhat {#hardhat-network} + +Mtandao wa ndani wa Ethereum ulioundwa kwa ajili ya maendeleo. Inakuruhusu kupeleka mikataba yako, kuendesha majaribio yako na kutatua msimbo wako. + +Mtandao wa Hardhat huja ukiwa umejengewa ndani na Hardhat, mazingira ya maendeleo ya Ethereum kwa wataalamu. + +- [Tovuti](https://hardhat.org/) +- [GitHub](https://github.com/NomicFoundation/hardhat) + +### Minyororo Kioleza ya Ndani {#local-beacon-chains} + +Baadhi ya wateja wa makubaliano wana zana zilizojengewa ndani za kuanzisha minyororo kioleza ya ndani kwa madhumuni ya majaribio. Maagizo ya Lighthouse, Nimbus na Lodestar yanapatikana: + +- [Testnet ya ndani kwa kutumia Lodestar](https://chainsafe.github.io/lodestar/contribution/advanced-topics/setting-up-a-testnet#post-merge-local-testnet/) +- [Testnet ya ndani kwa kutumia Lighthouse](https://lighthouse-book.sigmaprime.io/setup.html#local-testnets) + +### Minyororo-Majaribio ya Umma ya Ethereum {#public-beacon-testchains} + +Pia kuna utekelezaji wa majaribio mawili ya umma yanayodumishwa ya Ethereum: Sepolia na Hoodi. Testnet inayopendekezwa yenye usaidizi wa muda mrefu ni Hoodi, ambayo mtu yeyote yuko huru kuthibitisha. Sepolia hutumia seti ya wathibitishaji wenye ruhusa, kumaanisha hakuna ufikiaji wa jumla kwa wathibitishaji wapya kwenye testnet hii. + +- [Launchpad ya Kusimamisha ya Hoodi](https://hoodi.launchpad.ethereum.org/) + +### Kifurushi cha Ethereum cha Kurtosis {#kurtosis} + +Kurtosis ni mfumo wa ujenzi wa mazingira ya majaribio ya makontena mengi ambayo huwawezesha wasanidi programu kuanzisha kwenye kompyuta zao mifano inayoweza kurudiwa ya mitandao ya mnyororo wa bloku. + +Kifurushi cha Ethereum cha Kurtosis kinaweza kutumika kuanzisha haraka testnet ya Ethereum inayoweza kugeuzwa, inayoweza kupanuka sana, na ya faragha juu ya Docker au Kubernetes. Kifurushi hiki kinasaidia wateja wote wakuu wa Safu ya Utekelezaji (EL) na Safu ya Makubaliano (CL). Kurtosis hushughulikia kwa urahisi ramani zote za bandari za ndani na miunganisho ya huduma kwa mtandao wakilishi utakaotumika katika uthibitishaji na mtiririko wa kazi wa majaribio unaohusiana na miundombinu ya msingi ya Ethereum. + +- [Kifurushi cha mtandao wa Ethereum](https://github.com/kurtosis-tech/ethereum-package) +- [Tovuti](https://www.kurtosis.com/) +- [GitHub](https://github.com/kurtosis-tech/kurtosis) +- [Nyaraka](https://docs.kurtosis.com/) + +## Masomo zaidi {#further-reading} + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ + +## Mada zinazohusiana {#related-topics} + +- [Mifumo ya uundaji](/developers/docs/frameworks/) +- [Weka mazingira ya maendeleo ya ndani](/developers/local-environment/) diff --git a/public/content/translations/sw/developers/docs/ethereum-stack/index.md b/public/content/translations/sw/developers/docs/ethereum-stack/index.md new file mode 100644 index 00000000000..08031be5c37 --- /dev/null +++ b/public/content/translations/sw/developers/docs/ethereum-stack/index.md @@ -0,0 +1,61 @@ +--- +title: Utangulizi wa mpororo wa Ethereum +description: Mapitio ya safu mbalimbali za mpororo wa Ethereum na jinsi zinavyofanya kazi pamoja. +lang: sw +--- + +Kama ilivyo kwa mpororo wowote wa programu, "mpororo kamili wa Ethereum" utatofautiana kutoka mradi hadi mradi kulingana na malengo yako. + +Hata hivyo, kuna vijenzi vya msingi vya Ethereum ambavyo husaidia kutoa muundo wa kiakili wa jinsi programu za kompyuta zinavyoingiliana na mnyororo wa bloku wa Ethereum. Kuelewa safu za mpororo kutakusaidia kuelewa njia tofauti ambazo Ethereum inaweza kuunganishwa katika miradi ya programu. + +## Safu ya 1: Mashine halisi ya Ethereum {#ethereum-virtual-machine} + +[Mashine halisi ya Ethereum (EVM)](/developers/docs/evm/) ni mazingira ya uendeshaji kwa mikataba-erevu kwenye Ethereum. Mikataba-erevu yote na mabadiliko ya hali kwenye mnyororo wa bloku wa Ethereum hutekelezwa na [miamala](/developers/docs/transactions/). EVM hushughulikia uchakataji wote wa miamala kwenye mtandao wa Ethereum. + +Kama ilivyo kwa mashine yoyote halisi, EVM huunda safu ya dhahania kati ya msimbo unaotekelezwa na mashine inayotekeleza (nodi ya Ethereum). Hivi sasa, EVM inaendeshwa kwenye maelfu ya nodi zilizosambazwa kote ulimwenguni. + +Kwa undani, EVM hutumia seti ya maagizo ya opcode kutekeleza kazi maalum. Hizi (140 za kipekee) opcodes huruhusu EVM kuwa [kamilifu-kwa-Turing](https://en.wikipedia.org/wiki/Turing_completeness), ambayo ina maana kwamba EVM inaweza kukokotoa karibu kila kitu, ikipewa rasilimali za kutosha. + +Kama msanidi programu wa dapp, huhitaji kujua mengi kuhusu EVM isipokuwa kwamba ipo na kwamba inawezesha programu zote kwenye Ethereum kwa uhakika bila muda wa kupumzika. + +## Safu ya 2: Mikataba-erevu {#smart-contracts} + +[Mikataba-erevu](/developers/docs/smart-contracts/) ni programu zinazoweza kutekelezwa ambazo huendeshwa kwenye mnyororo wa bloku wa Ethereum. + +Mikataba-erevu huandikwa kwa kutumia [lugha maalum za programu](/developers/docs/smart-contracts/languages/) ambazo hukusanywa kuwa bytecode ya EVM (maagizo ya mashine ya kiwango cha chini yanayoitwa opcodes). + +Sio tu kwamba mikataba-erevu hutumika kama maktaba za chanzo-wazi, kimsingi ni huduma za API zilizo wazi ambazo zinafanya kazi kila wakati na haziwezi kuzimwa. Mikataba-erevu hutoa kazi za umma ambazo watumiaji na programu ([dapps](/developers/docs/dapps/)) wanaweza kuingiliana nazo, bila kuhitaji ruhusa. Programu yoyote inaweza kuunganishwa na mikataba-erevu iliyotumwa ili kutunga utendakazi, kama vile kuongeza [milisho ya data](/developers/docs/oracles/) au kusaidia ubadilishanaji wa tokeni. Zaidi ya hayo, mtu yeyote anaweza kutuma mikataba-erevu mipya kwa Ethereum ili kuongeza utendakazi maalum ili kukidhi mahitaji ya programu yake. + +Kama msanidi programu wa dapp, utahitaji kuandika mikataba-erevu ikiwa tu unataka kuongeza utendakazi maalum kwenye mnyororo wa bloku wa Ethereum. Unaweza kugundua kuwa unaweza kufikia mahitaji mengi au yote ya mradi wako kwa kuunganisha tu na mikataba-erevu iliyopo, kwa mfano ikiwa unataka kusaidia malipo kwa stablecoins au kuwezesha ubadilishanaji wa tokeni uliogatuliwa. + +## Safu ya 3: Nodi za Ethereum {#ethereum-nodes} + +Ili programu iweze kuingiliana na mnyororo wa bloku wa Ethereum, ni lazima iunganishe kwenye [nodi ya Ethereum](/developers/docs/nodes-and-clients/). Kuunganisha kwenye nodi hukuruhusu kusoma data ya mnyororo wa bloku na/au kutuma miamala kwenye mtandao. + +Nodi za Ethereum ni kompyuta zinazoendesha programu - mteja wa Ethereum. Mteja ni utekelezaji wa Ethereum unaothibitisha miamala yote katika kila bloku, na kuufanya mtandao kuwa salama na data kuwa sahihi. **Nodi za Ethereum ndizo mnyororo wa bloku wa Ethereum**. Kwa pamoja huhifadhi hali ya mnyororo wa bloku wa Ethereum na kufikia makubaliano kuhusu miamala ya kubadilisha hali ya mnyororo wa bloku. + +Kwa kuunganisha programu yako kwenye nodi ya Ethereum (kupitia [API ya JSON-RPC](/developers/docs/apis/json-rpc/)), programu yako inaweza kusoma data kutoka kwenye mnyororo wa bloku (kama vile salio la akaunti ya mtumiaji) na pia kutangaza miamala mipya kwenye mtandao (kama vile kuhamisha ETH kati ya akaunti za watumiaji au kutekeleza kazi za mikataba-erevu). + +## Safu ya 4: API za Wateja wa Ethereum {#ethereum-client-apis} + +Maktaba nyingi za urahisi (zilizoundwa na kudumishwa na jumuiya ya chanzo-wazi ya Ethereum) huruhusu programu zako kuunganisha na kuwasiliana na mnyororo wa bloku wa Ethereum. + +Ikiwa programu yako inayomkabili mtumiaji ni programu ya wavuti, unaweza kuchagua `npm install` [API ya JavaScript](/developers/docs/apis/javascript/) moja kwa moja kwenye frontend yako. Au labda utachagua kutekeleza utendakazi huu upande wa seva, ukitumia [API](/developers/docs/programming-languages/python/) ya [Python](/developers/docs/programming-languages/python/) au [Java](/developers/docs/programming-languages/java/). + +Ingawa API hizi si sehemu ya lazima ya mpororo, zinaondoa ugumu mwingi wa kuingiliana moja kwa moja na nodi ya Ethereum. Pia hutoa kazi za matumizi (k.m., kubadilisha ETH kuwa Gwei) ili kama msanidi programu uweze kutumia muda mchache kushughulikia ugumu wa wateja wa Ethereum na muda mwingi zaidi kulenga utendakazi maalum wa programu yako. + +## Safu ya 5: Programu za mtumiaji wa mwisho {#end-user-applications} + +Katika safu ya juu ya mpororo kuna programu zinazomkabili mtumiaji. Hizi ndizo programu za kawaida unazotumia na kuunda leo: hasa programu za wavuti na za simu. + +Njia unayotengeneza violesura hivi vya watumiaji inabaki kimsingi bila kubadilika. Mara nyingi watumiaji hawatahitaji kujua programu wanayotumia imejengwa kwa kutumia mnyororo wa bloku. + +## Uko tayari kuchagua mpororo wako? {#ready-to-choose-your-stack} + +Angalia mwongozo wetu wa [kuweka mazingira ya usanidi wa ndani](/developers/local-environment/) kwa ajili ya programu yako ya Ethereum. + +## Masomo zaidi {#further-reading} + +- [Usanifu wa programu ya Web 3.0](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) - _Preethi Kasireddy_ + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ diff --git a/public/content/translations/sw/developers/docs/evm/index.md b/public/content/translations/sw/developers/docs/evm/index.md new file mode 100644 index 00000000000..55ae995b268 --- /dev/null +++ b/public/content/translations/sw/developers/docs/evm/index.md @@ -0,0 +1,88 @@ +--- +title: Mashine Halisi ya Ethereum (EVM) +description: Utangulizi wa mashine halisi ya Ethereum na jinsi inavyohusiana na serikali, miamala na mikataba mahiri. +lang: sw +--- + +Mashine halisi ya ethereum(EVM) ni mazingira ya mtandaoni yaliyotawanywa ambayo hutekeleza msimbo kwa uthabiti na kwa usalama katika nodi zote za Ethereum. Nodi huendesha EVM kutekeleza mkataba-erevu, kwa kutumia "[gesi](/developers/docs/gas/)" kupima juhudi za kikokotozi zinazohitajika kwa [shughuli](/developers/docs/evm/opcodes/), kuhakikisha ugawaji bora wa rasilimali na usalama wa mtandao. + +## Mahitaji ya awali {#prerequisites} + +Uelewa fulani wa msingi wa istilahi za kawaida katika sayansi ya kompyuta kama vile [baiti](https://wikipedia.org/wiki/Byte), [kumbukumbu](https://wikipedia.org/wiki/Computer_memory), na [rundo](https://wikipedia.org/wiki/Stack_\(abstract_data_type\)) ni muhimu ili kuelewa EVM. Pia itasaidia kuwa na uelewa mzuri wa dhana za kriptografia/mnyororo wa bloku kama vile [kazi za hashi](https://wikipedia.org/wiki/Cryptographic_hash_function) na [Merkle tree](https://wikipedia.org/wiki/Merkle_tree). + +## Kutoka leja hadi mashine ya hali {#from-ledger-to-state-machine} + +Mfano wa “daftari lililosambazwa” mara nyingi hutumika kuelezea kiambajengo kama sarafu ya mtandao, ambazo zinawezesha sarafu isiyo na kituo kimoja kwa kutumia zana za msingi za usimbaji fiche. Daftari hilo linaweka rekodi za shughuli ambazo lazima zizingatie seti ya sheria zinazodhibiti ni nini mtu anaweza na hawezi kufanya ili kubadilisha daftari hilo. Kwa mfano, anwani ya sarafu ya mtandaoni haiwezi kutumia sarafu ya mtandaoni zaidi ya ile ambayo tayari imepokea. Sheria hizi ndizo msingi wa miamala yote kwenye sarafu mtandaoni na viambajengo vingine vingi. + +Ingawa Ethereum ina sarafu yake ya kidigitali ya asili (ether) inayofuata karibu sheria zilezile angavu, pia huwezesha kazi yenye nguvu zaidi: [mkataba-erevu](/developers/docs/smart-contracts/). Kwa kipengele hiki ngumu zaidi, mlinganisho wa kisasa zaidi unahitajika. Badala ya kuwa leja iliyosambazwa, Ethereum ni [mashine ya hali](https://wikipedia.org/wiki/Finite-state_machine) iliyosambazwa. Hali ya Ethereum ni muundo mkubwa wa data ambao hauhifadhi tu akaunti zote na salio, bali pia _hali ya mashine_, ambayo inaweza kubadilika kutoka bloku moja hadi nyingine kulingana na seti ya sheria zilizobainishwa awali, na ambayo inaweza kutekeleza msimbo wowote wa mashine. Sheria maalum za kubadilisha hali kutoka kizuizi hadi kizuizi zinafafanuliwa na EVM. + +![Mchoro unaoonyesha muundo wa EVM](./evm.png) +_Mchoro umechukuliwa kutoka [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Kazi ya mpito ya hali ya Ethereum {#the-ethereum-state-transition-function} + +EVM hufanya kama kazi ya hisabati ingekuwa: Kwa kuzingatia ingizo, hutoa matokeo ya kubaini. Kwa hivyo, inasaidia sana kuelezea Ethereum rasmi zaidi kama kuwa na **kazi ya mpito ya hali**: + +``` +Y(S, T)= S' +``` + +Kutokana na hali `(S)` ya zamani iliyo halali na seti mpya ya miamala halali `(T)`, kazi ya mpito ya hali ya Ethereum `Y(S, T)` hutoa hali mpya halali ya towe `S'` + +### Hali {#state} + +Katika muktadha wa Ethereum, hali ni muundo mkubwa wa data unaoitwa [modified Merkle Patricia Trie](/developers/docs/data-structures-and-encoding/patricia-merkle-trie/), unaoshikilia [akaunti](/developers/docs/accounts/) zote zikiwa zimeunganishwa kwa hashi na kupunguzwa hadi hashi moja ya mzizi iliyohifadhiwa kwenye mnyororo wa bloku. + +### Miamala {#transactions} + +Miamala ni maagizo yaliyosainiwa kwa njia fiche kutoka kwa akaunti. Kuna aina mbili za miamala: zile zinazosababisha simu za ujumbe na zile zinazosababisha kuundwa kwa mkataba. + +Uundaji wa mkataba husababisha kuundwa kwa akaunti mpya ya mkataba yenye bytecode ya [mkataba-erevu](/developers/docs/smart-contracts/anatomy/) iliyokusanywa. Wakati wowote akaunti nyingine inapopiga simu kwa mkataba huo, hutekeleza bytecode yake. + +## Maagizo ya EVM {#evm-instructions} + +EVM hutekeleza kama [mashine ya rundo](https://wikipedia.org/wiki/Stack_machine) yenye kina cha vipengee 1024. Kila kipengee ni neno la biti 256, ambalo lilichaguliwa kwa urahisi wa matumizi na ufichaji wa taarifa wa 256-biti (kama vile heshi za Keccak-256 au saini za secp256k1). + +Wakati wa utekelezaji, EVM hudumisha _kumbukumbu_ ya muda mfupi (kama safu ya baiti yenye anwani ya neno), ambayo haidumu kati ya miamala. + +### Ghala la muda + +Ghala la muda ni hifadhi ya ufunguo-thamani kwa kila muamala inayofikiwa kupitia opcodes za `TSTORE` na `TLOAD`. Hudumu katika wito wote wa ndani wakati wa muamala mmoja lakini husafishwa mwishoni mwa muamala. Tofauti na kumbukumbu, ghala la muda huundwa kama sehemu ya hali ya EVM badala ya fremu ya utekelezaji, lakini haihifadhiwi kwenye hali ya kimataifa. Ghala la muda huwezesha ugawanaji wa hali ya muda kwa ufanisi wa gesi katika wito wa ndani wakati wa muamala. + +### Ghala + +Mikataba ina _ghala_ la Merkle Patricia trie (kama safu ya maneno yenye anwani ya neno), inayohusishwa na akaunti husika na ni sehemu ya hali ya kimataifa. Ghala hili la kudumu ni tofauti na ghala la muda, ambalo linapatikana tu kwa muda wa muamala mmoja na haliundi sehemu ya trie ya ghala la kudumu ya akaunti. + +### Opcodes + +Bytecode iliyokusanywa ya mkataba-erevu hutekelezwa kama idadi ya [opcode](/developers/docs/evm/opcodes) za EVM, ambazo hufanya shughuli za kawaida za rundo kama `XOR`, `AND`, `ADD`, `SUB`, n.k. EVM pia inatekeleza idadi ya shughuli za rundo maalum kwa mnyororo wa bloku, kama vile `ADDRESS`, `BALANCE`, `BLOCKHASH`, n.k. Seti ya opcode pia inajumuisha `TSTORE` na `TLOAD`, ambazo hutoa ufikiaji wa ghala la muda. + +![Mchoro unaoonyesha wapi gesi inahitajika kwa shughuli za EVM](../gas/gas.png) +_Michoro imechukuliwa kutoka [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Utekelezaji wa EVM {#evm-implementations} + +Utekelezaji wote wa EVM lazima uzingatie vipimo vilivyoelezwa katika karatasi ya kiufundi ya Ethereum. + +Katika historia ya miaka kumi ya Ethereum, EVM imefanyiwa marekebisho kadhaa, na kuna utekelezaji kadhaa wa EVM katika lugha mbalimbali za programu. + +[Programu za utekelezaji za Ethereum](/developers/docs/nodes-and-clients/#execution-clients) zinajumuisha utekelezaji wa EVM. Kwa kuongezea, kuna utekelezaji mwingi wa pekee, pamoja na: + +- [Py-EVM](https://github.com/ethereum/py-evm) - _Python_ +- [evmone](https://github.com/ethereum/evmone) - _C++_ +- [ethereumjs-vm](https://github.com/ethereumjs/ethereumjs-vm) - _JavaScript_ +- [revm](https://github.com/bluealloy/revm) - _Rust_ + +## Masomo zaidi {#further-reading} + +- [Ethereum Yellowpaper](https://ethereum.github.io/yellowpaper/paper.pdf) +- [Jellopaper aka KEVM: Semantics of EVM in K](https://jellopaper.org/) +- [The Beigepaper](https://github.com/chronaeon/beigepaper) +- [Opcodes za Mashine Halisi ya Ethereum](https://www.ethervm.io/) +- [Marejeleo Mwingiliano ya Opcodes za Mashine Halisi ya Ethereum](https://www.evm.codes/) +- [Utangulizi mfupi katika nyaraka za Solidity](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html#index-6) +- [Mastering Ethereum - Mashine Halisi ya Ethereum](https://github.com/ethereumbook/ethereumbook/blob/openedition/13evm.asciidoc) + +## Mada Husika {#related-topics} + +- [Gesi](/developers/docs/gas/) diff --git a/public/content/translations/sw/developers/docs/evm/opcodes/index.md b/public/content/translations/sw/developers/docs/evm/opcodes/index.md new file mode 100644 index 00000000000..33d443cf964 --- /dev/null +++ b/public/content/translations/sw/developers/docs/evm/opcodes/index.md @@ -0,0 +1,177 @@ +--- +title: Opcodes za EVM +description: Orodha ya opcode zote zinazopatikana kwa ajili ya mashine halisi ya ethereum. +lang: sw +--- + +## Muhtasari {#overview} + +Hili ni toleo lililosasishwa la ukurasa wa marejeleo wa EVM katika [wolflo/evm-opcodes](https://github.com/wolflo/evm-opcodes). +Pia imetolewa kutoka kwa [Karatasi ya Njano](https://ethereum.github.io/yellowpaper/paper.pdf), [Karatasi ya Jello](https://jellopaper.org/evm/), na utekelezaji wa [geth](https://github.com/ethereum/go-ethereum). +Hii imekusudiwa kuwa rejeleo linalofikika, lakini sio kali hasa. +Ikiwa unataka kuwa na uhakika wa usahihi na kufahamu kila kisa cha pembeni, kutumia Karatasi ya Jello au utekelezaji wa mteja kunashauriwa. + +Unatafuta rejeleo shirikishi? Angalia [evm.codes](https://www.evm.codes/). + +Kwa operesheni zenye gharama za gesi zinazobadilika, tazama [gas.md](https://github.com/wolflo/evm-opcodes/blob/main/gas.md). + +💡 Dokezo la haraka: Ili kuona mistari yote, tumia `[shift] + sogeza` ili kusogeza mlalo kwenye kompyuta ya mezani. + +| Rafu | Jina | Gesi | Rafu ya Awali | Rafu ya Matokeo | Mem / Ghala | Maelezo | | +| :---: | :------------- | :---------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | +| 00 | STOP | 0 | | | | sitisha utekelezaji | | +| 01 | ADD | 3 | `a, b` | `a + b` | | kujumlisha kwa (u)int256 modulo 2\*\*256 | | +| 02 | MUL | 5 | `a, b` | `a * b` | | kuzidisha kwa (u)int256 modulo 2\*\*256 | | +| 03 | SUB | 3 | `a, b` | `a - b` | | kutoa kwa (u)int256 modulo 2\*\*256 | | +| 04 | DIV | 5 | `a, b` | `a // b` | | kugawanya kwa uint256 | | +| 05 | SDIV | 5 | `a, b` | `a // b` | | kugawanya kwa int256 | | +| 06 | MOD | 5 | `a, b` | `a % b` | | modulo ya uint256 | | +| 07 | SMOD | 5 | `a, b` | `a % b` | | modulo ya int256 | | +| 08 | ADDMOD | 8 | `a, b, N` | `(a + b) % N` | | kujumlisha kwa (u)int256 modulo N | | +| 09 | MULMOD | 8 | `a, b, N` | `(a * b) % N` | | kuzidisha kwa (u)int256 modulo N | | +| 0A | EXP | [A1](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a1-exp) | `a, b` | `a ** b` | | kipeo cha uint256 modulo 2\*\*256 | | +| 0B | SIGNEXTEND | 5 | `b, x` | `SIGNEXTEND(x, b)` | | [panua ishara](https://wikipedia.org/wiki/Sign_extension) `x` kutoka baiti `(b+1)` hadi baiti 32 | | +| 0C-0F | _sio halali_ | | | | | | | +| 10 | LT | 3 | `a, b` | `a < b` | | uint256 chini ya | | +| 11 | GT | 3 | `a, b` | `a > b` | | uint256 kubwa kuliko | | +| 12 | SLT | 3 | `a, b` | `a < b` | | int256 chini ya | | +| 13 | SGT | 3 | `a, b` | `a > b` | | int256 kubwa kuliko | | +| 14 | EQ | 3 | `a, b` | `a == b` | | usawa wa (u)int256 | | +| 15 | ISZERO | 3 | `a` | `a == 0` | | (u)int256 ni sifuri | | +| 16 | AND | 3 | `a, b` | `a && b` | | bitwise AND | | +| 17 | OR | 3 | `a, b` | `a \\|\\| b` | | bitwise OR | | +| 18 | XOR | 3 | `a, b` | `a ^ b` | | bitwise XOR | | +| 19 | NOT | 3 | `a` | `~a` | | bitwise NOT | | +| 1A | BYTE | 3 | `i, x` | `(x >> (248 - i * 8)) && 0xFF` | | baiti ya `i` ya (u)int256 `x`, kutoka kushoto | | +| 1B | SHL | 3 | `shift, val` | `val << shift` | | sogeza kushoto | | +| 1C | SHR | 3 | `shift, val` | `val >> shift` | | sogeza kulia kimantiki | | +| 1D | SAR | 3 | `shift, val` | `val >> shift` | | sogeza kulia kihesabu | | +| 1E-1F | _sio halali_ | | | | | | | +| 20 | KECCAK256 | [A2](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a2-sha3) | `ost, len` | `keccak256(mem[ost:ost+len-1])` | | keccak256 | | +| 21-2F | _sio halali_ | | | | | | | +| 30 | ADDRESS | 2 | `.` | `anwani(this)` | | anwani ya mkataba unaotekelezwa | | +| 31 | BALANCE | [A5](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a5-balance-extcodesize-extcodehash) | `addr` | `addr.salio` | | salio, katika wei | | +| 32 | ORIGIN | 2 | `.` | `tx.origin` | | anwani iliyoanzisha tx | | +| 33 | CALLER | 2 | `.` | `msg.sender` | | anwani ya mtumaji wa msg | | +| 34 | CALLVALUE | 2 | `.` | `msg.value` | | thamani ya msg, katika wei | | +| 35 | CALLDATALOAD | 3 | `idx` | `msg.data[idx:idx+32]` | | soma neno kutoka data ya msg kwenye faharasa `idx` | | +| 36 | CALLDATASIZE | 2 | `.` | `len(msg.data)` | | urefu wa data ya msg, katika baiti | | +| 37 | CALLDATACOPY | [A3](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a3-copy-operations) | `dstOst, ost, len` | `.` | mem[dstOst:dstOst+len-1] := msg.data[ost:ost+len-1] | nakili data ya msg | | +| 38 | CODESIZE | 2 | `.` | `len(this.msimbo)` | | urefu wa msimbo wa mkataba unaotekelezwa, katika baiti | | +| 39 | CODECOPY | [A3](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a3-copy-operations) | `dstOst, ost, len` | `.` | | mem[dstOst:dstOst+len-1] := this.msimbo[ost:ost+len-1] | nakili bytecode ya mkataba unaotekelezwa | +| 3A | GASPRICE | 2 | `.` | `tx.gasprice` | | bei ya gesi ya tx, katika wei kwa kila kitengo cha gesi [\*\*](https://eips.ethereum.org/EIPS/eip-1559#gasprice) | | +| 3B | EXTCODESIZE | [A5](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a5-balance-extcodesize-extcodehash) | `addr` | `len(addr.msimbo)` | | ukubwa wa msimbo katika anwani, katika baiti | | +| 3C | EXTCODECOPY | [A4](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a4-extcodecopy) | `addr, dstOst, ost, len` | `.` | mem[dstOst:dstOst+len-1] := addr.msimbo[ost:ost+len-1] | nakili msimbo kutoka `addr` | | +| 3D | RETURNDATASIZE | 2 | `.` | `ukubwa` | | ukubwa wa data iliyorejeshwa kutoka wito wa mwisho wa nje, katika baiti | | +| 3E | RETURNDATACOPY | [A3](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a3-copy-operations) | `dstOst, ost, len` | `.` | mem[dstOst:dstOst+len-1] := returndata[ost:ost+len-1] | nakili data iliyorejeshwa kutoka wito wa mwisho wa nje | | +| 3F | EXTCODEHASH | [A5](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a5-balance-extcodesize-extcodehash) | `addr` | `hashi` | | hashi = addr.exists ? keccak256(addr.msimbo) : 0 | | +| 40 | BLOCKHASH | 20 | `blockNum` | `blockHash(blockNum)` | | | | +| 41 | COINBASE | 2 | `.` | `block.coinbase` | | anwani ya mpendekezaji wa bloku ya sasa | | +| 42 | TIMESTAMP | 2 | `.` | `block.timestamp` | | mhuri wa muda wa bloku ya sasa | | +| 43 | NUMBER | 2 | `.` | `block.number` | | nambari ya bloku ya sasa | | +| 44 | PREVRANDAO | 2 | `.` | `randomness beacon` | | randomness beacon | | +| 45 | GASLIMIT | 2 | `.` | `block.gaslimit` | | kikomo cha gesi cha bloku ya sasa | | +| 46 | CHAINID | 2 | `.` | `chain_id` | | sukuma [id ya mnyororo](https://eips.ethereum.org/EIPS/eip-155) ya sasa kwenye rafu | | +| 47 | SELFBALANCE | 5 | `.` | `anwani(this).salio` | | salio la mkataba unaotekelezwa, katika wei | | +| 48 | BASEFEE | 2 | `.` | `block.basefee` | | ada ya msingi ya bloku ya sasa | | +| 49 | BLOBHASH | 3 | `idx` | `tx.blob_versioned_hashes[idx]` | | [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) | | +| 4A | BLOBBASEFEE | 2 | `.` | `block.blobbasefee` | | ada ya msingi ya blob ya bloku ya sasa ([EIP-7516](https://eips.ethereum.org/EIPS/eip-7516)) | | +| 4B-4F | _sio halali_ | | | | | | | +| 50 | POP | 2 | `_anon` | `.` | | ondoa kipengee kutoka juu ya rafu na uitupe | | +| 51 | MLOAD | 3[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost` | `mem[ost:ost+32]` | | soma neno kutoka kwenye kumbukumbu kwa offset `ost` | | +| 52 | MSTORE | 3[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, val` | `.` | mem[ost:ost+32] := val | andika neno kwenye kumbukumbu | | +| 53 | MSTORE8 | 3[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, val` | `.` | mem[ost] := val && 0xFF | andika baiti moja kwenye kumbukumbu | | +| 54 | SLOAD | [A6](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a6-sload) | `ufunguo` | `ghala[ufunguo]` | | soma neno kutoka kwenye ghala | | +| 55 | SSTORE | [A7](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a7-sstore) | `ufunguo, val` | `.` | ghala[ufunguo] := val | andika neno kwenye ghala | | +| 56 | JUMP | 8 | `dst` | `.` | | `$pc := dst` weka alama kuwa `pc` inapewa tu ikiwa `dst` ni jumpdest halali | | +| 57 | JUMPI | 10 | `dst, sharti` | `.` | | `$pc := sharti ? dst : $pc + 1` | | +| 58 | PC | 2 | `.` | `$pc` | | kihesabu cha programu | | +| 59 | MSIZE | 2 | `.` | `len(mem)` | | ukubwa wa kumbukumbu katika muktadha wa sasa wa utekelezaji, katika baiti | | +| 5A | GAS | 2 | `.` | `gesiIliyobaki` | | | | +| 5B | JUMPDEST | 1 | | | weka alama ya eneo halali la kuruka | eneo halali la kuruka kwa mfano eneo la kuruka sio ndani ya data ya kusukuma | | +| 5C | TLOAD | 100 | `ufunguo` | `tstorage[ufunguo]` | | soma neno kutoka kwenye ghala la muda ([EIP-1153](https://eips.ethereum.org/EIPS/eip-1153)) | | +| 5D | TSTORE | 100 | `ufunguo, val` | `.` | tstorage[ufunguo] := val | andika neno kwenye ghala la muda ([EIP-1153](https://eips.ethereum.org/EIPS/eip-1153)) | | +| 5E | MCOPY | 3+3\*words+[A0](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `dstOst, ost, len` | `.` | mem[dstOst] := mem[ost:ost+len] | nakili kumbukumbu kutoka eneo moja hadi jingine ([EIP-5656](https://eips.ethereum.org/EIPS/eip-5656)) | | +| 5F | PUSH0 | 2 | `.` | `uint8` | | sukuma thamani ya kudumu 0 kwenye rafu | | +| 60 | PUSH1 | 3 | `.` | `uint8` | | sukuma thamani ya baiti-1 kwenye rafu | | +| 61 | PUSH2 | 3 | `.` | `uint16` | | sukuma thamani ya baiti-2 kwenye rafu | | +| 62 | PUSH3 | 3 | `.` | `uint24` | | sukuma thamani ya baiti-3 kwenye rafu | | +| 63 | PUSH4 | 3 | `.` | `uint32` | | sukuma thamani ya baiti-4 kwenye rafu | | +| 64 | PUSH5 | 3 | `.` | `uint40` | | sukuma thamani ya baiti-5 kwenye rafu | | +| 65 | PUSH6 | 3 | `.` | `uint48` | | sukuma thamani ya baiti-6 kwenye rafu | | +| 66 | PUSH7 | 3 | `.` | `uint56` | | sukuma thamani ya baiti-7 kwenye rafu | | +| 67 | PUSH8 | 3 | `.` | `uint64` | | sukuma thamani ya baiti-8 kwenye rafu | | +| 68 | PUSH9 | 3 | `.` | `uint72` | | sukuma thamani ya baiti-9 kwenye rafu | | +| 69 | PUSH10 | 3 | `.` | `uint80` | | sukuma thamani ya baiti-10 kwenye rafu | | +| 6A | PUSH11 | 3 | `.` | `uint88` | | sukuma thamani ya baiti-11 kwenye rafu | | +| 6B | PUSH12 | 3 | `.` | `uint96` | | sukuma thamani ya baiti-12 kwenye rafu | | +| 6C | PUSH13 | 3 | `.` | `uint104` | | sukuma thamani ya baiti-13 kwenye rafu | | +| 6D | PUSH14 | 3 | `.` | `uint112` | | sukuma thamani ya baiti-14 kwenye rafu | | +| 6E | PUSH15 | 3 | `.` | `uint120` | | sukuma thamani ya baiti-15 kwenye rafu | | +| 6F | PUSH16 | 3 | `.` | `uint128` | | sukuma thamani ya baiti-16 kwenye rafu | | +| 70 | PUSH17 | 3 | `.` | `uint136` | | sukuma thamani ya baiti-17 kwenye rafu | | +| 71 | PUSH18 | 3 | `.` | `uint144` | | sukuma thamani ya baiti-18 kwenye rafu | | +| 72 | PUSH19 | 3 | `.` | `uint152` | | sukuma thamani ya baiti-19 kwenye rafu | | +| 73 | PUSH20 | 3 | `.` | `uint160` | | sukuma thamani ya baiti-20 kwenye rafu | | +| 74 | PUSH21 | 3 | `.` | `uint168` | | sukuma thamani ya baiti-21 kwenye rafu | | +| 75 | PUSH22 | 3 | `.` | `uint176` | | sukuma thamani ya baiti-22 kwenye rafu | | +| 76 | PUSH23 | 3 | `.` | `uint184` | | sukuma thamani ya baiti-23 kwenye rafu | | +| 77 | PUSH24 | 3 | `.` | `uint192` | | sukuma thamani ya baiti-24 kwenye rafu | | +| 78 | PUSH25 | 3 | `.` | `uint200` | | sukuma thamani ya baiti-25 kwenye rafu | | +| 79 | PUSH26 | 3 | `.` | `uint208` | | sukuma thamani ya baiti-26 kwenye rafu | | +| 7A | PUSH27 | 3 | `.` | `uint216` | | sukuma thamani ya baiti-27 kwenye rafu | | +| 7B | PUSH28 | 3 | `.` | `uint224` | | sukuma thamani ya baiti-28 kwenye rafu | | +| 7C | PUSH29 | 3 | `.` | `uint232` | | sukuma thamani ya baiti-29 kwenye rafu | | +| 7D | PUSH30 | 3 | `.` | `uint240` | | sukuma thamani ya baiti-30 kwenye rafu | | +| 7E | PUSH31 | 3 | `.` | `uint248` | | sukuma thamani ya baiti-31 kwenye rafu | | +| 7F | PUSH32 | 3 | `.` | `uint256` | | sukuma thamani ya baiti-32 kwenye rafu | | +| 80 | DUP1 | 3 | `a` | `a, a` | | nakili thamani ya 1 kwenye rafu | | +| 81 | DUP2 | 3 | `_, a` | `a, _, a` | | nakili thamani ya 2 kwenye rafu | | +| 82 | DUP3 | 3 | `_, _, a` | `a, _, _, a` | | nakili thamani ya 3 kwenye rafu | | +| 83 | DUP4 | 3 | `_, _, _, a` | `a, _, _, _, a` | | nakili thamani ya 4 kwenye rafu | | +| 84 | DUP5 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 5 kwenye rafu | | +| 85 | DUP6 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 6 kwenye rafu | | +| 86 | DUP7 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 7 kwenye rafu | | +| 87 | DUP8 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 8 kwenye rafu | | +| 88 | DUP9 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 9 kwenye rafu | | +| 89 | DUP10 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 10 kwenye rafu | | +| 8A | DUP11 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 11 kwenye rafu | | +| 8B | DUP12 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 12 kwenye rafu | | +| 8C | DUP13 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 13 kwenye rafu | | +| 8D | DUP14 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 14 kwenye rafu | | +| 8E | DUP15 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 15 kwenye rafu | | +| 8F | DUP16 | 3 | `..., a` | `a, ..., a` | | nakili thamani ya 16 kwenye rafu | | +| 90 | SWAP1 | 3 | `a, b` | `b, a` | | | | +| 91 | SWAP2 | 3 | `a, _, b` | `b, _, a` | | | | +| 92 | SWAP3 | 3 | `a, _, _, b` | `b, _, _, a` | | | | +| 93 | SWAP4 | 3 | `a, _, _, _, b` | `b, _, _, _, a` | | | | +| 94 | SWAP5 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 95 | SWAP6 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 96 | SWAP7 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 97 | SWAP8 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 98 | SWAP9 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 99 | SWAP10 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9A | SWAP11 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9B | SWAP12 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9C | SWAP13 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9D | SWAP14 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9E | SWAP15 | 3 | `a, ..., b` | `b, ..., a` | | | | +| 9F | SWAP16 | 3 | `a, ..., b` | `b, ..., a` | | | | +| A0 | LOG0 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len` | `.` | | LOG0(kumbukumbu[ost:ost+len-1]) | | +| A1 | LOG1 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0` | `.` | | LOG1(kumbukumbu[ost:ost+len-1], topic0) | | +| A2 | LOG2 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0, topic1` | `.` | | LOG2(kumbukumbu[ost:ost+len-1], topic0, topic1) | | +| A3 | LOG3 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0, topic1, topic2` | `.` | | LOG3(kumbukumbu[ost:ost+len-1], topic0, topic1, topic2) | | +| A4 | LOG4 | [A8](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a8-log-operations) | `ost, len, topic0, topic1, topic2, topic3` | `.` | | LOG4(kumbukumbu[ost:ost+len-1], topic0, topic1, topic2, topic3) | | +| A5-EF | _sio halali_ | | | | | | | +| F0 | CREATE | [A9](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a9-create-operations) | `val, ost, len` | `addr` | | anwani = keccak256(rlp([anwani(this), this.nonce])) | | +| F1 | CALL | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | gesi, addr, val, argOst, argLen, retOst, retLen | `mafanikio` | mem[retOst:retOst+retLen-1] := returndata | | | +| F2 | CALLCODE | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | `gesi, addr, val, argOst, argLen, retOst, retLen` | `mafanikio` | mem[retOst:retOst+retLen-1] = returndata | sawa na DELEGATECALL, lakini haisambazi msg.sender na msg.value asili | | +| F3 | RETURN | 0[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, len` | `.` | | rejesha mem[ost:ost+len-1] | | +| F4 | DELEGATECALL | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | `gesi, addr, argOst, argLen, retOst, retLen` | `mafanikio` | mem[retOst:retOst+retLen-1] := returndata | | | +| F5 | CREATE2 | [A9](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a9-create-operations) | `val, ost, len, salt` | `addr` | | anwani = keccak256(0xff ++ anwani(this) ++ salt ++ keccak256(mem[ost:ost+len-1]))[12:] | | +| F6-F9 | _sio halali_ | | | | | | | +| FA | STATICCALL | [AA](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#aa-call-operations) | `gesi, addr, argOst, argLen, retOst, retLen` | `mafanikio` | mem[retOst:retOst+retLen-1] := returndata | | | +| FB-FC | _sio halali_ | | | | | | | +| FD | REVERT | 0[\*](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a0-1-memory-expansion) | `ost, len` | `.` | | rejesha(mem[ost:ost+len-1]) | | +| FE | INVALID | [AF](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#af-invalid) | | | opcode batili iliyoteuliwa - [EIP-141](https://eips.ethereum.org/EIPS/eip-141) | | | +| FF | SELFDESTRUCT | [AB](https://github.com/wolflo/evm-opcodes/blob/main/gas.md#ab-selfdestruct) | `addr` | `.` | | hutuma ETH zote kwa `addr`; ikiwa itatekelezwa katika muamala sawa na ule mkataba ulipoundwa, inaharibu mkataba | | diff --git a/public/content/translations/sw/developers/docs/frameworks/index.md b/public/content/translations/sw/developers/docs/frameworks/index.md new file mode 100644 index 00000000000..0db4454b832 --- /dev/null +++ b/public/content/translations/sw/developers/docs/frameworks/index.md @@ -0,0 +1,157 @@ +--- +title: Mifumo ya Maendeleo ya Dapp +description: Gundua faida za mifumo na ulinganishe chaguo zinazopatikana. +lang: sw +--- + +## Utangulizi wa mifumo {#introduction-to-frameworks} + +Kuunda dapp kamili kunahitaji +sehemu tofauti za teknolojia. Mifumo ya programu inajumuisha vipengele vingi vinavyohitajika +au hutoa mifumo rahisi ya programu-jalizi ili kuchagua zana +unazotaka. + +Mifumo huja na utendaji mwingi wa moja kwa moja, +kama vile: + +- Vipengele vya kuunda mfano wa mnyororo wa bloku. +- Huduma za kukusanya na kujaribu mikataba yako mahiri. +- Viongezeo vya ukuzaji wa mteja ili kuunda programu yako inayomkabili mtumiaji + ndani ya mradi/hazina sawa. +- Mipangilio ya kuunganisha kwenye mitandao ya Ethereum na kupeleka + mikataba, iwe kwa mfano unaoendeshwa nchini, au mojawapo ya + mitandao ya umma ya Ethereum. +- Usambazaji wa programu uliogatuliwa - miunganisho na chaguo za hifadhi + kama vile IPFS. + +## Mahitaji ya awali {#prerequisites} + +Kabla ya kuingia kwa undani kwenye mifumo, tunapendekeza kwanza usome utangulizi wetu wa [dapps](/developers/docs/dapps/) na [safu ya Ethereum](/developers/docs/ethereum-stack/). + +## Mifumo inayopatikana {#available-frameworks} + +**Foundry** - **_Foundry ni seti ya zana yenye kasi ya ajabu, inayobebeka na ya moduli kwa ajili ya maendeleo ya programu za Ethereum_** + +- [Sakinisha Foundry](https://book.getfoundry.sh/) +- [Kitabu cha Foundry](https://book.getfoundry.sh/) +- [Gumzo la jumuiya ya Foundry kwenye Telegram](https://t.me/foundry_support) +- [Awesome Foundry](https://github.com/crisgarner/awesome-foundry) + +**Hardhat -** **_Mazingira ya maendeleo ya Ethereum kwa wataalamu._** + +- [hardhat.org](https://hardhat.org) +- [GitHub](https://github.com/nomiclabs/hardhat) + +**Ape -** **_Zana ya maendeleo ya mkataba-erevu kwa Pythonistas, Wanasayansi wa Data, na Wataalamu wa Usalama._** + +- [Nyaraka](https://docs.apeworx.io/ape/stable/) +- [GitHub](https://github.com/ApeWorX/ape) + +**Web3j -** **_Jukwaa la kuendeleza programu za mnyororo wa bloku kwenye JVM._** + +- [Ukurasa wa nyumbani](https://www.web3labs.com/web3j-sdk) +- [Nyaraka](https://docs.web3j.io) +- [GitHub](https://github.com/web3j/web3j) + +**ethers-kt -** **_Maktaba ya Async, ya utendaji wa juu ya Kotlin/Java/Android kwa minyororo ya bloku inayotumia EVM._** + +- [GitHub](https://github.com/Kr1ptal/ethers-kt) +- [Mifano](https://github.com/Kr1ptal/ethers-kt/tree/master/examples) +- [Discord](https://discord.gg/rx35NzQGSb) + +**Create Eth App -** **_Unda programu zinazoendeshwa na Ethereum kwa amri moja. Inakuja na ofa pana ya mifumo ya UI na violezo vya DeFi vya kuchagua._** + +- [GitHub](https://github.com/paulrberg/create-eth-app) +- [Violezo](https://github.com/PaulRBerg/create-eth-app/tree/develop/templates) + +**Scaffold-Eth -** **_Vipengele na ndoano za Ethers.js + Hardhat + React za web3: kila kitu unachohitaji ili kuanza kujenga mifumo iliyotawanywa inayoendeshwa na mikataba-erevu._** + +- [GitHub](https://github.com/scaffold-eth/scaffold-eth-2) + +**Tenderly -** **_Jukwaa la maendeleo la Web3 linalowawezesha wasanidi programu wa mnyororo wa bloku kujenga, kupima, kurekebisha, kufuatilia, na kuendesha mikataba-erevu na kuboresha UX ya dapp._** + +- [Tovuti](https://tenderly.co/) +- [Nyaraka](https://docs.tenderly.co/) + +**The Graph -** **_The Graph kwa ajili ya kuuliza data ya mnyororo wa bloku kwa ufanisi._** + +- [Tovuti](https://thegraph.com/) +- [Mafunzo](/developers/tutorials/the-graph-fixing-web3-data-querying/) + +**Alchemy -** **_Jukwaa la Maendeleo la Ethereum._** + +- [alchemy.com](https://www.alchemy.com/) +- [GitHub](https://github.com/alchemyplatform) +- [Discord](https://discord.com/invite/alchemyplatform) + +**NodeReal -** **_Jukwaa la Maendeleo la Ethereum._** + +- [Nodereal.io](https://nodereal.io/) +- [GitHub](https://github.com/node-real) +- [Discord](https://discord.gg/V5k5gsuE) + +**thirdweb SDK -** **_Jenga programu za web3 zinazoweza kuingiliana na mikataba-erevu yako kwa kutumia SDK na CLI zetu zenye nguvu._** + +- [Nyaraka](https://portal.thirdweb.com/sdk/) +- [GitHub](https://github.com/thirdweb-dev/) + +**Chainstack -** **_Jukwaa la Maendeleo la Web3 (Ethereum na vinginevyo)._** + +- [chainstack.com](https://www.chainstack.com/) +- [GitHub](https://github.com/chainstack) +- [Discord](https://discord.gg/BSb5zfp9AT) + +**Crossmint -** **_Jukwaa la maendeleo la web3 la kiwango cha biashara, linalokuruhusu kuunda programu za NFT kwenye minyororo yote mikuu ya EVM (na mingineyo)._** + +- [Tovuti](https://www.crossmint.com) +- [Nyaraka](https://docs.crossmint.com) +- [Discord](https://discord.com/invite/crossmint) + +**Brownie -** **_Mazingira ya maendeleo yanayotegemea Python na mfumo wa majaribio._** + +- [Nyaraka](https://eth-brownie.readthedocs.io/en/latest/) +- [GitHub](https://github.com/eth-brownie/brownie) +- **Kwa sasa Brownie haitunzwi** + +**OpenZeppelin SDK -** **_Seti ya Zana ya Mwisho ya Mikataba-Erevu: Mkusanyiko wa zana za kukusaidia kuendeleza, kuandaa, kuboresha, kupeleka na kuingiliana na mikataba-erevu._** + +- [OpenZeppelin Defender SDK](https://docs.openzeppelin.com/defender/sdk) +- [GitHub](https://github.com/OpenZeppelin/openzeppelin-sdk) +- [Jukwaa la Jumuiya](https://forum.openzeppelin.com/c/support/17) +- **Maendelezo ya OpenZeppelin SDK yamekoma** + +**Catapulta -** **_Zana ya kupeleka mikataba-erevu ya minyororo mingi, fanya uthibitishaji kiotomatiki katika wachunguzi wa bloku, fuatilia mikataba-erevu iliyopelekwa na ushiriki ripoti za upelekaji, plug-n-play kwa miradi ya Foundry na Hardhat._** + +- [Tovuti](https://catapulta.sh/) +- [Nyaraka](https://catapulta.sh/docs) +- [Github](https://github.com/catapulta-sh) + +**GoldRush (inayoendeshwa na Covalent) -** **_GoldRush hutoa seti kamili zaidi ya API ya data ya mnyororo wa bloku kwa wasanidi programu, wachambuzi, na biashara. Iwe unajenga dashibodi ya DeFi, mkoba, roboti ya biashara, wakala wa AI au jukwaa la kufuata sheria, API za data hutoa ufikiaji wa haraka, sahihi, na rafiki kwa msanidi programu kwa data muhimu ya onchain unayohitaji_** + +- [Tovuti](https://goldrush.dev/) +- [Nyaraka](https://goldrush.dev/docs/chains/ethereum) +- [GitHub](https://github.com/covalenthq) +- [Discord](https://www.covalenthq.com/discord/) + +**Wake -** **_Mfumo wa Python wa yote-kwa-mmoja kwa ajili ya kupima mikataba, fuzzing, upelekaji, skanning ya udhaifu na urambazaji wa msimbo._** + +- [Ukurasa wa nyumbani](https://getwake.io/) +- [Nyaraka](https://ackeeblockchain.com/wake/docs/latest/) +- [GitHub](https://github.com/Ackee-Blockchain/wake) +- [Kiendelezi cha VS Code](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity) + +**Veramo -** **_Mfumo wa chanzo huria, wa moduli na usioegemea upande wowote unaorahisisha wasanidi programu wa mfumo uliotawanywa kujenga vitambulisho vilivyogatuliwa na stakabadhi zinazoweza kuthibitishwa katika programu zao._** + +- [Ukurasa wa nyumbani](https://veramo.io/) +- [Nyaraka](https://veramo.io/docs/basics/introduction) +- [GitHub](https://github.com/uport-project/veramo) +- [Discord](https://discord.com/invite/FRRBdjemHV) +- [Kifurushi cha NPM](https://www.npmjs.com/package/@veramo/core) + +## Masomo zaidi {#further-reading} + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ + +## Mada zinazohusiana {#related-topics} + +- [Weka mazingira ya maendeleo ya ndani](/developers/local-environment/) diff --git a/public/content/translations/sw/developers/docs/gas/index.md b/public/content/translations/sw/developers/docs/gas/index.md new file mode 100644 index 00000000000..645bb58ba3a --- /dev/null +++ b/public/content/translations/sw/developers/docs/gas/index.md @@ -0,0 +1,151 @@ +--- +title: Gesi na ada +metaTitle: "Gesi na ada za Ethereum: Maelezo ya kiufundi" +description: Jifunze kuhusu ada za gesi za Ethereum, jinsi zinavyokokotolewa, na jukumu lake katika usalama wa mtandao na uchakataji wa miamala. +lang: sw +--- + +Gesi ni muhimu kwa mtandao wa Ethereum. Ni mafuta yanayoiwezesha kufanya kazi, kama vile gari linavyohitaji petroli ili kufanya kazi. + +## Mahitaji ya awali {#prerequisites} + +Ili kuelewa ukurasa huu vizuri zaidi, tunapendekeza usome kwanza kuhusu [miamala](/developers/docs/transactions/) na [EVM](/developers/docs/evm/). + +## Gesi ni nini? {#what-is-gas} + +Gesi hurejelea kitengo kinachopima kiasi cha juhudi za kihesabu zinazohitajika kutekeleza shughuli maalumu kwenye mtandao wa Ethereum. + +Kwa sababu kila muamala wa Ethereum unahitaji rasilimali za kompyuta ili kutekelezwa, rasilimali hizo lazima zilipiwe ili kuhakikisha Ethereum sio hatarishi dhidi ya barua taka na haiwezi kukwama kwenye mzunguko wa kompyuta usio na mwisho. Malipo kwa ajili ya hesabu hufanywa kwa njia ya ada ya gesi. + +Ada ya gesi ni **kiasi cha gesi kinachotumika kufanya operesheni fulani, kikizidishwa na gharama ya kila kitengo cha gesi**. Ada inalipwa bila kujali kama muamala unafanikiwa au hautafanikiwa. + +![Mchoro unaoonyesha mahali gesi inahitajika katika operesheni za EVM](./gas.png) +_Mchoro umechukuliwa kutoka [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Ada za gesi lazima zilipwe kwa kutumia sarafu ya asili ya Ethereum, ether (ETH). Bei za gesi huwekwa kwa gwei, ambayo ni kiwango kidogo cha ETH. Kila gwei ni sawa na sehemu ya bilioni moja ya ETH (0.000000001 ETH au 10-9ETH). + +Kwa mfano, badala ya kusema kuwa gesi yako inagharimu ether 0.000000001, unaweza kusema gesi yako inagharimu gwei 1. + +Neno 'gwei' ni ufupisho wa 'giga-wei', likimaanisha 'bilioni wei'. Gwei moja ni sawa na bilioni wei. Wei yenyewe (iliyoitwa jina la [Wei Dai](https://wikipedia.org/wiki/Wei_Dai), muundaji wa [b-money](https://www.investopedia.com/terms/b/bmoney.asp)) ndiyo sehemu ndogo zaidi ya ETH. + +## Ni jinsi gani gesi inapigiwa mahesabu? {#how-are-gas-fees-calculated} + +Unaweza weka kiwango cha gesi ambacho upo tayari kulipa pale unapotaka kufanya muamala. Kwa kutoa kiasi fulani cha gesi, unajilipia ili muamala wako ujumuishwe katika kitalu kinachofuata. Ikiwa utatoa kidogo sana, wathibitishaji itawawia vigumu kuchagua muamala wako ujumuishwe, ikimaanisha muamala wako unaweza kutekelezwa kwa kuchelewa au usitekelezwe kabisa. Ukitoa kiwango kikubwa zaidi, inawezekana ukapoteza baadhi ya ETH. Sasa, unaweza kugundua kiwango gani unaweza kulipia? + +Jumla ya gesi unayolipa imegawanywa katika vipengele viwili: `ada ya msingi` na `ada ya kipaumbele` (bakshishi). + +`Ada ya msingi` huwekwa na itifaki—unapaswa kulipa angalau kiasi hiki ili muamala wako uchukuliwe kuwa halali. `Ada ya kipaumbele` ni bakshishi unayoongeza kwenye ada ya msingi ili kufanya muamala wako uvutie kwa wathibitishaji ili wauchague kwa ajili ya kujumuishwa kwenye kitalu kinachofuata. + +Muamala unaolipa `ada ya msingi` pekee ni halali kitaalamu lakini hauwezekani kujumuishwa kwa sababu haitoi motisha kwa wathibitishaji kuuchagua badala ya muamala mwingine wowote. Ada 'sahihi' ya `kipaumbele` huamuliwa na matumizi ya mtandao wakati unapotuma muamala wako—ikiwa kuna mahitaji mengi, huenda ikabidi uweke ada yako ya `kipaumbele` juu zaidi, lakini wakati kuna mahitaji kidogo, unaweza kulipa kidogo. + +Kwa mfano, hebu tuseme Jordan anapaswa kumlipa Taylor ETH 1. Uhamisho wa ETH unahitaji vitengo 21,000 vya gesi, na ada ya msingi ni gwei 10. Jordan anajumuisha ada ya kipaumbele ya gwei 2. + +Jumla ya ada itakuwa sawa sawa na: + +`vitengo vya gesi vilivyotumika * (ada ya msingi + ada ya kipaumbele)` + +ambapo `ada ya msingi` ni thamani iliyowekwa na itifaki na `ada ya kipaumbele` ni thamani iliyowekwa na mtumiaji kama bakshishi kwa mthibitishaji. + +k.m., `21,000 * (10 + 2) = 252,000 gwei` (0.000252 ETH). + +Wakati Jordan anapotuma pesa, ETH 1.000252 zitatolewa kutoka kwenye akaunti ya Jordan. Taylor atapewa ETH 1.0000. Mthibitishaji atapokea ada ya kipaumbele ya ETH 0.000042. `Ada ya msingi` ya ETH 0.00021 inachomwa. + +### Ada ya msingi {#base-fee} + +Kila kitalu kina ada ya msingi ambacho kinafanya kazi kama bei ya akiba. Ili kustahili kujumuishwa katika kitalu bei iliyotolewa kwa kila gesi lazima angalau iwe sawa na ada ya msingi. Ada ya msingi huhesabiwa kwa kujitegemea na kitalu cha sasa na badala yake huamuliwa na vitalu vilivyotangulia, na kufanya ada za muamala zitabirike zaidi kwa watumiaji. Kitalu kinapoundwa, **ada hii ya msingi "inachomwa"**, na kuondolewa kwenye mzunguko. + +Ada ya msingi hukokotolewa kwa fomula inayolinganisha ukubwa wa kitalu kilichopita (kiasi cha gesi iliyotumika kwa miamala yote) na ukubwa unaolengwa (nusu ya kikomo cha gesi). Ada ya msingi itaongezeka au kupungua kwa upeo wa 12.5% kwa kila kitalu ikiwa ukubwa wa kitalu lengwa utazidi au kuwa chini ya lengo, mtawalia. Ukuaji huu wa kasi hufanya iwe vigumu kiuchumi kwa ukubwa wa kitalu kubaki juu kwa muda usiojulikana. + +| Namba ya Kitalu | Gesi Iliyojumuishwa | Kuongezeka kwa Ada | Ada ya Msingi ya Hivi Sasa | +| --------------- | ------------------: | --------------------: | -------------------------: | +| 1 | 18M | 0% | gwei 100 | +| 2 | 36M | 0% | gwei 100 | +| 3 | 36M | 12.5% | gwei 112.5 | +| 4 | 36M | 12.5% | gwei 126.6 | +| 5 | 36M | 12.5% | gwei 142.4 | +| 6 | 36M | 12.5% | gwei 160.2 | +| 7 | 36M | 12.5% | gwei 180.2 | +| 8 | 36M | 12.5% | gwei 202.7 | + +Katika jedwali lililo hapo juu, mfano unaonyeshwa kwa kutumia milioni 36 kama kikomo cha gesi. Kufuatia mfano huu, ili kuunda muamala kwenye kitalu nambari 9, mkoba utamjulisha mtumiaji kwa uhakika kwamba **ada ya msingi ya juu zaidi** itakayoongezwa kwenye kitalu kinachofuata ni `ada ya msingi ya sasa * 112.5%` au `202.7 gwei * 112.5% = 228.1 gwei`. + +Ni muhimu pia kuzingatia kuwa kuna uwezekano mdogo wa kuona vitalu vilivyojaa kwa muda mrefu kutokana na kasi ambayo ada ya msingi huongezeka kabla ya kitalu kujaa kabisa. + +| Namba ya Kitalu | Gesi Iliyojumuishwa | Kuongezeka kwa Ada | Ada ya Msingi ya Hivi Sasa | +| --------------------------------------------------- | --------------------------------------------------: | --------------------: | --------------------------------------------------: | +| 30 | 36M | 12.5% | gwei 2705.6 | +| ... | ... | 12.5% | ... | +| 50 | 36M | 12.5% | gwei 28531.3 | +| ... | ... | 12.5% | ... | +| 100 | 36M | 12.5% | gwei 10302608.6 | + +### Ada ya kipaumbele (bakshishi) {#priority-fee} + +Ada ya kipaumbele (bakshishi) huwapa wathibitishaji motisha wa kuongeza idadi ya miamala katika kitalu, wakizuiliwa tu na kikomo cha gesi cha kitalu. Bila bakshishi, mthibitishaji mwenye busara anaweza kujumuisha miamala michache—au hata sifuri—bila adhabu yoyote ya moja kwa moja ya safu ya utekelezaji au safu ya makubaliano, kwa kuwa zawadi za kusimamisha hazitegemei idadi ya miamala iliyo kwenye kitalu. Zaidi ya hayo, bakshishi huwaruhusu watumiaji kuwazidi wengine zabuni kwa ajili ya kipaumbele ndani ya kitalu kimoja, na hivyo kuashiria uharaka. + +### Ada ya juu zaidi {#maxfee} + +Ili kutekeleza muamala kwenye mtandao, watumiaji wanaweza kubainisha kiwango cha juu wanachotaka kulipia ili muamala wao utekelezwe. Kigezo hiki cha hiari kinajulikana kama `maxFeePerGas`. Ili muamala utekelezwe, ada ya juu kabisa lazima izidi jumla ya ada ya msingi na ada ya kipaumbele. Mtumaji wa muamala anarudishiwa tofauti kati ya ada ya juu kabisa na jumla ya ada ya msingi na ada ya kipaumbele. + +### Ukubwa wa bloku {#block-size} + +Kila kitalu kina ukubwa unaolengwa wa nusu ya kikomo cha gesi cha sasa, lakini ukubwa wa vitalu utaongezeka au kupungua kulingana na mahitaji ya mtandao, hadi kikomo cha kitalu kifikiwe (2x ukubwa wa kitalu lengwa). Itifaki hufikia wastani wa ukubwa wa kitalu wa usawa kwenye lengo kupitia mchakato wa _tâtonnement_. Hii inamaanisha ikiwa ukubwa wa kitalu ni mkubwa kuliko ukubwa unaolengwa wa kitalu, itifaki itaongeza ada ya msingi kwa kitalu kinachofuata. Vilevile, itifaki itapunguza ada ya msingi ikiwa ukubwa wa kitalu ni mdogo kuliko ukubwa unaolengwa wa kitalu. + +Kiasi ambacho ada ya msingi hurekebishwa ni sawia na umbali ambao ukubwa wa kitalu cha sasa upo kutoka kwenye lengo. Huu ni ukokotoaji wa mstari kutoka -12.5% kwa kitalu tupu, 0% kwenye ukubwa lengwa, hadi +12.5% kwa kitalu kinachofikia kikomo cha gesi. Kikomo cha gesi kinaweza kubadilika-badilika kadri muda unavyopita kulingana na ishara za wathibitishaji, na pia kupitia maboresho ya mtandao. Unaweza [kuona mabadiliko katika kikomo cha gesi kadiri muda unavyopita hapa](https://eth.blockscout.com/stats/averageGasLimit?interval=threeMonths). + +[Zaidi kuhusu vitalu](/developers/docs/blocks/) + +### Kukokotoa ada za gesi katika vitendo {#calculating-fees-in-practice} + +Unaweza kueleza waziwazi ni kiasi gani uko tayari kulipa ili muamala wako utekelezwe. Hata hivyo, watoa huduma wengi wa mkoba huweka moja kwa moja ada ya muamala inayopendekezwa (ada ya msingi + ada ya kipaumbele iliyopendekezwa) ili kupunguza ugumu kwa watumiaji wao. + +## Kwa nini ada ya gesi ipo? {#why-do-gas-fees-exist} + +Kiufupi, ada ya gesi husaidia kuifanya mtandao wa Ethereum kuwa na ulinzi wa kutosha. Kwa kuhitaji ada kwa kila hesabu inayotekelezwa kwenye mtandao, tunawazuia wahalifu wasijaze mtandao kwa vitu visivyo na maana. Ili kuepuka vitanzi visivyoisha vya bahati mbaya au vya uhasama au upotevu mwingine wa hesabu katika msimbo, kila muamala unahitajika kuweka kikomo cha hatua ngapi za hesabu za utekelezaji wa msimbo unazoweza kutumia. Kitengo cha msingi cha hesabu ni "gesi". + +Ingawa muamala unajumuisha kikomo, gesi yoyote isiyotumika katika muamala hurejeshwa kwa mtumiaji (k.m., `ada ya juu zaidi - (ada ya msingi + bakshishi)` hurejeshwa). + +![Mchoro unaoonyesha jinsi gesi isiyotumika inavyorejeshwa](../transactions/gas-tx.png) +_Mchoro umechukuliwa kutoka [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Nini ni kiwango cha gesi? {#what-is-gas-limit} + +Kikomo cha gesi hurejelea kiwango cha juu cha gesi unachotaka kutumia kwenye muamala. Miamala ngumu zaidi inayohusisha [mikataba-erevu](/developers/docs/smart-contracts/) huhitaji kazi zaidi ya kikokotozi, kwa hivyo huhitaji kikomo cha gesi cha juu zaidi kuliko malipo rahisi. Uhamisho wa kawaida wa ETH unahitaji kikomo cha gesi cha vitengo 21,000. + +Kwa mfano, ukiweka kikomo cha gesi cha 50,000 kwa uhamisho rahisi wa ETH, EVM itatumia 21,000, na utarudishiwa 29,000 vilivyobaki. Hata hivyo, ukiweka kiwango kidogo cha gesi, kwa mfano, kikomo cha gesi cha 20,000 kwa uhamisho rahisi wa ETH, muamala utashindikana wakati wa hatua ya uthibitisho. Utakataliwa kabla ya kujumuishwa kwenye kitalu, na hakuna gesi itakayotumiwa. Kwa upande mwingine, ikiwa muamala utaishiwa na gesi wakati wa utekelezaji (kwa mfano, mkataba mahiri unatumia gesi yote katikati ya mchakato), EVM itarudisha mabadiliko yoyote, lakini gesi yote iliyotolewa bado itatumiwa kwa kazi iliyofanywa. + +## Kwa nini ada ya gesi inaweza ikawa ya kiwango cha juu? {#why-can-gas-fees-get-so-high} + +Ada za juu za gesi zinatokana na umaarufu wa Ethereum. Ikiwa kuna mahitaji mengi mno, watumiaji wanapaswa kutoa kiasi cha juu zaidi cha ada ya kipaumbele ili kujaribu kushinda miamala ya watumiaji wengine. Ada ya kipaumbele ya juu inaweza kufanya muamala wako uwe na uwezekano mkubwa wa kuingia kwenye kitalu kinachofuata. Pia, programu tata zaidi za mikataba mahiri zinaweza kufanya shughuli nyingi kusaidia kazi zao, hivyo kuzifanya zitumie gesi nyingi. + +## Mipango ya kupunguza gharama za gesi {#initiatives-to-reduce-gas-costs} + +Maboresho ya [kuongeza uwezo](/roadmap/) wa Ethereum hatimaye yanapaswa kushughulikia baadhi ya masuala ya ada za gesi, ambayo, kwa upande wake, yatawezesha jukwaa kuchakata maelfu ya miamala kwa sekunde na kuongezeka kimataifa. + +Maboresho ya tabaka la pili ni mpango mkuu wa kuboresha kwa kiasi kikubwa gharama za gesi, uzoefu wa mtumiaji na uwezo wa mtandao. + +[Zaidi kuhusu uongezaji wa safu ya 2](/developers/docs/scaling/#layer-2-scaling) + +## Ufuatiliaji wa ada za gesi {#monitoring-gas-fees} + +Ikiwa ungependa kufuatilia bei za gesi, ili uweze kutuma ETH yako kwa bei nafuu, unaweza kutumia zana nyingi tofauti kama vile: + +- [Etherscan](https://etherscan.io/gastracker) _Kikadiriaji bei ya gesi ya muamala_ +- [Blockscout](https://eth.blockscout.com/gas-tracker) _Kikadiriaji bei ya gesi ya muamala cha chanzo huria_ +- [ETH Gas Tracker](https://www.ethgastracker.com/) _Fuatilia bei za gesi za Ethereum, na safu ya 2 ili kupunguza ada za muamala na kuokoa pesa_ +- [Blocknative ETH Gas Estimator](https://chrome.google.com/webstore/detail/blocknative-eth-gas-estim/ablbagjepecncofimgjmdpnhnfjiecfm) _Kiendelezi cha Chrome cha kukadiria gesi kinachoauni miamala ya urithi ya Aina 0 na miamala ya EIP-1559 ya Aina 2._ +- [Cryptoneur Gas Fees Calculator](https://www.cryptoneur.xyz/gas-fees-calculator) _Kokotoa ada za gesi katika sarafu ya nchi yako kwa aina tofauti za miamala kwenye Mtandao Mkuu, Arbitrum, na Polygon._ + +## Zana zinazohusiana {#related-tools} + +- [Blocknative's Gas Platform](https://www.blocknative.com/gas) _API ya kukadiria gesi inayoendeshwa na jukwaa la data la mempool la kimataifa la Blocknative_ +- [Gas Network](https://gas.network) Orakali za Gesi za Onchain. Inasaidia chaini 35+. + +## Masomo zaidi {#further-reading} + +- [Gesi ya Ethereum Imefafanuliwa](https://defiprime.com/gas) +- [Kupunguza matumizi ya gesi ya Mikataba-erevu yako](https://medium.com/coinmonks/8-ways-of-reducing-the-gas-consumption-of-your-smart-contracts-9a506b339c0a) +- [Mbinu za Uboreshaji wa Gesi kwa Wasanidi Programu](https://www.alchemy.com/overviews/solidity-gas-optimization) +- [Nyaraka za EIP-1559](https://eips.ethereum.org/EIPS/eip-1559). +- [Rasilimali za EIP-1559 za Tim Beiko](https://hackmd.io/@timbeiko/1559-resources) +- [EIP-1559: Kutenganisha Mbinu na Memes](https://web.archive.org/web/20241126205908/https://research.2077.xyz/eip-1559-separating-mechanisms-from-memes) diff --git a/public/content/translations/sw/developers/docs/ides/index.md b/public/content/translations/sw/developers/docs/ides/index.md new file mode 100644 index 00000000000..6d25abcbb2a --- /dev/null +++ b/public/content/translations/sw/developers/docs/ides/index.md @@ -0,0 +1,64 @@ +--- +title: Mazingira Jumuishi ya Maendeleo (IDEs) +description: Jifunze kuhusu IDE za wavuti na za eneo-kazi kwa ukuzaji wa Ethereum, ikijumuisha Remix, Msimbo wa VS, na programu jalizi maarufu. +lang: sw +--- + +Linapokuja suala la kusanidi [mazingira jumuishi ya usanidi (IDE)](https://wikipedia.org/wiki/Integrated_development_environment), kutayarisha programu kwenye Ethereum ni sawa na kutayarisha mradi mwingine wowote wa programu. Kuna chaguo nyingi za kuchagua, kwa hivyo mwisho wa siku, chagua IDE au kihariri cha msimbo ambacho kinafaa zaidi mapendeleo yako. Uwezekano mkubwa zaidi, chaguo bora zaidi cha IDE kwa ukuzaji wa Ethereum yako ni IDE ambayo tayari unatumia kutengeneza programu za kitamaduni. + +## IDE za Wavuti {#web-based-ides} + +Ikiwa unatazamia kuchezea msimbo kabla ya [kusanidi mazingira ya usanidi wa ndani](/developers/local-environment/), programu hizi za wavuti zimeundwa maalum kwa ajili ya usanidi wa mkataba-erevu wa Ethereum. + +**[Remix](https://remix.ethereum.org/)** - **_IDE ya wavuti yenye uchanganuzi tuli uliojengewa ndani, na mashine pepe ya majaribio ya mnyororo wa bloku_** + +- [Nyaraka](https://remix-ide.readthedocs.io/en/latest/#) +- [Gitter](https://gitter.im/ethereum/remix) + +**[ChainIDE](https://chainide.com/)** - **_IDE ya minyororo mingi inayotegemea wingu_** + +- [Nyaraka](https://chainide.gitbook.io/chainide-english-1/) +- [Jukwaa la usaidizi](https://forum.chainide.com/) + +**[Replit (Solidity Starter - Beta)](https://replit.com/@replit/Solidity-starter-beta)** - **_Mazingira ya usanidi yanayoweza kubinafsishwa kwa ajili ya Ethereum yenye upakiaji upya wa haraka, ukaguzi wa makosa, na usaidizi wa hali ya juu wa testnet_** + +- [Nyaraka](https://docs.replit.com/) + +**[Tenderly Sandbox](https://sandbox.tenderly.co/)** - **_Mazingira ya haraka ya kuunda mfano wa awali ambapo unaweza kuandika, kutekeleza, na kurekebisha mikataba-erevu kwenye kivinjari kwa kutumia Solidity na JavaScript_** + +**[EthFiddle](https://ethfiddle.com/)** - **_IDE ya wavuti inayokuruhusu kuandika, kukusanya, na kurekebisha mkataba-erevu wako_** + +- [Gitter](https://gitter.im/loomnetwork/ethfiddle) + +## IDE za Eneo-kazi {#desktop-ides} + +IDE nyingi zilizoanzishwa zimeunda programu-jalizi ili kuboresha uzoefu wa maendeleo wa Ethereum. Kwa uchache, hutoa uangaziaji wa sintaksia kwa [lugha za mkataba-erevu](/developers/docs/smart-contracts/languages/). + +**Visual Studio Code -** **_IDE ya kitaalamu ya mifumo mbalimbali yenye usaidizi rasmi wa Ethereum_** + +- [Visual Studio Code](https://code.visualstudio.com/) +- [Sampuli za msimbo](https://github.com/Azure-Samples/blockchain/blob/master/blockchain-workbench/application-and-smart-contract-samples/readme.md) +- [GitHub](https://github.com/microsoft/vscode) + +**JetBrains IDEs (IntelliJ IDEA, etc.) -** **_Essential tools for software developers and teams_** + +- [JetBrains](https://www.jetbrains.com/) +- [GitHub](https://github.com/JetBrains) +- [IntelliJ Solidity](https://github.com/intellij-solidity/intellij-solidity/) + +**Remix Desktop -** **_Tumia Remix IDE kwenye mashine yako_** + +- [Pakua](https://github.com/ethereum/remix-desktop/releases) +- [GitHub](https://github.com/ethereum/remix-desktop) + +## Programu-jalizi na viendelezi {#plugins-extensions} + +- [solidity](https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity) - Lugha ya Ethereum Solidity kwa ajili ya Visual Studio Code +- [Solidity + Hardhat for VS Code](https://marketplace.visualstudio.com/items?itemName=NomicFoundation.hardhat-solidity) - Usaidizi wa Solidity na Hardhat kutoka kwa timu ya Hardhat +- [Prettier Solidity](https://github.com/prettier-solidity/prettier-plugin-solidity) - Kiunda muundo wa msimbo kinachotumia prettier + +## Masomo zaidi {#further-reading} + +- [IDE za Ethereum](https://www.alchemy.com/list-of/web3-ides-on-ethereum) _- Orodha ya Alchemy ya IDE za Ethereum_ + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ diff --git a/public/content/translations/sw/developers/docs/index.md b/public/content/translations/sw/developers/docs/index.md new file mode 100644 index 00000000000..7125b796c61 --- /dev/null +++ b/public/content/translations/sw/developers/docs/index.md @@ -0,0 +1,25 @@ +--- +title: "''Nyaraka za maendeleo ya Ethereum.''" +description: "''Utangulizi wa nyaraka za watengenezaji kwenye ethereum.org." +lang: sw +--- + +''Nyaraka hizi zimeundwa kukusaidia kujenga kwa kutumia Ethereum.''. ''Inashughulikia Ethereum kama dhana, inaeleza mfumo wa kiteknolojia wa Ethereum, na inaandika mada za juu kwa matumizi na matumizi tata zaidi.''. + +''Huu ni mradi wa jamii wa chanzo huria, kwa hivyo jisikie huru kupendekeza mada mpya, kuongeza maudhui mapya na kutoa mifano wakati wowote unapofikiri inaweza kusaidia. Nyaraka zote zinaweza kuhaririwa kupitia GitHub – ikiwa huna uhakika jinsi ya kufanya, [fuata maagizo haya](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/editing-markdown.md). + +## Moduli za maendeleo {#development-modules} + +''Ikiwa hii ndio mara yako ya kwanza kujaribu maendeleo ya Ethereum, tunapendekeza uanze mwanzo na uendelee hatua kwa hatua kama vile unasoma kitabu.''. + +### Mada za msingi {#foundational-topics} + + + +### Rafu ya Ethereum {#ethereum-stack} + + + +### Ya hali ya juu {#advanced} + + diff --git a/public/content/translations/sw/developers/docs/intro-to-ether/index.md b/public/content/translations/sw/developers/docs/intro-to-ether/index.md new file mode 100644 index 00000000000..37d1ded9949 --- /dev/null +++ b/public/content/translations/sw/developers/docs/intro-to-ether/index.md @@ -0,0 +1,78 @@ +--- +title: "''Utangulizi wa kiufundi wa Ether''" +description: Utangulizi wa msanidi programu katika sarafu ya kripto. +lang: sw +--- + +## Mahitaji ya awali {#prerequisites} + +Ili kukusaidia kuelewa ukurasa huu vizuri, tunapendekeza usome kwanza [Utangulizi wa Ethereum](/developers/docs/intro-to-ethereum/). + +## Sarafu ya Kripto ni nini? {#what-is-a-cryptocurrency} + +Sarafu ya kripto ni njia ya mabadilishano inayolindwa na leja ya msingi wa mnyororo wa bloku. + +Njia ya mabadilishano ni kitu chochote kinacho kubaliwa na wengi kama malipo ya bidhaa na huduma na leja ni uhifadhi wa data ambao hufatilia miamala. Teknolojia ya mnyororo wa bloku inaruhusu watumiaji kufanya miamala klatika leja bila kutegemea mtu wa tatu anaye aminika kutunza leja. + +Sarafu ya kwanza ya kidijitali ilikuwa Bitcoin, iliyoundwa na Satoshi Nakamoto. Tangu kuanzishwa kwa Bitcoin mnamo mwaka 2009, watu wametengeneza maelfu ya sarafu za kidijitali katika minyororo wa bloku mbalimbali. + +## Ether ni nini? {#what-is-ether} + +**Ether (ETH)** ni sarafu ya kidigitali inayotumika kwa mambo mengi kwenye mtandao wa Ethereum. Kimsingi, ndiyo njia pekee inayokubalika ya malipo kwa ada za miamala, na baada ya [The Merge](/roadmap/merge), ether inahitajika ili kuthibitisha na kupendekeza vizuizi kwenye Mainnet. Ether pia hutumika kama aina ya msingi ya dhamana katika masoko ya ukopeshaji ya [DeFi](/defi), kama kipimo cha hesabu katika masoko ya NFT, kama malipo yanayopatikana kwa kutoa huduma au kuuza bidhaa halisi za ulimwengu, na zaidi. + +Ethereum inaruhusu wasanidi programu kuunda [**mfumo uliotawanywa (mfumo mtawanyo wa kimamlaka)**](/developers/docs/dapps), ambapo zote hushiriki bwawa la nguvu za kompyuta. ''Bwawa hili ni ndogo, hivyo Ethereum inahitaji utaratibu wa kuamua ni nani atakayelipata kulitumia.''. Vinginevyo, mfumo mtawanyo wa kimamlaka unaweza kwa bahati mbaya au kwa nia mbaya kutumia rasilimali zote za mtandao, jambo ambalo lingezuia wengine kuufikia. + +Sarafu ya kidigitali ya ether inasaidia utaratibu wa bei kwa nguvu za kompyuta za Ethereum. Watumiaji wanapotaka kufanya muamala, lazima walipe ether ili muamala wao utambuliwe kwenye mnyororo wa vizuizi. Gharama hizi za matumizi zinajulikana kama [ada za gesi](/developers/docs/gas/), na ada ya gesi inategemea kiasi cha nguvu ya kompyuta inayohitajika kutekeleza muamala na mahitaji ya mtandao mzima ya nguvu ya kompyuta kwa wakati huo. + +Kwa hivyo, hata kama mfumo mtawanyo wa kimamlaka wenye nia mbaya ungewasilisha kitanzi kisicho na kikomo, hatimaye muamala ungeishiwa na ether na kukoma, na kuruhusu mtandao kurudi katika hali ya kawaida. + +Ni [kawaida kuchanganya](https://abcnews.go.com/Business/bitcoin-slumps-week-low-amid-renewed-worries-chinese/story?id=78399845) Ethereum na ether — watu wanaporejelea "bei ya Ethereum," wanakuwa wanaelezea bei ya ether. + +## Kutengeneza ether {#minting-ether} + +Kutengeneza ni mchakato ambapo ether mpya huundwa kwenye leja ya Ethereum. Itifaki ya msingi ya Ethereum huunda ether mpya, na haiwezekani kwa mtumiaji kuunda ether. + +Ether hutengenezwa kama zawadi kwa kila kizuizi kinachopendekezwa na katika kila kituo cha ukaguzi cha epoch kwa shughuli zingine za mthibitishaji zinazohusiana na kufikia makubaliano. Jumla ya kiasi kilichotolewa inategemea idadi ya wathibitishaji na kiasi cha ether walichoweka kama hisa. Jumla ya utoaji huu umegawanywa kwa usawa miongoni mwa wathibitishaji katika hali bora ambapo wathibitishaji wote ni waaminifu na wako mtandaoni, lakini katika hali halisi, hutofautiana kulingana na utendaji wa mthibitishaji. Takriban 1/8 ya jumla ya utoaji huenda kwa mpendekezaji wa kizuizi; salio husambazwa kwa wathibitishaji wengine. Wapendekezaji wa vizuizi pia hupokea vidokezo kutoka kwa ada za miamala na mapato yanayohusiana na MEV, lakini hizi hutoka kwa ether iliyorejelezwa, si utoaji mpya. + +## Kuchoma ether {#burning-ether} + +Pamoja na kuunda ether kupitia zawadi za vizuizi, ether inaweza kuharibiwa kupitia mchakato unaoitwa 'kuchoma'. Wakati ether inapochomwa, huondolewa kwenye mzunguko kabisa. + +Uchomaji wa Ether hutokea katika kila muamala kwenye Ethereum. Watumiaji wanapolipa miamala yao, ada ya msingi ya gesi, iliyowekwa na mtandao kulingana na mahitaji ya miamala, huharibiwa. Hii, pamoja na ukubwa wa vizuizi unaobadilika na ada ya juu zaidi ya gesi, hurahisisha ukadiriaji wa ada ya muamala kwenye Ethereum. Mahitaji ya mtandao yanapokuwa juu, [vizuizi](https://eth.blockscout.com/block/22580057) vinaweza kuchoma ether nyingi kuliko wanavyotengeneza, na hivyo kusawazisha utoaji wa ether. + +Kuchoma ada ya msingi kunazuia uwezo wa mzalishaji wa kizuizi kuchezea miamala. Kwa mfano, kama wazalishaji wa vizuizi wangepokea ada ya msingi, wangeweza kujumuisha miamala yao bila malipo na kuongeza ada ya msingi kwa kila mtu mwingine. Vinginevyo, wangeweza kurejesha ada ya msingi kwa baadhi ya watumiaji nje ya mnyororo, na kusababisha soko la ada ya miamala lisilo wazi na gumu zaidi. + +## Madhehebu ya ether {#denominations} + +Kwa kuwa thamani ya miamala mingi kwenye Ethereum ni ndogo, ether ina madhehebu kadhaa ambayo yanaweza kurejelewa kama vipimo vidogo vya hesabu. Kati ya madhehebu haya, Wei na gwei ni muhimu hasa. + +Wei ni kiasi kidogo zaidi cha ether kinachowezekana, na matokeo yake, utekelezaji mwingi wa kiufundi, kama vile [Karatasi ya Njano ya Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf), utategemea mahesabu yote katika Wei. + +Gwei, kifupi cha giga-wei, hutumiwa mara kwa mara kuelezea gharama za gesi kwenye Ethereum. + +| Dhehebu | Thamani katika ether | Matumizi ya Kawaida | +| ------- | -------------------- | ------------------------------------------ | +| Wei | 10-18 | Utekelezaji wa kiufundi | +| Gwei | 10-9 | Ada za gesi zinazoweza kusomwa na binadamu | + +## Kuhamisha ether {#transferring-ether} + +Kila muamala kwenye Ethereum una sehemu ya `value`, ambayo hubainisha kiasi cha ether kitakachohamishwa, kilichoonyeshwa kwa wei, kutumwa kutoka kwa anwani ya mtumaji hadi anwani ya mpokeaji. + +Wakati anwani ya mpokeaji ni [mkataba mahiri](/developers/docs/smart-contracts/), ether hii iliyohamishwa inaweza kutumika kulipia gesi wakati mkataba mahiri unapotekeleza msimbo wake. + +[Zaidi kuhusu miamala](/developers/docs/transactions/) + +## Kuuliza kuhusu ether {#querying-ether} + +Watumiaji wanaweza kuuliza kuhusu salio la ether la [akaunti](/developers/docs/accounts/) yoyote kwa kukagua sehemu ya `balance` ya akaunti, ambayo huonyesha umiliki wa ether ulioonyeshwa kwa wei. + +[Etherscan](https://etherscan.io) na [Blockscout](https://eth.blockscout.com) ni zana maarufu za kukagua salio za anwani kupitia programu za wavuti. Kwa mfano, [ukurasa huu wa Blockscout](https://eth.blockscout.com/address/0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe) unaonyesha salio la Wakfu wa Ethereum. Salio za akaunti pia zinaweza kuhojiwa kwa kutumia mikoba au moja kwa moja kwa kufanya maombi kwa nodi. + +## Masomo zaidi {#further-reading} + +- [Kufafanua ether na Ethereum](https://www.cmegroup.com/education/courses/introduction-to-ether/defining-ether-and-ethereum.html) – _Kundi la CME_ +- [Karatasi Nyeupe ya Ethereum](/whitepaper/): Pendekezo la asili la Ethereum. Hati hii inajumuisha maelezo ya ether na motisha nyuma ya uundaji wake. +- [Kikokotoo cha Gwei](https://www.alchemy.com/gwei-calculator): Tumia kikokotoo hiki cha gwei kubadilisha wei, gwei na ether kwa urahisi. Weka tu kiasi chochote cha wei, gwei, au ETH na uhesabu ubadilishaji kiotomatiki. + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ diff --git a/public/content/translations/sw/developers/docs/intro-to-ethereum/index.md b/public/content/translations/sw/developers/docs/intro-to-ethereum/index.md new file mode 100644 index 00000000000..4c73eaad07d --- /dev/null +++ b/public/content/translations/sw/developers/docs/intro-to-ethereum/index.md @@ -0,0 +1,124 @@ +--- +title: Utangulizi wa kiufundi wa Ethereum +description: Utangulizi wa msanidi programu wa dapp kwa dhana za msingi za Ethereum. +lang: sw +--- + +## Blockchain ni nini? {#what-is-a-blockchain} + +Mnyororo wa bloku ni hifadhidata ya umma ambayo husasishwa na kushirikiwa katika kompyuta nyingi kwenye mtandao. + +"Bloku" inarejelea data na hali kuhifadhiwa katika makundi mfululizo yanayojulikana kama "bloku". Ukimtumia mtu mwingine ETH, data ya muamala inahitaji kuongezwa kwenye bloku ili ifanikiwe. + +"Mnyororo" inarejelea ukweli kwamba kila bloku hurejelea bloku iliyotangulia kwa njia ya kriptografia. Kwa maneno mengine, bloku huunganishwa pamoja. Data katika bloku haiwezi kubadilika bila kubadilisha bloku zote zinazofuata, jambo ambalo lingehitaji makubaliano ya mtandao mzima. + +Kila kompyuta kwenye mtandao lazima ikubaliane juu ya kila bloku mpya na mnyororo kwa ujumla. Kompyuta hizi zinajulikana kama "nodi". Nodi huhakikisha kila mtu anayeingiliana na mnyororo wa bloku ana data sawa. Ili kukamilisha makubaliano haya yaliyosambazwa, minyororo ya bloku inahitaji utaratibu wa makubaliano. + +Ethereum hutumia [utaratibu wa makubaliano unaotegemea uthibitisho-wa-hisa](/developers/docs/consensus-mechanisms/pos/). Yeyote anayetaka kuongeza bloku mpya kwenye mnyororo lazima aweke hisa ya ETH - sarafu asili ya Ethereum - kama dhamana na aendeshe programu ya mthibitishaji. "Wathibitishaji" hawa wanaweza kisha kuchaguliwa kwa nasibu kupendekeza bloku ambazo wathibitishaji wengine huangalia na kuongeza kwenye mnyororo wa bloku. Kuna mfumo wa zawadi na adhabu unaowahamasisha sana washiriki kuwa waaminifu na kupatikana mtandaoni kadri iwezekanavyo. + +Ikiwa ungependa kuona jinsi data ya mnyororo wa bloku inavyopigwa hashi na kisha kuongezwa kwenye historia ya marejeleo ya bloku, hakikisha umeangalia [onyesho hili](https://andersbrownworth.com/blockchain/blockchain) la Anders Brownworth na utazame video inayoambatana hapa chini. + +Tazama Anders akielezea hashi katika minyororo ya bloku: + + + +## Ethereum ni nini? {#what-is-ethereum} + +Ethereum ni mnyororo wa bloku wenye kompyuta iliyopachikwa ndani yake. Ni msingi wa kujenga programu na mashirika kwa njia iliyogatuliwa, isiyo na ruhusa, na inayostahimili udhibiti. + +Katika ulimwengu wa Ethereum, kuna kompyuta moja, ya kisheria (inayoitwa Mashine Halisi ya Ethereum, au EVM) ambayo hali yake kila mtu kwenye mtandao wa Ethereum anakubaliana nayo. Kila mtu anayeshiriki katika mtandao wa Ethereum (kila nodi ya Ethereum) huweka nakala ya hali ya kompyuta hii. Zaidi ya hayo, mshiriki yeyote anaweza kutangaza ombi kwa kompyuta hii kufanya hesabu yoyote. Wakati wowote ombi kama hilo linapotangazwa, washiriki wengine kwenye mtandao huhakiki, huthibitisha, na kutekeleza ("execute") hesabu hiyo. Utekelezaji huu husababisha mabadiliko ya hali katika EVM, ambayo huwekwa na kuenezwa katika mtandao mzima. + +Maombi ya hesabu huitwa maombi ya muamala; rekodi ya miamala yote na hali ya sasa ya EVM huhifadhiwa kwenye mnyororo wa bloku, ambayo nayo huhifadhiwa na kukubaliwa na nodi zote. + +Taratibu za kriptografia huhakikisha kwamba mara tu miamala inapohakikiwa kuwa halali na kuongezwa kwenye mnyororo wa bloku, haiwezi kuchezewa baadaye. Taratibu hizo hizo pia huhakikisha kwamba miamala yote inasainiwa na kutekelezwa kwa "ruhusa" zinazofaa (hakuna mtu anayepaswa kuweza kutuma mali za kidijitali kutoka kwa akaunti ya Alice, isipokuwa Alice mwenyewe). + +## Ether ni nini? {#what-is-ether} + +**Ether (ETH)** ni sarafu asili ya kidijitali ya Ethereum. Madhumuni ya ETH ni kuruhusu soko la hesabu. Soko kama hilo hutoa motisha wa kiuchumi kwa washiriki kuhakiki na kutekeleza maombi ya muamala na kutoa rasilimali za kikokotozi kwa mtandao. + +Mshiriki yeyote anayetangaza ombi la muamala lazima pia atoe kiasi fulani cha ETH kwa mtandao kama fadhila. Mtandao utachoma sehemu ya fadhila na kutoa zawadi ya iliyobaki kwa yeyote atakayefanya kazi ya kuhakiki muamala, kuutekeleza, kuuweka kwenye mnyororo wa bloku, na kuutangaza kwenye mtandao. + +Kiasi cha ETH kinacholipwa kinalingana na rasilimali zinazohitajika kufanya hesabu. Fadhila hizi pia huzuia washiriki wenye nia mbaya kuziba mtandao kimakusudi kwa kuomba utekelezaji wa hesabu isiyo na kikomo au hati zingine zinazotumia rasilimali nyingi, kwani washiriki hawa lazima walipe rasilimali za hesabu. + +ETH pia hutumika kutoa usalama wa kiuchumi wa kikripto kwa mtandao kwa njia tatu kuu: 1) hutumika kama njia ya kuwazawadia wathibitishaji wanaopendekeza bloku au kuripoti tabia isiyo ya uaminifu ya wathibitishaji wengine; 2) Huwekwa hisa na wathibitishaji, ikifanya kazi kama dhamana dhidi ya tabia isiyo ya uaminifu—ikiwa wathibitishaji watajaribu kutenda isivyofaa ETH yao inaweza kuharibiwa; 3) hutumika kupima 'kura' za bloku mpya zilizopendekezwa, na kuchangia katika sehemu ya uteuzi wa uma ya utaratibu wa makubaliano. + +## Mikataba erevu ni nini? {#what-are-smart-contracts} + +Katika utendaji, washiriki hawaandiki msimbo mpya kila mara wanapotaka kuomba hesabu kwenye EVM. Badala yake, wasanidi programu wa programu-tumizi hupakia programu (vijisehemu vya msimbo vinavyoweza kutumika tena) kwenye hali ya EVM, na watumiaji hufanya maombi ya kutekeleza vijisehemu hivi vya msimbo na vigezo mbalimbali. Programu zilizopakiwa na kutekelezwa na mtandao tunaziita "mikataba-erevu". + +Katika kiwango cha msingi kabisa, unaweza kufikiria mkataba-erevu kama aina ya mashine ya kuuza bidhaa: hati ambayo, inapoitwa na vigezo fulani, hufanya vitendo au hesabu fulani ikiwa masharti fulani yametimizwa. Kwa mfano, mkataba-erevu rahisi wa muuzaji unaweza kuunda na kugawa umiliki wa mali ya kidijitali ikiwa mpigaji atatuma ETH kwa mpokeaji maalum. + +Msanidi programu yeyote anaweza kuunda mkataba-erevu na kuuafanya kuwa wa umma kwa mtandao, akitumia mnyororo wa bloku kama safu yake ya data, kwa ada inayolipwa kwa mtandao. Mtumiaji yeyote anaweza kisha kuita mkataba-erevu kutekeleza msimbo wake, tena kwa ada inayolipwa kwa mtandao. + +Hivyo, kwa kutumia mikataba-erevu, wasanidi programu wanaweza kujenga na kupeleka programu na huduma changamano zinazoelekezwa kwa watumiaji kama vile: masoko, vyombo vya kifedha, michezo, n.k. + +## Istilahi {#terminology} + +### Mnyororo wa bloku {#blockchain} + +Mfuatano wa bloku zote ambazo zimewekwa kwenye mtandao wa Ethereum katika historia ya mtandao. Imeitwa hivyo kwa sababu kila bloku ina rejeleo la bloku iliyotangulia, jambo ambalo hutusaidia kudumisha mpangilio juu ya bloku zote (na hivyo juu ya historia sahihi). + +### ETH {#eth} + +**Ether (ETH)** ni sarafu asili ya kidijitali ya Ethereum. Watumiaji hulipa ETH kwa watumiaji wengine ili maombi yao ya utekelezaji wa msimbo yatimizwe. + +[Zaidi kuhusu ETH](/developers/docs/intro-to-ether/) + +### EVM {#evm} + +Mashine Halisi ya Ethereum ni kompyuta halisi ya kimataifa ambayo hali yake kila mshiriki kwenye mtandao wa Ethereum huhifadhi na kukubaliana nayo. Mshiriki yeyote anaweza kuomba utekelezaji wa msimbo wowote kwenye EVM; utekelezaji wa msimbo hubadilisha hali ya EVM. + +[Zaidi kuhusu EVM](/developers/docs/evm/) + +### Nodi {#nodes} + +Mashine halisi za maisha zinazohifadhi hali ya EVM. Nodi huwasiliana ili kueneza taarifa kuhusu hali ya EVM na mabadiliko mapya ya hali. Mtumiaji yeyote anaweza pia kuomba utekelezaji wa msimbo kwa kutangaza ombi la utekelezaji wa msimbo kutoka kwa nodi. Mtandao wa Ethereum wenyewe ni jumla ya nodi zote za Ethereum na mawasiliano yao. + +[Zaidi kuhusu nodi](/developers/docs/nodes-and-clients/) + +### Akaunti {#accounts} + +Ambapo ETH huhifadhiwa. Watumiaji wanaweza kuanzisha akaunti, kuweka ETH kwenye akaunti, na kuhamisha ETH kutoka kwa akaunti zao kwenda kwa watumiaji wengine. Akaunti na salio la akaunti huhifadhiwa katika jedwali kubwa katika EVM; ni sehemu ya hali ya jumla ya EVM. + +[Zaidi kuhusu akaunti](/developers/docs/accounts/) + +### Miamala {#transactions} + +"Ombi la muamala" ni neno rasmi la ombi la utekelezaji wa msimbo kwenye EVM, na "muamala" ni ombi la muamala lililotimizwa na mabadiliko yanayohusiana katika hali ya EVM. Mtumiaji yeyote anaweza kutangaza ombi la muamala kwa mtandao kutoka kwa nodi. Ili ombi la muamala liathiri hali ya EVM iliyokubaliwa, lazima lithibitishwe, litekelezwe, na "kuwekwa kwenye mtandao" na nodi nyingine. Utekelezaji wa msimbo wowote husababisha mabadiliko ya hali katika EVM; baada ya kuwekwa, mabadiliko haya ya hali hutangazwa kwa nodi zote kwenye mtandao. Baadhi ya mifano ya miamala: + +- Tuma X ETH kutoka kwa akaunti yangu kwenda kwa akaunti ya Alice. +- Chapisha msimbo fulani wa mkataba-erevu kwenye hali ya EVM. +- Tekeleza msimbo wa mkataba-erevu kwenye anwani X katika EVM, na hoja Y. + +[Zaidi kuhusu miamala](/developers/docs/transactions/) + +### Bloku {#blocks} + +Idadi ya miamala ni kubwa sana, kwa hivyo miamala "huwekwa" kwa makundi, au bloku. Kwa ujumla bloku huwa na miamala kadhaa hadi mamia. + +[Zaidi kuhusu vitalu](/developers/docs/blocks/) + +### Mikataba-erevu {#smart-contracts} + +Kijisehemu cha msimbo kinachoweza kutumika tena (programu) ambacho msanidi programu huchapisha kwenye hali ya EVM. Mtu yeyote anaweza kuomba msimbo wa mkataba-erevu utekelezwe kwa kufanya ombi la muamala. Kwa sababu wasanidi programu wanaweza kuandika programu-tumizi zozote zinazoweza kutekelezwa kwenye EVM (michezo, masoko, vyombo vya kifedha, n.k.) kwa kuchapisha mikataba-erevu, hizi mara nyingi huitwa [dapps, au Programu Zilizogatuliwa](/developers/docs/dapps/). + +[Zaidi kuhusu mikataba-erevu](/developers/docs/smart-contracts/) + +## Masomo zaidi {#further-reading} + +- [Waraka Rasmi wa Ethereum](/whitepaper/) +- [Ethereum inafanyaje kazi, hata hivyo?](https://medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369) - _Preethi Kasireddy_ (**NB** rasilimali hii bado ni ya thamani lakini fahamu kuwa ni ya kabla ya [Muungano](/roadmap/merge) na kwa hiyo bado inarejelea utaratibu wa uthibitisho-wa-kazi wa Ethereum - Ethereum kwa kweli sasa inalindwa kwa kutumia [uthibitisho-wa-hisa](/developers/docs/consensus-mechanisms/pos)) + +### Wewe ni mwanafunzi wa kuona zaidi? {#visual-learner} + +Mfululizo huu wa video unatoa uchunguzi wa kina wa mada za msingi: + + + +[Orodha ya kucheza ya Misingi ya Ethereum](https://youtube.com/playlist?list=PLqgutSGloqiJyyoL0zvLVFPS-GMD2wKa5&si=kZTf5I7PKGTXDsOZ) + +_Unajua rasilimali ya jamii iliyokusaidia?_ Hariri ukurasa huu na uiongeze!_ + +## Mafunzo yanayohusiana {#related-tutorials} + +- [Mwongozo wa msanidi programu wa Ethereum, sehemu ya 1](/developers/tutorials/a-developers-guide-to-ethereum-part-one/) _– Uchunguzi rahisi sana kwa wanaoanza wa Ethereum kwa kutumia Python na web3.py_ diff --git a/public/content/translations/sw/developers/docs/mev/index.md b/public/content/translations/sw/developers/docs/mev/index.md new file mode 100644 index 00000000000..77aa60726c6 --- /dev/null +++ b/public/content/translations/sw/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: Thamani inayoweza kutolewa (MEV) +description: Utangulizi wa thamani inayoweza kutolewa (MEV) +lang: sw +--- + +Thamani ya juu ambayo inaweza kutolewa (MEV) inarejelea thamani ya juu zaidi inayoweza kutolewa kutoka kwa uzalishaji wa vizuizi zaidi ya zawadi ya kawaida ya kizuizi na ada za gesi kwa kujumuisha, kutojumuisha, na kubadilisha mpangilio wa miamala katika kizuizi. + +## Thamani ya juu ambayo inaweza kutolewa {#maximal-extractable-value} + +Thamani ya juu ambayo inaweza kutolewa ilitumika kwa mara ya kwanza katika muktadha wa [uthibitishaji-wa-kazi](/developers/docs/consensus-mechanisms/pow/), na awali ilijulikana kama "thamani inayoweza kutolewa na mchimbaji". Hii ni kwa sababu katika uthibitishaji-wa-kazi, wachimbaji hudhibiti ujumuishaji, utengaji, na upangaji wa miamala. Hata hivyo, tangu kipindi cha mpito hadi uthibitisho-wa-dau kupitia [Muungano](/roadmap/merge) wathibitishaji wamekuwa na jukumu la majukumu haya, na uchimbaji si sehemu ya itifaki ya Ethereum tena. Mbinu za utoaji wa thamani bado zipo, ingawa, kwa hivyo neno "Thamani ya juu ambayo inaweza kutolewa" sasa linatumika badala yake. + +## Mahitaji ya awali {#prerequisites} + +Hakikisha unafahamu [miamala](/developers/docs/transactions/), [vizuizi](/developers/docs/blocks/), [uthibitisho-wa-dau](/developers/docs/consensus-mechanisms/pos) na [gesi](/developers/docs/gas/). Ufahamu wa [mfumo mtawanyo wa kimamlaka](/apps/) na [DeFi](/defi/) pia ni muhimu. + +## Utoaji wa MEV {#mev-extraction} + +Kinadharia, MEV huenda kabisa kwa wathibitishaji kwa sababu wao ndio upande pekee unaoweza kuhakikisha utekelezaji wa fursa ya MEV yenye faida. Katika vitendo, hata hivyo, sehemu kubwa ya MEV inatolewa na washiriki huru wa mtandao wanaojulikana kama "watafutaji." Watafutaji huendesha algoriti changamano kwenye data ya mnyororo wa vizuizi ili kugundua fursa za MEV zenye faida na wana boti za kuwasilisha kiotomatiki miamala hiyo yenye faida kwenye mtandao. + +Wathibitishaji hupata sehemu ya kiasi kamili cha MEV kwa vyovyote vile kwa sababu watafutaji wako tayari kulipa ada za juu za gesi (zinazokwenda kwa mthibitishaji) badala ya uwezekano mkubwa wa kujumuishwa kwa miamala yao yenye faida katika kizuizi. Kwa kudhania watafutaji wana busara kiuchumi, ada ya gesi ambayo mtafutaji yuko tayari kulipa itakuwa kiasi cha hadi 100% ya MEV ya mtafutaji (kwa sababu ikiwa ada ya gesi ingekuwa kubwa zaidi, mtafutaji angepoteza pesa). + +Pamoja na hayo, kwa baadhi ya fursa za MEV zenye ushindani mkubwa, kama vile [usuluhishi wa DEX](#mev-examples-dex-arbitrage), watafutaji wanaweza kulazimika kulipa 90% au hata zaidi ya mapato yao yote ya MEV katika ada za gesi kwa mthibitishaji kwa sababu watu wengi sana wanataka kuendesha biashara sawa ya usuluhishi yenye faida. Hii ni kwa sababu njia pekee ya kuhakikisha kuwa muamala wao wa usuluhishi unafanyika ni ikiwa watawasilisha muamala huo na bei ya juu zaidi ya gesi. + +### Gofu ya gesi {#mev-extraction-gas-golfing} + +Mwenendo huu umefanya kuwa mzuri katika "gofu ya gesi" — kupanga miamala ili itumie kiasi kidogo zaidi cha gesi — faida ya ushindani, kwa sababu inaruhusu watafutaji kuweka bei ya juu ya gesi huku wakiweka ada zao zote za gesi kuwa za kudumu (kwa kuwa ada za gesi = bei ya gesi \* gesi iliyotumika). + +Mbinu chache zinazojulikana za gofu ya gesi ni pamoja na: kutumia anwani zinazoanza na msururu mrefu wa sufuri (k.m., [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://eth.blockscout.com/address/0x0000000000C521824EaFf97Eac7B73B084ef9306)) kwa kuwa zinachukua nafasi ndogo (na hivyo gesi) kuhifadhi; na kuacha salio dogo la tokeni za [ERC-20](/developers/docs/standards/tokens/erc-20/) katika mikataba, kwa kuwa inagharimu gesi nyingi zaidi kuanzisha nafasi ya kuhifadhi (ikiwa salio ni 0) kuliko kusasisha nafasi ya kuhifadhi. Kutafuta mbinu zaidi za kupunguza matumizi ya gesi ni eneo tendaji la utafiti miongoni mwa watafutaji. + +### Waendeshaji wa mbele wa jumla {#mev-extraction-generalized-frontrunners} + +Badala ya kupanga algoriti changamano ili kugundua fursa za MEV zenye faida, baadhi ya watafutaji huendesha waendeshaji wa mbele wa jumla. Waendeshaji wa mbele wa jumla ni boti zinazotazama mempool ili kugundua miamala yenye faida. Mwendeshaji wa mbele atanakili msimbo wa muamala unaoweza kuwa na faida, atabadilisha anwani na anwani ya mwendeshaji wa mbele, na kuendesha muamala huo ndani ya nchi ili kuhakikisha mara mbili kuwa muamala uliobadilishwa unasababisha faida kwa anwani ya mwendeshaji wa mbele. Ikiwa muamala una faida kweli, mwendeshaji wa mbele atawasilisha muamala uliobadilishwa na anwani iliyobadilishwa na bei ya juu ya gesi, "akiendesha mbele" muamala wa asili na kupata MEV ya mtafutaji wa asili. + +### Flashbots {#mev-extraction-flashbots} + +Flashbots ni mradi huru unaopanua wateja wa utekelezaji kwa huduma inayoruhusu watafutaji kuwasilisha miamala ya MEV kwa wathibitishaji bila kuifichua kwa mempool ya umma. Hii inazuia miamala kuendeshwa mbele na waendeshaji wa mbele wa jumla. + +## Mifano ya MEV {#mev-examples} + +MEV hujitokeza kwenye mnyororo wa vizuizi kwa njia chache. + +### Usuluhishi wa DEX {#mev-examples-dex-arbitrage} + +Usuluhishi wa [Badilishano lililogatuliwa](/glossary/#dex) (DEX) ni fursa rahisi na inayojulikana zaidi ya MEV. Kutokana na hilo, pia ndiyo yenye ushindani mkubwa zaidi. + +Inafanya kazi kama hivi: ikiwa DEX mbili zinatoa tokeni kwa bei mbili tofauti, mtu anaweza kununua tokeni kwenye DEX ya bei ya chini na kuiuza kwenye DEX ya bei ya juu katika muamala mmoja, wa atomiki. Shukrani kwa mbinu za mnyororo wa vizuizi, huu ni usuluhishi wa kweli, usio na hatari. + +[Huu ni mfano](https://eth.blockscout.com/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) wa muamala wa usuluhishi wenye faida ambapo mtafutaji aligeuza ETH 1,000 kuwa ETH 1,045 kwa kutumia fursa ya bei tofauti za jozi ya ETH/DAI kwenye Uniswap dhidi ya Sushiswap. + +### Ufilisi {#mev-examples-liquidations} + +Ufilisi wa itifaki ya kukopesha unatoa fursa nyingine inayojulikana ya MEV. + +Itifaki za kukopesha kama Maker na Aave zinahitaji watumiaji kuweka dhamana fulani (k.m., ETH). Dhamana hii iliyowekwa kisha hutumiwa kuwakopesha watumiaji wengine. + +Watumiaji wanaweza kisha kukopa mali na tokeni kutoka kwa wengine kulingana na kile wanachohitaji (k.m., unaweza kukopa MKR ikiwa unataka kupiga kura katika pendekezo la utawala la MakerDAO) hadi asilimia fulani ya dhamana yao iliyowekwa. Kwa mfano, ikiwa kiasi cha kukopa ni cha juu cha 30%, mtumiaji anayeweka DAI 100 kwenye itifaki anaweza kukopa hadi thamani ya DAI 30 ya mali nyingine. Itifaki huamua asilimia kamili ya uwezo wa kukopa. + +Kadiri thamani ya dhamana ya mkopaji inavyobadilika, ndivyo uwezo wake wa kukopa unavyobadilika pia. Ikiwa, kutokana na mabadiliko ya soko, thamani ya mali zilizokopwa inazidi, tuseme, 30% ya thamani ya dhamana yao (tena, asilimia kamili huamuliwa na itifaki), itifaki kwa kawaida inaruhusu mtu yeyote kufilisi dhamana, na kuwalipa wakopeshaji papo hapo (hii ni sawa na jinsi [simu za kando](https://www.investopedia.com/terms/m/margincall.asp) zinavyofanya kazi katika fedha za jadi). Ikifilisiwa, mkopaji kwa kawaida hulazimika kulipa ada kubwa ya ufilisi, ambayo baadhi yake huenda kwa mfilisi — hapa ndipo fursa ya MEV inapoingia. + +Watafutaji hushindana kuchanganua data ya mnyororo wa vizuizi haraka iwezekanavyo ili kubaini ni wakopaji gani wanaweza kufilisiwa na kuwa wa kwanza kuwasilisha muamala wa ufilisi na kujikusanyia ada ya ufilisi. + +### Biashara ya sandwich {#mev-examples-sandwich-trading} + +Biashara ya sandwich ni njia nyingine ya kawaida ya utoaji wa MEV. + +Ili kufanya biashara ya sandwich, mtafutaji atatazama mempool kwa biashara kubwa za DEX. Kwa mfano, tuseme mtu anataka kununua UNI 10,000 kwa DAI kwenye Uniswap. Biashara ya ukubwa huu itakuwa na athari kubwa kwa jozi ya UNI/DAI, na uwezekano wa kuongeza bei ya UNI kwa kiasi kikubwa ikilinganishwa na DAI. + +Mtafutaji anaweza kukokotoa takriban athari ya bei ya biashara hii kubwa kwenye jozi ya UNI/DAI na kutekeleza agizo bora la ununuzi mara moja _kabla_ ya biashara kubwa, akinunua UNI kwa bei nafuu, kisha atekeleze agizo la kuuza mara moja _baada_ ya biashara kubwa, akiuza kwa bei ya juu iliyosababishwa na agizo kubwa. + +Biashara ya sandwich, hata hivyo, ina hatari zaidi kwani si ya atomiki (tofauti na usuluhishi wa DEX, kama ilivyoelezwa hapo juu) na inaweza kushambuliwa na [shambulio la salmonella](https://github.com/Defi-Cartel/salmonella). + +### NFT MEV {#mev-examples-nfts} + +MEV katika nafasi ya NFT ni jambo linaloibuka, na si lazima liwe na faida. + +Hata hivyo, kwa kuwa miamala ya NFT hufanyika kwenye mnyororo wa vizuizi uleule unaoshirikiwa na miamala mingine yote ya Ethereum, watafutaji wanaweza kutumia mbinu sawa na zile zinazotumiwa katika fursa za jadi za MEV katika soko la NFT pia. + +Kwa mfano, ikiwa kuna toleo maarufu la NFT na mtafutaji anataka NFT fulani au seti ya NFT, anaweza kupanga muamala ili awe wa kwanza kwenye mstari wa kununua NFT, au anaweza kununua seti nzima ya NFT katika muamala mmoja. Au ikiwa NFT [imeorodheshwa kimakosa kwa bei ya chini](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), mtafutaji anaweza kuwatangulia wanunuzi wengine na kuinyakua kwa bei nafuu. + +Mfano mmoja maarufu wa NFT MEV ulitokea wakati mtafutaji alitumia dola milioni 7 [kununua](https://eth.blockscout.com/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5?tab=txs) kila Cryptopunk moja kwa bei ya chini kabisa. Mtafiti wa mnyororo wa vizuizi [alielezea kwenye Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) jinsi mnunuzi alivyofanya kazi na mtoa huduma wa MEV kuweka ununuzi wao kuwa siri. + +### Mkia mrefu {#mev-examples-long-tail} + +Usuluhishi wa DEX, ufilisi, na biashara ya sandwich zote ni fursa zinazojulikana sana za MEV na hakuna uwezekano wa kuwa na faida kwa watafutaji wapya. Hata hivyo, kuna mkia mrefu wa fursa za MEV zisizojulikana sana (NFT MEV bila shaka ni fursa mojawapo). + +Watafutaji ambao wanaanza wanaweza kupata mafanikio zaidi kwa kutafuta MEV katika mkia huu mrefu. Ubao wa kazi wa [MEV wa Flashbot](https://github.com/flashbots/mev-job-board) unaorodhesha baadhi ya fursa zinazoibuka. + +## Athari za MEV {#effects-of-mev} + +MEV sio mbaya kabisa - kuna matokeo chanya na hasi kwa MEV kwenye Ethereum. + +### Mema {#effects-of-mev-the-good} + +Miradi mingi ya DeFi inategemea watendaji wenye busara kiuchumi ili kuhakikisha manufaa na uthabiti wa itifaki zao. Kwa mfano, usuluhishi wa DEX huhakikisha kuwa watumiaji wanapata bei bora na sahihi zaidi kwa tokeni zao, na itifaki za kukopesha hutegemea ufilisi wa haraka wakati wakopaji wanaposhuka chini ya uwiano wa dhamana ili kuhakikisha wakopeshaji wanalipwa. + +Bila watafutaji wenye busara wanaotafuta na kurekebisha mapungufu ya kiuchumi na kutumia fursa za motisha za kiuchumi za itifaki, itifaki za DeFi na mfumo mtawanyo wa kimamlaka kwa ujumla huenda zisiwe imara kama zilivyo leo. + +### Mabaya {#effects-of-mev-the-bad} + +Katika safu ya matumizi, baadhi ya aina za MEV, kama vile biashara ya sandwich, husababisha uzoefu mbaya kabisa kwa watumiaji. Watumiaji ambao wamefanyiwa biashara ya sandwich wanakabiliwa na ongezeko la slippage na utekelezaji mbaya zaidi wa biashara zao. + +Katika safu ya mtandao, waendeshaji wa mbele wa jumla na minada ya bei za gesi wanayoshiriki mara kwa mara (wakati waendeshaji wa mbele wawili au zaidi wanaposhindana ili muamala wao ujumuishwe katika kizuizi kinachofuata kwa kuongeza bei ya gesi ya miamala yao wenyewe) husababisha msongamano wa mtandao na bei za juu za gesi kwa kila mtu mwingine anayejaribu kufanya miamala ya kawaida. + +Zaidi ya kile kinachotokea _ndani_ ya vizuizi, MEV inaweza kuwa na athari mbaya _kati_ ya vizuizi. Ikiwa MEV inayopatikana katika kizuizi inazidi kwa kiasi kikubwa zawadi ya kawaida ya kizuizi, wathibitishaji wanaweza kushawishika kupanga upya vizuizi na kunasa MEV kwa ajili yao wenyewe, na kusababisha upangaji upya wa mnyororo wa vizuizi na kukosekana kwa uthabiti wa makubaliano. + +Uwezekano huu wa upangaji upya wa mnyororo wa vizuizi [umewahi kuchunguzwa hapo awali kwenye mnyororo wa vizuizi wa Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). Kadiri zawadi ya kizuizi cha Bitcoin inapopungua kwa nusu na ada za muamala zinavyochukua sehemu kubwa na kubwa zaidi ya zawadi ya kizuizi, hali hutokea ambapo inakuwa na busara kiuchumi kwa wachimbaji kuacha zawadi ya kizuizi kinachofuata na badala yake kuchimba tena vizuizi vya zamani vyenye ada za juu. Pamoja na ukuaji wa MEV, hali ya aina hiyo inaweza kutokea katika Ethereum, na kutishia uadilifu wa mnyororo wa vizuizi. + +## Hali ya MEV {#state-of-mev} + +Utoaji wa MEV uliongezeka mwanzoni mwa 2021, na kusababisha bei za juu sana za gesi katika miezi michache ya kwanza ya mwaka. Kuibuka kwa relay ya MEV ya Flashbots kumepunguza ufanisi wa waendeshaji wa mbele wa jumla na kumepeleka minada ya bei za gesi nje ya mnyororo, na kupunguza bei za gesi kwa watumiaji wa kawaida. + +Wakati watafutaji wengi bado wanapata pesa nzuri kutoka kwa MEV, kadri fursa zinavyojulikana zaidi na watafutaji zaidi na zaidi wanaposhindana kwa fursa sawa, wathibitishaji watanasa mapato mengi zaidi ya jumla ya MEV (kwa sababu aina sawa ya minada ya gesi kama ilivyoelezwa hapo awali pia hutokea katika Flashbots, ingawa kwa faragha, na wathibitishaji watanasa mapato ya gesi yanayotokana). MEV pia si ya kipekee kwa Ethereum, na kadri fursa zinavyokuwa na ushindani zaidi kwenye Ethereum, watafutaji wanahamia kwenye minyororo mbadala ya vizuizi kama Binance Smart Chain, ambapo fursa sawa za MEV na zile za Ethereum zipo na ushindani mdogo. + +Kwa upande mwingine, mpito kutoka uthibitishaji-wa-kazi hadi uthibitisho-wa-dau na juhudi zinazoendelea za kuongeza Ethereum kwa kutumia unda-mpya zote zinabadilisha mazingira ya MEV kwa njia ambazo bado hazijawa wazi. Bado haijajulikana vizuri jinsi kuwa na wapendekezaji wa vizuizi waliohakikishwa wanaojulikana mapema kidogo kunavyobadilisha mienendo ya utoaji wa MEV ikilinganishwa na mfumo wa uwezekano katika uthibitishaji-wa-kazi au jinsi hii itakavyovurugwa wakati [uchaguzi wa kiongozi mmoja wa siri](https://ethresear.ch/t/secret-non-single-leader-election/11789) na [teknolojia ya wathibitishaji waliosambazwa](/staking/dvt/) zitakapotekelezwa. Vile vile, bado haijajulikana ni fursa gani za MEV zipo wakati shughuli nyingi za watumiaji zinapohamishwa kutoka Ethereum na kwenda kwenye safu zake za 2 za unda-mpya na shards. + +## MEV katika Uthibitisho-wa-Dau wa Ethereum (PoS) {#mev-in-ethereum-proof-of-stake} + +Kama ilivyoelezwa, MEV ina athari mbaya kwa uzoefu wa jumla wa mtumiaji na usalama wa safu ya makubaliano. Lakini mpito wa Ethereum kwenda kwa makubaliano ya uthibitisho-wa-dau (unaofahamika kama "Muungano") unaweza kuleta hatari mpya zinazohusiana na MEV: + +### Uwekaji kati wa wathibitishaji {#validator-centralization} + +Katika Ethereum ya baada ya Muungano, wathibitishaji (baada ya kuweka amana za usalama za ETH 32) hufikia makubaliano juu ya uhalali wa vizuizi vilivyoongezwa kwenye Mnyororo Kioleza. Kwa kuwa ETH 32 inaweza kuwa nje ya uwezo wa wengi, [kujiunga na bwawa la kuweka hisa](/staking/pools/) kunaweza kuwa chaguo linalowezekana zaidi. Hata hivyo, usambazaji mzuri wa [waweka hisa wa pekee](/staking/solo/) ni bora, kwani unapunguza uwekaji kati wa wathibitishaji na kuboresha usalama wa Ethereum. + +Hata hivyo, utoaji wa MEV unaaminika kuwa na uwezo wa kuharakisha uwekaji kati wa wathibitishaji. Hii ni kwa sababu, kwa vile wathibitishaji [wanapata mapato kidogo kwa kupendekeza vizuizi](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) kuliko wachimbaji hapo awali, utoaji wa MEV umeathiri sana [mapato ya wathibitishaji](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) tangu [Muungano](/roadmap/merge/). + +Mabwawa makubwa ya kuweka hisa yanaweza kuwa na rasilimali zaidi za kuwekeza katika uboreshaji unaohitajika ili kunasa fursa za MEV. Kadiri MEV inavyotolewa na mabwawa haya, ndivyo rasilimali wanazokuwa nazo za kuboresha uwezo wao wa kutoa MEV (na kuongeza mapato ya jumla) zinavyoongezeka, na hivyo kuunda [uchumi wa kiwango](https://www.investopedia.com/terms/e/economiesofscale.asp#). + +Kwa kuwa na rasilimali chache, waweka hisa wa pekee wanaweza kushindwa kufaidika na fursa za MEV. Hii inaweza kuongeza shinikizo kwa wathibitishaji huru kujiunga na mabwawa yenye nguvu ya kuweka hisa ili kuongeza mapato yao, na kupunguza ugatuaji katika Ethereum. + +### Mempool zinazohitaji ruhusa {#permissioned-mempools} + +Kujibu mashambulizi ya sandwich na ya mbele, wafanyabiashara wanaweza kuanza kufanya mikataba nje ya mnyororo na wathibitishaji kwa ajili ya faragha ya miamala. Badala ya kutuma muamala unaoweza kuwa na MEV kwa mempool ya umma, mfanyabiashara anautuma moja kwa moja kwa mthibitishaji, ambaye anaujumuisha katika kizuizi na kugawana faida na mfanyabiashara. + +“Mabwawa ya giza” ni toleo kubwa la mpangilio huu na hufanya kazi kama mempool zinazohitaji ruhusa, za ufikiaji pekee zilizo wazi kwa watumiaji walio tayari kulipa ada fulani. Mwenendo huu ungepunguza hali ya Ethereum ya kutohitaji ruhusa na kutokuwa na uaminifu na uwezekano wa kubadilisha mnyororo wa vizuizi kuwa utaratibu wa “lipa-ili-ucheze” unaopendelea mzabuni wa juu zaidi. + +Mempool zinazohitaji ruhusa pia zingeharakisha hatari za uwekaji kati zilizoelezwa katika sehemu iliyopita. Mabwawa makubwa yanayoendesha wathibitishaji wengi yanaweza kufaidika kutokana na kutoa faragha ya miamala kwa wafanyabiashara na watumiaji, na kuongeza mapato yao ya MEV. + +Kupambana na matatizo haya yanayohusiana na MEV katika Ethereum ya baada ya Muungano ni eneo la msingi la utafiti. Hadi sasa, suluhisho mbili zilizopendekezwa ili kupunguza athari mbaya za MEV kwenye ugatuaji na usalama wa Ethereum baada ya Muungano ni [**Mgawanyo wa Mpendekezaji na Mjenzi (PBS)**](/roadmap/pbs/) na [**API ya Mjenzi**](https://github.com/ethereum/builder-specs). + +### Mgawanyo wa Mpendekezaji na Mjenzi {#proposer-builder-separation} + +Katika uthibitishaji-wa-kazi na uthibitisho-wa-dau, nodi inayojenga kizuizi inakipendekeza kwa ajili ya kuongezwa kwenye mnyororo kwa nodi nyingine zinazoshiriki katika makubaliano. Kizuizi kipya kinakuwa sehemu ya mnyororo wa kanuni baada ya mchimbaji mwingine kujenga juu yake (katika PoW) au kinapokea uthibitisho kutoka kwa wathibitishaji wengi (katika PoS). + +Mchanganyiko wa majukumu ya mzalishaji wa kizuizi na mpendekezaji wa kizuizi ndio unaoleta matatizo mengi yanayohusiana na MEV yaliyoelezwa hapo awali. Kwa mfano, nodi za makubaliano zinashawishika kuanzisha upangaji upya wa mnyororo katika [mashambulizi ya wezi wa wakati](https://www.mev.wiki/attack-examples/time-bandit-attack) ili kuongeza mapato ya MEV. + +[Mgawanyo wa mpendekezaji na mjenzi](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) umeundwa ili kupunguza athari za MEV, hasa katika safu ya makubaliano. Kipengele kikuu cha PBS ni mgawanyo wa sheria za mzalishaji wa kizuizi na mpendekezaji wa kizuizi. Wathibitishaji bado wanawajibika kupendekeza na kupiga kura kwenye vizuizi, lakini darasa jipya la vyombo maalum, vinavyoitwa **wajenzi wa vizuizi**, wanapewa jukumu la kupanga miamala na kujenga vizuizi. + +Chini ya PBS, mjenzi wa kizuizi huunda kifurushi cha miamala na kuweka zabuni kwa ajili ya kujumuishwa kwake katika kizuizi cha Mnyororo Kioleza (kama “mzigo wa utekelezaji”). Mthibitishaji aliyechaguliwa kupendekeza kizuizi kinachofuata kisha anachunguza zabuni tofauti na kuchagua kifurushi chenye ada ya juu zaidi. PBS kimsingi inaunda soko la mnada, ambapo wajenzi wanajadiliana na wathibitishaji wanaouza nafasi ya vizuizi. + +Miundo ya sasa ya PBS inatumia [mpango wa ahadi-funua](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) ambapo wajenzi wanachapisha tu ahadi ya kriptografia kwa yaliyomo kwenye kizuizi (kichwa cha kizuizi) pamoja na zabuni zao. Baada ya kukubali zabuni iliyoshinda, mpendekezaji anaunda pendekezo la kizuizi lililosainiwa ambalo linajumuisha kichwa cha kizuizi. Mjenzi wa kizuizi anatarajiwa kuchapisha mwili kamili wa kizuizi baada ya kuona pendekezo la kizuizi lililosainiwa, na ni lazima pia apokee [uthibitisho](/glossary/#attestation) wa kutosha kutoka kwa wathibitishaji kabla ya kukamilishwa. + +#### Je, mgawanyo wa mpendekezaji na mjenzi unapunguzaje athari za MEV? {#how-does-pbs-curb-mev-impact} + +Mgawanyo wa mpendekezaji na mjenzi ndani ya itifaki unapunguza athari za MEV kwenye makubaliano kwa kuondoa utoaji wa MEV kutoka kwa mamlaka ya wathibitishaji. Badala yake, wajenzi wa vizuizi wanaoendesha vifaa maalum watanasa fursa za MEV mbele. + +Hii haiwatengi wathibitishaji kabisa kutoka kwa mapato yanayohusiana na MEV, ingawa, kwani wajenzi lazima watoe zabuni za juu ili vizuizi vyao vikubaliwe na wathibitishaji. Hata hivyo, kwa kuwa wathibitishaji hawajikiti tena moja kwa moja katika kuboresha mapato ya MEV, tishio la mashambulizi ya wezi wa wakati linapungua. + +Mgawanyo wa mpendekezaji na mjenzi pia unapunguza hatari za uwekaji kati wa MEV. Kwa mfano, matumizi ya mpango wa ahadi-funua huondoa hitaji la wajenzi kuwaamini wathibitishaji wasiibe fursa ya MEV au kuifichua kwa wajenzi wengine. Hii inapunguza kizuizi kwa waweka hisa wa pekee kufaidika na MEV, vinginevyo, wajenzi wangeelekea kupendelea mabwawa makubwa yenye sifa nje ya mnyororo na kufanya mikataba nje ya mnyororo nao. + +Vile vile, wathibitishaji hawana haja ya kuwaamini wajenzi wasizuie miili ya vizuizi au kuchapisha vizuizi batili kwa sababu malipo hayana masharti. Ada ya mthibitishaji bado inachakatwa hata kama kizuizi kilichopendekezwa hakipatikani au kinatangazwa kuwa batili na wathibitishaji wengine. Katika kesi ya mwisho, kizuizi kinatupiliwa mbali, na kumlazimisha mjenzi wa kizuizi kupoteza ada zote za muamala na mapato ya MEV. + +### API ya Mjenzi {#builder-api} + +Wakati mgawanyo wa mpendekezaji na mjenzi unapoahidi kupunguza athari za utoaji wa MEV, utekelezaji wake unahitaji mabadiliko kwenye itifaki ya makubaliano. Hasa, sheria ya [uchaguzi wa uma](/developers/docs/consensus-mechanisms/pos/#fork-choice) kwenye Mnyororo Kioleza ingehitaji kusasishwa. [API ya Mjenzi](https://github.com/ethereum/builder-specs) ni suluhisho la muda linalolenga kutoa utekelezaji wa kazi wa mgawanyo wa mpendekezaji na mjenzi, ingawa na dhana za juu za uaminifu. + +API ya Mjenzi ni toleo lililobadilishwa la [API ya Injini](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) linalotumiwa na wateja wa safu ya makubaliano kuomba mizigo ya utekelezaji kutoka kwa wateja wa safu ya utekelezaji. Kama ilivyoainishwa katika [vipimo vya mthibitishaji mwaminifu](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), wathibitishaji waliochaguliwa kwa majukumu ya kupendekeza vizuizi huomba kifurushi cha miamala kutoka kwa mteja wa utekelezaji aliyeunganishwa, ambacho wanakijumuisha katika kizuizi cha Mnyororo Kioleza kilichopendekezwa. + +API ya Mjenzi pia hufanya kazi kama programu ya kati kati ya wathibitishaji na wateja wa safu ya utekelezaji; lakini ni tofauti kwa sababu inaruhusu wathibitishaji kwenye Mnyororo Kioleza kupata vizuizi kutoka kwa vyombo vya nje (badala ya kujenga kizuizi ndani ya nchi kwa kutumia mteja wa utekelezaji). + +Hapa chini kuna muhtasari wa jinsi API ya Mjenzi inavyofanya kazi: + +1. API ya Mjenzi inaunganisha mthibitishaji na mtandao wa wajenzi wa vizuizi wanaoendesha wateja wa safu ya utekelezaji. Kama ilivyo katika PBS, wajenzi ni wahusika maalum wanaowekeza katika ujenzi wa vizuizi unaohitaji rasilimali nyingi na hutumia mikakati tofauti ili kuongeza mapato yanayopatikana kutoka kwa MEV + vidokezo vya kipaumbele. + +2. Mthibitishaji (anayeendesha mteja wa safu ya makubaliano) anaomba mizigo ya utekelezaji pamoja na zabuni kutoka kwa mtandao wa wajenzi. Zabuni kutoka kwa wajenzi zitakuwa na kichwa cha mzigo wa utekelezaji—ahadi ya kriptografia kwa yaliyomo kwenye mzigo—na ada ya kulipwa kwa mthibitishaji. + +3. Mthibitishaji anapitia zabuni zinazoingia na kuchagua mzigo wa utekelezaji wenye ada ya juu zaidi. Kwa kutumia API ya Mjenzi, mthibitishaji anaunda pendekezo la kizuizi cha Beacon "lililofichwa" ambalo linajumuisha tu saini yake na kichwa cha mzigo wa utekelezaji na kulituma kwa mjenzi. + +4. Mjenzi anayeendesha API ya Mjenzi anatarajiwa kujibu na mzigo kamili wa utekelezaji baada ya kuona pendekezo la kizuizi lililofichwa. Hii inaruhusu mthibitishaji kuunda kizuizi cha Beacon "kilichosainiwa", ambacho wanakisambaza kote kwenye mtandao. + +5. Mthibitishaji anayetumia API ya Mjenzi bado anatarajiwa kujenga kizuizi ndani ya nchi ikiwa mjenzi wa kizuizi atashindwa kujibu haraka, ili wasikose zawadi za pendekezo la kizuizi. Hata hivyo, mthibitishaji hawezi kuunda kizuizi kingine kwa kutumia miamala iliyofunuliwa sasa au seti nyingine, kwani ingekuwa sawa na _usawazishaji_ (kusaini vizuizi viwili ndani ya nafasi moja), ambalo ni kosa linaloweza kuadhibiwa. + +Mfano wa utekelezaji wa API ya Mjenzi ni [MEV Boost](https://github.com/flashbots/mev-boost), uboreshaji wa [utaratibu wa mnada wa Flashbots](https://docs.flashbots.net/Flashbots-auction/overview) ulioundwa ili kuzuia athari mbaya za nje za MEV kwenye Ethereum. Mnada wa Flashbots unaruhusu wathibitishaji katika uthibitisho-wa-dau kukabidhi kazi ya kujenga vizuizi vyenye faida kwa wahusika maalum wanaoitwa **watafutaji**. +![Mchoro unaoonyesha mtiririko wa MEV kwa undani](./mev.png) + +Watafutaji hutafuta fursa za MEV zenye faida na kutuma vifurushi vya miamala kwa wapendekezaji wa vizuizi pamoja na [zabuni ya bei iliyofungwa](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) kwa ajili ya kujumuishwa katika kizuizi. Mthibitishaji anayeendesha mev-geth, toleo la uma la mteja wa go-ethereum (Geth) anahitaji tu kuchagua kifurushi chenye faida zaidi na kukijumuisha kama sehemu ya kizuizi kipya. Ili kuwalinda wapendekezaji wa vizuizi (wathibitishaji) dhidi ya barua taka na miamala batili, vifurushi vya miamala hupitia **warudishaji** kwa ajili ya uthibitisho kabla ya kufika kwa mpendekezaji. + +MEV Boost inabaki na utendaji sawa wa mnada wa asili wa Flashbots, ingawa na vipengele vipya vilivyoundwa kwa ajili ya kubadili kwa Ethereum kwenda kwenye uthibitisho-wa-dau. Watafutaji bado wanapata miamala ya MEV yenye faida kwa ajili ya kujumuishwa katika vizuizi, lakini darasa jipya la wahusika maalum, wanaoitwa **wajenzi**, wanawajibika kukusanya miamala na vifurushi katika vizuizi. Mjenzi anakubali zabuni za bei zilizofungwa kutoka kwa watafutaji na anaendesha uboreshaji ili kupata mpangilio wenye faida zaidi. + +Mrudishaji bado anawajibika kuthibitisha vifurushi vya miamala kabla ya kuvipitisha kwa mpendekezaji. Hata hivyo, MEV Boost inaleta **eskro** zinazowajibika kutoa [upatikanaji wa data](/developers/docs/data-availability/) kwa kuhifadhi miili ya vizuizi iliyotumwa na wajenzi na vichwa vya vizuizi vilivyotumwa na wathibitishaji. Hapa, mthibitishaji aliyeunganishwa na relay anauliza mizigo ya utekelezaji inayopatikana na anatumia algoriti ya upangaji ya MEV Boost kuchagua kichwa cha mzigo chenye zabuni ya juu zaidi + vidokezo vya MEV. + +#### Je, API ya Mjenzi inapunguzaje athari za MEV? {#how-does-builder-api-curb-mev-impact} + +Faida kuu ya API ya Mjenzi ni uwezo wake wa kuweka demokrasia katika upatikanaji wa fursa za MEV. Kutumia mipango ya ahadi-funua huondoa dhana za uaminifu na kupunguza vizuizi vya kuingia kwa wathibitishaji wanaotafuta kufaidika na MEV. Hii inapaswa kupunguza shinikizo kwa waweka hisa wa pekee kuungana na mabwawa makubwa ya kuweka hisa ili kuongeza faida za MEV. + +Utekelezaji ulioenea wa API ya Mjenzi utahimiza ushindani mkubwa zaidi kati ya wajenzi wa vizuizi, ambao unaongeza upinzani dhidi ya udhibiti. Wakati wathibitishaji wanapopitia zabuni kutoka kwa wajenzi wengi, mjenzi anayekusudia kudhibiti miamala ya mtumiaji mmoja au zaidi lazima atoe zabuni ya juu kuliko wajenzi wengine wote wasiodhibiti ili kufanikiwa. Hii inaongeza kwa kiasi kikubwa gharama ya kudhibiti watumiaji na inakatisha tamaa mazoea hayo. + +Baadhi ya miradi, kama vile MEV Boost, inatumia API ya Mjenzi kama sehemu ya muundo wa jumla ulioundwa kutoa faragha ya miamala kwa wahusika fulani, kama vile wafanyabiashara wanaojaribu kuepuka mashambulizi ya mbele/sandwich. Hii inafanikiwa kwa kutoa njia ya mawasiliano ya faragha kati ya watumiaji na wajenzi wa vizuizi. Tofauti na mempool zinazohitaji ruhusa zilizoelezwa hapo awali, mbinu hii ni ya manufaa kwa sababu zifuatazo: + +1. Uwepo wa wajenzi wengi sokoni hufanya udhibiti usiwezekane, jambo ambalo linawanufaisha watumiaji. Kinyume chake, uwepo wa mabwawa ya giza yaliyowekwa kati na yanayotegemea uaminifu ungekusanya nguvu mikononi mwa wajenzi wachache wa vizuizi na kuongeza uwezekano wa udhibiti. + +2. Programu ya API ya Mjenzi ni ya chanzo-wazi, ambayo inaruhusu mtu yeyote kutoa huduma za ujenzi wa vizuizi. Hii inamaanisha watumiaji hawalazimishwi kutumia mjenzi yeyote wa vizuizi na inaboresha kutopendelea na kutohitaji ruhusa kwa Ethereum. Zaidi ya hayo, wafanyabiashara wanaotafuta MEV hawachangii uwekaji kati bila kukusudia kwa kutumia njia za miamala za faragha. + +## Rasilimali zinazohusiana {#related-resources} + +- [Nyaraka za Flashbots](https://docs.flashbots.net/) +- [GitHub ya Flashbots](https://github.com/flashbots/pm) +- [mevboost.org](https://www.mevboost.org/) - _Kifuatiliaji chenye takwimu za wakati halisi za relay za MEV-Boost na wajenzi wa vizuizi_ + +## Masomo zaidi {#further-reading} + +- [Thamani Inayoweza Kutolewa na Mchimbaji (MEV) ni Nini?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV na Mimi](https://www.paradigm.xyz/2021/02/mev-and-me) +- [Ethereum ni Msitu Mweusi](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [Kutoroka Msitu Mweusi](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbots: Kuendesha Mbele Mgogoro wa MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [Nyaraka za MEV za @bertcmiller](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost: Usanifu wa Flashbots Tayari kwa Muungano](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [MEV Boost ni Nini](https://www.alchemy.com/overviews/mev-boost) +- [Kwa nini uendeshe mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) +- [Mwongozo wa Msafiri kwa Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/public/content/translations/sw/developers/docs/networking-layer/index.md b/public/content/translations/sw/developers/docs/networking-layer/index.md new file mode 100644 index 00000000000..4a66b31ffd9 --- /dev/null +++ b/public/content/translations/sw/developers/docs/networking-layer/index.md @@ -0,0 +1,163 @@ +--- +title: Safu ya mtandao +description: Utangulizi wa safu ya mtandao wa Ethereum. +lang: sw +sidebarDepth: 2 +--- + +Ethereum ni mtandao wa rika-kwa-rika wenye maelfu ya nodi ambazo lazima ziweze kuwasiliana kwa kutumia itifaki sanifu. "Safu ya mtandao" ni mrundiko wa itifaki zinazoruhusu nodi hizo kupatana na kubadilishana habari. Hii inajumuisha kusambaza habari kwa njia ya "gossiping" (mawasiliano ya mmoja-kwa-wengi) kwenye mtandao pamoja na kubadilishana maombi na majibu kati ya nodi maalum (mawasiliano ya mmoja-kwa-mmoja). Kila nodi lazima ifuate sheria maalum za mtandao ili kuhakikisha inatuma na kupokea habari sahihi. + +Kuna sehemu mbili za programu ya mteja (wateja wa utekelezaji na wateja wa makubaliano), kila moja ikiwa na mrundiko wake tofauti wa mtandao. Pamoja na kuwasiliana na nodi zingine za Ethereum, wateja wa utekelezaji na wateja wa makubaliano wanapaswa kuwasiliana wao kwa wao. Ukurasa huu unatoa maelezo ya utangulizi ya itifaki zinazowezesha mawasiliano haya. + +Wateja wa utekelezaji husambaza miamala kwa njia ya uvumi kwenye mtandao wa rika-kwa-rika wa safu ya utekelezaji. Hii inahitaji mawasiliano yaliyosimbwa kwa njia fiche kati ya rika zilizothibitishwa. Mthibitishaji anapochaguliwa kupendekeza bloku, miamala kutoka kwenye bwawa la miamala la ndani la nodi itapitishwa kwa wateja wa makubaliano kupitia muunganisho wa RPC wa ndani, ambayo itawekwa kwenye bloku za Beacon. Wateja wa makubaliano kisha watasambaza bloku za Beacon kwa njia ya uvumi kwenye mtandao wao wa p2p. Hii inahitaji mitandao miwili tofauti ya p2p: mmoja unaounganisha wateja wa utekelezaji kwa ajili ya usambazaji wa uvumi wa miamala na mwingine unaounganisha wateja wa makubaliano kwa ajili ya usambazaji wa uvumi wa bloku. + +## Mahitaji ya awali {#prerequisites} + +Ujuzi fulani kuhusu [nodi na wateja](/developers/docs/nodes-and-clients/) wa Ethereum utasaidia katika kuelewa ukurasa huu. + +## Safu ya Utekelezaji {#execution-layer} + +Itifaki za mtandao za safu ya utekelezaji zimegawanywa katika mirundiko miwili: + +- mrundiko wa ugunduzi: umejengwa juu ya UDP na unaruhusu nodi mpya kupata rika za kuunganisha nazo + +- mrundiko wa DevP2P: unakaa juu ya TCP na huwezesha nodi kubadilishana habari + +Mirundiko yote miwili hufanya kazi sambamba. Mrundiko wa ugunduzi huleta washiriki wapya kwenye mtandao, na mrundiko wa DevP2P huwezesha mwingiliano wao. + +### Ugunduzi {#discovery} + +Ugunduzi ni mchakato wa kupata nodi zingine kwenye mtandao. Hii huanzishwa kwa kutumia seti ndogo ya 'bootnodes' (nodi ambazo anwani zake [zimewekwa kwa msimbo mgumu](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) kwenye mteja ili ziweze kupatikana mara moja na kuunganisha mteja na rika). Hizi 'bootnodes' zipo tu kwa ajili ya kutambulisha nodi mpya kwa seti ya rika - hili ndilo kusudi lao pekee, hazishiriki katika kazi za kawaida za mteja kama kusawazisha mnyororo, na zinatumika tu mara ya kwanza kabisa mteja anapoanzishwa. + +Itifaki inayotumika kwa mwingiliano wa nodi-bootnode ni toleo lililobadilishwa la [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f) ambalo hutumia [jedwali la hashi lililosambazwa](https://en.wikipedia.org/wiki/Distributed_hash_table) kushiriki orodha za nodi. Kila nodi ina toleo la jedwali hili lenye habari inayohitajika kuungana na rika zake za karibu. Huu 'ukaribu' si wa kijiografia - umbali unafafanuliwa na mfanano wa kitambulisho cha nodi. Jedwali la kila nodi huburudishwa mara kwa mara kama kipengele cha usalama. Kwa mfano, katika itifaki ya ugunduzi ya [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), nodi pia zinaweza kutuma 'matangazo' yanayoonyesha itifaki-ndogo ambazo mteja anaunga mkono, na hivyo kuruhusu rika kujadiliana kuhusu itifaki ambazo zote zinaweza kutumia kuwasiliana. + +Ugunduzi huanza na mchezo wa PING-PONG. PING-PONG yenye mafanikio "huunganisha" nodi mpya na bootnode. Ujumbe wa kwanza unaoarifu bootnode juu ya kuwepo kwa nodi mpya inayoingia kwenye mtandao ni `PING`. `PING` hii inajumuisha habari iliyohashiwa kuhusu nodi mpya, bootnode na muhuri wa muda wa kuisha. Bootnode hupokea `PING` na kurudisha `PONG` iliyo na hashi ya `PING`. Ikiwa hashi za `PING` na `PONG` zikifanana basi muunganisho kati ya nodi mpya na bootnode unathibitishwa na husemekana kuwa "zimeunganishwa". + +Mara baada ya kuunganishwa, nodi mpya inaweza kutuma ombi la `FIND-NEIGHBOURS` kwa bootnode. Data inayorudishwa na bootnode inajumuisha orodha ya rika ambazo nodi mpya inaweza kuunganisha nazo. Ikiwa nodi hazijaunganishwa, ombi la `FIND-NEIGHBOURS` litashindwa, kwa hivyo nodi mpya haitaweza kuingia kwenye mtandao. + +Mara tu nodi mpya inapopokea orodha ya majirani kutoka kwa bootnode, huanza ubadilishanaji wa PING-PONG na kila mmoja wao. PING-PONG zenye mafanikio huunganisha nodi mpya na majirani zake, na kuwezesha ubadilishanaji wa ujumbe. + +``` +anza mteja --> unganisha kwenye bootnode --> unganisha na bootnode --> tafuta majirani --> unganisha na majirani +``` + +Wateja wa utekelezaji kwa sasa wanatumia itifaki ya ugunduzi ya [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) na kuna juhudi zinazoendelea za kuhamia kwenye itifaki ya [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5). + +#### ENR: Rekodi za Nodi za Ethereum {#enr} + +[Rekodi ya Nodi ya Ethereum (ENR)](/developers/docs/networking-layer/network-addresses/) ni kitu chenye vipengele vitatu vya msingi: saini (hashi ya yaliyomo kwenye rekodi iliyotengenezwa kulingana na mpango fulani wa utambulisho uliokubaliwa), nambari ya mfuatano inayofuatilia mabadiliko kwenye rekodi, na orodha isiyo na mpangilio ya jozi za ufunguo:thamani. Hii ni fomati isiyopitwa na wakati inayoruhusu ubadilishanaji rahisi wa habari za utambulisho kati ya rika mpya na ndiyo fomati inayopendelewa ya [anwani ya mtandao](/developers/docs/networking-layer/network-addresses) kwa nodi za Ethereum. + +#### Kwa nini ugunduzi umejengwa juu ya UDP? {#why-udp} + +UDP haiungi mkono ukaguzi wowote wa makosa, kutuma tena pakiti zilizoshindwa, au kufungua na kufunga miunganisho kiotomatiki - badala yake inatuma tu mtiririko endelevu wa habari kwa lengo, bila kujali kama imepokelewa kwa mafanikio. Utendaji huu mdogo pia unamaanisha gharama ndogo, na kufanya aina hii ya muunganisho kuwa wa haraka sana. Kwa ugunduzi, ambapo nodi inataka tu kujulisha uwepo wake ili kuanzisha muunganisho rasmi na rika, UDP inatosha. Hata hivyo, kwa sehemu iliyobaki ya mrundiko wa mtandao, UDP haifai kwa madhumuni hayo. Ubadilishanaji wa habari kati ya nodi ni mgumu sana na kwa hiyo unahitaji itifaki iliyo na vipengele kamili inayoweza kuunga mkono utumaji upya, ukaguzi wa makosa n.k. Gharama ya ziada inayohusishwa na TCP inastahili utendaji wa ziada. Kwa hiyo, sehemu kubwa ya mrundiko wa P2P hufanya kazi juu ya TCP. + +### DevP2P {#devp2p} + +DevP2P yenyewe ni mrundiko mzima wa itifaki ambazo Ethereum hutekeleza kuanzisha na kudumisha mtandao wa rika-kwa-rika. Baada ya nodi mpya kuingia kwenye mtandao, mwingiliano wao unasimamiwa na itifaki katika mrundiko wa [DevP2P](https://github.com/ethereum/devp2p). Hizi zote ziko juu ya TCP na zinajumuisha itifaki ya usafirishaji ya RLPx, itifaki ya waya na itifaki-ndogo kadhaa. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) ni itifaki inayosimamia uanzishaji, uthibitishaji na udumishaji wa vipindi kati ya nodi. RLPx husimba ujumbe kwa kutumia RLP (Recursive Length Prefix) ambayo ni njia yenye ufanisi mkubwa wa nafasi ya kusimba data katika muundo mdogo kwa ajili ya kutuma kati ya nodi. + +Kipindi cha RLPx kati ya nodi mbili huanza na mpeano wa mikono wa awali wa kikriptografia. Hii inahusisha nodi kutuma ujumbe wa uthibitisho ambao kisha huthibitishwa na rika. Baada ya uthibitisho wenye mafanikio, rika hutengeneza ujumbe wa uthibitisho-wa-kukubali kurudisha kwa nodi iliyoanzisha. Huu ni mchakato wa kubadilishana funguo unaowezesha nodi kuwasiliana kwa faragha na kwa usalama. Mpeano wa mikono wa kikriptografia wenye mafanikio kisha huchochea nodi zote mbili kutuma ujumbe wa "hello" kwa kila mmoja "kwenye waya". Itifaki ya waya huanzishwa na ubadilishanaji wenye mafanikio wa ujumbe wa hello. + +Ujumbe wa hello una: + +- toleo la itifaki +- kitambulisho cha mteja +- bandari +- kitambulisho cha nodi +- orodha ya itifaki-ndogo zinazotumika + +Hii ni habari inayohitajika kwa mwingiliano wenye mafanikio kwa sababu inafafanua uwezo gani unashirikiwa kati ya nodi zote mbili na inasanidi mawasiliano. Kuna mchakato wa majadiliano ya itifaki-ndogo ambapo orodha za itifaki-ndogo zinazotumika na kila nodi zinalinganishwa na zile ambazo ni za kawaida kwa nodi zote mbili zinaweza kutumika katika kipindi. + +Pamoja na ujumbe wa hello, itifaki ya waya inaweza pia kutuma ujumbe wa "kukata muunganisho" unaotoa onyo kwa rika kwamba muunganisho utafungwa. Itifaki ya waya pia inajumuisha ujumbe wa PING na PONG ambao hutumwa mara kwa mara ili kuweka kipindi wazi. Kwa hivyo, ubadilishanaji wa itifaki za RLPx na waya huweka misingi ya mawasiliano kati ya nodi, na kutoa jukwaa la habari muhimu kubadilishwa kulingana na itifaki-ndogo maalum. + +### Itifaki-ndogo {#sub-protocols} + +#### Itifaki ya waya {#wire-protocol} + +Mara tu rika zinapounganishwa, na kipindi cha RLPx kimeanzishwa, itifaki ya waya inafafanua jinsi rika zinavyowasiliana. Hapo awali, itifaki ya waya ilifafanua kazi tatu kuu: usawazishaji wa mnyororo, uenezaji wa bloku na ubadilishanaji wa miamala. Hata hivyo, mara tu Ethereum ilipohamia kwenye uthibitisho wa hisa, uenezaji wa bloku na usawazishaji wa mnyororo ukawa sehemu ya safu ya makubaliano. Ubadilishanaji wa miamala bado uko chini ya mamlaka ya wateja wa utekelezaji. Ubadilishanaji wa miamala unamaanisha kubadilishana miamala inayosubiri kati ya nodi ili wajenzi wa bloku waweze kuchagua baadhi yao kwa ajili ya kujumuishwa katika bloku inayofuata. Taarifa za kina kuhusu kazi hizi zinapatikana [hapa](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). Wateja wanaounga mkono itifaki-ndogo hizi huzionesha kupitia [JSON-RPC](/developers/docs/apis/json-rpc/). + +#### les (itifaki-ndogo nyepesi ya Ethereum) {#les} + +Hii ni itifaki ndogo kwa ajili ya kusawazisha wateja wepesi. Kijadi itifaki hii haijatumiwa sana kwa sababu nodi kamili zinahitajika kutoa data kwa wateja wepesi bila kupewa motisha. Tabia chaguomsingi ya wateja wa utekelezaji si kutoa data ya wateja wepesi kupitia les. Taarifa zaidi zinapatikana katika [vipimo](https://github.com/ethereum/devp2p/blob/master/caps/les.md) vya les. + +#### Snap {#snap} + +Itifaki ya [snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) ni kiendelezi cha hiari kinachoruhusu rika kubadilishana picha za hali za hivi karibuni, kuruhusu rika kuthibitisha data ya akaunti na ghala bila kulazimika kupakua nodi za kati za Merkle trie. + +#### Wit (itifaki ya shahidi) {#wit} + +[Itifaki ya shahidi](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) ni kiendelezi cha hiari kinachowezesha ubadilishanaji wa mashahidi wa hali kati ya rika, kusaidia kusawazisha wateja hadi ncha ya mnyororo. + +#### Whisper {#whisper} + +Whisper ilikuwa itifaki iliyolenga kutoa ujumbe salama kati ya rika bila kuandika habari yoyote kwenye mnyororo wa bloku. Ilikuwa sehemu ya itifaki ya waya ya DevP2P lakini sasa imepitwa na wakati. [Miradi mingine inayohusiana](https://wakunetwork.com/) ipo yenye malengo sawa. + +## Safu ya makubaliano {#consensus-layer} + +Wateja wa makubaliano hushiriki katika mtandao tofauti wa rika-kwa-rika wenye vipimo tofauti. Wateja wa makubaliano wanahitaji kushiriki katika usambazaji wa bloku kwa njia ya uvumi ili waweze kupokea bloku mpya kutoka kwa rika na kuzitangaza inapokuwa zamu yao ya kuwa wapendekezaji wa bloku. Sawa na safu ya utekelezaji, hii kwanza inahitaji itifaki ya ugunduzi ili nodi iweze kupata rika na kuanzisha vipindi salama vya kubadilishana bloku, uthibitisho n.k. + +### Ugunduzi {#consensus-discovery} + +Sawa na wateja wa utekelezaji, wateja wa makubaliano hutumia [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) juu ya UDP kwa ajili ya kupata rika. Utekelezaji wa safu ya makubaliano ya discv5 unatofautiana na ule wa wateja wa utekelezaji tu kwa kuwa inajumuisha adapta inayounganisha discv5 kwenye mrundiko wa [libP2P](https://libp2p.io/), na kuacha kutumia DevP2P. Vipindi vya RLPx vya safu ya utekelezaji vimepitwa na wakati na badala yake kunatumiwa mpeano wa mikono wa kituo salama cha kelele cha libP2P. + +### ENRs {#consensus-enr} + +ENR ya nodi za makubaliano inajumuisha ufunguo wa umma wa nodi, anwani ya IP, bandari za UDP na TCP na sehemu mbili maalum za makubaliano: uwanja wa biti wa mtandao-mdogo wa uthibitisho na ufunguo wa `eth2`. Ya kwanza hurahisisha nodi kupata rika zinazoshiriki katika mitandao-midogo maalum ya usambazaji wa uthibitisho kwa njia ya uvumi. Ufunguo wa `eth2` una habari kuhusu toleo gani la uma la Ethereum ambalo nodi inatumia, kuhakikisha rika zinaunganisha na Ethereum sahihi. + +### libP2P {#libp2p} + +Mrundiko wa libP2P unaunga mkono mawasiliano yote baada ya ugunduzi. Wateja wanaweza kupiga na kusikiliza kwenye IPv4 na/au IPv6 kama ilivyofafanuliwa katika ENR zao. Itifaki kwenye safu ya libP2P zinaweza kugawanywa katika vikoa vya uvumi na req/resp. + +### Uvumi {#gossip} + +Kikoa cha uvumi kinajumuisha habari zote ambazo zinapaswa kuenea haraka kote kwenye mtandao. Hii inajumuisha bloku za beacon, thibitisho, uthibitisho, kutoka na adhabu. Hii inapitishwa kwa kutumia libP2P gossipsub v1 na inategemea metadata mbalimbali kuhifadhiwa ndani ya kila nodi, ikiwa ni pamoja na ukubwa wa juu wa mizigo ya uvumi kupokea na kusambaza. Taarifa za kina kuhusu kikoa cha uvumi zinapatikana [hapa](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). + +### Ombi-jibu {#request-response} + +Kikoa cha ombi-jibu kina itifaki kwa ajili ya wateja wanaoomba taarifa maalum kutoka kwa rika zao. Mifano inajumuisha kuomba bloku maalum za Beacon zinazolingana na hashi fulani za mizizi au ndani ya safu ya nafasi. Majibu yanarudishwa kila wakati kama baiti zilizosimbwa za SSZ na kubanwa na snappy. + +## Kwa nini mteja wa makubaliano anapendelea SSZ badala ya RLP? {#ssz-vs-rlp} + +SSZ inasimama kwa ajili ya serialisheni rahisi. Inatumia viwianishi visivyobadilika vinavyorahisisha kusimbua sehemu binafsi za ujumbe uliosimbwa bila kulazimika kusimbua muundo mzima, jambo ambalo ni muhimu sana kwa mteja wa makubaliano kwani inaweza kuchukua kwa ufanisi vipande maalum vya habari kutoka kwa ujumbe uliosimbwa. Pia imeundwa mahususi kuunganishwa na itifaki za Merkle, na faida zinazohusiana na ufanisi kwa umerkeleshaji. Kwa kuwa hashi zote katika safu ya makubaliano ni mizizi ya Merkle, hii inaongeza uboreshaji mkubwa. SSZ pia inahakikisha uwakilishi wa kipekee wa thamani. + +## Kuunganisha wateja wa utekelezaji na makubaliano {#connecting-clients} + +Wateja wote wa makubaliano na utekelezaji hufanya kazi sambamba. Wanahitaji kuunganishwa ili mteja wa makubaliano aweze kutoa maelekezo kwa mteja wa utekelezaji, na mteja wa utekelezaji aweze kupitisha vifurushi vya miamala kwa mteja wa makubaliano ili kujumuisha katika bloku za Beacon. Mawasiliano kati ya wateja hao wawili yanaweza kufikiwa kwa kutumia muunganisho wa RPC wa ndani. API inayojulikana kama ['Engine-API'](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) inafafanua maelekezo yanayotumwa kati ya wateja hao wawili. Kwa kuwa wateja wote wawili wako nyuma ya utambulisho mmoja wa mtandao, wanashiriki ENR (rekodi ya nodi ya Ethereum) ambayo ina ufunguo tofauti kwa kila mteja (ufunguo wa eth1 na ufunguo wa eth2). + +Muhtasari wa mtiririko wa udhibiti umeonyeshwa hapa chini, na mrundiko husika wa mtandao ukiwa kwenye mabano. + +### Wakati mteja wa makubaliano si mzalishaji wa bloku: {#when-consensus-client-is-not-block-producer} + +- Mteja wa makubaliano hupokea bloku kupitia itifaki ya uvumi wa bloku (consensus p2p) +- Mteja wa makubaliano anathibitisha awali bloku, yaani, anahakikisha imefika kutoka kwa mtumaji halali na metadata sahihi +- Miamala katika bloku inatumwa kwa safu ya utekelezaji kama mzigo wa utekelezaji (muunganisho wa RPC wa ndani) +- Safu ya utekelezaji inatekeleza miamala na kuthibitisha hali katika kichwa cha bloku (yaani, inakagua kama hashi zinalingana) +- Safu ya utekelezaji inarudisha data ya uthibitishaji kwenye safu ya makubaliano, bloku sasa inachukuliwa kuwa imethibitishwa (muunganisho wa RPC wa ndani) +- Safu ya makubaliano inaongeza bloku kwenye kichwa cha mnyororo wake wa bloku na kuithibitisha, ikitangaza uthibitisho huo kwenye mtandao (consensus p2p) + +### Wakati mteja wa makubaliano ni mzalishaji wa bloku: {#when-consensus-client-is-block-producer} + +- Mteja wa makubaliano hupokea taarifa kwamba ndiye mzalishaji wa bloku anayefuata (consensus p2p) +- Safu ya makubaliano huita mbinu ya `create block` katika mteja wa utekelezaji (RPC ya ndani) +- Safu ya utekelezaji hufikia mempool ya miamala ambayo imejaa kwa kutumia itifaki ya uvumi wa miamala (execution p2p) +- Mteja wa utekelezaji huweka miamala kwenye bloku, hutekeleza miamala na kutengeneza hashi ya bloku +- Mteja wa makubaliano huchukua miamala na hashi ya bloku kutoka kwa mteja wa utekelezaji na kuziongeza kwenye bloku ya beacon (RPC ya ndani) +- Mteja wa makubaliano hutangaza bloku kupitia itifaki ya uvumi wa bloku (consensus p2p) +- Wateja wengine hupokea bloku iliyopendekezwa kupitia itifaki ya uvumi wa bloku na kuthibitisha kama ilivyoelezwa hapo juu (consensus p2p) + +Mara tu bloku inapothibitishwa na wathibitishaji wa kutosha, inaongezwa kwenye kichwa cha mnyororo, inahalalishwa na hatimaye kukamilishwa. + +![](cons_client_net_layer.png) +![](exe_client_net_layer.png) + +Mchoro wa safu ya mtandao kwa wateja wa makubaliano na utekelezaji, kutoka [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) + +## Masomo zaidi {#further-reading} + +[DevP2P](https://github.com/ethereum/devp2p) +[LibP2p](https://github.com/libp2p/specs) +[Vipimo vya mtandao vya safu ya makubaliano](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) +[kademlia hadi discv5](https://vac.dev/kademlia-to-discv5) +[karatasi ya kademlia](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) +[utangulizi wa Ethereum p2p](https://p2p.paris/en/talks/intro-ethereum-networking/) +[uhusiano wa eth1/eth2](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) +[video ya maelezo ya muungano na mteja wa eth2](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/public/content/translations/sw/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/sw/developers/docs/networking-layer/network-addresses/index.md new file mode 100644 index 00000000000..18b10fa3957 --- /dev/null +++ b/public/content/translations/sw/developers/docs/networking-layer/network-addresses/index.md @@ -0,0 +1,39 @@ +--- +title: Anwani ya mtandao +description: Utangulizi wa anwani za mtandao. +lang: sw +sidebarDepth: 2 +--- + +Nodi za Ethereum zinapaswa kujitambulisha na maelezo ya msingi ili kuunganishwa na rika. Ili kuhakikisha rika yoyote inayowezekana inaweza kufasiri maelezo haya, hutumwa katika mojawapo ya miundo mitatu sanifu ambayo nodi yoyote ya Ethereum inaweza kuelewa: multiaddr, enode, au Rekodi za Nodi za Ethereum (ENRs). ENRs ni kiwango cha sasa cha anwani za mtandao wa Ethereum. + +## Mahitaji ya awali {#prerequisites} + +Uelewa fulani wa [safu ya mtandao](/developers/docs/networking-layer/) ya Ethereum unahitajika ili kuelewa ukurasa huu. + +## Multiaddr {#multiaddr} + +Muundo halisi wa anwani ya nodi ya Ethereum ulikuwa 'multiaddr' (fupi ya 'anwani-nyingi'). Multiaddr ni muundo wa ulimwengu wote ulioundwa kwa ajili ya mitandao ya rika kwa rika. Anwani zinawakilishwa kama jozi za ufunguo-thamani na funguo na thamani zimetenganishwa na mkwaju wa mbele. Kwa mfano, multiaddr ya nodi iliyo na anwani ya IPv4 `192.168.22.27` inayosikiliza kwenye bandari ya TCP `33000` inaonekana hivi: + +/ip4/192.168.22.27/tcp/33000 + +Kwa nodi ya Ethereum, multiaddr ina kitambulisho cha nodi (hashi ya ufunguo wao wa umma): + +/ip4/192.168.22.27/tcp/33000/p2p/5t7Nv7dG2d6ffbvAiewVsEwWweU3LdebSqX2y1bPrW8br + +## Enode {#enode} + +Enode ni njia ya kutambua nodi ya Ethereum kwa kutumia muundo wa anwani ya URL. Kitambulisho cha nodi cha heksadesimali kimesimbwa katika sehemu ya jina la mtumiaji ya URL kimetenganishwa na mwenyeji kwa kutumia alama ya @. Jina la mwenyeji linaweza tu kutolewa kama anwani ya IP; majina ya DNS hayaruhusiwi. Bandari katika sehemu ya jina la mwenyeji ni bandari ya kusikiliza ya TCP. Ikiwa bandari za TCP na UDP (ugunduzi) zinatofautiana, bandari ya UDP imebainishwa kama kigezo cha hoja "discport". + +Katika mfano ufuatao, URL ya nodi inaelezea nodi iliyo na anwani ya IP `10.3.58.6`, bandari ya TCP `30303` na bandari ya ugunduzi ya UDP `30301`. + +enode://6f8a80d14311c39f35f516fa664deaaaa13e85b2f7493f37f6144d86991ec012937307647bd3b9a82abe2974e1407241d54947bbb39763a4cac9f77166ad92a0@10.3.58.6:30303?discport=30301 + +## Rekodi za Nodi za Ethereum (ENRs) {#enr} + +Rekodi za Nodi za Ethereum (ENRs) ni muundo sanifu wa anwani za mtandao kwenye Ethereum. Zinachukua nafasi ya multiaddr na enodes. Hizi ni muhimu hasa kwa sababu zinaruhusu ubadilishanaji mkubwa wa habari kati ya nodi. ENR ina sahihi, nambari ya mfuatano na sehemu zinazoelezea mpango wa utambulisho unaotumiwa kutengeneza na kuthibitisha sahihi. ENR inaweza pia kujazwa na data holela iliyoandaliwa kama jozi za ufunguo-thamani. Jozi hizi za ufunguo-thamani zina anwani ya IP ya nodi na maelezo kuhusu itifaki ndogo ambayo nodi inaweza kutumia. Wateja wa makubaliano hutumia [muundo maalum wa ENR](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) kutambua nodi za mwanzo na pia hujumuisha sehemu ya `eth2` iliyo na maelezo kuhusu uma wa sasa wa Ethereum na subneti ya uvumi wa uthibitishaji (hii inaunganisha nodi na seti maalum ya rika ambao uthibitishaji wao umekusanywa pamoja). + +## Masomo zaidi {#further-reading} + +- [EIP-778: Rekodi za Nodi za Ethereum (ENR)](https://eips.ethereum.org/EIPS/eip-778) +- [LibP2P: Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) diff --git a/public/content/translations/sw/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/sw/developers/docs/networking-layer/portal-network/index.md new file mode 100644 index 00000000000..cef7dea0f47 --- /dev/null +++ b/public/content/translations/sw/developers/docs/networking-layer/portal-network/index.md @@ -0,0 +1,89 @@ +--- +title: Mtandao wa Portal +description: Muhtasari wa Mtandao wa Portal - mtandao unaoendelezwa ulioundwa kusaidia wateja wenye rasilimali chache. +lang: sw +--- + +Ethereum ni mtandao unaoundwa na kompyuta zinazoendesha programu ya mteja wa Ethereum. Kila moja ya kompyuta hizi inaitwa 'nodi'. Programu ya mteja inaruhusu nodi kutuma na kupokea data kwenye mtandao wa Ethereum, na inathibitisha data dhidi ya sheria za itifaki ya Ethereum. Nodi huweka data nyingi za kihistoria katika hifadhi zao za diski na huongeza juu yake zinapopokea pakiti mpya za habari, zinazojulikana kama bloku, kutoka kwa nodi zingine kwenye mtandao. Hii ni muhimu ili kuhakikisha kila wakati kwamba nodi ina taarifa inayoendana na mtandao wote. Hii inamaanisha kuendesha nodi kunaweza kuhitaji nafasi kubwa ya diski. Baadhi ya operesheni za nodi zinaweza kuhitaji RAM nyingi pia. + +Ili kukabiliana na tatizo hili la hifadhi ya diski, nodi 'nyepesi' zimeundwa ambazo huomba taarifa kutoka kwa nodi kamili badala ya kuzihifadhi zote zenyewe. Hata hivyo, hii inamaanisha kuwa nodi nyepesi haithibitishi taarifa kwa kujitegemea na badala yake inaamini nodi nyingine. Inamaanisha pia kwamba nodi kamili zinahitajika kufanya kazi ya ziada ili kuhudumia nodi hizo nyepesi. + +Mtandao wa Portal ni muundo mpya wa mtandao kwa ajili ya Ethereum unaolenga kutatua tatizo la upatikanaji wa data kwa nodi "nyepesi" bila kulazimika kuamini au kuongeza mzigo kwa nodi kamili, kwa kushiriki data muhimu katika vipande vidogo kwenye mtandao. + +Zaidi kuhusu [nodi na wateja](/developers/docs/nodes-and-clients/) + +## Kwa nini tunahitaji Mtandao wa Portal {#why-do-we-need-portal-network} + +Nodi za Ethereum huhifadhi nakala zao kamili au sehemu ya mnyororo wa bloku wa Ethereum. Nakala hii ya ndani hutumiwa kuthibitisha miamala na kuhakikisha nodi inafuata mnyororo sahihi. Data hii iliyohifadhiwa ndani inaruhusu nodi kuthibitisha kwa kujitegemea kuwa data inayoingia ni halali na sahihi bila kuhitaji kuamini chombo kingine chochote. + +Nakala hii ya ndani ya mnyororo wa bloku na data inayohusiana ya hali na risiti huchukua nafasi nyingi kwenye diski kuu ya nodi. Kwa mfano, diski kuu ya 2TB inapendekezwa kwa ajili ya kuendesha nodi kwa kutumia [Geth](https://geth.ethereum.org) iliyooanishwa na mteja wa makubaliano. Kwa kutumia ulandanishi wa haraka (snap sync), ambao huhifadhi tu data ya mnyororo kutoka kwa seti ya bloku za hivi karibuni, Geth kwa kawaida huchukua takriban 650GB ya nafasi ya diski lakini huongezeka kwa takriban 14GB/wiki (unaweza kupunguza nodi kurudi hadi 650GB mara kwa mara). + +Hii inamaanisha kuendesha nodi kunaweza kuwa ghali, kwa sababu kiasi kikubwa cha nafasi ya diski kinapaswa kutengewa Ethereum. Kuna suluhisho kadhaa kwa tatizo hili katika mpango mkakati wa Ethereum, ikiwa ni pamoja na [kuisha muda wa historia](/roadmap/statelessness/#history-expiry), [kuisha muda wa hali](/roadmap/statelessness/#state-expiry) na [kutokuwa na hali (statelessness)](/roadmap/statelessness/). Hata hivyo, kuna uwezekano bado miaka kadhaa kabla ya haya kutekelezwa. Pia kuna [nodi nyepesi](/developers/docs/nodes-and-clients/light-clients/) ambazo hazihifadhi nakala zao za data ya mnyororo, zinaomba data wanayohitaji kutoka kwa nodi kamili. Hata hivyo, hii inamaanisha nodi nyepesi zinapaswa kuamini nodi kamili kutoa data ya kweli na pia huweka shinikizo kwa nodi kamili ambazo zinapaswa kutoa data ambayo nodi nyepesi zinahitaji. + +Mtandao wa Portal unalenga kutoa njia mbadala kwa nodi nyepesi kupata data zao ambayo haihitaji kuamini au kuongeza kwa kiasi kikubwa kazi inayopaswa kufanywa na nodi kamili. Njia hii itafanywa kwa kuanzisha njia mpya kwa nodi za Ethereum kushiriki data kwenye mtandao. + +## Mtandao wa Portal unafanyaje kazi? {#how-does-portal-network-work} + +Nodi za Ethereum zina itifaki kali zinazofafanua jinsi zinavyowasiliana. Wateja wa utekelezaji huwasiliana kwa kutumia seti ya itifaki ndogo zinazojulikana kama [DevP2P](/developers/docs/networking-layer/#devp2p), wakati wateja wa makubaliano hutumia rundo tofauti la itifaki ndogo liitwalo [libP2P](/developers/docs/networking-layer/#libp2p). Hizi hufafanua aina za data zinazoweza kupitishwa kati ya nodi. + +![devP2P na libP2P](portal-network-devp2p-libp2p.png) + +Nodi pia zinaweza kutoa data maalum kupitia [API ya JSON-RPC](/developers/docs/apis/json-rpc/), ambayo ndiyo jinsi programu na mikoba hubadilishana habari na nodi za Ethereum. Hata hivyo, hakuna kati ya hizi ambazo ni itifaki bora za kutoa data kwa wateja wepesi. + +Wateja wepesi kwa sasa hawawezi kuomba vipande maalum vya data ya mnyororo kupitia DevP2P au libP2p kwa sababu itifaki hizo zimeundwa tu kuwezesha ulandanishi wa mnyororo na usambazaji wa bloku na miamala. Wateja wepesi hawataki kupakua taarifa hii kwa sababu hiyo ingewazuia kuwa "wepesi". + +API ya JSON-RPC si chaguo bora kwa maombi ya data ya mteja mwepesi pia, kwa sababu inategemea muunganisho kwa nodi kamili maalum au mtoa huduma wa RPC wa kati anayeweza kutoa data. Hii inamaanisha mteja mwepesi anapaswa kuamini nodi/mtoa huduma huyo maalum kuwa mwaminifu, na pia nodi kamili inaweza kulazimika kushughulikia maombi mengi kutoka kwa wateja wengi wepesi, na kuongeza mahitaji yao ya kipimo data. + +Lengo la Mtandao wa Portal ni kufikiria upya muundo mzima, ukijenga mahsusi kwa ajili ya wepesi, nje ya vikwazo vya muundo wa wateja waliopo wa Ethereum. + +Wazo kuu la Mtandao wa Portal ni kuchukua sehemu bora zaidi za rundo la sasa la mtandao kwa kuwezesha taarifa inayohitajika na wateja wepesi, kama vile data ya kihistoria na utambulisho wa kiongozi wa sasa wa mnyororo kutolewa kupitia mtandao mwepesi wa rika-kwa-rika uliogatuliwa wa mtindo wa DevP2P kwa kutumia [DHT](https://en.wikipedia.org/wiki/Distributed_hash_table) (sawa na Bittorrent). + +Wazo ni kuongeza sehemu ndogo za jumla ya data ya kihistoria ya Ethereum na baadhi ya majukumu maalum ya nodi kwa kila nodi. Kisha, maombi yanashughulikiwa kwa kutafuta nodi zinazohifadhi data maalum iliyoombwa na kuichukua kutoka kwao. + +Hii inageuza mtindo wa kawaida wa nodi nyepesi kupata nodi moja na kuomba wachuje na kutoa kiasi kikubwa cha data; badala yake, wanachuja haraka mtandao mkubwa wa nodi ambapo kila moja hushughulikia kiasi kidogo cha data. + +Lengo ni kuruhusu mtandao uliogatuliwa wa wateja wepesi wa Portal kuweza: + +- kufuatilia kiongozi wa mnyororo +- kulandanisha data ya hivi karibuni na ya kihistoria ya mnyororo +- kurejesha data ya hali +- kutangaza miamala +- kutekeleza miamala kwa kutumia [EVM](/developers/docs/evm/) + +Faida za muundo huu wa mtandao ni: + +- kupunguza utegemezi kwa watoa huduma wa kati +- Kupunguza matumizi ya kipimo data cha Intaneti +- Ulandanishi mdogo au sifuri +- Inapatikana kwa vifaa vyenye rasilimali chache (\<1 GB RAM, \<100 MB nafasi ya diski, 1 CPU) + +Jedwali lililo hapa chini linaonyesha kazi za wateja waliopo ambazo zinaweza kutolewa na Mtandao wa Portal, na kuwawezesha watumiaji kupata kazi hizi kwenye vifaa vyenye rasilimali chache sana. + +### Mitandao ya Portal + +| Mteja mwepesi wa Beacon | Mtandao wa hali | Usambazaji wa miamala | Mtandao wa historia | +| -------------------------- | ----------------------------- | --------------------- | ------------------- | +| Mnyororo mwepesi wa Beacon | Hifadhi ya akaunti na mkataba | Mempool nyepesi | Vichwa | +| Data ya itifaki | | | Miili ya bloku | +| | | | Risiti | + +## Utofauti wa wateja kama chaguo-msingi {#client-diversity-as-default} + +Wasanidi programu wa Mtandao wa Portal pia walifanya chaguo la kubuni ili kujenga wateja wanne tofauti wa Mtandao wa Portal tangu siku ya kwanza. + +Wateja wa Mtandao wa Portal ni: + +- [Trin](https://github.com/ethereum/trin): imeandikwa kwa Rust +- [Fluffy](https://fluffy.guide): imeandikwa kwa Nim +- [Ultralight](https://github.com/ethereumjs/ultralight): imeandikwa kwa Typescript +- [Shisui](https://github.com/zen-eth/shisui): imeandikwa kwa Go + +Kuwa na utekelezaji mwingi wa wateja huru huongeza ustahimilivu na ugatuzi wa mtandao wa Ethereum. + +Ikiwa mteja mmoja atapata matatizo au udhaifu, wateja wengine wanaweza kuendelea kufanya kazi vizuri, na kuzuia chanzo kimoja cha kushindwa. Zaidi ya hayo, utekelezaji mbalimbali wa wateja huchochea uvumbuzi na ushindani, na kusababisha maboresho na kupunguza hatari ya utamaduni mmoja ndani ya mfumo ikolojia. + +## Masomo zaidi {#further-reading} + +- [Mtandao wa Portal (Piper Merriam katika Devcon Bogota)](https://www.youtube.com/watch?v=0stc9jnQLXA). +- [Discord ya Mtandao wa Portal](https://discord.gg/CFFnmE7Hbs) +- [Tovuti ya Mtandao wa Portal](https://www.ethportal.net/) diff --git a/public/content/translations/sw/developers/docs/networks/index.md b/public/content/translations/sw/developers/docs/networks/index.md new file mode 100644 index 00000000000..a2237455a3b --- /dev/null +++ b/public/content/translations/sw/developers/docs/networks/index.md @@ -0,0 +1,216 @@ +--- +title: Mitandao +description: Muhtasari wa mitandao ya Ethereum na mahali pa kupata testnet ether (ETH) kwa ajili ya kujaribu programu yako. +lang: sw +--- + +Mitandao ya Ethereum ni makundi ya kompyuta zilizounganishwa zinazowasiliana kwa kutumia itifaki ya Ethereum. Kuna Mtandao Mkuu mmoja tu wa Ethereum, lakini mitandao huru inayofuata sheria za itifaki sawa inaweza kuundwa kwa madhumuni ya majaribio na maendeleo. Kuna "mitandao" mingi huru inayofuata itifaki bila kuingiliana. Unaweza hata kuanzisha moja kwenye kompyuta yako kwa ajili ya kujaribu mikataba yako erevu na programu za web3. + +Akaunti yako ya Ethereum itafanya kazi kwenye mitandao tofauti, lakini salio la akaunti yako na historia ya miamala haitahamishwa kutoka kwa mtandao mkuu wa Ethereum. Kwa madhumuni ya majaribio, ni muhimu kujua ni mitandao gani inapatikana na jinsi ya kupata testnet ETH ili uweze kujaribu. Kwa ujumla, kwa masuala ya usalama, haipendekezwi kutumia tena akaunti za mtandao mkuu kwenye testnets au kinyume chake. + +## Mahitaji ya awali {#prerequisites} + +Unapaswa kuelewa [misingi ya Ethereum](/developers/docs/intro-to-ethereum/) kabla ya kusoma kuhusu mitandao tofauti, kwa kuwa mitandao ya majaribio itakupa toleo la bei nafuu na salama la Ethereum la kujaribia. + +## Mitandao ya umma {#public-networks} + +Mitandao ya umma inapatikana kwa yeyote duniani aliye na muunganisho wa intaneti. Mtu yeyote anaweza kusoma au kuunda miamala kwenye mnyororo wa bloku wa umma na kuthibitisha miamala inayotekelezwa. Makubaliano kati ya rika huamua kuhusu ujumuishaji wa miamala na hali ya mtandao. + +### Mtandao Mkuu wa Ethereum {#ethereum-mainnet} + +Mtandao Mkuu ndio mnyororo wa bloku mkuu wa umma wa uzalishaji wa Ethereum, ambapo miamala ya thamani halisi hufanyika kwenye leja iliyosambazwa. + +Watu na masoko ya kubadilishana fedha wanapojadili bei za ETH, wanakuwa wanazungumzia ETH ya Mtandao Mkuu. + +### Testnet za Ethereum {#ethereum-testnets} + +Mbali na Mtandao Mkuu, kuna testnet za umma. Hii ni mitandao inayotumiwa na wasanidi programu wa itifaki au wasanidi programu wa mikataba-erevu kujaribu masasisho ya itifaki pamoja na mikataba-erevu inayowezekana katika mazingira yanayofanana na ya uzalishaji kabla ya kuipeleka kwenye Mtandao Mkuu. Fikiria hili kama mlinganisho wa seva za uzalishaji dhidi ya seva za maandalizi. + +Unapaswa kujaribu msimbo wowote wa mkataba unaouandika kwenye testnet kabla ya kupeleka kwenye Mtandao Mkuu. Miongoni mwa mfumo mtawanyo wa kimamlaka unaojumuishwa na mikataba-erevu iliyopo, miradi mingi ina nakala zilizotumwa kwenye testnet. + +Testnet nyingi zilianza kwa kutumia utaratibu wa makubaliano wa uthibitisho wa mamlaka wenye ruhusa. Hii inamaanisha idadi ndogo ya nodi huchaguliwa kuthibitisha miamala na kuunda bloku mpya – wakisimamisha utambulisho wao katika mchakato huo. Vinginevyo, baadhi ya testnet zina utaratibu wa makubaliano wa uthibitisho wa hisa ulio wazi ambapo kila mtu anaweza kujaribu kuendesha mthibitishaji, kama vile Mtandao Mkuu wa Ethereum. + +ETH kwenye testnet inatakiwa isiwe na thamani halisi; hata hivyo, kumekuwa na masoko yaliyoanzishwa kwa aina fulani za testnet ETH ambazo zimekuwa adimu au vigumu kupata. Kwa kuwa unahitaji ETH ili kuingiliana na Ethereum (hata kwenye testnet), watu wengi hupata testnet ETH bure kutoka kwa bomba. Mabomba mengi ni programu za wavuti ambapo unaweza kuweka anwani unayoomba ETH itumwe. + +#### Nitumie Testnet gani? + +Testnet mbili za umma ambazo wasanidi programu wa wateja wanazidumisha kwa sasa ni Sepolia na Hoodi. Sepolia ni mtandao kwa wasanidi programu wa mikataba na programu kujaribu programu zao. Mtandao wa Hoodi unaruhusu wasanidi programu wa itifaki kujaribu masasisho ya mtandao, na unaruhusu waweka hisa kujaribu kuendesha wathibitishaji. + +#### Sepolia {#sepolia} + +**Sepolia ndiyo testnet chaguomsingi inayopendekezwa kwa ajili ya uundaji wa programu**. Mtandao wa Sepolia unatumia seti ya wathibitishaji wenye ruhusa inayodhibitiwa na timu za wateja na majaribio. + +##### Rasilimali + +- [Tovuti](https://sepolia.dev/) +- [GitHub](https://github.com/eth-clients/sepolia) +- [Otterscan](https://sepolia.otterscan.io/) +- [Etherscan](https://sepolia.etherscan.io) +- [Blockscout](https://eth-sepolia.blockscout.com/) + +##### Mabomba + +- [Bomba la Alchemy Sepolia](https://www.alchemy.com/faucets/ethereum-sepolia) +- [Bomba la Chain Platform Sepolia](https://faucet.chainplatform.co/faucets/ethereum-sepolia/) +- [Bomba la Chainstack Sepolia](https://faucet.chainstack.com/sepolia-testnet-faucet) +- [Bomba la Mfumo Ikolojia wa Ethereum](https://www.ethereum-ecosystem.com/faucets/ethereum-sepolia) +- [Bomba la Sepolia la ethfaucet.com](https://ethfaucet.com/networks/ethereum) +- [Bomba la Sepolia la Google Cloud Web3](https://cloud.google.com/application/web3/faucet/ethereum/sepolia) +- [Grabteeth](https://grabteeth.xyz/) +- [Bomba la Infura Sepolia](https://www.infura.io/faucet) +- [Bomba la PoW](https://sepolia-faucet.pk910.de/) +- [Bomba la QuickNode Sepolia](https://faucet.quicknode.com/ethereum/sepolia) + +#### Hoodi {#hoodi} + +Hoodi ni testnet kwa ajili ya kujaribu uthibitishaji na kusimamisha. Mtandao wa Hoodi uko wazi kwa watumiaji wanaotaka kuendesha mthibitishaji wa testnet. Waweka hisa wanaotaka kujaribu masasisho ya itifaki kabla ya kupelekwa kwenye mtandao mkuu kwa hivyo wanapaswa kutumia Hoodi. + +- Seti wazi ya wathibitishaji, waweka hisa wanaweza kujaribu masasisho ya mtandao +- Hali kubwa, muhimu kwa kujaribu mwingiliano changamano wa mikataba-erevu +- Inachukua muda mrefu kusawazisha na inahitaji hifadhi zaidi ili kuendesha nodi + +##### Rasilimali + +- [Tovuti](https://hoodi.ethpandaops.io/) +- [GitHub](https://github.com/eth-clients/hoodi) +- [Kichunguzi](https://explorer.hoodi.ethpandaops.io/) +- [Usawazishaji wa Kituo cha Ukaguzi](https://checkpoint-sync.hoodi.ethpandaops.io/) +- [Otterscan](https://hoodi.otterscan.io/) +- [Etherscan](https://hoodi.etherscan.io/) + +##### Mabomba + +- [Bomba la Hoodi la Chain Platform](https://faucet.chainplatform.co/faucets/ethereum-hoodi/) +- [Bomba la Hoodi](https://hoodi.ethpandaops.io/) +- [Bomba la PoW](https://hoodi-faucet.pk910.de/) + +#### Ephemery {#ephemery} + +Ephemery ni aina ya kipekee ya testnet ambayo huwekwa upya kikamilifu kila mwezi. Hali ya utekelezaji na makubaliano hurejea kwenye mwanzo kila baada ya siku 28, ambayo ina maana chochote kinachotokea kwenye testnet ni cha muda mfupi. Hii inafanya kuwa bora kwa ajili ya majaribio ya muda mfupi, uanzishaji wa haraka wa nodi na aina ya programu za 'hujambo ulimwengu' zisizohitaji udumu. + +- Hali mpya kila wakati, majaribio ya muda mfupi ya wathibitishaji na programu +- Inajumuisha seti ya msingi tu ya mikataba +- Seti ya wathibitishaji iliyo wazi na rahisi kupata kiasi kikubwa cha fedha +- Mahitaji madogo zaidi ya nodi na usawazishaji wa haraka zaidi, <5GB kwa wastani + +##### Rasilimali + +- [Tovuti](https://ephemery.dev/) +- [Github](https://github.com/ephemery-testnet/ephemery-resources) +- [Soga ya jamii](https://matrix.to/#/#staker-testnet:matrix.org) +- [Blockscout](https://explorer.ephemery.dev/) +- [Otterscan](https://otter.bordel.wtf/) +- [Kichunguzi cha Beacon](https://beaconlight.ephemery.dev/) +- [Usawazishaji wa Kituo cha Ukaguzi](https://checkpoint-sync.ephemery.ethpandaops.io) +- [Launchpad](https://launchpad.ephemery.dev/) + +#### Mabomba + +- [Bomba la Bordel](https://faucet.bordel.wtf/) +- [Bomba la Pk910 PoW](https://ephemery-faucet.pk910.de/) + +#### Holesky (imepitwa na wakati) {#holesky} + +Testnet ya Holesky imepitwa na wakati kuanzia Septemba 2025. Waendeshaji wa usimamishaji na watoa huduma za miundombinu wanapaswa kutumia Hoodi kwa majaribio ya wathibitishaji badala yake. + +- [Tangazo la Kuzimwa kwa Testnet ya Holesky](https://blog.ethereum.org/2025/09/01/holesky-shutdown-announcement) - _Blogu ya EF, 1-Septemba-2025_ +- [Masasisho ya Testnet za Holesky na Hoodi](https://blog.ethereum.org/en/2025/03/18/hoodi-holesky) - _Blogu ya EF, 18-Machi-2025_ + +### Testnet za safu ya 2 {#layer-2-testnets} + +[Safu ya 2 (L2)](/layer-2/) ni neno la pamoja linaloelezea seti maalum ya suluhisho za kuongeza uwezo wa Ethereum. Safu ya 2 ni mnyororo wa bloku tofauti unaopanua Ethereum na kurithi dhamana za usalama za Ethereum. Testnet za safu ya 2 kwa kawaida huunganishwa kwa karibu na testnet za umma za Ethereum. + +#### Arbitrum Sepolia {#arbitrum-sepolia} + +Testnet kwa ajili ya [Arbitrum](https://arbitrum.io/). + +##### Rasilimali + +- [Etherscan](https://sepolia.arbiscan.io/) +- [Blockscout](https://sepolia-explorer.arbitrum.io/) + +##### Mabomba + +- [Bomba la Arbitrum Sepolia la Alchemy](https://www.alchemy.com/faucets/arbitrum-sepolia) +- [Bomba la Chainlink Arbitrum Sepolia](https://faucets.chain.link/arbitrum-sepolia) +- [Bomba la ethfaucet.com Arbitrum Sepolia](https://ethfaucet.com/networks/arbitrum) +- [Bomba la QuickNode Arbitrum Sepolia](https://faucet.quicknode.com/arbitrum/sepolia) + +#### Optimistic Sepolia {#optimistic-sepolia} + +Testnet kwa ajili ya [Optimism](https://www.optimism.io/). + +##### Rasilimali + +- [Etherscan](https://sepolia-optimistic.etherscan.io/) +- [Blockscout](https://optimism-sepolia.blockscout.com/) + +##### Mabomba + +- [Bomba la Alchemy](https://www.alchemy.com/faucets/optimism-sepolia) +- [Bomba la Chainlink](https://faucets.chain.link/optimism-sepolia) +- [Bomba la ethfaucet.com Optimism Sepolia](https://ethfaucet.com/networks/optimism) +- [Bomba la Testnet](https://docs.optimism.io/builders/tools/build/faucets) + +#### Starknet Sepolia {#starknet-sepolia} + +Testnet kwa ajili ya [Starknet](https://www.starknet.io). + +##### Rasilimali + +- [Starkscan](https://sepolia.starkscan.co/) + +##### Mabomba + +- [Bomba la Alchemy](https://www.alchemy.com/faucets/starknet-sepolia) +- [Bomba la Blast Starknet Sepolia](https://blastapi.io/faucets/starknet-sepolia-eth) +- [Bomba la Starknet](https://starknet-faucet.vercel.app/) + +## Mitandao ya faragha {#private-networks} + +Mtandao wa Ethereum ni mtandao wa faragha ikiwa nodi zake hazijaunganishwa na mtandao wa umma (yaani, Mtandao Mkuu au testnet). Katika muktadha huu, faragha inamaanisha tu iliyotengwa au kutengwa, badala ya kulindwa au salama. + +### Mitandao ya maendeleo {#development-networks} + +Ili kuendeleza programu ya Ethereum, utataka kuiendesha kwenye mtandao wa faragha ili kuona jinsi inavyofanya kazi kabla ya kuipeleka. Sawa na jinsi unavyounda seva ya ndani kwenye kompyuta yako kwa ajili ya maendeleo ya wavuti, unaweza kuunda mfano wa mnyororo wa bloku wa ndani ili kujaribu mfumo wako uliotawanywa. Hii inaruhusu marudio ya haraka zaidi kuliko testnet ya umma. + +Kuna miradi na zana zinazojitolea kusaidia na hili. Jifunze zaidi kuhusu [mitandao ya maendeleo](/developers/docs/development-networks/). + +### Mitandao ya muungano {#consortium-networks} + +Mchakato wa makubaliano unadhibitiwa na seti iliyoainishwa mapema ya nodi zinazoaminika. Kwa mfano, mtandao wa faragha wa taasisi za kitaaluma zinazojulikana ambapo kila moja inasimamia nodi moja, na bloku zinathibitishwa na kizingiti cha watia saini ndani ya mtandao. + +Ikiwa mtandao wa umma wa Ethereum ni kama intaneti ya umma, mtandao wa muungano ni kama intraneti ya faragha. + +## Kwa nini testnet za Ethereum zinapewa majina ya vituo vya metro? {#why-naming} + +Testnet nyingi za Ethereum zimepewa majina ya vituo halisi vya metro au treni. Utamaduni huu wa majina ulianza mapema na unaakisi miji ya kimataifa ambapo wachangiaji wameishi au kufanya kazi. Ni ya mfano, ya kukumbukwa, na ya vitendo. Kama vile testnet zinavyotengwa na mtandao mkuu wa Ethereum, njia za metro huendeshwa tofauti na trafiki ya juu ya ardhi. + +### Testnet zinazotumika sana na za zamani {#common-and-legacy-testnets} + +- **Sepolia** - Kitongoji kinachounganishwa na metro huko Athens, Ugiriki. Hivi sasa inatumika kwa majaribio ya mkataba-erevu na mfumo mtawanyo wa kimamlaka. +- **Hoodi** - Imepewa jina la kituo cha metro cha Hoodi huko Bengaluru, India. Inatumika kwa majaribio ya mthibitishaji na sasisho la itifaki. +- **Goerli** _(imepitwa na wakati)_ - Imepewa jina la Görlitzer Bahnhof huko Berlin, Ujerumani. +- **Rinkeby** _(imepitwa na wakati)_ - Imepewa jina la kitongoji cha Stockholm chenye kituo cha metro. +- **Ropsten** _(imepitwa na wakati)_ - Inarejelea eneo na kituo cha zamani cha feri/metro huko Stockholm. +- **Kovan** _(imepitwa na wakati)_ - Imepewa jina la kituo cha MRT cha Singapore. +- **Morden** _(imepitwa na wakati)_ - Imepewa jina la kituo cha London Underground. Testnet ya kwanza ya umma ya Ethereum. + +### Testnet zingine maalum {#other-testnets} + +Baadhi ya testnet ziliundwa kwa ajili ya majaribio ya muda mfupi au maalum kwa ajili ya kusasisha na si lazima ziwe na mandhari ya metro: + +- **Holesky** _(imepitwa na wakati)_ - Imepewa jina la kituo cha Holešovice huko Prague. Ilitumika kwa majaribio ya wathibitishaji; ilipitwa na wakati mnamo 2025. +- **Kiln**, **Zhejiang**, **Shandong**, **Prater**, **Pyrmont**, **Olympic** _(zote zimepitwa na wakati)_ na **Ephemery** - Ziliundwa mahususi kwa ajili ya uigaji wa masasisho kama Muungano, Shanghai, au majaribio ya wathibitishaji. Baadhi ya majina ni ya kikanda au ya kimada badala ya kutegemea metro. + +Kutumia majina ya vituo vya metro huwasaidia wasanidi programu kutambua na kukumbuka testnet haraka bila kuhitaji kutegemea vitambulisho vya mnyororo vya nambari. Pia inaakisi utamaduni wa Ethereum: wa vitendo, wa kimataifa, na unaozingatia binadamu. + +## Zana zinazohusiana {#related-tools} + +- [Chainlist](https://chainlist.org/) _orodha ya mitandao ya EVM ili kuunganisha mikoba na watoa huduma kwenye Kitambulisho cha Mnyororo na Kitambulisho cha Mtandao kinachofaa_ +- [Minyororo inayotumia EVM](https://github.com/ethereum-lists/chains) _repo ya GitHub ya metadata ya mnyororo inayoendesha Chainlist_ + +## Masomo zaidi {#further-reading} + +- [Pendekezo: Mzunguko wa Maisha wa Testnet wa Ethereum Unaotabirika](https://ethereum-magicians.org/t/proposal-predictable-ethereum-testnet-lifecycle/11575/17) +- [Mageuzi ya Testnet za Ethereum](https://etherworld.co/2022/08/19/the-evolution-of-ethereum-testnet/) diff --git a/public/content/translations/sw/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/sw/developers/docs/nodes-and-clients/archive-nodes/index.md new file mode 100644 index 00000000000..d6a870b72af --- /dev/null +++ b/public/content/translations/sw/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -0,0 +1,81 @@ +--- +title: Nodi ya Kumbukumbu ya Ethereum +description: Muhtasari wa nodi za kumbukumbu +lang: sw +sidebarDepth: 2 +--- + +Nodi ya kumbukumbu ni mfano wa mteja wa Ethereum uliosanidiwa kujenga kumbukumbu ya hali zote za kihistoria. Ni zana muhimu kwa matumizi fulani lakini inaweza kuwa ngumu zaidi kuiendesha kuliko nodi kamili. + +## Mahitaji ya awali {#prerequisites} + +Unapaswa kuelewa dhana ya [nodi ya Ethereum](/developers/docs/nodes-and-clients/), [usanifu wake](/developers/docs/nodes-and-clients/node-architecture/), [mikakati ya kusawazisha](/developers/docs/nodes-and-clients/#sync-modes), mazoea ya [kuiendesha](/developers/docs/nodes-and-clients/run-a-node/) na [kuitumia](/developers/docs/apis/json-rpc/). + +## Nodi ya kumbukumbu ni nini + +Ili kuelewa umuhimu wa nodi ya kumbukumbu, hebu tufafanue dhana ya "hali". Ethereum inaweza kurejelewa kama _mashine ya hali inayotegemea muamala_. Inajumuisha akaunti na programu zinazotekeleza miamala ambayo inabadilisha hali zao. Data ya kimataifa yenye habari kuhusu kila akaunti na mkataba huhifadhiwa katika hifadhidata ya trie inayoitwa hali. Hii inashughulikiwa na mteja wa safu ya utekelezaji (EL) na inajumuisha: + +- Salio za akaunti na nonces +- Msimbo wa mkataba na ghala +- Data inayohusiana na makubaliano, k.m., Mkataba wa Amana ya Kusimamisha + +Ili kuingiliana na mtandao, kuhakiki na kutoa bloku mpya, wateja wa Ethereum wanapaswa kwenda sambamba na mabadiliko ya hivi karibuni (ncha ya mnyororo) na kwa hivyo hali ya sasa. Mteja wa safu ya utekelezaji aliyesanidiwa kama nodi kamili huhakiki na kufuata hali ya hivi karibuni ya mtandao lakini huhifadhi kwa muda hali chache zilizopita, k.m., hali inayohusishwa na bloku 128 za mwisho, ili iweze kushughulikia upangaji upya wa mnyororo na kutoa ufikiaji wa haraka kwa data ya hivi karibuni. Hali ya hivi karibuni ndiyo wateja wote wanahitaji ili kuhakiki miamala inayoingia na kutumia mtandao. + +Unaweza kufikiria hali kama picha ya mtandao ya muda katika bloku fulani na kumbukumbu kama kurudia historia. + +Hali za kihistoria zinaweza kupunguzwa kwa usalama kwa sababu si muhimu kwa mtandao kufanya kazi na ingekuwa ni kujirudia bila maana kwa mteja kuhifadhi data yote iliyopitwa na wakati. Hali zilizokuwepo kabla ya bloku fulani ya hivi karibuni (k.m., bloku 128 kabla ya ncha) kwa ufanisi hutupwa mbali. Nodi kamili huhifadhi tu data ya kihistoria ya mnyororo wa bloku (bloku na miamala) na picha za kihistoria za mara kwa mara ambazo zinaweza kutumika kuzalisha upya hali za zamani zinapohitajika. Hufanya hivi kwa kutekeleza upya miamala ya zamani katika EVM, jambo ambalo linaweza kuhitaji nguvu kubwa ya kukokotoa wakati hali inayotakiwa iko mbali na picha ya karibu zaidi. + +Hata hivyo, hii inamaanisha kwamba kufikia hali ya kihistoria kwenye nodi kamili hutumia ukokotoaji mwingi. Mteja anaweza kuhitaji kutekeleza miamala yote ya zamani na kukokotoa hali moja ya kihistoria kutoka genesis. Nodi za kumbukumbu hutatua hili kwa kuhifadhi sio tu hali za hivi karibuni bali kila hali ya kihistoria iliyoundwa baada ya kila bloku. Kimsingi hufanya maelewano na hitaji kubwa zaidi la nafasi kwenye diski. + +Ni muhimu kuzingatia kwamba mtandao hautegemei nodi za kumbukumbu kuhifadhi na kutoa data zote za kihistoria. Kama ilivyotajwa hapo juu, hali zote za mpito za kihistoria zinaweza kutolewa kwenye nodi kamili. Miamala huhifadhiwa na nodi yoyote kamili (kwa sasa chini ya 400G) na inaweza kurudiwa ili kujenga kumbukumbu nzima. + +### Tumia kesi + +Matumizi ya kawaida ya Ethereum kama vile kutuma miamala, kupeleka mikataba, kuhakiki makubaliano, n.k. hayahitaji ufikiaji wa hali za kihistoria. Watumiaji hawahitaji kamwe nodi ya kumbukumbu kwa maingiliano ya kawaida na mtandao. + +Faida kuu ya kumbukumbu ya hali ni ufikiaji wa haraka wa maswali kuhusu hali za kihistoria. Kwa mfano, nodi ya kumbukumbu ingerejesha matokeo mara moja kama vile: + +- _Akaunti 0x1337... ilikuwa na salio gani la ETH katika bloku 15537393?_ +- _Je, salio la tokeni 0x ni nini katika mkataba 0x kwenye bloku 1920000?_ + +Kama ilivyoelezwa hapo juu, nodi kamili ingehitaji kuzalisha data hii kwa utekelezaji wa EVM ambao hutumia CPU na huchukua muda. Nodi za kumbukumbu huzifikia kwenye diski na hutoa majibu mara moja. Hiki ni kipengele muhimu kwa sehemu fulani za miundombinu, kwa mfano: + +- Watoa huduma kama vile wachunguzi wa bloku +- Watafiti +- Wachambuzi wa usalama +- Wasanidi programu wa Dapp +- Ukaguzi na ufuataji + +Kuna [huduma](/developers/docs/nodes-and-clients/nodes-as-a-service/) mbalimbali za bure ambazo pia huruhusu ufikiaji wa data ya kihistoria. Kwa vile inahitaji nguvu zaidi kuendesha nodi ya kumbukumbu, ufikiaji huu mara nyingi una mipaka na hufanya kazi tu kwa ufikiaji wa mara kwa mara. Ikiwa mradi wako unahitaji ufikiaji wa kila wakati wa data ya kihistoria, unapaswa kufikiria kuiendesha mwenyewe. + +## Utekelezaji na matumizi + +Nodi ya kumbukumbu katika muktadha huu inamaanisha data inayotolewa na wateja wa safu ya utekelezaji wanaomkabili mtumiaji wanaposhughulikia hifadhidata ya hali na kutoa sehemu za mwisho za JSON-RPC. Chaguo za usanidi, muda wa kusawazisha na ukubwa wa hifadhidata vinaweza kutofautiana kulingana na mteja. Kwa maelezo zaidi, tafadhali rejelea nyaraka zilizotolewa na mteja wako. + +Kabla ya kuanzisha nodi yako mwenyewe ya kumbukumbu, jifunze kuhusu tofauti kati ya wateja na hasa [mahitaji mbalimbali ya maunzi](/developers/docs/nodes-and-clients/run-a-node/#requirements). Wateja wengi hawajaboreshwa kwa kipengele hiki na kumbukumbu zao zinahitaji zaidi ya 12TB ya nafasi. Kinyume chake, utekelezaji kama Erigon unaweza kuhifadhi data sawa katika chini ya 3TB jambo ambalo huwafanya kuwa njia bora zaidi ya kuendesha nodi ya kumbukumbu. + +## Mazoea yaliyopendekezwa + +Mbali na [mapendekezo ya jumla ya kuendesha nodi](/developers/docs/nodes-and-clients/run-a-node/), nodi ya kumbukumbu inaweza kuhitaji zaidi upande wa maunzi na matengenezo. Kwa kuzingatia [vipengele muhimu](https://github.com/ledgerwatch/erigon#key-features) vya Erigon, njia inayofaa zaidi ni kutumia utekelezaji wa mteja wa [Erigon](/developers/docs/nodes-and-clients/#erigon). + +### Vifaa + +Daima hakikisha unahakiki mahitaji ya maunzi kwa hali fulani katika nyaraka za mteja. +Hitaji kubwa zaidi kwa nodi za kumbukumbu ni nafasi ya diski. Kulingana na mteja, inatofautiana kutoka 3TB hadi 12TB. Hata kama HDD inaweza kuchukuliwa kuwa suluhisho bora kwa kiasi kikubwa cha data, kuisawazisha na kusasisha mara kwa mara ncha ya mnyororo itahitaji diski za SSD. Diski za [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) zinatosha lakini zinapaswa kuwa za ubora wa kuaminika, angalau [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences). Diski zinaweza kuwekwa kwenye kompyuta ya mezani au seva yenye nafasi za kutosha. Vifaa maalum kama hivyo ni bora kwa kuendesha nodi yenye muda mrefu wa kufanya kazi. Inawezekana kabisa kuiendesha kwenye laptop lakini uwezo wa kuhamishika utakuja na gharama ya ziada. + +Data yote inahitaji kutoshea kwenye gombo moja, kwa hivyo diski zinapaswa kuunganishwa, k.m., na [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) au LVM. Inaweza pia kufaa kufikiria kutumia [ZFS](https://en.wikipedia.org/wiki/ZFS) kwani inasaidia "Nakili-wakati-wa-kuandika" ambayo inahakikisha data inaandikwa kwa usahihi kwenye diski bila makosa yoyote ya kiwango cha chini. + +Kwa uthabiti na usalama zaidi katika kuzuia uharibifu wa hifadhidata kwa bahati mbaya, hasa katika usanidi wa kitaalamu, fikiria kutumia [memori ya ECC](https://en.wikipedia.org/wiki/ECC_memory) ikiwa mfumo wako unaiunga mkono. Ukubwa wa RAM kwa ujumla unashauriwa kuwa sawa na ule wa nodi kamili lakini RAM zaidi inaweza kusaidia kuharakisha usawazishaji. + +Wakati wa usawazishaji wa awali, wateja katika hali ya kumbukumbu watatekeleza kila muamala tangu genesis. Kasi ya utekelezaji mara nyingi hupunguzwa na CPU, hivyo CPU ya haraka zaidi inaweza kusaidia na muda wa usawazishaji wa awali. Kwenye kompyuta ya kawaida ya mtumiaji, usawazishaji wa awali unaweza kuchukua hadi mwezi mmoja. + +## Masomo zaidi {#further-reading} + +- [Nodi Kamili ya Ethereum dhidi ya Nodi ya Kumbukumbu](https://www.quicknode.com/guides/infrastructure/ethereum-full-node-vs-archive-node) - _QuickNode, Septemba 2022_ +- [Kujenga Nodi Yako Mwenyewe ya Kumbukumbu ya Ethereum](https://tjayrush.medium.com/building-your-own-ethereum-archive-node-72c014affc09) - _Thomas Jay Rush, Agosti 2021_ +- [Jinsi ya kusanidi Erigon, RPC ya Erigon na TrueBlocks (scrape na API) kama huduma](https://magnushansson.xyz/blog_posts/crypto_defi/2022-01-10-Erigon-Trueblocks) _– Magnus Hansson, ilisasishwa Septemba 2022_ + +## Mada zinazohusiana {#related-topics} + +- [Nodi na wateja](/developers/docs/nodes-and-clients/) +- [Kuendesha nodi](/developers/docs/nodes-and-clients/run-a-node/) diff --git a/public/content/translations/sw/developers/docs/nodes-and-clients/bootnodes/index.md b/public/content/translations/sw/developers/docs/nodes-and-clients/bootnodes/index.md new file mode 100644 index 00000000000..b1ae356e6f2 --- /dev/null +++ b/public/content/translations/sw/developers/docs/nodes-and-clients/bootnodes/index.md @@ -0,0 +1,32 @@ +--- +title: Utangulizi wa Ethereum Bootnodes +description: Taarifa ya msingi unahitaji kuelewa bootnodes +lang: sw +--- + +Wakati nodi mpya anajiunga na Mtandao Ethereum inahitaji kuungana na nodes ambayo tayari ni juu ya Mtandao ili kisha kugundua wenzao mpya. Pointi hizi za kuingia kwenye Mtandao wa Ethereum zinaitwa bootnodes. Wateja kawaida kuwa na orodha ya bootnodes hardcoded ndani yao. Hizi bootnodes ni kawaida kukimbia na Ethereum Msingi +ya devops timu au timu mteja wenyewe. Kumbuka kwamba bootnodes si sawa na nodi tuli. Nodi tuli huitwa tena na tena, ambapo bootnodes ni tu kuitwa juu kama hakuna wenzao kutosha kuungana na nodi mahitaji ya bootstrap baadhi ya uhusiano mpya. + +## Ungana na bootnode {#connect-to-a-bootnode} + +Wateja wengi kuwa na orodha ya bootnodes kujengwa katika, lakini unaweza pia wanataka kuendesha bootnode yako mwenyewe, au kutumia moja ambayo si sehemu ya orodha ya wateja hardcoded. Katika kesi hii, unaweza kutaja yao wakati wa kuanza mteja wako, kama ifuatavyo (mfano ni kwa ajili ya Geth, tafadhali angalia nyaraka mteja wako): + +``` +geth --bootnodes "enode://@:" +``` + +## Endesha bootnode {#run-a-bootnode} + +Bootnodes ni nodi kamili ambazo haziko nyuma ya NAT ([Tafsiri ya Anwani ya Mtandao](https://www.geeksforgeeks.org/network-address-translation-nat/)). Kila nodi kamili inaweza kutenda kama bootnode muda mrefu kama ni inapatikana kwa umma. + +Unapoanzisha nodi, inapaswa kurekodi [enode](/developers/docs/networking-layer/network-addresses/#enode) yako, ambayo ni kitambulisho cha umma ambacho wengine wanaweza kutumia kuungana na nodi yako. + +Enodi ni kawaida kuzaliwa upya juu ya kila kuanzisha upya, hivyo kuwa na uhakika wa kuangalia nyaraka mteja wako juu ya jinsi ya kuzalisha enode kudumu kwa bootnode yako. + +Ili kuwa nzuri bootnode ni wazo nzuri ya kuongeza idadi ya juu ya wenzao ambayo inaweza kuungana na hayo. Kukimbia bootnode na wenzao wengi itaongeza mahitaji bandwidth kwa kiasi kikubwa. + +## Bootnodes zinazopatikana {#available-bootnodes} + +Orodha ya bootnodes zilizojengewa ndani ya go-ethereum inaweza kupatikana [hapa](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go#L23). Hizi bootnodes ni kudumishwa na Ethereum Msingi na go-ethereum timu. + +Kuna orodha nyingine ya bootnodes kudumishwa na kujitolea inapatikana. Tafadhali kuhakikisha daima ni pamoja na angalau moja rasmi bootnode, vinginevyo unaweza kuwa kupatwa na kushambuliwa. diff --git a/public/content/translations/sw/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/sw/developers/docs/nodes-and-clients/client-diversity/index.md new file mode 100644 index 00000000000..9d008685c6e --- /dev/null +++ b/public/content/translations/sw/developers/docs/nodes-and-clients/client-diversity/index.md @@ -0,0 +1,132 @@ +--- +title: Utofauti wa wateja +description: Ufafanuzi wa kiwango cha juu wa umuhimu wa utofauti wa wateja wa Ethereum. +lang: sw +sidebarDepth: 2 +--- + +Mwenendo wa nodi ya Ethereum unadhibitiwa na programu ya mteja inayoendesha. Kuna wateja kadhaa wa Ethereum wa kiwango cha uzalishaji, kila mmoja akitengenezwa na kudumishwa kwa lugha tofauti na timu tofauti. Wateja wameundwa kwa vipimo vya kawaida vinavyohakikisha wateja wanawasiliana bila mshono na wana utendakazi sawa na kutoa hali ya utumiaji sawa kwa mtumiaji. Hata hivyo, kwa sasa usambazaji wa wateja kwenye nodi hauko sawa vya kutosha ili kuimarisha mtandao huu kwa uwezo wake kamili. Kimsingi, watumiaji wanapaswa kugawanywa takribani kwa usawa kati ya wateja mbalimbali ili kuleta utofauti wa wateja iwezekanavyo kwenye mtandao. + +## Mahitaji ya awali {#prerequisites} + +Ikiwa bado huelewi nodi na wateja ni nini, angalia [nodi na wateja](/developers/docs/nodes-and-clients/). Safu za [Utekelezaji](/glossary/#execution-layer) na [makubaliano](/glossary/#consensus-layer) zimefafanuliwa katika faharasa. + +## Kwa nini kuna wateja wengi? {#why-multiple-clients} + +Wateja wengi, waliotengenezwa na kudumishwa kwa uhuru, wapo kwa sababu utofauti wa wateja hufanya mtandao kuwa thabiti zaidi dhidi ya mashambulizi na hitilafu. Kuwa na wateja wengi ni nguvu ya kipekee kwa Ethereum - minyororo mingine ya bloku hutegemea kutokukosea kwa mteja mmoja. Hata hivyo, haitoshi tu kuwa na wateja wengi wanaopatikana, lazima wakubaliwe na jumuiya na jumla ya nodi zinazotumika zigawiwe kwa usawa kati yao. + +## Kwa nini utofauti wa wateja ni muhimu? {#client-diversity-importance} + +Kuwa na wateja wengi waliotengenezwa na kudumishwa kwa uhuru ni muhimu kwa afya ya mtandao uliogatuliwa. Hebu tuchunguze sababu zake. + +### Hitilafu {#bugs} + +Hitilafu katika mteja mmoja ni hatari ndogo kwa mtandao inapowakilisha idadi ndogo ya nodi za Ethereum. Kwa usambazaji sawa wa nodi kwa wateja wengi, uwezekano wa wateja wengi kupata tatizo la pamoja ni mdogo, na matokeo yake, mtandao unakuwa imara zaidi. + +### Ustahimilivu dhidi ya mashambulizi {#resilience} + +Utofauti wa wateja pia hutoa ustahimilivu dhidi ya mashambulizi. Kwa mfano, shambulio [linalodanganya mteja fulani](https://twitter.com/vdWijden/status/1437712249926393858) kwenye tawi fulani la mnyororo haliwezekani kufanikiwa kwa sababu wateja wengine hawawezi kunyonywa kwa njia ile ile na mnyororo mkuu unabaki bila kuharibiwa. Utofauti mdogo wa wateja huongeza hatari inayohusishwa na udukuzi kwa mteja mkuu. Utofauti wa wateja tayari umethibitisha kuwa ulinzi muhimu dhidi ya mashambulizi hasidi kwenye mtandao, kwa mfano shambulio la Shanghai la kukataliwa kwa huduma mwaka 2016 liliwezekana kwa sababu washambuliaji waliweza kumdanganya mteja mkuu (Geth) kutekeleza operesheni ya polepole ya i/o ya diski makumi ya maelfu ya mara kwa kila bloku. Kwa sababu wateja mbadala walikuwa pia mtandaoni ambao hawakuwa na udhaifu huo, Ethereum iliweza kupinga shambulio hilo na kuendelea kufanya kazi huku udhaifu katika Geth ukirekebishwa. + +### Mwisho wa uthibitisho wa hisa {#finality} + +Hitilafu katika mteja wa makubaliano aliye na zaidi ya 33% ya nodi za Ethereum inaweza kuzuia safu ya makubaliano kukamilika, ikimaanisha watumiaji wasingeweza kuamini kwamba miamala haitarejeshwa au kubadilishwa wakati fulani. Hili lingekuwa tatizo kubwa kwa programu nyingi zilizojengwa juu ya Ethereum, hasa DeFi. + + Mbaya zaidi, hitilafu kubwa katika mteja aliye na theluthi mbili ya walio wengi inaweza kusababisha mnyororo kugawanyika na kukamilika kimakosa, na kusababisha kundi kubwa la wathibitishaji kukwama kwenye mnyororo batili. Ikiwa wanataka kujiunga tena na mnyororo sahihi, wathibitishaji hawa hukabiliwa na adhabu ya kupunguzwa kwa hisa au kujiondoa polepole na kwa gharama nafuu na kuanzisha upya. Ukubwa wa adhabu ya kupunguzwa kwa hisa huongezeka kulingana na idadi ya nodi zenye hatia, huku theluthi mbili ya walio wengi wakipunguzwa kwa kiwango cha juu (ETH 32). + +Ingawa hizi ni hali zisizowezekana, mfumo-ikolojia wa Ethereum unaweza kupunguza hatari yake kwa kusawazisha usambazaji wa wateja kwenye nodi zinazotumika. Kimsingi, hakuna mteja wa makubaliano anayepaswa kufikia hisa ya 33% ya jumla ya nodi. + +### Wajibu wa pamoja {#responsibility} + +Pia kuna gharama ya kibinadamu ya kuwa na wateja walio wengi. Huweka mkazo na jukumu kubwa kwa timu ndogo ya maendeleo. Kadiri utofauti wa wateja unavyopungua, ndivyo mzigo wa jukumu kwa wasanidi programu wanaodumisha mteja aliye na wengi unavyoongezeka. Kusambaza jukumu hili kwa timu nyingi ni nzuri kwa afya ya mtandao wa nodi za Ethereum na mtandao wake wa watu. + +## Utofauti wa sasa wa wateja {#current-client-diversity} + +### Wateja wa Utekelezaji {#execution-clients-breakdown} + + + +### Wateja wa Makubaliano {#consensus-clients-breakdown} + + + +Mchoro huu unaweza kuwa umepitwa na wakati — nenda [ethernodes.org](https://ethernodes.org) na [clientdiversity.org](https://clientdiversity.org) kwa taarifa za kisasa. + +Chati mbili za pai hapo juu zinaonyesha picha za utofauti wa sasa wa wateja kwa safu za utekelezaji na makubaliano (wakati wa kuandika mnamo Oktoba 2025). Utofauti wa wateja umeimarika kwa miaka mingi, na safu ya utekelezaji imeona kupungua kwa utawala wa [Geth](https://geth.ethereum.org/), huku [Nethermind](https://www.nethermind.io/nethermind-client) ikiwa ya pili kwa ukaribu, [Besu](https://besu.hyperledger.org/) ya tatu na [Erigon](https://github.com/ledgerwatch/erigon) ya nne, huku wateja wengine wakijumuisha chini ya 3% ya mtandao. Mteja anayetumiwa zaidi kwenye safu ya makubaliano—[Lighthouse](https://lighthouse.sigmaprime.io/)—yuko karibu sana na wa pili anayetumiwa zaidi. [Prysm](https://prysmaticlabs.com/#projects) na [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) zinachukua ~31% na ~14% mtawalia, na wateja wengine hutumiwa mara chache. + +Data ya safu ya utekelezaji ilipatikana kutoka [supermajority.info](https://supermajority.info/) mnamo 26-Okt-2025. Data ya wateja wa makubaliano ilipatikana kutoka kwa [Michael Sproul](https://github.com/sigp/blockprint). Data ya wateja wa makubaliano ni ngumu zaidi kupata kwa sababu wateja wa safu ya makubaliano huwa hawana alama zisizo na utata ambazo zinaweza kutumika kuzitambua. Data ilitengenezwa kwa kutumia algoriti ya uainishaji ambayo wakati mwingine huchanganya baadhi ya wateja wachache (tazama [hapa](https://twitter.com/sproulM_/status/1440512518242197516) kwa maelezo zaidi). Katika mchoro ulio hapo juu, uainishaji huu usio na utata hushughulikiwa na lebo ya ama/au (k.m. Nimbus/Teku). Hata hivyo, ni wazi kwamba mtandao mwingi unaendesha Prysm. Licha ya kuwa picha za muda tu, thamani katika mchoro hutoa hisia nzuri ya jumla ya hali ya sasa ya utofauti wa wateja. + +Data ya kisasa ya utofauti wa wateja kwa safu ya makubaliano sasa inapatikana katika [clientdiversity.org](https://clientdiversity.org/). + +## Safu ya utekelezaji {#execution-layer} + +Hadi sasa, mazungumzo kuhusu utofauti wa wateja yamejikita zaidi kwenye safu ya makubaliano. Hata hivyo, mteja wa utekelezaji [Geth](https://geth.ethereum.org) kwa sasa anachangia karibu 85% ya nodi zote. Asilimia hii ni tatizo kwa sababu sawa na kwa wateja wa makubaliano. Kwa mfano, hitilafu katika Geth inayoathiri ushughulikiaji wa miamala au uundaji wa mizigo ya utekelezaji inaweza kusababisha wateja wa makubaliano kukamilisha miamala yenye matatizo au hitilafu. Kwa hivyo, Ethereum ingekuwa na afya bora kwa usambazaji sawa wa wateja wa utekelezaji, na ikiwezekana bila mteja yeyote anayewakilisha zaidi ya 33% ya mtandao. + +## Tumia mteja wa walio wachache {#use-minority-client} + +Kushughulikia utofauti wa wateja kunahitaji zaidi ya watumiaji binafsi kuchagua wateja wa walio wachache - inahitaji mabwawa ya wathibitishaji na taasisi kama vile mfumo mtawanyo wa kimamlaka makuu na masoko ya kubadilishana fedha kubadili wateja pia. Hata hivyo, watumiaji wote wanaweza kufanya sehemu yao katika kurekebisha usawa uliopo na kuhalalisha matumizi ya programu zote za Ethereum zinazopatikana. Baada ya Muungano, waendeshaji wote wa nodi watatakiwa kuendesha mteja wa utekelezaji na mteja wa makubaliano. Kuchagua mchanganyiko wa wateja waliopendekezwa hapa chini kutasaidia kuongeza utofauti wa wateja. + +### Wateja wa utekelezaji {#execution-clients} + +- [Besu](https://www.hyperledger.org/use/besu) +- [Nethermind](https://downloads.nethermind.io/) +- [Erigon](https://github.com/ledgerwatch/erigon) +- [Go-Ethereum](https://geth.ethereum.org/) +- [Reth](https://reth.rs/) + +### Wateja wa makubaliano {#consensus-clients} + +- [Nimbus](https://nimbus.team/) +- [Lighthouse](https://github.com/sigp/lighthouse) +- [Teku](https://consensys.io/teku) +- [Lodestar](https://github.com/ChainSafe/lodestar) +- [Prysm](https://prysm.offchainlabs.com/docs/) +- [Grandine](https://docs.grandine.io/) + +Watumiaji wa kiufundi wanaweza kusaidia kuharakisha mchakato huu kwa kuandika mafunzo na nyaraka zaidi kwa wateja wachache na kuwahimiza wenzao wanaoendesha nodi kuhama kutoka kwa wateja wakuu. Miongozo ya kubadili hadi kwa mteja wa makubaliano wa walio wachache inapatikana kwenye [clientdiversity.org](https://clientdiversity.org/). + +## Dashibodi za utofauti wa wateja {#client-diversity-dashboards} + +Dashibodi kadhaa hutoa takwimu za wakati halisi za utofauti wa wateja kwa safu ya utekelezaji na makubaliano. + +**Safu ya makubaliano:** + +- [Rated.network](https://www.rated.network/) +- [clientdiversity.org](https://clientdiversity.org/) + +**Safu ya utekelezaji:** + +- [supermajority.info](https://supermajority.info//) +- [Ethernodes](https://ethernodes.org/) + +## Masomo zaidi {#further-reading} + +- [Utofauti wa wateja kwenye safu ya makubaliano ya Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) +- [Muungano wa Ethereum: Endesha mteja wa walio wengi kwa hatari yako mwenyewe!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, Machi 24 2022_ +- [Umuhimu wa utofauti wa wateja](https://our.status.im/the-importance-of-client-diversity/) +- [Orodha ya huduma za nodi za Ethereum](https://ethereumnodes.com/) +- [Maswali "Matano ya Kwa Nini" ya tatizo la utofauti wa wateja](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) +- [Utofauti wa Ethereum na Jinsi ya Kuutatua (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) +- [clientdiversity.org](https://clientdiversity.org/) + +## Mada zinazohusiana {#related-topics} + +- [Endesha nodi ya Ethereum](/run-a-node/) +- [Nodi na wateja](/developers/docs/nodes-and-clients/) From 9163e9e26ce42f736b1f40fce5077fb9d17b3941 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Sun, 15 Feb 2026 16:26:02 +0000 Subject: [PATCH 2/2] fix(i18n): remove Crowdin ''text'' artifacts from Swahili translations Strip double single-quote wrappers (''...'') from frontmatter titles, descriptions, and body text in developers/docs/index.md and developers/docs/intro-to-ether/index.md. Also remove spurious trailing period from title frontmatter. --- .../content/translations/sw/developers/docs/index.md | 10 +++++----- .../sw/developers/docs/intro-to-ether/index.md | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/public/content/translations/sw/developers/docs/index.md b/public/content/translations/sw/developers/docs/index.md index 7125b796c61..f861f97dbea 100644 --- a/public/content/translations/sw/developers/docs/index.md +++ b/public/content/translations/sw/developers/docs/index.md @@ -1,16 +1,16 @@ --- -title: "''Nyaraka za maendeleo ya Ethereum.''" -description: "''Utangulizi wa nyaraka za watengenezaji kwenye ethereum.org." +title: "Nyaraka za maendeleo ya Ethereum" +description: "Utangulizi wa nyaraka za watengenezaji kwenye ethereum.org." lang: sw --- -''Nyaraka hizi zimeundwa kukusaidia kujenga kwa kutumia Ethereum.''. ''Inashughulikia Ethereum kama dhana, inaeleza mfumo wa kiteknolojia wa Ethereum, na inaandika mada za juu kwa matumizi na matumizi tata zaidi.''. +Nyaraka hizi zimeundwa kukusaidia kujenga kwa kutumia Ethereum. Inashughulikia Ethereum kama dhana, inaeleza mfumo wa kiteknolojia wa Ethereum, na inaandika mada za juu kwa matumizi na matumizi tata zaidi. -''Huu ni mradi wa jamii wa chanzo huria, kwa hivyo jisikie huru kupendekeza mada mpya, kuongeza maudhui mapya na kutoa mifano wakati wowote unapofikiri inaweza kusaidia. Nyaraka zote zinaweza kuhaririwa kupitia GitHub – ikiwa huna uhakika jinsi ya kufanya, [fuata maagizo haya](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/editing-markdown.md). +Huu ni mradi wa jamii wa chanzo huria, kwa hivyo jisikie huru kupendekeza mada mpya, kuongeza maudhui mapya na kutoa mifano wakati wowote unapofikiri inaweza kusaidia. Nyaraka zote zinaweza kuhaririwa kupitia GitHub – ikiwa huna uhakika jinsi ya kufanya, [fuata maagizo haya](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/editing-markdown.md). ## Moduli za maendeleo {#development-modules} -''Ikiwa hii ndio mara yako ya kwanza kujaribu maendeleo ya Ethereum, tunapendekeza uanze mwanzo na uendelee hatua kwa hatua kama vile unasoma kitabu.''. +Ikiwa hii ndio mara yako ya kwanza kujaribu maendeleo ya Ethereum, tunapendekeza uanze mwanzo na uendelee hatua kwa hatua kama vile unasoma kitabu. ### Mada za msingi {#foundational-topics} diff --git a/public/content/translations/sw/developers/docs/intro-to-ether/index.md b/public/content/translations/sw/developers/docs/intro-to-ether/index.md index 37d1ded9949..7843ab9bfb8 100644 --- a/public/content/translations/sw/developers/docs/intro-to-ether/index.md +++ b/public/content/translations/sw/developers/docs/intro-to-ether/index.md @@ -1,5 +1,5 @@ --- -title: "''Utangulizi wa kiufundi wa Ether''" +title: "Utangulizi wa kiufundi wa Ether" description: Utangulizi wa msanidi programu katika sarafu ya kripto. lang: sw --- @@ -20,7 +20,7 @@ Sarafu ya kwanza ya kidijitali ilikuwa Bitcoin, iliyoundwa na Satoshi Nakamoto. **Ether (ETH)** ni sarafu ya kidigitali inayotumika kwa mambo mengi kwenye mtandao wa Ethereum. Kimsingi, ndiyo njia pekee inayokubalika ya malipo kwa ada za miamala, na baada ya [The Merge](/roadmap/merge), ether inahitajika ili kuthibitisha na kupendekeza vizuizi kwenye Mainnet. Ether pia hutumika kama aina ya msingi ya dhamana katika masoko ya ukopeshaji ya [DeFi](/defi), kama kipimo cha hesabu katika masoko ya NFT, kama malipo yanayopatikana kwa kutoa huduma au kuuza bidhaa halisi za ulimwengu, na zaidi. -Ethereum inaruhusu wasanidi programu kuunda [**mfumo uliotawanywa (mfumo mtawanyo wa kimamlaka)**](/developers/docs/dapps), ambapo zote hushiriki bwawa la nguvu za kompyuta. ''Bwawa hili ni ndogo, hivyo Ethereum inahitaji utaratibu wa kuamua ni nani atakayelipata kulitumia.''. Vinginevyo, mfumo mtawanyo wa kimamlaka unaweza kwa bahati mbaya au kwa nia mbaya kutumia rasilimali zote za mtandao, jambo ambalo lingezuia wengine kuufikia. +Ethereum inaruhusu wasanidi programu kuunda [**mfumo uliotawanywa (mfumo mtawanyo wa kimamlaka)**](/developers/docs/dapps), ambapo zote hushiriki bwawa la nguvu za kompyuta. Bwawa hili ni ndogo, hivyo Ethereum inahitaji utaratibu wa kuamua ni nani atakayelipata kulitumia. Vinginevyo, mfumo mtawanyo wa kimamlaka unaweza kwa bahati mbaya au kwa nia mbaya kutumia rasilimali zote za mtandao, jambo ambalo lingezuia wengine kuufikia. Sarafu ya kidigitali ya ether inasaidia utaratibu wa bei kwa nguvu za kompyuta za Ethereum. Watumiaji wanapotaka kufanya muamala, lazima walipe ether ili muamala wao utambuliwe kwenye mnyororo wa vizuizi. Gharama hizi za matumizi zinajulikana kama [ada za gesi](/developers/docs/gas/), na ada ya gesi inategemea kiasi cha nguvu ya kompyuta inayohitajika kutekeleza muamala na mahitaji ya mtandao mzima ya nguvu ya kompyuta kwa wakati huo.