تمام پست‌ها
راهنماها

انتقال چند به چند در سولانا

انتقال جفت‌شده در سولانا چطور کار می‌کند: هر سطر یک تراکنش، 0.001 SOL برای هر انتقال، و قاعده رنت که سطر را ارسال نمی‌کند به جای اینکه مبلغش را کم کند.

8 دقیقه مطالعه J Tools Editorial
دو ستون عمودی از نقطه‌های قرمز روی زمینه‌ای تقریباً سیاه که هر نقطه سمت چپ با خطی نازک و مستقیم دقیقاً به یک نقطه سمت راست وصل است

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

یک انتقال چند به چند سولانا هر فرستنده را با گیرنده خودش نگه می‌دارد. کیف پول 7 به نشانی 7 می‌پردازد و کیف پول 8 به نشانی 8، و هیچ‌کدام از دیگری خبر ندارد.

به نظر جزئیات کوچکی می‌رسد. در عمل تفاوت میان یک منبع و چهل منبع مستقل است.

  • هر سطر یک تراکنش است. کیف پول فرستنده همان سطر، تمام هزینه‌های آن را می‌پردازد.
  • کارمزد پلتفرم 0.001 SOL برای هر انتقال و کارمزد شبکه 0.000005 SOL است.
  • برای گیرنده‌ای که پیش‌تر این توکن را نداشته، فرستنده 0.00149 SOL ودیعه رنت هم می‌پردازد.
  • سطری که بررسی‌ها را پشت سر نگذارد ارسال نمی‌شود، و مبلغش هم کم نمی‌شود.

سه شکل انتقال انبوه

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

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

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

در سمت چپ یک نقطه روشن بادبزنی به ستونی از ده نقطه باز می‌شود و در سمت راست خط‌های مستقیم دو ستون را نقطه به نقطه به هم می‌رسانند

هزینه یک سطر چقدر است

روی هر سطر ممکن است سه قلم بنشیند و کیف پول فرستنده همان سطر هر سه را می‌پردازد. حساب تأمین مالی مشترکی وجود ندارد، پس کیف پولی که سطر خودش را پوشش نمی‌دهد از سطر بالایی قرض نمی‌گیرد. قلم شبکه همان کارمزد پایه 5000 لامپورت به ازای هر امضاست که مستندات کارمزد خود سولانا شرحش می‌دهد.

قلمحالت SOLحالت توکن
کارمزد پلتفرم0.001 SOL0.001 SOL
کارمزد شبکه0.000005 SOL0.000005 SOL
حساب توکن گیرندهموضوعیت ندارد0.00149 SOL، و فقط اگر آن گیرنده هرگز این توکن را نداشته باشد

سطر سوم را دو بار بخوانید، چون همین است که آدم‌ها را غافلگیر می‌کند. فرستادن یک توکن SPL به نشانی‌ای که هرگز آن را نداشته، یعنی ساختن حسابی برای نگهداری‌اش، و سولانا برای آن حساب ودیعه رنت می‌گیرد. این ودیعه خیلی بیشتر از کارمزد شبکه است.

با صد گیرنده تازه، این رقم حدود 0.149 SOL از صورتحساب می‌شود، در حالی که کارمزد پلتفرم روی 0.1 می‌ایستد. ودیعه سوزانده نمی‌شود: در حساب توکن گیرنده می‌ماند و بعدها به هر کسی که آن حساب را ببندد برمی‌گردد.

سطرهایی که ارسال نمی‌شوند

پیش از امضا دو بررسی اجرا می‌شود و هر دو سطر را متوقف می‌کنند نه اینکه تغییرش دهند.

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

دومی عجیب‌تر است و ارزش فهمیدن دارد، چون بار اول شبیه باگ به نظر می‌رسد. سولانا اجازه نمی‌دهد حسابی با موجودی بالای صفر ولی پایین‌تر از حداقل معاف از رنت رها شود. برای یک کیف پول معمولی این حداقل 0.00065 SOL است و از فرمولی درمی‌آید که مستندات حساب‌های سولانا آورده است.

خالی کردن کامل حساب مجاز است. جا گذاشتن 0.00005 SOL در آن مجاز نیست. سطری که کیف پول را به آن شکاف هل می‌دهد، برچسب rent dust می‌خورد و ارسال‌نشده می‌ماند.

محور افقی: نقطه‌ای روشن روی صفر، سپس نواری قرمز میان دو میله که یک نقطه کم‌نور در خود دارد، و آن‌سوتر دو نقطه روشن

چرا ابزار مبلغ را کم نمی‌کند

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

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

چرا یک تراکنش برای هر سطر مهم است

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

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

کجا انتقال چند به چند سولانا شکل درست است

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

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

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

آماده کردن فهرست

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

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

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

یک نکته آخر درباره موجودی: هر فرستنده باید مبلغ خودش به علاوه کارمزدها را داشته باشد، و آنچه بعد از ارسال می‌ماند یا باید دقیقاً صفر باشد یا از 0.00089088 SOL بیشتر. موجودی کم سطر را در بررسی اول کنار می‌گذارد و باید دوباره تأمینش کنید، و باقی‌مانده‌ای که در آن شکاف بیفتد برچسب rent dust می‌خورد. حساب درست از همان اول، از اصلاح بعدی ارزان‌تر است.

وقتی فهرست بزرگ می‌شود چه چیزی عوض می‌شود

با ده سطر همه اینها تئوری راحتی است. با دو هزار سطر دو چیز کار اصلی می‌شوند و هیچ‌کدام درون خود ابزار اتفاق نمی‌افتند.

اول تأمین مالی. هر فرستنده پیش از شروع به مبلغ خودش به علاوه کارمزدها نیاز دارد و هیچ راهی نیست که یک سطر، سطر دیگر را بپوشاند. یعنی یک گذر پخش مقدماتی لازم است، معمولاً از یک خزانه، و حسابش را باید طوری بکنید که باقی‌مانده هر فرستنده صفر یا بالای حداقل رنت بماند.

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

سوالات متداول درباره انتقال جفت‌شده

فرقش با چند بار اجرا کردن ابزار ارسال چندگانه چیست؟

ابزار ارسال چندگانه در هر اجرا دقیقاً یک منبع دارد. چهل منبع یعنی چهل اجرا و چهل بار عوض کردن دستی کیف پول. اینجا یک اجرا با چهل سطر است.

سطری که می‌افتد هزینه دارد؟

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

فرستنده‌ها و گیرنده‌ها می‌توانند هم‌پوشانی داشته باشند؟

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

چرا سطر من rent dust علامت خورد؟

چون باقی‌مانده کیف پول فرستنده میان صفر و 0.00065 SOL می‌افتاد. کل موجودی را بفرستید یا مبلغ را پایین بیاورید.

در کیف پولی که فقط توکن می‌فرستد به SOL نیاز هست؟

هست. کارمزد شبکه و کارمزد پلتفرم با SOL پرداخت می‌شوند، حتی وقتی چیزی که منتقل می‌شود توکن باشد.

سقفی برای تعداد جفت‌ها هست؟

نه، سقف ثابتی وجود ندارد و هیچ چیز مانع نمی‌شود هزاران جفت را وارد کنید. جفت‌ها در دسته‌های صدتایی امضا و ارسال می‌شوند و در دسته‌های 256تایی تأیید می‌شوند، با سقف نود ثانیه برای هر انتظار تأیید، پس یک اجرای طولانی چند دقیقه طول می‌کشد نه چند ثانیه. در عمل آماده‌سازی هم محدودتان می‌کند: هر کیف پول فرستنده باید از پیش تأمین شده باشد. اجرایی را که بتوانید دنبال کنید، می‌توانید درست هم کنید، پس فهرست خیلی بلند را راحت‌تر می‌شود در چند اجرای کوچک‌تر فرستاد.

تصمیم در یک خط

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

J
نویسنده
J Tools Editorial

یک پست از تیم J Tools.

مشاهده همه پست‌ها توسط J Tools Editorial →

پست‌های مرتبط