Перейти к публикации
Neblic

Как работает децентрализованная база данных

Рекомендованные сообщения

(изменено)

Доброе утро, уже 2 неделю не могу найти информацию о синхронизации блоков.

 

Bitcoin, EOS: Вот как у них происходит синхронизация? Я изначально думал что есть центральный комп где находятся все блоки и когда новый клиент запускает bitcoin-core оттуда скачиваются данные и потом периодически отправляется запрос на этот основной сервер для получения новых блоков, но в интернете опровергли эту информацию, а и в исходниках bitcoin-core не видел ссылки.

 

Есть ли ссылки на статьи где подробнее описана как все это происходит, хочу написать тестовый проект на технологии blockchain проблема только в этом!

У Stellar вообще "PostgreSQL" но и у них если запускаешь ноду всю информацию можно получить.

 

Ребята не игнорируйте эту тему, очень хочу в ней разобраться. (У меня проблема осталось только в этом)

Изменено пользователем Neblic

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это я читал, bitcoin использует levelDB. Я хочу попробовать на MongoDB или PostgreSQL

Хочу только одно понять, как они делают следующее: Синхронизация одних и тех же блоков на разных компах, откуда они скачиваются.

Должен быть же какой нибудь источник.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Neblic 

качаете любой исходник с гитхаба (распределённого реестра)

создаёте СВОЙ генезис блок

меняете под СВОИ потребности код.

запускаете...

смотрите что да как.

устанавливаете СВОЮ сборку на другой комп

запускаете....

смотрите, что да как.

Вин!

/не получилось/ ...копаетесь в коде до тех пор, пока не получится, лезете на битталк и турзучите местное население /англцк. обязательно/

Изменено пользователем mass

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
38 minutes ago, Neblic said:

Хочу только одно понять, как они делают следующее: Синхронизация одних и тех же блоков на разных компах, откуда они скачиваются.

соединяемся с любым компом, если у него блоки старше, то скачиваем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Первый и самый быстрый способ-нода смотрит адреса нод, которые были использованы при предыдущей синхронизации.

Второй способ-если предыдущей синхронизации не было, она лезет на определённые ДНС сервера, которые хранят айпи нескольких самых стабильных нод:

  • seed.bitcoin.sipa.be
  • dnsseed.bluematt.me
  • dnsseed.bitcoin.dashjr.org
  • seed.bitcoinstats.com
  • seed.bitcoin.jonasschnelli.ch
  • seed.btc.petertodd.org

Третий способ-IRC сервер, ноды получают список свежих нод в определённых IRC-каналах.

Там ещё есть куча механизмов распространения списка актуальных нод, которые дополняют и дублируют друг друга, более подробно здесь:

https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery

 

P.S. Не советую соваться в разработку чего-либо без базовых навыков поиска информации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как он находит их? ( хотел использовать базу MongoDB или  PostgreSQL

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, Knot сказал:

Первый и самый быстрый способ-нода смотрит адреса нод, которые были использованы при предыдущей синхронизации.

Второй способ-если предыдущей синхронизации не было, она лезет на определённые ДНС сервера, которые хранят айпи нескольких самых стабильных нод:

  • seed.bitcoin.sipa.be
  • dnsseed.bluematt.me
  • dnsseed.bitcoin.dashjr.org
  • seed.bitcoinstats.com
  • seed.bitcoin.jonasschnelli.ch
  • seed.btc.petertodd.org

Третий способ-IRC сервер, ноды получают список свежих нод в определённых IRC-каналах.

Там ещё есть куча механизмов распространения списка актуальных нод, которые дополняют и дублируют друг друга, более подробно здесь:

https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery

 

P.S. Не советую соваться в разработку чего-либо без базовых навыков поиска информации.

 

C++ я знаю, ковырялся в коде Bitcoin, Tron и в коде EOS не нашел ссылки.

 

Bitcoin: и еще половина криптовалют пользуются levelDB от разработчиков Google (Хотя разработчики bitcoin модифицировали levelDB немного).

EOS: у них база которую если я не ошибаюсь сами разработали.

 

Просто я недавно ковырялся в коде Stellar и узнал что они используют "PostgreSQL" и возможность подключения еще SQLite. (После этого появились куча вопросов как же все таки это можно реализовать).

 

Хочу написать тестовый проект на языке Python и планировал использовать первоначально базу MongoDB.

 

Далее нашел "BigChainDB" - но она не совсем децентрализована.

Изменено пользователем Neblic

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Незнаю стоит ли использовать MongoDB Atlas или Google Cloud. (Хотя-бы для начальных разработок).

Очень хочу научиться сделать чтобы клиенты могли подключаться к разным нодам моего проекта и получать одну и ту информацию, без центрального хранилища.

Есть еще RocksDB улучшенная версия levelDB (но особа я ее не изучал)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы немного перепутали, нет никакой децентрализации LevelDB или PostgreSQL (по крайней мере в Bitcoin-подобных системах). Они используются исключительно для локального хранения информации, полученной путем индексации данных блокчейна, который в свою очередь уже загружается посредством p2p сети. Т.е. клиенты обмениваются блоками с данными, извлекают из них транзакции и записывают в локальную базу, чтобы было быстро и удобно работать. В случае повреждения или каких-либо проблема с базой у Вас есть возможность сделать переиндексацию блокчейна, хранящегося на диске, либо скачать его заново.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×