Я новичок в блокчейне Ethereum и реализую это как потенциальное решение для децентрализованного приложения. В процессе поиска решения я столкнулся с проблемой, когда я хочу динамически управлять созданием/удалением узлов в существующей/функционирующей цепочке блоков.
Например: если у меня есть частная цепочка блоков, которая изначально была создана с 5 работающими и взаимодействующими узлами. У каждого узла есть файл static-nodes с информацией (enode) для пиринга друг с другом. Теперь, если я хочу загрузить один из узлов из сети блокчейна, я бы обновил статический узел, исключив нечетный узел из списка узлов и реплицировав его на каждом узле. Это потенциально выкинет удаленный узел из сети Blockchain.
Что, если я хочу управлять этим удалением узлов, не касаясь каждого из узлов (при условии, что узлы не в нашей способности реализовать изменения). Есть ли решение для динамического добавления/удаления узлов без внесения изменений в каждый узел? также без сброса данных Blockchain (без сброса генезис-блока).
Если у кого-то есть сомнения по моему вопросу, пожалуйста, напишите мне.
Любая помощь высоко ценится.
Спасибо.
Я бы порекомендовал добавить в заголовок блока ( types.Header
) новое поле с именем CustomerHash
, этот хэш будет генерироваться алгоритмом sha256 для данных клиента (имя + адрес + любая информация, которую вы хотите). У каждого клиента будет уникальный хэш.
Теперь, когда у вас есть хэши для всех ваших клиентов, вы должны разместить этот список клиентов в сети Swarm, чтобы он был общедоступным. Каждый узел будет загружать список один раз каждые 1000 блоков (или что-то в этом роде).
Чтобы быть уверенным, что этот список создается только вами (поскольку вы являетесь здесь центральным органом власти), вы должны включить механизм шифрования. Вы должны зашифровать список своим закрытым ключом, и каждый узел будет уверен, что это список, созданный вами. Таким образом, вы сделаете блокчейн пригодным для использования только вашими клиентами, потому что только они смогут добывать блок. Если незнакомец попытается поставить блок CustomerHash
, которого нет в этом списке, другие майнеры отклонят его блок как недействительный.
Результат: у вас есть общедоступный блокчейн, но его могут добывать только те, кто заплатил. И он будет доступен для всех, кто заинтересован в получении данных в сети.
Вот как я бы это реализовал, это прозрачный и понятный способ делать что-то, сохраняя при этом статус центральной власти.
Нулик
Нулик
PSY