Onchain масштабирование блокчейна. Спикер: Дмитрий МешковCyber Fund
Данная презентация была представлена на одном из еженедельных образовательных митапов от компании cyber•Fund.
Посмотреть полное видео с митапа можно здесь:
https://www.youtube.com/watch?v=7ZyWVvuKF7E
Прочитать текстовую версию выступления:
https://golos.io/ru--blokcheijn/@cyberevents/onchain-masshtabirovanie-blokcheina-spiker-dmitrii-meshkov
Также вы можете задать интересующие вопросы непосредственно спикеру dmitry.meshkov@protonmail.com
Дополнительная информация о компании cyber•Fund
Мы инвестируем и развиваем блокчейн проекты, способные кардинально менять наш мир в лучшую сторону, создавая экономику роботов и самовыражения людей. Больше о нашей работе вы можете узнать из следующих ресурсов:
Наши проекты:
сyber•Fund - аналитика и разработка блокчейн систем
Golos.io - медийная блокчейн платформа
Satoshi•Fund - первый фонд инвестирующий в криптоактивы
Cyberstudio.io - помощь в проведении ICO
Мы ждем вас в наших сообществах:
Блог:
https://blog.cyber.fund/
Email Newsletter:
http://company.cyber.fund/#newsletter
Социальные сети:
https://golos.io/@cyberfund
https://steemit.com/@cyberfund
https://twitter.com/cyberfundio
https://www.reddit.com/r/cyber_Fund/
https://www.facebook.com/cyberfund - официальная страница сyber•Fund
https://www.facebook.com/blockchainmeetups/ - официальная страница cyber•Events (Блокчейн митапы, конференции, доклады)
https://www.slideshare.net/CyberFund-Official
Для разработчиков:
https://t.me/CyberFundDev - telegram чат для блокчейн разработчиков
https://github.com/cyberFund - наш репозиторий на Github с open source software
https://github.com/cyberFund/Library - библиотека знаний по блокчейн
Презентация подготовлена по материалам выступления Дениса Кравченко на Весеннем MiniQ'e (http://vk.com/event121580131), который был проведен 26 мая 2016.
Andrey Sobol Blockchain crowdfunding or "mommy, look, i launched ipo"Аліна Шепшелей
I will talk about:
Why crowdfunding in cryptocurrency is a good idea?
How can you create DIY IPO?
Why blockchain IPO gives confidence to your investors?
Введение в блокчейн и алгоритмы консенсуса / Филипп Филиппак (Waves Platform)Ontico
HighLoad++ 2017
Зал Дели + Калькутта, 7 ноября, 12:00
Тезисы:
http://www.highload.ru/2017/abstracts/3095.html
В докладе я расскажу о том, как устроен классический блокчейн: что такое транзакции и блоки, как они подписываются, из-за чего возникают форки и почему для майнинга не всегда нужны видеокарты.
Из второй части доклада можно будет узнать о разных алгоритмах консенсуса: Proof-of-Work, Proof-of-Stake, Proof-of-Activity и нескольких гибридных и экспериментальных.
Onchain масштабирование блокчейна. Спикер: Дмитрий МешковCyber Fund
Данная презентация была представлена на одном из еженедельных образовательных митапов от компании cyber•Fund.
Посмотреть полное видео с митапа можно здесь:
https://www.youtube.com/watch?v=7ZyWVvuKF7E
Прочитать текстовую версию выступления:
https://golos.io/ru--blokcheijn/@cyberevents/onchain-masshtabirovanie-blokcheina-spiker-dmitrii-meshkov
Также вы можете задать интересующие вопросы непосредственно спикеру dmitry.meshkov@protonmail.com
Дополнительная информация о компании cyber•Fund
Мы инвестируем и развиваем блокчейн проекты, способные кардинально менять наш мир в лучшую сторону, создавая экономику роботов и самовыражения людей. Больше о нашей работе вы можете узнать из следующих ресурсов:
Наши проекты:
сyber•Fund - аналитика и разработка блокчейн систем
Golos.io - медийная блокчейн платформа
Satoshi•Fund - первый фонд инвестирующий в криптоактивы
Cyberstudio.io - помощь в проведении ICO
Мы ждем вас в наших сообществах:
Блог:
https://blog.cyber.fund/
Email Newsletter:
http://company.cyber.fund/#newsletter
Социальные сети:
https://golos.io/@cyberfund
https://steemit.com/@cyberfund
https://twitter.com/cyberfundio
https://www.reddit.com/r/cyber_Fund/
https://www.facebook.com/cyberfund - официальная страница сyber•Fund
https://www.facebook.com/blockchainmeetups/ - официальная страница cyber•Events (Блокчейн митапы, конференции, доклады)
https://www.slideshare.net/CyberFund-Official
Для разработчиков:
https://t.me/CyberFundDev - telegram чат для блокчейн разработчиков
https://github.com/cyberFund - наш репозиторий на Github с open source software
https://github.com/cyberFund/Library - библиотека знаний по блокчейн
Презентация подготовлена по материалам выступления Дениса Кравченко на Весеннем MiniQ'e (http://vk.com/event121580131), который был проведен 26 мая 2016.
Andrey Sobol Blockchain crowdfunding or "mommy, look, i launched ipo"Аліна Шепшелей
I will talk about:
Why crowdfunding in cryptocurrency is a good idea?
How can you create DIY IPO?
Why blockchain IPO gives confidence to your investors?
Введение в блокчейн и алгоритмы консенсуса / Филипп Филиппак (Waves Platform)Ontico
HighLoad++ 2017
Зал Дели + Калькутта, 7 ноября, 12:00
Тезисы:
http://www.highload.ru/2017/abstracts/3095.html
В докладе я расскажу о том, как устроен классический блокчейн: что такое транзакции и блоки, как они подписываются, из-за чего возникают форки и почему для майнинга не всегда нужны видеокарты.
Из второй части доклада можно будет узнать о разных алгоритмах консенсуса: Proof-of-Work, Proof-of-Stake, Proof-of-Activity и нескольких гибридных и экспериментальных.
Tyurin Alexey - NTLM. Part 1. Pass-the-HashDefconRussia
Мы поговорим о NTLM, SSO- аутентификации и об эксплуатации pass-the-hash техники. Плюс обсудим методы защиты, которые пришли к нам с новейшими версиями ОС.
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайOntico
Набирает обороты мода на парадигму noBackend (см., например, http://nobackend.org/). Название не стоит понимать буквально: backend никуда не делся, просто фокус разработки — особенно на начальном этапе развития нового проекта — сильно смещается в сторону «клиентской части». Это очень понятно и закономерно в эпоху Mobile First и React Ecosystem с её новомодными GraphQL и React Native.
Появляется большой соблазн взять что-то понятное для хранения данных и уже «обвязанное» REST API, максимально отказаться от PHP/Python/Ruby/Java/etc, писать 80% кода «на стороне клиента», минимально заботясь о возне «на стороне сервера». У некоторых возникает и настоящая эйфория — чувство приятное, но очень опасное (прежде всего, если в команде нет сильного backend-опыта).
Этот доклад — компиляция опыта ряда проектов, написанных на React, React Native и Swift и переходящих на парадигму (или же сразу стартанувших с неё) noBackend за счёт PostgreSQL+PostgREST.
Мы обсудим важные вопросы, которые обязан задавать себе каждый, выбравший noBackend-подход (и не обязательно на связке Postgres+PostgREST): безопасность (аутентификация/авторизация; ограничение чтения и — особенно! — модификации «чужих» данных), производительность (нетривиальные запросы а-ля «свежий контент от тех, на кого я подписан»; компромисс между сетевой сложностью и CPU; защита от «домашнего» ddos — ситуации, когда свои же, родные «фронтендеры» кладут «бэкэнд»), масштабируемость и асинхронная обработка задач.
Задача-минимум (для всех): у каждого слушателя остаётся список must-check-вопросов для работы с noBackend-подходом.
Задача-максимум (для тех, кто с Postgres-опытом): разворачивание безопасного, высокопроизводительного и годного для быстрого развития REST API — сегодня же, в день док
Bitcoin, Ethereum и другие блокчейн-сети растут экстенсивно за счёт количества предлагаемых приложений. Существенные темпы роста количества активных пользователей и транзакций приводят к тому, что блокчейн-сети начинают не справляться с качественным исполнением своей базовой функции быстрого создания и передачи ценности.
Проблема хорошо известна и понятна разработчикам, которые пытаются подойди к её решению сразу с нескольких сторон. В докладе доступно описаны современные подходы к масштабированию блокчейн-сетей — эффективные алгоритмы консенсуса, блокчейн-сети второго уровня, шардинг и другие.
"BlockChain - введение" - в докладе рассмотрены остновы технологии Blockchain, ее история развития. Рассматривается процесс формирования цепочки блоков в блокчейне Bitcoin.
The report will be devoted to real cases of using blockchain technology in the implementation of the project on Node.js. Possible architectural approaches, use-cases and business processes covered by this technology will be highlighted. My task as a speaker is to share experience and show the way of thinking when building systems using distributed registry technology.
Распределенный blockchain процессинг / Алексей Трошичев (QiWi, Rakuten)Ontico
Проблема race condition в распределенных системах и существующие способы решения. Какие системы требуют строгой консистентности и почему?
Что такое blockchain, как сделать процесс его создания распределенным и как на базе него построить масштабируемую систему учета.
Горизонтальное масштабирование мультимастера до сотни узлов со строгой консистентностью без линейной потери скорости изменений.
Tyurin Alexey - NTLM. Part 1. Pass-the-HashDefconRussia
Мы поговорим о NTLM, SSO- аутентификации и об эксплуатации pass-the-hash техники. Плюс обсудим методы защиты, которые пришли к нам с новейшими версиями ОС.
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайOntico
Набирает обороты мода на парадигму noBackend (см., например, http://nobackend.org/). Название не стоит понимать буквально: backend никуда не делся, просто фокус разработки — особенно на начальном этапе развития нового проекта — сильно смещается в сторону «клиентской части». Это очень понятно и закономерно в эпоху Mobile First и React Ecosystem с её новомодными GraphQL и React Native.
Появляется большой соблазн взять что-то понятное для хранения данных и уже «обвязанное» REST API, максимально отказаться от PHP/Python/Ruby/Java/etc, писать 80% кода «на стороне клиента», минимально заботясь о возне «на стороне сервера». У некоторых возникает и настоящая эйфория — чувство приятное, но очень опасное (прежде всего, если в команде нет сильного backend-опыта).
Этот доклад — компиляция опыта ряда проектов, написанных на React, React Native и Swift и переходящих на парадигму (или же сразу стартанувших с неё) noBackend за счёт PostgreSQL+PostgREST.
Мы обсудим важные вопросы, которые обязан задавать себе каждый, выбравший noBackend-подход (и не обязательно на связке Postgres+PostgREST): безопасность (аутентификация/авторизация; ограничение чтения и — особенно! — модификации «чужих» данных), производительность (нетривиальные запросы а-ля «свежий контент от тех, на кого я подписан»; компромисс между сетевой сложностью и CPU; защита от «домашнего» ddos — ситуации, когда свои же, родные «фронтендеры» кладут «бэкэнд»), масштабируемость и асинхронная обработка задач.
Задача-минимум (для всех): у каждого слушателя остаётся список must-check-вопросов для работы с noBackend-подходом.
Задача-максимум (для тех, кто с Postgres-опытом): разворачивание безопасного, высокопроизводительного и годного для быстрого развития REST API — сегодня же, в день док
Bitcoin, Ethereum и другие блокчейн-сети растут экстенсивно за счёт количества предлагаемых приложений. Существенные темпы роста количества активных пользователей и транзакций приводят к тому, что блокчейн-сети начинают не справляться с качественным исполнением своей базовой функции быстрого создания и передачи ценности.
Проблема хорошо известна и понятна разработчикам, которые пытаются подойди к её решению сразу с нескольких сторон. В докладе доступно описаны современные подходы к масштабированию блокчейн-сетей — эффективные алгоритмы консенсуса, блокчейн-сети второго уровня, шардинг и другие.
"BlockChain - введение" - в докладе рассмотрены остновы технологии Blockchain, ее история развития. Рассматривается процесс формирования цепочки блоков в блокчейне Bitcoin.
The report will be devoted to real cases of using blockchain technology in the implementation of the project on Node.js. Possible architectural approaches, use-cases and business processes covered by this technology will be highlighted. My task as a speaker is to share experience and show the way of thinking when building systems using distributed registry technology.
Распределенный blockchain процессинг / Алексей Трошичев (QiWi, Rakuten)Ontico
Проблема race condition в распределенных системах и существующие способы решения. Какие системы требуют строгой консистентности и почему?
Что такое blockchain, как сделать процесс его создания распределенным и как на базе него построить масштабируемую систему учета.
Горизонтальное масштабирование мультимастера до сотни узлов со строгой консистентностью без линейной потери скорости изменений.
Explains the motivation for private/permissioned blockchains and their characteristics, particularly in comparison to traditional centralized databases. Lists seven "tomatoes" that people throw at the notion of private blockchains, evaluating which represent valid criticisms and which do not.
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиFProg
В данном докладе рассматривается пример использования персистентной структуры данных - функциональной версии HAMT, для создания main memory базы данных. Данная реализация HAMT располагается в shared memory и используется для хранения индексов.
Рассматриваются задачи, которые были быстро и эффективно решены благодаря использованию неизменяемых структур данных (управление изменениями, поддержка ACID-свойств), а также проблемы, возникшие из-за этого. Также, рассмотрен метод реализации персистентного графа, использующий изменяемые данные и позволяющий достичь большей производительности, по сравнению с аналогичной, неизменяемой структурой данных.
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
Оперативная память становится всё более дешёвой и производительной, что позволяет использовать её для хранения рабочего набора данных всё большего числа приложений. Хранение всех данных в оперативной памяти позволяет сделать их высоко доступными, а алгоритмы для работы с данными либо существенно упростить, либо ускорить, а иногда — и то, и другое.
Тезисы - http://www.highload.ru/2015/abstracts/1964.html
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Ontico
Мы прошли довольно большой путь в разработке через микросервисы.
Начинали разработку, когда это за рубежом только входило в тренд. По сути, не было никакой информации о том, как это делать правильно и, вообще, стоит ли это делать. Не было понятно, имеем ли мы дело с очередной модной штукой, или парадигма действительно решает часть проблем, характерных для больших нагруженных проектов.
Мы прошли путь от того, когда 100 микросервисов казалось много ... Сейчас цифры в 1000, 2000 кажутся чем-то обыденным.
В ходе доклада я постараюсь сделать упор на эксплуатацию системы, работающей на микросервисах. Расскажу, какой инструментарий показал себя хорошо на больших объемах, а от какого пришлось отказаться. Покажу на примерах, как эволюционировала наша система управления конфигурацией системы в целом и отдельными сервисами. Расскажу, как корректно предоставлять API сервиса и правильно поставлять его клиентские библиотеки, чтобы избегать внутренних и искусственных зависимостей. Покажу, как мы работаем с распределенными сервисами и обеспечиваем отказоустойчивость.
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...Ontico
РИТ++ 2017, HighLoad Junior
Зал Сингапур, 5 июня, 11:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2683.html
Наш доклад описывает способ использования больших объемов памяти, которые стали доступны в последние годы. К сожалению, эта память обычно остается незадействованной в управляемых средах исполнения в связи с принудительной сборкой мусора. Разработчики прибегают к внешним хранилищам данных ( i.e Memcached), что несет дополнительные расходы.
...
Раздатчик музыки непосредственно занимается отдачей байтов аудиопотока многочисленным пользователям https://ok.ru/music. В пике суммарный трафик достигает 100 Гб/с через сотни тысяч соединений, а время до первого байта составляет не больше 100 мс. Предыдущая версия раздатчика на основе файлов и Apache Tomcat не устраивала нас требуемым количеством оборудования и неспособностью утилизировать современное железо. При разработке новой версии мы поставили перед собой цель сохранить внешнюю функциональность сервиса неизменной, но обойтись существенно меньшим количеством машин, сохранив при этом масштабируемость и отказоустойчивость сервиса.
В докладе мы рассмотрим, как различные архитектурные решения помогли нам обеспечить масштабируемость и отказоустойчивость сервиса за счёт распределения и репликации музыкальных треков между нодами. Затем подробно поговорим про устройство отдельной ноды, включая отказоустойчивую подсистему хранения, сетевую подсистему, а также использование подхода reactive streams. Уделим особое внимание собранным граблям и трюкам, позволившим увеличить производительность системы, упростить отладку и эксплуатацию системы.
Доклад ориентирован на разработчиков, которые хотят расширить свой арсенал подходов и инструментов для создания распределённых и/или высоконагруженных систем с интенсивным I/O.
Продолжаем говорить о микрооптимизациях .NET-приложенийAndrey Akinshin
Этот доклад продолжает тему моего выступления с прошлого DotNext про сложную науку о микрооптимизациях. Вас ждут новые увлекательные истории о том, что же происходит под капотом .NET-программ. Будем обсуждать различия разных C# и JIT компиляторов (Roslyn и RyuJIT в том числе), медитировать на IL и ASM листинги, а также разбираться с особенностями современных CPU.
Алексей Ильенко "In real-time with Apache Kafka"Fwdays
- will talk about Apache Kafka;
- will learn how to not fear Apache Kafka, as a fire;
- will show how it can unfold in three clicks and use in production;
- how to build a Lua query logging system and what PHP is here for.
A brief overview of the DYMMAX protocol, that provides a decentralized way for issuing options for cryptocurrencies based on the parimutuel betting with the fixed odds pricing model
4. Scorex history
● Появление проекта Scorex (Jan 2015)
● Scorex стал частью IOHK (Nov 2015)
● Победа на Московском хакатоне (Nov 2015)
● Запуск Waves (May 2016)
● Scorex 2 (Nov 2016)
6. Governance
● Код – это закон
● Программисты обладают правом писать закон?
● Можно не принимать изменения, которые внесли
программисты (Ethereum classic)
● Голосования майнеров (почему майнеров?)
9. Properties
● Consistency – вероятность иметь разные префиксы
отбросив последние k блоков экспоненциально
убывает с k
● Chain quality – участник, обладающий x%
голосующей мощности создаст не больше
ax% блоков
● Chain growth – блокчейн растет со временем
● (S)UF-CMA – только владелец приватного ключа
может создать валидную подпись данных
11. Minimal state
Может:
● Проверить, что транзакция валидна
● Применить транзакцию к стейту если да
● Одинаковая последовательность блоков
должна приводить к одинаковому стейту
12. Full node view
● Blockchain (blocktree)
● Minimal state
● UTX pool
● Vault
15. p2p: throughput
● Block size/ X% effective throughput < block interval
● Для сети биткоин (~4000 нод)
● Для маленьких блоков превалирует latency,
минимальное время между блоками для X90% - 12
секунд.
● Для 10 мин. размер блока < 4 Мб для X90% и 36
Мб. для X50%
19. Consensus: Proof-of-Work
● Вероятность создать блок пропорциональна
вычислительной мощности
● One-CPU-one-vote
● Распределенный timestamp
● Difficulty recalculation
● Чтобы изменить блок, нужно проделать
работу по созданию всех блоков после него
● Безопасен
● Сжигает ресурсы
● Полезный PoW: primecoin, permacoin
20. Consensus: Proof-of-Stake
● Вероятность создать блок ~ балансу
● Не сжигаются ресурсы
● Подразумевает timestamp
● Нет случайности => griding attacks
● Дешево создавать блоки => History attack
● Nothing-at-stake attack
● Bribe attack
24. Transactional layer: boxes
● Minimal state - набор закрытых коробок (box)
● В коробке лежит какая-то ценность (value)
● У коробки есть замок (proposition)
● Чтобы открыть замок, нужен ключ (proof)
● Помимо value можно положить еще что-то
● Об открытых коробках можно забыть
25. Transactional layer: boxes
● Очень гибкая модель
● Не очень понятная интуитивно
● Большой размер транзакций
● Небольшая пропускная способность
● Микро остатки
26. Transactional layer: accounts
● Применяется в Ethereum, Waves, Nxt, …
● Аккаунты (публичные ключи) с изменяемым
балансом
● Ключ → подпись
● Нужна дополнительная защита от replay атак
● Minimal state – не просто key→balance
27. Transactional layer
Транзакционная модель это:
● Proposition (подпись, скрипт, ...)
● Box structure (структура минимального
элемента minimal state)
● Minimal state
● Transaction and transaction language
● Block
38. Gateway
Пример: обмен Waves на ваш ассет
1. Выпустить asset, сохранить assetId
2. Запрашиваем высоту блокчейна
3. Запрашиваем блоки от последнего
обработанного до Height-N
4. Если нам пришли Waves – шлем в ответ
(или на адрес из attachment) ассеты
5. Если пришли ассеты – шлем в ответ Waves
6. Повторяем 2-5