اگر خدمات blockchain را به مشتریان خود ارائه می دهید و مایل به اضافه کردن blockchain Aptos به سیستم عامل خود هستید ، این راهنما برای شما مناسب است. این راهنمای Integrators System شما را از طریق تمام نیازهای شما برای ادغام blockchain Aptos در سیستم عامل خود طی می کند.
نمای کلی
این سند شما را از طریق کارهای زیر برای ادغام با APTOS راهنمایی می کند:
- محیطی را برای آزمایش آماده کنید.
- یک حساب کاربری در blockchain ایجاد کنید.
- به عنوان مثال ، شناسه های حساب با یک نهاد دیگر در blockchain برای انجام تعویض.
- معامله ایجاد کنید.
- تخمین گاز را بدست آورید و معامله را برای صحت تأیید کنید.
- معامله را به blockchain ارسال کنید.
- منتظر نتیجه معامله باشید.
- معاملات و تعامل های تاریخی را برای یک حساب مشخص با یک حساب خاص ، یعنی برداشت و سپرده پرس و جو کنید.
شروع
برای شروع کار ، باید یک شبکه را انتخاب کرده و مجموعه ابزارهای خود را انتخاب کنید. همچنین تعداد انگشت شماری از SDK ها برای کمک به تسریع در توسعه وجود دارد.
یک شبکه را انتخاب کنید
چهار شبکه پشتیبانی شده برای ادغام با blockchain APTOS وجود دارد:
- - ابزار مستقل ما برای توسعه محلی در برابر نسخه شناخته شده از پایگاه کد بدون شبکه خارجی.-یک منبع مشترک برای جامعه ، داده ها به روزرسانی هفتگی ، هفتگی از شعبه اصلی Aptos-Core را تنظیم می کنند.- یک منبع مشترک برای جامعه ، داده ها حفظ می شوند ، پیکربندی شبکه از Maiet تقلید می کند.- یک شبکه تولید با دارایی های واقعی.
برای جزئیات کامل در مورد هر محیط ، به استقرار Blockchain APTOS مراجعه کنید.
یک تست محلی را اجرا کنید
دو گزینه برای اجرای یک تست محلی وجود دارد:
- مستقیماً با استفاده از کد منبع Aptos-Core یا یک تصویر Docker ، یک تست محلی محلی را اجرا کنید. این مسیرها به ترتیب برای آزمایش تغییرات در پایگاه کد یا چارچوب APTOS-Core یا برای ایجاد خدمات در بالای blockchain APTOS مفید هستند. و 2) یک گره محلی را با شیر آب شروع کنید. این مسیر برای توسعه در blockchain APTOS ، اشکال زدایی قراردادها و آزمایش عملیات گره مفید است.
هر یک از این روشها یک سرویس API REST را در http://127. 0. 0. 1:8080 و یک سرویس API Faucet در http://127. 0. 0. 1:8000 برای گزینه 1 یک تست محلی یا http://127. 0. 0. 0. 0. 0. 1 را اجرا کنید.: 8081 برای گزینه 2 APTOS CLI را نصب کنید. برنامه های کاربردی محل خدمات را تولید می کنند.
دسترسی به شبکه تولید
- API استراحت: https://fullnode. devnet. aptoslabs.com
- API Indexer: https://indexer-devnet. staging. gcp. aptosdev.com/v1/graphql
- API شیر آب: https://faucet. devnet. aptoslabs.com
- API استراحت: https://fullnode. testnet. aptoslabs.com
- API Indexer: https://indexer-testnet. staging. gcp. aptosdev.com/v1/graphql
- API استراحت: https://fullnode. maiet. aptoslabs.com
- API Indexer: https://indexer. maiet. aptoslabs.com/v1/graphql
- شیر آب: n/a
SDK و ابزار
APTOS در حال حاضر سه SDK ارائه می دهد:
تقریباً همه توسعه دهندگان از کاوش در CLI بهره مند می شوند. استفاده از CLI نشان می دهد که چگونه می توان از CLI استفاده کرد که شامل ایجاد حساب ، انتقال سکه ها و انتشار ماژول ها می شود.
حساب های APTOS
یک حساب یک موجودیت موجود در blockchain Aptos را نشان می دهد که می تواند معاملات را ارسال کند. هر حساب توسط یک آدرس حساب 32 بایت خاص مشخص می شود و یک ظرف برای ماژول ها و منابع Move است. در APTOS ، حساب ها باید قبل از هرگونه عملیات blockchain شامل آن حساب ، در زنجیره ایجاد شوند. چارچوب APTOS به طور ضمنی از ایجاد حساب ها هنگام انتقال سکه APTOS از طریق APTOS_ACCOUNT :: انتقال یا صریح از طریق APTOS_ACCOUNT :: CREATE_ACCOUNT پشتیبانی می کند.
در آفرینش ، یک حساب APTOS شامل:
- منبعی حاوی سکه Aptos و سپرده و برداشت سکه ها از آن منبع.
- یک کلید احراز هویت مرتبط با کلید (های) خصوصی و خصوصی فعلی آنها.
- یک شماره دنباله به شدت در حال افزایش که نشان دهنده شماره توالی معاملات بعدی حساب برای جلوگیری از حملات پخش مجدد است.
- یک عدد کاملاً در حال افزایش است که نشان دهنده شماره آفرینش گید متمایز بعدی است.
- دسته رویداد برای انواع جدید سکه های اضافه شده به حساب.
- دسته رویداد برای تمام چرخش های کلیدی برای حساب.
معاملات
معاملات APTOS در سریال سازی متعارف باینری (BCS) رمزگذاری می شود. معاملات حاوی اطلاعاتی مانند آدرس حساب فرستنده ، تأیید اعتبار از فرستنده ، عملیات مورد نظر برای انجام در blockchain Aptos و میزان گاز فرستنده است که برای اجرای معامله مایل به پرداخت آن است.
ایجاد معاملات
APTOS از دو روش برای ساخت معاملات پشتیبانی می کند:
- با استفاده از کتابخانه های مشتری APTOS برای تولید معاملات بومی BCS.
- ساخت اشیاء رمزگذاری شده JSON و تعامل با API REST برای ایجاد معاملات بومی.
رویکرد ارجح ایجاد مستقیم معاملات بومی BCS است. تولید آنها از طریق API REST ، توسعه سریع را با هزینه اعتماد به FullNode امکان تولید صحیح معامله را امکان پذیر می کند.
معاملات رمزگذاری شده BCS
معاملات رمزگذاری شده BCS را می توان به نقطه پایانی /معاملات ارسال کرد اما باید نوع محتوا را مشخص کرد: Application /X. Aptos. Signed_Transaction+BCS در هدرهای HTTP. این نتیجه ارسال معامله را باز می گرداند که در صورت موفقیت ، حاوی هش معامله در قسمت هش است.
معاملات رمزگذاری شده JSON
معاملات رمزگذاری شده JSON می تواند از طریق API REST انجام شود ، به دنبال این مراحل:
- ابتدا یک بار JSON مناسب را برای /معاملات /ENCODE_SUBMISSION همانطور که در Python SDK نشان داده شده است ، بسازید.
- خروجی موارد فوق حاوی یک شیء حاوی پیامی است که باید با کلید خصوصی فرستنده به صورت محلی امضا شود.
- بار اصلی JSON را با اطلاعات امضا گسترش داده و آن را به نقطه پایانی /معاملات ارسال کنید. این نتیجه ارسال معامله را باز می گرداند که در صورت موفقیت ، حاوی هش معامله در قسمت هش است.
معاملات رمزگذاری شده JSON امکان توسعه سریع را فراهم می کند و از تبدیل ABI یکپارچه از استدلال های معامله به انواع بومی پشتیبانی می کند. با این حال ، بیشتر مجتمع های سیستم ترجیح می دهند معاملات را در پشته فناوری خود انجام دهند. هر دو پشتیبانی SDK و Python SDK که باعث ایجاد معاملات BCS می شوند.
انواع معاملات
در یک معامله معین ، هدف اعدام می تواند یکی از دو نوع باشد:
- یک نقطه ورود (که قبلاً به عنوان عملکرد اسکریپت شناخته می شد)
- یک اسکریپت (بار بار)
هر دو Python و TypeScript از تولید معاملات که نقاط ورود را هدف قرار می دهند پشتیبانی می کنند. این راهنما بسیاری از این نقاط ورود را نشان می دهد ، مانند aptos_account :: انتقال و aptos_account :: create_account.
بیشتر عملیات اساسی در blockchain APTOS باید از طریق تماس های نقطه ورود در دسترس باشد. در حالی که می توان چندین معامله را ارسال کرد که امتیازات ورود را به صورت سری فراخوانی می کند ، چنین عملیاتی از این که به صورت اتمی از یک معامله واحد خوانده می شود ، سود می برد. معامله بارگذاری اسکریپت می تواند با هر عملکرد عمومی (ورودی) تعریف شده در هر ماژول تماس بگیرد. در اینجا یک اسکریپت Move Move که از یک معامله چندگانه برای استخراج وجوه از دو حساب استفاده می کند و آنها را به دو حساب دیگر واریز می کند. این یک نمونه پایتون است که از کد بایت تولید شده با تهیه آن اسکریپت استفاده می کند. در حال حاضر پشتیبانی محدودی برای بارهای اسکریپت در TypeScript وجود دارد.
وضعیت معامله
یک استراتژی معقول برای ارسال معاملات ، محدود کردن طول عمر آنها به 30 تا 60 ثانیه و نظرسنجی از API در فواصل منظم تا موفقیت یا چند ثانیه پس از گذشت زمان است. اگر تعهدی در زنجیره ای وجود نداشته باشد ، احتمالاً معامله دور ریخته می شود.
آزمایش معاملات یا معاملات قبل از انجام
برای تسهیل ارزیابی معاملات و همچنین برآورد گاز ، APTOS از یک API شبیه سازی پشتیبانی می کند که نیازی به آن ندارد و نباید دارای امضاهای معتبری در معاملات باشد.
API شبیه سازی یک API همزمان است که یک معامله را انجام می دهد و خروجی شامل استفاده از گاز را برمی گرداند. با ارسال معامله به /معاملات /شبیه سازی می توان به API شبیه سازی دسترسی پیدا کرد.
هر دو TypeScript SDK و Python SDK از API شبیه سازی پشتیبانی می کنند. توجه داشته باشید که خروجی و گاز مورد استفاده ممکن است براساس وضعیت حساب تغییر کند. برای برآورد گاز ، توصیه می کنیم حداکثر مقدار گاز از مبلغ نقل شده توسط این API بزرگتر باشد.
مشاهده وضعیت فعلی و تاریخی
بیشتر ادغام ها در blockchain aptos از یک مرور کلی و جامع از وضعیت فعلی و تاریخی blockchain بهره مند می شوند. APTOS معاملات تاریخی ، ایالت و رویدادها را ارائه می دهد ، تمام نتیجه اجرای معامله.
- معاملات تاریخی وضعیت اجرای ، خروجی و پیوند با رویدادهای مرتبط را مشخص می کند. هر معامله دارای یک شماره نسخه منحصر به فرد در ارتباط با آن است که سفارشات پی در پی جهانی خود را در تاریخچه دفترچه blockchain دیکته می کند.
- دولت نمایندگی کلیه خروجی های معامله تا یک نسخه خاص است. به عبارت دیگر ، یک نسخه دولتی انباشت کلیه معاملات شامل نسخه معامله است.
- با انجام معاملات ، آنها ممکن است رویدادها را منتشر کنند. رویدادها در مورد تغییر در داده های زنجیره ای اشاره دارد.
سرویس ذخیره سازی روی یک گره از دو شکل هرس استفاده می کند که داده ها را از گره ها پاک می کند:
- حالت
- رویدادها ، معاملات و هر چیز دیگری
در حالی که هر یک از این موارد ممکن است غیرفعال باشد ، ذخیره نسخه های دولتی به ویژه پایدار نیست.
رویدادها و هرس معاملات می توانند از طریق تنظیم Enable_Ledger_Pruner به False غیرفعال شوند. این رفتار پیش فرض در Maiet است. در آینده نزدیک ، APTOS شاخص هایی را ارائه می دهد که نیاز به پرس و جو مستقیم از یک گره را کاهش می دهد.
API REST معاملات و رویدادهای پرس و جو را از این طریق ارائه می دهد:
مبادله و ردیابی سکه ها
APTOS یک نوع سکه استاندارد دارد. انواع مختلفی از سکه ها را می توان در این نوع با استفاده از ساختارهای مجزا که نشان دهنده پارامتر نوع یا عمومی برای سکه است ، نشان داد.
سکه ها در یک حساب تحت پوشش منابع ذخیره می شوند. در زمان ایجاد حساب ، هر کاربر به طور خلاصه دارای منابع منبع یا Coinstore است. در این منبع سکه Aptos: Coin قرار دارد.
انتقال سکه بین کاربران
سکه ها را می توان بین کاربران از طریق سکه :: عملکرد انتقال برای همه سکه ها و aptos_account :: انتقال برای سکه های APTOS منتقل کرد. مزیت عملکرد دوم این است که اگر وجود نداشته باشد ، حساب مقصد را ایجاد می کند.
توجه به این نکته حائز اهمیت است که اگر یک حساب کاربری برای یک T معین ثبت نکرده باشد ، هرگونه انتقال نوع T به آن حساب شکست خواهد خورد.
تعادل فعلی برای یک سکه
تراز فعلی برای یک سکه که در آن سکه Aptos در URL منابع حساب موجود است: https: /// حساب ها // منبع/0x1 :: coin :: coinstore. تعادل در Coin :: مقدار ذخیره می شود. این منبع همچنین حاوی تعداد کل رویدادهای سپرده و برداشت و مقدار ضد CONTENT در سپرده ها و خارج از کشور است.
معاملات پرس و جو
در APTOS ، هر معامله به عنوان یک نسخه مجزا به blockchain انجام می شود. این امر امکان اشتراک گذاری معاملات متعهد را با شماره نسخه آنها فراهم می کند. برای انجام این کار ، پرس و جو: https: /// معاملات/by_version/
معاملات ارسال شده توسط یک حساب نیز می تواند از طریق URL زیر پرسیده شود که در آن Sequence_number با شماره توالی معامله مطابقت دارد: https: /// حساب // معاملات؟ start = & limit = 1
معامله انتقال به شرح زیر است:
در اینجا تفکیک اطلاعات در یک معامله آورده شده است:
- نسخه نشانگر شناسه جهانی منحصر به فرد برای این معامله است ، موقعیت سفارش داده شده آن در کلیه معاملات متعهد در blockchain
- فرستنده آدرس حساب نهاد است که معامله را ارسال کرده است
- GAS_USES واحدهایی است که برای اجرای معامله پرداخت می شود
- موفقیت و vm_status نشان می دهد که آیا معامله با موفقیت انجام شده است یا خیر
- تغییرات شامل مقادیر نهایی برای هر منابع دولتی است که در هنگام اجرای معامله اصلاح شده است
- رویدادها شامل تمام رویدادهای ساطع شده در هنگام اجرای معامله است
- Timetstamp جدول زمانی نزدیک به زمان واقعی اجرای معامله است
اگر موفقیت نادرست باشد ، VM_STATUS حاوی یک کد خطا یا پیام است که منجر به عدم موفقیت معامله می شود. هنگامی که موفقیت نادرست باشد ، تغییرات محدود به گاز کسر شده از حساب و افزایش تعداد دنباله خواهد بود. هیچ رویدادی رخ نخواهد داد.
هر رویداد در رویدادها با یک کلید متمایز می شود. کلید از راهنما در تغییرات بدست آمده است. به طور خاص ، کلید یک رشته هگز 40 بایت است که در آن هشت بایت اول (یا 16 کاراکتر) بازنمایی اندکی اندین از Creation_num در راهنمای رویداد تغییرات است و شخصیت های باقیمانده آدرس حساب هستند.
از آنجا که وقایع آنچه را که آنها را منتشر کرده است ، دیکته نمی کند ، پیگیری مسیر در تغییرات برای تعیین منبع یک رویداد ضروری است. به طور خاص ، هر Coinstore بر اساس نوع سکه ، هر دو عقب نشینی و یک سپرده گذاری دارد. به منظور تعیین اینکه از نوع سکه در یک معامله استفاده می شود ، یک فهرست گر می تواند GUID :: Creation_Num را در یک رویداد تغییرات همراه با آدرس به کلید برای وقایع در رویدادها مقایسه کند.
زمینه اصلی به نفع راهنما از بین می رود
حوادث پرس و جو
APTOS وقایع واضح و متعارف را برای همه برداشت و سپرده سکه ها فراهم می کند. این می تواند با هماهنگی با معاملات مرتبط مورد استفاده قرار گیرد تا تغییر در تراز حساب خود در طول زمان ، وقتی این اتفاق افتاد ، و چه چیزی باعث آن شد. با مقداری تجزیه اضافی ، ابرداده مانند نوع معامله و سایر طرف های درگیر نیز می توانند به اشتراک گذاشته شوند.
رویدادهای پرس و جو از طریق دسته URL: https: /// حساب ها // رویدادها/0x1 :: سکه :: coinstore/untress_events
اطلاعات بیشتر را از معامله ای که این رویداد را با پرس و جو https: /// معاملات/by_version ایجاد کرده است جمع کنید/در کجا همان مقدار در پرس و جو رویداد است.
هنگام ردیابی حرکت کامل سکه ها ، به طور معمول وقایع کافی است. 0x1 :: aptos_coin :: aptoscoin ، با این حال ، نیاز به در نظر گرفتن GAS_USES برای هر معامله ارسال شده از حساب داده شده از آنجا که نشان دهنده گاز در APTOS است. برای کاهش سربار غیر ضروری ، استخراج هزینه های گاز به دلیل معاملات یک رویداد را منتشر نمی کند. کلیه معاملات برای یک حساب را می توان از این API بازیابی کرد: https: /// حساب ها // معاملات
پیگیری تغییرات تعادل سکه
معامله را از بخش قبلی در نظر بگیرید ، اما اکنون با یک سکه دلخواه 0x1337 :: my_coin :: mycoin و برخی از پارامترهای گاز تغییر کرده است:
سه تغییر تعادل در این معامله وجود دارد:
- برداشت 1000 از 0x1337 :: My_coin :: MyCoin از حساب ارسال معامله 0x810026CA8291D88B5B30A1D3CAEDD683D33D06C4A7F7C451D96F6D47BC5E8BE8B
- سپرده 1000 از 0x1337 :: My_coin :: MyCoin به دریافت حساب 0x5098DF8E7969B58AB3BD2D40C6203F64C60A1FD5C08B9D4ABE6AE4216246C3E
- هزینه بنزین 2200 از 0x1 :: aptos_coin :: aptoscoin از حساب ارسال 0x810026Ca8291D88B5B30A1D3CAEDD683D33D06C4A7F7C451D96F6D47BC5E8BC5E8B
برای بازیابی اطلاعات برداشت:
- تغییرات را برای 0x1 :: سکه :: coinstore اسکن کنید. توجه داشته باشید که Cointype یک نشان دهنده عمومی است که سکه در فروشگاه ذخیره می شود. در این مثال ، Cointype 0x1337 :: my_coin :: mycoin است.
- راهنما را برای عقب نشینی بازیابی کنید. در این مثال ، GUID حاوی ADDR 0x810026CA8291D88B5B30A1D3CAEDD683D33D06C4A7F7C451D96F6D47BC5E8B و CREATION_NUM 3 است.
- برای وقایع با این راهنما اسکن کنید و رویداد مرتبط با آن را استخراج کنید. در این مثال ، این سکه 0x1 :: است :: عقب نشینی.
- توجه داشته باشید که قسمت مقدار تعداد Cointype حذف شده از حساب در GUID خواهد بود. در این مثال ، 1000 است.
برای بازیابی اطلاعات سپرده ، همانند برداشت است به جز:
- راهنمای مورد استفاده تحت emperit_events است
- مبلغ افزایش مثبت در مانده حساب خواهد بود.
- نام این رویداد خواهد بود: 0x1 :: سکه :: DeporiteVent
برای بازیابی هزینه گاز:
- قسمت GAS_USES باید چند بار GAS_UNIT_PRICE چند برابر شود. در این مثال ، gas_used = 20 و gas_unit_price = 110 بنابراین کل سکه های گاز خارج شده 2200 است.
- گاز همیشه: 0x1 :: aptos_coin :: aptoscoin
برای بازیابی اطلاعات در مورد تعداد اعشار سکه:
- شما می توانید تعداد اعشار را برای یک سکه از طریق آن بازیابی کنید: 0x1 :: سکه :: coininfo
- این در آدرس نوع سکه قرار خواهد گرفت. در این مثال ، شما باید 0x1 :: Coin :: Coininfo را در آدرس 0x1337 جستجو کنید.
اگر همیشه از این رویدادها از این روش استفاده می کنید ، هیچ تغییر تعادل برای یک حساب را از دست نخواهید داد. با نظارت بر وقایع ، تمام تغییرات تعادل را در 0x1 :: سکه :: Coinstore مشاهده خواهید کرد:
مدرسه فارکس معامله گر ایرانی...
ما را در سایت مدرسه فارکس معامله گر ایرانی دنبال می کنید
برچسب :
نویسنده : ابراهیم بهپور اسکویی
بازدید : <-PostHit->
تاريخ : شنبه
5 فروردين
1402 ساعت: 1:34