This commit is contained in:
Dmitry Zuikov 2024-03-16 17:02:27 +03:00
parent 49c2571023
commit 9f8ad486a5
1 changed files with 15 additions and 16 deletions

View File

@ -129,24 +129,23 @@ broadcast сообщений, DNS бутстрапа и списка извес
прочее, $git~push$ происходит в \term{references}{ссылку}, которая поддерживается всеми пирами, прочее, $git~push$ происходит в \term{references}{ссылку}, которая поддерживается всеми пирами,
которые согласны поддерживать эту ссылку. которые согласны поддерживать эту ссылку.
Узел hbs2-peer может постить \term{transaction}{транзакции} обновления ссылок и получать их, а также Узел hbs2-peer может отправлять и получать транзакции обновления ссылок, а также получать журнал
получать журнал транзакций в виде дерева Меркла. транзакций как дерево Меркла.
Как было сказано выше, hbs2-git использует механизм \term{references}{ссылок} для своей работы. Как было сказано выше, hbs2-git использует механизм \term{references}{ссылок} для своей работы.
Ссылка представляет собой некий идентификатор, как правило, ассоциированный с публичным ключом Ссылка --- это идентификатор, часто связанный с публичным ключом шифрования, который может быть
шифрования. Технически это может быть что угодно, что может быть хэшировано, но это что-то любым хешируемым объектом. Она должна однозначно ассоциироваться с обновляющим её пользователем и
должно быть идентифицировано с тем, кто эту ссылку обновляет, а так же, по возможности должно быть быть уникальной.
уникально в рамках вселенной.
Одним из способов добиться подобной уникальности --- является использование пары публичный Одним из способов добиться уникальности является использование пары публичный
ключ/приватный ключ и публичного ключа в качестве уникального идентификатора. ключ/приватный ключ и публичного ключа в качестве идентификатора.
Владелец приватного ключа очень заинтересован в том, что бы его приватный ключ был уникален и Владелец приватного ключа заинтересован в том, что бы его приватный ключ был уникален и известен
известен только ему и он изо всех сил старается эту уникальность поддерживать, в частности, только ему и он изо всех сил старается эту уникальность поддерживать, в частности, использует
использует качественный генератор случайных чисел и никому свой приватный ключ не сообщает. качественный генератор случайных чисел и никому свой приватный ключ не сообщает.
Так же мы предполагаем, что подобрать секретный ключ по известному публичному ключу --- очень Мы предполагаем, что подобрать секретный ключ по известному публичному ключу --- очень
сложная задача. сложная задача.
Ссылки могут быть разных типов. Конкретно, hbs2-git использует ссылки двух видов: Ссылки могут быть разных типов. Конкретно, hbs2-git использует ссылки двух видов:
@ -154,13 +153,13 @@ broadcast сообщений, DNS бутстрапа и списка извес
\begin{description} \begin{description}
\item[LWWRef] В терминах CRDT это Last~Write~Wins~Register, где некое значение \item[LWWRef] В терминах CRDT это Last~Write~Wins~Register, где некое значение
ассоциировано с монотонно возрастающим счётчиком, и все участники (пиры) принимают ассоциировано с монотонно возрастающим счётчиком, и все участники (пиры) принимают
то значение, у которого этот счётчик больше. Так же: lwwref, lww-cсылка. то значение, у которого этот счётчик больше. См: lwwref, lww-cсылка.
\item[RefLog] В терминах CRDT это G-Set или же Grow~Only~Set транзакций, так же множество \item[RefLog] В терминах CRDT это G-Set или же Grow~Only~Set транзакций, где множество
транзакций представлено деревом Меркла. Транзакции (в рамках RefLog) упорядочены строго транзакций представлено деревом Меркла. Транзакции (в рамках RefLog) упорядочены строго
по их хэшам. Содержимое транзакций может быть произвольно и определяется клиентским приложением. по их хэшам. Содержимое транзакций может быть произвольно и определяется клиентским приложением.
Наличие порядка, таким образом, приводит к тому, что всё множество может быть адресовано Наличие порядка, таким образом, приводит к тому, что всё множество может быть адресовано
неким хэшем (дерева Меркла) и хэш этот одинаков для одинакового набора транзакций. Так же: неким хэшем (дерева Меркла) и хэш этот одинаков для одинакового набора транзакций. Также:
рефлог. рефлог.
\end{description} \end{description}
@ -756,7 +755,7 @@ bdfb845c343eb1da14fe1969219c303c1397980e refs/heads/master
$seed$ содержится в блоке значения ссылки $L_1$. $seed$ содержится в блоке значения ссылки $L_1$.
$PK_2$ также содержится в блоке значения ссылки $L_1$. $PK_2$ аналогично, содержится в блоке значения ссылки $L_1$.
Таким образом, все имеют доступ к публичному ключу рефлога $PK_2$ и могут проверять подпись автора Таким образом, все имеют доступ к публичному ключу рефлога $PK_2$ и могут проверять подпись автора
для даннго рефлога, и только автор имеет доступ к приватному ключу $SK_2$ и имеет возможность для даннго рефлога, и только автор имеет доступ к приватному ключу $SK_2$ и имеет возможность