ВСЕ ПРО ETHEREUM [Part1.sol]
Ethereum & Web
Когда научился создавать смартконтракты
Доброго времени суток, Golos!
Данным постом хочу открыть серию обобщенного переваренного материала по Ethereum. Итогом серии данных постов будет создание простенькой голосовалки на одноименном блокчейне.
Изучаю Ethereum довольно недавно (март 2017), и понял, что чем больше вникнешь и исследуешь, то тем более вдохновишься и воодушевишься масштабом и возможностями этой платформы.
Сейчас в сети появилось огромное количество материалов по Ethereum и Solidity: видео, статьи, мануалы – гораздо больше, чем можно переварить в кратчайшие сроки. Сиди, да изучай.
Архитектура uber alles!
Сравним архитектуры:
Примерно так выглядит упрощённая архитектура клиент-серверного веб-приложения.
Веб-приложение размещено на хостинге таких сервисов как Amazon Web Services, Heroku или VPS. Все клиенты взаимодействуют с одним центральным приложением. Клиентами могут быть: браузер, API-клиент Вашего приложения и другие. Когда клиент делает запрос на сервер, сервер делает некие магические пассы, перешептывается с базами данных и/или кэшем, считывает/пишет/обновляет базу данных и обслуживает клиент.
Такая архитектура достаточна и хорошо работает для большинства случаев, однако для определенных приложений, которым необходима открытая (публичная) база данных, безопасный доступ к которой может получить любой, откуда угодно, да так чтобы Вам не пришлось доверять и надеяться на «хозяина» такого приложения (сервера залило/сгорели, или блэкаут жесткий – и все пока!).
Пример
Давайте пофантазируем: Вы - владелец начинающего, но динамично развивающегося магазина редких б/у запчастей для Maserati на eBay. В РФ распиливаете на запчасти – по всему миру продаете (в РФ сбыть такое сложновато). У вас топовый рейтинг, мириады положительных отзывов, которые вы заработали упорным трудом и невиданным уровнем сервиса для своих покупателей. Но в один прекрасный момент Ebay блокирует Ваш аккаунт по неустановленной причине. Навсегда.
Удар по бизнесу очень серьезный! Вам бы взять и перенести историю сделок, отзывы и рейтинг продавца на другой аккаунт или другую платформу в принципе, но это маловероятно.
Сервис eBay состоит именно в том, чтобы быть третьей стороной между покупателем и продавцом, этакий доверенный посредник. Ну и комиссии получать с каждой продажи по расписанию.
Что если была бы возможность убрать псевдодоверенную 3-ю сторону, сэкономить на уплате комиссии, и только Вы сами могли бы распоряжаться своим аккаунтом?
Вот тут-то из толпы как раз и выходят, расталкивая локтями все что было до, децентрализованные приложения (ДП) или Dapps (decentralized applications).
Вот так, упрощенно выглядит архитектура децентрализованного приложения.
Каждый клиент (браузер) связывается со своим собственным инстансом приложения. Нет центрального сервера, к которому коннектился бы клиент. Это значит, что каждый кто хочет провзаимодействовать с децентрализованным приложением должен обладать полной копией блокчейна на своем компьютере или смартфоне, то есть, прежде чем пользоваться приложением, необходимо скачать весь чейн и только после этого начинать. Звучит необычно, но взамен Вы получаете полный контроль над своими данными и ликвидируете риск доверия централизованному серверу, который очень легко может уйти в оффлайн навсегда.
На самом деле, для хранения всего блокчейна не нужно много дискового пространства или оперативной памяти - есть несколько способов и решений как сделать приложение децентрализованным, а взаимодействие с ним быстрым и доступным, но об этом в следующих постах, более технических.
---------------------------------------------------------------------------------------------------------------
Какие аспекты несет в себе платформа?
---------------------------------------------------------------------------------------------------------------
1. Аспект «База данных»: Одним из основных аспектов блокчейна Ethereum является то, что он выступает в качестве базы данных. Транзакции которые появляются в сети Ethereum упаковываются в блоки, и каждый блок связан с последующим. Эти связанные между собой серии блоков, которые содержат в себе ВСЕ транзакции и образуют общий блокчейн.
Если вернуться обратно к примеру с eBay (если бы eBay был размещен на блокчейне Ethereum), каждая транзакция совершенная между покупателем и продавцом – будь это покупка или продажа, возмещение средств или спор с продавцом, были бы записаны в блокчейн, полная история которого была бы доступна для просмотра любым интересантом.
Для достижения консенсуса в сети (все-ли ноды в сети обладают той же копией данных о состоянии сети, а также корректностью данных) Ethereum использует (пока еще) алгоритм называющийся Proof-of-work или доказательство работы.
http://ethereum.stackexchange.com/questions/14/what-proof-of-work-function-does-ethereum-use
2. Аспект «КОД»:
Пример с eBay: если блокчейн является просто хранилищем, то как записать в него логику «Что такое покупка?», «Что считать завершенной покупкой?», «Что такое возврат?», «Какие условия возврата?» и т.д.
Для введения такой логики в блокчейн Ethereum необходимо написать код приложения (смарт-контракт) на языке Solidity. Затем использовать компайлер, чтобы закомпилировать в Ethereum Byte Code и затем деплоить такой контракт в действующий публичный блокчейн.
Собственно, Solidity является наиболее популярным языком написания смарт-контрактов (хотя альтернатива есть)
То есть блокчейн хранит данные и код, и ко всему еще и служит виртуальной машиной для запуска написанного кода. Для создания децентрализованных веб-приложений на Ethereum на помощь придет библиотека для JavaScript – web3.js, которая позволит поженить веб с блокчейном.
Рекомендую включить данную библиотеку в девелопмент-кит наряду с фреймфорками: react.js, angular.js и начинать создавать смарт-контракты.
3. Аспект «Встроенный банк»:
Огромным и жирным таким плюсом ко всему прочему идут финансовые и монетизационные возможности платформы. Что если я Вам скажу, что любое созданное Вами децентрализованное приложение идет в комплекте со встроенным банком? Ко всему прочему, есть возможность создать столько счетов в этом банке, сколько Вам нужно, всего за доли секунды? Эти счета-кошельки служат хранилищем ценности и средством выполнения транзакций.
Деталей и глубин возможностей гораздо больше, чем описано в данном посте – для начала я хотел лишь сравнить архитектуру децентрализованного веб-приложения с централизованным, чтобы в принципе понимать - с чем предстоит работать.
В следующем посте настроим программную среду и тестовую сеть для развертывания простейшего децентрализованного приложения.
Полезные линки на почитать(разумеется все на английском):
https://ethereum.stackexchange.com/
https://solidity.readthedocs.io/en/develop/
@quaestor, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующей категории:
Платформа отличная.Как по-Вашему,что было причиной такого затяжного флёта самого етн в течение практически всей осени?
Честно признаюсь - всю торговлю оставил роботам и полез в код, и они как раз на эфире больше всего наколбасили. Флет, все-таки, для роботов золотое время.
Цене будет сложно двигаться вверх, в том числе, и из-за майнеров, которые вынуждены продавать ETH для покрытия издержек, плюс у людей огромное количество ETH на руках с прошлых времен, когда он им почти за копейки достался. Также считаю немаловажным сдерживающим цену фактором - заморозка таймера на бомбе сложности, хотя все ждали POS к концу этого года и большого количества локдаунов для тестирования мастернод и POS-майнинга. 1000 ETH для одной мастерноды увели бы цену далеко до 1000$+.
ICO.
Само ICO низвержено и дискредитировано до 0. Посмотрите на обилие шиткоинов, шитпроектов, откровенно дерьмовых и откровенно скамовых. Хотя инструмент для привлечения средств просто отличный. Только вот в текущей редакции ICO=кидалово. Никто не удосуживается исходники выложить (так как их нет и не было), у всех тупой типовой сайт, тупой типовой whitepaper, но все ждут денег с хитрющим прищуром!
Считаю, ICO то какое оно есть сейчас, нужно срочно запрещать, как в Китае (еще одна причина флета, кстати). Почему-то никто не освещал, ту ситуацию которая там была и то количество скама, которое там было.
Элементарно - откройте на голосе вкладку "Новое" и ужаснитесь количеству дерьмовых баунти компаний дерьмовых коинов.
Наркомания состоит в том, что в каждую бочку пытаются запихать блокчейн!
Это все дико грустно, бьет по отрасли и цене. Рекомендую всем начинать копать код, причем срочно, ибо тут все от кодеров для кодеров. Особенно смешно выглядят гайды для лохов с нетронутым ЧСВ ("инвестор" слово очень гордое) как инвестировать в ICO. А начинаешь вопросы задавать "инвесторам" - не шарит никто и шарить не будет, а всрав бабки, свои кровно заработанные, будут проклинать всех кроме себя...
И опять же грустно, что интересует только цена!)))
Насчёт ICO полностью согласен, в 2017г. тему ICO полностью дескридитировали и превратили в хайп,точно так же,как в 2016м это сделали с облачными майнингами.
Недавно пересматривал "Волк с Уолл Стрит",и там был момент прямо пророчески-издевательский,только он назвал это АйПиО,разница в одну букву,и при этом смысл был 100% соответствующий.
@quaestor Поздравляю! Вы получили личную награду!
С Днём Рождения - 2 лет на Голосе
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
@quaestor Поздравляю! Вы получили личную награду!
С Днём Рождения - 1 год на Голосе
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
@quaestor где же следующая статья?))
@quaestor, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@quaestor, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@quaestor, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@quaestor Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@quaestor Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@quaestor Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@quaestor Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@quaestor Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Вы получили свою первую выплату
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Вы получили 8.83 % голосов от @Booster. Работает на @Coinbank
You have received 8.83 % vote from @Booster. Powered by @Coinbank