Решил еще раз чиркнуть про делегатов, ноды. Как устроен блокчейн и кто такие ноды. Постараюсь выдержать уровень детской книжки :)
То, что голос работает на блокчейне, только аналфабеты (слово то какое) еще не слышали. Но многие ли понимают, что это? Блокчейн по сути это протокол всего, что происходит на голосе.
Вася написал пост,
Петя проголосовал за Васю
Коля поставил флаг Васе
Петя перевел Жене 100.000 GBG с заметкой "Заработал"
Вася перевел bittrex 20000.000 GOLOS с заметкой "х3оч2умн0г0д4е1нег"
Все, что мы делаем на голосе, все записывается в блокчейн, ежесекундно сразу много всего.
Если бы все писалось в один файл, то он был бы очень большим, на данный момент это уже 7 Гигабайт. Его приходилось бы каждый раз открывать, вносить новую запись, записывать на диск обратно. Неудобно и технически трудно так работать, да и скорость была бы медленная.
Поэтому уже давно придумали как обойти эту проблему. Что бы облегчить компьютерам задачу, и ускорить процесс записи протокола, разработчики придумали записывать всё в небольшие файлы - блоки. Записали к примеру десяток операций в такой файл, файл сохранили на диске, закрыли и начали новый файл. Быстро и просто. Этому способу уже несколько десятков лет, потому блокчейн в этом отношении не такое уж новшество. Изюминка блокчейна в другом, но об этом я расскажу позже.
Все замечательно, у нас получается цепочка таких блоков, любой может прочитать все блоки и узнать, кому, сколько и кто вам переводил монеток. Теперь даже если сервера golos-а сломаются, остановятся, можно будет прочитать протокол, всю цепочку блоков, проиграть всю последовательность действий пользователей и восстановить к примеру ваш баланс, все ваши апвоты, посты и все в нужной последовательности.
Что бы было понятнее объясню на примере бухгалтерии )) Я приводил эту аналогию в телеграме.
Каждый день бухгалтерия крупного предприятия выполняет много операций с деньгами. Оплачиваются расходные материалы, платится зарплата, поступают средства за продукцию, платятся налоги. И так далее. Делается много так называемых проводок. Дело понятное дело ответственное и требует строгого учета, потому все проводки записываются в гроссбух. Сейчас конечно это компьютер, а раньше это была большая книга (буквально с немецкого gross buch), где весь приход и расход записывался строка за строкой. В любой момент могут прийти налоговики и все проверить.
Проводка | Сумма |
---|---|
Молоко | -200 рублей |
Сахар | -100 рублей |
Выручка | 1000 рублей |
Допустим нам надо узнать, сколько предприятие выручило средств с продажи за месяц. Очевидно надо просто все сложить и в итоге получим выручку за месяц, 700 рублей. А представьте, какой это адский труд суммировать все проводки огромного предприятия. Понадобится много времени.
Что бы ускорить подсчеты, хитрый бухгалтер, сделает дополнительную колонку в своем гроссбухе, в которой будет записывать сумму всех проводок до сих пор.
Проводка | Сумма | Общая сумма |
---|---|---|
Молоко | -200 рублей | -200 рублей |
Сахар | -100 рублей | -300 рублей |
Выручка | 1000 рублей | 700 рублей |
При добавлении новой проводки, он прибавит сумму из проводки к числу из предыдущей строки. Это сделать намного проще, и времени требует немного. Зато в конце месяца он может мгновенно сказать сумму выручки.
Вот так же работает и так называемая нода голоса - специальная программа для ведения протокола. Ежесекундно нода получает от вебсайта, от ботов много операций, вроде "переведи 100 GBG, апвот Коле" и так далее. Нода накапливает эти операции в течении 3-х секунд и раз в три секунды записывает блок на диск с этими операциями. 28800 блока в сутки.
Заодно нода отслеживает все операции и ведет в уме счета (балансы) каждого пользователя на голосе. Перевёл Коля Васе 300 GBG, нода в своем гроссбухе прибавит к балансу Васи 300 GBG. Переведет Вася Биттрексу 120 GBG, нода отнимет от васиного баланса 120 GBG и прибавит Биттреку 120 GBG. И так во всем. Будь то GBG, GOLOS, репутация пользователя, сумма голосов за пост, последняя редакция поста или комментария.
А уже вебсайты, https://goldvoice.club или https://golos.id одним запросом к ноде могут узнать сколько у Васи GBG. Им не надо просматривать самим все блоки или вести баланс Васи, Коли и Биттрекса, за них делает все нода.
Если нода вдруг "упадет" (как и любая программа, нода тоже подвержена ошибкам), ноду надо будет по новой перезапустить, и при новом запуске нода начинает читать эти блоки начиная с самого первого и последовательно проигрывать у себя "в уме" все операции и тем самым восстанавливает текущее состояние. Этот процесс называют синхронизацией. Блокчейн это как запись шахматной партии и нода проигрывает всю партию у себя на виртуальной доске, что бы получить текущее состояние партии.
Таким образом.
Блокчейн GOLOS - по сути блоки в которых последовательно записаны все действия пользователей сети Golos
Нода - программа для записи протокола и ведения текущего состояния всех пользователей
Потом расскажу, почему нода называется нодой и зачем нужны делегаты.
Про бухгалтера вообще четкая аналогия, проще, по моему, уже некуда.
Вопрос:
Почему нельзя, например каждый гигабайт, или 100 метров ставить какую то закладку меж блоками? (блок - итоговая сумма) Чтоб синхронизации в будущем не требовали "проигрыша в уме всей партии" от начала, а использовалась последняя общепризнанная истинной контрольная точка.
Ладно голос - 8 гиг пока...
Сколько же по времени и на каких монстрах стимитовские ноды ресинхронизируются...
Да, я уже тоже думал об этом. Кстати так планируют сделать в EOS, и кажется в bitshares. Делать периодически снэпшоты актуального состояния. Это бы убыстрило синхронизацию нод в разы. Сейчас мало кого интересуют, кому перевел Вася год назад 10 голосов. Бывают конечно археологи, но для них можно поднять ноду с полной историей. Для обычных пользователей достаточно наверное квартала или полугодия, для делегатов же конечно интересен только текущий момент. Это увеличило бы стабильность сети.
Это же очевидные вещи даже отдаленным от глубины глубин любопытным
И кто-то за это в биткоинах зарплату получтл((
А мне теперь ищи биток на сервер, который ихнюю лажу сможет успевать считать и ресинхронизировать, людей потом уговаривай голосовать за меня, в кучи кала местного вникай - и очевидные вещи доказывай... Сомнительный путь к успеху)))
Может действительно в шары уткнуться основательнее, да и вообще тщательнее оглядеться по сторонам?
Я тут наткнулся на инфу о битке, что мол одна транзакция в блокчейне биткоина, хавает электроэнергии как среднестатистический дом в сша за 1,5 суток! А весь блокчейн в сумме, поболее чем многие страны третьего мира за тот же промежуток времени...
плюс то, что он не выгоден на мелкие покупки(считай лишь инвестиция с уже высчитанной датой финиша затеи) наводит меня на впечатления, что рано или поздно народ одумается и ... (я пока даже фантазировать не осмеливаюсь, что тогда...)
Какие "яйца" и в чьей "корзине" окажутся небритыми и смогут принести плюс - стоит многим биткоин евангелистам подумать заранее:))
Георгий, будьте добры, добавьте в конце этой статьи ссылку на её продолжение.
@ropox А вот мне всегда было интересно, а что будет теоритически если все ноды упадут, и некому будет записать блок?
Да, будет маленькая катастрофа, если все ноды разом упадут. Но не так страшно как может показаться. Можно пофиксить ноды и запустить сеть с фиксом. Есть еще копия блокчена в виде файла у разрабов кажется на диске, есть у @arcange. В худшем случае придется откатывать на тот момент, когда этот файл последний раз сохранялся и запускать всю сеть по новой. Часто ли они бэкапят - не знаю.
Но то есть это не смертельно? Грубо говоря, если на всей планете на день отключится электричество, а потом заработает, то блокчейн будет жить и дальше, и у всех денежки останутся в порядке?
Это не должно быть проблемой. Все последние операции, в которых нет еще консенсуса, могут быть потеряны, но и остальных блоков будут неизменными.
Гарантии нет конечно. Надо у команды голоса спросить, как часто они делают бэкап. Если вообще.
Я в общем про блокчейны, не только про Голос
Очень доходчиво объяснил. У меня есть идея, сделать самое понятное на свете объяснение принципов блокчейна. Собираю по крупицам идей, ваша идея с шахматной доской - это что-то новое!)
https://golos.id/ru--kran/@leonshell/krivtomaniya
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
yefet, t3ran13, ianboil, strecoza, mishka, ukrainian, damm, chiliec, gildar, polyideic, max-max, niiu, eduard, lelya, annaklub, lumia, larissa, dreamer, dimarss, forbon21, vadbars, vasilisapor2, nefer, tom123, guepetto, chika25, andreyprosto, semasping, svinsent, romapush, tnam0rken, arystarch, maxiandr, exan, arturio777, boltyn, vika-teplo, vpervye1, nims55, felicita, optimist, amelina.elena, dmitrijv, wrong, brika, kertar, lengalenga, lokkie, dim447, ifingramota, varja, vealis, zhenek, magformers, amalinavia, kito-boy, gogirotsky, astramar, snooze, kash47, alexko, funt33, moneygroup
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:
Вы получили 43.50 % голосов от @Booster. Работает на @Coinbank
You have received 43.50 % vote from @Booster. Powered by @Coinbank
Нанял корректора? )
Отличный текст, продолжай обязательно. Поддержим, чем можем.
Да нет, сам стараюсь русскому языку учиться :)
захомячу полезняшу, спасибо, бро.
https://golos.id/ru--kran/@leonshell/krivtomaniya
А если операций не было в теч 3 сек, то блок пустой записывается?
Вот кстати самый первый блок, пустой. В начале было много пустых блоков, так как не так много пользователей было, да и сайт наверное еще не работал
http://ropox.tools/steemjs/api/database_api/get_block?blockchain=GOLOS&blockNum=1
Познавательно, я всегда полагал, что блоки в блокчейне не запечатываются пока данными не заполнятся.
Да. В исходном коде даже есть константы, определяющие число блоков за день и год и используются в расчетах, к примеру выплат вознаграждения. То-есть расчет на то, что блоки штампуются регулярно. Хотя да, избыточно. Но делегатам же надо работать ) Иначе ничего не заработают.
Да, может и пустой записаться. Но это редкость.
Очень просто, понятно и интересно! Спасибо! Буду ждать продолжения
@ropox, мы всё ждём главного. Где отчёт про Путь Паломника? :) С картинками, фоточками и рассказами очевидца.
Лень Матушка. Да и не знаю, что написать честно говоря. Может и правду перепечатаю поток сознания из телеграма. Но как то некрасиво получится. Копипаста ))
Что значит "Не знаю, что написать"? :) Ты же пару недель вышагивал по испанской земле, общался, любовался видами, набирался эмоций и впечатлений. Выкладывай теперь.
Это же не Французкий Путь, это Виа де ла Плата. Там народу я за все время человек 20 видел. Тишина и спокойствие. Я же не за впечатлениями там шел, а отдохнуть от людей.))
Постараюсь написать что нибудь.
@ropox, в телеге у тебя превосходный путевой очерк-фотоотчет получился, в ТГ мало кто смотрит, так что надо записать в блокчейн как минимум
Осталось понять, почему это не выложено в Вики Голоса)
Дайте Гороху сначала заработать на кураторских. Потом выложим в Вики. А там, глядишь, еще и баунти получит. )
я примерно так и представляла себе это. Но вот про ноду интересно узнать. Зачем да она нужна делегатам?
Очень круто написано! Легко и понятно.
пропустили слово одно:
Спасибо