Mkataba-erevu wa Hello World kwa Wanaoanza
Ikiwa wewe ni mgeni katika usanidi wa mnyororo wa bloku na hujui pa kuanzia, au ikiwa unataka tu kuelewa jinsi ya kusambaza na kuingiliana na mikataba-erevu, mwongozo huu ni kwa ajili yako. Tutapitia hatua za kuunda na kusambaza mkataba-erevu rahisi kwenye testnet ya Sepolia kwa kutumia pochi pepe MetaMask (opens in a new tab), Solidity (opens in a new tab), Hardhat (opens in a new tab), na Alchemy (opens in a new tab) (usijali kama huelewi maana ya yoyote kati ya haya bado, tutaelezea).
Katika sehemu ya 2 (opens in a new tab) ya mafunzo haya tutapitia jinsi tunavyoweza kuingiliana na mkataba wetu-erevu mara tu utakapokuwa umesambazwa, na katika sehemu ya 3 (opens in a new tab) tutaangazia jinsi ya kuuchapisha kwenye Etherscan.
Ikiwa una maswali wakati wowote jisikie huru kuuliza kwenye Alchemy Discord (opens in a new tab)!
Hatua ya 1: Unganisha na mtandao wa Ethereum
Kuna njia nyingi za kufanya maombi kwa mnyororo wa Ethereum. Ili kurahisisha, tutatumia akaunti ya bure kwenye Alchemy, jukwaa la wasanidi programu wa mnyororo wa bloku na API ambayo inaturuhusu kuwasiliana na mnyororo wa Ethereum bila kulazimika kuendesha nodi zetu wenyewe. Jukwaa hilo pia lina zana za wasanidi programu kwa ajili ya ufuatiliaji na uchambuzi ambazo tutazitumia katika mafunzo haya ili kuelewa kinachoendelea nyuma ya pazia katika usambazaji wa mkataba-erevu wetu. Ikiwa bado huna akaunti ya Alchemy, unaweza kujisajili bure hapa (opens in a new tab).
Hatua ya 2: Unda programu yako (na ufunguo wa API)
Mara tu unapounda akaunti ya Alchemy, unaweza kutengeneza ufunguo wa API kwa kuunda programu. Hii itaturuhusu kufanya maombi kwa mtandao wa majaribio wa Sepolia. Ikiwa hufahamu testnets, angalia ukurasa huu.
- Nenda kwenye ukurasa wa "Unda programu mpya" katika Dashibodi yako ya Alchemy kwa kuchagua "Chagua programu" kwenye upau wa uelekezaji na kubofya "Unda programu mpya"
- Ipe programu yako jina “Hello World”, toa maelezo mafupi, na uchague kisa cha matumizi, k.m., "Miundombinu na Zana." Ifuatayo, tafuta "Ethereum" na uchague mtandao.
- Bofya "Inayofuata" ili kuendelea, kisha “Unda programu” na ndivyo hivyo! Programu yako inapaswa kuonekana kwenye menyu kunjuzi ya upau wa uelekezaji, na Ufunguo wa API ukiwa tayari kunakiliwa.
Hatua ya 3: Fungua akaunti ya Ethereum (anwani)
Tunahitaji akaunti ya Ethereum ili kutuma na kupokea miamala. Kwa mafunzo haya, tutatumia MetaMask, mkoba wa mtandaoni katika kivinjari unaotumika kudhibiti anwani ya akaunti yako ya Ethereum. Zaidi kuhusu miamala.
Unaweza kupakua MetaMask na kufungua akaunti ya Ethereum bure hapa (opens in a new tab). Unapofungua akaunti, au ikiwa tayari unayo akaunti, hakikisha umebadilisha kwenda kwenye testnet ya "Sepolia" kwa kutumia menyu kunjuzi ya mtandao (ili tusitumie pesa halisi).
Ikiwa huoni Sepolia ikiwa imeorodheshwa, nenda kwenye menyu, kisha kwenye Kina na usogeze chini ili kuwasha "Onyesha testnets". Katika menyu ya uteuzi wa mtandao, chagua kichupo cha "Maalum" ili kupata orodha ya testnets na uchague "Sepolia."
Hatua ya 4: Ongeza ether kutoka kwenye bomba
Ili kusambaza mkataba-erevu wetu kwenye testnet, tutahitaji ETH bandia. Ili kupata ETH ya Sepolia unaweza kwenda kwenye maelezo ya mtandao wa Sepolia ili kuona orodha ya mabomba mbalimbali. Ikiwa moja haifanyi kazi, jaribu nyingine kwani wakati mwingine zinaweza kuishiwa. Inaweza kuchukua muda kupokea ETH yako bandia kutokana na msongamano wa mtandao. Unapaswa kuona ETH katika akaunti yako ya MetaMask muda mfupi baadaye!
Hatua ya 5: Angalia Salio lako
Ili kuhakikisha mara mbili kuwa salio letu lipo, hebu tufanye ombi la eth_getBalance kwa kutumia zana ya mtunzi ya Alchemy (opens in a new tab). Hii itarudisha kiasi cha ETH katika mkoba wetu. Baada ya kuweka anwani ya akaunti yako ya MetaMask na kubofya “Tuma Ombi”, unapaswa kuona jibu kama hili:
1{ "jsonrpc": "2.0", "id": 0, "result": "0x2B5E3AF16B1880000" }KUMBUKA: Matokeo haya ni katika wei si ETH. Wei hutumika kama denomina ndogo zaidi ya ether. Ubadilishaji kutoka wei kwenda ETH ni: 1 eth = 1018 wei. Kwa hiyo tukibadilisha 0x2B5E3AF16B1880000 kwenda desimali tunapata 5*10¹⁸ ambayo ni sawa na ETH 5.
Phew! Pesa zetu bandia zote zipo .
Hatua ya 6: Anzisha mradi wetu
Kwanza, tutahitaji kuunda folda kwa ajili ya mradi wetu. Nenda kwenye mstari wako wa amri na uandike:
1mkdir hello-world2cd hello-worldSasa kwa kuwa tuko ndani ya folda ya mradi wetu, tutatumia npm init kuanzisha mradi. Ikiwa bado hujasakinisha npm, fuata maelekezo haya (opens in a new tab) (tutahitaji pia Node.js kwa hivyo pakua hiyo pia!).
1npm initHaijalishi sana jinsi unavyojibu maswali ya usakinishaji, hivi ndivyo tulivyofanya kwa marejeleo:
1jina la kifurushi: (hello-world)2toleo: (1.0.0)3maelezo: mkataba-erevu wa hello world4sehemu ya kuingilia: (index.js)5amri ya jaribio:6hazina ya git:7maneno muhimu:8mwandishi:9leseni: (ISC)10Karibu kuandika kwenye /Users/.../.../.../hello-world/package.json:11
12{13 "name": "hello-world",14 "version": "1.0.0",15 "description": "mkataba-erevu wa hello world",16 "main": "index.js",17 "scripts": {18 "test": "echo \\"Error: no test specified\\" && exit 1"19 },20 "author": "",21 "license": "ISC"22}Thibitisha package.json na tuko tayari kwenda!
Hatua ya 7: Pakua Hardhat (opens in a new tab)
Hardhat ni mazingira ya usanidi wa kuandaa, kupeleka, kupima, na kutatua programu yako ya Ethereum. Inasaidia wasanidi programu wanapojenga mikataba-erevu na dApps ndani ya nchi kabla ya kupeleka kwenye mnyororo hai.
Ndani ya mradi wetu wa hello-world endesha:
1npm install --save-dev hardhatAngalia ukurasa huu kwa maelezo zaidi kuhusu maagizo ya usakinishaji (opens in a new tab).
Hatua ya 8: Unda mradi wa Hardhat
Ndani ya folda yetu ya mradi, endesha:
1npx hardhatUnapaswa kisha kuona ujumbe wa kukaribisha na chaguo la kuchagua unachotaka kufanya. Chagua “unda hardhat.config.js tupu”:
1888 888 888 888 8882888 888 888 888 8883888 888 888 888 88848888888888 8888b. 888d888 .d88888 88888b. 8888b. 8888885888 888 "88b 888P" d88" 888 888 "88b "88b 8886888 888 .d888888 888 888 888 888 888 .d888888 8887888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.8888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y8889
10👷 Karibu kwenye Hardhat v2.0.11 👷?11
12Unataka kufanya nini? …13Unda mradi wa mfano14❯ Unda hardhat.config.js tupu15AchaHii itatutengenezea faili la hardhat.config.js ambapo tutaainisha usanidi wote wa mradi wetu (katika hatua ya 13).
Hatua ya 9: Ongeza folda za mradi
Ili kuweka mradi wetu ukiwa umepangwa tutaunda folda mbili mpya. Nenda kwenye saraka ya mizizi ya mradi wako katika mstari wako wa amri na uandike:
1mkdir contracts2mkdir scriptscontracts/ni mahali ambapo tutaweka faili la msimbo wa mkataba-erevu wetu wa hello worldscripts/ni mahali ambapo tutaweka hati za kusambaza na kuingiliana na mkataba wetu
Hatua ya 10: Andika mkataba wetu
Huenda unajiuliza, ni lini hasa tutaandika msimbo?? Naam, tumefika, hatua ya 10.
Fungua mradi wa hello-world katika kihariri chako unachopenda (tunapenda VSCode (opens in a new tab)). Mikataba-erevu huandikwa kwa lugha iitwayo Solidity ambayo ndiyo tutakayotumia kuandika mkataba-erevu wetu wa HelloWorld.sol.
- Nenda kwenye folda ya “contracts” na uunde faili mpya liitwalo HelloWorld.sol
- Hapo chini kuna sampuli ya mkataba-erevu wa Hello World kutoka Msingi wa Ethereum ambao tutautumia kwa ajili ya mafunzo haya. Nakili na ubandike yaliyomo hapa chini kwenye faili lako la HelloWorld.sol, na uhakikishe unasoma maoni ili kuelewa mkataba huu unafanya nini:
1// Hubainisha toleo la Solidity, kwa kutumia matoleo ya kimantiki.2// Jifunze zaidi: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma3pragma solidity ^0.7.0;4
5// Hubainisha mkataba unaoitwa `HelloWorld`.6// Mkataba ni mkusanyiko wa vitendaji na data (hali yake). Mara tu unaposambazwa, mkataba hukaa kwenye anwani maalum kwenye mnyororo wa bloku wa Ethereum. Jifunze zaidi: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html7contract HelloWorld {8
9 // Hutangaza kigezo cha hali `message` cha aina ya `string`.10 // Vigezo vya hali ni vigezo ambavyo thamani zake huhifadhiwa kabisa kwenye hifadhi ya mkataba. Neno kuu `public` hufanya vigezo viweze kufikiwa kutoka nje ya mkataba na huunda kitendaji ambacho mikataba mingine au wateja wanaweza kuita ili kufikia thamani.11 string public message;12
13 // Sawa na lugha nyingi za upangaji programu zinazozingatia matabaka na vitu, kiunda ni kitendaji maalum ambacho hutekelezwa tu wakati wa uundaji wa mkataba.14 // Viunda hutumika kuanzisha data ya mkataba. Jifunze zaidi:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors15 constructor(string memory initMessage) {16
17 // Hukubali hoja ya string `initMessage` na kuweka thamani kwenye kigezo cha hifadhi cha `message` cha mkataba).18 message = initMessage;19 }20
21 // Kitendaji cha umma kinachokubali hoja ya string na kusasisha kigezo cha hifadhi cha `message`.22 function update(string memory newMessage) public {23 message = newMessage;24 }25}Huu ni mkataba-erevu rahisi sana ambao huhifadhi ujumbe wakati wa uundaji na unaweza kusasishwa kwa kuita kitendaji cha update.
Hatua ya 11: Unganisha MetaMask na Alchemy kwenye mradi wako
Tumeunda pochi ya MetaMask, akaunti ya Alchemy, na kuandika mkataba-erevu wetu, sasa ni wakati wa kuunganisha vitu hivi vitatu.
Kila muamala unaotumwa kutoka kwa mkoba wako wa mtandaoni unahitaji sahihi kwa kutumia ufunguo wako binafsi wa kipekee. Ili kuipa programu yetu ruhusa hii, tunaweza kuhifadhi kwa usalama ufunguo wetu binafsi (na ufunguo wa API wa Alchemy) katika faili ya mazingira.
Ili kujifunza zaidi kuhusu kutuma miamala, angalia mafunzo haya kuhusu kutuma miamala kwa kutumia web3.
Kwanza, sakinisha kifurushi cha dotenv katika saraka ya mradi wako:
1npm install dotenv --saveKisha, unda faili ya .env katika saraka ya mizizi ya mradi wetu, na uongeze ufunguo wako binafsi wa MetaMask na URL ya HTTP ya API ya Alchemy.
- Fuata maelekezo haya (opens in a new tab) ili kuhamisha ufunguo wako binafsi
- Angalia hapa chini ili kupata URL ya API ya HTTP ya Alchemy
Nakili URL ya API ya Alchemy
Faili lako la .env linapaswa kuonekana hivi:
1API_URL = "https://eth-sepolia.g.alchemy.com/v2/ufunguo-wako-wa-api"2PRIVATE_KEY = "ufunguo-wako-binafsi-wa-metamask"Ili kuunganisha hivi kwenye msimbo wetu, tutarejelea vigezo hivi katika faili letu la hardhat.config.js kwenye hatua ya 13.
.env! Tafadhali hakikisha kamwe hushiriki au kufichua faili yako ya .env na mtu yeyote, kwani unahatarisha siri zako kwa kufanya hivyo. Ikiwa unatumia udhibiti wa toleo, ongeza .env yako kwenye faili ya gitignore.Hatua ya 12: Sakinisha Ethers.js
Ethers.js ni maktaba inayorahisisha kuingiliana na kufanya maombi kwa Ethereum kwa kufunika mbinu za kawaida za JSON-RPC kwa mbinu ambazo ni rahisi zaidi kwa mtumiaji.
Hardhat hurahisisha sana kuunganisha Plugins (opens in a new tab) kwa zana za ziada na utendakazi uliopanuliwa. Tutatumia fursa ya programu-jalizi ya Ethers (opens in a new tab) kwa usambazaji wa mkataba (Ethers.js (opens in a new tab) ina mbinu safi sana za usambazaji wa mkataba).
Katika saraka yako ya mradi, andika:
1npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0"Pia tutahitaji ethers katika hardhat.config.js yetu katika hatua inayofuata.
Hatua ya 13: Sasisha hardhat.config.js
Tumeongeza vitegemezi na programu-jalizi kadhaa hadi sasa, sasa tunahitaji kusasisha hardhat.config.js ili mradi wetu uvifahamu vyote.
Sasisha hardhat.config.js yako ili ionekane hivi:
1require('dotenv').config();2
3require("@nomiclabs/hardhat-ethers");4const { API_URL, PRIVATE_KEY } = process.env;5
6/**7* @type import('hardhat/config').HardhatUserConfig8*/9module.exports = {10 solidity: "0.7.3",11 defaultNetwork: "sepolia",12 networks: {13 hardhat: {},14 sepolia: {15 url: API_URL,16 accounts: [`0x${PRIVATE_KEY}`]17 }18 },19}Hatua ya 14: Kusanya mkataba wetu
Ili kuhakikisha kila kitu kinafanya kazi hadi sasa, hebu tuandae mkataba wetu. Jukumu la compile ni mojawapo ya majukumu yaliyojengewa ndani ya hardhat.
Kutoka kwenye mstari wa amri, endesha:
1npx hardhat compileUnaweza kupata onyo kuhusu kitambulisho cha leseni ya SPDX hakijatolewa kwenye faili chanzo, lakini hakuna haja ya kuwa na wasiwasi kuhusu hilo — tunatumai kila kitu kingine kinaonekana vizuri! Ikiwa sivyo, unaweza kutuma ujumbe kila wakati katika discord ya Alchemy (opens in a new tab).
Hatua ya 15: Andika hati yetu ya usambazaji
Sasa kwa kuwa mkataba wetu umeandikwa na faili yetu ya usanidi iko tayari, ni wakati wa kuandika hati ya kupeleka mkataba wetu.
Nenda kwenye folda ya scripts/ na uunde faili jipya liitwalo deploy.js, na uongeze yaliyomo yafuatayo ndani yake:
1async function main() {2 const HelloWorld = await ethers.getContractFactory("HelloWorld");3
4 // Anza usambazaji, ukirejesha ahadi inayotatuliwa kuwa kitu cha mkataba5 const hello_world = await HelloWorld.deploy("Hello World!");6 console.log("Mkataba umesambazwa kwa anwani:", hello_world.address);}7
8main()9 .then(() => process.exit(0))10 .catch(error => {11 console.error(error);12 process.exit(1);13 });Hardhat hufanya kazi nzuri ya kuelezea kile kila mstari wa msimbo huu unafanya katika mafunzo yao ya Mikataba (opens in a new tab), tumechukua maelezo yao hapa.
1const HelloWorld = await ethers.getContractFactory("HelloWorld");ContractFactory katika ethers.js ni dhana inayotumika kusambaza mikataba-erevu mipya, kwa hivyo HelloWorld hapa ni kiwanda cha vielelezo vya mkataba wetu wa hello world. Unapotumia programu-jalizi ya hardhat-ethers, vielelezo vya ContractFactory na Contract huunganishwa kwa mtia saini wa kwanza kwa chaguo-msingi.
1const hello_world = await HelloWorld.deploy();Kuita deploy() kwenye ContractFactory kutaanzisha usambazaji, na kurudisha Promise inayotatuliwa kuwa Contract. Hiki ndicho kitu ambacho kina mbinu kwa kila moja ya kazi zetu za mkataba-erevu.
Hatua ya 16: Sambaza mkataba wetu
Hatimaye tuko tayari kupeleka mkataba-erevu wetu! Nenda kwenye mstari wa amri na uendeshe:
1npx hardhat run scripts/deploy.js --network sepoliaUnapaswa kisha kuona kitu kama:
1Mkataba umesambazwa kwa anwani: 0x6cd7d44516a20882cEa2DE9f205bF401c0d23570Tukienda kwenye Etherscan ya Sepolia (opens in a new tab) na tutafute anwani ya mkataba wetu tunapaswa kuona kuwa umesambazwa kwa mafanikio. Muamala utaonekana kitu kama hiki:
Anwani ya From inapaswa kulingana na anwani ya akaunti yako ya MetaMask na anwani ya To itasema “Uundaji wa Mkataba” lakini tukibofya kwenye muamala tutaona anwani ya mkataba wetu katika sehemu ya To:
Hongera! Umesambaza mkataba-erevu kwenye mnyororo wa Ethereum 🎉
Ili kuelewa kinachoendelea chinichini, hebu tuende kwenye kichupo cha Mvumbuzi katika dashibodi yetu ya Alchemy (opens in a new tab). Ikiwa una programu nyingi za Alchemy hakikisha unachuja kwa programu na uchague “Hello World”.

Hapa utaona miito michache ya JSON-RPC ambayo Hardhat/Ethers ilitufanyia nyuma ya pazia tulipoiita kitendaji cha .deploy(). Miito miwili muhimu ya kutaja hapa ni eth_sendRawTransaction (opens in a new tab), ambalo ni ombi la kuandika mkataba wetu kwenye mnyororo wa Sepolia, na eth_getTransactionByHash (opens in a new tab) ambalo ni ombi la kusoma taarifa kuhusu muamala wetu kutokana na hashi (muundo wa kawaida wakati wa
miamala). Ili kujifunza zaidi kuhusu kutuma miamala, angalia mafunzo haya kuhusu kutuma miamala kwa kutumia Web3
Hayo ni yote kwa sehemu ya 1 ya mafunzo haya, katika sehemu ya 2 tutaingiliana na mkataba-erevu wetu (opens in a new tab) kwa kusasisha ujumbe wetu wa awali, na katika sehemu ya 3 tutachapisha mkataba-erevu wetu kwenye Etherscan (opens in a new tab) ili kila mtu ajue jinsi ya kuingiliana nao.
Unataka kujifunza zaidi kuhusu Alchemy? Angalia tovuti (opens in a new tab) yetu. Hutaki kamwe kukosa sasisho? Jisajili kwa jarida letu hapa (opens in a new tab)! Hakikisha pia unajiunga na Discord (opens in a new tab) yetu..
Ukurasa ulihaririwa mwisho: 3 Machi 2026





