Документация по Solana SWQoS Endpoint
Что такое SWQoS Endpoint?
SWQoS Endpoint, предоставляемый ERPC, - это высокопроизводительный RPC service, который позволяет пользователям со stake connections отправлять transactions через выделенные lanes.
Он доступен и в shared, и в dedicated plan, обеспечивая более быструю и надежную доставку transactions.
Endpoint можно получить, зарегистрировав свои holdings elSOL в официальном Validators DAO Discord.
- Validators DAO Discord: https://discord.gg/C7ZQSrCkYR
Что такое SWQoS?
SWQoS (Stake weighted Quality of Service) - это механизм управления коммуникацией, который отдает приоритет validators со stake connections.
Leaders выделяют примерно 80% общей bandwidth для priority lane и 20% для non-priority lane.
Traffic со stake connections может использовать priority lane и одновременно отправляться через non-priority lane. В результате по сравнению с traffic, который зависит только от non-priority lane, эффективная пропускная способность доставки значительно выше.
Этот механизм применяется до обработки Priority fee, на этапе приема traffic и routing в сторону leader, то есть возможность попасть в priority lane напрямую влияет на downstream processing speed.
Связь с Priority Fee
Priority fee играет важную роль, но он применяется после того, как transaction уже достигла leader через routing SWQoS.
Если transaction не попадает в priority lane SWQoS, эффективность Priority fee становится ограниченной, и улучшить базовую reachability становится трудно.
Для оптимальной работы наиболее эффективно сочетать reachability на базе SWQoS с корректными настройками Priority fee.
Изменение cost structure
В традиционных transaction submission services пользователи были обязаны прикладывать Tips при отправке transactions.
С SWQoS Endpoint от ERPC Tips не требуются. Вместо этого доступ к priority bandwidth предоставляется через holding elSOL.
elSOL - это Liquid Staking Token (LST) в Solana, выпускаемый при стейкинге SOL.
Его стоимость относительно SOL растет по мере накопления staking rewards и не фиксируется в пропорции 1:1.
Например, со временем holding 1 elSOL может постепенно означать "1 elSOL = 1.1 SOL" или "1 elSOL = 1.2 SOL".
elSOL можно конвертировать обратно в SOL через unstaking process, при этом расчет будет учитывать накопленные staking rewards.
SOL, застейканный через elSOL, делегируется validators, подключенным к ERPC.
По мере роста holdings elSOL увеличивается общий объем SWQoS bandwidth, доступный в ERPC.
Holding elSOL позволяет пользователям напрямую участвовать в усилении сети и взамен получать доступ к выделенным transmission lanes.
- Официальный сайт elSOL: https://elsol.app/en
Распределение bandwidth (структура TPS)
Для shared SWQoS Endpoints доступный TPS рассчитывается как holdings elSOL / 4.2, с округлением вниз.
Например, holding 10 elSOL дает 2 TPS.
Фактический лимит определяется меньшим из двух значений:
- максимальный TPS, разрешенный вашим subscribed plan, или
- TPS, рассчитанный на основе holdings elSOL.
Для использования SWQoS endpoints требуется Developer Plan или выше, также поддерживаются Bundle Plans.
- Validators DAO Discord: https://discord.gg/C7ZQSrCkYR
Connection Keep Warming (Keep Alive)
В Solana SWQoS endpoint от ERPC GET request на
/ping позволяет поддерживать HTTPS connection между client и SWQoS endpoint ERPC.При отправке transaction первый request тратит небольшое время на установку HTTPS и TLS session.
Если заранее отправлять
/ping и держать это connection активным, можно избежать стартовой latency соединения и сразу перейти к отправке actual transaction.Даже если transactions не отправляются непрерывно, такой подход полезен для setup'ов, где transactions нужно отправлять быстро в конкретные моменты времени, помогая стабилизировать поведение первой отправки.
Ping Endpoint
Keep Warming выполняется отправкой GET request на
/ping в SWQoS endpoint.
Этот request не обрабатывает transactions и используется только для поддержания состояния connection между client и ERPC.Формат endpoint (HTTPS)
text
https://<your-swqos-endpoint-domain>/pinghttps://<your-swqos-endpoint-domain>/pingЗамените
<your-swqos-endpoint-domain> на домен SWQoS, предоставленный ERPC.Пример использования
Пример периодического Keep Alive (JavaScript)
typescript
async function keepWarm(endpoint: string) {
try {
await fetch(`${endpoint}/ping`, { method: 'GET' })
} catch {
// Ignore failures
}
}
setInterval(() => {
keepWarm('https://<your-swqos-endpoint-domain>')
}, 30000)async function keepWarm(endpoint: string) {
try {
await fetch(`${endpoint}/ping`, { method: 'GET' })
} catch {
// Ignore failures
}
}
setInterval(() => {
keepWarm('https://<your-swqos-endpoint-domain>')
}, 30000)Если отправлять
/ping через регулярные интервалы, можно поддерживать состояние, в котором отправка transaction может начаться немедленно, как только это потребуется.Примечания
・
/ping не расходует TPS и не влияет на расчеты bandwidth на основе elSOL
・Это не замена отправке transactions
・Это вспомогательный request, используемый только для поддержания connection client-to-ERPCДизайн SWQoS (routing на основе stake) и Priority fee при этом не меняются.
Используйте Keep Warming как механизм, который снижает latency в момент начала отправки transaction.