Переписать shine_users и shine_login_guard на чистый Rust

This commit is contained in:
AidarKC
2026-06-04 23:05:45 +04:00
parent 60049442f1
commit 832eea5889
17 changed files with 1355 additions and 1621 deletions
@@ -0,0 +1,33 @@
# Pure Rust `shine_users` и `shine_login_guard`
Статус: `pending`
## Что сделано
- `shine_login_guard` переписан без Anchor на чистый Rust/Solana SDK.
- `shine_users` переписан без Anchor на чистый Rust/Solana SDK.
- Для `shine_users` введён новый instruction ABI без Anchor discriminator'ов.
- Для `shine_users` используются новые seed'ы:
- `user_login=` для `user_pda`
- `shine_users_economy_config_v2` для economy PDA
- Формат блоков PDA синхронизирован:
- `SessionsBlock = 50`
- `TrustedStateBlock = 70`
- UI JS-модуль и Java lazy-import обновлены под новые seeds/ABI/коды блоков.
## Что проверить руками
1. В обычном UI выполнить регистрацию нового пользователя в Solana.
2. Проверить, что после регистрации читается новая `user_pda`.
3. В server UI выполнить создание server PDA.
4. В server UI выполнить update server PDA.
5. Проверить, что после update растёт `record_number`.
6. Проверить, что lazy-import на сервере читает новый формат PDA без ошибок.
7. Проверить, что старые Anchor discriminator'ы больше нигде не требуются.
## Ожидаемый результат
- Регистрация и update работают на новых чисто-rust программах.
- UI не использует старый Anchor ABI.
- Серверный Java parser читает новый формат PDA.
- Ошибок `out of memory` и anchor-specific падений больше нет.
+5 -5
View File
@@ -26,7 +26,7 @@
Адрес пользовательской PDA вычисляется по логину:
- seed prefix: `login=`;
- seed prefix: `user_login=`;
- второй seed: нормализованный логин в нижнем регистре;
- program id: программа `shine_users`.
@@ -90,8 +90,8 @@ UserPdaRecordV1
| `3` | `BlockchainRegistryBlock` | Один или несколько блокчейнов пользователя. |
| `30` | `ServerProfileBlock` | Серверные данные пользователя. |
| `40` | `AccessServersBlock` | Серверы доступа/relay. |
| `55` | `SessionsBlock` | Опубликованные пользовательские сессии и саб-серверы. |
| `50` | `TrustedStateBlock` | Счетчик trusted-связей. |
| `50` | `SessionsBlock` | Опубликованные пользовательские сессии и саб-серверы. |
| `70` | `TrustedStateBlock` | Счетчик trusted-связей. |
| `255` | `ReservedBlock` | Зарезервировано, пока не используется. |
Правила:
@@ -280,7 +280,7 @@ AccessServersBlock
```text
SessionsBlock
- block_type: u8 = 55
- block_type: u8 = 50
- block_version: u8 = 0
- sessions_mode: u8
- sessions_count: u8
@@ -326,7 +326,7 @@ SessionRecord
```text
TrustedStateBlock
- block_type: u8 = 50
- block_type: u8 = 70
- block_version: u8 = 0
- trusted_count: u8 = 0
```
@@ -79,7 +79,7 @@ anchor deploy -p shine_users
Страница сама вычисляет PDA `users_economy_config` по seed:
- seed: `shine_users_economy_config`
- seed: `shine_users_economy_config_v2`
- program: `FZS1YctoeEhCkZ5VTjsysUFAXR8CqxYztcLboXcg2Rpm`
## Кто оплачивает create/update user_pda