اگر دنبال مستندات API نات کوین گشته اید و چیزی پیدا نکرده اید، اشتباه از شما نیست. چنین چیزی وجود ندارد.

دلیلش هم فنی و ساده است: نات کوین بلاک چین ندارد. توکنی است روی شبکه تون. پس نودی وجود ندارد که به آن وصل شوید، نقطه دسترسی اختصاصی ای وجود ندارد و تست نتی هم وجود ندارد. آنچه واقعا لازم دارید API های خود تون است و آن ها کاملا مستند و در دسترسند.

این مطلب همان راه درست است: نات کوین از نظر فنی چیست، داده اش را از کجا بگیرید و کدام اشتباه رایج بیشترین وقت را از توسعه دهنده ها می گیرد.

نات کوین دقیقا چه چیزی است

نات کوین دقیقا چه چیزی است

نات کوین یک جتون است، یعنی توکن جایگزین پذیر روی شبکه تون که از استاندارد TEP-74 پیروی می کند. این استاندارد در مخزن رسمی پیشنهادهای تون منتشر شده و وضعیتش فعال است.

یعنی نات کوین یک قرارداد است، نه یک شبکه. و از این یک جمله، فهرست بلندی از «وجود ندارد» بیرون می آید:

  • نود نات کوین وجود ندارد، چون شبکه ای برای اجرا کردن نیست.
  • کارمزد تراکنش با نات کوین پرداخت نمی شود؛ با تون پرداخت می شود.
  • تست نت نات کوین وجود ندارد. تست نت تون هست و جتون شما هم روی همان تست می شود.
  • قرارداد هوشمند «روی نات کوین» نوشته نمی شود. روی تون نوشته می شود و با جتون کار می کند.

هر مستندات یا آموزشی که این چهار مورد را نقض کند، درباره پروژه دیگری نوشته شده یا اصلا نوشته نشده و ساخته شده است.

سه راه واقعی برای خواندن داده

مستندات تون سه گزینه را کنار هم گذاشته و تفاوتشان را هم خودش جدول کرده است.

لایت سرور عمومی. اتصال مستقیم به شبکه. مزیت منحصربه فردش این است که پاسخ ها همراه اثبات رمزنگاری هستند، یعنی می توانید بدون اعتماد به سرویس دهنده صحتشان را بررسی کنید. عیبش این است که ایندکس ندارد؛ برای پرسش های تاریخی و پیچیده ساخته نشده.

نسخه دوم API تون سنتر. روکشی روی همان لایت سرور با پروتکل HTTP. برای خواندن موجودی، فرستادن تراکنش و صدا زدن متدهای قرارداد مناسب است. ایندکس ندارد.

نسخه سوم API تون سنتر. این یکی پایگاه داده خودش را از روی زنجیره می سازد. اگر می خواهید تاریخچه بگیرید، دنباله تراکنش ها را دنبال کنید یا سراغ جتون ها و ان اف تی ها بروید، این گزینه شماست. در عوض اثبات رمزنگاری برنمی گرداند.

یک گزینه چهارم هم برای به روزرسانی لحظه ای هست: API جریانی، روی SSE و وب سوکت. اگر برنامه شما باید تراکنش ورودی را همان لحظه ببیند، این را بخواهید، نه حلقه ای که هر چند ثانیه سوال می پرسد.

انتخاب بین این ها یک قاعده ساده دارد: اگر به اثبات نیاز دارید لایت سرور، اگر به تاریخچه نیاز دارید نسخه سوم، و اگر فقط می خواهید تراکنش بفرستید نسخه دوم کافی است.

یک مثال که خودتان می توانید اجرا کنید

ساده ترین سوال درباره یک جتون این است که کل عرضه اش چقدر است و آیا هنوز قابل ضرب شدن است. جواب را از قرارداد اصلی جتون می گیرید.

کافی است آدرس قرارداد نات کوین را به نقطه دسترسی جتون در نسخه سوم API بدهید. چیزی که برمی گردد سه فیلد مهم دارد: کل عرضه، آدرس مدیر قرارداد و ابرداده جتون که تعداد ارقام اعشار در آن نوشته شده.

در مورد نات کوین، کل عرضه چیزی حدود ۱۰۲.۴۵ میلیارد واحد است و مهم تر از آن، فیلد مدیر خالی است. مدیر خالی یعنی مالکیت قرارداد واگذار شده و کسی نمی تواند واحد جدیدی بسازد.

این تفاوت یک ادعا با یک اثبات است. هر پروژه ای می تواند در وایت پیپرش بنویسد عرضه ثابت است؛ اینجا شما خودتان از زنجیره می پرسید و جواب می گیرید. اگر روی جتون دیگری هم کار می کنید، اولین چیزی که باید ببینید همین فیلد است. توزیع و عرضه نات کوین را از همین زاویه در عرضه و توزیع نات کوین از روی زنجیره بررسی کرده ایم.

اشتباهی که بیشترین وقت را می گیرد

این را باید جدا نوشت، چون تقریبا هر توسعه دهنده ای که از دنیای اتریوم می آید یک بار در آن گیر می کند.

در اتریوم، موجودی همه دارندگان یک توکن در جدولی داخل خود قرارداد توکن است. در تون این طور نیست. برای هر دارنده، یک قرارداد جداگانه به اسم کیف پول جتون ساخته می شود که آدرس خودش، مالک خودش و موجودی خودش را دارد.

یعنی اگر موجودی نات کوین یک کاربر را از قرارداد اصلی بپرسید، هیچ چیز نمی گیرید. اول باید آدرس کیف پول جتون آن کاربر را پیدا کنید و بعد موجودی را از همان بخوانید. نسخه سوم API این جستجو را مستقیم پشتیبانی می کند.

دلیل این طراحی هم شاردینگ است: با این کار خواندن و نوشتن موجودی ها روی شارد های مختلف پخش می شود، به جای اینکه همه به یک قرارداد فشار بیاورند. برای شما یعنی یک درخواست اضافه و یک ذهنیت متفاوت.

کلید، محدودیت نرخ و چیزی که باید از قبل بدانید

سرویس های عمومی محدودیت نرخ دارند و مستندات تون هم صفحه جدایی برای کلید API و محدودیت ها دارد. اگر برنامه شما قرار است چیزی بیشتر از یک نمونه آزمایشی باشد، از روز اول کلید بگیرید.

و یک تصمیم معماری که بهتر است زود گرفته شود: همه این سرویس ها را می شود خودتان میزبانی کنید. اگر سرویس شما نباید به یک ارائه دهنده بیرونی وابسته باشد، این گزینه از ابتدا روی میز است.

نات کوینقیمت لحظه ای نات کوین ۲.۸۸٪
۸۵.۵۸ تومان
$0.000435 نرخ جهانی
تغییر ۲۴ ساعته - بروزرسانی ۰۲:۰۱ مشاهده نرخ

قیمت را از کجا بگیرید

این را از زنجیره نپرسید. زنجیره فقط می داند چه کسی چقدر دارد؛ قیمت در بازار ساخته می شود، نه در قرارداد.

دو مسیر دارید و هرکدام جای خودش را دارد. برای نمایش قیمت به کاربر، داده صرافی ها منطقی تر است چون همان جایی است که کاربر واقعا معامله می کند. برای محاسبات داخلی روی زنجیره، داده استخرهای نقدینگی صرافی های غیرمتمرکز تون؛ مستندات تون برای همین یک بخش جدا دارد.

و یک هشدار برای کاربر ایرانی: قیمت تومانی از هیچ کدام از این ها مستقیم درنمی آید. نرخ تومانی حاصل ضرب قیمت دلاری در نرخ روز ارز است و هر دو جدا حرکت می کنند. اگر برنامه تان به کاربر ایرانی قیمت نشان می دهد، این دو را جدا نگه دارید. نرخ لحظه ای تومانی نات کوین در صفحه نات کوین و نرخ تومانی لحظه ای است.

چه چیزی نمی توانید بسازید

موضع صادقانه: بعضی از ایده هایی که در مقالات فارسی به عنوان کاربرد API نات کوین معرفی می شوند، اصلا قابل ساخت نیستند.

برنامه غیرمتمرکز «روی بلاک چین نات کوین» ساخته نمی شود، چون آن بلاک چین وجود ندارد. ابزار مانیتورینگ نود نات کوین ساخته نمی شود. استخر استخراج نات کوین هم وجود ندارد و دلیلش را جدا نوشته ایم.

آنچه واقعا ساخته می شود: درگاه پرداختی که جتون قبول کند، کیف پولی که جتون را نگه دارد، رباتی که تراکنش ورودی را تشخیص دهد، و هر برنامه ای که با قرارداد روی تون کار کند. همه این ها با ابزارهای تون ساخته می شوند و نات کوین در آن ها فقط یکی از جتون هاست. اگر کاربر برنامه تان قرار است خودش هم نگهداری کند، راهنمای خرید و ذخیره نات کوین روی تون نکات کیف پول را دارد.

سوال های پرتکرار

روی این عبارت گوگل بلوک پرسش های متداول ندارد و جستجوهای مرتبطش هم قیمتی است؛ سوال های زیر آن هایی است که توسعه دهنده ها واقعا می پرسند.

آدرس قرارداد نات کوین چیست و از کجا مطمئن شوم؟

آدرس قرارداد جتون نات کوین با پیشوند EQ شروع می شود و در پایگاه های داده استاندارد بازار هم ثبت است. راه مطمئن این است که آدرس را از یک منبع بگیرید و همان را در نقطه دسترسی جتون تون سنتر بپرسید؛ اگر ابرداده و عرضه ای که برمی گردد با انتظارتان بخواند، آدرس درست است.

برای کار با API نات کوین کلید لازم است؟

برای آزمایش نه، برای هر چیزی جدی تر بله. سرویس های عمومی تون محدودیت نرخ دارند و بدون کلید، برنامه شما زیر بار اول متوقف می شود.

چطور موجودی نات کوین یک کیف پول را بخوانم؟

مستقیم از قرارداد اصلی نمی شود. اول آدرس کیف پول جتون آن کاربر را پیدا کنید و بعد موجودی را از آن بخوانید. این تفاوت اصلی معماری تون با اتریوم است.

نات کوین با تون کوین چه فرقی دارد؟

یکی توکن است و دیگری دارایی بومی شبکه ای که آن توکن رویش زندگی می کند. کارمزد با دومی پرداخت می شود. تفصیل این رابطه در نسبت نات کوین و شبکه تون آمده.

جمع بندی

API نات کوین وجود ندارد و نبودش هم مشکل نیست. نات کوین یک جتون استاندارد روی تون است و همه چیزی که برای کار با آن لازم دارید در مستندات تون هست: لایت سرور برای اثبات، نسخه سوم تون سنتر برای تاریخچه و جتون ها، و API جریانی برای رویدادهای لحظه ای.

و یک قاعده که هم برای این پروژه و هم برای هر توکن دیگری صادق است: قبل از خواندن هر معرفی ای، آدرس قرارداد را در API بپرسید. عرضه و مالکیت را زنجیره جواب می دهد، نه سایت پروژه.

منابع اولیه: مقایسه انواع API در مستندات رسمی تون و متن استاندارد جتون TEP-74.