Актуальні теми
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.

Dean 利迪恩 (⚛️,🐱) | sbpf/acc
Куратор @blueshift. @zeusnetworkhq системний зловживач. Quantum Cat @jupiterexchange. Мовний максі. 🇦🇺🇭🇰🇮🇩🇯🇵🇹🇼🇹🇭🦀
Бро, я вам це казав. Це буквально питання навичок на самому рівні. завжди був. 😭

arjun22 бер., 20:09
додано програми квазарів до списку програм Solana за допомогою фреймворку Quasar від @blueshift
→ контрпрограма
→ Vault Program
→ ескроу-програма
→ програма Merkle
~96% менше. Різниця ВЕЛИЧЕЗНА. Репозиторія нижче ↓

989
Очевидно, чому Quasar перемагає Anchor, але багато хто також питає: «Чому Quasar перемагає Піноккіо на деяких бенчмарках CU?» Особисто мені дуже не подобається формулювання питання, бо воно здається неправильним висновком.
Звісно, це не так, що @0x_febo забули оптимізувати багато речей, а ми змогли випередити його. Навпаки, насправді! Pinocchio, а тепер і новіші версії Solana SDK, насправді настільки оптимальні, що єдиний спосіб суттєво зменшити CU — це введення додаткового контексту у вигляді фреймворку.
Порівнювати бібліотеку з фреймворком — це не порівнювати яблука з ябуком. Існує багато специфічних для програм оптимізацій, які легко реалізувати, коли є достатньо контексту, але надзвичайно складно узагальнювати у бібліотеці, незалежній від програми. Дозвольте мені пояснити один із таких випадків:
У 2024 році @cavemanloverboy представили solana-nostd-entrypoint та solana-nostd-invoke. Це була перша серйозна спроба вирішити одні з найгірших Solana SDK-кодів, який споживає кожна ончейн-програма. У цьому ящику Кейві запровадив техніку під назвою «nodup» входу, коли замість того, щоб запалювати CU для управління дублікатними акаунтами, ви просто виходите з помилки одразу після зустрічі з таким. Ця техніка добре поєднується з іншими оптимізаціями, про які я розповім пізніше.
На жаль, через особливості того, що точка входу Solana спочатку була спроєктована як глобальна для всіх інструкцій у програмі і вимогу повного розбору багатьох вхідних даних змінної довжини для досягнення ситуаційної обізнаності, достатньо, щоб одна інструкція у вашій програмі мала потенційно дубльований облік, щоб вся програма не могла скористатися цією технікою.
Минулого року я запропонував ідею Фебо, Кейві та @alessandrod: що як, окрім того, що регістр 1 вказує на початок серіалізованої вхідної області, ми також інстанціюємо віртуальну машину з вказівником на перший байт наших інструкційних даних у регістрі 2? Це дозволить нам створювати точки входу для кожної інструкції, що дозволить безпечно та ефективно використовувати такі техніки, як nodup.
@realbuffalojoe підхопив ідею, написав реалізацію SIMD і агаве, і впровадив купу божевільних PR у наш інструмент сумісності з основною мережею, щоб це було безпечно для всіх програм і кластерів, які зараз розгорнуті. Ця функція вже активна на testnet і devnet, і планується активувати на mainnet приблизно протягом наступного тижня. Саме тоді Quasar офіційно досягає сумісності з основною мережею.
Внаслідок нашої спільної роботи з'явилася нова оптимізація: при роботі з припущенням, що ви маєте негайний доступ до дискримінатора інструкцій через r2, тепер можливо знати:
- точно, скільки облікових записів очікує ваша інструкція, і
- чи будуть вони підписаними, змінними, виконуваними або дублікатними
Завдяки тому, що прапорці облікового запису кодуються у суцільній послідовності з 4 байтами, замість виконання чотирьох окремих перевірок (is_duplicate(), is_signer(), is_mutable(), is_executable()), ми можемо фактично об'єднати ці показники в одне порівняння u16 або u32. Це означає, що не лише точка входу r2 може безпечно та оптимально використовувати nodup; Він також зазвичай надає нам безкоштовні чеки підписувальних/змінюваних/виконуваних!
Ми все ще перебуваємо на нульовому дні «unrelease», наполегливо намагаючись стабілізувати API і випустити нашу першу офіційну версію, але після завершення обов'язково проведемо ретельне дослідження, де детально розглянемо деякі техніки, які знайшли на ходу. Одне можна сказати напевно: створення ефективної структури програми Solana було не просто @blueshift зусиллями. Ми стоїмо на плечах велетнів. 🙏
1,56K
Найкращі
Рейтинг
Вибране
