Дневник разработчика Catapult



Аваторка Gimre - персонаж из аниме Странники (Planetes).

Gimre пишет:
Catapult сначала будет внедрён в Mijin, после этого и рабочая сеть NEM перейдет на него.
Catapult будет готов уже довольно скоро. Сохраняйте спокойствие Wink
https://bitcointalk.org/index.php?topic=654845.msg15671950#msg15671950, 22 июля 2016

Gimre пишет:
Наш глобальный план таков:
  • получить работающий приватный блокчейн, базирующийся на Catapult - мы находимся в процессе работы над этим
  • как только мы получим работающий приватный блокчейн, мы добавим в него всё необходимое для публичного блокчейна
  • релиз публичного блокчейна NEM, базирующегося на Catapult

Рим не сразу строился.
https://forum.nem.io/t/status-of-project-catapult/2771/3, 26 августа 2016


Gimre пишет:
Итак, мы подумали, а не сделать ли небольшой тред, связанный с Catapult.

Не ждите от нас постоянных и частых обновлений, здесь будут появляться только некоторые случайные сообщения.

27 июля 2016.

Недавно мы перешли на версию 75 на машине, где делаются сборки. На старой версии мы сделали 2493 сборки.

Текущее количество проведённых тестов 2750 (более детальную статистику дадим позже).

Некоторые из вас возможно уже видели изображение, ссылку на которое мы давали как-то ранее, показывающее граф зависимостей Catapult https://imgur.com/rDzucbk.

Конец связи.


23 августа 2016.

Catapult. За последние 20 дней, с 3 по 23 августа:
  • проведено 307 тестов (тест = изменения и добавления в коде, сборка, проверка работоспособности), 307/20 ≈ 15 тестов в день
  • написано строк исходного кода 16068-14041=2027, 2027/20 ≈ 100 строк в день
  • написано строк тестового кода 31180-26821=4359, 4359/20 ≈ 217 строк в день


25 сентября 2016.
Mijin на ядре Catapult в тестовой сети показывает производительность 1300 tps, прокачивая 230 kB/s. Против 100 tps в текущей реализации.


14 октября 2016.
Gimre пишет:
Мы потратили определённое время на исследование вопроса как следует реализовать API сервер. Наше решение заключается в том, что API сервер будет работать поверх node.js. Мы приступили к работе над API сервером, подробности будут скоро.

Но почему node.js? Почему не Ruby или Go или не ваша любимая платформа например? Дело в том, что Lightwallet и Nnowallet реализованы на JS, таким образом мы сможем воспользоваться уже существующим кодом.
https://forum.nem.io/t/stories-from-the-dev-front-diary/2641


4 ноября 2016.
Gimre пишет:
За прошедшее время было собрано "несколько" сот сборок и проведено более 1000 различных тестов.

Наши планы немного изменились, и в последние 3+ недель мы работали на C++ частью API сервера.
https://forum.nem.io/t/stories-from-the-dev-front-diary/2641


16 ноября 2016.
Catapult была протестирована на приватном блокчейне на скорости 3000 tps.


24 ноября 2016.
Gimre пишет:
Архитектура Catapult немного изменилась, и теперь включает в себя три элемента:
  • P2P узлы - являются основой для блокчейна.
  • API узлы - подобны P2P узлам, но сохраняют другие данные, и не будут принимать участие в создании блокчейна. Они сохраняют данные для использования их REST сервером.
  • REST сервер - обрабатывает клиентские запросы (JSON API) перед отправкой их на API узлы.

Мы вычленили REST часть из API / P2P узлов и собираемся начать тестирование с использованием REST сервера.
https://forum.nem.io/t/stories-from-the-dev-front-diary/2641, 24 ноября 2016


6 декабря 2016.
Gimre пишет:
Мы сейчас работаем над системой в целом (P2P узлы, API узлы, REST сервер). Мы начали тестировать её. Очевидно, что есть моменты, нуждающиеся в отладке, но система заработала сразу без особых проблем. Значит предыдущие тесты были проведены не впустую. (Конечно, нам нужно проводить ещё больше испытаний, но когда всё начинает работать сразу, испытываешь непередаваемые ощущения).

Мы также начали добавлять поддержку websocket на REST сервере, так что у нас будет возможность уже использовать Nanowallet.
https://forum.nem.io/t/stories-from-the-dev-front-diary/2641, 6 декабря 2016


17 декабря 2016.

Скриншот текущего тестирования Mijin/Catapult:


Штамп времени указан в миллисекундах, прошедших с определённого момента времени (с момента появления генезис блока сети). Среднее время блоктайма сети равно 15 секунд. На приведённом скриншоте блоктайм колеблется в пределах 10...18 секунд, возможный размах блоктайма 1...30 секунд.

Для примера, рассмотрим промежуток времени между блоками 11559 и 11560. Его продолжительность составила 22512009059 - 22511991991 мс = 17,068 с, и за это время было выполнено 59138 транзакций. Таким образом, на этом промежутке времени достигнута пропускная способность сети 59138 / 17,068 = 3464 tps.
https://forum.nem.io/t/stories-from-the-dev-front-diary/2641/26
http://getcoin.today/testovaya-set-catapult-pokazala-3000-txs/

В "старой" (текущей) архитектуре Mijin/Catapult имеет [предельную] производительность 100 tps. В новой архитектуре Mijin/Catapult, на том же оборудовании узлов, производительность увеличилась более чем в 30 раз. Следовательно, можно ожидать, что производительность NEM/Catapult будет доведена не менее чем до 60 tps. Текущая производительность сети NEM ограничена величиной 2 tps.


20 декабря 2016.

Mijin/Catapult показала пиковую производительность 4142 tps при средней более 3000 tps.
Оборудование для тестовой сети, предоставленное компанией Sacura:
8-ядерный процессор с 32 GB RAM - 3 узла,
12-ядерный процессор со 128 GB RAM - 2 узла.
http://mijin.io/ja/766.html
https://www.sakura.ad.jp/press/2016/1220_blockchain/
http://jp.techcrunch.com/2016/12/20/mijins-next-generation-core-catapult-records-4142-tps/
https://medium.com/...


Промежуток между блоками 659 и 660 имеет продолжительность 22346401833 - 22346390870 мс = 10,963 с, за это время выполнено 45000 транзакций. 45000 / 10,963 = 4142 tps.

Эксперимент, данные которого приведены, проводился в течение часа на трёх узлах, географически расположенных в Токио и Исикари. В ходе эксперимента узлы в случайные моменты времени отключались/включались, имитируя падения узлов. Продолжительность отключения доходила до 6 минут, отключалось до двух узлов одновременно. В сеть непрерывно посылались спам-транзакции от 10,8 миллионов аккаунтов. В течение всего часа Mijin сеть успешно справлялась с экстремальной нагрузкой.



10 января 2017.

Gimre пишет:
Один из нас (не я ^^) недавно был занят решением накопившихся задач


27 января 2017.
Gimre пишет:
На этой неделе мы начали работать над модульной (pluggable) инфраструктурой и поддержкой пространства имён.


10 февраля 2017.
Gimre пишет:
Каких-то особенных новостей у меня для вас нет, мы проводили большие структурные изменения, связанные с модульной архитектурой. BloodyRookie завершил тяжёлую работу по реализации памяти транзакций API узла. Jaguar совместно с BR исправили некоторые проблемы, выявленные в стресс-тестах (если я правильно понял, то все проблемы были порождены именно тестами, а не кодом). Первый модуль (трансферные транзакции) заработал.

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


9 марта 2017.
Gimre пишет:
Мы добавили namespaces, и начинаем их тестирование; мы надеемся, что сможем успешно завершить эти тесты, и тогда мы начнём работать над mosaics.


6 апреля 2017.
Gimre пишет:
Мы уже добавили базовую поддержку mosaics, хотя отчислений (levies) пока ещё нет. В отношении mosaics произошли некоторые интересные изменения, хотя, скорее всего, они будут невидимы конечному пользователю.


23 мая 2017.
Gimre пишет:
У нас нет ничего интересного, чем можно было бы поделиться; мы пытались сократить технический долг, работая над накопившимися задачами, что ясно видно на графике выгорания


Jaguar внёс огромный вклад в то, как работают валидаторы и наблюдатели (чтобы было понятно, это исполнители транзакций).

Мы постепенно начинаем работать с мультиподписными транзакциями, и эта часть работы будет немного сложнее (из-за запланированных изменений и из-за изменений в архитектуре), мы постараемся поделиться некоторыми деталями в будущем.
Jeff McDonald: разработка Catapult выходит на финальную стадию

jabo38 пишет:
Разработка Catapult близится к завершению

Разработчики работают над Catapult уже в течение 1,5 лет. Базовая e2e система завершена. Теперь они работают над поддержкой кошелька и добавлением дополнительных функций. Жаль, что никто не может видеть их тяжёлую работу, но я свидетельствую, что её много.


Catapult и банки

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

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

Поскольку это напоминает Ripple 2.0, мы счастливы, что Catapult предложит много возможностей, которых нет у Ripple. Посмотрим, будет ли этого достаточно для того, чтобы банки переключились на Catapult.


Mijin и NEM

Приватные блокчейны Mijin возможно будут привязаны к основному публичному блокчейну NEM или будут иметь возможности перекрёстных транзакций через основной блокчейн, поэтому, хотя они не используют XEM напрямую для транзакционных комиссий в своих блокчейнах, фактически они способствуют созданию и функционированию большей экосистемы на основе NEM.

Я думаю, что банки не будут использовать публичный блокчейн NEM в качестве своего основного блокчейна, но надеюсь, что он предложит некоторые дополнительные возможности, и через него может быть перенаправлена некоторая часть бизнеса или транзакции. Непосредственное использование NEM банками это было бы исключением, а не правилом, хотя бы потому что одним из самых больших преимуществ приватной сети является то, что не нужно платить гонорары майнерам, поддерживающим сеть.


Децентрализованное хранилище, децентрализованные вычислительные мощности на блокчейне NEM

Всё это конечно можно так или иначе реализовать, задействуя блокчейн. Но есть ли в этом смысл?

Децентрализованная вычислительная мощность или децентрализованное хранилище просто не являются жизнеспособными экономическими продуктами. Децентрализованный продукт вы никогда не сможете получить столь же надежным, как то, что вы получите от Amazon или Dropbox. У Amazon и Dropbox уже есть уровни избыточности и защиты, а для децентрализованной сети - с одинаковым уровнем надежности, у нее будет больше избыточности, чем у централизованных игроков. Таким образом, пользователь либо в конечном итоге заплатит ту же сумму за худший продукт с децентрализацией или заплатит намного больше за продукт, который так же стабилен. AirBnB и Uber смогли решить проблему с некоторыми пробелами в своей модели. Но распределенная вычислительная мощность и распределенное хранилище уже оптимизированы для максимальной эффективности в централизованном мире. Будет очень сложно найти пробелы в модели Dropbox или Amazon.

Теперь посмотрите на децентрализованную модель, такую ​​как блокчейн. Это ужасно неэффективно по сравнению с централизованным решением базы данных, но то, что он предлагает - это экстремальный уровень безопасности. Для хранения денег люди будут готовы иметь дело с децентрализованными недостатками для повышения безопасности, но для хранения семейных видеороликов или работы модели 3D они не нуждаются в высоком уровне безопасности, они хотят иметь самый дешевый, быстрый и самый простой вариант. Amazon и Dropbox знают это и предложили услугу, которая уже точно настроена и оптимизирована для этого. У Amazon и Dropbox есть бесплатные уровни для более мелких пользователей, а вот Golem или Storj будет сложно функционировать бесплатно, легко и надежно.

Если децентрализованное хранилище или вычислительная мощность станут жизнеспособны в децентрализованном варианте, вы увидите, что Dropbox и Amazon перейдут на этот рынок, так же, как энергетические компании сегодня предлагают людям с солнечными батареями несколько пенни для направления электричества в их сеть. Но я сомневаюсь, что мы такое увидим, потому что, как мне кажется, в этом нет смысла.


Catapult и стоимость токена XEM

Catapult это новая архитектура и новый код как для приватных блокчейнов, так и для публичной сети. Апгрейд основной сети принесёт много новых функций, со всеми вытекающими отсюда последствиями.

https://forum.nem.io/t/catapult-questions-big-picture/3886/6, 1 июля 2017
1 Like
Канал Gimre в Twitter

17 августа 2017 вслед за Lon Wong и Gimre завел свой канал в Twitter
https://twitter.com/NCOSIGIMCITYNRE
(в названии использованы первые 15 символов его NEM адреса, см. далее)

Прикреплённым твитом
https://twitter.com/NCOSIGIMCITYNRE/status/898128720942288896
он заверяет подлинность канала.

В указанной транзакции с txId
Код:
07182df936de4d560ff8bf1f9979480f2fc604e065a4ca74ba4c402619317c81

содержится сообщение
Код:
4e545903d4bcd909ae8d9777d40bdf00f1710ad90c49fd749291c6150bb206bce30f4194000068747470733a2f2f747769747465722e636f6d2f4e434f534947494d434954594e5245

подтверждающее что этот Twitter аккаунт действительно его.

Отправитель транзакции имеет NEM адрес NCOSIGIMCITYNRE7XUR77OREOYFLPAILCNUYLTPD
- один из подписантов этого мультиаккаунта Gimre
http://free.userboard.net/t208-topic#325

Само сообщение содержит следующую информацию:
Код:
4e545903
- Apostille префикс

Код:
d4bcd909ae8d9777d40bdf00f1710ad90c49fd749291c6150bb206bce30f4194
- SHA-256 текстовой строки https://twitter.com/NCOSIGIMCITYNRE

Код:
0000
- разделитель

Код:
68747470733a2f2f747769747465722e636f6d2f4e434f534947494d434954594e5245
- текстовая строка https://twitter.com/NCOSIGIMCITYNRE в hex кодировке
1 Like
Начало тестирования Catapult
https://forum.nem.io/t/stories-from-the-dev-front-memoir/2641

25 июня 2017.
Gimre пишет:
У нас есть некоторая завершённая функциональность, и мы подготовили развёртывание внутренней тестовой сети Catapult (будет доступна очень ограниченной группе людей). Прежде чем мы сможем показать это более широкой аудитории, нам нужна поддержка протокола WebSocket (чтобы не обновлять кошелёк каждый раз). Это не так просто, как кажется, и у нас пока мало конкурирующих идей, как это сделать.

9 августа 2017.
Gimre пишет:
Мы получили базовую поддержку протокола WebSocket. Мы используем ZMQ для передачи данных с сервера API на конечную точку ZMQ, где слушает REST сервер. На этой неделе мы сможем провести некоторые тесты веб-узлов, поддерживающих кошелёк.

Одновременно в структуре софта произошли значительные изменения, благодаря чему мы сможем (в будущем) менять роль серверов P2P и API, просто переключая некоторые опции, которые включат/выключат определённые расширения.

31 августа 2017.
Красивая визуализация 20 месяцев разработки Catapult, сжатая в 2 минуты:
https://youtu.be/CAKJVWDI4s4

Friedrich Hayek пишет:
Это визуализация нашего репозитория. Она была сделана с помощью http://gource.io. Визуализация показывает, когда и как разные части кода изменялись.

Музыка: Bulimic Orgy & Mile - N1 http://dustedwax.org/dwk126.html
http://ia800304.us.archive.org/35/items/DWK126/Bulimic_Orgy_and_Mile_-_07_-_N1.mp3

1 сентября 2017.
Gimre пишет:
Похоже, нам удалось завершить сбор данных о неудачных транзакциях (это то, что нам было нужно, поскольку обработка транзакций в Catapult построена по-другому, и там гораздо больше асинхронности). Следующая вещь в нашем списке - так называемый “cosignatures collector” - это будет частью API сервера. Больше об этом, вероятно, будет скоро в отдельном посте.

Источник: http://free.userboard.net/t176-topic
1 Like