refactor: remove direct nodes table writes from chat_core/conn_mgr, use topo_node_sqlite API
- chat_core_init: replace INSERT INTO nodes with topo_node_sqlite_node_update_verified, remove redundant topo_node_sqlite_init call - chat_core_update_my_name: replace UPDATE nodes with topo_node_sqlite_node_update_verified - chat_conn_mgr_connect_from_invite: simplify invite node insert (x25519 only, no ed25519) - topo_node_sqlite: add detailed column comments to peers table DDL (both server and chatgui) - chat_core: add detailed column comments to peers table CREATE TABLE
This commit is contained in:
1 parent
7aa4a34f35
commit
e2d9879636
3 files changed
+49
-54
No files matched your search
@@ -254,20 +254,25 @@ int topo_node_sqlite_channel_put(sqlite3* db, const char* channel_id,
|
||||
|
||||
const char* ddl_tmpl =
|
||||
"CREATE TABLE IF NOT EXISTS \"%s\" ("
|
||||
" id INTEGER PRIMARY KEY AUTOINCREMENT,"
|
||||
" node_id INTEGER NOT NULL UNIQUE,"
|
||||
" x25519_pubkey BLOB NOT NULL,"
|
||||
" ed25519_pubkey BLOB NOT NULL,"
|
||||
" join_sig BLOB NOT NULL,"
|
||||
" join_ts INTEGER NOT NULL,"
|
||||
" update_sig BLOB,"
|
||||
" update_ts INTEGER DEFAULT 0,"
|
||||
" userinfo TEXT NOT NULL DEFAULT '',"
|
||||
" creator_sig BLOB,"
|
||||
" adm_tags TEXT,"
|
||||
" adm_tags_sig BLOB,"
|
||||
" node_type INTEGER NOT NULL DEFAULT 0,"
|
||||
" node_RTT INTEGER"
|
||||
" id INTEGER PRIMARY KEY AUTOINCREMENT," /* суррогатный ключ */
|
||||
" node_id INTEGER NOT NULL UNIQUE," /* уникальный ID узла (64-bit) */
|
||||
" x25519_pubkey BLOB NOT NULL," /* X25519 публичный ключ (32 байта) */
|
||||
" ed25519_pubkey BLOB NOT NULL," /* Ed25519 публичный ключ (32 байта) — верификация join_sig/update_sig */
|
||||
" join_sig BLOB NOT NULL," /* Ed25519 подпись присоединения (PEERS_JOIN_SIG_SIZE=64).
|
||||
signed: ch_x25519(32)||ch_ed25519(32)||node_id(8 LE)||x25519(32)||join_ts(8 LE) */
|
||||
" join_ts INTEGER NOT NULL," /* NTP timestamp подписи join_sig — защита от replay */
|
||||
" update_sig BLOB," /* Ed25519 подпись обновления userinfo (PEERS_UPDATE_SIG_SIZE=64).
|
||||
signed: join_sig(64)||update_ts(8 LE)||userinfo(NUL-terminated) */
|
||||
" update_ts INTEGER DEFAULT 0," /* NTP timestamp подписи update_sig */
|
||||
" userinfo TEXT NOT NULL DEFAULT ''," /* JSON с информацией о пользователе: {"name":"<display_name>"} */
|
||||
" creator_sig BLOB," /* Ed25519 подпись создателя (PEERS_JOIN_SIG_SIZE=64), пока заглушка */
|
||||
" adm_tags TEXT," /* теги администратора, key=value через пробел/запятую.
|
||||
сейчас: "supernode=yes" → node_type=4 */
|
||||
" adm_tags_sig BLOB," /* Ed25519 подпись над adm_tags (64 байта) — верификация пока не реализована */
|
||||
" node_type INTEGER NOT NULL DEFAULT 0," /* вычисляемый тип узла (topo_node_sqlite_nodeinfo_updated):
|
||||
0=неизвестно 1=прямой(addr_type NETIF/DIRECT/NAT_STRICT)
|
||||
2=EIM NAT 3=(не исп.) 4=суперузел(DIRECT+"supernode=yes") */
|
||||
" node_RTT INTEGER" /* RTT до узла в мс, часть индекса (node_type, node_RTT) */
|
||||
")";
|
||||
|
||||
int ddl_sz = snprintf(NULL, 0, ddl_tmpl, peers_tbl);
|
||||
|
||||
Reference in new issue
Block a user