SHA256
09 01 25
На этом с форматом разобрались и отложили всё на праздничные выходные
This commit is contained in:
@@ -10,13 +10,13 @@ import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* BchBlockEntry_new — универсальный блок нового формата.
|
||||
* старый формат
|
||||
*
|
||||
* RAW (BigEndian):
|
||||
* [4] recordSize (int) = размер RAW (включая этот заголовок), БЕЗ signature+hash
|
||||
* [4] recordNumber (int) глобальный номер блока
|
||||
* [8] timestamp (long) unix seconds
|
||||
* [2] lineIndex (short)
|
||||
[2] lineIndex (short)
|
||||
* [4] lineNumber (int)
|
||||
* [N] bodyBytes (body, начинается с [type][version])
|
||||
*
|
||||
@@ -24,6 +24,56 @@ import java.util.Objects;
|
||||
* [64] signature64 (Ed25519)
|
||||
* [32] hash32 (SHA-256)
|
||||
*/
|
||||
СМОТРИ файл : "!!! TODO что бы не забыть"
|
||||
/**
|
||||
* BchBlockEntry — универсальный блок нового формата.
|
||||
*
|
||||
* RAW (BigEndian):
|
||||
* Неизменное заглавие
|
||||
* [32] prevHash32 (SHA-256) ХЭЩ ПРИВЕДУЩЕГО
|
||||
* [4] blockSize (int) = размер RAW (включая этот заголовок), БЕЗ signature
|
||||
* [4] blockNumber (int) номер блока
|
||||
* [8] timestamp (long) unix seconds
|
||||
|
||||
* Само сообщение
|
||||
* [2] type - тип соощения
|
||||
* [2] Sиbtype - субтип сообщения
|
||||
* [2] version - версия формата соощения
|
||||
* [4] prevLineNumber НОМЕР ПРИВЕДУЩЕГО СООБЩЕНИЯ В ЛИНИИ - может быть а может и небыть в зависимости от типа сообщения
|
||||
* [32] prevLineHash ХЭШ ПРИВЕДУЩЕГО СООБЩЕНИЯ В ЛИНИИ - может быть а может и небыть в зависимости от типа сообщения
|
||||
* [N] bodyBytes (ОСТАЛЬНЫЕ БАЙТЫ])
|
||||
|
||||
* TAIL (НЕ входит в recordSize):
|
||||
* [64] signature64 (Ed25519)
|
||||
* И хэш в конце блока мы не храним, тк он будет в начале следующего блока. А для проверки блока оно не нужно тк мы каждый раз провеяем подпись . А она основана на хэше
|
||||
*
|
||||
|
||||
|
||||
* [32] hash32 (SHA-256)
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public final class BchBlockEntry {
|
||||
|
||||
public static final int SIGNATURE_LEN = 64;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package blockchain;
|
||||
package shine.db;
|
||||
|
||||
/**
|
||||
* shine.db.MsgSubType — единое место для ВСЕХ subType сообщений (msg_sub_type).
|
||||
* MsgSubType — единое место для ВСЕХ subType сообщений (msg_sub_type).
|
||||
*
|
||||
* Правило:
|
||||
* - НИКАКИХ "магических чисел" subType по проекту.
|
||||
@@ -14,18 +14,23 @@ public final class MsgSubType {
|
||||
|
||||
private MsgSubType() {}
|
||||
|
||||
/* ===================== HEADER (msg_type=0) ===================== */
|
||||
|
||||
/** HeaderBody: subType всегда 0 (compat). */
|
||||
public static final short HEADER_COMPAT = 0;
|
||||
|
||||
/* ===================== TEXT (msg_type=1) ===================== */
|
||||
|
||||
/** Новое сообщение (начало ветки). */
|
||||
/** Новая публикация. */
|
||||
public static final short TEXT_NEW = 1;
|
||||
|
||||
/** Ответ на сообщение (reply). */
|
||||
/** Ответ (reply). */
|
||||
public static final short TEXT_REPLY = 2;
|
||||
|
||||
/** Репост (repost). */
|
||||
public static final short TEXT_REPOST = 3;
|
||||
|
||||
/** Редактирование (edit). ВАЖНО: серверное значение = 10. */
|
||||
/** Редактирование (edit). */
|
||||
public static final short TEXT_EDIT = 10;
|
||||
|
||||
/* ===================== REACTION (msg_type=2) ===================== */
|
||||
@@ -34,6 +39,11 @@ public final class MsgSubType {
|
||||
public static final short REACTION_LIKE = 1;
|
||||
|
||||
/* ===================== CONNECTION (msg_type=3) ===================== */
|
||||
/**
|
||||
* Совпадает с ConnectionBody:
|
||||
* SET: FRIEND=10, CONTACT=20, FOLLOW=30
|
||||
* UNSET: UNFRIEND=11, UNCONTACT=21, UNFOLLOW=31
|
||||
*/
|
||||
|
||||
/** Добавить в друзья. */
|
||||
public static final short CONNECTION_FRIEND = 10;
|
||||
@@ -41,15 +51,22 @@ public final class MsgSubType {
|
||||
/** Удалить из друзей. */
|
||||
public static final short CONNECTION_UNFRIEND = 11;
|
||||
|
||||
/** Добавить в контакты. */
|
||||
public static final short CONNECTION_CONTACT = 20;
|
||||
|
||||
/** Удалить из контактов. */
|
||||
public static final short CONNECTION_UNCONTACT = 21;
|
||||
|
||||
/** Подписаться (follow). */
|
||||
public static final short CONNECTION_FOLLOW = 20;
|
||||
public static final short CONNECTION_FOLLOW = 30;
|
||||
|
||||
/** Отписаться (unfollow). */
|
||||
public static final short CONNECTION_UNFOLLOW = 21;
|
||||
public static final short CONNECTION_UNFOLLOW = 31;
|
||||
|
||||
/** Заблокировать. */
|
||||
public static final short CONNECTION_BLOCK = 30;
|
||||
/* ===================== USER_PARAM (msg_type=4) ===================== */
|
||||
|
||||
/** Разблокировать. */
|
||||
public static final short CONNECTION_UNBLOCK = 31;
|
||||
}
|
||||
/** Параметр профиля key/value (обе строки). */
|
||||
public static final short USER_PARAM_TEXT_TEXT = 1;
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user