среда, 23 октября 2019 г.

Всё, что нужно знать о распределенной обработке данных

Наткнулся на статью со смелым названием Distributed Data Processing 101 – The Only Guide You’ll Ever Need (ссылка). И знаете, автор не подкачал. Кратко пробежался по основным уровням обработки (сбор, хранение, обработка, безопасность, визуализация). И чуть-чуть об основных архитектурах - Каппа и Лямбда. Вполне себе неплохая отправная точка для новичка в теме.

И вообще, на 8bitmen.com много интересных статей об ИТ-архитектуре банков и др продвинутых в этом плане организаций

Смарт-контракты с нуля

Как научиться писать смарт-контракты на Solidity, не имея вообще никакого представления о предмете?

Начать можно с онлайн-компилятора, который называется Remix (remix.ethereum.org). Уроков по написанию контрактов на Solidity в этом компиляторе полно в интернете. Проблема только в том, что многие из них написаны для старой версии Remix (а иногда для старой версии Solidity). Руководство, использующее новую версию, можно найти здесь.

Документация по языку Solidity - по адресу solidity.readthedocs.io, введение с примерами самых простых контрактов - здесь.


воскресенье, 13 октября 2019 г.

Прямо как я

Учиться чему-то и вести онлайн-дневник о процессе обучения - хорошая идея, так делаю не только я. Вот пост некой Фло из Нью-Йорка Live notetaking as I learn about distributed computing
(ссылка). Человек разработал для себя некий план (плюс список литературы), который должен помочь в изучении распределённых вычислений. Есть, что позаимствовать.

Несколько хороших статей об блокчейне

Сравнение Ethereum и Bitcoin на blockgeeks.com - статья Bitcoin VS Ethereum: [The Ultimate Step-by-Step Comparison Guide] (ссылка). Много интересных деталей:

  1. Основные даты в истории развития этих двух криптовалют
  2. Краткое описание proof-of-stake (протокол Casper). Майнеры делают некоторую ставку (из своих средств) при попытке сформировать новый блок. Если именно этот блок будет включён в блокчейн - майнер получит награду, пропорционально своей ставке. Если же будет замечена какая-то мошенническая активность с его стороны- его монеты будут списаны
  3. Пользователь в своей транзакции может сам указывать размер награды майнеру. Чем больше награда - тем быстрее транзакция попадёт в блок
  4. В Эфире различные операции стоят по-разному в единицах газа - приведена таблица "цен"
  5. Эфир, как и биткоин, начался со статьи. Статьи Виталика, разумеется 😊
  6. Аргументы за и против увеличения размера блока. Этот спор расколол Биткоин (произошёл хардфорк) на Bitcoin (который не стал увеличивать размер блока, вместо этого включил технологию) SegWit и Bitcoin Cash (без SegWit, размер блока стал 8 MБ).
  7. В Эфире нет максимального размера блока, есть предел газа. Можно добавлять транзакции в блок, пока суммарное количество нужного для этих транзакций газа не превысит порогового значения.

среда, 9 октября 2019 г.

Матричные часы

Про такие часы пишут куда меньше, чем про скалярные и векторные часы. А ведь у них даже и практические применения есть. 

Если у процесса Pi есть матричные часы Mi, то мы можем сказать, что Mi[j][k] - это представление i-го процесса о том, что знает j-й процесс про локальное время k-го процесса.

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

Допустим процесс номер 2 хочет переслать процессу номер 5 первые 30 записей из лога процесса 10. Сначала этот процесс посмотрит на соответствующую компоненту своих матричных часов M2[5][10]. Пусть M2[5][10] =23. Это означает, что по сведениям процесса 2 процесс 5 получил первые 23 записи из лога процесса 10. Значит, имеет смысл 2му процессу выслать 5му записи из лога 10го с 24й до 30й. Итог - экономия на пересылках.

воскресенье, 6 октября 2019 г.

Скрытые каналы

Что, если компоненты системы шлют сообщения по разным каналам? Отслеживать причинно-следственные связи станет очень сложно. Нечто подобное было в знаменитой статье Лэмпорта про время, часы и упорядочивание событий. Там люди кроме посылки сообщений ещё и по телефону говорили.

В науке это называется скрытые каналы (hidden channels). Пара примеров таких каналов есть в книге Distributed Systems for System Architects на стр 54 (есть на гугло-книгах, ссылка).

суббота, 5 октября 2019 г.

Книги по распределённым системам

Захотелось составить список литературы по распределенным системам. Сегодня книги.
  • A. S. Tanenbaum, M. van Steen Distributed Systems: Principles and Paradigms 
  • G. Coulouris et al  Distributed Systems: Concepts and Design
  • S. Ghosh Distributed Systems: An Algorithmic Approach
  • A.D. Kshemkalyani, M. Singhal Distributed Computing: Principles, Algorithms, and Systems
  • N. A. Lynch Distributed Algorithms 
  • G. Tel Introduction to Distributed Algorithms  
  • R. Sharp Principles of Protocol Design
  •