የፌስቡክ ሊብራ ብሎክቼይን ፕሮግራሚንግ ቋንቋ ወደ ሚለው ሞቭ ይዝለቁ

በመቀጠል ፣ እኛ የእንቅስቃሴ ቋንቋን ዋና ዋና ባህሪዎች እና ከሌላ ፣ ቀደም ሲል ታዋቂ ከሆኑት ቋንቋዎች ጋር ቁልፍ ልዩነቶች ምን እንደሆኑ በዝርዝር እንመለከታለን - ጥንካሬ (በ Ethereum መድረክ ላይ)። ጽሑፉ የሚገኘው በመስመር ላይ ባለ 26 ገጽ ነጭ ወረቀት ጥናት ላይ የተመሠረተ ነው።

መግቢያ

Move የተጠቃሚ ግብይቶችን እና ዘመናዊ ኮንትራቶችን ለማስፈጸም የሚያገለግል የባይቴኮድ ቋንቋ ነው። ለሁለት ነጥቦች ትኩረት ይስጡ-

  1. አንቀሳቅስ በእንቅስቃሴ ምናባዊ ማሽን ላይ በቀጥታ ሊተገበር የሚችል የባይት ኮድ ቋንቋ ቢሆንም ፣ ጥንካሬ (የኢቴሬም ብልጥ የኮንትራት ቋንቋ) በኢቪኤም (ኤቴሬም ምናባዊ ማሽን) ላይ ከመገደሉ በፊት በመጀመሪያ በባይት ኮድ የተጠናከረ የከፍተኛ ደረጃ ቋንቋ ነው።
  2. ማንቀሳቀሻ ዘመናዊ ኮንትራቶችን ለመተግበር ብቻ ሳይሆን ለብጁ ግብይቶችም (ከዚህ በኋላ የበለጠ) ፣ Solidity ብልጥ ውል ብቻ ቋንቋ ነው።


ትርጉሙ የተደረገው በ INDEX ፕሮቶኮል ፕሮጀክት ቡድን ነው። ቀደም ብለን ተርጉመናል። የሊብራ ፕሮጀክትን የሚገልጽ ታላቅ ቁሳቁስ, አሁን የMove ቋንቋውን በጥልቀት ለመመልከት ጊዜው አሁን ነው። ትርጉሙ የተደረገው ከሃብራውዘር ጋር ነው። coolsiu

የMove ቁልፍ ባህሪ በመስመራዊ አመክንዮ ላይ በመመስረት ብጁ የግብዓት አይነቶችን በፍቺ የመግለጽ ችሎታ ነው፡ ሃብት በፍፁም ሊገለበጥ ወይም በተዘዋዋሪ ሊሰረዝ አይችልም፣ መንቀሳቀስ ብቻ ነው። በተግባራዊነት, ይህ ከ Rust ቋንቋ ባህሪያት ጋር ተመሳሳይ ነው. በዝገት ውስጥ ያሉ እሴቶች በአንድ ጊዜ ለአንድ ስም ብቻ ሊመደቡ ይችላሉ። እሴትን ለሌላ ስም መመደብ በቀድሞው ስም ተደራሽ እንዳይሆን ያደርገዋል።

የፌስቡክ ሊብራ ብሎክቼይን ፕሮግራሚንግ ቋንቋ ወደ ሚለው ሞቭ ይዝለቁ

ለምሳሌ ፣ የሚከተለው ኮድ ቅንጭብ ስህተት ይጥላል - የተንቀሳቀሰ እሴት 'x' አጠቃቀም። ይህ የሆነበት ምክንያት በሩዝ ውስጥ የቆሻሻ ማጠራቀሚያ የለም። ተለዋዋጮች ከአቅም ውጭ በሚሆኑበት ጊዜ ፣ ​​እነሱ የሚያመለክቱት ማህደረ ትውስታ እንዲሁ ነፃ ይሆናል። በቀላል አነጋገር ፣ የውሂብ አንድ “ባለቤት” ብቻ ሊኖር ይችላል። በዚህ ምሳሌ ውስጥ x የመጀመሪያው ባለቤት እና ከዚያ ነው y አዲሱ ባለቤት ይሆናል። ስለዚህ ባህሪ እዚህ የበለጠ ያንብቡ።.

በክፍት ስርዓቶች ውስጥ የዲጂታል ንብረቶች ውክልና

ዲጂታዊ በሆነ መልኩ ለመወከል አስቸጋሪ የሆኑ ሁለት የአካላዊ ንብረቶች ባህሪዎች አሉ-

  • ታማኝነት (እጥረት ፣ መጀመሪያ እጥረት)። በስርዓቱ ውስጥ የንብረቶች ብዛት (ልቀት) ቁጥጥር መደረግ አለበት። የነባር ንብረቶችን ማባዛት የተከለከለ መሆን አለበት ፣ እና አዳዲሶችን መፍጠር ልዩ መብት ያለው ተግባር ነው።
  • የመዳረሻ መቆጣጠሪያ... የስርዓት ተሳታፊው የመዳረሻ መቆጣጠሪያ ፖሊሲዎችን በመጠቀም ንብረቶችን መጠበቅ መቻል አለበት።

ለአካላዊ ንብረቶች ተፈጥሯዊ የሆኑት እነዚህ ሁለት ባህሪዎች እንደ ንብረት ልንቆጥራቸው ከፈለግን ለዲጂታል ዕቃዎች መተግበር አለባቸው። ለምሳሌ ፣ አንድ ያልተለመደ ብረት የተፈጥሮ ጉድለት አለው ፣ እና እርስዎ ብቻ እሱን ማግኘት ይችላሉ (ለምሳሌ በእጆችዎ ይያዙት) እና መሸጥ ወይም ማውጣት ይችላሉ።

በእነዚህ ሁለት ንብረቶች ላይ እንዴት እንደደረስን ለማሳየት ፣ በሚከተሉት ዓረፍተ ነገሮች እንጀምር።

የአስተያየት ጥቆማ ቁጥር 1 - ያለአነስተኛ እና የመዳረሻ ቁጥጥር ያለ ቀላሉ ደንብ

የፌስቡክ ሊብራ ብሎክቼይን ፕሮግራሚንግ ቋንቋ ወደ ሚለው ሞቭ ይዝለቁ

  • ጂ [ኬ] = n በቁልፍ ተደራሽ የሆነ የቁጥር ዝመናን ያመለክታል К በብሎክቼይን ዓለም አቀፍ ሁኔታ ፣ ከአዲስ ትርጉም ጋር n.
  • ግብይት l አሊስ ፣ 100⟩ የአሊስ ሂሳብ ቀሪ ሂሳብን ወደ 100 ማቀናበር ማለት ነው።

ከላይ የተጠቀሰው መፍትሔ በርካታ ዋና ችግሮች አሉት

  • አሊስ በቀላሉ በመላክ ያልተገደበ ሳንቲሞችን ማግኘት ይችላል ግብይት l አሊስ ፣ 100⟩.
  • አሊስ ለቦብ የላከው ሳንቲሞች ፋይዳ የላቸውም ፣ ምክንያቱም ቦብ ተመሳሳይ ዘዴን በመጠቀም ያልተገደበ ሳንቲሞችን ቁጥር መላክ ይችላል።

ጥቆማ ቁጥር 2 - ጉድለቱን ከግምት ውስጥ ማስገባት

የፌስቡክ ሊብራ ብሎክቼይን ፕሮግራሚንግ ቋንቋ ወደ ሚለው ሞቭ ይዝለቁ

አሁን የሳንቲሞች ቁጥር እንዲኖር ሁኔታውን እየተከታተልን ነው Ka ቢያንስ እኩል ነበር n ከማስተላለፉ ግብይት በፊት። ሆኖም ፣ ይህ የእጥረትን ችግር በሚፈታበት ጊዜ የአሊስ ሳንቲሞችን ማን ሊልክ እንደሚችል መረጃ የለም (ለአሁን ፣ ማንም ይህንን ማድረግ ይችላል ፣ ዋናው ነገር መጠኑን የመገደብ ደንብን መጣስ አይደለም)።

ሀሳብ ቁጥር 3 - እጥረት እና የመዳረሻ መቆጣጠሪያን ማዋሃድ

የፌስቡክ ሊብራ ብሎክቼይን ፕሮግራሚንግ ቋንቋ ወደ ሚለው ሞቭ ይዝለቁ

ይህንን ችግር በዲጂታል ፊርማ ዘዴ እንፈታዋለን ያረጋግጡ_ሲግ ሚዛኑን ከመፈተሽ በፊት ፣ ይህ ማለት አሊስ ግብይቱን ለመፈረም እና የእሷ ሳንቲሞች ባለቤት መሆኗን ለማረጋገጥ የግል ቁልፉን ይጠቀማል ማለት ነው።

Blockchain የፕሮግራም ቋንቋዎች

ነባር የብሎክቼን ቋንቋዎች የሚከተሉትን ችግሮች ያጋጥሟቸዋል (ሁሉም በእንቅስቃሴ ውስጥ ተፈትተዋል (ማስታወሻ- እንደ አለመታደል ሆኖ ፣ የጽሑፉ ደራሲ በንፅፅሮቹ ውስጥ ኤቴሬምን ብቻ ይማርካል ፣ ስለሆነም በዚህ አውድ ውስጥ ብቻ መውሰድ ተገቢ ነው። ለምሳሌ ፣ አብዛኛዎቹ የሚከተሉት በ EOS ውስጥም ተፈትተዋል።))::

የንብረቶች ቀጥተኛ ያልሆነ ውክልና. ንብረቱ ኢንቲጀርን በመጠቀም ነው የሚቀመጠው ነገር ግን የኢንቲጀር ዋጋ ከንብረት ጋር አንድ አይነት አይደለም። እንደ እውነቱ ከሆነ bitcoin / ether / <ማንኛውም ሳንቲም>ን የሚወክል ዓይነት ወይም ዋጋ የለም! ይህ ንብረቶችን የሚጠቀሙ ፕሮግራሞችን ለመጻፍ አስቸጋሪ እና ስህተትን ያጋልጣል። እንደ ንብረቶችን ወደ/ከሂደት ማስተላለፍ ወይም ንብረቶችን በህንፃዎች ውስጥ ማከማቸት ያሉ ቅጦች ከቋንቋ ልዩ ድጋፍ ያስፈልጋቸዋል።

ጉድለቱ ሊሰፋ የሚችል አይደለም... ቋንቋ አንድ ብቸኛ ሀብትን ብቻ ይወክላል። በተጨማሪም ፣ እጥረትን የሚከላከሉ መድኃኒቶች በቀጥታ በቋንቋው ትርጓሜ ውስጥ ጠንከር ያሉ ናቸው። ገንቢው ፣ ብጁ ንብረትን መፍጠር ከፈለገ ፣ ሁሉንም የሀብቱን ገጽታዎች እራሱን መቆጣጠር አለበት። እነዚህ በትክክል የ Ethereum ዘመናዊ ኮንትራቶች ችግሮች ናቸው።

ተጠቃሚዎች እሴቶቻቸውን ፣ ERC-20 ቶከኖቻቸውን ፣ እሴቶችን እና አጠቃላይ አቅርቦቱን ለመወሰን ኢንቲጀሮችን በመጠቀም ይሰጣሉ። አዲስ ቶከኖች በተፈጠሩ ቁጥር ፣ ብልጥ የኮንትራት ኮዱ የልቀት ህጎችን ማክበርን በተናጥል ማረጋገጥ አለበት። በተጨማሪም ፣ የንብረቶች ቀጥተኛ ያልሆነ አቀራረብ በአንዳንድ ሁኔታዎች ወደ ከባድ ስህተቶች ይመራል - ማባዛት ፣ ሁለት ወጪን ወይም ሙሉ በሙሉ ንብረቶችን ማጣት።

ተለዋዋጭ የመዳረሻ መቆጣጠሪያ አለመኖር... በአሁኑ ጊዜ ጥቅም ላይ የዋለው ብቸኛው የመዳረሻ መቆጣጠሪያ ፖሊሲ ያልተመጣጠነ ምስጠራን በመጠቀም የፊርማ መርሃ ግብር ነው። ልክ እንደ እጥረት ጥበቃ ፣ የመዳረሻ መቆጣጠሪያ ፖሊሲዎች በቋንቋው ፍቺ ውስጥ በጥልቀት ተካትተዋል። ግን የፕሮግራም አዘጋጆች የራሳቸውን የመዳረሻ መቆጣጠሪያ ፖሊሲዎች እንዲገልጹ ቋንቋውን እንዴት ማራዘም እንደሚቻል ብዙውን ጊዜ በጣም ከባድ ሥራ ነው።

ይህ ለ Ethereumም እውነት ነው, ብልጥ ኮንትራቶች ለመዳረሻ ቁጥጥር ምስጠራ ቤተኛ ድጋፍ የላቸውም. ገንቢዎች የመዳረሻ መቆጣጠሪያን በእጅ መጻፍ አለባቸው፣ ለምሳሌ፣ ብቸኛውን የባለቤት መቀየሪያን በመጠቀም።

ምንም እንኳን እኔ የኢቴሬም ትልቅ አድናቂ ብሆንም፣ የንብረት ንብረቶች ለደህንነት ሲባል በቋንቋው መደገፍ አለባቸው ብዬ አምናለሁ። በተለይም ኤተርን ወደ ብልጥ ኮንትራት ማስተላለፍ ተለዋዋጭ መላኪያን ያስችላል፣ ይህም እንደገና የመግባት ተጋላጭነት በመባል የሚታወቀውን አዲስ የትልች ክፍል አስተዋውቋል። ተለዋዋጭ መላኪያ እዚህ ላይ የኮድ ማስፈጸሚያ አመክንዮ የሚወሰነው በሚሰራበት ጊዜ (ተለዋዋጭ) እንጂ በተጠናቀረ ጊዜ (ስታቲክ) አይደለም።

ስለዚህ በ Solidity ውስጥ፣ ውል ሀ የውል ተግባርን ሲጠራ፣ ውል B በኮንትራት ሀ ገንቢ ያልታሰበውን ኮድ ሊያሄድ ይችላል ፣ ይህም ወደ ሊመራ ይችላል ። ድጋሚ የመግባት ድክመቶች (ኮንትራት ሀ በአጋጣሚ ቀሪ ሂሳቡ ከመቀነሱ በፊት ገንዘብ ለማውጣት እንደ ውል B ሆኖ ይሠራል)።

የቋንቋ ንድፍ መሰረታዊ ነገሮች አንቀሳቅስ

የመጀመሪያ-ትዕዛዝ ሀብቶች

በከፍተኛ ደረጃ በሞቪል ቋንቋ / ሞጁሎች / ሀብቶች / ሂደቶች መካከል ያለው መስተጋብር በ OOP ቋንቋዎች በክፍሎች / ዕቃዎች እና ዘዴዎች መካከል ካለው ግንኙነት ጋር በጣም ተመሳሳይ ነው።
የእንቅስቃሴ ሞጁሎች በሌሎች የማገጃ ሰንሰለቶች ውስጥ ካሉ ዘመናዊ ኮንትራቶች ጋር ተመሳሳይ ናቸው። ሞጁሉ የታወጁ ሀብቶችን የመፍጠር ፣ የማጥፋት እና የማዘመን ደንቦችን የሚገልጹትን የግብዓት ዓይነቶች እና ሂደቶች ይገልጻል። ግን እነዚህ ሁሉ ስምምነቶች ብቻ ናቸው (“ጃርጎን”) በእንቅስቃሴ ላይ። ይህንን ነጥብ ትንሽ ቆይቶ እናብራራለን።

ተለዋዋጭ

እንቅስቃሴ በስክሪፕት በኩል ወደ ሊብራ ተጣጣፊነትን ይጨምራል። በሊብራ ውስጥ ያለው እያንዳንዱ ግብይት ስክሪፕት ያካትታል፣ ይህም የግብይቱ ዋና ሂደት ነው። ስክሪፕቱ አንድም የተገለጸ ተግባር ማከናወን ይችላል፣ ለምሳሌ ለተወሰኑ ተቀባዮች ዝርዝር ክፍያ መፈጸም፣ ወይም ሌላ ሃብቶችን እንደገና መጠቀም፣ ለምሳሌ የጋራ አመክንዮ የሚገልጽ አሰራርን በመጥራት። ለዚህ ነው Move የግብይት ስክሪፕቶች ብዙ ተለዋዋጭነትን የሚያቀርቡት። ስክሪፕት ሁለቱንም የአንድ ጊዜ እና ተደጋጋሚ ባህሪያትን ሊጠቀም ይችላል፣ ኢቴሬም ተደጋጋሚ ስክሪፕቶችን ብቻ ነው የሚሰራው (አንድ ብልጥ የኮንትራት ዘዴን በመጥራት)። "ተደጋግሞ" ተብሎ የሚጠራበት ምክንያት የስማርት ኮንትራት ተግባራት ብዙ ጊዜ ሊከናወኑ ስለሚችሉ ነው. (ማስታወሻ: እዚህ ጊዜው በጣም ረቂቅ ነው. በአንድ በኩል፣ በ Bitcoin ውስጥ በውሸት-ባይትኮድ መልክ የግብይት ስክሪፕቶች አሉ። በሌላ በኩል፣ እኔ እንደተረዳሁት፣ Move ይህን ቋንቋ ያሰፋዋል፣ በእውነቱ፣ ወደ ሙሉ ስማርት የኮንትራት ቋንቋ ደረጃ።).

ደህንነት

የMove executable ፎርማት ባይትኮድ ነው፣ እሱም በአንድ በኩል፣ ከአሰባሳቢው በላይ ከፍ ያለ ቋንቋ ነው፣ ግን ከምንጩ ኮድ ያነሰ ደረጃ። ባይትኮዱ በባይቴኮድ አረጋጋጭ በመጠቀም በሩጫ ጊዜ (በሰንሰለት) ላይ ምልክት ተደርጎበታል ለሃብቶች፣ አይነቶች እና የማህደረ ትውስታ ደህንነት። ይህ አካሄድ Move የምንጭ ኮድን ደህንነት እንዲያቀርብ ያስችለዋል፣ ነገር ግን ያለ ማጠናቀር ሂደት እና በስርዓቱ ውስጥ ማጠናከሪያ ማከል አያስፈልግም። Move የባይቴኮድ ቋንቋ ማድረግ በጣም ጥሩ ሀሳብ ነው። እንደ Solidity ሁኔታ, በኮምፕሌተር መሠረተ ልማት ላይ ሊደርሱ ስለሚችሉ ውድቀቶች ወይም ጥቃቶች መጨነቅ አያስፈልግም, ከምንጭ ማጠናቀር አያስፈልግም.

ማረጋገጥ

ሁሉም በሰንሰለት ስለሚሄዱ ቼኮቹን በተቻለ መጠን ቀላል ለማድረግ አላማ እናደርጋለን (ማስታወሻ፡- በመስመር ላይ ፣ በእያንዳንዱ ግብይት አፈፃፀም ወቅት ፣ ስለዚህ ማንኛውም መዘግየት ወደ መላው አውታረ መረብ መዘግየት ይመራል), ግን መጀመሪያ ላይ የቋንቋ ዲዛይኑ ከሰንሰለት ውጪ የማይንቀሳቀሱ የማረጋገጫ መሳሪያዎችን ለመጠቀም ዝግጁ ነው። ምንም እንኳን ይህ የበለጠ ተመራጭ ቢሆንም ፣ የማረጋገጫ መሳሪያዎችን (እንደ የተለየ የመሳሪያ ስብስብ) ልማት ለወደፊቱ ለሌላ ጊዜ ተላልፏል ፣ እና በሂደት ጊዜ (በሰንሰለት) ውስጥ ተለዋዋጭ ማረጋገጫ ብቻ ይደገፋል።

ሞዱልነት

አንቀሳቃሾች ሞጁሎች የውሂብ ረቂቅ ይሰጣሉ እና በሀብቶች ላይ ወሳኝ ክዋኔዎችን አካባቢያዊ ያደርጋሉ። በሞጁሉ የቀረበው ማጠቃለያ ፣ በ Move ዓይነት ስርዓት ከሚሰጠው ጥበቃ ጋር ተዳምሮ በሞጁሉ ዓይነቶች ላይ የተቀመጡ ንብረቶች ከሞጁሉ ውጭ ባለው ኮድ ሊጣሱ እንደማይችሉ ያረጋግጣል። ይህ በጥሩ ሁኔታ የታሰበ ረቂቅ ንድፍ ነው ፣ ይህ ማለት በውሉ ውስጥ ያለው መረጃ በውሉ ማዕቀፍ ውስጥ ብቻ ሊለወጥ ይችላል ፣ ግን ውጭ አይደለም።

የፌስቡክ ሊብራ ብሎክቼይን ፕሮግራሚንግ ቋንቋ ወደ ሚለው ሞቭ ይዝለቁ

አጠቃላይ እይታን ያንቀሳቅሱ

የግብይት ስክሪፕቱ ምሳሌ የሚያሳየው ከሞዱል ውጭ በፕሮግራም አድራጊ ተንኮል -አዘል ወይም ጥንቃቄ የጎደላቸው ድርጊቶች የአንድ ሞዱል ሀብቶች ደህንነት አደጋ ላይ ሊጥሉ አይችሉም። በመቀጠልም የሊብራ ማገጃ ፕሮግራምን ለማቀናጀት ሞጁሎች ፣ ሀብቶች እና ሂደቶች እንዴት እንደሚጠቀሙ ምሳሌዎችን እንመለከታለን።

የአቻ ለአቻ ክፍያዎች

የፌስቡክ ሊብራ ብሎክቼይን ፕሮግራሚንግ ቋንቋ ወደ ሚለው ሞቭ ይዝለቁ

በመጠን የተገለጹ የሳንቲሞች ብዛት ከላኪው ቀሪ ወደ ተቀባዩ ይተላለፋል።
ብዙ አዳዲስ ነጥቦች እዚህ አሉ (በቀይ ጽሁፎች ላይ ጎላ ያሉ)፡-

  • 0x0ሞጁሉ የተከማቸበትን የመለያ አድራሻ
  • ገንዘብ: የሞዱል ስም
  • መሐለቅ: የሀብት ዓይነት
  • በሂደቱ የተመለሰው የሳንቲም እሴት የ 0x0 ዓይነት ሀብት እሴት ነው
  • መንቀሳቀስ (): እሴት እንደገና ጥቅም ላይ ሊውል አይችልም
  • ቅጅ (): እሴት በኋላ ላይ ጥቅም ላይ ሊውል ይችላል

ኮዱን ይተንትኑ - በመጀመሪያ ደረጃ ላኪው የተሰየመውን ሂደት ይጠራል ከላኪ_ ማውጣት ውስጥ ከተከማቸ ሞዱል 0x0. የገንዘብ ምንዛሪ. በሁለተኛው እርከን፣ ላኪው የሳንቲሙን ሃብት ዋጋ ወደ ሞጁሉ የተቀማጭ አሰራር በማዛወር ገንዘቡን ለተቀባዩ ያስተላልፋል። 0x0. የገንዘብ ምንዛሪ.

በኮድ ውስጥ በቼኮች ውድቅ የሚደረጉ ሶስት የስህተት ምሳሌዎች እዚህ አሉ።
ጥሪውን በመቀየር ገንዘብን ያባዙ ማንቀሳቀስ (ሳንቲም) ላይ ኮፒ (ሳንቲም). ንብረቶችን ማንቀሳቀስ የሚቻለው ብቻ ነው። የሀብቱን መጠን ለማባዛት መሞከር (ለምሳሌ በመደወል) ኮፒ (ሳንቲም) ከላይ ባለው ምሳሌ) ባይት ኮድ በሚፈትሹበት ጊዜ ስህተት ያስከትላል።

በመጥቀስ ገንዘቦችን እንደገና መጠቀም ማንቀሳቀስ (ሳንቲም) ሁለት ጊዜ . መስመር መጨመር 0x0.የምንዛሪ.ተቀማጭ (ኮፒ (የሌላ_ከፋይ))፣ ማንቀሳቀስ (ሳንቲም)) ከላይ ያለው ምሳሌ ላኪው ሳንቲሞቹን ሁለት ጊዜ "እንዲያወጣ" ያስችለዋል - ለመጀመሪያ ጊዜ ከተከፋዩ ጋር እና ለሁለተኛ ጊዜ ሌላ_ከፋይ. ይህ በአካላዊ ንብረት የማይቻል የማይፈለግ ባህሪ ነው. እንደ እድል ሆኖ፣ Move ይህን ፕሮግራም ውድቅ ያደርጋል።

በመከልከል ምክንያት የገንዘብ ማጣት ማንቀሳቀስ (ሳንቲም). ሀብቱን ካላንቀሳቀሱ (ለምሳሌ፣ የያዘውን መስመር በማስወገድ) ማንቀሳቀስ (ሳንቲም))) የባይቴኮድ ማረጋገጫ ስህተት ይነሳል። ይህ Move ፕሮግራመሮችን ከአጋጣሚ ወይም ከተንኮል አዘል የገንዘብ ኪሳራ ይጠብቃል።

የምንዛሬ ሞዱል

የፌስቡክ ሊብራ ብሎክቼይን ፕሮግራሚንግ ቋንቋ ወደ ሚለው ሞቭ ይዝለቁ

እያንዳንዱ መለያ 0 ወይም ከዚያ በላይ ሞጁሎችን (እንደ ሣጥኖች የተገለጹ) እና አንድ ወይም ከዚያ በላይ የንብረት እሴቶችን (እንደ ሲሊንደሮች የተገለጹ) ሊይዝ ይችላል። ለምሳሌ፣ በ ላይ ያለ መለያ 0x0 ሞጁል ይዟል 0x0. የገንዘብ ምንዛሪ እና የንብረቶች አይነት ዋጋ 0x0.የምንዛሪ.ሳንቲም. መለያ በአድራሻ 0x1 ሁለት ሀብቶች እና አንድ ሞጁል አለው; መለያ በአድራሻ 0x2 ሁለት ሞጁሎች እና አንድ የንብረት ዋጋ አለው.

Nekotory አፍታዎች:

  • የግብይቱ ስክሪፕት አቶሚክ ነው - ወይ ሙሉ በሙሉ ተፈጽሟል፣ ወይም ጨርሶ አይደለም።
  • ሞጁል በአለም አቀፍ ደረጃ የሚገኝ የረጅም ጊዜ ኮድ ቁራጭ ነው።
  • የአለምአቀፍ ሁኔታ እንደ ሃሽ ሰንጠረዥ የተዋቀረ ነው, የመለያው አድራሻ ቁልፍ ነው
  • መለያዎች የአንድ የተወሰነ አይነት ከአንድ በላይ የንብረት እሴት እና ከአንድ በላይ ሞጁል ከተሰጠው ስም ጋር መያዝ አይችሉም (በዚህ መለያ 0x0 ተጨማሪ ምንጭ ሊይዝ አይችልም። 0x0.የምንዛሪ.ሳንቲም ወይም ሌላ ስም ያለው ሞጁል ገንዘብ)
  • የታወጀው ሞጁል አድራሻ የአይነቱ አካል ነው (0x0.የምንዛሪ.ሳንቲም и 0x1.የምንዛሪ.ሳንቲም ሊለዋወጡ የማይችሉ የተለያዩ ዓይነቶች ናቸው)
  • ፕሮግራመሮች ብጁ ሀብታቸውን በመግለጽ በአንድ መለያ ውስጥ የተሰጡ የንብረት አይነት ብዙ አጋጣሚዎችን ማከማቸት ይችላሉ - (ምንጭ TwoCoins {c1: 0x0.Currency.Coin, c2: 0x0.Currency.Coin})
  • ያለ ግጭት በስሙ አንድን ምንጭ መጥቀስ ይቻላል ለምሳሌ ሁለት ሃብቶችን ተጠቅመው መጠቀም ይችላሉ። TwoCoins.c1 и TwoCoins.c2.

የሳንቲም ሃብት መግለጫ

የፌስቡክ ሊብራ ብሎክቼይን ፕሮግራሚንግ ቋንቋ ወደ ሚለው ሞቭ ይዝለቁ
ሞጁል የሚል ስያሜ ተሰጥቶታል። ገንዘብ እና የተሰየመ የንብረት አይነት መሐለቅ

Nekotory አፍታዎች:

  • መሐለቅ አንድ ዓይነት መስክ ያለው መዋቅር ነው u64 (64-ቢት ያልተፈረመ ኢንቲጀር)
  • ሞጁል ሂደቶች ብቻ ገንዘብ ዓይነት እሴቶችን መፍጠር ወይም ማጥፋት ይችላል መሐለቅ.
  • ሌሎች ሞጁሎች እና ስክሪፕቶች የዋጋ መስኩን ሊጽፉ ወይም ሊያመለክቱ የሚችሉት በሞጁሉ በሚቀርቡ ህዝባዊ ሂደቶች ብቻ ነው።

የተቀማጩን ትግበራ

የፌስቡክ ሊብራ ብሎክቼይን ፕሮግራሚንግ ቋንቋ ወደ ሚለው ሞቭ ይዝለቁ

ይህ አሰራር ሀብትን ይቀበላል መሐለቅ እንደ ግብአት እና ከንብረት ጋር ያገናኛል መሐለቅበተቀባዩ መለያ ላይ ተከማችቷል፡-

  1. የግብአት ሃብቱን ሳንቲም ማጥፋት እና ዋጋውን መጻፍ.
  2. በተቀባዩ መለያ ላይ ወደተከማቸ ልዩ የሳንቲም ሀብት አገናኝ ማግኘት።
  3. የአሰራር ሂደቱን በሚደውሉበት ጊዜ የሳንቲሞችን ብዛት በመለኪያው ውስጥ ባለው እሴት መለወጥ።

Nekotory አፍታዎች:

  • ንቀል፣ ቦሮውግሎባል - አብሮ የተሰሩ ሂደቶች
  • ማሸግ የቲ አይነትን ለመሰረዝ ብቸኛው መንገድ ይህ ነው ። አሰራሩ እንደ ግብዓት ይወስዳል ፣ ያጠፋል እና ከንብረቱ መስኮች ጋር የተገናኘውን እሴት ይመልሳል።
  • ብድር ግሎባል አድራሻን እንደ ግብአት ወስዶ በዚያ አድራሻ የታተመውን (ባለቤትነት) የሆነውን ልዩ ምሳሌ ማጣቀሻ ይመልሳል
  • &mut ሳንቲም ይህ የመርጃ አገናኝ ነው። መሐለቅ

ከላኪ_ማውጣትን በመተግበር ላይ

የፌስቡክ ሊብራ ብሎክቼይን ፕሮግራሚንግ ቋንቋ ወደ ሚለው ሞቭ ይዝለቁ

ይህ አሰራር:

  1. ወደ ልዩ ምንጭ የሚወስድ አገናኝ ያገኛል መሐለቅ, ከላኪው መለያ ጋር የተገናኘ
  2. የሃብት ዋጋን ይቀንሳል መሐለቅ ለተጠቀሰው መጠን በማጣቀሻ
  3. አዲስ ምንጭ ይፈጥራል እና ይመልሳል መሐለቅ ከተሻሻለው ቀሪ ሂሳብ ጋር።

Nekotory አፍታዎች:

  • ተቀማጭ ገንዘብ በማንኛውም ሰው ሊጠራ ይችላል, ግን ከላኪ_ ማውጣት የመደወያ ሂሳቡን ሳንቲሞች ብቻ ማግኘት ይችላል።
  • GetTxn የላኪ አድራሻ ጋር ይመሳሰላል። msg.ላኪ በ Solidity ውስጥ
  • ውድቅ ካልሆነ በስተቀር ጋር ይመሳሰላል። ይጠይቁ በ Solidity ውስጥ. ይህ ቼክ ካልተሳካ የግብይቱ አፈፃፀም ይቆማል እና ሁሉም ለውጦች ወደ ኋላ ይመለሳሉ።
  • ማሸግ እንዲሁም አዲስ ዓይነት T ምንጭ የሚፈጥር አብሮ የተሰራ አሰራር ነው።
  • እንዲሁም ማሸግ, ማሸግ ሃብቱ በሚታወቅበት ሞጁል ውስጥ ብቻ ሊጠራ ይችላል T

መደምደሚያ

የMove ቋንቋን ዋና ዋና ባህሪያት ተንትነን ከኤቲሬም ጋር አነጻጽረን እና እንዲሁም ከስክሪፕቶች መሰረታዊ አገባብ ጋር ተዋወቅን። በመጨረሻም, እኔ በጣም ማሰስ እንመክራለን ኦሪጅናል ነጭ ወረቀት. ስለ ፕሮግራሚንግ ቋንቋ ንድፍ መርሆዎች ብዙ ዝርዝሮችን እና ብዙ ጠቃሚ አገናኞችን ያካትታል።

ምንጭ: hab.com

አስተያየት ያክሉ