Ruka hadi maudhui makuu
Mafunzo ya AI

Jenga, Jaribu na Uelewe Mikataba ya Soroban ya Stellar Trade

Jifunze jinsi mikataba ya Soroban ya Stellar Trade inavyodhibiti nafasi za soko la utabiri, malipo, marejesho ya fedha, rufaa, zawadi na utawala. Mafunzo haya yanaeleza muundo wa nafasi ya kazi, uthibitishaji wa ndani, mzunguko wa maisha ya soko, ukaguzi wa usalama na tahadhari za uwekaji.

Jenga, Jaribu na Uelewe Mikataba ya Soroban ya Stellar Trade

Utangulizi

Stellar Trade Contracts ni nafasi ya kazi ya mikataba ya Soroban kwa ajili ya Stellar Trade, mfano wa soko la utabiri lenye msimbo huria uliojengwa kwenye Stellar. Mikataba hii inadhibiti jinsi XLM inavyoingia kwenye hifadhi ya soko, jinsi washiriki wanavyopunguza nafasi zao, na jinsi masoko yaliyotatuliwa au kughairiwa yanavyogawa malipo na marejesho ya fedha.

Hazina hii imeundwa kwa ajili ya wasanidi wanaohitaji kujenga, kujaribu, kukagua au kusambaza mikataba iliyo nyuma ya programu. Inajumuisha mkataba wa soko pamoja na crate zinazosaidia tokeni, rufaa, ubao wa alama na majaribio ya ujumuishaji.

Elewa nafasi ya kazi

Hazina imepangwa katika crate kuu tano, kila moja ikiwa na jukumu maalumu:

  • prediction_market: Huunda masoko, hupokea nafasi, hupunguza nafasi, hushughulikia vitendo vya wasuluhishi, hukokotoa madai ya uwiano, huchakata marejesho ya fedha za masoko yaliyoghairiwa, huhesabu ada, na kusaidia mizozo pamoja na utawala.
  • stellar_trade_token: Hutoa tokeni ya zawadi yenye vidhibiti vya msimamizi, wachimbaji walioidhinishwa, vidhibiti vya kusitisha, na kikomo cha hiari cha usambazaji. Usambazaji mpya hutumia jina Stellar Trade na alama STRD.
  • referral_registry: Husajili rufaa, huweka kikomo cha kina cha mnyororo wa rufaa, na kugawa ada za rufaa.
  • leaderboard: Hufuatilia pointi za washiriki na rekodi za ushindi/mashindwa, hutumia upunguzaji wa alama, na kusaidia uchimbaji wa zawadi ulioidhinishwa.
  • cross_contract_invariants: Hujaribu kanuni za uhasibu na tabia katika mikataba ya soko, rufaa, ubao wa alama na tokeni.

Sanidi nafasi ya kazi ya Rust

Mradi umebainisha Rust 1.91.0 na lengo la wasm32v1-none kupitia rust-toolchain.toml. Sakinisha toolchain na lengo lililotajwa na hazina kabla ya kuendesha ukaguzi kutoka mzizi wa hazina.

Mazingira yakishawa tayari, endesha seti kamili ya majaribio ya nafasi ya kazi:

cargo test --workspace --all-features

Ukaguzi wa muundo huthibitisha kuwa msimbo wa chanzo unafuata kanuni za muundo za mradi:

cargo fmt --all -- --check

Endesha Clippy huku maonyo yakichukuliwa kama makosa ili kugundua masuala ya ubora na usahihi wa msimbo:

cargo clippy --workspace --all-features -- -D warnings

Jenga mkataba wa soko la utabiri kwa WebAssembly ukitumia wasifu wa toleo la uzalishaji:

cargo build --release --target wasm32v1-none -p prediction_market

Amri hizi zinalingana na ukaguzi unaotumiwa na mtiririko wa GitHub Actions wa hazina. Mtiririko huo pia hujenga bidhaa za WASM na kuendesha majaribio ya kanuni za mikataba mtambuka kwa mabadiliko kwenye tawi chaguo-msingi na maombi ya kuvuta.

Fuata mzunguko wa maisha wa soko

1. Unda soko

Muundaji aliyeidhinishwa huchapisha swali la soko, kategoria na muda wa kufunga. Uundaji wa soko una udhibiti wa ruhusa, hivyo mpigaji lazima atimize kanuni za idhini zilizowekwa na mkataba.

2. Weka nafasi

Mshiriki huita place_bet ili kuweka XLM kwenye upande wa NDIO au HAPANA. Mkataba hutumia ada zilizosanidiwa na kumpa mshiriki nafasi inayotokana na upande aliouchagua.

Mbinu ya kupunguza nafasi si uuzaji wa mtu kwa mtu, kitabu cha maagizo wala nafasi ya mauzo. Ni operesheni inayofanywa kwenye dau lililorekodiwa la mshiriki.

3. Punguza nafasi kabla ya kufunga

Kabla ya soko kufungwa, mshiriki anaweza kuita reduce_position ili kupunguza dau lililopo. Mkataba hutumia upande uliorekodiwa wa mshiriki na hukokotoa kiasi kitakachorudishwa kutokana na dau lililopunguzwa na kanuni za ada zilizobaki.

Kwa kuwa mkataba huchagua upande kutoka kwenye nafasi iliyopo ya mshiriki, wapigaji hawapaswi kuchukulia operesheni hii kama kubadilisha upande au kufanya biashara na mshiriki mwingine.

4. Tatua soko

Msuluhishi aliyeidhinishwa huwasilisha matokeo baada ya soko kufungwa. Kisha mkataba wa soko hukokotoa malipo ya uwiano kwa nafasi zilizoshinda.

Utatuzi una udhibiti wa ruhusa. Nafasi hii ya kazi haitoi oracle ya kiotomatiki. Data ya nje ya bei au mtandao haiwezi kutatua soko isipokuwa msuluhishi aliyeidhinishwa aitumie data hiyo na kuwasilisha matokeo.

5. Dai ushindi au pokea marejesho ya fedha za kughairiwa

Washiriki hudai malipo ya uwiano kupitia mkataba baada ya soko kutatuliwa. Masoko yaliyoghairiwa hufuata njia tofauti ya marejesho badala ya mtiririko wa kawaida wa malipo ya nafasi zilizoshinda.

Uteuzi wa msuluhishi, vigezo vya utatuzi, ushahidi na ushughulikiaji wa mizozo ni dhana muhimu za uaminifu. Kagua michakato hii kabla ya kutegemea soko lililosambazwa.

Kagua sifa za uhasibu na usalama

Kabla ya kubadilisha tabia ya mkataba, soma matriki ya kanuni. Inaunganisha kanuni muhimu za uhasibu na majaribio yanayozilinda.

Matriki inashughulikia maeneo kama:

  • Uhifadhi wa ada na utenganishaji wa ada kwa kiwango cha soko.
  • Mipaka ya malipo ya uwiano.
  • Tabia ya kughairi.
  • Uhasibu wa rufaa.
  • Ufuatiliaji wa usambazaji wa zawadi.
  • Ushughulikiaji wa muda wa kuishi wa hifadhi.
  • Njia za kusitisha wakati wa dharura.

Ukibadilisha ada, zawadi, fomula za malipo au muda wa kuishi wa hifadhi, sasisha majaribio husika ya urejeshaji na kanuni wakati huohuo. Crate ya cross_contract_invariants ni muhimu hasa pale mabadiliko yanapoathiri zaidi ya mkataba mmoja.

Tumia ripoti za kihistoria za masuala kwa usahihi

Saraka ya issues/ ina ripoti za kihistoria za usalama na usahihi. Soma issues/README.md ili kuelewa muktadha wake.

Ripoti hizi zinaandika hatari za awali za muundo. Hazipaswi kuchukuliwa kama ushahidi kwamba mikataba imekaguliwa, wala kama uthibitisho kwamba kila suala lililoorodheshwa bado linaendelea kuwa la sasa. Zitumie kama sehemu ya mapitio pamoja na msimbo wa sasa, majaribio, na jedwali la vizuizi.

Jitayarishe kwa usambazaji

Usambazaji wa testnet huhifadhi vitambulisho vya kihistoria vya mikataba na metadata ya tokeni. Usambazaji mpya huunda anwani mpya na kuanzisha STRD; hauhamishi wamiliki au salio zilizopo.

Kabla ya kusambaza, thibitisha yote yafuatayo:

  • Mtandao unaolengwa.
  • Vitambulisho vya mikataba.
  • Utambulisho wa msimamizi.
  • Mipangilio ya ada.
  • Usanidi wa resolver.

Usiwahi kuhifadhi funguo za siri, vifungu vya kurejesha pochi, .deploy.env, matokeo ya usambazaji, au faili za utambulisho za ndani kwenye hazina.

Kwa ajili ya uendelezaji wa frontend wa ndani na maelekezo ya usambazaji wa kiwango cha programu, soma README ya programu.

Vidokezo vya maendeleo ya hali ya juu

Jaribu tabia ya mikataba mbalimbali

Mabadiliko yanayoonekana kuwa ya ndani kwa crate moja yanaweza kuathiri rufaa, zawadi, rekodi za ubao wa viongozi, au jumla ya usambazaji wa tokeni. Endesha seti kamili ya majaribio ya workspace pamoja na majaribio ya vizuizi vya mikataba mbalimbali, badala ya kutegemea majaribio ya kitengo ya crate moja pekee.

Weka mipaka ya ruhusa wazi

Uundaji wa masoko, utatuzi, usimamizi wa tokeni, utengenezaji wa tokeni, na vitendo vingine nyeti hutumia vidhibiti vya uidhinishaji. Unapokagua au kupanua mkataba, thibitisha ni vitambulisho gani vinavyoruhusiwa kutekeleza kila operesheni na jinsi vidhibiti vya kusitisha vinavyoathiri tabia ya dharura.

Kagua mabadiliko ya muda wa kuhifadhi data

Udhibiti wa TTL ya hifadhi ni sehemu ya modeli ya usalama ya mradi. Mabadiliko yoyote ya mifumo ya kufikia hifadhi au muda wake yanapaswa kuchunguzwa dhidi ya jedwali la vizuizi na kufunikwa na majaribio ya urejeshaji.

Thibitisha vifaa vya toleo

Endesha uumbizaji, Clippy, majaribio, na ujenzi wa WASM wa toleo kabla ya kuchapisha au kusambaza mabadiliko. Chukulia ujenzi safi wa ndani kama sharti la maendeleo, si mbadala wa kukagua usanidi na vitambulisho vya usambazaji.

Hitimisho

Stellar Trade Contracts hutoa mantiki ya Soroban ya kuunda masoko ya utabiri, kurekodi nafasi za YES na NO, kupunguza dau, kutatua matokeo, kusambaza madai kwa uwiano, na kurejesha fedha za masoko yaliyoghairiwa. Crate zake saidizi huongeza utendakazi wa tokeni ya zawadi, rufaa, ubao wa viongozi, na ujumuishaji.

Ili kufanya kazi kwa usalama na hazina hii, anza na mazingira ya Rust yaliyowekwa toleo, endesha ukaguzi wote wa workspace, jifunze mzunguko wa maisha ya soko, na kagua jedwali la vizuizi kabla ya kubadilisha tabia ya uhasibu au hifadhi. Wakati wa usambazaji, thibitisha kila ruhusa na mipangilio ya mtandao, na weka siri zote nje ya udhibiti wa matoleo.