Это еженедельный информационный бюллетень о последних инженерных новостях Solana. Если вы хотите еженедельно узнавать о технологиях Solana, подписывайтесь на Solana Changelog в @solana_devs и @readylayerone и включите уведомления.
Релизы
Значимые функциональные флаги (feature gates)
Devnet
Alpenglow
Новые версии
- Agave v4.4.0-beta.0
- Firedancer Mainnet Release v26.09.5
- Superbank v0.7.1-rc2, v0.7.0
- Web3.js v3.0.0-rc.1
- Kit v8.4.0
- Программа стейкинга (Stake Program) Rust SDK v5.1.0
- Программа Memo (Memo Program) Legacy JS SDK v0.3.1
- Программа Token 2022 (Token 2022 Program) v11.1.0
- LiteSVM v0.17.0
Работа над экосистемой
SIMD
- Было начато обсуждение изменения двоичного интерфейса приложения (ABI) v1 для use registers r3-r5 as the place to load instruction pointers and metadata WTM (что это значит) — ABI определяет, где в памяти располагаются важные данные, пока инструкции вашей транзакции обрабатываются. Обсуждение касается использования трех зарезервированных мест в памяти (регистров в предложении) для хранения важных данных о размере аккаунтов инструкций, данных и их местоположении. Это позволяет программам выполнять поиск вместо копирования данных из одной области памяти в другую, что является гораздо более медленным способом, используемым средой выполнения сегодня.
Было начато обсуждение изменения двоичного интерфейса приложения (ABI) v1 для
- WTM (что это значит) — ABI определяет, где в памяти располагаются важные данные, пока инструкции вашей транзакции обрабатываются. Обсуждение касается использования трех зарезервированных мест в памяти (регистров в предложении) для хранения важных данных о размере аккаунтов инструкций, данных и их местоположении. Это позволяет программам выполнять поиск вместо копирования данных из одной области памяти в другую, что является гораздо более медленным способом, используемым средой выполнения сегодня.
- Было внесено предложение сделать CPI в среде выполнения более логичными и производительными WTM — Вызов других программ в Solana требует системного вызова (определенной операции в среде выполнения с четко заданным поведением и стоимостью), который сохраняет избыточную информацию об аккаунте в памяти и преобразует эту информацию только для того, чтобы преобразовать её обратно во время обработки. Предлагаемое здесь изменение устраняет как ненужный этап преобразования, так и дублирование памяти, освобождая среду выполнения и пространство, выделенное для выполнения инструкции.
Было внесено предложение сделать CPI в среде выполнения более логичными и производительными
- WTM — Вызов других программ в Solana требует системного вызова (определенной операции в среде выполнения с четко заданным поведением и стоимостью), который сохраняет избыточную информацию об аккаунте в памяти и преобразует эту информацию только для того, чтобы преобразовать её обратно во время обработки. Предлагаемое здесь изменение устраняет как ненужный этап преобразования, так и дублирование памяти, освобождая среду выполнения и пространство, выделенное для выполнения инструкции.
- Было предложено additional data field in the Vote Account for commission history WTM — Аккаунты голосования (Vote Accounts) служат идентификаторами валидаторных узлов, поддерживающих сеть, и содержат информацию о стейке, вознаграждениях и комиссиях. Во время Alpenglow будут внесены изменения, которые заменят часть этой информации для текущей эпохи. Это предложение восстанавливает эту информацию в аккаунте голосования.
Было предложено
- WTM — Аккаунты голосования (Vote Accounts) служат идентификаторами валидаторных узлов, поддерживающих сеть, и содержат информацию о стейке, вознаграждениях и комиссиях. Во время Alpenglow будут внесены изменения, которые заменят часть этой информации для текущей эпохи. Это предложение восстанавливает эту информацию в аккаунте голосования.
- Было предложено добавить информацию о местоположении в аккаунт голосования и учитывать географию при назначении расписания лидеров WTM — Расписание лидеров (Leader Schedule) определяет, когда каждый валидаторный узел будет создавать блоки в течение эпохи. Обычно это определяется случайным образом, и чем больше стейк у валидатора, тем больше слотов в эпохе ему выделяется для выполнения роли лидера и, следовательно, получения вознаграждений. Преимущество учета географии в расписании лидеров заключается в том, что у пользователей сети будет больше шансов отправить свои транзакции лидеру, который находится ближе к их части мира. Посмотрите эту визуализацию от @TheWattenhofer, чтобы увидеть, как лидеры будут более широко распределены по всему миру после реализации этого предложения:
Было предложено добавить информацию о местоположении в аккаунт голосования и учитывать географию при назначении расписания лидеров
- WTM — Расписание лидеров (Leader Schedule) определяет, когда каждый валидаторный узел будет создавать блоки в течение эпохи. Обычно это определяется случайным образом, и чем больше стейк у валидатора, тем больше слотов в эпохе ему выделяется для выполнения роли лидера и, следовательно, получения вознаграждений. Преимущество учета географии в расписании лидеров заключается в том, что у пользователей сети будет больше шансов отправить свои транзакции лидеру, который находится ближе к их части мира. Посмотрите эту визуализацию от @TheWattenhofer, чтобы увидеть, как лидеры будут более широко распределены по всему миру после реализации этого предложения:
Клиенты валидаторов (Agave, Firedancer, Mithril)
- Agave планирует раскрыть карту рангов Alpenglow в своем API методов RPC WTM — API RPC позволяет операторам валидаторов следить за состоянием сети во время работы. Это изменение позволяет операторам валидаторов обслуживать уровень чтения (потоковый сервис, предназначенный для отправки событий подписчикам), предоставляя им обновления о голосах из аккаунтов голосования с определенным сертификатом. Транзакции голосования удаляются из транзакций, поэтому голоса отдельных валидаторов должны быть извлечены из сертификатов, которые находятся в блокчейне.
- WTM — API RPC позволяет операторам валидаторов следить за состоянием сети во время работы. Это изменение позволяет операторам валидаторов обслуживать уровень чтения (потоковый сервис, предназначенный для отправки событий подписчикам), предоставляя им обновления о голосах из аккаунтов голосования с определенным сертификатом. Транзакции голосования удаляются из транзакций, поэтому голоса отдельных валидаторов должны быть извлечены из сертификатов, которые находятся в блокчейне.
- В Agave ведется работа над улучшением задержки приема шредов WTM — Описанное изменение отдает приоритет приему шредов (получению данных блока от лидера) перед восстановлением шредов (запросом отсутствующих или поврежденных данных блока у других валидаторов). Такой подход дает больше пространства для получения блоков узлами, не являющимися лидерами, чтобы восстановление стало скорее крайней мерой.
- WTM — Описанное изменение отдает приоритет приему шредов (получению данных блока от лидера) перед восстановлением шредов (запросом отсутствующих или поврежденных данных блока у других валидаторов). Такой подход дает больше пространства для получения блоков узлами, не являющимися лидерами, чтобы восстановление стало скорее крайней мерой.
- В Agave снижается конкуренция при хешировании и проверке повторов WTM — Это изменение, как и в предыдущем журнале изменений, представляет собой более разумное использование арен jemalloc для выделения памяти, чтобы упростить повторное использование потоками. В данном случае речь идет о передаче данных между потоками хеширования и проверки в службе повторов.
- WTM — Это изменение, как и в предыдущем журнале изменений, представляет собой более рациональное использование арен jemalloc для выделения памяти, чтобы упростить ее повторное использование потоками. В данном случае речь идет о передаче данных между потоками хеширования и проверки в рамках службы воспроизведения (replay service).
- В службе повторной передачи (retransmit service) Agave реализуется работа по замене rayon на пользовательский пул потоков. WTM — Rayon — это готовый крейт Rust, который позволяет разработчикам создавать пулы рабочих потоков. В Agave обнаружили, что это потребляет больше памяти и вычислительных ресурсов, чем требуется на самом деле. Модель «кражи работы» (work-stealing), при которой задачи помещаются в очередь, а потоки самостоятельно забирают их оттуда, уже использовалась в других частях стека Agave и теперь применяется в службе Retransmit для повышения производительности.
- WTM — Rayon — это готовый крейт Rust, который позволяет разработчикам создавать пулы рабочих потоков. В Agave обнаружили, что это потребляет больше памяти и вычислительных ресурсов, чем требуется на самом деле. Модель «кражи работы» (work-stealing), при которой задачи помещаются в очередь, а потоки самостоятельно забирают их оттуда, уже использовалась в других частях стека Agave и теперь применяется в службе Retransmit для повышения производительности.
- Agave улучшает свою службу восстановления слотов. WTM — Служба восстановления отвечает за запрос недостающих фрагментов (shreds) блока у других валидаторов, чтобы завершить формирование собственного блока для воспроизведения и голосования. Это изменение — простая оптимизация, которая пропускает попытки восстановления для слотов, фрагменты которых уже полностью получены (т.е. нет недостающих фрагментов). Это относительно легко реализуемая оптимизация, так как данная работа больше не требуется.
- WTM — Служба восстановления отвечает за запрос недостающих фрагментов (shreds) блока у других валидаторов, чтобы завершить формирование собственного блока для воспроизведения и голосования. Это изменение — простая оптимизация, которая пропускает попытки восстановления для слотов, фрагменты которых уже полностью получены (т.е. нет недостающих фрагментов). Это относительно легко реализуемая оптимизация, так как данная работа больше не требуется.
- Airdrop в Solana CLI будет ссылаться на веб-кран Solana. WTM — Airdrop больше не поддерживаются в Solana CLI и сегодня осуществляются только через сайт faucet.solana.com. Это изменение информирует об этом пользователей, чтобы процесс получения тестовых SOL в Testnet и Devnet стал гораздо более понятным.
- WTM — Airdrop больше не поддерживаются в Solana CLI и сегодня осуществляются только через сайт faucet.solana.com. Это изменение информирует об этом пользователей, чтобы процесс получения тестовых SOL в Testnet и Devnet стал гораздо более понятным.
RPC 2.0
- Superbank готовит свою реализацию Alpenglow. WTM — RPC также является интерфейсом к информации о стейках и голосовании валидаторов. Это изменение подготавливает Superbank как часть уровня RPC/чтения для обслуживания запросов пользователей, связанных с примитивами Alpenglow.
- WTM — RPC также является интерфейсом к информации о стейках и голосовании валидаторов. Это изменение подготавливает Superbank как часть уровня RPC/чтения для обслуживания запросов пользователей, связанных с примитивами Alpenglow.
Языковые клиенты Solana (Web3.js, Solana Kit, плагины Kit, Solana SDK, Codama, Solana Go)
- Проверка длины seed для вывода PDA добавляется в Solana Rust SDK. WTM — Seed служат входными данными для вывода адреса учетной записи программы, используемой для хранения состояния программы и т. д. Это изменение позволяет проводить дополнительные проверки перед тем, как seed будут добавлены в качестве входных данных в вспомогательную функцию, которая выводит соответствующий адрес.
- WTM — Seed служат входными данными для вывода адреса учетной записи программы, используемой для хранения состояния программы и т. д. Это изменение позволяет проводить дополнительные проверки перед тем, как seed будут добавлены в качестве входных данных в вспомогательную функцию, которая выводит соответствующий адрес.
Solana Program Library (SPL) и Core BPF
- Программа ed25519-programmatic-signer будет use V1 transactions exclusively WTM — Поскольку программные подписывающие программы используют гораздо больше криптографии, им потребуется гораздо больше байтов транзакций для хранения операций и выполнения. Использование транзакций V1 по умолчанию предоставляет им необходимое пространство.
- WTM — Поскольку программные подписывающие программы используют гораздо больше криптографии, им потребуется гораздо больше байтов транзакций для хранения операций и выполнения. Использование транзакций V1 по умолчанию предоставляет им необходимое пространство.
Фреймворки программ Solana (Anchor, Pinocchio, Steel, Quasar)
- Caravel добавляет вспомогательные инструкции CPI для программы токенов. WTM — Вспомогательные функции программы токенов являются стандартными в каждой реализации фреймворка программ. Поддержка этих функций в Caravel сделает его более похожим на другие фреймворки программ, такие как Anchor.
- WTM — Вспомогательные функции программы токенов являются стандартными в каждой реализации фреймворка программ. Поддержка этих функций в Caravel сделает его более похожим на другие фреймворки программ, такие как Anchor.
Другие интересные вещи
- @accretion_xyz написал эссе об ошибках, которые разработчики программ упускают при обновлении своих учетных записей состояния
@accretion_xyz написал эссе об ошибках, которые разработчики программ упускают при обновлении своих учетных записей состояния
- @SteveCleanBrook провел эпизод Pirates Parley с генеральным директором @accretion_xyz, @claudijd
@SteveCleanBrook провел эпизод Pirates Parley с генеральным директором @accretion_xyz, @claudijd
- @TheWatterhoffer опубликовал статью об усилиях по снижению задержки путем перехода на Alpenglow
@TheWatterhoffer опубликовал статью об усилиях по снижению задержки путем перехода на Alpenglow
- @SolanaFnDn и @anza_xyz выпустили сессию с доской, объясняющую, как работает Alpenglow
@SolanaFnDn и @anza_xyz выпустили сессию с доской, объясняющую, как работает Alpenglow
- @clairefxyz опубликовала статью о своих усилиях по оптимизации компиляции, используя обработку ошибок в p-token в качестве примера
@clairefxyz опубликовала статью о своих усилиях по оптимизации компиляции, используя обработку ошибок в p-token в качестве примера
- Новое приложение CLI для кошелька было выпущено с открытым исходным кодом на Github https://github.com/ax-x2/solx
Новое приложение CLI для кошелька было выпущено с открытым исходным кодом на Github
- @0xnaga запустил сайт, рассказывающий о стратегиях MEV на Solana
@0xnaga запустил сайт, рассказывающий о стратегиях MEV на Solana











