Маjко
В нашем случае можно сравнивать хэши бандлов версий крейтов
Vladimir
Я не понял как должно авторство проверяться?
Vladimir
вот например ты создатель крейта A, но мне тоже нравится нейм А.
Я хочу его у тебя засквотить, что не даст мне это сделать?
Vladimir
вообще на сколько я понимаю, для задачи распределенного реестра можно использовать ipfs
Маjко
При создании крейта заводим адрес, ассоциированный с именем крейта, который может быть только единственным
В связи с этим адресом создаем в store некий стейт, содержащий лист версий и адрес (логин) автора
Ну собстно и всё, клиенты проверяют, что новые блоки не перезаписывают ничего кроме листа версий на аппенд и чекают совпадение подписи (адрес автора == публичный ключ), реджектят остальное
Антон
Berkus
Маjко
Отличное название
Vladimir
Маjко
Vladimir
если возникли два блока на одной высоте с разными авторами
Vladimir
какой принять?
Антон
Серьёзно, как консенсус считать?
Маjко
Если второй автор спиздил твой ключ, то кто быстрее
Маjко
Но суть в том что твой ключ не должны спиздить
Vladimir
причем тут спиздил ключ?)
Маjко
От этого никакой блокчейн не защитит
Vladimir
ты предлагаешь неймы для крейтов в виде публичных ключей?
Маjко
Твой крейт подписан твоим ключом.
Как кто-то может его модифицировать кроме тебя?
Маjко
Vladimir
Маjко
Vladimir
"создании крейта заводим адрес, ассоциированный с именем крейта,"
Vladimir
как происходит ассоциация
Маjко
Назовем Proof of Crate
Vladimir
вот смотри, у тебя есть некий блок, зная который два разных автора захотели создать крейт с одним именем, вопрос в том как сеть должна это разрулить
Маjко
как происходит ассоциация
md5(crate_name), лол.
Ну можно упороться и генерить пару ключей для каждого крейта и вообще убрать понятие авторства.
У кого ключ есть — тот и может модицицировать крейт, а автор — просто поле в стейте
Vladimir
что дает md5(crate_name) ?
Как из пары ключей получить нейм крейта?
Маjко
Vladimir
ок
Маjко
Про мд5 шутка, если что
Vladimir
теперь исходный вопрос
пришло два блока на одной высоте, с
KV в стейте name -> addressно разными адрессами
Vladimir
как это разрулить
Маjко
Откуда пришло?
Vladimir
от других нод
Vladimir
тебе как ноде
Маjко
2 запроса одновременно на создание крейта, или что?
Vladimir
Условно да
Vladimir
Но тут нет запросов, если сеть децентрализованная
Маjко
Аналогично любому другому майнингу
Маjко
Кто быстрее
Маjко
Тут нет возможности разрешить конфликт
Vladimir
Ок, половине сети пришел один быстрее, половине второй
Vladimir
возник форк
Vladimir
где мне искать мои токены?
Маjко
И как решается?
Vladimir
форки это нормальная фаза жизни публичного блокчейна
Vladimir
Ну по высоте, выбирается форк с максимальной высотой
Vladimir
по этому и есть в обменниках лимит на "6 подтверждений блока"
Маjко
А если они на одинаковой высоте?)
Маjко
Откатится оно по тому что выберет 51% сети
Маjко
Тут так же
trfc
А если они на одинаковой высоте?)
Будет параллельно существовать две ветки, а майнеры продолжать майнить каждый свою. В конце концов, останется одна самая длинная
Vladimir
Я к тому, что с PoW тут понятно как разруливать, лимит в 6 блоков хватает, потому что ни у кого не должно хватить ресурсов чтоб посчитать 6 блоков за допустимое время.
В PoS нет привязки к вычислительной мощности, а значит и нет привязки ко времени
Маjко
Berkus
Маjко
Маjко
Ты не будешь один такой
Vladimir
Что значит количество данных ограничено размером репозитория?
Это не PoS
Vladimir
PoS означает что на каждый блок, я как майнер должен выделить N мегабайт.
Cat
(я мб пропустил) а не хотите сделать а-ля filecoin: используешь крейт — получаешь валюту
Vladimir
то что ты описываешь это торрент обычный, и там нет никаких консенсусов
Vladimir
Cat
(((
Маjко
https://exonum.com/doc/architecture/consensus/
Маjко
Вот кстати консенсус без PoW
big
Tuntz
error[E0277]: the trait bound `MyError<MyInner>: failure::Fail` is not satisfied
the trait `failure::Fail` is not implemented for `MyError<MyInner>`
= help: the following implementations were found:
<MyError<T> as failure::Fail>
Пытаюсь заюзать свою ошибку с дженерик-содержимым - компилятор посылает нафиг. ЧЯДНТ?
Vladimir
х)
Маjко
Маjко
Маjко
failure::Error на динамикдиспатче работает