SHA256
Переписать shine_users и shine_login_guard на чистый Rust
This commit is contained in:
@@ -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 падений больше нет.
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user