diff --git a/DOC/TODO то что пока отложенно на будущее.md b/DOC/TODO то что пока отложенно на будущее.md index c2b047e..7afb6dd 100644 --- a/DOC/TODO то что пока отложенно на будущее.md +++ b/DOC/TODO то что пока отложенно на будущее.md @@ -1 +1,2 @@ -Сделать возможность убрать свой лайк. (пока не надо а сложность что надо больше проверок) \ No newline at end of file +Сделать возможность убрать свой лайк. (пока не надо а сложность что надо больше проверок) - хотя можно и без проверки, просто за двойной лайк или за снятие двойное лайка. Будет двойное проникновение :)) тому кто изменил код клиента и убрал проверку на клиенте - и блокчейн заблокируется и всё. +поэтому просто на каждую реакцию добавиться убрать эту ракцию . \ No newline at end of file diff --git a/DOC/doc_all_libs.md b/DOC/doc_all_libs.md index 3670426..12d8aa3 100644 --- a/DOC/doc_all_libs.md +++ b/DOC/doc_all_libs.md @@ -5,7 +5,6 @@ shine-server-log shine-server-config Минимальный конфиг-лоадер, который один раз читает application.properties и даёт доступ к параметрам. -Внешние настройки (2): server.1port=7070, db.path=data/shine.sqlite. shine-server-geo Утилиты, которые вытаскивают IP/язык/UA из Jetty WebSocket и (опционально) резолвят гео по IP с кэшем в БД. diff --git a/src/main/java/server/ws/Что недоделано. И потом надо доделать b/DOC/Что недоделано. И потом надо доделать similarity index 100% rename from src/main/java/server/ws/Что недоделано. И потом надо доделать rename to DOC/Что недоделано. И потом надо доделать diff --git a/shine-server-config/src/main/java/utils/config/CryptoSizes.java b/shine-server-config/src/main/java/utils/config/CryptoSizes.java new file mode 100644 index 0000000..cb4493e --- /dev/null +++ b/shine-server-config/src/main/java/utils/config/CryptoSizes.java @@ -0,0 +1,19 @@ +package utils.config; + +/** + * CryptoSizes — единые размеры крипто-полей и ключей. + * Никаких "32/64" по коду руками — только отсюда. + */ +public final class CryptoSizes { + + private CryptoSizes() {} + + /** Длина SHA-256 хэша, который хранится в блоке. */ + public static final int HASH32_LEN = 32; + + /** Длина подписи Ed25519, которая хранится в блоке. */ + public static final int SIGNATURE64_LEN = 64; + + /** Длина публичного ключа Ed25519. */ + public static final int ED25519_PUBLIC_KEY32_LEN = 32; +} \ No newline at end of file diff --git a/shine-server-config/src/main/java/utils/config/MsgSubType.java b/shine-server-config/src/main/java/utils/config/MsgSubType.java new file mode 100644 index 0000000..0bacd9b --- /dev/null +++ b/shine-server-config/src/main/java/utils/config/MsgSubType.java @@ -0,0 +1,55 @@ +package utils.config; + +/** + * MsgSubType — единое место для ВСЕХ subType сообщений (msg_sub_type). + * + * Правило: + * - НИКАКИХ "магических чисел" subType по проекту. + * - В тестах, в body-классах и в SQL-триггерах используем только эти константы. + * + * Важно: + * - Значения менять после релиза нельзя (иначе сломается совместимость). + */ +public final class MsgSubType { + + private MsgSubType() {} + + /* ===================== TEXT (msg_type=1) ===================== */ + + /** Новое сообщение (начало ветки). */ + public static final short TEXT_NEW = 1; + + /** Ответ на сообщение (reply). */ + public static final short TEXT_REPLY = 2; + + /** Репост (repost). */ + public static final short TEXT_REPOST = 3; + + /** Редактирование (edit). ВАЖНО: серверное значение = 10. */ + public static final short TEXT_EDIT = 10; + + /* ===================== REACTION (msg_type=2) ===================== */ + + /** Лайк (LIKE). */ + public static final short REACTION_LIKE = 1; + + /* ===================== CONNECTION (msg_type=3) ===================== */ + + /** Добавить в друзья. */ + public static final short CONNECTION_FRIEND = 10; + + /** Удалить из друзей. */ + public static final short CONNECTION_UNFRIEND = 11; + + /** Подписаться (follow). */ + public static final short CONNECTION_FOLLOW = 20; + + /** Отписаться (unfollow). */ + public static final short CONNECTION_UNFOLLOW = 21; + + /** Заблокировать. */ + public static final short CONNECTION_BLOCK = 30; + + /** Разблокировать. */ + public static final short CONNECTION_UNBLOCK = 31; +} \ No newline at end of file