Предисловие


Вы наверно помните прошлую статью, в которой я разрабатывал централизованную криптовалюту. Идея была, как Вы знаете, плохой. Я решил перезапустить линейку этих туториалов, но уже более менее нормальной, чем было в прошлые разы. В этой линейке постараемся «пережевать» все сказанное. Поэтому, если Вы видели прошлую статью, Вы здесь можете увидеть что-нибудь, что было и в прошлой статьи.

Что происходило во время двух месяцев радиомолчания
  1. Улетал в другую страну отдохнуть.
  2. Читал во время отдыха комментарии которые пишут.
  3. Ждал выход новой версии одной из библиотек (P2P-библиотеки для PHP, а она полудецентрализованная потому-что Вам будет насколько я понимаю лень открывать порты).
  4. Занимался разработкой материалов к этой статье.
  5. Прибывшим домой, старался всем отвечать.
  6. И конечно же — ничего не делал :).


Надеюсь на то, что хотя бы эту линейку не заброшу.

Списки статей


  1. Как я писал полудецентрализованную криптовалюту на PHP. (Часть 1 — Сбор библиотек)
  2. Как я писал полудецентрализованную криптовалюту на PHP. (Часть 2 — Разработка)

Сравниваем


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

Во-вторых: В отличии от централизованных монет, в децентрализованной БД кошельков храниться не будут. В связи с чем, любой, кто на руках имеет баланс на счету, может часть сжечь, даже ошибившись в одной буковке в адресе кошелька.

В-третьих: В отличии от децентрализованных монет, в централизованной любой фрод может стереть всем баланс. А никто этого не хочет.

Начинаем!


Прежде чем начнем искать библиотеки, сразу скажу следующее:

  • Писать буду под консольную PHP 7.4
  • Composer — годная штука. Использовать ее я не забываю.

Поиск библиотек


P2P. В криптовалютах Peer-to-Peer используется для того, чтобы сеть была независима от кого либо, чтобы ни власть, ни прочие силовые структуры не смогли самостоятельно контролировать учет денежных единиц, никто не смог переписать блокчейн. Плюсы у данного метода в том, что если бы криптовалюта была централизованной (т.е что то вроде API на простом веб-сервере), никто не гарантировал бы сохранность блокчейна и неприкосновенность со стороны создателя. Вооружимся простой библиотекой, BPN называется, она же Bit Points Network. Хоть она является полудецентрализованной и требует наличие трекера, децентрализованной по праву считаться может. Ссылка.

Blockchain. Одна из важных библиотек в нашем проекте. Именно на блокчейне будет строиться клик
По поводу установки этих пакетов.
Меня спрашивали, зачем я отложил эти библиотеки в другую директорию. Причина проста — одна библиотека не совместима с Composer, другая вообще без него, и этих библиотек даже на Packagist нету.


BIP39. Мы хотим восстановить кошелек где угодно, со всех концов мира. Но не знаем как… Благодаря стандарту BIP39 можно восстановить кошелек. А вот и URL — click
BIP44. Вдруг нам хочется создать несколько кошельков имея только одну SEED-фразу самого первого кошелька. Об этом стоит подумать. Однако, в том же Гитхабе можно найти библиотеку, реализовывающую на PHP этот стандарт. Клик.

Вот список необходимых библиотек. Первые две кинул в одну директорию, последние две уже установил через Composer.

Подводим итоги


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

Децентрализованно, без контроля властей, свободным для всех. Примерно через несколько часов я опубликую вторую часть, где будем писать уже клиент, настроим трекер. Всем удачи! Ещё увидимся.